General

Profile

khasinski (Chris Hasiński)

  • Login: khasinski
  • Registered on: 10/25/2016
  • Last sign in: 05/11/2026

Issues

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

Activity

05/08/2026

05:10 PM Ruby Revision 4a0072d5 (git): Speed up Integer#to_s with a two digit lookup table (#16719)
* numeric: emit two decimal digits per iteration in rb_fix2str
Replace the digit-at-a-time loop in rb_fix2str with the standard
itoa 2-digit lookup table for base 10. Each iteration now
writes two digits using a single (u % 100, u / 10...
khasinski (Chris Hasiński)

04/15/2026

10:01 PM Ruby Revision c25acd47 (git): ZJIT: Inline Float arithmetic (+, -, *, /)
Add FloatAdd, FloatSub, FloatMul, FloatDiv HIR instructions that
lower to gen_prepare_leaf_call_with_gc followed by a direct ccall to
rb_float_plus/minus/mul/div. This skips CCallWithFrame overhead
(frame push/pop, stack and locals spill...
khasinski (Chris Hasiński)
10:01 PM Ruby Revision 4cbb9d14 (git): ZJIT: Inline Float#to_i
Add FloatToInt HIR instruction that truncates a Flonum to Integer
via rb_jit_flo_to_i with GC preparation. The helper uses trunc()
for truncation toward zero, then returns Fixnum (LONG2FIX) or
Bignum (rb_dbl2big) depending on magnitude.
...
khasinski (Chris Hasiński)
10:01 PM Ruby Revision aaad9e0f (git): ZJIT: Move flo_to_i helper to zjit.c and use original flo_to_i
Address review feedback:
1. Move the helper from jit.c (shared YJIT/ZJIT glue) to zjit.c since
it is only used by ZJIT.
2. Instead of duplicating the truncation logic, export flo_to_i from
numeric.c and call it from the ZJIT helper...
khasinski (Chris Hasiński)
10:01 PM Ruby Revision 03f1b569 (git): ZJIT: Keep flo_to_i static, add rb_flo_to_i public wrapper
The previous commit exposed flo_to_i as a non-static global, which
tripped tool/leaked-globals because it lacks the rb_ prefix.
Keep flo_to_i static and add a new public wrapper rb_flo_to_i in
numeric.c that delegates to it. ZJIT now ca...
khasinski (Chris Hasiński)
10:01 PM Ruby Revision 429c4992 (git): ZJIT: Fix bindgen ordering for rb_flo_to_i
The zjit-bindgen CI check regenerates cruby_bindings.inc.rs from
headers and diffs against the committed file. Since rb_flo_to_i is
declared next to rb_float_plus/minus/mul/div in internal/numeric.h,
bindgen emits it there. Match that or...
khasinski (Chris Hasiński)
07:34 PM Ruby Revision 9d46b0c7 (git): ZJIT: Fix getlocal with level=0 reading stale EP data (#16736)
* ZJIT: Fix getlocal with level=0 reading stale EP data
YARVINSN_getlocal always loaded from EP memory, even for level=0
locals. But setlocal_WC_0 only updates the JIT's FrameState without
writing to EP. When the Ruby compiler emits get...
khasinski (Chris Hasiński)

04/14/2026

09:04 PM Ruby Revision 94a8feaa (git): ZJIT: Annotate Float and Integer predicates
Adds method annotations so ZJIT can emit the fast CCall path for
pure Float cfunc predicates and propagate return types for numeric
builtin predicates.
Float cfuncs (leaf, no_gc, elidable):
nan?, finite? BoolExact
infinite? ...
khasinski (Chris Hasiński)
09:04 PM Ruby Revision 54527e24 (git): ZJIT: Update const_send_direct_integer snapshot
Reflects the BoolExact return type now inferred for Integer#zero?
after the annotation added in the previous commit.
khasinski (Chris Hasiński)
09:04 PM Ruby Revision edb95b13 (git): ZJIT: Add HIR tests and benchmarks for numeric predicate annotations
Add snapshot tests verifying correct HIR generation for each annotated
method:
- Float cfuncs (nan?, finite?, infinite?) emit CCall with BoolExact
or Fixnum|NilClass return type
- Integer builtins (zero?, even?, odd?) emit InvokeBuilti...
khasinski (Chris Hasiński)

Also available in: Atom