summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-09-14[ruby/irb] Fix history file saving with concurrent irb sessions when history ↵Jeremy Evans
file doesn't exist If history file didn't exist when irb was started, @loaded_history_mtime would be nil. However, if the history file didn't exist before, but it exists when saving history, that means the history file was modified, and we should handle it the same way as we handle the other case where the history file was modified. Fixes #388 https://github.com/ruby/irb/commit/8d277aafcb
2022-09-14* 2022-09-14 [ci skip]git
2022-09-14Remove CODEOWNERS to switch to auto-request-review (#6365)Takashi Kokubun
* Remove CODEOWNERS to switch to auto-request-review * Random change to test reviews * Revert "Random change to test reviews" This reverts commit 814b10d062d82d953019ea4afadc3f8fcf638379. Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-09-13Add GMP support for mswinU.Nakamura
2022-09-13Increase the timeout for make all on MinGWTakashi Kokubun
https://github.com/ruby/ruby/actions/runs/3041702828/jobs/4899106526#step:14:1219
2022-09-13Drop synchronized eventTakashi Kokubun
because it doesn't seem to be working. It's a bit annoying that synchronized doesn't work, but in many cases, opened and ready_for_review should be enough. As a last resort, you could close/reopen it. Also, the token scope needs to be public_repo instead of repo:status.
2022-09-13Tweak the glob for auto_request_reviewTakashi Kokubun
2022-09-13Configure auto_request_review for YJIT teamTakashi Kokubun
We need to use pull_request_target instead of pull_request to use secrets. pull_request_target seems to be executed from the default branch, so pushing this to master to test this.
2022-09-13* 2022-09-13 [ci skip]git
2022-09-13Try latest debug.gemKoichi Sasada
Notes: Merged: https://github.com/ruby/ruby/pull/6362
2022-09-12[rubygems/rubygems] Deduplicate results just onceDavid Rodríguez
Instead of checking for uniqueness for every spec. https://github.com/rubygems/rubygems/commit/97d28c9665
2022-09-12[rubygems/rubygems] Use a single hash to keep track of prereleasesDavid Rodríguez
https://github.com/rubygems/rubygems/commit/9d7bd177b0
2022-09-12[rubygems/rubygems] Remove unnecessary sortingDavid Rodríguez
Already done by the gem version promoter. https://github.com/rubygems/rubygems/commit/aae2cc9fe0
2022-09-12[rubygems/rubygems] Simplify instantiating the gem version promoterDavid Rodríguez
https://github.com/rubygems/rubygems/commit/c4e2737f2c
2022-09-12[rubygems/rubygems] Let specs be sorted just once by the gem version promoterDavid Rodríguez
https://github.com/rubygems/rubygems/commit/3cea25a39d
2022-09-12[rubygems/rubygems] This sorting seems unnecessary tooDavid Rodríguez
https://github.com/rubygems/rubygems/commit/823cb1fef9
2022-09-12[rubygems/rubygems] Remove unnecessary spec sortingDavid Rodríguez
Specs in a SpecSet with the same name are only sorted by platform priority when they are read. No need to sort everything eagerly. https://github.com/rubygems/rubygems/commit/aeafff52df
2022-09-12Add NEWS entry for the previous commitBenoit Daloze
2022-09-12Remove get_actual_encoding() and the dynamic endian detection for dummy ↵Benoit Daloze
UTF-16/UTF-32 * And simplify callers of get_actual_encoding(). * See [Feature #18949]. * See https://github.com/ruby/ruby/pull/6322#issuecomment-1242758474
2022-09-12Autoconf 2.70 or AC_PROG_CC_C99 for earlier is checking for C99Nobuyoshi Nakada
It is no longer necessary to add it to `CFLAGS`/`CPPFLAGS` later. Furthermore, as `CPPFLAGS` is used also with C++ compiler, the option particular to C such as `-std=gnu99` results in an error. Notes: Merged: https://github.com/ruby/ruby/pull/6361 Merged-By: nobu <nobu@ruby-lang.org>
2022-09-12Add comments for some peephole optimizations [ci skip]Maple Ong
Notes: Merged: https://github.com/ruby/ruby/pull/6357 Merged-By: nobu <nobu@ruby-lang.org>
2022-09-12* 2022-09-12 [ci skip]git
2022-09-12Revert "defs/gmake.mk: no _FORTIFY_SOURCE unless optimization"Nobuyoshi Nakada
This reverts commit b8c376cb9d91854fd40f6e06f07773404899b54f, as it seems no longer needed probably. Notes: Merged: https://github.com/ruby/ruby/pull/6356
2022-09-11[Win32] Negative length `IO#sysread`Jeremy Bopp
Raise `ArgumentError` in `IO#sysread` on Windows when given a negative length. Fixes [Bug #18880] Notes: Merged: https://github.com/ruby/ruby/pull/6354 Merged-By: nobu <nobu@ruby-lang.org>
2022-09-11MJIT: Use the built-in PACK_MAPTakashi Kokubun
106744107b made this possible.
2022-09-11[ruby/fiddle] Fix PACK_MAP for unsigned types ↵Takashi Kokubun
(https://github.com/ruby/fiddle/pull/110) https://github.com/ruby/fiddle/commit/4a71246645ccff001292c9d80b855b2ef5bf06c1
2022-09-11Remove -j from MinGW test-allTakashi Kokubun
MinGW CI has been crashing too often. Now that we don't have slow test_mjit in MinGW, I'd like to see if not using parallel test workers fixes the problem.
2022-09-11MJIT: Do not hang after forking with threadsTakashi Kokubun
First, rb_mjit_fork should call rb_thread_atfork to stop threads after fork in the child process. Unfortunately, we cannot use rb_fork_ruby to prevent this kind of mistakes because MJIT needs special handling of waiting_pid and mjit_pause/resume. Second, mjit_waitpid_finished should be checked regardless of trap_interrupt. It doesn't seem like the flag is not set when SIGCHLD is handled for an MJIT child process.
2022-09-11* 2022-09-11 [ci skip]git
2022-09-10Deprecate Encoding#replicateBenoit Daloze
* See [Feature #18949].
2022-09-10[win32] Set proper `NULLCMD` in rbconfig.rb [ci skip]Nobuyoshi Nakada
2022-09-10[MSWin] Get rid of single quotes in sed command linesNobuyoshi Nakada
GnuWin32 sed strips only double quotes, but not single quotes, and dies: ``` sed: -e expression #1, char 1: unknown command: `'' ```
2022-09-10Enable deprecation warnings for test-allBenoit Daloze
* So deprecated methods/constants/functions are dealt with early, instead of many tests breaking suddenly when removing a deprecated method/constant/function. * Follows https://bugs.ruby-lang.org/issues/17591 Notes: Merged: https://github.com/ruby/ruby/pull/6321
2022-09-09YJIT: Branch directly when nil? is known from typesJohn Hawthorn
Notes: Merged: https://github.com/ruby/ruby/pull/6350
2022-09-09YJIT: Branch directly when truthyness is knownJohn Hawthorn
Notes: Merged: https://github.com/ruby/ruby/pull/6350
2022-09-10Using is_broken_string functionS-H-GAMELINKS
Notes: Merged: https://github.com/ruby/ruby/pull/6346
2022-09-10Fix parallel build on MINGWLars Kanis
When the build is running with a base ruby then generating `x64-ucrt-ruby320.rc` could fail due to a missing dependency to `x64-mingw-ucrt-fake.rb`. This commit adds this dependency. A failing build looks like so: ``` generating x64-mingw-ucrt-fake.rb generating x64-ucrt-ruby320.rc ../snapshot-master/win32/resource.rb:in `require': cannot load such file -- ./x64-mingw-ucrt-fake (LoadError) make: *** [GNUmakefile:57: x64-ucrt-ruby320.rc] Error 1 make: *** Waiting for unfinished jobs.... linking miniruby.exe x64-mingw-ucrt-fake.rb updated ``` Notes: Merged: https://github.com/ruby/ruby/pull/6347
2022-09-09YJIT: eliminate redundant mov in csel/cmov on x86 (#6348)Maxime Chevalier-Boisvert
* Eliminate redundant mov in csel/cmov. Translate mov reg,0 into xor * Fix x86 asm test * Remove dbg!() * xor optimization unsound because it resets flags Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-09-10* 2022-09-10 [ci skip]git
2022-09-09Better offsets (#6315)Kevin Newton
* Introduce InstructionOffset for AArch64 There are a lot of instructions on AArch64 where we take an offset from PC in terms of the number of instructions. This is for loading a value relative to the PC or for jumping. We were usually accepting an A64Opnd or an i32. It can get confusing and inconsistent though because sometimes you would divide by 4 to get the number of instructions or multiply by 4 to get the number of bytes. This commit adds a struct that wraps an i32 in order to keep all of that logic in one place. It makes it much easier to read and reason about how these offsets are getting used. * Use b instruction when the offset fits on AArch64 Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-09-09[rubygems/rubygems] Fix resolution on non-musl platformsDavid Rodríguez
Gems without specific platform were being preferred over matching platform specific gems. https://github.com/rubygems/rubygems/commit/37b95b9159
2022-09-09[DOC] Update `Struct#new` behavior with `keyword_init: true`Nobuyoshi Nakada
2022-09-09Avoid unnecessary copying when removing the leading part of a stringKazuki Yamaguchi
Remove the superfluous str_modify_keep_cr() call from rb_str_update(). It ends up calling either rb_str_drop_bytes() or rb_str_splice_0(), which already does checks if necessary. The extra call makes the string "independent". This is not always wanted, in other words, it can keep the same shared root when merely removing the leading part of a shared string. Notes: Merged: https://github.com/ruby/ruby/pull/6336
2022-09-09Support sub-library in builtin-loaderNobuyoshi Nakada
Previously, it was supported in prelude.c, but has not followed up the builtin-loader system. Notes: Merged: https://github.com/ruby/ruby/pull/6344
2022-09-09More robust macro parser (#6343)Aaron Patterson
I want to use more complicated macros with MJIT. For example: ``` # define SHAPE_MASK (((unsigned int)1 << SHAPE_BITS) - 1) ``` This commit adds a simple recursive descent parser that produces an AST and a small visitor that converts the AST to Ruby. Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-09-09Move RDoc `--`/`++` directives to commentsNobuyoshi Nakada
2022-09-09Built-in function table sentinels do not need namesNobuyoshi Nakada
2022-09-09Fix unexpected "duplicated key name" error in paren-less one line pattern ↵Kazuki Tsujimoto
matching [Bug #18990]
2022-09-09Ignore EACCES on WindowsNobuyoshi Nakada
2022-09-08Remove as many unnecessary moves as possible (#6342)v3_2_0_preview2Kevin Newton
This commit does a bunch of stuff to try to eliminate as many unnecessary mov instructions as possible. First, it introduces the Insn::LoadInto instruction. Previously when we needed a value to go into a specific register (like in Insn::CCall when we're putting values into the argument registers or in Insn::CRet when we're putting a value into the return register) we would first load the value and then mov it into the correct register. This resulted in a lot of duplicated work with short live ranges since they basically immediately we unnecessary. The new instruction accepts a destination and does not interact with the register allocator at all, making it much more efficient. We then use the new instruction when we're loading values into argument registers for AArch64 or X86_64, and when we're returning a value from AArch64. Notably we don't do it when we're returning a value from X86_64 because everything can be accomplished with a single mov anyway. A couple of unnecessary movs were also present because when we called the split_load_opnd function in a lot of split passes we were loading all registers and instruction outputs. We no longer do that. This commit also makes it so that UImm(0) passes through the Insn::Store split without attempting to be loaded, which allows it can take advantage of the zero register. So now instead of mov-ing 0 into a register and then calling store, it just stores XZR. Notes: Merged-By: maximecb <maximecb@ruby-lang.org>