summaryrefslogtreecommitdiff
path: root/tool
AgeCommit message (Collapse)Author
2022-07-05Add `--stdout-on-failure`, the reverse of `--stderr-on-failure`Nobuyoshi Nakada
2022-07-05Separate failed output optionNobuyoshi Nakada
It is unrelated to `GlobOption` at all.
2022-06-30Adjust indent [ci skip]Nobuyoshi Nakada
2022-06-29Move function to `static inline` so we don't have leaked globalsAaron Patterson
This function shouldn't leak and is only needed during instruction assembly Notes: Merged: https://github.com/ruby/ruby/pull/6069
2022-06-25Prevent accidental use of assert_raisesNobuyoshi Nakada
2022-06-24Sync RubyGems & Bundler with upstream repoDavid Rodríguez
Notes: Merged: https://github.com/ruby/ruby/pull/6054
2022-06-22vcs.rb: ignore configuration files get rid of aliases [ci skip]Nobuyoshi Nakada
2022-06-22vcs.rb: just one log to check if `--date` option works [ci skip]Nobuyoshi Nakada
2022-06-22vcs.rb: show diagnostic/progressing messages when debugging [ci skip]Nobuyoshi Nakada
2022-06-17tool/extlibs.rb: Use Exception#message for older rubiesAlan Wu
This script runs with BASERUBY, which can be as old as 2.2.x. Exception#full_message is new in 2.5.0. I saw a NoMethodError on the AppVeyor CI where BASERUBY is 2.4.6: https://ci.appveyor.com/project/ruby/ruby/builds/43870654/job/kae4uo2xbhuhqmdw#L121
2022-05-25Hack to avoid leak checkerNobuyoshi Nakada
2022-05-24[ruby/date] Constify gperf-generated tableNobuyoshi Nakada
https://github.com/ruby/date/commit/6d7ab08ffc
2022-05-20Rename test_jit to test_mjitTakashi Kokubun
to avoid confusion with YJIT
2022-05-16Add `make test-annocheck` to detect security issues.Jun Aruga
* Note that as the annocheck binary package is not available on Ubuntu, and it is working in progress in Debian, the script uses Fedora container, and it requires docker or podman command. https://www.debian.org/devel/wnpp/itp.en.html https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926470 * .github/workflows/compilers.yml: Add "gcc-11 annocheck" case. To pass the CI, set `TEST_ANNOCHECK_OPTS: "--skip-pie --skip-notes"` for now. See <https://bugs.ruby-lang.org/issues/18061>. * Skip MJIT tests in case of annocheck case. The MJIT tests fail in the annocheck case. See <https://bugs.ruby-lang.org/issues/18781>. Notes: Merged: https://github.com/ruby/ruby/pull/5900
2022-05-13Stop `build_extensions` when DESTDIR setKazuhiro NISHIYAMA
Try to fix `make install without root privilege` failures on snapshot CIs. example: https://github.com/ruby/actions/actions/runs/2315349280
2022-05-10Honor --with-thread option to enable pthreadNobuyoshi Nakada
2022-04-25[DOC] Move :nodoc: so rdoc finds `RbConfig.ruby`Alan Wu
Rdoc [build] of `master` did not have this method but the reference manual [did]. [build]: https://docs.ruby-lang.org/en/master/RbConfig.html [did]: https://docs.ruby-lang.org/ja/master/class/RbConfig.html#S_RUBY Notes: Merged: https://github.com/ruby/ruby/pull/5843 Merged-By: XrXr
2022-04-22rbinstall: Also do `Gem.ruby` patching for unpacked bundled gemsAlan Wu
Pointing `Gem.ruby` to the newly installed ruby gives mkmf the right inputs to build extensions in bundled gems. Previously, this patching was only done for compressed bundled gems. This patch also prevents `tool/fake.rb` from propagating to the child process running mkmf for the native extension. The way `tool/fake.rb` changes mkmf variables using `Kernel#trace_var` created spooky action at a distance which made debugging difficult. AppVeyor Windows CI started to fail starting with 8a3663789c52ec5635194656af6b69d3d03120ee because it enabled extension building for bundled gems on mswin. This patch should address the CI failures. Notes: Merged: https://github.com/ruby/ruby/pull/5838
2022-04-20Added assert_true and assert_false same as test-unit gemHiroshi SHIBATA
2022-04-16Extract `pipe_readlines` method which reads from the pipelineNobuyoshi Nakada
2022-04-16Simplify the condition expression to ignore commitsNobuyoshi Nakada
2022-04-16Do not import any files under rakelibNobuyoshi Nakada
2022-04-16Fix bundled gems installation when relative loadingNobuyoshi Nakada
2022-04-13Skip build extensions again on cross compiling tooKazuhiro NISHIYAMA
2022-04-13Skip build extensions again on mswin and mingwKazuhiro NISHIYAMA
2022-04-13Enabled to build extensions with the bundled gems againKazuhiro NISHIYAMA
https://github.com/ruby/ruby/commit/cbb115213c42f15638ef119eb20c4d3106eb8b1a https://github.com/ruby/ruby/commit/5c1b76a3a55afeb07116bbd3492303c6b6cd890d
2022-04-07Install built gem extension binariesNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/5774
2022-04-07Obey spec file locations to rubygemsNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/5774
2022-04-06Copyedit parallel test harness crash messageAlan Wu
Mea culpa. Co-authored-by: Kaíque Kandy Koga <kaiquekandykoga@gmail.com>
2022-04-06Copyedit parallel test harness crash messageAlan Wu
Notes: Merged: https://github.com/ruby/ruby/pull/5772
2022-04-05Try to fix NoMethodError on slow environmentsKazuhiro NISHIYAMA
``` 1) Failure: TestParallel::TestParallel#test_hungup [/home/user/ruby/tool/test/testunit/test_parallel.rb:215]: Expected /^Retrying hung up testcases\.+$/ to match "Run options: \n" + " --seed=43403\n" + " --ruby\n" + " \"./miniruby -I../lib -I. -I.ext/common ../tool/runruby.rb --extout=.ext -- --disable-gems\"\n" + " -j\n" + " t1\n" + " --worker-timeout=1\n" + "\n" + "# Running tests:\n" + "\n" + "/home/user/ruby/tool/lib/test/unit.rb:687:in `block in _run_parallel': undefined method `<' for nil:NilClass (NoMethodError)\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:538:in `block in quit_workers'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:537:in `reject!'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:537:in `quit_workers'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:687:in `_run_parallel'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:810:in `_run_suites'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:849:in `_run_suites'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1479:in `_run_anything'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1263:in `_run_anything'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1654:in `run_tests'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1641:in `block in _run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1640:in `each'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1640:in `_run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1682:in `run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1034:in `run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:882:in `run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:154:in `run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1761:in `run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1765:in `run'\n" + "\tfrom /home/user/ruby/tool/test/testunit/tests_for_parallel/runner.rb:14:in `<main>'\n". ```
2022-04-05Use latest RSpec to get rspec-mocks ruby2_keywords fixBenoit Daloze
Notes: Merged: https://github.com/ruby/ruby/pull/5684
2022-04-01Finer-grained constant cache invalidation (take 2)Kevin Newton
This commit reintroduces finer-grained constant cache invalidation. After 8008fb7 got merged, it was causing issues on token-threaded builds (such as on Windows). The issue was that when you're iterating through instruction sequences and using the translator functions to get back the instruction structs, you're either using `rb_vm_insn_null_translator` or `rb_vm_insn_addr2insn2` depending if it's a direct-threading build. `rb_vm_insn_addr2insn2` does some normalization to always return to you the non-trace version of whatever instruction you're looking at. `rb_vm_insn_null_translator` does not do that normalization. This means that when you're looping through the instructions if you're trying to do an opcode comparison, it can change depending on the type of threading that you're using. This can be very confusing. So, this commit creates a new translator function `rb_vm_insn_normalizing_translator` to always return the non-trace version so that opcode comparisons don't have to worry about different configurations. [Feature #18589] Notes: Merged: https://github.com/ruby/ruby/pull/5716
2022-03-31Remove CI configuration files from extracted bundled gemsNobuyoshi Nakada
2022-03-30Fix locations of the second argumentNobuyoshi Nakada
2022-03-28Fix a missing commaNobuyoshi Nakada
2022-03-28Use m4 comments outside macros in m4 filesNobuyoshi Nakada
2022-03-28Extract RUBY_REQUIRE_FUNCSNobuyoshi Nakada
2022-03-25Revert "Finer-grained inline constant cache invalidation"Nobuyoshi Nakada
This reverts commits for [Feature #18589]: * 8008fb7352abc6fba433b99bf20763cf0d4adb38 "Update formatting per feedback" * 8f6eaca2e19828e92ecdb28b0fe693d606a03f96 "Delete ID from constant cache table if it becomes empty on ISEQ free" * 629908586b4bead1103267652f8b96b1083573a8 "Finer-grained inline constant cache invalidation" MSWin builds on AppVeyor have been crashing since the merger. Notes: Merged: https://github.com/ruby/ruby/pull/5715 Merged-By: nobu <nobu@ruby-lang.org>
2022-03-24Finer-grained inline constant cache invalidationKevin Newton
Current behavior - caches depend on a global counter. All constant mutations cause caches to be invalidated. ```ruby class A B = 1 end def foo A::B # inline cache depends on global counter end foo # populate inline cache foo # hit inline cache C = 1 # global counter increments, all caches are invalidated foo # misses inline cache due to `C = 1` ``` Proposed behavior - caches depend on name components. Only constant mutations with corresponding names will invalidate the cache. ```ruby class A B = 1 end def foo A::B # inline cache depends constants named "A" and "B" end foo # populate inline cache foo # hit inline cache C = 1 # caches that depend on the name "C" are invalidated foo # hits inline cache because IC only depends on "A" and "B" ``` Examples of breaking the new cache: ```ruby module C # Breaks `foo` cache because "A" constant is set and the cache in foo depends # on "A" and "B" class A; end end B = 1 ``` We expect the new cache scheme to be invalidated less often because names aren't frequently reused. With the cache being invalidated less, we can rely on its stability more to keep our constant references fast and reduce the need to throw away generated code in YJIT. Notes: Merged: https://github.com/ruby/ruby/pull/5433
2022-03-24Add ISEQ_BODY macroPeter Zhu
Use ISEQ_BODY macro to get the rb_iseq_constant_body of the ISeq. Using this macro will make it easier for us to change the allocation strategy of rb_iseq_constant_body when using Variable Width Allocation. Notes: Merged: https://github.com/ruby/ruby/pull/5698
2022-03-24extlibs.rb: Add fallback `Colorize`Nobuyoshi Nakada
To get rid of an unnecessary dependency for the case using in other repositories. Notes: Merged: https://github.com/ruby/ruby/pull/5701
2022-03-24extlibs.rb: Enclose `Vars` in `ExtLibs` classNobuyoshi Nakada
To get rid of an unnecessary top-level constant for the case using as a library. Notes: Merged: https://github.com/ruby/ruby/pull/5701
2022-03-24extlibs.rb: Extract ExtLibs#processNobuyoshi Nakada
For the case using this script as a library. - `ExtLibs#process` reads and processes an extlibs file. - `ExtLibs#process_under` processes all extlibs files under the given directory. - `Extlibs.run` parses `ARGV` and lets an instance process the directories. Notes: Merged: https://github.com/ruby/ruby/pull/5701
2022-03-10Ignore pre-release for sync target on sync_default_gemsHiroshi SHIBATA
2022-03-08Added release option to sync only released version of the default gemsHiroshi SHIBATA
2022-02-28Merge RubyGems and Bundler masterHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/5606
2022-02-27fake.rb: Set prefix to `$topdir`Nobuyoshi Nakada
Not to refer outside the top build directory from rbconfig.
2022-02-25[ruby/date] Use `assert_deprecated_warn`Nobuyoshi Nakada
https://github.com/ruby/date/commit/c55004715a
2022-02-24Add ABI version to RUBY_LIB_VERSIONPeter Zhu
This commit adds the ABI version as build metadata to RUBY_LIB_VERSION. This will ensure that gems are installed in a path with the ABI version. Notes: Merged: https://github.com/ruby/ruby/pull/5591