Skip to content

[pull] master from ruby:master#934

Merged
pull[bot] merged 7 commits intoturkdevops:masterfrom
ruby:master
Apr 15, 2026
Merged

[pull] master from ruby:master#934
pull[bot] merged 7 commits intoturkdevops:masterfrom
ruby:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull bot commented Apr 15, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

khasinski and others added 7 commits April 14, 2026 14:04
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?          Fixnum | NilClass

Integer/Float builtins (BoolExact return type):
  Integer#zero?, even?, odd?
  Float#zero?, positive?, negative?

All targeted C bodies are pure (isnan/isfinite/isinf, FIXNUM bit
tests, FLOAT_ZERO_P) so the annotations are safe.

Microbench with --zjit-call-threshold=2, tight while loop, 20M iters:
  Float#nan?       0.140s -> 0.110s (~21%)
  Float#finite?    0.145s -> 0.114s (~21%)
  Float#infinite?  0.129s -> 0.094s (~27%)
Reflects the BoolExact return type now inferred for Integer#zero?
after the annotation added in the previous commit.
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 InvokeBuiltin with
  BoolExact return type
- Float builtins (zero?, positive?, negative?) emit InvokeBuiltin
  with BoolExact return type

Add benchmark yml files for Float and Integer predicates to the
benchmark/ directory.
Bumps the github-actions group with 2 updates in the / directory: [lewagon/wait-on-check-action](https://github.com/lewagon/wait-on-check-action) and [taiki-e/install-action](https://github.com/taiki-e/install-action).


Updates `lewagon/wait-on-check-action` from 1.6.1 to 1.7.0
- [Release notes](https://github.com/lewagon/wait-on-check-action/releases)
- [Changelog](https://github.com/lewagon/wait-on-check-action/blob/master/CHANGELOG.md)
- [Commits](lewagon/wait-on-check-action@78dd4dd...9312864)

Updates `taiki-e/install-action` from 2.75.10 to 2.75.13
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](taiki-e/install-action@85b24a6...eea29cf)

---
updated-dependencies:
- dependency-name: lewagon/wait-on-check-action
  dependency-version: 1.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: taiki-e/install-action
  dependency-version: 2.75.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Fix: ruby/json#970

If the parsed exponent overflows a `int32_t` passing it
to ryu is incorrect.

We could pass it to `rb_cstr_to_dbl` but then Ruby will emit
an annoying warning, instead we can coerce to `0.0` and `Inf`.

ruby/json@20454ba274
@pull pull bot locked and limited conversation to collaborators Apr 15, 2026
@pull pull bot added the ⤵️ pull label Apr 15, 2026
@pull pull bot merged commit 84f7692 into turkdevops:master Apr 15, 2026
1 of 3 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants