Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from ruby:master #385

Merged
merged 320 commits into from
Mar 7, 2024
Merged

[pull] master from ruby:master #385

merged 320 commits into from
Mar 7, 2024
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Feb 28, 2024

  1. Configuration menu
    Copy the full SHA
    8b556d3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c990cc7 View commit details
    Browse the repository at this point in the history
  3. Change T_ZOMBIE flag check from an assertion

    Assertions are only enable on debug builds, so it will now check for
    flags of T_ZOMBIE objects on all builds in GC.verify_internal_consistency.
    peterzhu2118 committed Feb 28, 2024
    Configuration menu
    Copy the full SHA
    48f433f View commit details
    Browse the repository at this point in the history
  4. Add check for finalizer in verify_internal_constency

    This adds a check in GC.verify_internal_constency that FL_FINALIZE flags
    is set if, and only if it is in finalizer_table.
    peterzhu2118 committed Feb 28, 2024
    Configuration menu
    Copy the full SHA
    7b69563 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    742abbf View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    1cef366 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    49aa8d6 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    dcc976a View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    f8355e8 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    16c7144 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    a29c0e8 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    567d4ee View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    ea2cb00 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    1b0a5bc View commit details
    Browse the repository at this point in the history
  15. [ruby/prism] Make NodeKindField subclass NodeKindField

    * To avoid duplication.
    
    ruby/prism@12e5aae0b4
    eregon authored and matzbot committed Feb 28, 2024
    Configuration menu
    Copy the full SHA
    2143789 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    7167346 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    a5bfc25 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    5481dbe View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    c5b568b View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    4b92b60 View commit details
    Browse the repository at this point in the history
  21. YJIT: Reject keywords hash in -1 arity cfunc splat support

    `test_keyword.rb` caught this issue. Just need to run with `threshold=1`
    XrXr committed Feb 28, 2024
    Configuration menu
    Copy the full SHA
    558b58d View commit details
    Browse the repository at this point in the history
  22. YJIT: Squash canary before falling back

    Recent flaky canary-related CI failures have all happened while trying
    to fall back. It's unclear what is leaving the canary on the stack and
    causing gen_send_dynamic() to falsely assume that it should be leaf,
    and this patch isn't going to help us find the source. One source I
    found is Array#<< with a frozen array, but it's unclear if that's what's
    causing the CI failures. I'm somewhat afraid to add a canary check to
    rb_longjmp() since that might introduce more flaky failures, and maybe
    ones unrelated to YJIT.
    
    See: https://github.com/ruby/ruby/actions/runs/8083502532/job/22086714152
    See: https://github.com/ruby/ruby/actions/runs/8066858522/job/22035963315
    XrXr committed Feb 28, 2024
    Configuration menu
    Copy the full SHA
    f05ad37 View commit details
    Browse the repository at this point in the history

