summaryrefslogtreecommitdiff
path: root/tool
AgeCommit message (Collapse)Author
2020-03-11Pin and inline cme in JIT-ed method callsTakashi Kokubun
``` $ benchmark-driver benchmark.yml -v --rbenv 'before --jit;after --jit' --repeat-count=12 --output=all before --jit: ruby 2.8.0dev (2020-03-11T07:43:12Z master e89ebdcb87) +JIT [x86_64-linux] after --jit: ruby 2.8.0dev (2020-03-11T07:54:18Z master 143776a0da) +JIT [x86_64-linux] Calculating ------------------------------------- before --jit after --jit Optcarrot Lan_Master.nes 73.86976729561439 77.20184819316513 fps 74.46997176460742 78.43493030231805 77.59686308754307 78.55714131655935 78.53693921126656 79.08984255596820 80.10158944910573 79.17751731838183 80.12254974411167 79.60853122429181 80.28678655204945 79.74674066871896 80.38690681095379 79.90624544440300 80.79223498756919 80.57881084206193 80.82857188422419 80.70677614429169 81.06447745878245 81.03868541295149 81.21620802278490 82.16354660940607 ```
2020-03-10Optimize away call data refs in JIT-ed method callsTakashi Kokubun
According to ko1, `cd->cc != cc` was for GC.compact guard. As we pin cc by rb_gc_mark(), we don't need the check. ``` $ benchmark-driver benchmark.yml -v --rbenv 'before --jit;after --jit' --repeat-count=12 --output=all before --jit: ruby 2.8.0dev (2020-03-11T05:36:48Z master da6948753e) +JIT [x86_64-linux] after --jit: ruby 2.8.0dev (2020-03-11T06:26:34Z master 36b20b8b4a) +JIT [x86_64-linux] Calculating ------------------------------------- before --jit after --jit Optcarrot Lan_Master.nes 74.03480698689405 71.63404803273507 fps 74.15085286586992 73.43923328104295 75.51738277744781 75.75465268365384 76.24922600109410 76.74071607861318 76.45513422802325 77.47521029238116 76.86617230739330 78.14759496269018 77.71509137131933 79.14051571125866 77.72839157096146 79.35884822673313 78.25218904561633 79.92538876408051 78.72521071333249 79.98075556706726 78.79950460165091 80.51747831497875 79.43884960720381 80.97973166525254 ```
2020-03-10tool/sync_default_gems.rb: update paths for opensslKazuki Yamaguchi
Now ruby/openssl has a different directory structure. The test suite is moved from /test/test_* to /test/openssl/test_*.
2020-03-10Remove an unnecessary TODO commentTakashi Kokubun
Fixing https://github.com/ruby/ruby/blob/4bcd5981e80d3e1852c8723741a0069779464128/mjit.c#L338 should be the right solution for this. We may not be able to free the cc immediately. Plus, we're not copying cc but just holding references to be marked. cc should be GC-ed once jit_unit is freed.
2020-03-10Capture inlined iseq's cc entries in root iseq'sTakashi Kokubun
jit_unit to avoid marking wrong cc entries when inlined iseq is compiled multiple times, resolving the TODO added by daf7c48d88. This obviates pseudo jit_unit in inlined iseq introduced by 7ec2359374 and fixes memory leak of the adhoc unit.
2020-03-09Use https for downloading Unicode data.Hiroshi SHIBATA
Retry with 90de118a75921a08497b41de2950971073b3c924 [Bug #13962][ruby-core:83074]
2020-03-08Specify explicit separator not to be affected by $;Nobuyoshi Nakada
2020-03-08Fix rbinstall bugs (#2930)David Rodríguez
* Fix incorrect calls to `Gem.ensure_gem_subdirectories` This method doesn't take keyword args. * Remove stuff no longer necessary Now `Gem.ensure_gem_subdirectories` is doing its job, so some stuff is no longer needed. * Use the proper method for default gems * Respect DESTDIR when creating rubygems folder layout * Use `Gem.default_specifications_dir` Notes: Merged-By: hsbt <hsbt@ruby-lang.org>
2020-03-04tool/lib/test/unit: support TESTS='-- -ext-' again卜部昌平
There is a test directory named test/-ext-. Because this directry starts with a hyphen, we have to cheat test/unit in order for it to run the tests underneath. TESTS='-- -ext' worked for a long time. Let's not break that maneuver.
2020-03-04Narrow the check target.Koichi Sasada
Call GC.verify_internal_consistency only for Gem related test on i386-solaris.
2020-03-03Limit the debug code conditon so that it runs only under i386-solarisYusuke Endoh
2020-03-03add debug code for SolarisKoichi Sasada
Check heap consistency after each test to debug. https://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable11x/ruby-master/log/20200303T012406Z.fail.html.gz
2020-03-01show backtrace.Koichi Sasada
assert_nothing_raised doesn't show the backtrace if an exception is thrown in a block. This patch shows this backtrace.
2020-02-28respect --test-order=randomKoichi Sasada
Now --test-order=random is simply ignored. This patch respect this option. Notes: Merged: https://github.com/ruby/ruby/pull/2932
2020-02-28Fix wrong RegExp.Vít Ondruch
The missing `\` in PR #2922 causes the default gems to be installed from the .gem packages instead from the expanded sources. Notes: Merged: https://github.com/ruby/ruby/pull/2933
2020-02-27MiniTest::Unit.options has default :seedKoichi Sasada
MiniTest::Unit (superclass of Test::Unit::Runner) does not has default seed parameter, but assigned after initializing. However some tests use MiniTest::Unit without setup of seed option and it cases unexpected test failures. To solve this issue, add default seed parameter 42.
2020-02-27`srand($seed)` at the beginning of each testKoichi Sasada
To avoid `srand(0)` effect in the other tests, call `srand($seed)` at the beginning of each test (setup). [Feature #16655]
2020-02-27Revert "`srand($seed)` at the beginning of each test"Koichi Sasada
This reverts commit 7c1553e91db07fed4fed3287b50304f1c69a685d. It breaks some tests.
2020-02-27`srand($seed)` at the beginning of each testKoichi Sasada
To avoid `srand(0)` effect in the other tests, call `srand($seed)` at the beginning of each test (setup). [Feature #16655]
2020-02-27don't ignore `--seed` optionKoichi Sasada
`--seed N` option is just ignored so respect this option. [Feature #16655] Also making "Run options" display pretty.
2020-02-26Internalize rb_mjit_unit definition againTakashi Kokubun
Fixed a TODO in b9007b6c548f91e88fd3f2ffa23de740431fa969
2020-02-26Simplified single script caseNobuyoshi Nakada
Simply use `File.basename` to remove the directory name (and suffix), instead of `gsub` which can replace unintended parts.
2020-02-26Cache destination dir.Vít Ondruch
It is not necessary to strip the `destdir` prefix every iteration, when it can be done just once. Notes: Merged: https://github.com/ruby/ruby/pull/2515
2020-02-26Properly detect mode for binaries.Vít Ondruch
.gemspec files specifies not just `bin`, but also other directories. Notes: Merged: https://github.com/ruby/ruby/pull/2515
2020-02-26Use class variable `@src_dir` instead of local `path`.Vít Ondruch
The local `path` variable does not provide any additional value and was kept around just for clarity for easier review of the `extrac_files` method move. Notes: Merged: https://github.com/ruby/ruby/pull/2515
2020-02-26Use local `{dir,prog,data}_mode` variables instead of globals.Vít Ondruch
This just gets the `RbInstall::DirPackage` closer by functionality to `Gem::Package`. Notes: Merged: https://github.com/ruby/ruby/pull/2515
2020-02-26Use `$script_mode` instead of `$prog_mode` for gem inistallation.Vít Ondruch
rbinstall is using `$script_mode` and `$prog_mode`. However, the `$script_mode` fallbacks to `$prog_mode` if not provided. However, RubyGems do not distinguish between `$script_mode` and `$prog_mode`: https://github.com/rubygems/rubygems/blame/92892bbc3adba86a90756c385433835f6761b8da/lib/rubygems/installer.rb#L196 https://github.com/rubygems/rubygems/blame/92892bbc3adba86a90756c385433835f6761b8da/lib/rubygems/installer.rb#L515 https://github.com/rubygems/rubygems/blame/92892bbc3adba86a90756c385433835f6761b8da/lib/rubygems/installer.rb#L543 Comparing the usage of `$script_mode` and `$prog_mode`, it seems that the `$script_mode` should be used where RubyGems expects `$prog_mode`. Notes: Merged: https://github.com/ruby/ruby/pull/2515
2020-02-26Use `Gem::Package` like object instead of monkey patching.Vít Ondruch
1. This is similar to what RubyGems does and it is less magic [[1]]. 2. It avoids deprecated code paths in RubyGems [[2]]. [1]: https://github.com/rubygems/rubygems/blob/92892bbc3adba86a90756c385433835f6761b8da/lib/rubygems/installer.rb#L151 [2]: https://github.com/rubygems/rubygems/blob/92892bbc3adba86a90756c385433835f6761b8da/lib/rubygems/installer.rb#L187 Notes: Merged: https://github.com/ruby/ruby/pull/2515
2020-02-25Share extracted bundled gems with gems for bundlerNobuyoshi Nakada
Extract bundled gems under ".bundle/gems" and get rid of duplication which cause constant redefinition warnings at `test-all` after `extract-gems` and `test-bundler`. Notes: Merged: https://github.com/ruby/ruby/pull/2922
2020-02-24Try with and without "v" prefix for numeric tagNobuyoshi Nakada
2020-02-24Retry checking out the versionNobuyoshi Nakada
rss 0.2.9 is tagged without the "v" prefix.
2020-02-22Introduce disposable call-cache.Koichi Sasada
This patch contains several ideas: (1) Disposable inline method cache (IMC) for race-free inline method cache * Making call-cache (CC) as a RVALUE (GC target object) and allocate new CC on cache miss. * This technique allows race-free access from parallel processing elements like RCU. (2) Introduce per-Class method cache (pCMC) * Instead of fixed-size global method cache (GMC), pCMC allows flexible cache size. * Caching CCs reduces CC allocation and allow sharing CC's fast-path between same call-info (CI) call-sites. (3) Invalidate an inline method cache by invalidating corresponding method entries (MEs) * Instead of using class serials, we set "invalidated" flag for method entry itself to represent cache invalidation. * Compare with using class serials, the impact of method modification (add/overwrite/delete) is small. * Updating class serials invalidate all method caches of the class and sub-classes. * Proposed approach only invalidate the method cache of only one ME. See [Feature #16614] for more details. Notes: Merged: https://github.com/ruby/ruby/pull/2888
2020-02-22VALUE size packed callinfo (ci).Koichi Sasada
Now, rb_call_info contains how to call the method with tuple of (mid, orig_argc, flags, kwarg). Most of cases, kwarg == NULL and mid+argc+flags only requires 64bits. So this patch packed rb_call_info to VALUE (1 word) on such cases. If we can not represent it in VALUE, then use imemo_callinfo which contains conventional callinfo (rb_callinfo, renamed from rb_call_info). iseq->body->ci_kw_size is removed because all of callinfo is VALUE size (packed ci or a pointer to imemo_callinfo). To access ci information, we need to use these functions: vm_ci_mid(ci), _flag(ci), _argc(ci), _kwarg(ci). struct rb_call_info_kw_arg is renamed to rb_callinfo_kwarg. rb_funcallv_with_cc() and rb_method_basic_definition_p_with_cc() is temporary removed because cd->ci should be marked. Notes: Merged: https://github.com/ruby/ruby/pull/2888
2020-02-21Fixed net-pop, smtp, protocol and imap task for sync toolHiroshi SHIBATA
2020-02-21Fixed net-ftp sync task and resync from standalone repoHiroshi SHIBATA
2020-02-21Promote net-http to the default gems.Hiroshi SHIBATA
test/net/http/test_https.rb: rename fixture methods to read_fixture because it conflicts with test-unit gem.
2020-02-21Promote net-ftp to default gemsHiroshi SHIBATA
2020-02-20Promote net-imap to the default gemsHiroshi SHIBATA
2020-02-18Avoid jumping to a wrong destinationTakashi Kokubun
when the next insn is already compiled by former branches.
2020-02-17Promote net-protocol to default gemsHiroshi SHIBATA
2020-02-15Workaround for bison provided by scoop on mswin environmentHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/2909
2020-02-13Promote English to the default gems.Hiroshi SHIBATA
2020-02-12Promote tmpdir to the default gemsHiroshi SHIBATA
2020-02-12Promote tempfile to the default gems.Hiroshi SHIBATA
2020-02-11Promote weakref to the default gemsHiroshi SHIBATA
2020-02-11Expose assert_no_memory_leak for weakrefHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/2900
2020-02-11Expose assert_normal_exit for weakrefHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/2900
2020-02-10Don't use upstream ext/readline/dependaycabta
2020-02-07more on NULL versus functions.卜部昌平
Function pointers are not void*. See also ce4ea956d24eab5089a143bba38126f2b11b55b6 8427fca49bd85205f5a8766292dd893f003c0e48
2020-02-07Stop auto runnerNobuyoshi Nakada
Auto runner should not run in forked processes in separated tests.