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

168 Коммитов

Автор SHA1 Сообщение Дата
Nobuyoshi Nakada f169043d81
Add pipeline operator [Feature #15799] 2019-06-13 18:44:32 +09:00
Nobuyoshi Nakada c7477c3e1f
Moved Makefile.in under template 2019-06-07 09:09:58 +09:00
Nobuyoshi Nakada 200c840b95
Revert "Moved Makefile.in under template"
This reverts commits:
* 6f9d5fafe0
* bb3c89b643

And remove the dependency of Makefile on Makefile.in
transitionally.
2019-06-07 09:03:25 +09:00
Nobuyoshi Nakada 6f9d5fafe0
Moved Makefile.in under template 2019-06-07 08:44:37 +09:00
Nobuyoshi Nakada 8fd3b9fc5f
Force update all RDoc at install
RDoc needs to parse all files at once for the cross-reference.
2019-05-25 17:16:07 +09:00
Nobuyoshi Nakada 29fcb37a83
Fixed a typo 2019-05-08 17:00:12 +09:00
Nobuyoshi Nakada fdcd640507
Makefiles need to be indented by tabs 2019-04-28 11:36:03 +09:00
Takashi Kokubun 3581a64239
BSD's mktemp does not have `-p` 2019-04-25 19:42:10 +09:00
Takashi Kokubun 57225dc07a
Show `make checkout-github/merge-github` in help 2019-04-25 19:25:03 +09:00
Takashi Kokubun b2e92bfd9f
Resurrect `make xxx-github PR=1234` interface
`call xxx, yyy` seems to pass " yyy" instead of "yyy".
2019-04-25 18:54:44 +09:00
Nobuyoshi Nakada 70adfdcd8d
Added pr-%
May merge multiple github pull requests at once. e.g.,

    $ make pr-123456789 pr-987654321
2019-04-25 18:29:58 +09:00
Nobuyoshi Nakada 44bb429bb1
Cache git config values 2019-04-25 18:27:16 +09:00
Takashi Kokubun 6de9128fe9
Add `make checkout-github` too
You can use this like `make checkout-github PR=1234`
2019-04-25 18:05:52 +09:00
Nobuyoshi Nakada 116f91ab50
Make working tree under the source directory 2019-04-25 15:33:05 +09:00
Nobuyoshi Nakada 09ce223b0b
Rebase the pull request in a worktree
A pull request based on an old commit may rewind too many files,
even if unnecessary.  As rewinding some files, e.g., common header
files, configure.ac, will result in full-rebuild, rebase in a
separate directory to get rid of such rewind.
2019-04-25 15:03:54 +09:00
Takashi Kokubun 6061aa0ac1
Automatically gpg-sign rebase when commit.gpgsign
is true

Closes: https://github.com/ruby/ruby/pull/2148
2019-04-25 00:12:13 +09:00
Takashi Kokubun daff4cbd6c Add `make fetch-github` and `make merge-github`
Closes: https://github.com/ruby/ruby/pull/2147
2019-04-24 22:48:21 +09:00
Koichi Sasada 2ef6673708 force 10 chars SHA1 display.
`make update-src` shows latest commit hash for convinience.
However, `rev-parse --short` option shows different length
(maybe) between git versions. This fix force 10 chars
with `--short=10`.
2019-04-24 09:30:07 +09:00
nobu 0db89a38f2 Show the latest commit hash after update
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-21 03:30:38 +00:00
ktsj 9738f96fcf Introduce pattern matching [EXPERIMENTAL]
[ruby-core:87945] [Feature #14912]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67586 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-17 06:48:03 +00:00
nobu 54b93ef1ac compile.c: name a hidden local variable as a predefined ID
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67505 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-10 12:43:34 +00:00
kazu 25c1fd3b90 Reverting all commits from r67479 to r67496 because of CI failures
Because hard to specify commits related to r67479 only.
So please commit again.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-10 09:15:21 +00:00
nobu 91db3b6c6b compile.c: name a hidden local variable as a predefined ID
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67496 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-10 07:18:25 +00:00
nobu 59a37c0283 gmake.mk: get rid of unicode normalization table timestamp
* common.mk, defs/gmake.mk: rid of unicode normalization tables
  timestamp.  update the target tables file only when only it
  exists.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-04 12:11:53 +00:00
nobu 6faf266893 gmake.mk: update normalization table
* defs/gmake.mk: try to update Unicode normalization tables file
  if Unicode data files exist.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-04 05:10:26 +00:00
mame 95f7992b89 Introduce beginless range [Feature#14799]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67422 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-03 08:11:41 +00:00
nobu cb57336e86 GNU make does not need srcs_vpath
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-14 14:21:14 +00:00
nobu 67c5747369 Method reference operator
Introduce the new operator for method reference, `.:`.
[Feature #12125] [Feature #13581]
[EXPERIMENTAL]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-31 15:00:37 +00:00
nobu 278648b599 CHDIR to follow symlink [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66444 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-18 16:01:58 +00:00
nobu 8a52020f95 Add separator for test/-ext-
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-06 05:29:04 +00:00
nobu 1a6ae0a99f Always try to update revision.h with GNU make
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66089 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-29 07:07:40 +00:00
nobu 5a9066f22a Executable scripts have been moved to libexec [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-28 14:56:19 +00:00
nobu 8c8e72fb8b Add clean-srcs
Add `clean-srcs` target to clean sources in the build directory,
and `realclean-srcs` target to clean autogenerated sources in the
source directory.  Also `realclean-srcs-extra` target to clean
sources which are generatable but need to install extra commands,
in addition.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-24 04:34:00 +00:00
nobu 259173ccc0 run single test [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65831 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 06:13:42 +00:00
nobu 312fc605c1 rdoc query
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65826 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 03:07:46 +00:00
nobu cb592b3713 defs/known_errors.def: update on macOS Mojave Xcode 10.1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65717 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14 02:27:17 +00:00
nobu 2c989a6ff4 Makefile.in: update-known-errors
* Makefile.in (update-known-errors): update defs/known_errors.def
  by using errno(1).

* defs/known_errors.def: sort alphabetically for merger.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65716 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14 02:27:16 +00:00
nobu c878cf5030 Moved REVISION_FORCE before uncommon.mk
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65704 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-13 06:16:56 +00:00
nobu 45295303ac gmake.mk: force updating revision.h
Since `.revision.time` recipe needs `$(BASERUBY)`, it should not
try to get updated unconditionally, or tarballs fail to build on
environments where BASERUBY is not available.

All developers who build frequently use GNU make anyway, don't
you?

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-13 03:24:18 +00:00
k0kubun ceab9f363c common.mk: force updating revision.h on each commit
by making .revision.time PHONY. Prior to this commit, RUBY_DESCRIPTION
has been updated only when version.h (or tool/file2lastrev.rb) is updated.

.revision.time (REVISION_H) target internally has IFCHANGE to update
revision.h. So it doesn't touch revision.h when it's not updated,
and thus it's safe to run every time.

defs/gmake.mk: drop obsoleted reference to REVISION_FORCE

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-13 02:06:51 +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
ko1 f3c5239b16 introduce new YARV insn newhashfromarray.
* insns.def (newhashfromarray): added to replace `core_hash_from_ary`
  method to eliminate method call overhead.

  On my environment, I got the following benchmark results:

  x = {x: 1}

                    modified:   7864988.6 i/s
                       trunk:   6004098.1 i/s - 1.31x  slower


  x = {x: 1, y: 2}

                       trunk:   6127338.4 i/s
                    modified:   5232380.0 i/s - 1.17x  slower


  x = {x: 1, y: 2, z: 3}

                    modified:   6089553.1 i/s
                       trunk:   5249333.5 i/s - 1.16x  slower

  This trivial improvement should be reconsider because of usage of
  this instruction.

* compile.c: ditto.

* defs/id.def, vm.c: remove unused functions.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-24 01:57:27 +00:00
nobu 3757515501 revert r64925
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64927 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-06 15:14:19 +00:00
nobu 96eff9ed71 order-only-prerequisites
* defs/gmake.mk: use order-only-prerequisites to run build and test
  targets sequentially.
  https://www.gnu.org/software/make/manual/html_node/Prerequisite-Types.html

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-06 03:11:46 +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
nobu d370a3d44c fixup r64270
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64272 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-10 11:55:19 +00:00