Граф коммитов

1681 Коммитов

Автор SHA1 Сообщение Дата
Nobuyoshi Nakada 3102ca4c6e
Default GIT external encoding to UTF-8 🤷‍♂️
And dump the title as US-ASCII.
2019-06-03 12:54:33 +09:00
Nobuyoshi Nakada d180e40570
Add --limit option and default it to 20 2019-05-31 10:55:37 +09:00
Nobuyoshi Nakada 1e9057b54a
Prefer the current branch or tag name 2019-05-31 10:55:37 +09:00
Nobuyoshi Nakada fd658ec821
Define RUBY_FULL_REVISION
Only if the short revision differs from the full revision.
2019-05-31 10:55:37 +09:00
Nobuyoshi Nakada ab0c8cc021
Touch Unicode headers and the timestamp before packaging
Not to download Unicode data files at building from the packages.
2019-05-30 23:23:11 +09:00
Nobuyoshi Nakada f0945176c3
Fix missing `gitcmd` 2019-05-30 22:27:11 +09:00
NARUSE, Yui 22cd402734 vcs.rb support non-inplace build 2019-05-30 22:20:28 +09:00
Jeremy Evans f0ded36693 Use Regexp#match instead of #match for 1.9 BASERUBY support 2019-05-29 18:40:03 -07:00
Jeremy Evans d2ba80b5df Revert "Fix building with 1.8 BASERUBY"
This reverts commit 05bc14d81a.

