51439 Commits

Author SHA1 Message Date
svn
33c74657ff * 2018-07-21
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64006 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-20 22:30:40 +00:00
normal
8f78430da6 test/-ext-/gvl/test_last_thread.rb: skip under MJIT
Spurious wakeup is unavoidable with MJIT; and any real
code must be able to deal with spurious wakeup anyways.

[ruby-core:87882] https://bugs.ruby-lang.org/issues/14901

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64005 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-20 22:30:39 +00:00
hsbt
d6ec12417a Promote Shell library to default gems.
* doc/*: Move entry to default gems category from standard library.
  * lib/shell/*: Added `Shell::VERSION` and re-used it with @RELEASE_VERSION.
  * test/shell/test_command_processor.rb: added missing require for test library.
  * tool/sync_default_gems.rb: Support shell library. We need to ignore shellwords.rb when
    syncing shell* files.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64004 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-20 02:24:59 +00:00
hsbt
6d4a5caa62 Fixed wrong library patFixed wrong library pathh
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-20 01:48:11 +00:00
kazu
5e4ab84dca Do not use git ls-files for file listing.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-20 01:40:36 +00:00
svn
997830cd94 * 2018-07-20
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-20 01:26:00 +00:00
hsbt
43fbdfe806 Promote Tracer to default gems.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-20 01:25:59 +00:00
k0kubun
c86fc2bba5 mjit_compile.c: reduce sp motion on JIT
This retries r62655, which was reverted at r63863 for r63763.

tool/ruby_vm/views/_mjit_compile_insn.erb: revert the revert.
tool/ruby_vm/views/_mjit_compile_insn_body.erb: ditto.
tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb: ditto.
tool/ruby_vm/views/_mjit_compile_send.erb: ditto.
tool/ruby_vm/views/mjit_compile.inc.erb: ditto.

tool/ruby_vm/views/_insn_entry.erb: revert half of r63763. The commit
  was originally reverted since changing pc motion was bad for tracing,
  but changing sp motion was totally fine. For JIT, I wanna resurrect
  the sp motion change in r62051.
tool/ruby_vm/models/bare_instructions.rb: ditto.
insns.def: ditto.
vm_insnhelper.c: ditto.
vm_insnhelper.h: ditto.

* benchmark

$ benchmark-driver benchmark.yml --rbenv 'before;after;before --jit;after --jit' --repeat-count 12 -v
before: ruby 2.6.0dev (2018-07-19 trunk 63998) [x86_64-linux]
after: ruby 2.6.0dev (2018-07-19 add-sp 63998) [x86_64-linux]
last_commit=mjit_compile.c: reduce sp motion on JIT
before --jit: ruby 2.6.0dev (2018-07-19 trunk 63998) +JIT [x86_64-linux]
after --jit: ruby 2.6.0dev (2018-07-19 add-sp 63998) +JIT [x86_64-linux]
last_commit=mjit_compile.c: reduce sp motion on JIT
Calculating -------------------------------------
                             before       after  before --jit  after --jit
Optcarrot Lan_Master.nes     51.354      50.238        70.010       72.139 fps

Comparison:
             Optcarrot Lan_Master.nes
             after --jit:        72.1 fps
            before --jit:        70.0 fps - 1.03x  slower
                  before:        51.4 fps - 1.40x  slower
                   after:        50.2 fps - 1.44x  slower

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63999 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-19 13:25:22 +00:00
svn
33f2c8940e * 2018-07-19
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-19 11:22:05 +00:00
nobu
5ad205b81d renamed ruby_tz_update as ruby_tz_uptodate_p
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-19 11:22:03 +00:00
k0kubun
1adbbc3f48 test_rubyoptions.rb: skip testing JIT on mswin
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-18 13:11:03 +00:00
k0kubun
053cdaf7ee ruby.c: accept --disable-jit option
by promoting jit to feature flag.

mjit.h: update comment about mjit_opts.on

test_rubyoptions.rb: add test for switching JIT enablement

"--jit" flag usage may be deprecated later, but not discussed yet.

[Feature #14878]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63995 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-18 12:45:54 +00:00
nobu
4bc1669127 reduce tzset
* time.c (rb_localtime_r): call tzset() only after TZ environment
  variable is changed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63994 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-18 10:30:41 +00:00
normal
a22232cd93 zlib (rb_gzreader_getc): localize and return cbuf directly
No point in having a long-lived cbuf in "struct gzfile"
since GZFILE_CBUF_CAPA is smaller than RSTRING_EMBED_LEN_MAX
(even on 32-bit).  We can also have rb_econv_convert write
directly to the return value instead of an intermediate buffer.

This brings "struct gzfile" from 264 to 256 bytes on 64-bit
systems to avoid taking an additional cache line.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-18 08:16:18 +00:00
tenderlove
f705c52908 Include the alternative malloc header instead of malloc.h
This commit fixes a build error on systems that have
`malloc_usable_size` but also enable jemalloc via `--with-jemalloc`.
For example, Ubuntu Precise defines `malloc_usable_size` in malloc.h, so
gc.c will include malloc.h.  This definition conflicts with jemalloc's
definition, so the following error occurs:

```
compiling gc.c
compiling hash.c
In file included from gc.c:50:0:
/usr/include/malloc.h:152:15: error: conflicting types for 'malloc_usable_size'
/usr/include/jemalloc/jemalloc.h:45:8: note: previous declaration of 'malloc_usable_size' was here
cc1: warning: unrecognized command line option "-Wno-self-assign" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-constant-logical-operand" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-parentheses-equality" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-tautological-compare" [enabled by default]
```

Since jemalloc always defines `malloc_usable_size`, this patch just
includes the jemalloc header instead of malloc.h if it's available.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-17 22:27:52 +00:00
k0kubun
80dac806cc revert r63988
Due to trunk-mjit CI failures:
http://ci.rvm.jp/results/trunk-mjit@silicon-docker/1130097
http://ci.rvm.jp/results/trunk-mjit@silicon-docker/1130196

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-17 16:20:15 +00:00
k0kubun
5aa52587e8 insns.def: remove redundant ifndef in r63988
By the way, the original patch of r63988 was provided by wanabe:
https://github.com/wanabe/ruby/tree/local-stack

but I forgot to add his credit in the previous commit message.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-17 15:15:31 +00:00
svn
941bc1a6a0 * 2018-07-18
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63989 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-17 15:09:42 +00:00
k0kubun
6a4bb345df mjit_compile.c: resurrect local variable stack
This optimization was reverted on r63863, but this commit resurrects the
optimization to skip some sp motions on JIT execution.

tool/ruby_vm/views/_mjit_compile_insn_body.erb: ditto
tool/ruby_vm/views/_mjit_compile_insn.erb: ditto

insns.def: resurrect handles_frame as handles_stack, which was deleted
on r63763.
tool/ruby_vm/models/bare_instructions.rb: ditto

vm_insnhelper.c: prevent moving sp outside insns.def to allow modifying
it by JIT.

* Optcarrot benchmark

$ benchmark-driver benchmark.yml --rbenv 'before --jit;after --jit' --repeat-count 12 -v
before --jit: ruby 2.6.0dev (2018-07-17 trunk 63987) +JIT [x86_64-linux]
after --jit: ruby 2.6.0dev (2018-07-17 local-stack 63987) +JIT [x86_64-linux]
last_commit=mjit_compile.c: resurrect local variable stack
Calculating -------------------------------------
                         before --jit  after --jit
Optcarrot Lan_Master.nes       70.518       72.144 fps

Comparison:
             Optcarrot Lan_Master.nes
             after --jit:        72.1 fps
            before --jit:        70.5 fps - 1.02x  slower

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63988 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-17 15:09:41 +00:00
hsbt
e749134f0a Promote Synchronizer to default gems.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-17 12:21:29 +00:00
hsbt
c982cbd16a Unified common workflow for default gems.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-17 11:39:16 +00:00
nobu
d459572c10 test for wrong order: option
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-17 01:26:22 +00:00
nobu
985961769d Fix message when order was an invalid value
The symbol that can be used is `:bottom`, not `:down`.
Ref: e39b2cff8a/error.c (L1061)

[Fix GH-1916]

From: yuuji.yaginuma <yuuji.yaginuma@gmail.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-17 01:22:32 +00:00
nobu
25510c1c2c ruby-runner.c: show the failed path
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-17 01:00:05 +00:00
nobu
71120953d7 dir.c: fix glob with base when no DT_UNKNOWN
* dir.c (do_stat, do_lstat): need the length of the base path for
  fstatat() when fd is valid.

* dir.c (glob_helper): fix for platforms where DT_UNKNOWN is not
  available, e.g. Solaris.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-17 00:47:19 +00:00
svn
e75fbfdacb * 2018-07-17
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-16 15:06:15 +00:00
kazu
400e5e332e [DOC] Update doc of NameError.new [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-16 15:06:14 +00:00
naruse
2af66d34f7 No one knows how many leap seconds in year 2100
Just check whether leep seconds are considered or not.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-16 14:43:38 +00:00
duerst
abb7438849 tool/downloader.rb:
* remove initial "./" from destdir to make downloading
  ./enc/unicode/data/11.0.0/ucd/auxiliary/GraphemeBreakProperty.txt
  work properly
* tweak a comment

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-16 10:20:24 +00:00
nobu
e39b2cff8a ruby.c: disable DidYouMean as gem
* ruby.c (process_options): as DidYouMean requires Rubygems, disable
  the former when the latter is disabled too.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-16 05:05:27 +00:00
yui-knk
e70cad6091 parse.y (heredoc_identifier): Update comment for term_len
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-16 02:07:44 +00:00
svn
352446428d * 2018-07-16
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63975 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-16 01:26:26 +00:00
yui-knk
d21f468dab parse.y: Add comment for rb_strterm_heredoc_struct.sourceline
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-16 01:26:25 +00:00
ktsj
7b98385dd1 node.h: remove unused macro nd_compile_option
Follow up of r61610

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-15 11:45:59 +00:00
ktsj
a343f6609e vm_core.h, vm_dump.c: fix cast
Revert r63968 and cast at caller side to prevent unintentional casting.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63972 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-15 11:42:15 +00:00
nobu
62870d2c73 process.c: adjust indent [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63971 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-15 09:57:27 +00:00
ktsj
78a2a1be76 insns.def: fix typo in comment
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-15 09:48:09 +00:00
ktsj
99b6ef932f vm_dump.c: fix warning about constness
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-15 09:47:12 +00:00
ktsj
59b3827325 vm_core.h: add missing cast
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-15 09:45:31 +00:00
svn
a70d5ff0ab * 2018-07-15
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-14 17:04:57 +00:00
watson1978
91061e74e4 Fix documentation in Object#remove_instance_variable
It should be described that the string argument will be accept like Object#instance_variable_get.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-14 17:04:56 +00:00
svn
1761f45837 * 2018-07-14
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63965 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-14 02:59:41 +00:00
normal
b9f9986a5e webrick/httpresponse: set_redirect requires a valid URI
Prevents response splitting and HTML injection attacks in
poorly-written applications which blindly pass along user input
in redirects.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-14 02:59:39 +00:00
normal
eb53b0ff05 process.c (assert_close_on_exec): quiet warning about unused result
Not much we can do if writing to STDERR_FILENO fails.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63963 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-13 06:05:43 +00:00
normal
83b737d8b2 test/ruby/test_signal.rb (test_sigchld_ignore): increase timeout
I suspect CI test machine was overloaded at the time,
or swapping at the time due to parallel build with mjit.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-13 03:15:04 +00:00
svn
20d3e1c8cf * 2018-07-13
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63961 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-12 23:23:26 +00:00
normal
c6b85fcd01 timer_thread: do not close pipes around fork
There's actually no need to close the pipes used by the
sleepy timer thread before forking, only to stop the timer
thread itself.

Instead, we only close the parent pipes in the child process,
either via close-on-exec flag or when reinitializing the timer
thread.

This change will be necessary when we allow
rb_wait_for_single_fd and rb_thread_fd_select to wait on the
timer_thread_pipe.normal[0] directly and eliminate timer thread.

I don't anticipate compatibility problems with this change
alone.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-12 23:23:25 +00:00
nobu
cb5598a419 Improve branch misses
Improve branch misses on frozen object predicate checks negatively
affecting performance of most setters as most objects are not frozen.

[Fix GH-1913]

From: Lourens Naudé <lourens@bearmetal.eu>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-12 05:01:04 +00:00
kazu
bcf8ce8494 Fix compile error on debian8 and gentoo
https://rubyci.org/logs/rubyci.s3.amazonaws.com/debian8/ruby-trunk/log/20180711T213004Z.log.html.gz#miniruby
https://rubyci.org/logs/rubyci.s3.amazonaws.com/gentoo/ruby-trunk/log/20180711T213003Z.log.html.gz#miniruby
```
./include/ruby/ruby.h:2213:49: error: missing binary operator before token "("
 # if defined(__has_attribute) && __has_attribute(diagnose_if)
                                                 ^
```

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-12 03:59:13 +00:00
nobu
1c904182d2 removed unusecd constants
* ruby-runner.c (ruby_libm_func): removed as the following test
  actually doesn't need the path of libm.

* test/fiddle/test_pointer.rb (Fiddle::TestPointer#test_free=):
  removed never used constants and instance variables.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-12 02:29:57 +00:00