summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-09-19Stop recommending duplicated options [ci skip] (#6400)Takashi Kokubun
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-09-19Only exit if ruby2_keywords and splat together (#6395)Jimmy Miller
Before this change railsbench spent less time in yjit than before splat. This brings it back to parity. Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-09-19Fix the option name in the error message [ci skip]Nobuyoshi Nakada
2022-09-19Extract UNICODE_DOWNLOADERNobuyoshi Nakada
2022-09-19Downloader: Define long option aliasesNobuyoshi Nakada
2022-09-19Downloader: Define per-class command line optionsNobuyoshi Nakada
Move `Downloader::Unicode` specific options, and parse options after the downloader specificier.
2022-09-18Include lib/mjit/instruction.rb in a snapshotTakashi Kokubun
baseruby shouldn't be necessary once a snapshot is built.
2022-09-18Move mjit/instruction.rb rule to common.mkTakashi Kokubun
as suggested by nobu. We don't really need to generate this for Windows, but using common.mk whenever possible would probably make maintenance easier. Notes: Merged: https://github.com/ruby/ruby/pull/6398
2022-09-18Update bindgen crate (#6397)Takashi Kokubun
to get rid of deprecated indirect dependency, ansi_term Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-09-18Introduce --basedir to insns2vm.rbTakashi Kokubun
and leverage that to preserve the directory structure under tool/ruby_vm/views
2022-09-18Revert "Preserve the directory structure under tool/ruby_vm/views"Takashi Kokubun
This reverts commit 62ec621f8c7457374d1f08aec97138ac1b7bdf2a. will revisit this once fixing non-MJIT targets
2022-09-18Preserve the directory structure under tool/ruby_vm/viewsTakashi Kokubun
for nested target directories
2022-09-18Demote mjit_instruction.rb from builtin to stdlibTakashi Kokubun
2022-09-18Replace revision.tmp with the HAVE_BASERUBY trickTakashi Kokubun
but without relying on replacement. This seems to work on OpenBSD as well.
2022-09-17Always generate non-empty revision.hTakashi Kokubun
Non-GNU make seems to generate empty revision.h, but it doesn't make sense since https://github.com/ruby/ruby/pull/6382. Also the $(HAVE_BASERUBY:yes=tmp) hack doesn't seem to be working on OpenBSD. I'll remove it to focus on fixing RubyCI first, and then deal with baseruby-missing environments. At least a snapshot should have revision.h and it might work fine though.
2022-09-17Remove git command existence check againTakashi Kokubun
With 33c6dd2cc89c27bbf406508ec39038a181fb99bc, it's no longer necessary. This is what I got on openbsd-current: ``` -bash-5.1$ git -v unknown option: -v usage: git [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] [--super-prefix=<path>] [--config-env=<name>=<envvar>] <command> [<args>] -bash-5.1$ git version git version 2.35.1 ```
2022-09-17Fallback to VCS.release_date on VCS::NotFoundErrorTakashi Kokubun
when -q is given. One of the RubyCI servers, freebsd12, had a broken git environment: ``` $ git show fatal: detected dubious ownership in repository at '/usr/home/chkbuild/chkbuild/tmp/build/20220917T123002Z/ruby' To add an exception for this directory, call: git config --global --add safe.directory /usr/home/chkbuild/chkbuild/tmp/build/20220917T123002Z/ruby ``` tool/lib/vcs.rb doesn't work normally for that server. Even for such cases, we'd like to generate a usable revision.h. So this patch lets revision.h fallback to default VCS.release_date when VCS::NotFoundError is raised.
2022-09-17Skip test_wait on MinGW CITakashi Kokubun
This test has been unstable, and it seems like we're not interested in fixing that for MinGW. https://github.com/ruby/ruby/actions/runs/3073317191/jobs/4965373284
2022-09-17Auto-generate the release date on version.h from git CommitDate (#6382)Takashi Kokubun
* Auto-generate the release date on version.h from git CommitDate * Generate revision.h on mswin Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-09-17Move case-folding.rb to tooldir with enc-prefixNobuyoshi Nakada
2022-09-17Derive UNICODE_EMOJI_VERSION from UNICODE_VERSIONNobuyoshi Nakada
2022-09-17Emoji files header changed at 15.0 againNobuyoshi Nakada
2022-09-17Follow emoji data files header changeNobuyoshi Nakada
The header of emoji data files in UCD, which were moved at 13.0.0, has been changed since 14.0.0. It seems to be the same as other files in UCD.
2022-09-17[Bug #19005] dynamic_lookup linker option in external librariesNobuyoshi Nakada
The warning against `-undefined dynamic_lookup` is just a warning yet, and many gems seem to pay no attention to warnings. Until it fails actually, keep it as a migration path, except for standard extension libraries and bundled extension gems. Notes: Merged: https://github.com/ruby/ruby/pull/6394 Merged-By: nobu <nobu@ruby-lang.org>
2022-09-17* 2022-09-17 [ci skip]git
2022-09-17[ruby/irb] Support --noscript option to not use first non-option argument as ↵Jeremy Evans
script Also add --script option to turn the option back on. Previously there wasn't a way to get an interactive IRB session and access arguments provided on the command line. Additionally, handle `-` as script as stdin. In Unix-like tools, `-` means to take standard input instead of a file. This doesn't result in exactly the same output for: ``` echo 'p ARGV' > args.rb; irb args.rb a b c ``` and ``` echo 'p ARGV' | irb - a b c ``` Due to how irb handles whether stdin is a tty. However, this change allows use of `-` as a argument, instead of giving an unrecognized switch error. This required some small changes to context.rb (to handle `-` as standard input) and input-method.rb (to have FileInputMethod accept IO arguments in addition to strings). Implements [Feature #15371] https://github.com/ruby/irb/commit/4192683ba2
2022-09-16[ci skip] Fix typos in documentation in io.cPeter Zhu
2022-09-16Invalidate i-cache after link_labels (#6388)Takashi Kokubun
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-09-16Update bundled_gemsKoichi Sasada
Try latest patch to avoid some race on Mac OS X. Notes: Merged: https://github.com/ruby/ruby/pull/6390
2022-09-16Omit a DRb test on MinGWTakashi Kokubun
This test seems to leak a thread and let TestIOWait fail: https://github.com/ruby/ruby/actions/runs/3065426880/jobs/4949517274 DRb almost never seemed to stably work on MinGW. I don't think we intend to fix it either. We should just omit DRb tests when they fail on MinGW.
2022-09-16Now test-bundler nees fake.rbNobuyoshi Nakada
2022-09-16* 2022-09-16 [ci skip]git
2022-09-16Fix splat args (#6385)Jimmy Miller
* Fix splat args Cfuncs were not working properly so I disabled them right now. There were some checks above that were also actually preventing splat args from being called. Finally I did some basic code cleanup after realizing I didn't need to mutate argc so much * Add can't compile for direct cfunc splat call * Fix typo * Update yjit/src/codegen.rs Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com> Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-09-15YJIT should die if we compile on Aarch64 with no instruction cache clear ↵Noah Gibbs
available (#6380) YJIT should die if we compile on ARM64 with no icache clear available Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-09-15Add asm comments to make disasm more readable (#6377)Maxime Chevalier-Boisvert
Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-09-15[rubygems/rubygems] Mask the file mode when extracting filesKevin Newton
When extracting files from the tarball, a mode is retrieved from the header. Occasionally you'll encounter a gem that was packaged on a system whose permission bits result in a value that is larger than the value that File.chmod will allow (anything >= 2^16). In that case the extraction fails with a RangeError, which is pretty esoteric. If you extract the tarball with the tar and gunzip utilities, the file permissions end up being just the bottom 16 bits masked off from the original value. I've mirrored that behavior here. Per the tar spec: > Modes which are not supported by the operating system restoring > files from the archive will be ignored. I think that basically means what I've done here. --- This commit also changes the behavior very slightly with regard to when the chmod is called. Previously it was called while the file descriptor was still open, but after the write call. When write flushes, the file permissions are changed to the mode value from the File.open call, undoing the changes made by FileUtils.chmod. CRuby appears to flush the buffer after the chmod call, whereas TruffleRuby flushes before the chmod call. So the file permissions can change depending on implementation. Both implementations end up getting the correct file permissions for the bottom 9 bits (user, group, world), but differ with regard to the sticky bit in the next 3. To get consistent behavior, this commit changes it to close the file descriptor before attempting to chmod anything, which makes it consistent because the write flushes in both cases. https://github.com/rubygems/rubygems/commit/22ce076e99
2022-09-15Remove warning for old TLS version connectionNobuyoshi Nakada
RubyGems.org already has refused connection requests using older than TLS 1.2.
2022-09-15[rubygems/rubygems] Also added x86_64-darwin-21Hiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/c03e7e1564
2022-09-15[rubygems/rubygems] Added arm64-darwin-22 to lockfiles for testingHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/d7956e9ce5
2022-09-15Make CodeQL ignore syntax_suggest because of the performance problemNobuyoshi Nakada
https://github.com/github/codeql/discussions/10120#discussioncomment-3485880
2022-09-15Fix style on vm_ivar benchmarks (#6379)Jemma Issroff
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-09-15[ruby/irb] Refine assertion for failuresNobuyoshi Nakada
https://github.com/ruby/irb/commit/fd047512b3
2022-09-15[ruby/irb] `Dir.mktmpdir` creates a directory including the process IDNobuyoshi Nakada
https://github.com/ruby/irb/commit/a15f68ffdb
2022-09-14Add vm_ivar get, get_unitialized, and lazy_set benchmarksJemma Issroff
Notes: Merged: https://github.com/ruby/ruby/pull/6376
2022-09-14YJIT: Implement specialized respond_to? (#6363)John Hawthorn
* Add rb_callable_method_entry_or_negative * YJIT: Implement specialized respond_to? This implements a specialized respond_to? in YJIT. * Update yjit/src/codegen.rs Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com> Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-09-15[TravisCI] The source of YAML is no longer bundledNobuyoshi Nakada
2022-09-15[TravisCI] Make gems/src directory writableNobuyoshi Nakada
2022-09-15* 2022-09-15 [ci skip]git
2022-09-15Add noarch-fake.rb targetNobuyoshi Nakada
`yes-fake` depends on it when `arch=noarch` is given, but the rule to generate it from fake.rb.in is ignored now.
2022-09-14Initial support for VM_CALL_ARGS_SPLAT (#6341)Jimmy Miller
* Initial support for VM_CALL_ARGS_SPLAT This implements support for calls with splat (*) for some methods. In benchmarks this made very little difference for most benchmarks, but a large difference for binarytrees. Looking at side exits, many benchmarks now don't exit for splat, but exit for some other reason. Binarytrees however had a number of calls that used splat args that are now much faster. In my non-scientific benchmarking this made splat args performance on par with not using splat args at all. * Fix wording and whitespace Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com> * Get rid of side_effect reassignment Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com> Notes: Merged-By: maximecb <maximecb@ruby-lang.org>