We have decided that the cost of reintroducing support for 1.8
BASERUBY outweighs the benefit.  If you are still using 1.8 and want
to build master/trunk, build and install the latest release, and use
that as BASERUBY.
2019-05-29 18:03:21 -07:00
Takashi Kokubun 1a0c3d8dd6
Convert Enumerator to Array for Ruby 1.9.3
String#lines seems to return Enumerator in Ruby 1.9.3, and it does not
respond to #delete_if https://travis-ci.org/ruby/ruby/jobs/538559919
2019-05-29 15:04:45 +09:00
Takashi Kokubun 6b5e712361
Make tool/vcs.rb compliant to BASERUBY
People seem to consider BASERUBY is either 1.8 or 1.9 now. Since this
file may be executed by BASERUBY from file2lastrev.rb, I think we should
not rely on Ruby 2.0 in this file for now.
2019-05-29 08:22:04 +09:00
Nobuyoshi Nakada 40e175b390
Clean a garbage [ci skip] 2019-05-28 14:20:59 +09:00
Jeremy Evans 05bc14d81a Fix building with 1.8 BASERUBY 2019-05-27 20:55:56 -07:00
Kazuhiro NISHIYAMA 706c816ad2
Escape dots in regexp 2019-05-24 19:03:29 +09:00
Martin Dürst c06f9e1d24 switch UNICODE_BETA to NO (one more try, first try didn't work)
Unicode version 12.1.0 was officially released on May 7th, 2019.
    There were no changes at all from the "real" beta
    published shortly after the new era name "Reiwa" was announced.
    So we can switch UNICODE_BETA back to NO.

    common.mk: switch UNICODE_BETA back to NO
    tool/downloader.rb: add additional conditions to avoid an error
                        when moving from beta to final
2019-05-24 18:22:36 +09:00
Nobuyoshi Nakada a205e24747
Make RUBY_REVISION full length 2019-05-22 23:53:21 +09:00
Nobuyoshi Nakada d819d97cf0
Default to the current branch
* tool/make-snapshot: default to the current branch if no branch
  but srcdir is given.
2019-05-22 23:52:51 +09:00
Nobuyoshi Nakada 8fb77acac7
Fix revision name
* tool/make-snapshot (package): dump to stringize GIT revisions
  properly.
2019-05-22 23:51:33 +09:00
Nobuyoshi Nakada 24684a81d2
Fix revision name
* tool/make-snapshot (package): use the last revision of the whole
  tree as the revision name, not a single file.

* tool/file2lastrev.rb: ditto.  dump without unnecessary subrange
  and literal quotes, to stringize SVN revisions properly.
2019-05-22 22:28:07 +09:00
Nobuyoshi Nakada 658f17b8ec
Fixed the method to delegate
* tool/vcs.rb (VCS::GITSVN.revision_name): should delegate to the
  same method of SVN, not an undefined method.
2019-05-22 22:28:02 +09:00
Nobuyoshi Nakada 23751a2681
leaked-globals: check if un-prefixed symbols leak externally 2019-05-16 23:34:01 +09:00
Nobuyoshi Nakada 79931dddba
Propagate parser_params to rb_yytnamerr 2019-05-10 22:02:54 +09:00
Hiroshi SHIBATA aa52464efd
15f45ae4d1 and 56528da3e broke the darwin environment.
Revert "Propagate parser_params to rb_yytnamerr"

This reverts commit 15f45ae4d1.
2019-05-10 21:48:02 +09:00
Hiroshi SHIBATA d4c8577a14 Revert "Fix for bison 2.3"
This reverts commit 56528da3ef.
2019-05-10 21:45:04 +09:00
Nobuyoshi Nakada 56528da3ef
Fix for bison 2.3 2019-05-10 16:58:51 +09:00
Nobuyoshi Nakada 15f45ae4d1
Propagate parser_params to rb_yytnamerr 2019-05-10 16:40:34 +09:00
Nobuyoshi Nakada 025206d0dd
Fallback to an invalid branch name if no branch found 2019-05-09 14:12:03 +09:00
Nobuyoshi Nakada eb84b33c86
Search a branch name at a detached head 2019-05-09 14:02:01 +09:00
Nobuyoshi Nakada d802698d3e
Push the current (topic) branch to the remote upstream 2019-05-09 10:01:31 +09:00
Nobuyoshi Nakada 4fabb74471
Show the commit command if dryrun 2019-05-09 10:00:48 +09:00
Nobuyoshi Nakada 10723dd6ce
dryrun option is for `push`, not `git` 2019-05-09 08:54:38 +09:00
Kazuhiro NISHIYAMA 5eb5613fef
Recent commits of trunk do not have svn revision 2019-05-07 22:53:45 +09:00
NAKAMURA Usaku 7d02bab0b0
Nil cannot and should not convert to a string 2019-05-03 06:24:57 +09:00
Kazuhiro NISHIYAMA a1ae478a31
Fix a typo 2019-05-02 14:44:47 +09:00
Nobuyoshi Nakada 474af9ee9a
No last commit when up-to-date
Get the last commit title from the upstream to the head, so that
no `last_commit` line will be shown when the branch is up to date
with the upstream.
2019-05-01 20:47:00 +09:00
Kazuhiro NISHIYAMA 0eedec6867
Change Accept-Encoding from `*` to `identity`
When `Accept-Encoding` is `*`,
http://www.unicode.org/Public/12.1.0/ucd/ returns gzipped content now.
So set `identity`.
2019-04-30 22:35:38 +09:00
NAKAMURA Usaku dd942cd5b3
Use redirect keyword arguments instead of ">" 2019-04-30 22:24:45 +09:00
Nobuyoshi Nakada 50872f4a15
Use array mode of `system` instead of `shellescape`
`&.` is not available in ruby 2.0.
2019-04-30 22:23:20 +09:00
Nobuyoshi Nakada df3de40932
String#[] with index to extract matched substring safely 2019-04-30 22:13:47 +09:00
NAKAMURA Usaku 1dd94dfba3
Must use IO::NULL instead of platform dependent filename 2019-04-30 21:51:03 +09:00
NAKAMURA Usaku 5a83a1d554
**Must** use IO::NULL for null device 2019-04-30 18:01:17 +09:00
Kazuhiro NISHIYAMA c222f4d31f
`from` is not nil but `""` on shallow clone [ci skip] 2019-04-30 16:20:46 +09:00
aycabta 17350c7e55 Add Reline as a fallback library for Readline
* lib/reine.rb, lib/reline/*: Reline is a readline stdlib compatible
  library.
* lib/readline.rb: Readline uses a fallback to Reline when ext/readline
  doesn't exist.
* tool/sync_default_gems.rb: add ruby/reline as a default gem.
* appveyor.yml: add "set RELINE_TEST_ENCODING=Windows-31J" for test suit
  of Reline, and add "--exclude readline" to "nmake test-all" on Visual
  Studio builds because of strange behavior.
* spec/ruby/library/readline/spec_helper.rb: skip Reline as with
  RbReadline.
2019-04-30 11:44:20 +09:00
Kazuhiro NISHIYAMA 040b37f8b4
Use 10 chars as RUBY_REVISION in snapshot too 2019-04-29 23:02:18 +09:00
Takashi Kokubun dfc0eeb0cf
Fully support Git in tool/merger.rb
as both backport source repository and backport destination repository.
2019-04-29 01:54:01 +09:00
git 75260d36b5 * remove trailing spaces. 2019-04-29 01:00:20 +09:00
Takashi Kokubun 991e32681e
tool/merger.rb: Avoid making too-deep indentation
because it's hard to understand what's going on when indentation depth
is too deep.

Sorry for polluting git blame, but most of the Merger's lines are
updated recently anyway.
2019-04-29 00:59:22 +09:00
Takashi Kokubun 2dddd370a1
Support `tool/merger.rb removetag` under Git
repository.
2019-04-29 00:53:38 +09:00
Takashi Kokubun fad2825e42
Support `tool/merger.rb tag` under Git repository 2019-04-29 00:19:58 +09:00
Takashi Kokubun 3bc810334c
Support `tool/merger.rb up` under Git repository
updating indentation (and slightly changing styles) for areas already
supporting Git.
2019-04-28 22:53:21 +09:00
Takashi Kokubun 392d84b490
Fix wrong svn options
for SVN as a backport source.

This was a mistake in de5378233b2ff5434f024ac66285e699794a321d...
2019-04-28 22:15:01 +09:00
Takashi Kokubun 1c8cefca31
Stop using global variable for repos
to avoid having impact from other places.
2019-04-28 22:02:34 +09:00
Takashi Kokubun cb8eb37377
Now tool/merger.rb may use Git [ci skip] 2019-04-28 21:53:58 +09:00
Takashi Kokubun 14965c5f4b
Drop SVN-specific method from Merger module
to clarify it's not needed for Git support.
2019-04-28 21:41:02 +09:00
Takashi Kokubun fcb1875513
Make Merger.version private to the module
because it's not used outside the Module.
2019-04-28 21:41:02 +09:00
Takashi Kokubun d835ed4df1
Define merger.rb's methods under Merger namespace
so that we do not monkey-patch all classes by defining methods on
top-level (Object class).

Not arranging indentation in it to keep `git blame` for now.
2019-04-28 21:08:58 +09:00
Takashi Kokubun 4d8ad48f7d
Support git as redmine-backporter's done destination 2019-04-28 20:17:20 +09:00
Nobuyoshi Nakada 4c8f107898
Make the range to export as changelog optional
* `from` is defaulted to the beginning of the branch inclusively,
  otherwise the given revision is excluded as the previous.

* `to` is defaulted to the head.
2019-04-28 13:46:16 +09:00
Nobuyoshi Nakada d72bd190a8
Added VCS::SVN#branch_beginning 2019-04-28 12:11:59 +09:00
Nobuyoshi Nakada b766970527
Search the beginning revision more strictly a bit 2019-04-28 12:04:15 +09:00
Nobuyoshi Nakada 5a53682d6d
Removed `--reverse` option
It is nonsense with `-n1` option.
2019-04-28 11:36:03 +09:00
Nobuyoshi Nakada d47cd75b4f
Chomp a newline from the branch name 2019-04-28 10:41:32 +09:00
Nobuyoshi Nakada 7790b610b8
Shorten git revision name without "r" prefix in snapshot 2019-04-28 09:56:56 +09:00
Nobuyoshi Nakada bb6036946e
Reduce matz's work, let git do it instead 2019-04-28 00:30:16 +09:00
Nobuyoshi Nakada db614dbf6d
Support git-log format ChangeLog 2019-04-27 23:25:48 +09:00
Nobuyoshi Nakada 2a4625115a
Separate format_changelog
VCS::GITSVN#format_changelog generates previous format, similar to
svn-log, and VCS::GIT#format_changelog stores just git-log as-is
for now.
2019-04-27 23:14:59 +09:00
Nobuyoshi Nakada 7875c42f64
Override log format to parse for ChangeLog 2019-04-27 23:13:03 +09:00
Nobuyoshi Nakada 6f8ac2cb28
Include the beginning commit in ChangeLog 2019-04-27 23:08:50 +09:00
Takashi Kokubun 3067370f61
Retry downloads more for unicode outage
like https://ci.appveyor.com/project/ruby/ruby/builds/24142523/job/v6aq4srj7c3hgt86
2019-04-27 22:21:36 +09:00
Takashi Kokubun a93f555699
tool/sync_default_gems.rb: Check prerequisites 2019-04-26 18:18:09 +09:00
Nobuyoshi Nakada f4f66bd11c
Revert "IRB is improved with Reline and RDoc, take 2"
Accidentally merged when 89271d4a37
"Adjusted indents".
2019-04-23 21:55:29 +09:00
aycabta f2cd4f4cd0
IRB is improved with Reline and RDoc, take 2 2019-04-23 20:08:02 +09:00
Nobuyoshi Nakada 2ae5f6f97c
Add VCS::GIT#commit 2019-04-23 15:43:51 +09:00
Nobuyoshi Nakada 2fb83a0af7
Split git-svn dependent methods 2019-04-23 15:39:36 +09:00
Urabe, Shyouhei 660c071659 [ci skip] grammers in comments 2019-04-23 10:27:44 +09:00
Kazuhiro NISHIYAMA 87261cf59f
Omit last_commit=RUBY_LAST_COMMIT_TITLE without local commits 2019-04-22 21:45:13 +09:00
Takashi Kokubun 5da52d1210
Migrate RUBY_VERSION/RUBY_DESCRIPTION to Git
from Subversion.

This behavior is tentative and not discussed well. The point of
discussion will be just the length of commit hash, and I thought we
should include this kind of change in 2.7.0-preview1 release even before
the length is fixed yet.

Let's discuss that afterwards and fix it later as needed. Naruse
suggested that length=10 is very unlikely to cause conflict, and thus
it's used by email notification and rubyci now. This behavior is in
favor of that for now.
2019-04-22 21:27:34 +09:00
k0kubun b6fd7b1bb7 tool/redmine-backporter.rb: Git support in backport/rel
close https://github.com/ruby/ruby/pull/2138

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67697 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-21 14:24:38 +00:00
k0kubun c7db05d216 tool/redmine-backporter.rb: Remove unused methods
They seem to have never been used from the beginning (r45081).

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-21 13:05:32 +00:00
k0kubun 72be46f104 Drop tool/generate-backport-changelog.rb
because we're not writing ChangeLog since ruby_2_4.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-21 12:26:06 +00:00
k0kubun 2c31e6dec4 tool/merger.rb: Guard match failure properly
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67694 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-21 12:03:39 +00:00
k0kubun de5378233b tool/merger.rb: Support fetching patch from cgit
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-21 11:49:11 +00:00
k0kubun 47676e969e tool/merger.rb: Drop ChangeLog handling
We're not writing ChangeLog since ruby_2_4.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-21 10:01:44 +00:00
aycabta 51cec00953 Revert "IRB is improved with Reline and RDoc"
This reverts commit 7f273ac6d0.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-21 09:13:49 +00:00
k0kubun add82b7e7e Drop obsoleted feature from help
I understand this is dropped in r67569

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-21 08:19:48 +00:00
k0kubun e7d76e3f5a tool/merger.rb: Drop some revision notations.
Maintainer use merger mainly from redmine-backporter.rb.

[Fix GH-2136]

From: Chikanaga Tomoyuki <t-chikanaga@groovenauts.jp>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-21 02:58:10 +00:00
k0kubun ffc93316c8 tool/merger.rb: Remove unused command line format.
I believe no-one use this notation for years.

[Fix GH-2136]

From: Chikanaga Tomoyuki <t-chikanaga@groovenauts.jp>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67658 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-21 02:58:10 +00:00
aycabta 7f273ac6d0 IRB is improved with Reline and RDoc
Reline is a readline stdlib compatible library. It also supports
multiline input. IRB is improved with Reline and supports multiline.
Besides, supports showing documents when completed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67645 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-20 08:51:20 +00:00
k0kubun b2ffafd238 Invalidate JIT-ed code if ISeq is moved by GC.compact
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67638 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-20 05:48:22 +00:00
hsbt 4751caecc3 Removed deprecated executable from bundler upstream.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67605 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-18 12:56:47 +00:00
nobu ffbcf9f842 downloader.rb: enable cache files
* tool/downloader.rb (Downloader::Unicode.download): enable cache
  files when index.html has not been modified since the previous
  download, even if beta version.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-17 07:35:29 +00:00
nobu 5141398ff0 downloader.rb: use File.read instead of IO.read
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67591 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-17 07:09:28 +00:00
k0kubun fcd679ed11 Recompile without method inlining
if cancel happens in an inlined method.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-16 17:02:35 +00:00
k0kubun d71b78575b Introduce frame-omitted method inlining
for ISeq including only leaf and no-handles_sp insns except leaf.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67574 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-16 17:02:16 +00:00
k0kubun b0614decfc Implement single-level basic method inlining in JIT
"Basic" means it does not omit a call frame.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-16 17:01:05 +00:00
k0kubun ead870d7c3 Do not require Ruby 2.4 for baseruby
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67554 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14 13:29:22 +00:00
k0kubun 1222534719 Share optimization cancel handlers
$ benchmark-driver benchmark.yml --rbenv='before --jit;after --jit' -v --output=all --repeat-count=12
before --jit: ruby 2.7.0dev (2019-04-14 trunk 67549) +JIT [x86_64-linux]
after --jit: ruby 2.7.0dev (2019-04-14 trunk 67549) +JIT [x86_64-linux]
last_commit=Share optimization cancel handlers
Calculating -------------------------------------
                                 before --jit           after --jit
Optcarrot Lan_Master.nes    69.55360655447375     74.15329176797863 fps
                            73.74545038318978     79.60903046141544
                            75.85637357897092     82.00930075612054
                            77.10594124022951     82.56228187301674
                            78.67350527368366     83.37512204205953
                            79.97235230767613     83.41521927993719
                            81.03050342478066     84.20227901852776
                            81.61308297895094     84.73733526226468
                            82.06805141753206     85.27884867863791
                            82.46493179193394     85.36558922650367
                            83.85259832896313     85.39993587223481
                            84.02325292922997     85.63649355214602

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14 12:25:23 +00:00
k0kubun c5570cf9bd Detect send-compatible opt insns automatically
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14 08:53:19 +00:00
k0kubun b75bb06e00 Allow falling back to non-inlined opt_send_without_block
for opt_aref with inline cache to minimize the possibility of JIT cancel.

Also opt_aset and opt_mod are added for the targets.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14 08:33:43 +00:00
k0kubun fa13bb1a6f Unify comment styles across MJIT sources
I'm writing `//` comments in newer MJIT code after C99 enablement
(because I write 1-line comments more often than multi-line comments
 and `//` requires fewer chars on 1-line) and then they are mixed
with `/* */` now.

For consistency and to avoid the conversion in future changes, let me
finish the rewrite in MJIT-related code.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67533 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14 05:26:46 +00:00
k0kubun 9b6b4674d7 Recompile JIT-ed code without optimization
based on inline cache when JIT cancel happens by that.

This feature was in the original MJIT implementation by Vladimir, but on
merging MJIT to Ruby it was removed for simplification. This commit adds
the functionality again for the following benchmark:

52f05781f6/concurrent-map/bench.rb
(shown float is duration seconds. shorter is better)

* Before
```
$ INHERIT=0 ruby -v bench.rb
ruby 2.7.0dev (2019-04-13 trunk 67523) [x86_64-linux]
--
1.6507579649914987

$ INHERIT=0 ruby -v --jit bench.rb
ruby 2.7.0dev (2019-04-13 trunk 67523) +JIT [x86_64-linux]
--
1.5091587850474752

$ INHERIT=1 ruby -v bench.rb
ruby 2.7.0dev (2019-04-13 trunk 67523) [x86_64-linux]
--
1.6124781150138006

$ INHERIT=1 ruby --jit -v bench.rb
ruby 2.7.0dev (2019-04-13 trunk 67523) +JIT [x86_64-linux]
--
1.7495657080435194 # <-- this
```

* After
```
$ INHERIT=0 ruby -v bench.rb
ruby 2.7.0dev (2019-04-13 trunk 67523) [x86_64-linux]
last_commit=Recompile JIT-ed code without optimization
--
1.653559010999743

$ INHERIT=0 ruby --jit -v bench.rb
ruby 2.7.0dev (2019-04-13 trunk 67523) +JIT [x86_64-linux]
last_commit=Recompile JIT-ed code without optimization
--
1.4738391840364784

$ INHERIT=1 ruby -v bench.rb
ruby 2.7.0dev (2019-04-13 trunk 67523) [x86_64-linux]
last_commit=Recompile JIT-ed code without optimization
--
1.645227018976584

$ INHERIT=1 ruby --jit -v bench.rb
ruby 2.7.0dev (2019-04-13 trunk 67523) +JIT [x86_64-linux]
last_commit=Recompile JIT-ed code without optimization
--
1.523708809982054 # <-- this
```

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67530 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14 04:52:02 +00:00
k0kubun bbb0db6f1c Fix typo in a comment [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-06 16:03:11 +00:00
nobu b5df5296a4 appveyor.yml: Use pre-generated headers and tables
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-06 00:08:04 +00:00
duerst cab005db92 revert r67445, (r67446,) r67447
Debugging output is no longer needed because the problem has been fixed with r67449.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-05 23:16:00 +00:00
nobu 6e0e93e60e downloader.rb: fix typo, extra %
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67450 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-05 14:44:15 +00:00
nobu aebc11dfe6 downloader.rb: quote base name
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-05 12:44:04 +00:00
duerst 8f734dc7b5 output more debug information in downloader.rb (temporary)
Unicode file download doesn't work with Visual Studio, we need more debug output.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-05 12:36:29 +00:00
svn f6338966f1 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-05 10:39:02 +00:00
duerst 7fd8cdf398 add puts statements to debug Unicode file download (temporary)
Unicode file download doesn't work with Visual Studio, see e.g.
https://ci.appveyor.com/project/ruby/ruby/builds/23614399/job/f8vya2l7fjdfcye4
We temporarily produce more output for debugging.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-05 10:39:01 +00:00
nobu 79de8e9f6b downloader.rb: keep linked file newer than cached file
* tool/downloader.rb (Downloader.save_cache): keep linked file
  newer than cached file, so that GNU make triggers when the
  content is updated.  it uses the timestamp of symlink itself
  instead of the target.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-02 08:08:29 +00:00
k0kubun b03c11a337 Add debug counters for MJIT cancel
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-03-29 13:54:29 +00:00
k0kubun c92c0a5935 Prefer using vm_base_ptr rather than cfp->bp
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-25 14:26:11 +00:00
ko1 8dd0fb9039 use cfp->bp more.
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-25 06:58:50 +00:00
ko1 c671f836b4 add debug counters to count call cache fastpath.
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-22 07:57:26 +00:00
k0kubun 969156ce9a Check argument_arity_error condition in inlinable_iseq_p
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-21 06:48:00 +00:00
nagachika 9e7f197c8e tool/make-snapshot: Use 6-spaces indent for SIZE and digests
to align with release note markdown.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-03-14 22:43:57 +00:00
nobu d1e6304a89 Prefer relative directory from srcdir to top_srcdir
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-14 05:42:14 +00:00
nobu da1f593aca Skip erb files, idirect prerequisites
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-12 12:31:01 +00:00
nobu 29c9f4a590 Replace versioned Unicode header paths with UNICODE_HDR_DIR
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67055 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-12 12:15:30 +00:00
nobu b795f9bd36 make-snapshot: try downloading Unicode files
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-09 11:04:09 +00:00
nobu 1616dcb16e make-snapshot: try downloading Unicode files
[Bug #15593]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67038 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-08 09:49:49 +00:00
nobu 74f94b3e6e configure.ac: check finite,isinf,isnan as macros first
[ruby-core:91487] [Bug #15595]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67036 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-08 07:22:55 +00:00
nobu 3d1c86a26f Removed moving toplevel header since r12501
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-08 02:46:22 +00:00
nobu 910b13fe51 Update Unicode files
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-07 12:23:02 +00:00
kazu 58a4153439 tool/test/test_jisx0208.rb: Use `require_relative`
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67016 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-07 06:56:13 +00:00
hsbt 8cca079d3b Fixup r66984. Update the location of bundler gemspec.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-02 10:41:22 +00:00
shyouhei e826b7d39e _leaf_helpers.erb: some functions are not leaf
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-02-01 04:39:47 +00:00
shyouhei 857bbfd02c _insn_type_chars.erb: use C99
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 05:36:17 +00:00
shyouhei e20714062b _insn_operand_info.erb: use C99
Same as r66957.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-31 05:22:58 +00:00
shyouhei 971f965da9 _insn_len_info.erb: add ASSERT_VM_INSTRUCTION_SIZE
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 05:00:41 +00:00
shyouhei 72e318f118 _insn_name_info.erb: use C99
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-31 04:46:03 +00:00
shyouhei 0a5b4c13ad vm.inc now in C99
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-25 14:09:10 +00:00
hsbt c52ca1f2ff Revert r58345 and r58371.
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-19 03:36:22 +00:00
nobu 17aeff3e77 make-snapshot: get rid of circular dependency
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-18 09:31:32 +00:00
nobu 6b5695fef9 make-snapshot: make permissions uniform
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66858 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-17 23:52:58 +00:00
nobu 92c6072ef4 rbinstall.rb: add --exclude option for install-nodoc
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66856 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-17 23:23:14 +00:00
hsbt f550da512c Removed old gemspecs of default gems for the Ruby committers.
[Bug #12764][ruby-core:77284]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-17 13:45:48 +00:00
nagachika ad10418eab update redmine-backporter to catch up Redmine 4.0. [ci skip]
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-14 11:04:52 +00:00
kazu e4f46eabab Fix make-snapshot for trunk
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-11 04:58:33 +00:00
k0kubun 56bf732aaf mjit.c: use boolean type for boolean variables
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-10 14:31:18 +00:00
duerst d9699fadf8 simplify filename-related code
(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-06 11:41:12 +00:00
duerst b991ccc210 add logic to handle Unicode beta period file names
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
2019-01-06 07:50:18 +00:00
ko1 da8830e3de fix r66599 to sucess install. please refix this patch @nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66600 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-28 03:09:29 +00:00
nobu 8422725408 Moved version numbers
* 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-28 02:12:34 +00:00
kazu e3e09806a2 Arrange as same as comment and return statement
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-27 09:09:42 +00:00
shyouhei bc64df876e delete emacs mode lines [ci skip]
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-27 06:12:09 +00:00
kazu 5281a0047f Fix typos [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66577 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-26 09:14:28 +00:00
naruse 9b817107ce fix typo
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-26 08:01:51 +00:00
shyouhei 9edb32dae7 add #line [ci skip]
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-26 07:23:35 +00:00
shyouhei d46ab95376 insns.def: refactor to avoid CALL_METHOD macro
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-26 00:59:37 +00:00
shyouhei 686881d383 add _sp_inc_helpers.erb [ci skip]
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-26 00:58:26 +00:00
nobu b52f145889 Set typeflag [Bug #15461]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-25 13:13:42 +00:00
naruse 4d89186598 Add a tool to update w.r-l.o files on release
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-25 10:26:51 +00:00
naruse 4937c6c7da Keep RUBY_RELEASE_DATE's definition
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-25 09:34:35 +00:00
nobu 5a846eb657 rbinstall.rb: purge %x[git ls-files] too
[Bug #13423]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-20 04:03:07 +00:00
nobu 4df4b48455 rbinstall.rb: syntax error in gemspec
* 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-20 03:51:15 +00:00
duerst 13c15beb68 avoid passing unnecessary options to download method
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-19 04:08:46 +00:00
duerst eb2e931f6f add option to deal with Unicode beta data files
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-19 00:26:31 +00:00
usa adc32fd30c Install script of default gems as is to its libexec dir
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-13 10:51:59 +00:00
nobu f798ff4c43 Limit uplevel travarsing
* 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-10 01:58:28 +00:00
nobu fec4b2225e Detection order
* 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
2018-12-10 01:58:27 +00:00
nobu ce8a8c101a Remove unnecessary require of fileutils
Today I updated my ruby core clone, and I run the usual steps to compile
ruby. When running "make", I run into the following error:

```
(... stuff ...)
encdb.h unchanged
Traceback (most recent call last):
	5: from ./tool/mkconfig.rb:19:in `<main>'
	4: from ./tool/mkconfig.rb:19:in `require'
	3: from /home/deivid/Code/ruby/lib/fileutils.rb:4:in `<top (required)>'
	2: from /home/deivid/Code/ruby/lib/fileutils.rb:4:in `require'
	1: from /home/deivid/Code/ruby/rbconfig.rb:11:in `<top (required)>'
/home/deivid/Code/ruby/rbconfig.rb:13:in `<module:RbConfig>': ruby lib version (2.5.0) doesn't match executable version (2.6.0) (RuntimeError)
uncommon.mk:780: recipe for target '.rbconfig.time' failed
make: *** [.rbconfig.time] Error 1
```

Apparently, the script that generates the root `rbconfig.rb` file requires
`fileutils`, which in turn requires 'rbconfig' (for mjit-headers it says in a
comment), which uses the `rbconfig.rb` config file in the root folder if it
exists. In my case, this file existed but had been generated on 2.5.0, thus
causing the error.

I think we can avoid this sort of circular dependency by not requiring
`fileutils`, since it does not seem to be used anywhere in the
`tool/mkconfig.rb` script since r55338.

[Fix GH-2045]

From: David Rodríguez <deivid.rodriguez@riseup.net>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66301 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-10 00:05:43 +00:00
nobu a830793914 Add UNICODE_EMOJI_VERSION to RbConfig [Feature #15341]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66270 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-07 08:51:26 +00:00
nobu fddf7a0518 update-deps: support coroutine dependencies
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66169 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-03 13:12:34 +00:00
k0kubun 57005046a1 tool/downloader.rb: retry Net::OpenTimeout
to prevent random failure
https://travis-ci.org/ruby/ruby/jobs/461667474

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66110 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-01 00:37:54 +00:00
nobu 7aaf5b2878 Embed the Emoji version
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-27 06:44:02 +00:00
ko1 96990203b7 Support targetting TracePoint [Feature #15289]
* vm_trace.c (rb_tracepoint_enable_for_target): support targetting
  TracePoint. [Feature #15289]

  Tragetting TracePoint is only enabled on specified method, proc
  and so on, example: `tp.enable(target: code)`.

  `code` should be consisted of InstructionSeuqnece (iseq)
  (RubyVM::InstructionSeuqnece.of(code) should not return nil)
  If code is a tree of iseq, TracePoint is enabled on all of
  iseqs in a tree.

  Enabled tragetting TracePoints can not enabled again with
  and without target.

* vm_core.h (rb_iseq_t): introduce `rb_iseq_t::local_hooks`
  to store local hooks.
  `rb_iseq_t::aux::trace_events` is renamed to
  `global_trace_events` to contrast with `local_hooks`.

* vm_core.h (rb_hook_list_t): add `rb_hook_list_t::running`
  to represent how many Threads/Fibers are used this list.
  If this field is 0, nobody using this hooks and we can
  delete it.

  This is why we can remove code from cont.c.

* vm_core.h (rb_vm_t): because of above change, we can eliminate
  `rb_vm_t::trace_running` field.
  Also renamed from `rb_vm_t::event_hooks` to `global_hooks`.

* vm_core.h, vm.c (ruby_vm_event_enabled_global_flags): renamed
  from `ruby_vm_event_enabled_flags.

* vm_core.h, vm.c (ruby_vm_event_local_num): added to count
  enabled targetting TracePoints.

* vm_core.h, vm_trace.c (rb_exec_event_hooks): accepts
  hook list.

* vm_core.h (rb_vm_global_hooks): added for convinience.

* method.h (rb_method_bmethod_t): added to maintain Proc
  and `rb_hook_list_t` for bmethod (defined by define_method).

* prelude.rb (TracePoint#enable): extracet a keyword parameter
  (because it is easy than writing in C).
  It calls `TracePoint#__enable` internal method written in C.

* vm_insnhelper.c (vm_trace): check also iseq->local_hooks.

* vm.c (invoke_bmethod): check def->body.bmethod.hooks.

* vm.c (hook_before_rewind): check iseq->local_hooks
  and def->body.bmethod.hooks before rewind by exception.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-26 18:16:39 +00:00
hsbt a2456daf94 Sync the executables of rdoc from upstream repository.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-26 12:23:45 +00:00
hsbt e5906952fc Use libexec for distination directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-26 01:43:02 +00:00
hsbt f944f8ccf2 Followed up r65963. Use libexec directory with sync tool.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-26 01:23:06 +00:00
nobu 867d398558 ChangeLog compatibility [ci skip]
* tool/vcs.rb (VCS::GIT#export_changelog): improve the
  compatibility with svn-log.
  remained differences are:

  - in svn-log

    - accented characters, left/right single quotation marks, and
      non-break spaces are translated to ASCII characters

    - other non-ASCII characters are excoded as `{U+XXXX}`

  - in git-log

    - tabs are expanded

  - in git-log (intentional)

    - lines looking too indented are unindented

    - empty lines between headers and bodies are squeezed

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-25 08:32:52 +00:00
hsbt a943328194 Use stub executables generated by RubyGems istead of original executables.
It resolved the conflict issues when invoking `gem i rdoc` and the binstub
issues with Bundler and Rails.

  [Bug #5060][ruby-core:38257][Fix GH-2023]

  * https://github.com/rubygems/rubygems/pull/2338
  * https://github.com/heroku/heroku-buildpack-ruby/issues/829

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65963 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-25 01:20:00 +00:00
nobu 8a15e08006 mjit_archflag.sh: fix bare word in the header
[ruby-dev:50674] [Bug #15319]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-22 06:09:07 +00:00
nobu 71ce60ceb6 Makefile.in: get rid of `local` for Solaris sh
[ruby-dev:50673] [Bug #15319]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65902 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-21 09:27:47 +00:00
nobu 3f84ef9740 fix for Solaris sh
* Makefile.in (mjit_config.h): removed unnecessary assignment.

* tool/mjit_archflag.sh (define_arch_flags): need to quote on
  Solaris.  [ruby-dev:50669] [Bug #15319]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65808 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-19 13:43:44 +00:00
nobu 38adc0c1e0 _colorize_result_prepare.m4: do not save CONFIGURE_TTY
redirection to a tty, file or pipe is not a permanent status.
`rb_cv_` prefix means that it should be saved/restored across
re-configurations.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65801 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-19 07:00:12 +00:00
nobu c8ab2634c6 update-deps: fix runtime error [ci skip]
* tool/update-deps (init_global): environment strings are frozen.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65791 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-18 23:29:40 +00:00
nobu 34cc6fef83 Make some internal functions static
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-16 06:52:00 +00:00
nobu a3b92a5d92 rbinstall.rb: do not install rdoc flag files [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-16 00:37:48 +00:00
nobu a42784000e . command in some sh cannot take arguments
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65738 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-15 06:22:17 +00:00
nobu 3dac8eda41 tool/mjit_archflag.sh: separated, too many escapes
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65735 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-15 05:22:44 +00:00
nobu f34e8ff672 Add RbConfig.fire_update!
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65720 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14 04:42:14 +00:00
shyouhei 3b257773a5 .travis.yml: specify --tty=no
To reduce the amount of output, prefer --tty=no instead of
--color=never.  This option not only disables color output but also
kill some tty-related features, like spinners.  Travis limits its
output by the physical size of the log, not by the number of lines.
This change should make more room for new logs.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65702 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-13 04:55:43 +00:00
nobu 6a85c2a5ae Fix for bison 3.2 [Bug #15284]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-11 12:40:40 +00:00
nobu c8e8f4dbab Use friendlier terminology in leaf helpers
[Fix GH-2009]

From: Juanito Fatas <juanito.fatas@shopify.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-11 01:25:33 +00:00
hsbt 5ea2717424 Following up r65583. Removed VCR files when retrieving code from upstream.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-07 17:18:14 +00:00
shyouhei 16f5b18b7a gc.c: move ASAN check to configure
Availability of attributes are checked in configure these days,
rather than compiler macros.  Also
__attribute__((no_address_safety_analysis)) is considered
deprecated in both GCC and Clang.  Use the current best practice
if available.  See also:

https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html
https://clang.llvm.org/docs/AddressSanitizer.html


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65558 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 02:57:28 +00:00
kazu c8cbae685f Fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-05 06:02:42 +00:00
nobu 002e0ca428 Create MJIT header with strict permission
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65544 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-05 02:25:46 +00:00
hsbt 59c8d50653 Added bundler as default gems. Revisit [Feature #12733]
* bin/*, lib/bundler/*, lib/bundler.rb, spec/bundler, man/*:
    Merge from latest stable branch of bundler/bundler repository and
    added workaround patches. I will backport them into upstream.
  * common.mk, defs/gmake.mk: Added `test-bundler` task for test suite
    of bundler.
  * tool/sync_default_gems.rb: Added sync task for bundler.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-02 23:07:56 +00:00
k0kubun 51a0f04e6b _mjit_compile_send.erb: do not inline tailcall ISeq
because it's not supported by this file. Also, shared `def_iseq_ptr`
instead of copying the main definition of it.

vm_core.h: moved `def_iseq_ptr` to this place. added `inline` to avoid
compiler warnings since it's not used in some files including vm_core.h.
vm_insnhelper.c: moved `def_iseq_ptr` to vm_core.h.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-30 14:57:03 +00:00
shyouhei c80f3f709f less verbose code by sharing attribute definitions
The idea behind this commit is that handles_sp and leaf are two
concepts that are not mutually independent.  By making one explicitly
depend another, we can reduces the number of lines of codes written,
thus making things concise.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-29 03:21:22 +00:00
shyouhei 08e47ab98a bare_instructions.rb: sort attributes [ci skip]
This enhances stability of the generated source code (namely
insns_info.inc) across attribute insertion / deletion.  It does
not change the compiled binary at all; just a bit of readability.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-29 02:07:52 +00:00
hsbt a509de06bc Added initialization task for default gems.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-25 10:16:28 +00:00
k0kubun 97f3e426a1 _mjit_compile_ivar.erb: cancel on undefined ivar
I assumed somehow this check was not needed, but it did need.
By canceling this instead of just warning here, we didn't lose the
current performance so much.

test_jit.rb: test the case that reproduces SEGV by that.

TestGemStreamUI.rb: delete. This test on --jit-wait is fixed.

=== Optcarrot Benchmark ===

$ benchmark-driver benchmark.yml --rbenv 'before::before --disable-gems --jit;after::after --disable-gems --jit' -v --repeat-count 24
before: ruby 2.6.0dev (2018-10-24 trunk 65355) +JIT [x86_64-linux]
after: ruby 2.6.0dev (2018-10-24 trunk 65355) +JIT [x86_64-linux]
last_commit=_mjit_compile_ivar.erb: cancel on undefined ivar
Calculating -------------------------------------
                             before       after
Optcarrot Lan_Master.nes     85.344      84.849 fps

Comparison:
             Optcarrot Lan_Master.nes
                  before:        85.3 fps
                   after:        84.8 fps - 1.01x  slower

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-24 15:41:14 +00:00
k0kubun fd35cb44b8 _mjit_compile_send.erb: fix wrong cc usages
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-23 12:01:34 +00:00
k0kubun a35eb0cc7d mjit.c: remove wrongly-committed debug code
mistake in r65279.

=== Optcarrot Benchmark ===
$ benchmark-driver benchmark.yml --rbenv 'before::before --disable-gems --jit;after::after --disable-gems --jit' -v --repeat-count 24
before: ruby 2.6.0dev (2018-10-21 trunk 65277) +JIT [x86_64-linux]
after: ruby 2.6.0dev (2018-10-21 trunk 65279) +JIT [x86_64-linux]
last_commit=mjit.c: remove wrongly-committed debug code
Calculating -------------------------------------
                             before       after
Optcarrot Lan_Master.nes     85.008      86.078 fps

Comparison:
             Optcarrot Lan_Master.nes
                   after:        86.1 fps
                  before:        85.0 fps - 1.01x  slower

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-21 14:30:18 +00:00
k0kubun 13df05acfa mjit.c: copy call cache values to MJIT worker
same as r65275 but for call cache.

=== Optcarrot Benchmark ===
$ benchmark-driver benchmark.yml --rbenv 'before::before --disable-gems --jit;after::after --disable-gems --jit' -v --repeat-count 24
before: ruby 2.6.0dev (2018-10-21 trunk 65277) +JIT [x86_64-linux]
after: ruby 2.6.0dev (2018-10-21 trunk 65277) +JIT [x86_64-linux]
last_commit=mjit.c: copy call cache values to MJIT worker
Calculating -------------------------------------
                             before       after
Optcarrot Lan_Master.nes     85.372      85.359 fps

Comparison:
             Optcarrot Lan_Master.nes
                  before:        85.4 fps
                   after:        85.4 fps - 1.00x  slower

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65279 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-21 14:23:24 +00:00
k0kubun 480eccbb35 _mjit_compile_send.erb: don't split send_guard
to another file, because it's no longer shared. It was created when
attr_reader was inlined but it's no longer included.

common.mk: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65276 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-21 13:37:13 +00:00
k0kubun 1b5aa4f516 mjit.c: copy inline cache values to MJIT worker
on VM_CHECK_INTS. Letting MJIT worker directly see inline cache which
may be being updated could result in inconsistent IC index and serial.

mjit_worker.c: request the copy job after dequeue, and receive the
result synchronously.

tool/ruby_vm/views/_mjit_compile_ivar.erb: use the copied IC

mjit_compile.c: change the interface to pass is_entries
mjit.h: ditto

=== Optcarrot Benchmark ===
Thankfully this didn't have major performance regression.

$ benchmark-driver benchmark.yml --rbenv 'before::before --disable-gems --jit;after::after --disable-gems --jit' -v --repeat-count 24
before: ruby 2.6.0dev (2018-10-21 trunk 65263) +JIT [x86_64-linux]
after: ruby 2.6.0dev (2018-10-21 trunk 65263) +JIT [x86_64-linux]
last_commit=mjit.c: copy inline cache values to MJIT worker
Calculating -------------------------------------
                             before       after
Optcarrot Lan_Master.nes     85.421      85.454 fps

Comparison:
             Optcarrot Lan_Master.nes
                   after:        85.5 fps
                  before:        85.4 fps - 1.00x  slower

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65275 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-21 13:21:28 +00:00
k0kubun 00ecff9f78 revert r65213 and r65215
as we didn't agree on the actual implementation yet

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65222 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-20 10:20:49 +00:00
ko1 0b19e15a12 rename configure option `--disable-mjit` to `--disable-mjit-support`
* configure.ac: rename configure option `--disable-mjit` to
  `--disable-mjit-support` because `--disable-mjit` is ambiguous that
  runtime MJIT default enable option or supporting MJIT features.
  `ENABLE_MJIT` is also renamed to `MJIT_SUPPORT`

* Makefile.in: catch up this fix.

* common.mk: ditto.

* test/ruby/test_jit.rb: ditto.

* win32/Makefile.sub: catch up this fix on mswin.

* tool/mkconfig.rb: fix to pass `MJIT_SUPPORT` key.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65217 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-20 08:00:42 +00:00
k0kubun 8449f4992b vm_insnhelper.c: never cache getinstancevariable twice
We have several options to ensure there's no race condition between main
thread and MJIT thead about IC reference:

1) Give up caching ivar for multiple classes (or multiple versions of the
   same class) in the same getinstancevariable (This commit's approach)
2) Allocate new inline cache every time

Other ideas we could think of couldn't eliminate possibilities of race
condition.
In 2, it's memory allocation would be slow and it may trigger JIT
cancellation frequently. So 1 would be fast for both VM and JIT
situations.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-20 07:43:50 +00:00
hsbt 8d3b2631ba Cleanup fiddle extenstion when sync them from github repo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65209 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-20 07:21:14 +00:00
nobu a9025c8841 transform_mjit_header.rb: fix up r65169
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-19 13:11:33 +00:00
nobu 5a8b81fdd3 transform_mjit_header.rb: `inline` may be a macro
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65170 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-19 12:29:47 +00:00
nobu 15d0180b6e transform_mjit_header.rb: add system_header pragma
* tool/transform_mjit_header.rb: insert GCC system_header pragma
  to get rid of errors caused by the contents included from system
  headers.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65169 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-19 12:29:46 +00:00
shyouhei 1b30f57c8f _mjit_compile_ivar.rb: use PRIuSIZE
`ic->ic_value.index` is size_t, not always unsigned long.
See also: https://travis-ci.org/ruby/ruby/jobs/443560810#L2263


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65166 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-19 07:48:45 +00:00
nobu 3c83a94ea9 tool/insns2vm.rb: get rid of expanding paths
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65157 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-18 23:58:21 +00:00
nobu f80c80f004 make-snapshot: package with TarHeader
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65150 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-18 06:36:30 +00:00
usa 6db7b1c55a remove message already unnecesary
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65140 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-18 00:54:32 +00:00
k0kubun c312111c7c tool/downloader.rb: retry Net::ReadTimeout
as failed in
https://ci.appveyor.com/project/ruby/ruby/builds/19540849/job/9p9pq0b7hfrb2r8q

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65097 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-16 09:29:23 +00:00
k0kubun 83e1b361c8 _mjit_compile_ivar.erb: optimize setivar as well
mjit_compile.inc.erb: ditto
common.mk: update dependency for the rename from getivar.erb

=== Optcarrot benchmark ===
```
$ benchmark-driver benchmark.yml --rbenv '2.0.0::2.0.0-p648 --disable-gems;before::before --disable-gems;before+JIT::before --disable-gems --jit;after::after --disable-gems;after+JIT::after --disable-gems --jit' -v --repeat-count 24
2.0.0: ruby 2.0.0p648 (2015-12-16 revision 53162) [x86_64-linux]
before: ruby 2.6.0dev (2018-10-14 trunk 65074) [x86_64-linux]
before+JIT: ruby 2.6.0dev (2018-10-14 trunk 65074) +JIT [x86_64-linux]
after: ruby 2.6.0dev (2018-10-14 trunk 65074) [x86_64-linux]
after+JIT: ruby 2.6.0dev (2018-10-14 trunk 65074) +JIT [x86_64-linux]
Calculating -------------------------------------
                              2.0.0      before  before+JIT       after   after+JIT
Optcarrot Lan_Master.nes     34.434      53.125      84.782      53.321      86.812 fps

Comparison:
             Optcarrot Lan_Master.nes
               after+JIT:        86.8 fps
              before+JIT:        84.8 fps - 1.02x  slower
                   after:        53.3 fps - 1.63x  slower
                  before:        53.1 fps - 1.63x  slower
                   2.0.0:        34.4 fps - 2.52x  slower
```

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65076 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-14 13:25:21 +00:00
k0kubun 3ac55870aa _mjit_compile_getivar.erb: we may not say receiver [ci skip]
for instance variable access, unlike method call.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-14 11:50:52 +00:00
k0kubun 589d80e7e3 vm_opts.h: share USE_IC_FOR_IVAR as OPT_IC_FOR_IVAR
with mjit_compile.c (tool/ruby_vm/views/_mjit_compile_getivar.erb).

mjit_compile.c: ditto
tool/ruby_vm/views/_mjit_compile_getivar.erb: ditto
vm_opts.h: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65074 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-14 11:25:36 +00:00
k0kubun f89fe59db4 _mjit_compile_getivar.erb: optimize IC-hit getivar
by inlining index (and serial to invalidate that) and simplifying the
branch by using JIT cancellation.

mjit_compile.inc.erb: use the above file
mjit_compile.c: copy USE_IC_FOR_IVAR definition. will move this to
another shared file later.
common.mk: add new dependency
test/ruby/test_jit.rb: cover this case

=== Optcarrot benchmark ===
```
$ benchmark-driver benchmark.yml --rbenv '2.0.0::2.0.0-p648;before::before --disable-gems;before+JIT::before --disable-gems --jit;after::after --disable-gems;after+JIT::after --disable-gems --jit' -v --repeat-count 24
2.0.0: ruby 2.0.0p648 (2015-12-16 revision 53162) [x86_64-linux]
before: ruby 2.6.0dev (2018-10-14 trunk 65072) [x86_64-linux]
before+JIT: ruby 2.6.0dev (2018-10-14 trunk 65072) +JIT [x86_64-linux]
after: ruby 2.6.0dev (2018-10-14 trunk 65072) [x86_64-linux]
last_commit=_mjit_compile_getivar.erb: optimize IC-hit getivar
after+JIT: ruby 2.6.0dev (2018-10-14 trunk 65072) +JIT [x86_64-linux]
last_commit=_mjit_compile_getivar.erb: optimize IC-hit getivar
Calculating -------------------------------------
                              2.0.0      before  before+JIT       after   after+JIT
Optcarrot Lan_Master.nes     36.065      53.896      71.565      53.856      84.747 fps

Comparison:
             Optcarrot Lan_Master.nes
               after+JIT:        84.7 fps
              before+JIT:        71.6 fps - 1.18x  slower
                  before:        53.9 fps - 1.57x  slower
                   after:        53.9 fps - 1.57x  slower
                   2.0.0:        36.1 fps - 2.35x  slower

```

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-14 09:24:43 +00:00
k0kubun 0fd5f063aa win32/Makefile.sub: generate MJIT header pdb
in the MJIT-header-specific path, not default path like vc140.pdb.

mjit_worker.c: specify the MJIT-header-specific pdb path.

tool/rbinstall.rb: install MJIT header pdb as well.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-11 16:28:04 +00:00
k0kubun 34ade9a4b7 win32/Makefile.sub: install MJIT header and object
to prefix. This is a retry of r64947. So this doesn't still make mswin MJIT
on install directory succeed. One more step required.

tool/rbinstall.rb: This change is needed to install headers correctly since
the extensions are .obj and .pch, not .h


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-11 15:01:56 +00:00
shyouhei 1af6418742 support --with-arch=x86_64h
Recent apple machines describe themselves being x86_64h.  That
architecture is somehow supported by their C compiler and at least
by recent clang.  However config.sub does not know that fact so
making universal binary targeting it is rejected by the program.

Why not skip the check by config.sub.  [fix GH-1971]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-03 04:49:34 +00:00
nobu 92b469e7da Install HTML docs if produced
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64895 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-02 01:56:43 +00:00
nobu a0ff2a6aaf Expand gemspec path to the real path
`make install` has loaded forwardable.rb twice, from
forwardable.gemspec and prime.gemspec.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64882 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-29 07:04:29 +00:00
k0kubun 6e62e59eec revert r64847, r64846 and r64839
because r64849 seems to fix issues which we were confused about.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64850 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-26 02:38:45 +00:00
k0kubun e08f418230 revert r64838 and r64839
because some build failures persisted

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64846 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-26 01:11:20 +00:00
k0kubun 08c9f030f6 Revert "Revert r64824 to fix build failure on AppVeyor"
This reverts commit r64829. I'll prepare another temporary fix, but I'll
separately commit that to make it easier to revert that later.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64838 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-25 17:19:51 +00:00
k0kubun f00bf24272 Revert r64824 to fix build failure on AppVeyor
AppVeyor msys2/MinGW build started to fail like:
https://ci.appveyor.com/project/ruby/ruby/build/9722/job/b94kixi004klmye3

Until I can investigate that, I revert this for now.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64829 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-25 04:03:35 +00:00
k0kubun fb80f6c7ba insns.def: optimize & and | of Integer [experimental]
not optimizing Array#& and Array#| because vm_insnhelper.c can't easily
inline it (large amount of array.c code would be needed in vm_insnhelper.c)
and the method body is a little complicated compared to Integer's ones.
So I thought only Integer#& and Integer#| have a significant impact,
and eliminating unnecessary branches would contribute to JIT's performance.

vm_insnhelper.c: ditto

tool/transform_mjit_header.rb: make sure these instructions are inlined
on JIT.

compile.c: compile vm_opt_and and vm_opt_or.
id.def: define id for them to be used in compile.c and vm*.c
vm.c: track redefinition of Integer#& and Integer#|
vm_core.h: allow detecting redefinition of & and |

test/ruby/test_jit.rb: test new insns
test/ruby/test_optimization.rb: ditto

* Optcarrot benchmark

This is a kind of experimental thing but I'm committing this since the
performance impact is significant especially on Optcarrot with JIT.

$ benchmark-driver benchmark.yml --rbenv 'before::before --disable-gems;before+JIT::before --disable-gems --jit;after::after --disable-gems;after+JIT::after --disable-gems --jit' -v --repeat-count 24
before: ruby 2.6.0dev (2018-09-24 trunk 64821) [x86_64-linux]
before+JIT: ruby 2.6.0dev (2018-09-24 trunk 64821) +JIT [x86_64-linux]
after: ruby 2.6.0dev (2018-09-24 opt_and 64821) [x86_64-linux]
last_commit=opt_or
after+JIT: ruby 2.6.0dev (2018-09-24 opt_and 64821) +JIT [x86_64-linux]
last_commit=opt_or
Calculating -------------------------------------
                             before  before+JIT       after   after+JIT
Optcarrot Lan_Master.nes     51.460      66.315      53.023      71.173 fps

Comparison:
             Optcarrot Lan_Master.nes
               after+JIT:        71.2 fps
              before+JIT:        66.3 fps - 1.07x  slower
                   after:        53.0 fps - 1.34x  slower
                  before:        51.5 fps - 1.38x  slower

[close https://github.com/ruby/ruby/pull/1963]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-24 12:40:28 +00:00
k0kubun 7a18e2982e _mjit_compile_send.erb: remove TODO comment solved [ci skip]
which was solved by r64820

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64821 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-24 06:21:19 +00:00
k0kubun 36265861b9 _mjit_compile_send.erb: refactor code to setup iseq
by sharing vm_call_iseq_setup_normal. This is a retry of r64280.

vm_insnhelper.c: Remove unused argument `ci` and pass `me` instead of
`cc` to share this with JIT. Declare this with ALWAYS_INLINE to make
sure this function is inlined in JIT.

tool/mk_call_iseq_optimized.rb: deal with the interface change of
vm_call_iseq_setup_normal.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64820 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-24 06:09:55 +00:00
nobu 04a353fe02 tool/enc-unicode.rb: rewrote without flip-flop
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64814 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-22 20:39:35 +00:00
nobu d00199a139 darwin-cc: hide ld warnings
* tool/darwin-cc: ld in Apple's recent Xcode warns text-based stub
  files, which are probably caused by Apple's broken package.
  hide such (and architecture deprecation) warnings during
  configuration to pass TRY_LDFLAGS.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-21 07:19:13 +00:00
shyouhei d6d444d6b2 fix typo [ci skip]
This error does not happen right now so this typo is
not serious, unless you locally edit insns.def.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64791 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-20 05:31:51 +00:00
k0kubun 62327bb6ff vm_insnhelper.h: rename CI_SET_FASTPATH to CC_SET_FASTPATH
because it's actually setting fastpath to cc instead of ci since r51903.

vm_insnhelper.c: ditto
mjit_compile.c: ditto
tool/ruby_vm/views/_mjit_compile_send.erb: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64772 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-18 12:48:28 +00:00
k0kubun 433c2714a1 common.mk: ruby tool/update-deps --fix
tool/update-deps: tweak the comment to make sure it should be built in
the source directory, because building ruby outside source directory
failed on my trial.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-17 01:31:06 +00:00
shyouhei 9c6bd0d840 move ADD_PC around (take 2)
Now that we can say for sure if an instruction calls a method or
not internally, it is now possible to reroute the bugs that
forced us to revert the "move PC around" optimization.

First try: r62051
Reverted:  r63763
See also:  r63999

----

trunk: ruby 2.6.0dev (2018-09-13 trunk 64736) [x86_64-darwin15]
ours: ruby 2.6.0dev (2018-09-13 trunk 64736) [x86_64-darwin15]
last_commit=move ADD_PC around (take 2)
Calculating -------------------------------------
                           trunk        ours
         so_ackermann      1.884       2.278 i/s -       1.000 times in 0.530926s 0.438935s
             so_array      1.178       1.157 i/s -       1.000 times in 0.848786s 0.864467s
      so_binary_trees      0.176       0.177 i/s -       1.000 times in 5.683895s 5.657707s
       so_concatenate      0.220       0.221 i/s -       1.000 times in 4.546896s 4.518949s
       so_count_words      6.729       6.470 i/s -       1.000 times in 0.148602s 0.154561s
         so_exception      3.324       3.688 i/s -       1.000 times in 0.300872s 0.271147s
          so_fannkuch      0.546       0.968 i/s -       1.000 times in 1.831328s 1.033376s
             so_fasta      0.541       0.547 i/s -       1.000 times in 1.849923s 1.827091s
      so_k_nucleotide      0.800       0.777 i/s -       1.000 times in 1.250635s 1.286295s
             so_lists      2.101       1.848 i/s -       1.000 times in 0.475954s 0.541095s
        so_mandelbrot      0.435       0.408 i/s -       1.000 times in 2.299328s 2.450535s
            so_matrix      1.946       1.912 i/s -       1.000 times in 0.513872s 0.523076s
    so_meteor_contest      0.311       0.317 i/s -       1.000 times in 3.219297s 3.152052s
             so_nbody      0.746       0.703 i/s -       1.000 times in 1.339815s 1.423441s
       so_nested_loop      0.899       0.901 i/s -       1.000 times in 1.111767s 1.109555s
            so_nsieve      0.559       0.579 i/s -       1.000 times in 1.787763s 1.726552s
       so_nsieve_bits      0.435       0.428 i/s -       1.000 times in 2.296282s 2.333852s
            so_object      1.368       1.442 i/s -       1.000 times in 0.731237s 0.693684s
      so_partial_sums      0.616       0.546 i/s -       1.000 times in 1.623592s 1.833097s
          so_pidigits      0.831       0.832 i/s -       1.000 times in 1.203117s 1.202334s
            so_random      2.934       2.724 i/s -       1.000 times in 0.340791s 0.367150s
so_reverse_complement      0.583       0.866 i/s -       1.000 times in 1.714144s 1.154615s
             so_sieve      1.829       2.081 i/s -       1.000 times in 0.546607s 0.480562s
      so_spectralnorm      0.524       0.558 i/s -       1.000 times in 1.908716s 1.792382s



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-14 07:44:44 +00:00
k0kubun 26a11ae771 Revert "vm_insnhelper.h: simplify EXEC_EC_CFP implementation"
This reverts commit r64711, because EXEC_EC_CFP on JIT-ed code does not
call jit_func with the patch when catch_except_p is true. It wasn't intentional.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64730 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-13 07:12:07 +00:00
k0kubun bada0d24eb vm_insnhelper.h: simplify EXEC_EC_CFP implementation
and possibly memory access for iseq->body may be reduced.

No significant impact for performance on Optcarrot.

* before
fps: 55.03865935187656
fps: 57.16854675983188
fps: 57.672458407661765
fps: 58.28989837869383
fps: 58.80503815099268
fps: 59.068054176528534
fps: 59.55736806358244
fps: 61.01018920533034
fps: 63.34167049232186
fps: 65.20575018321766
fps: 65.46758316561318

* after
fps: 55.21860411005677
fps: 55.34840351179166
fps: 58.23666596747484
fps: 59.71987124578901
fps: 61.131485120234935
fps: 61.279905164649485
fps: 61.66060774175459
fps: 64.11215576508765
fps: 64.63699742853154
fps: 65.28260058920769
fps: 65.85447796482678

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64711 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-13 06:39:40 +00:00
shyouhei 6925c9c6f5 move canary-related statements into macros
This is mostly cosmetic.  Should generate a slightly readable
vm.inc output.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-13 03:46:46 +00:00
k0kubun f7b0a791ca _mjit_compile_pc_and_sp.erb: forget about memcpy [ci skip]
because using memcpy here actually made performance worse.
In Optcarrot,

* for loop
fps: 55.90428960597268
fps: 57.21690379342434
fps: 58.41751168279789
fps: 58.7317470613203
fps: 62.81371000202459
fps: 63.02541045417479
fps: 63.77324026366317
fps: 65.48067818347447
fps: 66.02324323831398
fps: 66.3816048847424
fps: 66.54526488660156

* memcpy
fps: 54.98389812126847
fps: 57.96524857391357
fps: 57.974918725327946
fps: 58.285987089087364
fps: 58.639003211333225
fps: 59.03244214601948
fps: 59.89964772199603
fps: 60.809490242786175
fps: 62.462070790624146
fps: 62.534599002918306
fps: 63.787312566163756

That's probably because the copied size is very small.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-12 13:32:11 +00:00
k0kubun 0325145f4c _mjit_compile_insn.erb: move pc on JIT cancel
if and only if it's not moved yet, to avoid potential bugs in the future.

_mjit_compile_send.erb: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-11 15:14:56 +00:00
k0kubun 6e3fe890d5 bare_instructions.rb: use Hash#fetch to read attr
to raise descriptive KeyError instead of NoMethodError in case these
attrs are accidentally removed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-11 14:10:00 +00:00
k0kubun 10ff0a2bbe _mjit_compile_insn.erb: prefer insn.always_leaf?
rather than `trace_enablable_insns` which is hard to maintain.

This would make performance bad because new branches for tracepoint will
be added.

Optcarrot before:
fps: 56.885371547337655
fps: 60.02493636060194
fps: 63.051028327122076
fps: 63.78463316242535
fps: 64.20391937940403
fps: 64.55990344731123
fps: 64.56771099162921
fps: 64.95991277629723
fps: 65.15120708973232
fps: 65.90558702393933
fps: 66.29579283026303

Optcarrot after:
fps: 52.7647027470875
fps: 53.67404855529564
fps: 58.40514319229468
fps: 60.90736996487708
fps: 62.83487236283472
fps: 63.01386139447994
fps: 63.42395443471596
fps: 63.78328559878602
fps: 64.58432081229746
fps: 64.78720429848532
fps: 65.48720618907552

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-11 13:48:00 +00:00
k0kubun 67bd8fb36b _mjit_compile_pc_and_sp.erb: skip moving pc
when catch_except_p is false and insn.always_leaf? is true (never makes
arbitrary method call in the insn).

On Optcarrot, unfortunately this didn't have measureable performance impact.
But still this is a good direction since it becomes much faster when
marking all insns as always leaf.

bare_instructions.rb: add `#always_leaf?` that indicates the insn can
always be considered as leaf. Using dynamic leaf for JIT would be hard
since it requires to discard outdated code somehow.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64683 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-11 12:53:52 +00:00
k0kubun 24e30ef76e transform_mjit_header.rb: add static to Init_*
as well, to make CI succeed with VM_CHECK_MODE > 1.

vm_insnhelper.c: drop unnecessary MJIT_HEADER ifdef. This is intended to
be ignored by having `static inline`. Removing that by macro would be
helpful for minimizing compilation time, but the impact is not so big
and having many MJIT_HEADER check would be bad for maintainability.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64682 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-11 11:26:15 +00:00
shyouhei c2bfb4e93c add new instruction attribute called leaf
An instruction is leaf if it has no rb_funcall inside.  In order to
check this property, we introduce stack canary which is a random
number collected at runtime.  Stack top is always filled with this
number and checked for stack smashing operations, when VM_CHECK_MODE.
[GH-1947]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-11 09:48:58 +00:00
nobu 5af7cda5a5 tool/node_name.rb: rewrote without flip-flop
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-07 13:43:01 +00:00
nobu 1cf2bb4b20 use mingw ANSI stdio
[Bug #13496]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-04 08:39:14 +00:00
nobu c115b39e03 Declare as gnu_printf on mingw
[Bug #13496]

From: MSP-Greg <MSP-Greg@users.noreply.github.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64620 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-03 08:20:41 +00:00
hsbt 8a9996493a Fixed installation failure with mswin environment.
[ruby-core:88699][Bug #15035]
  This patch was provided by MSP-Greg.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-28 13:42:39 +00:00
k0kubun 288e27899b tool/downloader.rb: retry 500 from GitHub
Unfortunately, GitHub may return 500 for temporary failure:
https://travis-ci.org/ruby/ruby/builds/417246523

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-18 02:04:44 +00:00
usa 5bf3db3efb get rid of an encode noncompatible error
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64339 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-13 12:42:55 +00:00