https://railsatscale.com/2025-09-16-reworking-memory-management-in-cruby/ #MemoryManagement #CRuby #Technology #Innovation #Australia #HackerNews #ngated
Reworking Memory Management in CRuby [pdf]
https://blog.peterzhu.ca/assets/ismm_2025.pdf
#HackerNews #Reworking #Memory #Management #in #CRuby #pdf #Ruby #MemoryManagement #CRuby #ProgrammingTechniques #SoftwareDevelopment
[Перевод] Ускоряем Ruby, переписав C… на Ruby
В последнее время я часто видел обсуждения репозитория сравнения языков . В нём CRuby был третьим снизу, обгоняя по скорости только R и Python. Автор репозитория @BenjDicken создал забавную визуализацию производительности каждого из языков. В одной из визуализаций из визуализаций Ruby по бенчмаркам Ruby оказывается третьим с конца.
I'm currently trying to get #RubyLang 3.3.1 to compile with `--enable-yjit` set. For some reason, the newest #CRuby version won't build on Sonoma because #RustLang is missing some include or header required for the latest #YJIT to be built.
It seems to be a problem with #rustc. I'm trying with #rustup instead, and will see how that goes.
Ah, nothing like posting on #StackOverflow to toughen up one's sense of self! I typically only answer the tricky questions there, so dealing with criticism of minor oversights, off-by-ones, and conversion errors are part of the fun. Ever try converting µs to femtoseconds when #benchmarking iterations on large data sets? Less fun than you think!
On the other hand, #TruffleRuby for the performance win. 900% faster for this use case than #CRuby, even with #YJIT.
👍 for fuzzing Ruby C extensions. I still don't fully trust that every C extension properly handles converting Ruby INTs into unsigned integers or back again. Also a good deep dive into CRuby's Coverage module internals.
https://blog.trailofbits.com/2024/03/29/introducing-ruzzy-a-coverage-guided-ruby-fuzzer/
Still, grepping for system, send, (instance|module|class)_eval method calls will yield low hanging fruit faster than fuzzing every single logic branch. Also, if you just want to find untested/unhandled edge-cases, there's also a [commercial] Mutation Testing framework for Ruby called Mutant.
#ruby #cruby #appsec #fuzzing
If you're trying to update the #OpenSSL gem on #macOS for #TruffleRuby, you may need this to link with OpenSSLv3's #libssl library:
```bash
OPENSSL_PREFIX="$(brew --prefix openssl@3)" gem update openssl
```
Just replace "@3" with "@1.1" if you prefer OpenSSLv1.1 for whatever reason. Meanwhile, #CRuby still doesn't compile against v3 for me, but YMMV.