1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
Commit graph

51178 commits

Author SHA1 Message Date
nobu
aec14b33d4 vm.c: simplified core#hash_merge_kwd
* vm.c (core_hash_merge_kwd): simplified to merge the second hash
  into the first hash.

* compile.c (compile_array): call core#hash_merge_kwd with 2
  hashes always, by passing an new empty hash to at the first
  iteration.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-03 23:56:11 +00:00
normal
8d004ee5fb mjit.h: avoid signed pointer comparisons (fix for 32-bit)
ptrdiff_t is a signed type, use uintptr_t instead for unsigned
comparisons.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-03 21:29:18 +00:00
svn
1b812422fb * 2018-07-04
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63843 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-03 15:25:50 +00:00
kazu
60fa7d5fa3 Fix compile error
signal.c:69:10: error: variably modified ‘signm’ at file scope
     char signm[LONGEST_SIGNAME + 1];
          ^

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-03 15:25:49 +00:00
nobu
a0e141b34f signal.c: packed signals
* signal.c (signals): pack signal names instead of references.

* signal.c (signm2signo): also reject too long signal name.
  [ruby-core:87767] [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63841 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-03 13:34:56 +00:00
nobu
a982952e32 adjust indent [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63840 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-03 13:25:59 +00:00
naruse
66bda1824a skip test_localtime_zone if force_tz_test is false
For example Solaris
https://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable10x/ruby-trunk/log/20180703T091803Z.fail.html.gz

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63839 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-03 11:10:45 +00:00
kazu
6d57d87e4b [DOC] Use https: instead of git: [ci skip]
ref r63801, r61199

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63838 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-03 11:01:06 +00:00
normal
18c7978161 vm.c (rb_source_location): check for NULL cfp->iseq
rb_vm_get_sourceline returns zero if cfp->iseq is NULL,
so rb_iseq_path should not try to follow NULL cfp->iseq,
either.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63837 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-03 09:06:28 +00:00
normal
45cdc834c4 thread_pthread.c (native_thread_destroy): clear native TSD pointer
mwrap <https://80x24.org/mwrap/> interposes malloc functions and
checks for GVL existence to determine Ruby source locations of
malloc calls.  pthread_getattr_np (from get_stack) may call
realloc to get the CPU set size; so when using the thread-cache,
ruby_thread_has_gvl_p() may hit a false positive on reused
threads with lingering rb_thread_t in thread-specific data.

This was causing mwrap to call rb_source_location_cstr() and
crash because it was pointed to a zero ec->cfp->iseq.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63836 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-03 08:30:16 +00:00
nobu
8fc203ba5f cont.c: handle errors for getcontext()
It may raise an error in a certain security configuration.
It is very likely to trigger a segmentation fault if `getcontext()` failed silently
and we just let it keep going.

Related to https://bugs.ruby-lang.org/issues/14883
[Fix GH-1903]

Based on the patch from Lion Yang <lion@aosc.io>

From: Lion Yang <lion@aosc.io>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63835 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-03 05:12:52 +00:00
nobu
b03c1d087b fake.rb.in: duplicated RUBYOPT
* template/fake.rb.in: removed duplicated options in RUBYOPT.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-03 04:43:27 +00:00
nobu
6e65c89d3d rubyopt_spec.rb: skip -v in RUBYOPT examples
* spec/ruby/command_line/rubyopt_spec.rb: skip -v in RUBYOPT
  examples when CROSS_COMPILING is set by fake.rb.  the version
  number by -v is printed before loading libraries by -r options,
  so setting RUBY_DESCRIPTION in fake.rb has no effect.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-03 04:43:25 +00:00
nobu
ef01bbcf70 configure.ac: [DOC] refine help messages
cflags, cppflags, and cxxflags are additional flags to auto
configured flags, and ignored when the their respective autoconf
default variables are given.
[ci skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63832 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-03 00:49:32 +00:00
normal
5470722125 test/ruby/test_signal.rb: speedup some test by disabling RubyGems
test_signame_delivered is reduced from 1.0s to 0.1s

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63831 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-03 00:29:06 +00:00
svn
a7b874b324 * 2018-07-03
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63830 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-02 23:14:53 +00:00
normal
ca37c5d41e process.c (waitpid_nogvl): start timer thread polling for lossy SIGCHLD
For systems with lossy SIGCHLD, an infinitely sleeping timer
thread needs to be aware of rb_waitpid callers in the first
place before it can check and reset polling status.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63829 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-02 23:14:52 +00:00
ngoto
2c68033a6d Makefile.in: ARCH_FLAG may contain "-m64" etc.
* Makefile.in (mjit_config.h): ARCH_FLAG may contain "-m64", "-m32",
  "-march=i486" and so on, but the change made with r63232 only
  supports "-arch AAA -arch BBB" mainly used on Mac OS X.
  To solve the issue, ARCH_FLAG is parsed and the architectures
  specified in "-arch XXX" are added to $archs and the rest is
  stored to $arch_flag. The $arch_flag is defined as MJIT_ARCHFLAG
  if $archs is empty or the target architecture is not listed in $arch.
  Fix build failure on Solaris 10 with ./configure CFLAGS="-m64".
  [Bug ] [ruby-dev:50583]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63828 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-02 13:50:53 +00:00
kazu
ad0169421f Use PRI_PIDT_PREFIX for results of getpid()
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63827 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-02 11:11:39 +00:00
nobu
482bbde6e2 time.c: [DOC] Time#localtime
* time.c: state that Time#localtime does nothing when nothing
  changes.  [ruby-core:87675] [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63823 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-02 07:46:38 +00:00
nobu
b53114dd99 set up mjit.on at initialization
* ruby.c (cmdline_options_init): set up mjit.on flag by
  MJIT_FORCE_ENABLE in the initialization function.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63822 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-02 07:42:24 +00:00
svn
e2b7363e4c * 2018-07-02
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63821 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-02 01:50:24 +00:00
usa
dea8422992 get rid of a compiler warning of VC
* mjit.c (exec_prcess): use PRI_PIDT_PREFIX for pid.

* win32/Makefile.sub (PRI_PIDT_PREFIX): force to "I".


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63820 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-02 01:50:23 +00:00
ktsj
b3fb892dba NEWS: add NEWS entry about Kernel#then [Feature ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63816 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-01 08:12:14 +00:00
ktsj
32a7614d21 lib/.document: add csv
lib/csv.rb was divided into lib/csv/*.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-01 08:12:13 +00:00
kazu
cede4ce997 Fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63814 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-01 01:38:18 +00:00
kazu
52f269e085 Remove unused variable
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-01 01:38:16 +00:00
svn
fe398f87fe * 2018-07-01
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63812 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-01 01:38:14 +00:00
kazu
36fa6af2e8 [DOC] newer codes recommend to use spaces only
[Bug ]
[ci skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63811 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-01 01:38:14 +00:00
eregon
5235d57b07 Fix spec/ruby/command_line/rubylib_spec.rb for use with make test-spec
* Current code clears ENV['RUBYLIB'], but on Windows it's needed when
  running from build 'src' (or running make test-spec).
* Patch by MSP-Greg, from https://github.com/ruby/spec/pull/607.
* Imported manually to fix CI on Windows, without needing a full sync.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-30 13:53:10 +00:00
nobu
7b230cfe28 use sigsetjmp on macOS
SIGCHLD is used internally since r63758, the signal masks need to
be restored.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63803 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-30 11:56:54 +00:00
normal
e205271094 fix r63799 ("test/ruby/test_rubyoptions.rb: improve diagnostics for failures")
CI machines are faster than mine :x

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-30 08:38:36 +00:00
kazu
828f4bf448 [DOC] Use https: instead of http:, git: [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63801 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-30 08:11:16 +00:00
kazu
19d71d8e37 [DOC] Update URL of rurema [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63800 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-30 08:10:58 +00:00
normal
671c9ef32f test/ruby/test_rubyoptions.rb: improve diagnostics for failures
rubyci.org OSX CI instances seem to hang on this, but I'm not
sure why...

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-30 07:53:31 +00:00
normal
fed4ba5948 test/ruby/test_optimization.rb: increase timeout
For slow systems...

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63798 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-30 07:52:51 +00:00
normal
9eb6861502 process.c: attempt to reap spawnvp (win32) result from mjit
Basically in win32, mjit.c seems to work directly on spawnvp
result while normal Ruby code wraps process handles to look
like *nix PIDs.  I'm only guessing, here...

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63797 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-30 06:11:33 +00:00
normal
e4600b87b5 mjit: provide more diagnostics for waitpid failures
Also, enable check for defined(_WIN32) macro for SIGCHLD_LOSSY, too.

[Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63796 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-30 03:50:52 +00:00
normal
ce2a3b40ed use SIGCHLD_LOSSY to enable waitpid polling mode
Some systems lack SIGCHLD or have incomplete SIGCHLD
implementations.  So enable polling mode for them.

[ruby-core:87705] [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63795 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-30 00:51:57 +00:00
normal
47f3c4d147 test_thread.rb (test_thread_interrupt_for_killed_thread): reprieve for MJIT
With MJIT enabled, the exit (from SIGTERM) may take a long time
to complete.  Prevent EnvUtil.invoke_ruby from falling back to
other signals (SIGABRT) when Process.wait takes longer than the
default 1s reprieve.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63794 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-29 22:20:12 +00:00
normal
4bf8834dc8 signal.c: use ATOMIC_EXCHANGE for sigchld_hit
sig_atomic_t may not be sufficient for multi-threaded
applications if the sighandler runs on a different CPU
than timer thread.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63793 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-29 22:13:02 +00:00
svn
3a0f6ab422 * 2018-06-30
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-29 21:01:24 +00:00
normal
2ac41230c4 test/lib/test/unit/assertions.rb (assert_in_out_err): disable gems
RubyGems loading is still a bottleneck at startup and this speeds up
test/ruby/test_rubyoptions.rb test from 15s => 3.5s on the fastest
machine I have access to.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63791 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-29 21:01:23 +00:00
normal
be076acb51 process.c: handle errno correctly in non-SIGCHLD path
It's a bit redundant, but we optimize for platforms with
SIGCHLD, not without.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-29 08:51:33 +00:00
normal
25b15f9441 process.c (waitpid_nogvl): check interrupts before sleeping
We may be interrupted by another thread after setting ubf,
but before we re-acquire interrupt_lock again to sleep on
w->cond.

This should fix test_wait_interrupt in test/ruby/test_process.rb

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63789 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-29 07:52:24 +00:00
shyouhei
d3ae13571f improve C0 coverage of insns.def
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63788 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-29 04:56:07 +00:00
nobu
7b1372b0ac rethrow the caught exception as-is
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63787 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-29 03:28:26 +00:00
normal
d93f3bad36 test_process.rb (test_wait_exception): check assertion sooner
To diagnose f.puts => EPIPE failures in CI(*).  I'm not sure
what's wrong and can't reproduce EPIPE even with my slow laptop
from 2005.

(*) http://ci.rvm.jp/results/trunk_gcc5@silicon-docker/1058203

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63786 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-29 02:53:11 +00:00
normal
54394b3b71 process.c: fix typo in non-SIGCHLD waitpid :x
I expect this to fix [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-29 02:21:08 +00:00
svn
c4236d8328 * 2018-06-29
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-28 23:47:00 +00:00