### Context YJIT, and probably ZJIT in the near future, do provide a significant latency reduction once warmed up, however, during the warmup phase they tend to cause significant overhead, which temporary degrade the service latency,...byroot (Jean Boussier)
A char is more than large enough for counting rebuilds, and it's fine if it rolls over. The table being rebuilt exactly 255 times between two check seems impossible. On the other hand, if `Hash#shift` is abused, `entries_start` is more ...byroot (Jean Boussier)
For `rb_hash_bulk_insert_into_st_table` which probably was never intended to be public API, there is only a single hit, and it's clearly a misuse, it should use `rb_hash_bulk_insert: https://github.com/redcode/Z80-Ruby/blob/master/ext/z...byroot (Jean Boussier)
The raw codesearch result https://gist.github.com/byroot/547f2b19e63efd0b2c974ff1f584751c, but it contains a lot of false positive, as many old gems seems to have: ```c #ifndef RHASH_TBL #define RHASH_TBL(x) RHASH->tbl #endif ``` ...byroot (Jean Boussier)
I would like to deprecate `RHASH_TBL`, `RHASH_TBL_RAW` and `rb_hash_bulk_insert_into_st_table`. ### Problem These API take a `RHash` instance and return its associated `st_table *`. If the Hash isn't backed by an `st_table` it wil...byroot (Jean Boussier)
Applied in changeset commit:git|1ba809e748e04f03450a7f2148e5e860c64c57f0. ---------- C API: Expose `rb_iseq_load_from_binary` [Feature #22222] This allows to efficiently load iseq from mmaped files and other buffers without having to ...byroot (Jean Boussier)
[Feature #22222] This allows to efficiently load iseq from mmaped files and other buffers without having to copy the bytes into a Ruby string an then invoke `RubyVM::InstructionSequence.load_from_binary`.byroot (Jean Boussier)
> but what about a fixed Regexp with the characters to escape? @Eregon please see the benchmark at https://github.com/ruby/cgi/pull/55, it doesn't compile a regexp every time and there's still a 5x difference. I only did it in this...byroot (Jean Boussier)