General

Profile

byroot (Jean Boussier)

Issues

open closed Total
Assigned issues 0 26 26
Reported issues 27 124 151

Projects

Project Roles Registered on
Ruby Committer 09/27/2021

Activity

12/04/2025

08:13 AM Ruby Revision d343968e (git): [ruby/json] Release 2.17.1
https://github.com/ruby/json/commit/e5e4fd558e byroot (Jean Boussier)
08:10 AM Ruby Revision d58a45d3 (git): [ruby/json] Fix a regression in parsing of unicode surogate pairs
Fix: https://github.com/ruby/json/issues/912
In the case of surogate pairs we consume two backslashes, so
`json_next_backslash` need to ensure it's not sending us back in the
stream.
https://github.com/ruby/json/commit/0fce370c41
byroot (Jean Boussier)

12/03/2025

08:15 PM Ruby Revision 8d1a6bc4 (git): gc.c: check if the struct has fields before marking the fields_obj
If GC trigger in the middle of `struct_alloc`, and the struct has more
than 3 elements, then `fields_obj` reference is garbage.
We must first check the shape to know if it was actually initialized.
byroot (Jean Boussier)
06:51 PM Ruby Revision 228d13f6 (git): gc.c: Pass shape_id to `newobj_init`
Attempt to fix the following SEGV:
```
ruby(gc_mark) ../src/gc/default/default.c:4429
ruby(gc_mark_children+0x45) [0x560b380bf8b5] ../src/gc/default/default.c:4625
ruby(gc_mark_stacked_objects) ../src/gc/default/default.c:4647
ruby(gc_m...
byroot (Jean Boussier)
04:54 PM Ruby Revision fcf39397 (git): Speedup TypedData_Get_Struct
While profiling `Monitor#synchronize` and `Mutex#synchronize`
I noticed a fairly significant amount of time spent in
`rb_check_typeddata`.
By implementing a fast path that assumes the object is valid
and that can be inlined, it does mak...
byroot (Jean Boussier)
03:25 PM Ruby Revision 94581b1f (git): [ruby/json] Release 2.17.0
https://github.com/ruby/json/commit/4bdb2d14fe byroot (Jean Boussier)
02:57 PM Ruby Revision 5770c186 (git): Rename `rb_obj_exivar_p` -> `rb_obj_gen_fields_p`
The "EXIVAR" terminology has been replaced by "gen fields"
AKA "generic fields".
Exivar implies variable, but generic fields include more than
just variables, e.g. `object_id`.
byroot (Jean Boussier)
02:57 PM Ruby Revision b78db63b (git): fstring_concurrent_set_create: only assert the string has no ivars
The NEWOBJ tracepoint can generate an object_id, that's alright,
what we don't want is actual instance variables.
byroot (Jean Boussier)
02:55 PM Ruby Feature #21721: Allow `Queue` and `SizedQueue` to be used as LIFO queues
> ConditionVariable and Mutex are too slow on CRuby.
So I looked at `Mutex` and `Monitor` for now.
I found an easy win for all `TypedData` which helps a bit: https://github.com/ruby/ruby/pull/15387
Before:
```
Mutex 13...
byroot (Jean Boussier)
02:13 PM Ruby Revision 05383a1d (git): [ruby/json] Fix duplicated test_unsafe_load_with_options test case
https://github.com/ruby/json/commit/7b62fac525 byroot (Jean Boussier)

Also available in: Atom