summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-08-17vm.c: add a simple rdoc for RubyVMmame
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64404 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-17thread_pthread.c (rb_sigwait_fd_get): skip getpid checknormal
This is not called in signal handlers, so there's no reason for it. glibc 2.25+ no longer caches getpid(), so it will cost a syscall for those users. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-17signal.c: no SIGCHLD, no sigchld_hitnobu
* signal.c (sigchld_hit): if SIGCHLD is not available, this variable never sets. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-17ast.c (rb_ast_node_type): return frozen stringsnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-17passing non-stdio fds is not supported on Windowsnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-16process.c: defaults to close_others falsenormal
Arbitrarily closing file descriptors on exec breaks use cases where a Ruby process sets up a descriptor for non-Ruby children to use. For example, the "rake foo" target may spawn any number of subprocesses (Ruby or not) which depends on parsing the "FOO" environment variable for out_fd:99 and writing to foo.out FOO=out_fd:99 rake foo 99>>foo.out Unfortunately, this introduced one incompatibility in test/lib/test/unit.rb and it now requires explicitly setting IO#close_on_exec=true [ruby-core:88007] [Misc #14907] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-16thread_sync.c (rb_mutex_lock): acquire lock before being killednormal
We (the thread acquiring the mutex) need to acquire the mutex before being killed to work with ConditionVariable#wait. Thus we reinstate the acquire-immediately-after-sleeping logic from pre-r63711 while still retaining the acquire-after-checking-for-interrupts logic from r63711. This regression was introduced in commit 501069b8a4013f2e3fdde35c50e9527ef0061963 (r63711) ("thread_sync.c (rb_mutex_lock): fix deadlock") for [Bug #14841] [ruby-core:88503] [Bug #14999] [Bug #14841] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64398 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-16Makefile.sub: remove -DRUBY_EXPORT overridden by -U optionnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-16* 2018-08-17svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-16appveyor.yml: run on all branchesnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64395 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-16Remove outdated comment [ci skip]kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64394 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-16skip examples failing on solarisnaruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64393 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-16configure.ac: LIBPATHENV on macOSnobu
* configure.ac (LIBPATHENV): use DYLD_FALLBACK_LIBRARY_PATH instead of DYLD_LIBRARY_PATH on macOS, to honor runtime paths embedded in the binaries. [ruby-core:88487] [Bug #14992] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-16Makefile.in: dependencies to config.statusnobu
* Makefile.in (ruby.pc, ruby-runner.h): fix missing dependencies. config.status is needed to be up to date, to run it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64391 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-16thread.c (consume_communication_pipe): disarm UBF_TIMER before consumenormal
Same reasoning as the disarm in rb_sigwait_fd_get, the current thread is already processing signals, so we do not need UBF_TIMER to continually kick the process, anymore. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-16thread_pthread.c: reduce ubf_timer arming for non-signal wakeupsnormal
We do not need to rely on SIGVTALRM for non-sighandler wakeups. This will reduce spurious wakeups in cases where sigwait_fd is not grabbed again, soon. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64389 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-16thread_pthread.c: check signals from gvl.timernormal
For (rare) blocking functions which are not affected by signals, we need to call the appropriate unblocking function via `threadptr_trap_interrupt' While we're at it, handling waitpid/SIGCHLD from gvl.timer isn't harmful, here. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64388 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-16test/net/imap/test_imap.rb (test_exception_during_idle): kill infinite loopernormal
It is possible for Mutex#sleep (via ConditionVariable#wait) to prematurely wake up under MJIT (because Mutex#sleep can't handle spurious wakeups). This affects @idle_done_cond in Net::IMAP#idle and means the response handler may never set `in_idle' to `true`. In any case, ensure the infinite looping `raiser' thread stops running when the test is done. Will work on reducing the effect of spurious wakeups from MJIT... git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-16* properties.svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-16Adding Enumerator::Lazy#uniq and Enumerator::Lazy#grep_v to proc chainingnobu
[Feature #14994] [Fix GH-1930] From: Anmol Chopra <chopraanmol1@gmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-16enumerator.c: id_lazy is no longer used since r38923nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-16apply r64239 to macOS toonobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-15* 2018-08-16svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-15test/ripper/test_parser_events.rb (test_block_variables): bump RLIMIT_AS againnormal
I still seem to need more memory for parallel tests with MJIT... git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64381 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-15gmtimew_noleapsecond uses tables for mon and mday.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-15spec/ruby/optional/capi/ext/io_spec.c: guard unreachable codenobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-15spec/ruby/optional/capi/ext/io_spec.c: guard unreachable codenobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64378 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-15thread_pthread.c: hoist out do_gvl_timer and improve documentationnormal
This hopefully clarifies the roles of UBF_TIMER and vm->gvl.timer [ruby-core:88475] [Misc #14937] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-15vm_core.h (rb_thread_t): pack small fields togethernormal
On a 64-bit system, this reduces rb_thread_t from 536 to 520 bytes. Depending on the allocation, this can reduce cacheline access for checking the abort_on_exception, report_on_exception and pending_interrupt_queue_checked flags. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64376 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-15thread_pthread.h (native_thread_data): split list_node between ubf and gvlnormal
Do not waste extra memory for each thread, but make thread_pthread.c easier-to-follow as a result. [ruby-core:88475] [Misc #14937] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64375 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-15test_function.rb: skip running testk0kubun
that times out with test-all w/ --jit-wait. I'm running the following command on Wecker CI everyday: ``` make test-all TESTOPTS="--color=never --job-status=normal" RUN_OPTS="--disable-gems --jit-wait --jit-warnings" RUBY_FORCE_TEST_JIT=1 ``` By running yesterday's all commits, r64354 ran successfully but r64355 didn't. So the test should be fixed to run with --jit-wait at first. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-15thread_pthread.c: rename rb_timer_* to ubf_timer_*normal
These functions will not be exported outside of thread_pthread.c and we need to clarify the timer here is used for ubf and not timeslice. [ruby-core:88475] [Misc #14937] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-15thread_pthread.c: rename timer_thread_pipe to signal_self_pipenormal
This data structure has nothing to do with timers or threads. [ruby-core:88475] [Misc #14937] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-15thread_pthread.c: additional UBF_TIMER == UBF_TIMER_PTHREAD guardsnormal
Hopefully this makes the code easier-to-follow [ruby-core:88475] [Misc #14937] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-15appveyor.yml: no MSYS path conversionnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64370 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-15test_readline.rb: skip teardown failurek0kubun
https://ci.appveyor.com/project/ruby/ruby/build/9271/job/e88212s136mr0dgr I'll take a look at MSP-Greg's patch on readline later. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64369 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-15appveyor.yml: get rid of msys sh as possiblenobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-15-Wsuggest-attribute=noreturn on io_spec_rb_io_wait_readablenobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64367 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-15test_env.rb: change mingw branchk0kubun
https://github.com/MSP-Greg/ruby-loco/blob/e287cb739113da289271a017a1e7fa46cbfe47d9/patches/gte20600/test-ruby-test_env.rb_test_huge_value.patch From: MSP-Greg (Greg L) <Greg.mpls@gmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64366 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-15skip tests failing on AppVeyor MinGWk0kubun
Let me skip this to make CI green first and take a look later... git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-14appveyor.yml: remove broken --name optionk0kubun
Currently all tests are skipped by the --name option. V=1 is for debugging this issue. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-14webrick/httpauth/htgroup.rb (flush): avoid unnecessary unlinknormal
Based on patch by akr [ruby-core:88477], use Tempfile.create to avoid unnecessary unlink call. Unlike akr's original patch, this does not change the return value of flush. Thanks-to: Tanaka Akira <akr@fsij.org> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64363 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-14Revert "test/lib/leakchecker.rb (find_tempfiles): don't warn for missing files"normal
This reverts commit 52102f6ff50eebf8c16667c9b49cef579d2057c1 (r64238). It is no longer necessary if we use Tempfile.create in WEBrick::HTTPAuth::Htgroup#flush (see next commit) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64362 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-14Revert "thread_pthread.c: use UBF_TIMER_PTHREAD on Solaris"normal
This reverts commit 31bfe0fe86433beddfec2b2bdba69dfda1775f8d (r64357) commit 17ed23bb6dfc942a8c51658b01135c3e2807ccf0 (r64359, "fix fragile spec from unpredictable errno") is the correct fix git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64361 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-14* 2018-08-15svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64360 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-14spec/ruby/optional/capi/io_spec.rb: fix fragile spec from unpredictable errnonormal
rb_io_wait_readable and rb_io_wait_writable depend on the TSD errno value. Due to the recent changes in r64352-r64353 to restructure GVL, errno could be set to EAGAIN from the signal self-pipe and cause the rb_io_wait_readable spec to block unexpectedly. This should fix rubyspec timeouts on Solaris: http://rubyci.s3.amazonaws.com/unstable11s/ruby-trunk/log/20180814T042506Z.fail.html.gz * spec/ruby/optional/capi/ext/io_spec.c: add errno= setter method * spec/ruby/optional/capi/io_spec.rb: set errno to appropriate values for tests git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-14non-symbol keys in kwargsnobu
* class.c (separate_symbol): [EXPERIMENTAL] non-symbol key in keyword arguments hash causes an exception now. c.f. https://twitter.com/yukihiro_matz/status/1022287578995646464 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64358 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-14thread_pthread.c: use UBF_TIMER_PTHREAD on Solarisnormal
I'm not sure what's causing this failure in Solaris and only on rubyspec, since rb_io_wait_readable is a well-exercised code path in other places. But maybe using a pthread for timing (similar to old timer-thread) can solve the issue. cf. http://rubyci.s3.amazonaws.com/unstable11s/ruby-trunk/log/20180814T042506Z.fail.html.gz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64357 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-14thread_pthread.c: use CLOCK_REALTIME on SunOS (Solaris)normal
timer_create does not seem to support CLOCK_MONOTONIC on Solaris, and CLOCK_HIRES seems like it could fail with insufficient permissions: https://docs.oracle.com/cd/E86824_01/html/E54766/timer-create-3c.html (Only tested on Linux and FreeBSD) [ruby-core:88360] [Misc #14937] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-14test/fiddle/test_function.rb (test_nogvl_poll): stop timer hacknormal
EINTR seems unavoidable in real programs (or MJIT), so maybe it's not worth dealing with. r64353 relies on POSIX timers to signal. Switching pipes and sockets to non-blocking by default would let us get rid of POSIX timers, timer pthread and this hack: https://bugs.ruby-lang.org/issues/14968 [ruby-core:88360] [Misc #14937] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64355 b2dd03c8-39d4-4d8f-98ff-823fe69b080e