summaryrefslogtreecommitdiff
path: root/tool
AgeCommit message (Collapse)Author
2019-03-25Prefer using vm_base_ptr rather than cfp->bpk0kubun
in MJIT implementation. This allows us to drop cfp->bp by just modifying vm_base_ptr in the future. No performance impact: $ benchmark-driver benchmark.yml --rbenv='before::before --disable-gems --jit;bp_::after --disable-gems --jit;vm_env_ptr::ruby-svn --disable-gems --jit' -v --output=all --repeat-count=12 before: ruby 2.7.0dev (2019-03-24 trunk 67341) +JIT [x86_64-linux] bp_: ruby 2.7.0dev (2019-03-24 trunk 67342) +JIT [x86_64-linux] vm_env_ptr: ruby 2.7.0dev (2019-03-25 trunk 67343) +JIT [x86_64-linux] last_commit=Prefer using vm_base_ptr rather than cfp->bp Calculating ------------------------------------- before bp_ vm_env_ptr Optcarrot Lan_Master.nes 77.15059205092646 70.18873044267853 69.62171387083328 fps 78.75767783870441 77.49867689173411 75.43496867709587 79.60102690369321 77.78037687683523 79.36688927929428 80.25144236638835 78.74729849101701 80.42363742291455 82.22375417165489 80.44265482494045 80.90287243299306 82.29166786292619 80.51740049420938 81.81153053252902 83.35386925305345 80.91054205210609 81.93562989125176 83.39770634366975 81.34550754145043 82.24544621470430 83.88523450309972 81.60698516017347 82.76801860263230 84.17553130135879 82.69615943446324 83.02530407910871 84.42132328119858 83.00969158037691 83.19968539409922 84.60731429793329 83.32703363300098 83.81352746019631 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67344 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-03-25use cfp->bp more.ko1
cfp->bp was (re-)introduced by Kokubun san, but VM doesn't use it because I (ko1) want to remove it in a future. But using it make leave instruction fast because of sp consisntency check. So now VM uses cfp->bp. To use cfp->bp, I checked the value and I found that it is not a "initial value of sp" but a "initial value of ep". Fix this problem and fix all bp references (this is why bp is renamed to bp_). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-03-22add debug counters to count call cache fastpath.ko1
Add counters to count ccf (call cache fastpath) usage. These counters will help which kind of method dispatch is important to optimize. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-03-21Check argument_arity_error condition in inlinable_iseq_pk0kubun
to avoid inlining a method call when it becomes argument_arity_error, fixing a potential bug. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67330 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-03-14tool/make-snapshot: Use 6-spaces indent for SIZE and digestsnagachika
to align with release note markdown. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-14Prefer relative directory from srcdir to top_srcdirnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-12Skip erb files, idirect prerequisitesnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-12Replace versioned Unicode header paths with UNICODE_HDR_DIRnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67055 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-09make-snapshot: try downloading Unicode filesnobu
Remove empty UNICODE_FILES list to update Unicode files like as r67025, for 2.6 branch. [Bug #15593] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67040 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-08make-snapshot: try downloading Unicode filesnobu
[Bug #15593] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67038 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-08configure.ac: check finite,isinf,isnan as macros firstnobu
[ruby-core:91487] [Bug #15595] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67036 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-08Removed moving toplevel header since r12501nobu
Moving public headers was 12-years ago, no depend files would expect ruby.h in the top source directory now. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67033 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-07Update Unicode filesnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-07tool/test/test_jisx0208.rb: Use `require_relative`kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67016 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-02Fixup r66984. Update the location of bundler gemspec.hsbt
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-01_leaf_helpers.erb: some functions are not leafshyouhei
If a function has rb_warning() that is not a leaf because warning ultimately is a method call of Warning#warn. If a function has rb_name_error() that is not a leaf because NameError is allocated, then initialized. This of course involves calling NameError#initialize. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-31_insn_type_chars.erb: use C99shyouhei
Now that comma at the end of enum is allowed, we can write this much more straight-forward. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-31_insn_operand_info.erb: use C99shyouhei
Same as r66957. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-31_insn_len_info.erb: add ASSERT_VM_INSTRUCTION_SIZEshyouhei
Also previous rb_vm_insn_len_info is now a function static variable. It seems nobody else is using it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-31_insn_name_info.erb: use C99shyouhei
C99 allows string literals of at least 4095 characters (cf: ISO/IEC 9899:1999 section 5.2.4.1) so the previous complex struct layout is no longer necessary. Just dump the verbatim memory contents we want. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-25vm.inc now in C99shyouhei
This changeset modifies the VM generator so that vm.inc is written in C99. Also added some comments in _insn_entry.erb so that the intention of each parts to be made more clear. I think this improves overall readability of the generated VM. Confirmed that the exact same binary is generated before/after this changeset. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-19Revert r58345 and r58371.hsbt
These changes break the behavior of default gems. Bug #13428 says r58345 is reasonable because gemspec file is installed by `to_ruby_for_cache` method. But I revert `to_ruby_for_cache` in rbinstall.rb at r58403. There is no reason that we apply r58345 now. But I'm not sure about gemspec of default gems affects standalone gems. I'm going to investigate it on rubygems/rubygems. [Bug #15500][ruby-core:90867] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66867 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-18make-snapshot: get rid of circular dependencynobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-17make-snapshot: make permissions uniformnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66858 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-17rbinstall.rb: add --exclude option for install-nodocnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66856 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-17Removed old gemspecs of default gems for the Ruby committers.hsbt
[Bug #12764][ruby-core:77284] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-14update redmine-backporter to catch up Redmine 4.0. [ci skip]nagachika
tool/redmine-backporter.rb: change revision resource URL. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66820 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-11Fix make-snapshot for trunkkazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-10mjit.c: use boolean type for boolean variablesk0kubun
and functions to clarify the intention and make sure it's not used in a surprising way (like using 2, 3, ... other than 0, 1 even while it seems to be a boolean). This is a retry of r66775. It included some typos... git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66778 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-06simplify filename-related codeduerst
(Thanks to Nobuyoshi Nakada for the hint!) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66738 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-06add logic to handle Unicode beta period file namesduerst
In downloader.rb, add logic to handle file names of the form UnicodeData-12.0.0d6.txt. To find the right file, we download the index of the directory. Then we download the files by finding the file names from the index. Files are always checked for changes, because changes might be frequent during the beta period. We also check whether any index.html files are left when we are not in the beta period. This would indicate that we might have stale data from the beta period rather than the actual release data. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-28fix r66599 to sucess install. please refix this patch @nobuko1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66600 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-28Moved version numbersnobu
* Define major and minor version numbers only in the public include/ruby/version.h header, as the API version numbers. * Define only teeny version number in the private version.h header. * RUBY_VERSION moved to version.c. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66599 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-27Arrange as same as comment and return statementkazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-27delete emacs mode lines [ci skip]shyouhei
These settings are now covered by .dir-locals.el. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-26Fix typos [ci skip]kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66577 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-26fix typonaruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-26add #line [ci skip]shyouhei
These erb files are in fact erb comments + plain C. Adding #line help us debug in case we have trouble there. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-26insns.def: refactor to avoid CALL_METHOD macroshyouhei
These send and its variant instructions are the most frequently called paths in the entire process. Reducing macro expansions to make them dedicated function called vm_sendish() is the main goal of this changeset. It reduces the size of vm_exec_coref from 25,552 bytes to 23,728 bytes on my machine. I see no significant slowdown. Fix: [GH-2056] vanilla: ruby 2.6.0dev (2018-12-19 trunk 66449) [x86_64-darwin15] ours: ruby 2.6.0dev (2018-12-19 refactor-send 66449) [x86_64-darwin15] last_commit=insns.def: refactor to avoid CALL_METHOD macro Calculating ------------------------------------- vanilla ours vm2_defined_method 2.645M 2.823M i/s - 6.000M times in 5.109888s 4.783254s vm2_method 8.553M 8.873M i/s - 6.000M times in 1.579892s 1.524026s vm2_method_missing 3.772M 3.858M i/s - 6.000M times in 3.579482s 3.499220s vm2_method_with_block 8.494M 8.944M i/s - 6.000M times in 1.589774s 1.509463s vm2_poly_method 0.571 0.607 i/s - 1.000 times in 3.947570s 3.733528s vm2_poly_method_ov 5.514 5.168 i/s - 1.000 times in 0.408156s 0.436169s vm3_clearmethodcache 2.875 2.837 i/s - 1.000 times in 0.783018s 0.793493s Comparison: vm2_defined_method ours: 2822555.4 i/s vanilla: 2644878.1 i/s - 1.07x slower vm2_method ours: 8872947.8 i/s vanilla: 8553433.1 i/s - 1.04x slower vm2_method_missing ours: 3858192.3 i/s vanilla: 3772296.3 i/s - 1.02x slower vm2_method_with_block ours: 8943825.1 i/s vanilla: 8493955.0 i/s - 1.05x slower vm2_poly_method ours: 0.6 i/s vanilla: 0.6 i/s - 1.06x slower vm2_poly_method_ov vanilla: 5.5 i/s ours: 5.2 i/s - 1.07x slower vm3_clearmethodcache vanilla: 2.9 i/s ours: 2.8 i/s - 1.01x slower git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-26add _sp_inc_helpers.erb [ci skip]shyouhei
Just add more room for comments. This is a pure refactoring that does not change anything but readability. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66564 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-25Set typeflag [Bug #15461]nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-25Add a tool to update w.r-l.o files on releasenaruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-25Keep RUBY_RELEASE_DATE's definitionnaruse
if it uses Y/M/D macros. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-20rbinstall.rb: purge %x[git ls-files] toonobu
[Bug #13423] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-20rbinstall.rb: syntax error in gemspecnobu
* tool/rbinstall.rb (load_gemspec): do not hide syntax errors in a gemspec file. check if the result instead. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66460 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-19avoid passing unnecessary options to download methodduerst
The option --unicode-beta for tool/downloader.rb introduced in r66448 must not be passed as an option to actual download machinery. Thanks to MSP-Greg (Greg L.) for bug report and patch. This closes issue #15434. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66449 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-19add option to deal with Unicode beta data filesduerst
Unicode uses file names with explicit versions for beta publication. This commit introduces a variable on the makefile level to distinguish between beta and regular versions of file names. common.mk: Define new variable UNICODE_BETA, usually set to NO, but would be YES during tests with beta data files. Pass the value of this variable to tool/downloader.rb with option --unicode-beta. tool/downloader.rb: Receive and store value of --unicode-beta. Raise an exception if value is YES, because we don't yet actually deal with this case. Continue as usual if value is not YES. This completes the changes needed in the makefile. Upcomming changes will only affect tool/downloader.rb. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-13Install script of default gems as is to its libexec dirusa
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-10Limit uplevel travarsingnobu
* tool/vcs.rb (VCS.detect): limit level of travarsing parent directories, 0 by the default. curretly always detecting at the source directory itself. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-10Detection ordernobu
* tool/vcs.rb (VCS.detect): detect each VCS while travarsing parent directories. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e