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

1710 Коммитов

Автор SHA1 Сообщение Дата
Alan Wu 89e7997622 Combine call info and cache to speed up method invocation
To perform a regular method call, the VM needs two structs,
`rb_call_info` and `rb_call_cache`. At the moment, we allocate these two
structures in separate buffers. In the worst case, the CPU needs to read
4 cache lines to complete a method call. Putting the two structures
together reduces the maximum number of cache line reads to 2.

Combining the structures also saves 8 bytes per call site as the current
layout uses separate two pointers for the call info and the call cache.
This saves about 2 MiB on Discourse.

This change improves the Optcarrot benchmark at least 3%. For more
details, see attached bugs.ruby-lang.org ticket.

Complications:
 - A new instruction attribute `comptime_sp_inc` is introduced to
 calculate SP increase at compile time without using call caches. At
 compile time, a `TS_CALLDATA` operand points to a call info struct, but
 at runtime, the same operand points to a call data struct. Instruction
 that explicitly define `sp_inc` also need to define `comptime_sp_inc`.
 - MJIT code for copying call cache becomes slightly more complicated.
 - This changes the bytecode format, which might break existing tools.

[Misc #16258]
2019-10-24 18:03:42 +09:00
Hiroshi SHIBATA 2791989a31
Fixed sync path of e2mmap structure for gemspec. 2019-10-24 16:11:01 +09:00
Nobuyoshi Nakada 601f1fb456
Catch syntax error even if fatal 2019-10-23 02:05:28 +09:00
NARUSE, Yui 99ca5705a2 tool/release.sh uses ruby-actions' result
https://github.com/ruby/actions
2019-10-22 22:15:52 +09:00
NARUSE, Yui d736511e42 Move format-release to tool and fix bugs 2019-10-22 21:44:19 +09:00
Nobuyoshi Nakada ed3333f873
make-snapshot: Regexp#match raises on nil now 2019-10-22 21:05:52 +09:00
Nobuyoshi Nakada f8fb51c976
Revert "alias assert_raise_message for compatibility with test-unit"
This reverts commit 43015275b9.

`assert_raise_message` in test-unit is different from
`assert_raise_with_message`.  It checks the exception message
only, but not the exception class,
2019-10-16 21:00:36 +09:00
Nobuyoshi Nakada 43015275b9
alias assert_raise_message for compatibility with test-unit 2019-10-16 17:44:51 +09:00
Kazuhiro NISHIYAMA 7abb02771a
Fix typo [ci skip]
pointed out by ruby-trunk-changes
2019-10-08 00:00:24 +09:00
Kazuhiro NISHIYAMA 3374e1450c
Write yaml and json under destdir and print to stdout 2019-10-07 19:33:33 +09:00
Kazuhiro NISHIYAMA 96753e8475
Create info.yml and info.json
- `info.yml` is for ruby/www.ruby-lang.org/_data/releases.yml
- `info.json` is meta data for users of snapshot
2019-10-07 19:05:42 +09:00
Kazuhiro NISHIYAMA bb86611c9b
Remove `-s3` option
It will not use in `ruby/actions`, and `default=tmp` is not correct.
2019-10-07 19:03:06 +09:00
Nobuyoshi Nakada 8f7fca784a
make-snapshot: touch updated files after prepared
Align mtime of files updated by `make prepare-package` to make
packages reproducible.
2019-10-03 19:14:49 +09:00
Nobuyoshi Nakada 8142a9b43d
make-snapshot: suppress make error messages unless failed 2019-10-03 19:12:03 +09:00
Nobuyoshi Nakada 47d143be17
make-snapshot: copy cache files instead of linking
To get rid of setting mode and mtime of the original cache files.
2019-10-03 19:09:16 +09:00
Nobuyoshi Nakada b7ae26e2ee
vcs.rb: fix to export git-svn version
* Use the given branch name instead of implicit 'HEAD".
* Format like as git-svn when `from` or `to` is SVN revision
  number.
2019-10-03 19:07:48 +09:00
Hiroshi SHIBATA c14755e9ca
[ruby/fileutils] improve the compatibility of minitest
https://github.com/ruby/fileutils/commit/f16f5a0dd6
2019-10-03 18:32:21 +09:00
卜部昌平 84fc1de512 use bind_call for test-all --gc-stress
This one allocation of Method object is worth avoiding.  We don't
want to test UnboundMethod#bind right here.  GC need not run.
2019-10-03 15:24:09 +09:00
Koichi Sasada 9759e3c9f0 fix assertion number.
On parallel test, there are additional tests because of implicit
checkers which are enabled on 84cbce3d88.
2019-10-02 17:19:14 +09:00
Nobuyoshi Nakada 4ed51b3956
Fixed failure message for `clean-cache` 2019-10-02 17:03:55 +09:00
Koichi Sasada 84cbce3d88 Enable checkers on parallel test.
parallel test (`make test-all TESTS=-j8`) runs tests on specified
number of processes. However, some test checkers written in
`runner.rb` are not loaded. This fix enable these checkers on
parallel tests.

See also: https://github.com/ruby/ruby/pull/2508
2019-10-02 16:23:00 +09:00
NAKAMURA Usaku a61ae414b6 Fix the order of executing `after-update` task 2019-10-02 13:00:17 +09:00
NAKAMURA Usaku 5af2c8735a Should fail if `system` failed 2019-10-02 12:59:59 +09:00
Hiroshi SHIBATA 15606963de expose assert_raise and assert_join_threads 2019-10-01 22:19:18 +09:00
Koichi Sasada 945560008f Revert "introduce debug check."
This reverts commit c3b84f2de8.
Backtrace shows it is before running tests and debug check was
nonsense.
2019-09-30 17:59:10 +09:00
Koichi Sasada c3b84f2de8 introduce debug check.
There are random failures:

> lib/rubygems/core_ext/kernel_require.rb:61:in `require':
> wrong number of arguments (given 1, expected 0) (ArgumentError)
http://ci.rvm.jp/results/trunk-jemalloc@silicon-docker/2275159

To check this failure, I added a small check code.
2019-09-30 17:23:36 +09:00
Koichi Sasada bf8d7d9c1d show RUBY_ISEQ_DUMP_DEBUG envval if given. 2019-09-30 15:35:22 +09:00
Benoit Daloze a27dc83113 Pass $(XRUBY) to test-bundled-gems.rb since RbConfig.ruby is incorrect for miniruby 2019-09-29 13:57:54 +02:00
Benoit Daloze 4096e4b08c Move the logic to test bundled gems to Ruby code
* Writing shell scripts in a Makefile is very error-prone.
* TEST_BUNDLED_GEMS_ALLOW_FAILURES seemed to not work before.
2019-09-29 13:57:54 +02:00
Nobuyoshi Nakada 03284fb911
assert_in_out_err should use FailDesc too 2019-09-27 21:07:53 +09:00
Nobuyoshi Nakada 642dbb962c
make-snapshot: store timestamps in UTC for zip which lacks timezone 2019-09-23 01:25:17 +09:00
Kazuhiro NISHIYAMA d8221a54f2
Add `-mtc=off` to `7z` not to store NTFS timestamps
https://sevenzip.osdn.jp/chm/cmdline/switches/method.htm
2019-09-23 00:55:48 +09:00
Nobuyoshi Nakada b0d24e262f
make-snapshot: Added -no7z option
It disables 7z, which seems not to have an option to stop saving
extra file attributes (uid/gid and atime), in order to make zip
packages stable.
2019-09-22 22:26:07 +09:00
Nobuyoshi Nakada 7fe7dec7e5
make-snapshot: Do not save extra file attributes
Extra file attributes (uid/gid and atime) make the packaged zip
file unstable.
2019-09-22 22:18:14 +09:00
Yusuke Endoh 5f35b8ca30
st.c: Use rb_st_* prefix instead of st_* (#2479)
The original st.c was public domain hash table implementation, but
Ruby's st.c is highly modified, and its data structure is not
compatiblie with the original one.

Therefore, when creating an extension library to wrap C code that uses
the original st.c, the symbols conflict, which leads to segfault.

This changes the prefix `st_*` of st.c functions to `rb_st_*` for
reflecting that they are specific to Ruby's, and avoid symbol conflicts.
2019-09-22 22:12:18 +09:00
Fangrui Song e006b992c2 typedef rb_jmpbuf_t to void *[5] if __builtin_setjmp is used
The built-in version operates on a buffer of 5 words, much smaller than
the size of jmp_buf defined in libc.
Note, powerpc requires 5 words, while arm and x86_64 just require 3.
2019-09-21 13:24:58 +09:00
Hiroshi SHIBATA 1de242de0f
Fixed up 37c0839425 2019-09-20 14:22:32 +09:00
Hiroshi SHIBATA 9d25c652a9
Removed ThreadsWait from the ruby repository 2019-09-20 14:21:04 +09:00
Hiroshi SHIBATA 37c0839425
Removed Synchronizer from the ruby repository. 2019-09-20 14:06:22 +09:00
Hiroshi SHIBATA 3b56a0934f
Removed Shell from the ruby repository. 2019-09-20 12:56:18 +09:00
Hiroshi SHIBATA 67a6662032
Removed Scanf from the ruby repository. 2019-09-20 12:43:11 +09:00
Hiroshi SHIBATA a3b8501614
Removed CMath from the ruby repository. 2019-09-20 12:31:37 +09:00
Nobuyoshi Nakada 6cad064424
Try to fetch commits notes to the source tree automatically
[Bug #16167]
2019-09-15 16:23:33 +09:00
Nobuyoshi Nakada 585b15d75d
make-snapshot: no merge commits in ChangeLog
Parents commit hashs in logs of merge commits are abbreviated to
necessary length depending on the repositories.  Exclude merge
commits from ChangeLog to make it stable.
2019-09-15 11:22:32 +09:00
Nobuyoshi Nakada df4a4bd88c
make-snapshot: export ChangeLog from srcdir 2019-09-15 11:22:32 +09:00
Nobuyoshi Nakada 1ad4be13cb
make-snapshot: deprecated -exported option [Bug #16167] 2019-09-15 02:07:00 +09:00
Nobuyoshi Nakada e9c7fc7ca9
Continue to export even if no notes/commits
Just exporting may not imply exporting ChangeLog which needs
notes/commits.  [Bug #16167]
2019-09-14 23:50:45 +09:00
Nobuyoshi Nakada 3ef76ce44a
make-snapshot: -git option is no longer provided [ci skip] 2019-09-08 21:22:37 +09:00
Nobuyoshi Nakada 2d017d6126
make-snapshot: default to the toplevel directory
As this tool has been intended to use in a working directory,
assume that the toplevel directory is under the VCS, and SVN will
no longer be canonical.
2019-09-08 00:48:18 +09:00
Nobuyoshi Nakada f3bae2c6cf
Touch copied cache files to make tarballs stable 2019-09-08 00:22:25 +09:00