Commits on Feb 29, 2024

  1. Configuration menu
    Copy the full SHA
    51e3252 View commit details
    Browse the repository at this point in the history
  2. Inform failures in parallel tests before retrying

    Displays for each failure which test it actually occurred in.  The
    output destination follows the --{stdout,stderr}-on-failure option.
    nobu committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    114c0b7 View commit details
    Browse the repository at this point in the history
  3. [wasm-pic] Remove --pass-arg=asyncify-ignore-imports from POSTLINK

    Before PIC era, we could assume that the stack is not unwound by
    imported functions since all imported functions are WASI syscalls and
    they don't use Asyncify at all. However, PIC binary can import functions
    from other modules and we cannot guarantee that they won't unwind
    the stack.
    kateinoigakukun committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    3f633e5 View commit details
    Browse the repository at this point in the history
  4. Update RBS (#10121)

    Use an unreleased version of RBS to see if the new commit fixes the `EBADF` error.
    soutaro committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    1a6a7c6 View commit details
    Browse the repository at this point in the history
  5. Unset FL_FINALIZE before running the finalizer

    The finalizer could trigger a GC, so FL_FINALIZE could get out of sync
    with the finalizer table.
    peterzhu2118 committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    d5bca06 View commit details
    Browse the repository at this point in the history
  6. Delete from finalizer_table before running finalizer

    The finalizer could trigger a GC, which would cause FL_FINALIZE to be
    out of sync with the finalizer table.
    peterzhu2118 committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    950c606 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    cb78408 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    8a918b4 View commit details
    Browse the repository at this point in the history
  9. [ruby/prism] Fix an incorrect parsing for Prism::Translation::Parser

    This PR fixes an incorrect parsing for `Prism::Translation::Parser`
    when one-line pattern mathing with Ruby 2.7 runtime.
    
    ## Expected
    
    Parsing should be done based on the specified Ruby parsing version,
    independent of the Ruby runtime version. When parsing for Ruby 3.3,
    it should return `:match_pattern_p` node:
    
    ```console
    $ ruby -rprism -rprism/translation/parser33 -ve 'p Prism::Translation::Parser33.parse("foo in bar")'
    ruby 3.0.6p216 (2023-03-30 revision ruby/prism@23a532679b) [x86_64-darwin19]
    s(:match_pattern_p,
    s(:send, nil, :foo),
      s(:match_var, :bar))
    ```
    
    ## Actual
    
    When parsing with Ruby 2.7 runtime, `match_pattern` node is returned,
    even though it is expected to parse for Ruby 3.3:
    
    ```console
    $ ruby -rprism -rprism/translation/parser33 -ve 'p Prism::Translation::Parser33.parse("foo in bar")'
    ruby 2.7.8p225 (2023-03-30 revision ruby/prism@1f4d455848) [x86_64-darwin19]
    s(:match_pattern,
    s(:send, nil, :foo),
      s(:match_var, :bar))
    ```
    
    The cause was the use of `RUBY_VERSION` for condition logic,
    which made it dependent on runtime Ruby version.
    `Prism::Translation::Parser` supports parsing for Ruby 3.3+.
    Therefore, the condition for parsing Ruby 2.7, which is not supported, is being removed.
    
    ## Background
    
    Found due to incompatibility with RuboCop's `Layout/SpaceAroundKeyword` and `Style/TernaryParentheses` cops.
    
    ruby/prism@e752e251d2
    koic authored and matzbot committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    f8dd234 View commit details
    Browse the repository at this point in the history
  10. Assume that FL_FINALIZE is in finalizer_table

    If FL_FINALIZE is set but not in finalizer_table, then rb_bug.
    peterzhu2118 committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    4c0f0b9 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    5891c70 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    cd8d101 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    50e999c View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    f9d5c60 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    1c0c490 View commit details
    Browse the repository at this point in the history
  16. Use configured LD for linking enc and ext libraries

    "AR" was well propagated to the enc.mk and mkmf, but "LD" was not. This
    caused the dynamic libraries to be linked with a linker found in the PATH,
    which could be different from the one used in the Ruby build process.
    This is especially important for cross-compilation, where the host
    linker may not be compatible with the target system. (e.g. WebAssembly)
    kateinoigakukun committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    57f014b View commit details
    Browse the repository at this point in the history
  17. [wasm-pic] Add LDSHARED definition for WASI platform

    We are going to add dynamic linking support for WASI platform. The
    `LDSHARED` definition is used to link shared libraries for building ruby
    binaries and extensions.
    kateinoigakukun committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    6e2880b View commit details
    Browse the repository at this point in the history
  18. Remove check for is_markable_object in gc_mark_stack_values

    gc_mark_and_pin already checks for is_markable_object.
    peterzhu2118 committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    6665ec2 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    3d61477 View commit details
    Browse the repository at this point in the history
  20. Load iseq name later than other ISEQ references

    previous_insn_index() is crashing:
    https://github.com/ruby/ruby/actions/runs/8100712618/job/22139323673
    https://github.com/ruby/ruby/actions/runs/8099334388/job/22134848249
    
    but it's probably not the fault of previous_insn_index() itself. I'm
    guessing the top-most frame is a C frame, and so iseq is just 0.
    
    To confirm that, I'd like to try calling other functions on an ISEQ
    first.
    k0kubun committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    1a58892 View commit details
    Browse the repository at this point in the history
  21. [ruby/prism] Tweak wording for Prism::BACKEND

    * TruffleRuby does support C extensions but FFI is faster there.
    
    ruby/prism@d211a87691
    eregon authored and matzbot committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    6075f67 View commit details
    Browse the repository at this point in the history
  22. [ruby/prism] Lazily create Location objects in Prism::Serialize::Load…

    …er#load_location
    
    * Following the changes in #2428.
    * PRISM_FFI_BACKEND=true ruby -v -Ilib -rprism -rbenchmark -e '10.times { p Benchmark.realtime { Dir.glob("lib/**/*.rb") { |f| Prism.parse_file(f) } } }'
      ruby 3.3.0:      0.255 => 0.210
      ruby 3.3.0 YJIT: 0.150 => 0.120
    
    ruby/prism@fabf809bbf
    eregon authored and matzbot committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    d5ae796 View commit details
    Browse the repository at this point in the history
  23. Remove each_machine_stack_value

    The function is only used by rb_gc_mark_machine_stack.
    peterzhu2118 committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    d3ae580 View commit details
    Browse the repository at this point in the history
  24. [ruby/resolv] Implement CAA resource record

    This patch implements handling of CAA resource records defined by [RFC8659].
    
    - There are no known deployment of CAA records outside of IN (Internet),
      but the RFC does not state that CAA records are class-specific.
      Thus `CAA` class is defined as a class-independent RRType.
    - `CAA` class stores `flags` field (a 1-octet bitset) as an Integer.
      In this way it's easier to ensure the encoded RR is in the valid wire format.
    
    [RFC8659]: https://datatracker.ietf.org/doc/html/rfc8659
    
    ruby/resolv@cfc4de75e3
    
    Co-authored-by: aeris <aeris@imirhil.fr>
    2 people authored and matzbot committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    2508a79 View commit details
    Browse the repository at this point in the history

Commits on Mar 1, 2024

  1. Bump actions/cache in /.github/actions/setup/directories

    Bumps [actions/cache](https://github.com/actions/cache) from 4.0.0 to 4.0.1.
    - [Release notes](https://github.com/actions/cache/releases)
    - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
    - [Commits](actions/cache@13aacd8...ab5e6d0)
    
    ---
    updated-dependencies:
    - dependency-name: actions/cache
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored and matzbot committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    8ec9c2d View commit details
    Browse the repository at this point in the history
  2. Bump github/codeql-action from 3.24.5 to 3.24.6

    Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.5 to 3.24.6.
    - [Release notes](https://github.com/github/codeql-action/releases)
    - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
    - [Commits](github/codeql-action@47b3d88...8a470fd)
    
    ---
    updated-dependencies:
    - dependency-name: github/codeql-action
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored and matzbot committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    b26602f View commit details
    Browse the repository at this point in the history
  3. Bump up drb-2.2.1

    hsbt committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    1952c79 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    874e9fc View commit details
    Browse the repository at this point in the history
  5. Bump actions/cache from 4.0.0 to 4.0.1

    Bumps [actions/cache](https://github.com/actions/cache) from 4.0.0 to 4.0.1.
    - [Release notes](https://github.com/actions/cache/releases)
    - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
    - [Commits](actions/cache@13aacd8...ab5e6d0)
    
    ---
    updated-dependencies:
    - dependency-name: actions/cache
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored and matzbot committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    04a1b87 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    a465393 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    452d51f View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    1a9a20c View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    5baee82 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    9b75e5f View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    5d76fe6 View commit details
    Browse the repository at this point in the history
  12. Don't pin named structs defined in Ruby

    [Bug #20311]
    
    `rb_define_class_under` assumes it's called from C and that the
    reference might be held in a C global variable, so it adds the
    class to the VM root.
    
    In the case of `Struct.new('Name')` it's wasteful and make
    the struct immortal.
    byroot committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    e626da8 View commit details
    Browse the repository at this point in the history
  13. Clarify C API documentation about pinned classes

    They are not only pinned, but also immortal. Even if the
    constant referencing them is removed, they will remain alive.
    
    It's a precision worth noting.
    byroot committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    c09e5ad View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    54d2622 View commit details
    Browse the repository at this point in the history
  15. Perform splatarray false peephole optimization for invokesuper in add…

    …ition to send
    
    This optimizes cases such as:
    
      super(arg, *ary)
      super(arg, *ary, &block)
      super(*ary, **kw)
      super(*ary, kw: 1)
      super(*ary, kw: 1, &block)
    
    The super(*ary, **kw, &block) case does not use the splatarray false
    optimization.  This is also true of the send case, since the
    introduction of the splatkw VM instruction.  That will be fixed in
    a later commit.
    jeremyevans committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    e484ffa View commit details
    Browse the repository at this point in the history
  16. Fix splatarray false peephole optimization for f(*ary, **kw, &block)

    This optimization stopped being using when the splatkw VM instruction
    was added.  This change allows the optimization to apply again. This
    also optimizes the following cases:
    
      super(*ary, **kw, &block)
      f(...)
      super(...)
    jeremyevans committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    32c5875 View commit details
    Browse the repository at this point in the history
  17. Avoid 1-2 array allocations for zsuper calls with post arguments

    These previously resulted in 2 array allocations, one for newarray
    and one for concatarray.  This replaces newarray and concatarray
    with pushtoarray, and changes splatarray false to splatarray true,
    which reduces it to 1 array allocation, in splatarray true.
    
    This also sets VM_CALL_ARGS_SPLAT_MUT, so if the super method
    accepts a positional splat, this will avoid an additional array
    allocation on the callee side.
    jeremyevans committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    7337145 View commit details
    Browse the repository at this point in the history
  18. Add benchmarks for super and zsuper calls of different types

    These show gains from the recent optimization commits:
    
    ```
                            arg_splat
                miniruby:   7346039.9 i/s
         miniruby-before:   4692240.8 i/s - 1.57x  slower
    
                      arg_splat_block
                miniruby:   6539749.6 i/s
         miniruby-before:   4358063.6 i/s - 1.50x  slower
    
                       splat_kw_splat
                miniruby:   5433641.5 i/s
         miniruby-before:   3851048.6 i/s - 1.41x  slower
    
                 splat_kw_splat_block
                miniruby:   4916137.1 i/s
         miniruby-before:   3477090.1 i/s - 1.41x  slower
    
                       splat_kw_block
                miniruby:   2912829.5 i/s
         miniruby-before:   2465611.7 i/s - 1.18x  slower
    
                       arg_splat_post
                miniruby:   2195208.2 i/s
         miniruby-before:   1860204.3 i/s - 1.18x  slower
    ```
    
    zsuper only speeds up in the post argument case, because
    it was already set to use splatarray false in cases where
    there were no post arguments.
    jeremyevans committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    f446d68 View commit details
    Browse the repository at this point in the history
  19. Fix a couple issues noticed by nobu

    Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
    jeremyevans and nobu committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    334e4c6 View commit details
    Browse the repository at this point in the history
  20. Make Struct memory leak test faster

    [Bug #20311]
    
    It times out on some platform, so we can reduce iterations.
    On my machine it completes in 250ms and RSS grows 8X.
    byroot committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    f3af5ae View commit details
    Browse the repository at this point in the history
  21. Remove pointer check in vm_ccs_free

    We don't need to check that the object is pointer to the GC heap in
    vm_ccs_free because it is called during sweeping, which does not free
    pages so it can never point to an object that is not on the GC heap.
    peterzhu2118 committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    162e13c View commit details
    Browse the repository at this point in the history
  22. [ruby/irb] Restructure workspace management

    (ruby/irb#888)
    
    * Remove dead irb_level method
    
    * Restructure workspace management
    
    Currently, workspace is an attribute of IRB::Context in most use cases.
    But when some workspace commands are used, like `pushws` or `popws`, a
    workspace will be created and used along side with the original workspace
    attribute.
    
    This complexity is not necessary and will prevent us from expanding
    multi-workspace support in the future.
    
    So this commit introduces a @workspace_stack ivar to IRB::Context so IRB
    can have a more natural way to manage workspaces.
    
    * Fix pushws without args
    
    * Always display workspace stack after related commands are used
    
    ruby/irb@61560b99b3
    st0012 authored and matzbot committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    57ca596 View commit details
    Browse the repository at this point in the history
  23. YJIT: No need to set cfp->sp when setting escaped locals

    While writing to the env object can add it to the remember set,
    it shouldn't trigger a GC run.
    XrXr committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    88050ec View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    661f9e6 View commit details
    Browse the repository at this point in the history
  25. Don't check_rvalue_consistency in is_markable_object

    is_markable_object is called by rb_objspace_markable_object_p, which
    may pass a T_NONE object. check_rvalue_consistency will fail if a T_NONE
    object is passed in.
    peterzhu2118 committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    6f31dd4 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    70de3b1 View commit details
    Browse the repository at this point in the history
  27. [ruby/irb] Escape closing square brackets in regexp

    Fixes the following warning:
    
        test/irb/test_command.rb:546: warning: regular expression has ']' without escape
    
    ruby/irb@7efadc243b
    peterzhu2118 authored and matzbot committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    6da8f04 View commit details
    Browse the repository at this point in the history
  28. Correctly set anon_kwrest flag for def f(b: 1, **)

    In cases where a method accepts both keywords and an anonymous
    keyword splat, the method was not marked as taking an anonymous
    keyword splat.  Fix that in the compiler.
    
    Doing that broke handling of nil keyword splats in yjit, so
    update yjit to handle that.
    
    Add a test to check that calling a method that accepts both
    a keyword argument and an anonymous keyword splat does not
    modify a passed keyword splat hash.
    
    Move the anon_kwrest check from setup_parameters_complex to
    ignore_keyword_hash_p, and only use it if the keyword hash
    is already a hash. This should speed things up slightly as
    it avoids a check previously used for all callers of
    setup_parameters_complex.
    
    Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
    jeremyevans and nobu committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    99384ba View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    5a3ae06 View commit details
    Browse the repository at this point in the history
  30. Skip a redundant check for the rb_obj_hash case

    Also, refactor the cfunc struct to use a new rb_cfunc_t.
    k0kubun committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    61fbd29 View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    317163c View commit details
    Browse the repository at this point in the history
  32. Update a stubbed type for RJIT

    cfunc.func is actually used by RJIT
    k0kubun committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    607b86e View commit details
    Browse the repository at this point in the history

Commits on Mar 2, 2024

  1. Make File#chmod unblocking

    nobu committed Mar 2, 2024
    Configuration menu
    Copy the full SHA
    061c684 View commit details
    Browse the repository at this point in the history
  2. Make File#chown unblocking

    nobu committed Mar 2, 2024
    Configuration menu
    Copy the full SHA
    5a4cd73 View commit details
    Browse the repository at this point in the history
  3. configure.ac: Append POSTLINK to LINK_SO for all platforms

    The `POSTLINK` variable had been used only for darwin platforms, but
    it's now used for WebAssembly/WASI as well. To make shared extension
    libraries properly post-processed, we need to append `POSTLINK` to
    `LINK_SO` but it was done only for darwin platforms. This commit
    generalizes the appending to all platforms.
    kateinoigakukun authored and nobu committed Mar 2, 2024
    Configuration menu
    Copy the full SHA
    b000e7b View commit details
    Browse the repository at this point in the history
  4. mkmf.rb: Define missing POSTLINK variable in generated Makefile

    The `POSTLINK` variable had been used in the `LINK_SO` variable, which
    is used to link shared extension libraries. However, the `POSTLINK`
    variable had not been defined in the generated Makefile, so extension
    libraries were not properly post-processed. It was not a critical issue
    for the existing `POSTLINK` usage for darwin platforms, but it would be
    a problem for Wasm/WASI platform, which requires *mandatory*
    post-processing for shared extension libraries.
    kateinoigakukun authored and nobu committed Mar 2, 2024
    Configuration menu
    Copy the full SHA
    71d5116 View commit details
    Browse the repository at this point in the history
  5. Drop support for old ERB

    nobu committed Mar 2, 2024
    Configuration menu
    Copy the full SHA
    e9a7801 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    93556d4 View commit details
    Browse the repository at this point in the history

Commits on Mar 3, 2024

  1. [Bug #20322] Fix rb_enc_interned_str_cstr null encoding

    The documentation for `rb_enc_interned_str_cstr` notes that `enc` can be
    a null pointer, but this currently causes a segmentation fault when
    trying to autoload the encoding. This commit fixes the issue by checking
    for NULL before calling `rb_enc_autoload`.
    thomasmarshall committed Mar 3, 2024
    Configuration menu
    Copy the full SHA
    7e4b1f8 View commit details
    Browse the repository at this point in the history
  2. enc: Define missing POSTLINK variable in enc.mk

    This is a follow up change to 71d5116
    kateinoigakukun committed Mar 3, 2024
    Configuration menu
    Copy the full SHA
    072761b View commit details
    Browse the repository at this point in the history
  3. enc: Expand substitution variables in Makefile.in by default

    This change makes `make_encmake.rb` expand all substitution variables
    when replacing them in `enc/Makefile.in` to avoid propagating all
    possibly referenced variables to the generated Makefile. The old
    behavior, which don't expand make variables when generating Makefile,
    was useful to temporarily override inherited variables like `cflags` in
    `CFLAGS` at make-time. However, it's not a common use case and it
    requires to propagate all possibly referenced variables properly
    considering key name duplication between `enc/Makefile.in` and
    `RbConfig::CONFIG`.
    kateinoigakukun committed Mar 3, 2024
    Configuration menu
    Copy the full SHA
    0d9a681 View commit details
    Browse the repository at this point in the history

Commits on Mar 4, 2024

  1. Disable callcc when ASAN is enabled

    callcc's implementation is fundamentally incompatible with ASAN. Since
    callcc is deprecated and almost never used, it's probably OK to disable
    callcc when ruby is compiled with ASAN.
    
    [Bug #20273]
    KJTsanaktsidis committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    5621d79 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2d8788e View commit details
    Browse the repository at this point in the history
  3. [rubygems/rubygems] Clear RUBY_CODESIGN env var while running tests

    The `RUBY_CODESIGN` environment variable is used by mkmf-generated
    Makefile to sign extension bundles on macOS. The variable specifies a
    key identifier to use for signing given by the user. However, the key
    is usually stored in `$HOME/Library/Keychains` directory, and the test
    suite creates a fake `$HOME` directory. This causes the test suite to
    try to find the specified key from the fake home directory, which
    results in a failure.
    
    rubygems/rubygems@ddcfc65bf7
    kateinoigakukun authored and matzbot committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    ef5af32 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b176315 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    2c787bf View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    5856ea3 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    26507b9 View commit details
    Browse the repository at this point in the history
  8. [ruby/prism] Fix incompatibility AST for regexp match in `Prism::Tran…

    …slation::Parser`
    
    This PR fixes the following incompatibility AST for regexp match between Parser gem and Prism:
    
    ## Parser gem
    
    Returns an `match_with_lvasgn` node:
    
    ```console
    $ bundle exec ruby -rparser/ruby33 -ve 'p Parser::Ruby33.parse("/foo/ =~ bar")'
    ruby 3.3.0 (2023-12-25 revision ruby/prism@5124f9ac75) [x86_64-darwin22]
    s(:match_with_lvasgn,
      s(:regexp,
        s(:str, "foo"),
        s(:regopt)),
      s(:send, nil, :bar))
    ```
    
    ## Prism (`Prism::Translation::Parser`)
    
    ### Before
    
    Returns an `send` node:
    
    ```console
    $ bundle exec ruby -rprism -rprism/translation/parser33 -ve 'p Prism::Translation::Parser33.parse("/foo/ =~ bar")'
    ruby 3.3.0 (2023-12-25 revision ruby/prism@5124f9ac75) [x86_64-darwin22]
    s(:send,
      s(:regexp,
        s(:str, "foo"),
        s(:regopt)), :=~,
      s(:send, nil, :bar))
    ```
    
    ### After
    
    Returns an `match_with_lvasgn` node:
    
    ```console
    $ bundle exec ruby -rprism -rprism/translation/parser33 -ve 'p Prism::Translation::Parser33.parse("/foo/ =~ bar")'
    ruby 3.3.0 (2023-12-25 revision ruby/prism@5124f9ac75) [x86_64-darwin22]
    s(:match_with_lvasgn,
      s(:regexp,
        s(:str, "foo"),
        s(:regopt)),
      s(:send, nil, :bar))
    ```
    
    ## Background
    
    Found due to incompatibility with RuboCop's `Performance/EndWith`, `Performance/StringInclude,
    and `Performance/StartWith` cops.
    
    ## Note
    
    This is the incompatibility when the receiver is a regular expression literal and `=~` is used.
    Based on the node name `:match_with_lvasgn`, it appears that Prism's AST becomes more accurate
    in cases like `visit_match_write_node` only.
    
    However, as shown in the background, the current behavior of Parser gem is not like this.
    Considering compatibility with the published AST of Parser gem, the AST incompatibility will be addressed.
    
    This lvar-injecting feature appears to have not been supported by Parser gem for a long time:
    whitequark/parser#69 (comment)
    
    There seems to be no indication that it will be supported.
    
    This PR prioritizes AST compatibility between the Parser gem and Prism.
    However, it is unclear whether this is the best approach.
    
    ruby/prism@dff4abb170
    koic authored and matzbot committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    a03f929 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    85fe8b6 View commit details
    Browse the repository at this point in the history
  10. [DOC] Fix invalid documentation for reachable_objects_from (#10172)

    Previous documentation is stating the opposite (that the method won't
    work for CRuby).
    iridakos committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    61ea202 View commit details
    Browse the repository at this point in the history
  11. [ruby/prism] Make alloc interface replaceable

    - Add `x` prefix to malloc, calloc, realloc, and free
      (eg: malloc -> xmalloc)
    - By default, they are replaced with stdlib's functions at build
    - You can use custom functions by defining `PRISM_CUSTOM_ALLOCATOR` macro
    
    ruby/prism@7a878af619
    hasumikin authored and matzbot committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    c4bd6da View commit details
    Browse the repository at this point in the history
  12. [ruby/prism] Chage some names

    - PRISM_CUSTOM_ALLOCATOR -> PRISM_XALLOCATOR
    - prism_custom_allocator.h -> prism_xallocator.h
    
    ruby/prism@83b4071e5b
    hasumikin authored and matzbot committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    54f2754 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    b95e2cd View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    c0a34a6 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    03a73fd View commit details
    Browse the repository at this point in the history
  16. [ruby/prism] Use a more efficient StringIO on TruffleRuby

    * The stdlib StringIO is synchronized and this occurs a high overhead.
    * This is about twice as fast on TruffleRuby but surprisingly it is slower on JRuby.
      I am not sure why but probably @ivar access and integer arithmetic
      is much slower than Java field access/arithmetic on JRuby.
    * On CRuby interpreter it is slower, which is expected as the GVL already protects StringIO.
    * So we enable this only on TruffleRuby to not slow down other Rubies.
    * PRISM_FFI_BACKEND=true ruby -v -Ilib -rprism -rbenchmark -e '300.times { p Benchmark.realtime { Dir.glob("lib/**/*.rb") { |f| Prism.parse_file(f) } } }'
      ruby 3.3.0:         0.215 => 0.251 (cext: 0.062)
      ruby 3.3.0 YJIT:    0.118 => 0.113 (cext: 0.053)
      truffleruby JVM:    0.101 => 0.054
      jruby 9.4.6.0:      0.162 => 0.219
      jruby 9.4.6.0 indy: 0.078 => 0.086
    * For the record here are the numbers for using the String directly, without a StringIO-like object:
      ruby 3.3.0:         0.215 => 0.234 (cext: 0.062)
      ruby 3.3.0 YJIT:    0.118 => 0.111 (cext: 0.053)
      truffleruby native: 0.101 => 0.053
      jruby 9.4.6.0:      0.162 => 0.195
      jruby 9.4.6.0 indy: 0.078 => 0.082
      As we can see, that extra object adds a non-trivial overhead on CRuby interpreter and JRuby.
      But we need to make it possible to use StringIO and SimpleStringIO interchangeably.
    
    ruby/prism@938677cbd2
    eregon authored and matzbot committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    6ad0f89 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    f7adee3 View commit details
    Browse the repository at this point in the history
  18. Keep hidden local variables when dumping and loading iseqs

    Fixes [Bug #19975]
    jeremyevans committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    5899f6a View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    e78a705 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    2012300 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    50e9a6b View commit details
    Browse the repository at this point in the history
  22. [rubygems/rubygems] Bump rb-sys

    Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.89 to 0.9.90.
    - [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
    - [Commits](oxidize-rb/rb-sys@v0.9.89...v0.9.90)
    
    ---
    updated-dependencies:
    - dependency-name: rb-sys
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    
    rubygems/rubygems@eb93d8b238
    dependabot[bot] authored and matzbot committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    5e5bf57 View commit details
    Browse the repository at this point in the history

Commits on Mar 5, 2024

  1. Run test-bundler-parallel again

    hsbt committed Mar 5, 2024
    Configuration menu
    Copy the full SHA
    899ce12 View commit details
    Browse the repository at this point in the history
  2. Revert "mkmf.rb: Define missing POSTLINK variable in generated Make…

    …file"
    
    This reverts commit 71d5116.
    hsbt committed Mar 5, 2024
    Configuration menu
    Copy the full SHA
    0ae0a0c View commit details
    Browse the repository at this point in the history
  3. [rubygems/rubygems] Use IO.popen to list files

    - Redirect stderr `git ls-files` to null without shelling out.
    
    - When building by `gem`, `__FILE__` is the path name given in the
      command line, or the gemspec file name in the current directory.  In
      that case, comparison it and expanded path never equal.  Compare
      listed file names with the base name of `__FILE__` instead.
    
    rubygems/rubygems@5583433dbb
    nobu authored and matzbot committed Mar 5, 2024
    Configuration menu
    Copy the full SHA
    e102600 View commit details
    Browse the repository at this point in the history
  4. [rubygems/rubygems] Clear generated files recursively

    On macOS, `dsymutil` utility splits debug info into .dSYM directory.
    Glob list of `.bundle/cache/extensions/**/*binary_c*` includes that
    directory but `FileUtils.rm` fails to unlink a directory.
    
    https://github.com/ruby/ruby/actions/runs/8149918901/job/22275331688#step:11:3000
    ```
           Operation not permitted @ apply2files - /Users/runner/work/ruby/ruby/src/tmp/2/home/.bundle/cache/extensions/arm64-darwin-22/ruby/3.4.0+0/3b02a1011c53518f911ab3a9e8c6c608/very_simple_binary-1.0/very_simple_binary_c.bundle.dSYM
         # ./lib/fileutils.rb:2332:in 'File.unlink'
         # ./lib/fileutils.rb:2332:in 'block in FileUtils::Entry_#remove_file'
         # ./lib/fileutils.rb:2337:in 'FileUtils::Entry_#platform_support'
         # ./lib/fileutils.rb:2331:in 'FileUtils::Entry_#remove_file'
         # ./lib/fileutils.rb:1475:in 'FileUtils.remove_file'
         # ./lib/fileutils.rb:1223:in 'block in FileUtils.rm'
         # ./lib/fileutils.rb:1222:in 'FileUtils.rm'
         # ./spec/bundler/install/global_cache_spec.rb:235:in 'block (3 levels) in <top (required)>'
    ```
    
    rubygems/rubygems@375c127684
    nobu authored and matzbot committed Mar 5, 2024
    Configuration menu
    Copy the full SHA
    b582e5a View commit details
    Browse the repository at this point in the history
  5. Reapply "mkmf.rb: Define missing POSTLINK variable in generated Mak…

    …efile"
    
    This reverts commit 0ae0a0c.
    hsbt committed Mar 5, 2024
    Configuration menu
    Copy the full SHA
    8e27c01 View commit details
    Browse the repository at this point in the history
  6. [DOC] fix some comments

    Signed-off-by: cui fliter <imcusg@gmail.com>
    cuishuang committed Mar 5, 2024
    Configuration menu
    Copy the full SHA
    226a889 View commit details
    Browse the repository at this point in the history
  7. [ruby/irb] Add the ability to fetch and load multiple irb files.

    (ruby/irb#859)
    
    This allows hierarchy when loading rc files for example both files below
    are loaded;
    
    project/.irbrc
    ~/.irbrc
    
    ruby/irb@b53ebc6655
    
    Co-authored-by: Stan Lo <stan001212@gmail.com>
    2 people authored and matzbot committed Mar 5, 2024
    Configuration menu
    Copy the full SHA
    8f6113a View commit details
    Browse the repository at this point in the history
  8. .travis.yml: Allow failures for arm64 and arm32 cases temporarily.

    It's to avoid the failures by the infra issues in the term of the following
    maintenance.
    
    There is a planned maintenance on March 6th 2024 between 8:00 and 12:00 UTC+0.
    The Travis service may be temporarily unavailable.
    https://bugs.ruby-lang.org/issues/20013#note-28
    junaruga committed Mar 5, 2024
    Configuration menu
    Copy the full SHA
    23dc7aa View commit details
    Browse the repository at this point in the history

Commits on Mar 6, 2024

  1. Use include instead of equal assertion.

    irb will load multiple rc files now. If developer have their rcfile on
    home directory or etc, equal assertion will fail with custom prompt.
    hsbt committed Mar 6, 2024
    Configuration menu
    Copy the full SHA
    5196539 View commit details
    Browse the repository at this point in the history
  2. [ruby/irb] Prevent irb_history's creation during HistoryTest

    (ruby/irb#893)
    
    Some cases of it currently create `~/.irb_history` files unintentionally
    while others don't. This is caused by the varying levels of setup/cleanup between
    them. This commit fixes the issue by wrapping every single test inside a
    consistent test setup and teardown callbacks.
    
    ruby/irb@a2a3cbb0ef
    st0012 authored and matzbot committed Mar 6, 2024
    Configuration menu
    Copy the full SHA
    97d32bb View commit details
    Browse the repository at this point in the history
  3. Hide public implementation of rb_io. (#9568)

    Remove `struct rb_io {...}`.
    ioquatix committed Mar 6, 2024
    Configuration menu
    Copy the full SHA
    9ab1fa3 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    0c2e976 View commit details
    Browse the repository at this point in the history
  5. Remove -f option for codesign

    Recent `codesign` seems to emit a "replacing existing signature"
    warning even if it was an adhoc signature added by the linker.  Since
    "adhoc" signatures do not cause a failure when replaced, it is just
    unnecessary and noisy.
    nobu committed Mar 6, 2024
    Configuration menu
    Copy the full SHA
    b543a4e View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    29d3d13 View commit details
    Browse the repository at this point in the history
  7. Revert ".travis.yml: Allow failures for arm64 and arm32 cases tempora…

    …rily."
    
    This reverts commit 23dc7aa.
    
    It seems that the planned maintenance was finished.
    https://bugs.ruby-lang.org/issues/20013#note-28
    junaruga committed Mar 6, 2024
    Configuration menu
    Copy the full SHA
    2932350 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    7e44440 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    476cd2b View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    7d3304e View commit details
    Browse the repository at this point in the history
  11. [ruby/prism] Deprecate TargetRubyVersion: 80_82_73_83_77.xx

    Prism has been directly supported as a parser engine since RuboCop 1.62:
    https://github.com/rubocop/rubocop/releases/tag/v1.62.0
    
    This makes specifying `TargetRubyVersion` with special values like `80_82_73_83_77.33`
    using the `prism/translation/parser/rubocop` file unnecessary.
    As a result, it would be possible to deprecate this approach.
    
    OTOH, early users might be surprised if `prism/translation/parser/rubocop` were to be suddenly removed.
    Therefore, this PR deprecates the parameters related to `prism/translation/parser/rubocop`.
    
    ```console
    $ bundle exec ruby -rrubocop -rprism/translation/parser/rubocop -e "RuboCop::AST::ProcessedSource.new('42', 80_82_73_83_77.33).ast"
    WARN: Prism is directly supported since RuboCop 1.62. The `prism/translation/parser/rubocop` file is deprecated.
    WARN: Setting `TargetRubyVersion: 80_82_73_83_77.33` is deprecated. Set to `ParserEngine: parser_prism` and `TargetRubyVersion: 3.3` instead.
    
    $ bundle exec ruby -rrubocop -rprism/translation/parser/rubocop -e "RuboCop::AST::ProcessedSource.new('42', 80_82_73_83_77.34).ast"
    WARN: Prism is directly supported since RuboCop 1.62. The `prism/translation/parser/rubocop` file is deprecated.
    WARN: Setting `TargetRubyVersion: 80_82_73_83_77.34` is deprecated. Set to `ParserEngine: parser_prism` and `TargetRubyVersion: 3.4` instead.
    ```
    
    Eventually, it will be possible to remove it at some point.
    
    Regarding documentation, it has been updated to not show the old, discouraged usage but rather
    the new way of specifying it in RuboCop.
    
    ruby/prism@0e4bc31463
    koic authored and matzbot committed Mar 6, 2024
    Configuration menu
    Copy the full SHA
    4d04e1b View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    d56e80f View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    bbaee0b View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    3b7d5ef View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    be5376e View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    b797085 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    069568d View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    a035f63 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    862a188 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    f44671b View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    32c22a7 View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    751b4d3 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    a47d0f0 View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    c947852 View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    70764bd View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    139fe4f View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    bfa2a08 View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    d815d68 View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    5422b58 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    c21a50e View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    c4388e8 View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    3bdb0fe View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    524e93b View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    1711108 View commit details
    Browse the repository at this point in the history
  35. Configuration menu
    Copy the full SHA
    1d5f05b View commit details
    Browse the repository at this point in the history
  36. Configuration menu
    Copy the full SHA
    d719814 View commit details
    Browse the repository at this point in the history
  37. Configuration menu
    Copy the full SHA
    fabece2 View commit details
    Browse the repository at this point in the history
  38. Configuration menu
    Copy the full SHA
    2cb75b8 View commit details
    Browse the repository at this point in the history
  39. Configuration menu
    Copy the full SHA
    7bcca71 View commit details
    Browse the repository at this point in the history
  40. Configuration menu
    Copy the full SHA
    b0ee9c8 View commit details
    Browse the repository at this point in the history
  41. Configuration menu
    Copy the full SHA
    53efae0 View commit details
    Browse the repository at this point in the history
  42. Configuration menu
    Copy the full SHA
    47daf71 View commit details
    Browse the repository at this point in the history
  43. Configuration menu
    Copy the full SHA
    cb11642 View commit details
    Browse the repository at this point in the history
  44. Configuration menu
    Copy the full SHA
    a0674a5 View commit details
    Browse the repository at this point in the history
  45. Configuration menu
    Copy the full SHA
    c2d6bcc View commit details
    Browse the repository at this point in the history
  46. Configuration menu
    Copy the full SHA
    78fe61c View commit details
    Browse the repository at this point in the history
  47. Configuration menu
    Copy the full SHA
    e97b364 View commit details
    Browse the repository at this point in the history
  48. Configuration menu
    Copy the full SHA
    8f7db7e View commit details
    Browse the repository at this point in the history
  49. Configuration menu
    Copy the full SHA
    3a7beff View commit details
    Browse the repository at this point in the history
  50. Configuration menu
    Copy the full SHA
    db53705 View commit details
    Browse the repository at this point in the history
  51. Configuration menu
    Copy the full SHA
    7273c4d View commit details
    Browse the repository at this point in the history
  52. Configuration menu
    Copy the full SHA
    7ee404a View commit details
    Browse the repository at this point in the history
  53. Configuration menu
    Copy the full SHA
    4ce0395 View commit details
    Browse the repository at this point in the history
  54. Configuration menu
    Copy the full SHA
    de61074 View commit details
    Browse the repository at this point in the history
  55. Configuration menu
    Copy the full SHA
    31ef2f4 View commit details
    Browse the repository at this point in the history
  56. Configuration menu
    Copy the full SHA
    6b76a76 View commit details
    Browse the repository at this point in the history
  57. Configuration menu
    Copy the full SHA
    782f49d View commit details
    Browse the repository at this point in the history
  58. Configuration menu
    Copy the full SHA
    debb5e0 View commit details
    Browse the repository at this point in the history
  59. Configuration menu
    Copy the full SHA
    6539258 View commit details
    Browse the repository at this point in the history
  60. Configuration menu
    Copy the full SHA
    434e7bc View commit details
    Browse the repository at this point in the history
  61. Configuration menu
    Copy the full SHA
    d8cce33 View commit details
    Browse the repository at this point in the history
  62. Configuration menu
    Copy the full SHA
    8b721fc View commit details
    Browse the repository at this point in the history
  63. Configuration menu
    Copy the full SHA
    75e24a7 View commit details
    Browse the repository at this point in the history
  64. Configuration menu
    Copy the full SHA
    6361e37 View commit details
    Browse the repository at this point in the history
  65. Configuration menu
    Copy the full SHA
    6635657 View commit details
    Browse the repository at this point in the history
  66. Configuration menu
    Copy the full SHA
    f4d1a36 View commit details
    Browse the repository at this point in the history
  67. Configuration menu
    Copy the full SHA
    ff9df28 View commit details
    Browse the repository at this point in the history
  68. Configuration menu
    Copy the full SHA
    c6299dd View commit details
    Browse the repository at this point in the history
  69. Configuration menu
    Copy the full SHA
    712e841 View commit details
    Browse the repository at this point in the history
  70. Configuration menu
    Copy the full SHA
    be5d99f View commit details
    Browse the repository at this point in the history
  71. Configuration menu
    Copy the full SHA
    ae3f385 View commit details
    Browse the repository at this point in the history
  72. Configuration menu
    Copy the full SHA
    7d3f3ac View commit details
    Browse the repository at this point in the history
  73. Configuration menu
    Copy the full SHA
    d38894c View commit details
    Browse the repository at this point in the history
  74. Configuration menu
    Copy the full SHA
    4304f5b View commit details
    Browse the repository at this point in the history
  75. Configuration menu
    Copy the full SHA
    2a051b0 View commit details
    Browse the repository at this point in the history
  76. Configuration menu
    Copy the full SHA
    dad2178 View commit details
    Browse the repository at this point in the history
  77. Configuration menu
    Copy the full SHA
    409a49c View commit details
    Browse the repository at this point in the history
  78. Configuration menu
    Copy the full SHA
    9018e46 View commit details
    Browse the repository at this point in the history
  79. Configuration menu
    Copy the full SHA
    14877e7 View commit details
    Browse the repository at this point in the history
  80. Configuration menu
    Copy the full SHA
    f96ce41 View commit details
    Browse the repository at this point in the history
  81. Configuration menu
    Copy the full SHA
    cdb47b1 View commit details
    Browse the repository at this point in the history
  82. Configuration menu
    Copy the full SHA
    f75aa76 View commit details
    Browse the repository at this point in the history
  83. Configuration menu
    Copy the full SHA
    3c95848 View commit details
    Browse the repository at this point in the history
  84. Configuration menu
    Copy the full SHA
    1dae34f View commit details
    Browse the repository at this point in the history
  85. Configuration menu
    Copy the full SHA
    059f28e View commit details
    Browse the repository at this point in the history
  86. Configuration menu
    Copy the full SHA
    46e9f71 View commit details
    Browse the repository at this point in the history
  87. Configuration menu
    Copy the full SHA
    554ad9d View commit details
    Browse the repository at this point in the history
  88. Configuration menu
    Copy the full SHA
    fa1db73 View commit details
    Browse the repository at this point in the history
  89. Configuration menu
    Copy the full SHA
    8c04d7e View commit details
    Browse the repository at this point in the history
  90. Configuration menu
    Copy the full SHA
    06d36f7 View commit details
    Browse the repository at this point in the history
  91. Configuration menu
    Copy the full SHA
    d23ebdf View commit details
    Browse the repository at this point in the history
  92. Configuration menu
    Copy the full SHA
    8528e76 View commit details
    Browse the repository at this point in the history
  93. Configuration menu
    Copy the full SHA
    507ffc9 View commit details
    Browse the repository at this point in the history
  94. Configuration menu
    Copy the full SHA
    2574e78 View commit details
    Browse the repository at this point in the history
  95. Configuration menu
    Copy the full SHA
    294fe84 View commit details
    Browse the repository at this point in the history
  96. Configuration menu
    Copy the full SHA
    f6d9057 View commit details
    Browse the repository at this point in the history
  97. Configuration menu
    Copy the full SHA
    ab31cfa View commit details
    Browse the repository at this point in the history
  98. Configuration menu
    Copy the full SHA
    630ee38 View commit details
    Browse the repository at this point in the history
  99. Configuration menu
    Copy the full SHA
    72f01bd View commit details
    Browse the repository at this point in the history
  100. Configuration menu
    Copy the full SHA
    bafe897 View commit details
    Browse the repository at this point in the history
  101. Configuration menu
    Copy the full SHA
    1966b5c View commit details
    Browse the repository at this point in the history
  102. Configuration menu
    Copy the full SHA
    532ddc1 View commit details
    Browse the repository at this point in the history
  103. Fix dump of hidden local variable indexes

    This fixes test failures when running tests with
    RUBY_ISEQ_DUMP_DEBUG=to_binary, which started after
    5899f6a was committed.
    
    Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
    jeremyevans and nobu committed Mar 6, 2024
    Configuration menu
    Copy the full SHA
    6ea01d2 View commit details
    Browse the repository at this point in the history
  104. Configuration menu
    Copy the full SHA
    b889731 View commit details
    Browse the repository at this point in the history
  105. Move FL_SINGLETON to FL_USER1

    This frees FL_USER0 on both T_MODULE and T_CLASS.
    
    Note: prior to this, FL_SINGLETON was never set on T_MODULE,
    so checking for `FL_SINGLETON` without first checking that
    `FL_TYPE` was `T_CLASS` was valid. That's no longer the case.
    byroot authored and peterzhu2118 committed Mar 6, 2024
    Configuration menu
    Copy the full SHA
    b4a6935 View commit details
    Browse the repository at this point in the history
  106. Configuration menu
    Copy the full SHA
    16ec54e View commit details
    Browse the repository at this point in the history
  107. Refactor VM root modules

    This `st_table` is used to both mark and pin classes
    defined from the C API. But `vm->mark_object_ary` already
    does both much more efficiently.
    
    Currently a Ruby process starts with 252 rooted classes,
    which uses `7224B` in an `st_table` or `2016B` in an `RArray`.
    
    So a baseline of 5kB saved, but since `mark_object_ary` is
    preallocated with `1024` slots but only use `405` of them,
    it's a net `7kB` save.
    
    `vm->mark_object_ary` is also being refactored.
    
    Prior to this changes, `mark_object_ary` was a regular `RArray`, but
    since this allows for references to be moved, it was marked a second
    time from `rb_vm_mark()` to pin these objects.
    
    This has the detrimental effect of marking these references on every
    minors even though it's a mostly append only list.
    
    But using a custom TypedData we can save from having to mark
    all the references on minor GC runs.
    
    Addtionally, immediate values are now ignored and not appended
    to `vm->mark_object_ary` as it's just wasted space.
    byroot authored and peterzhu2118 committed Mar 6, 2024
    Configuration menu
    Copy the full SHA
    d4f3dcf View commit details
    Browse the repository at this point in the history
  108. YJIT: String#getbyte codegen (#10188)

    * WIP getbyte implementation
    
    * WIP String#getbyte implementation
    
    * Fix whitespace in stats.rs
    
    * fix?
    
    * Fix whitespace, add comment
    
    ---------
    
    Co-authored-by: Aaron Patterson <aaron.patterson@shopify.com>
    maximecb and tenderworks committed Mar 6, 2024
    Configuration menu
    Copy the full SHA
    38a4b5c View commit details
    Browse the repository at this point in the history
  109. Configuration menu
    Copy the full SHA
    4b5fc91 View commit details
    Browse the repository at this point in the history
  110. Configuration menu
    Copy the full SHA
    4c64d2a View commit details
    Browse the repository at this point in the history
  111. Configuration menu
    Copy the full SHA
    2e1d735 View commit details
    Browse the repository at this point in the history
  112. Configuration menu
    Copy the full SHA
    ddc81ee View commit details
    Browse the repository at this point in the history
  113. [ruby/prism] Fix some type-checking errors by using different method …

    …calls
    
    For example, use `.fetch` or `.dig` instead of `[]`, and use `===` instead of `is_a?` for checking types of objects.
    
    ruby/prism@548b54915f
    paracycle authored and matzbot committed Mar 6, 2024
    Configuration menu
    Copy the full SHA
    8dfe0c7 View commit details
    Browse the repository at this point in the history
  114. Configuration menu
    Copy the full SHA
    3ad17b3 View commit details
    Browse the repository at this point in the history
  115. Configuration menu
    Copy the full SHA
    8d191a9 View commit details
    Browse the repository at this point in the history
  116. Configuration menu
    Copy the full SHA
    de411ef View commit details
    Browse the repository at this point in the history
  117. Configuration menu
    Copy the full SHA
    06fca8d View commit details
    Browse the repository at this point in the history
  118. Add 'In brief' for Array#[]

    BurdetteLamar authored and peterzhu2118 committed Mar 6, 2024
    Configuration menu
    Copy the full SHA
    cc757f4 View commit details
    Browse the repository at this point in the history

Commits on Mar 7, 2024

  1. Configuration menu
    Copy the full SHA
    2bc4575 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9fcb2bd View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c0cb3f6 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    38c2774 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    56026ed View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    48ca2ce View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    d266b71 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    5141643 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    e13fd48 View commit details
    Browse the repository at this point in the history
  10. [Bug #20327] Do not count subsecond to calculate UTC offset

    Assume that there will never be any time zones with UTC offsets that
    are subseconds.  Historically, UTC offset has only been used down to
    the second.
    nobu committed Mar 7, 2024
    Configuration menu
    Copy the full SHA
    d3279a0 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    fbec42f View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    810779f View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    d1c6645 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    1c083c4 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    78725f1 View commit details
    Browse the repository at this point in the history