summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-06-15Remove unused rb_thread_create_mjit_threadTakashi Kokubun
follow up https://github.com/ruby/ruby/pull/6006
2022-06-15Move RubyVM::MJIT to builtin RubyTakashi Kokubun
just less C code to maintain
2022-06-15Remove MJIT worker thread (#6006)Takashi Kokubun
[Misc #18830] Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-06-16* 2022-06-16 [ci skip]git
2022-06-15Add imemo types to global namespace in lldb helpersJemma Issroff
Notes: Merged: https://github.com/ruby/ruby/pull/6020
2022-06-15Remove unnecessary conditionNobuyoshi Nakada
`no_blockarg` is called for non-null `node` only.
2022-06-15[rubygems/rubygems] Revert "Support running specs with asdf version manager"David Rodríguez
This reverts commit https://github.com/rubygems/rubygems/commit/4b2d09af5bc7. https://github.com/rubygems/rubygems/commit/90ca7a7163
2022-06-15[rubygems/rubygems] Support running specs with asdf version managerDavid Rodríguez
The `asdf-ruby` plugin sets `RUBYLIB` to require some code to reshim after installing gems. This interferes with our specs. Reset that, but leave any "internal" entries in places, because the ruby-core test setup also uses RUBYLIB. https://github.com/rubygems/rubygems/commit/4b2d09af5b
2022-06-15Update bundled gems list at 2022-06-15git
2022-06-14MJIT: Add a test for Process.waitall handlingTakashi Kokubun
2022-06-15[ruby/fileutils] [DOC] More on cp_r (https://github.com/ruby/fileutils/pull/87)Burdette Lamar
* More on cp_r https://github.com/ruby/fileutils/commit/82a2b62578
2022-06-15* 2022-06-15 [ci skip]git
2022-06-15[ruby/psych] Fix libyaml download failure rescue under minirubyAlan Wu
I tried to build Ruby on a system without libyaml today and realized that my attempt from <https://github.com/ruby/psych/pull/557> doesn't fix the error in <https://github.com/ruby/psych/issues/552>. I still got the same `LoadError` from `digest` which stopped the build. Since `LoadError` is not a `StandardError`, a plain `rescue` doesn't catch it. Catch `LoadError` explicitly instead and reduce the scope of the `begin` block. I tested this change in a Ruby build on macOS without libyaml installed and confirmed that `make` continues with a warning instead of aborting: *** Following extensions are not compiled: psych: Could not be configured. It will not be installed. ... This should address <https://bugs.ruby-lang.org/issues/18790>. https://github.com/ruby/psych/commit/251289ba83
2022-06-14YJIT: On-demand executable memory allocation; faster boot (#5944)Alan Wu
This commit makes YJIT allocate memory for generated code gradually as needed. Previously, YJIT allocates all the memory it needs on boot in one go, leading to higher than necessary resident set size (RSS) and time spent on boot initializing the memory with a large memset(). Users should no longer need to search for a magic number to pass to `--yjit-exec-mem` since physical memory consumption should now more accurately reflect the requirement of the workload. YJIT now reserves a range of addresses on boot. This region start out with no access permission at all so buggy attempts to jump to the region crashes like before this change. To get this hardening at finer granularity than the page size, we fill each page with trapping instructions when we first allocate physical memory for the page. Most of the time applications don't need 256 MiB of executable code, so allocating on-demand ends up doing less total work than before. Case in point, a simple `ruby --yjit-call-threshold=1 -eitself` takes about half as long after this change. In terms of memory consumption, here is a table to give a rough summary of the impact: | Peak RSS in MiB | -eitself example | railsbench once | | :-------------: | ---------------: | --------------: | | before | 265 | 377 | | after | 11 | 143 | | no YJIT | 10 | 101 | A new module is introduced to handle allocation bookkeeping. `CodePtr` is moved into the module since it has a close relationship with the new `VirtualMemory` struct. This new interface has a slightly smaller surface than before in that marking a region as writable is no longer a public operation. Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-06-14[ruby/fileutils] [DOC] More on paths and lists ↵Burdette Lamar
(https://github.com/ruby/fileutils/pull/86) * More on paths and lists https://github.com/ruby/fileutils/commit/c3d92d34f4
2022-06-14ripper: Check if anonymous parameters defined [Bug #18828]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6016
2022-06-14Add placeholder to let braces matchNobuyoshi Nakada
2022-06-13Move String RVALUES between poolsMatt Valentine-House
And re-embed any strings that can now fit inside the slot they've been moved to Notes: Merged: https://github.com/ruby/ruby/pull/5986
2022-06-13Drop MinGW support of MJIT (#6012)Takashi Kokubun
[Feature #18824] Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-06-14* 2022-06-14 [ci skip]git
2022-06-14[ruby/fileutils] [DOC] Clarify path arguments ↵Burdette Lamar
(https://github.com/ruby/fileutils/pull/85) https://github.com/ruby/fileutils/commit/5f9ef9ddc8
2022-06-13[ruby/fileutils] [DOC] Enhanced Rdoc (https://github.com/ruby/fileutils/pull/84)Burdette Lamar
Treats: ::chown_R ::touch ::commands ::options ::have_option? ::options_of ::collect_method https://github.com/ruby/fileutils/commit/5df0324f52
2022-06-13[ruby/reline] Revert "Merge pull request #441 from ↵st0012
nevans/workaround-linker-script-so" This reverts commit https://github.com/ruby/reline/commit/4ccf128ffa18, reversing changes made to https://github.com/ruby/reline/commit/a2651419e9a0. https://github.com/ruby/reline/commit/51053138a4
2022-06-13Enable "make annocheck" on platforms other than Linux.Jun Aruga
The annocheck supports ELF format binaries compiled for any OS and for any architecture. It can work in not only Linux but also FreeBSD and Solaris. It is designed to be independent of the host OS and the architecture. Even in Mac, as the binaries are Mach-O foramt, the annocheck fails correctly with the message. e.g. Test binaries compiled for Mac OSX 10.13.6 (target_os: darwin17) in Fedora 35. ``` $ cat /etc/fedora-release Fedora release 35 (Thirty Five) $ file ruby ruby: Mach-O 64-bit x86_64 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|WEAK_DEFINES|BINDS_TO_WEAK|PIE> $ annocheck ruby annocheck: Version 10.66. annocheck: Warning: ruby: is not an ELF format file. ``` See <https://sourceware.org/bugzilla/show_bug.cgi?id=29173> for details. Notes: Merged: https://github.com/ruby/ruby/pull/5916
2022-06-13compile.c (add_adjust_info): Remove `insns_info_index > 0`Yusuke Endoh
... because insns_info_index could not be zero here. Also it adds an invariant check for that. This change will prevent the following warning of GCC 12.1 http://rubyci.s3.amazonaws.com/arch/ruby-master/log/20220613T000004Z.log.html.gz ``` compile.c:2230:39: warning: array subscript 2147483647 is outside array bounds of ‘struct iseq_insn_info_entry[2147483647]’ [-Warray-bounds] 2230 | insns_info[insns_info_index-1].line_no != adjust->line_no) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ ``` Notes: Merged: https://github.com/ruby/ruby/pull/6008
2022-06-13cont.c: prevent a warning of GCC 12.1Yusuke Endoh
... by assigning a dummy value to the allocated stack. http://rubyci.s3.amazonaws.com/arch/ruby-master/log/20220613T000004Z.log.html.gz ``` cont.c: In function ‘cont_restore_0.constprop’: cont.c:1489:28: warning: ‘*sp’ may be used uninitialized [-Wmaybe-uninitialized] 1489 | space[0] = *sp; | ^~~ ``` Also it adds some comments about the hack of dummy stack allocation. Notes: Merged: https://github.com/ruby/ruby/pull/6010
2022-06-13Handle case where write result is zero.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/6009
2022-06-13[ruby/reline] Check the ambiguous char width only on ttyNobuyoshi Nakada
It sent the char to check even to non-tty, e.g., pipe. This causes `unknown command: "\xE2\x96\xBDstart ` warnings on ruby's parallel test on Windows, where non-standard FDs cannot be passed to child processes. https://github.com/ruby/reline/commit/0d373647fb
2022-06-13Prevent a "warning: `*' interpreted as argument prefix"Yusuke Endoh
2022-06-13* 2022-06-13 [ci skip]git
2022-06-13Prevent a warning: assigned but unused variable - outYusuke Endoh
http://rubyci.s3.amazonaws.com/ubuntu1804/ruby-master/log/20220613T003003Z.log.html.gz ``` /home/chkbuild/chkbuild/tmp/build/20220613T003003Z/ruby/test/ruby/test_yjit_exit_locations.rb:96: warning: assigned but unused variable - out /home/chkbuild/chkbuild/tmp/build/20220613T003003Z/ruby/test/ruby/test_yjit_exit_locations.rb:96: warning: assigned but unused variable - err /home/chkbuild/chkbuild/tmp/build/20220613T003003Z/ruby/test/ruby/test_yjit_exit_locations.rb:96: warning: assigned but unused variable - status ```
2022-06-12* 2022-06-12 [ci skip]git
2022-06-12[rubygems/rubygems] Don't on gemspecs with invalid `require_paths`, just warnDavid Rodríguez
These gemspecs already work most of the times. When they are installed normally, the require_paths in the gemspec stub line becomes actually correct, and the incorrect value in the real gemspec is ignored. It only becomes an issue in standalone mode. In Ruby 3.2, `Kernel#=~` has been removed, and that means that it becomes harder for us to gracefully deal with this error in standalone mode, because it now happens earlier due to calling `Array#=~` for this invalid gemspec (since require_paths is incorrectly an array of arrays). The easiest way to fix this is to actually make this just work instead by automatically fixing the issue when reading the packaged gemspec. https://github.com/rubygems/rubygems/commit/d3f2fe6d26
2022-06-11Fix typo in yjit.c comments [ci skip]Takayoshi Nishida
Notes: Merged: https://github.com/ruby/ruby/pull/6007 Merged-By: nobu <nobu@ruby-lang.org>
2022-06-11[rubygems/rubygems] Reuse package from the installer for extracting the ↵David Rodríguez
specification Previously we would instantiate two different packages and extract the specification from the package twice for each gem installed. We can reuse the installer for this so that we just need to do it once. https://github.com/rubygems/rubygems/commit/e454f850b1
2022-06-11[rubygems/rubygems] Move security exception handling to the only place using itDavid Rodríguez
https://github.com/rubygems/rubygems/commit/ba975b3b7f
2022-06-11[rubygems/rubygems] Swapping should not raise any errorsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/600a9ac658
2022-06-11[rubygems/rubygems] Remove unclear commentDavid Rodríguez
This is the explanation of why we do the swapping, not of why we download the gem. https://github.com/rubygems/rubygems/commit/1a25eb7e7b
2022-06-11[rubygems/rubygems] `Gem::Specification.loaded_from` is already set by the ↵David Rodríguez
installer https://github.com/rubygems/rubygems/commit/796eebfdbf
2022-06-11[rubygems/rubygems] Refactor some more duplicated logicDavid Rodríguez
https://github.com/rubygems/rubygems/commit/9bd389e1b6
2022-06-11[rubygems/rubygems] Move `no_install` setting check to a more sensible placeDavid Rodríguez
It's only related to the `bundle cache` command, so it should be checked there. https://github.com/rubygems/rubygems/commit/cf749f8ffa
2022-06-11[rubygems/rubygems] No need to redownload if package already thereDavid Rodríguez
https://github.com/rubygems/rubygems/commit/285ccbc07e
2022-06-11[rubygems/rubygems] No need to overwrite path when there's a remoteDavid Rodríguez
https://github.com/rubygems/rubygems/commit/d86fb2c316
2022-06-11[rubygems/rubygems] Remove another unnecessary requireDavid Rodríguez
https://github.com/rubygems/rubygems/commit/04e6a5ae31
2022-06-11[rubygems/rubygems] Simplify `Gem::Security::Exception` handlingDavid Rodríguez
These days all these errors are raised as `Gem::Security::Exception` so there's no need to do any matching on the exception message. https://github.com/rubygems/rubygems/commit/bd3403da57
2022-06-11[rubygems/rubygems] Remove unnecessary requireDavid Rodríguez
The `security_policies` method already requires it. https://github.com/rubygems/rubygems/commit/d19b088f2f
2022-06-11[rubygems/rubygems] Remove unnecessary `spec.remote` guardDavid Rodríguez
It's checked before calling the method already. https://github.com/rubygems/rubygems/commit/4eb00e9586
2022-06-11[rubygems/rubygems] Refactor ambiguous gems checkDavid Rodríguez
https://github.com/rubygems/rubygems/commit/a00c79a4da
2022-06-10fix typo in dir documentation (#6002)Jaeson Lauritzen
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-06-10Make method id explicit in rb_exec_recursive_outerJohn Hawthorn
Previously, because opt_aref and opt_aset don't push a frame, when they would call rb_hash to determine the hash value of the key, the initial level of recursion would incorrectly use the method id at the top of the stack instead of "hash". This commit replaces rb_exec_recursive_outer with rb_exec_recursive_outer_mid, which takes an explicit method id, so that we can make the hash calculation behave consistently. rb_exec_recursive_outer was documented as being internal, so I believe this should be okay to change. Notes: Merged: https://github.com/ruby/ruby/pull/6004