Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →
Yjit Alternatives
Similar projects and alternatives to yjit
-
-
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
-
-
typeprof
An experimental type-level Ruby interpreter for testing and understanding Ruby code
-
-
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
natalie
a work-in-progress Ruby compiler, written in Ruby and C++ (by natalie-lang)
-
error_highlight
The gem enhances Exception#message by adding a short explanation where the exception is raised
-
CodeBehind Framework
CodeBehind library is a modern backend framework. This library is a programming model based on the MVC structure, which provides the possibility of creating dynamic aspx files in .NET Core and has high serverside independence.
yjit reviews and mentions
-
Ruby 3.1.0 Preview 1 released with new experimental JIT
> I’m curious how the impact affects development, deployment, etc.
YJIT is pretty much transparent in production, if not it's likely a bug.
When we tried MJIT in production to compare it against YJIT, it causes lots of request timeouts on deploy, because the JIT warmup would take 10 to 20 minutes and it's much slower during that phase.
But YJIT warms ups extremely fast and with a much lower overhead, it's seemless on deploy.
The only thing you may need to tweak is `--yjit-exec-mem-size`, it defaults to `--yjit-exec-mem-size=256` (MB) which is not quite enough for larger apps.
As for development, it would work, but with code reloading enabled, you'd likely exhaust the executable memory allocation pretty fast, because for now YJIT doesn't GC generated code [0]. It will come soon, hopefully before the 3.1.0 release, but that's one of the reason why it's not enabled by default.
-
YJIT: Building a New JIT Compiler for CRuby
Just want to temper expectations because YJIT is still new. But if you run into crashes or bugs, please open an issue with as much detail as you can: https://github.com/Shopify/yjit
-
Sorbet Compiler: An experimental, ahead-of-time compiler for Ruby
You raised a point that the compiler only does a subset. That's actually what I would expect from a new project. I don't expect a full implementation to start. It takes time for a compiler to be mature enough to be general purpose. Here is another Ruby compiler in its infancy: https://github.com/Shopify/yjit.
-
YJIT: Building a New JIT Compiler Inside CRuby
We allocate our own chunk of executable memory and append/rewrite the end of it as we compile new blocks. We have our own in-memory assembler that's implemented here. It's x86 only right now, totally not portable, but over the course of the summer we're going to work on a backend that can open up the possibility of ARM64 support and some lower-level optimizations.
Yes. I put some suggestions here. I realize that not all of them are practical, but refactoring specific hot methods could make a difference.
Yes we are in touch with the Ruby core devs. They seem open to collaborating. k0kubun (working on MJIT) has contributed to the project: https://github.com/Shopify/yjit/pull/60
-
A note from our sponsor - InfluxDB
www.influxdata.com | 17 Apr 2024
Stats
Shopify/yjit is an open source project licensed under GNU General Public License v3.0 or later which is an OSI approved license.
The primary programming language of yjit is Ruby.