summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-06-15MJIT: Deal with mjit_free_iseq on mjit_notify_waitpidTakashi Kokubun
2022-06-15MJIT: Fix test_jit_failure for mswinTakashi Kokubun
2022-06-15MJIT: Handle C compiler failuresTakashi Kokubun
2022-06-15Restore rb_exec_recursive_outerJohn Hawthorn
This was a public method, so we should probably keep it. Notes: Merged: https://github.com/ruby/ruby/pull/6027
2022-06-15MJIT: Handle JIT failure properlyTakashi Kokubun
2022-06-16[ruby/fileutils] [DOC] More on paths and lists ↵Burdette Lamar
(https://github.com/ruby/fileutils/pull/88) https://github.com/ruby/fileutils/commit/ba3ae2430d
2022-06-15[ci skip] [lldb] Ensure rbbt has loaded the globalsMatt Valentine-House
rb_backtrace relies on the existend of RUBY_T_MASK. This is set up by the global loading code in lldb_init() rb_backtrace does not call lldb_init previously, and therefore would only work if called after another lldb function that _did_ load the globals. Notes: Merged: https://github.com/ruby/ruby/pull/6026
2022-06-15[ci skip] Print the rb_classext_t for a class, using an offsetMatt Valentine-House
Now that classes are using VWA, the RCLASS_PTR uses an offset to get the rb_classext_t object. Doing this all the time in lldb is boring. So script lldb to do it for us Notes: Merged: https://github.com/ruby/ruby/pull/6024
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