General

Profile

sampokuokkanen (Sampo Kuokkanen)

  • Login: sampokuokkanen
  • Registered on: 05/21/2026
  • Last sign in: 05/21/2026

Issues

open closed Total
Assigned issues 0 0 0
Reported issues 0 1 1

Activity

07/02/2026

04:26 AM Ruby Revision 439c06b4 (git): Annotate Symbol#empty? as leaf (#17464)
Move `Symbol#empty?` from the C `sym_empty` into `symbol.rb`, implemented as `RBOOL(RSTRING_LEN(rb_sym2str(self)) == 0)`, mirroring the existing Symbol#to_s and #name leaf builtins.
Also added an `annotate_builtin! ` in `zjit/src/cruby_...
sampokuokkanen (Sampo Kuokkanen)

06/24/2026

09:17 PM Ruby Revision 93e97793 (git): Define String#ascii_only? and #valid_encoding? in Ruby
Get rid of the CFUNC overhead in String#ascii_only? and #valid_encoding?. Define them as leaf Primitive.cexpr! builtins in a new string.rb, following the pattern of numeric.rb.
This makes them 1.2x-1.4x faster across the interpreter, YJ...
sampokuokkanen (Sampo Kuokkanen)
09:17 PM Ruby Revision bb75c289 (git): ZJIT: Inline String#ascii_only? and #valid_encoding?
Read the cached coderange directly (flags & MASK) instead of calling the
builtin: ascii_only? is == 7BIT, valid_encoding? is != BROKEN, side-exit
on UNKNOWN. Drops the call, ~20% faster on ZJIT.
sampokuokkanen (Sampo Kuokkanen)

06/23/2026

01:29 PM Ruby Revision 13fe77dd (git): Add an ASCII fast path for String#casecmp?
String#casecmp? folds both operands with a Unicode case fold, allocating two new strings, and compares the results. For ASCII-only strings, Unicode case folding is equivalent to ASCII case-insensitive comparison, so the operands can be c... sampokuokkanen (Sampo Kuokkanen)

06/20/2026

07:14 AM Ruby Revision 217dd3d1 (git): Improve performance of `String#capitalize` with a single-byte ASCII fast path
#upcase/#downcase already case-map ASCII strings with a plain byte
loop, but #capitalize/#capitalize! always went through full Unicode
case-mapping, making them ~10x slower on the same input. Add
capitalize_single (mirroring upcase_singl...
sampokuokkanen (Sampo Kuokkanen)

06/17/2026

09:50 AM Ruby Revision e16d406d (git): Properly test implicit super in test_implicit_super_kwsplat
The method used explicit `super(*args, **kw)`, which made the test an
exact duplicate of test_explicit_super_kwsplat and never exercised the
zsuper code path its name implies. Use bare `super` so it actually tests
implicit super.
sampokuokkanen (Sampo Kuokkanen)

06/15/2026

03:19 PM Ruby Revision e1d3fc5d (git): Fix YJIT test to actually test invalid call_threshold
`test_yjit_enable_with_invalid_runtime_call_threshold_option` was passing `mem_size: 0`, which is identical to the `mem_size` test right below it. Invalid `call_threshold` was never actually tested. Pass `call_threshold: 0` instead. sampokuokkanen (Sampo Kuokkanen)

06/11/2026

02:02 PM Ruby Revision 250c0653 (git): Remove duplicate tests in test_call.rb and test_rational.rb
sampokuokkanen (Sampo Kuokkanen)

05/27/2026

05:12 AM Ruby Revision 261eea42 (git): Fix tautological assertions in test_each_value in test_hash.rb
Both assertions tested `[].length == 0` rather than `res.length`,
so the test passed even when `each_value` yielded nothing.
sampokuokkanen (Sampo Kuokkanen)

05/26/2026

09:34 AM Ruby Revision 6c1c3de9 (git): Test mixed-case input in test_upcase
`S("hello").upcase` was asserted twice, leaving mixed-case input
uncovered. Mirror test_downcase's `S("helLO")` shape.
Also removed duplicate test on line 854.
sampokuokkanen (Sampo Kuokkanen)

Also available in: Atom