Activity
From 08/12/2018 to 08/18/2018
08/18/2018
-
11:49 PM Revision f6f54d77 (git): Guard spec which only works on Linux
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64465 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
11:17 PM Misc #15007 (Assigned): Let all Init_xxx and extension APIs frequently called from init code paths be considered cold
- References Github PR https://github.com/ruby/ruby/pull/1934
### Why?
An incremental extraction from PR https://github.com/ruby/ruby/pull/1922, specifically addressing the feedback from Yui Naruse in https://github.com/ruby/ruby/pul... -
09:22 PM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
- eregontp@gmail.com wrote:
> It failed for http://ci.rvm.jp/results/trunk_gcc6@silicon-docker/1235550
Maybe wishful thinking, but r64464 might be the right fix.
Time for Me#sleep -
07:35 PM Bug #14999 (Closed): ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
- Applied in changeset commit:ruby-git|c742050ea5fd30108f913383c0fafc4614adb04c.
----------
Revert r64441
* This reverts commit 647fc1227a4146ecbfeb0d59358abc8d99cd8ae6:
"thread_sync.c (rb_mutex_synchronize): only unlock if we own the ... -
03:56 PM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
- It failed for http://ci.rvm.jp/results/trunk_gcc6@silicon-docker/1235550
-
01:54 PM Bug #14999 (Open): ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
-
01:54 PM Bug #14999 (Closed): ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
- Applied in changeset trunk|r64448.
----------
Revert r64441
* This reverts commit 647fc1227a4146ecbfeb0d59358abc8d99cd8ae6:
"thread_sync.c (rb_mutex_synchronize): only unlock if we own the mutex"
* Let's try to preserve the semantics... -
01:50 PM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
- OK, I'll revert r64441 since I think we should preserve the semantics of always being locked inside Mutex#synchronize, even if an exception interrupts ConditionVariable#wait.
Let's keep thinking about how to implement that correctly.
... -
11:42 AM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
- eregontp@gmail.com wrote:
> What was wrong with the first patch?
I still saw CI failures with it:
http://ci.rvm.jp/results/trunk_gcc7@silicon-docker/1234097
In retrospect, it could've also been fixed with [Feature #15002]
>... -
11:13 AM Bug #14999 (Open): ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
-
11:05 AM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
- What was wrong with the first patch?
It looks good from a quick glance, although indeed it doesn't deal with Mutex_m.
Maybe Thread.handle_interrupt(Object => :on_blocking) (or the equivalent in C) would help?
> No good. Now testing:... -
06:32 AM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
- Eric Wong wrote:
> Committed a version which only avoids switching on r64436
> We'll see if CI alerts are quieter, now.
No good. Now testing:
https://80x24.org/spew/20180818062657.3424-1-e@80x24.org/raw
(should commit when done ... -
04:42 AM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
- Eric Wong wrote:
> eregontp@gmail.com wrote:
> > @normalperson I added the specs in r64409.
> > However I just saw that the spec failed once on Ubuntu:
> > https://rubyci.org/logs/rubyci.s3.amazonaws.com/ubuntu/ruby-trunk/log/201808... -
12:32 AM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
- eregontp@gmail.com wrote:
> @normalperson I added the specs in r64409.
> However I just saw that the spec failed once on Ubuntu:
> https://rubyci.org/logs/rubyci.s3.amazonaws.com/ubuntu/ruby-trunk/log/20180817T213003Z.fail.html.gz
... - 08:04 PM Revision 2e420b8b (git): thread_sync.c (rb_mutex_sleep): skip interrupt check before sleep
- We do not want to risk switching threads before going to sleep
because it can cause unexpected wakeups and put us in an
unexpected state when used with ConditionVariable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64464 b2dd03c8-... -
07:37 PM Revision 17d20383 (git): Special case for Solaris 11x on RubyCI
- * Where localhost is an alias but not the primary name of 127.0.0.1.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64463 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
07:37 PM Revision 4dc1c725 (git): Be more flexible in the protocol value returned by getaddrinfo()
- * Only Solaris 2.10 i386 and Windows seem to return 0 it and other
Solaris seem to fill the value.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64462 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
07:37 PM Revision 08bca6b6 (git): Adapt pack_sockaddr_in specs for Solaris
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
07:36 PM Revision 10f642ba (git): Use ftp for the service in getaddrinfo/getnameinfo/getservbyname specs
- * Solaris cannot resolve 'http' but can resolve 'ftp'.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64460 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
07:36 PM Revision 61a33fa8 (git): Simplify to a more standardized Socket SCM constant in specs
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
07:36 PM Revision 686a4e24 (git): Add guards for Solaris for socket specs
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
07:36 PM Revision 946c0808 (git): Adapt spec to consider Solaris
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
07:35 PM Revision 08563f2e (git): Use 127.0.0.1 instead of localhost in Addrinfo specs
- * Solaries doesn't support Addrinfo.getaddrinfo('localhost', 80),
but supports Addrinfo.getaddrinfo('127.0.0.1', 80).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
07:35 PM Revision 3405ea62 (git): Accept TypeError for Socket#getnameinfo
- * Happens when VALIDATE_SOCKLEN() actually checks the length such as on
FreeBSD.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
07:35 PM Revision 7b37c8cd (git): Always set autoclose=false for IO.for_fd fds
- * I believe this should be default behavior, see [Feature #2250].
* Now make test-spec MSPECOPT='-R100 spec/ruby/library/socket' works fine.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e - 07:35 PM Revision bf4276b4 (git): * properties.
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
07:35 PM Revision 0cd63557 (git): Re-add socket specs
- * This reverts commit df9521fd043df1fb862e46f9b1af83223f16eb2d:
"Remove failing spec files"
* Platform guards follow in the next commits.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e - 07:03 PM Revision bfdf6cde (git): Revert "thread.c (sleep_*): check interrupt before changing th->status"
- This reverts commit 9e59487a38d914275bedcde723923f22b3779e59 (r64449)
More (but different) CI failures I can't reproduce locally...
http://ci.rvm.jp/results/trunk-test@ruby-sky3/1235951
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk... - 06:29 PM Revision 49a5f2c5 (git): * 2018-08-19
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64450 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
- 06:29 PM Revision 9e59487a (git): thread.c (sleep_*): check interrupt before changing th->status
- Having threads switch before we sleep can cause applications
to misread the state of the thread. Now, we are consistent
with blocking_region_begin behavior and change th->status
AFTER checking interrupts.
Maybe this can fix [Bug #15002... -
05:59 PM Feature #14609: Let `Kernel#p` without an argument print the receiver
- I don't mind, personally. To me, the biggest improvement was
that we could omit doing:
require 'pp'
;)
Since I did that a lot in my code. (I love pp; I think I use it
more than just p)
I personally have not been using (... -
05:45 PM Feature #8661: Add option to print backtrace in reverse order (stack frames first and error last)
- I think I agree with mame - perhaps it should be reverted for now.
There was another ruby hacker from japan who wrote, some time ago
(a year or two?), that he was confused about it too; I don't remember
where it was but I think it w... -
04:17 PM Feature #2250: IO::for_fd() objects' finalization dangerously closes underlying fds
- Here is my opinion, from the experience of chasing many IO.for_fd bugs due to this behavior.
I agree with the reporter, it doesn't make sense to autoclose a fd which is not owned (for_fd didn't create it, something else did, and it's ex... -
01:52 PM Revision c742050e (git): Revert r64441
- * This reverts commit 647fc1227a4146ecbfeb0d59358abc8d99cd8ae6:
"thread_sync.c (rb_mutex_synchronize): only unlock if we own the mutex"
* Let's try to preserve the semantics of always being locked inside
Mutex#synchronize, even if an... -
12:35 PM Revision b5b5b28c (git): Temporary revert "process.c: dead code when no SIGCHLD"
- This reverts commit r64407.
Maybe it breaks http://mswinci.japaneast.cloudapp.azure.com/vc12-x64/ruby-trunk/log/20180817T095734Z.fail.html.gz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
09:56 AM Revision 3e1a6fee (git): NEWS: quote false [ci skip]
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
09:53 AM Revision b6eb3fcb (git): NEWS: converted to Markdown [ci skip]
- * NEWS: Converted to Markdown format, from (wrongly) Markdown-mixed
RDoc format.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
09:22 AM Feature #15002: [PATCH] thread.c (sleep_*): reduce the effect of spurious interrupts
- takashikkbn@gmail.com wrote:
> Thanks to deal with it. Actually test-all with --jit-wait is
> running successfully on my Wercker CI and ko1's
> trunk-mjit-wait for now
> http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker, but
... -
09:07 AM Feature #15002 (Closed): [PATCH] thread.c (sleep_*): reduce the effect of spurious interrupts
- Applied in changeset trunk|r64444.
----------
thread.c (sleep_*): reduce the effect of spurious interrupts
Spurious interrupts from SIGCHLD cause Mutex#sleep (via
ConditionVariable#wait) to return early and breaks some use
cases. Sinc... -
07:51 AM Feature #15002: [PATCH] thread.c (sleep_*): reduce the effect of spurious interrupts
- Thanks to deal with it. Actually test-all with --jit-wait is running successfully on my Wercker CI and ko1's trunk-mjit-wait for now http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker, but as long as it passes the tests on your envi...
- 09:07 AM Revision fe2f89af (git): thread.c (sleep_*): reduce the effect of spurious interrupts
- Spurious interrupts from SIGCHLD cause Mutex#sleep (via
ConditionVariable#wait) to return early and breaks some use
cases. Since these are outside the programs's control with
MJIT, we will only consider pending interrupts (e.g. those
fr... -
08:35 AM Bug #14416: Net::POPMail methods modify frozen literal when using default arg
- ruby_2_5 r64443 merged revision(s) 62099.
-
08:35 AM Revision 3993fbb5 (git): merge revision(s) 62099: [Backport #14416]
- net/pop: make modified strings mutable
Thanks to Michael Zimmerman for the bug report
* lib/net/pop.rb: make modified strings mutable
[ruby-core:85210] [Bug #14416]
* test/net/pop/test_pop.rb: new test... -
07:26 AM Revision 3bee3527 (git): [DOC] Fix indent [ci skip]
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
- 06:33 AM Revision 647fc122 (git): thread_sync.c (rb_mutex_synchronize): only unlock if we own the mutex
- If an exception is raised inside Mutex#sleep (via ConditionVariable#wait),
we cannot guarantee we can own the mutex in the ensure callback.
However, who owns the mutex at that point does not matter. What
matters is the Mutex is usable ... - 06:05 AM Revision 6e0d69e4 (git): Revert "thread_sync.c (do_sleep): avoid thread-switch/interrupt check"
- This reverts commit d7ddbff2954ba22b71bdfeba4b94e1c4fb91efb0 (r64436)
Seems worthless at preventing CI failures
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
05:20 AM Bug #14868: [PATCH] process.c (ruby_fork_ruby): fix race in signal handling
- ruby_2_5 r64439 merged revision(s) 63741.
-
05:20 AM Revision c66c5f3c (git): merge revision(s) 63741: [Backport #14868]
- process.c (ruby_fork_ruby): fix race in signal handling
We must block signals before stopping timer-thread, otherwise
signal handing may be delayed until (and if) another signal
is received after timer-thread is ... -
05:04 AM Bug #14865: Raising exception in c_return event hook causes infinite loop
- ruby_2_5 r64438 merged revision(s) 63727.
-
05:04 AM Revision cc371cc0 (git): merge revision(s) 63727: [Backport #14865]
- vm.c: fix infinite loop
* vm.c: use EXEC_EVENT_HOOK_AND_POP_FRAME. While exception handling, if an exception
is raised in hooks, need to pop current frame and raise this raised exception by hook.
[ruby-dev:505... -
04:40 AM Bug #14856: [PATCH] lib/drb/extservm.rb (service): do not return `false'
- ruby_2_5 r64437 merged revision(s) 63698.
-
04:40 AM Revision 05d74883 (git): merge revision(s) 63698: [Backport #14856]
- lib/drb/extservm.rb (service): do not return `false'
invoke_service_command may set entries in @servers to `false',
making it incompatible with the intended use of the
safe navigation operator.
This caus... -
04:30 AM Misc #14981: DevelopersMeeting20180913Japan
- * [Feature #14609] `Kernel#p` without args shows the receiver
- 04:24 AM Revision d7ddbff2 (git): thread_sync.c (do_sleep): avoid thread-switch/interrupt check
- Calling rb_mutex_sleep directly should avoid
thread-switching/interrupt checking which can lead to occasional
failures.
Unfortunately, this means overriding Mutex#sleep is no longer
supported. Will let this commit run for a bit see if ... -
04:19 AM Bug #14818: [Docs] Backport r63112 to ruby 2.5
- ruby_2_5 r64435 merged revision(s) 63112.
-
04:19 AM Revision a814ab9e (git): merge revision(s) 63112: [Backport #14818]
- Remove outdated example from Numeric documentation
Since 2.5, Numeric instances can be cloned and duplicated.
[Fix GH-1850]
From: Miguel Landaeta <miguel@miguel.cc>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/... -
04:18 AM Bug #14816: Extension build failure on a system with musl libc
- ruby_2_5 r64434 merged revision(s) 63571,63572.
-
04:18 AM Revision 99d1f2c5 (git): merge revision(s) 63571,63572: [Backport #14816]
- `int isnan(double)` is a POSIXism
- `isnan` is something relatively new. We need to provide one for
those systems without it. However:
- X/Open defines `int isnan(double)`. Note the `int`.
- C99 defin... -
04:09 AM Revision 38f13727 (git): Suppress read of ~/.irbrc
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
03:38 AM Bug #14805: Enumerator#count is silently limited to int32
- ruby_2_5 r64432 merged revision(s) 63549,63551,63554.
-
03:37 AM Revision f5a90a2d (git): merge revision(s) 63549,63551,63554: [Backport #14805]
- memo->u3.cnt is long not int [Bug #14805]
enum.c: mitigate overflows
* enum.c (enum_count): convert counters to Integer as unsigned
long, instead of long, to mitigate overflows.
[ruby-core:87348] [Bu... -
03:33 AM Feature #15006 (Open): [PATCH] io.c: use copy_file_range with every types of files
- Ref: https://bugs.ruby-lang.org/issues/13867
`IO.copy_stream` only attempt to use `copy_file_range` if the source is a regular file.
However from my understanding, contrary to `sendfile` and `splice`, `copy_file_range` has no file ... -
03:07 AM Bug #14790: DateTime.iso8601 parses incorrect ISO8601
- ruby_2_5 r64431 merged revision(s) 63512,63514.
-
03:07 AM Revision 36045438 (git): merge revision(s) 63512,63514: [Backport #14790]
- time.rb: fix parsing time zone in iso8601
* lib/time.rb (Time.xmlschema): a colon in time zone designator
can be omitted. [ruby-core:87277] [Bug #14790]
time.rb: fix parsing time zone in iso8601
* li... -
02:56 AM Bug #14756: `Exception` may cause SEGV when `#backtrace` returns a string
- ruby_2_5 r64430 merged revision(s) 63417.
-
02:56 AM Revision 6baeed5b (git): merge revision(s) 63417: [Backport #14756]
- error.c: check redefined backtrace result
* error.c (rb_get_backtrace): check the result of `backtrace` even
if the method is redefined. [ruby-core:87013] [Bug #14756]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/bran... -
02:44 AM Revision 26336dda (git): test/ruby/test_system.rb: suppress prompt and echo on Windows
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64429 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
02:39 AM Bug #14754: Backport openssl v2.1.1 / v2.0.8
- ruby_2_5 r64428 merged revision(s) 63406.
-
02:39 AM Revision 7e0cafcd (git): merge revision(s) 63406: [Backport #14754]
- openssl: merge changes in v2.1.1
Commits in upstream repository since v2.1.0 can be found at:
https://github.com/ruby/openssl/compare/v2.1.0...v2.1.1
----------------------------------------------------... -
02:20 AM Revision b2826ef7 (git): test/lib/zombie_hunter.rb: enable zombie hunter for MJIT
- I think this issue is solved by Eric Wong.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64427 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
02:15 AM Revision 29aa73fc (git): test_function.rb: try running test_nogvl_poll again
- According to some runs in mjit-test (make test-all RUN_OPTS="--jit-wait"),
this test might not be the cause of its failure.
So, let me try running this again.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64426 b2dd03c8-39d4-4d8f-9... -
02:04 AM Revision 288e2789 (git): tool/downloader.rb: retry 500 from GitHub
- Unfortunately, GitHub may return 500 for temporary failure:
https://travis-ci.org/ruby/ruby/builds/417246523
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
01:10 AM Revision b173fc92 (git): mjit_worker.c: revert r64322 and r64323
- I gave up to introduce the optimization that skips pc motion by checking
C code's line number. The same code can often be shared by multiple
program counters and it's so hard to achieve the optimization in MJIT's
architecture.
Reverting...
08/17/2018
-
11:54 PM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
- @normalperson I added the specs in r64409.
However I just saw that the spec failed once on Ubuntu:
https://rubyci.org/logs/rubyci.s3.amazonaws.com/ubuntu/ruby-trunk/log/20180817T213003Z.fail.html.gz
Any idea? - 11:51 PM Revision 91bea9db (git): * 2018-08-18
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64423 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
11:51 PM Revision a2d2a55d (git): Guard spec failing on Solaris
- * https://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable11x/ruby-trunk/log/20180817T182406Z.fail.html.gz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64422 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
04:27 PM Bug #14638: [win32] File.expand_path("~") treats a relative path with a drive letter as an absolute path
- ruby_2_5 r64421 merged revision(s) 62952.
-
04:27 PM Revision d60a7d2e (git): merge revision(s) 62952: [Backport #14638]
- win32/file.c: relative path with drive letter
* win32/file.c (IS_ABSOLUTE_PATH_P): home directory should not be
a relative path regardless a drive letter. PathIsRelativeW
returns FALSE on such path. [ruby-... -
04:20 PM Bug #14750: [IMAP] `send_string_data` uses `send_literal` method with incorrect number of arguments
- ruby_2_5 r64420 merged revision(s) 63396.
-
04:20 PM Revision 34783456 (git): merge revision(s) 63396: [Backport #14750]
- net/imap: Fix ArgumentError in send_string_data
Thanks to ShockwaveNN (Pavel Lobashov) for reporting the bug.
[ruby-core:86990] [Bug #14750]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64420 b2dd03c8-3... -
03:48 PM Bug #14708: argument stack underflow (-1) (SyntaxError)
- ruby_2_5 r64419 merged revision(s) 63255.
-
03:48 PM Revision 428db824 (git): merge revision(s) 63255: [Backport #14708]
- compile.c: fix unconditional branch optimization
* compile.c (iseq_peephole_optimize): add dummy `putnil` after a
`jump` replacing an unconditional branch, to adjust removed
`dup`. [ruby-core:86666] [Bug #14... -
03:34 PM Bug #14693: Segfault calling super+[] from redefined #backtrace
- ruby_2_5 r64418 merged revision(s) 61567.
-
03:33 PM Revision a42b5184 (git): merge revision(s) 61567: [Backport #14693]
- fix uninitialized variable
Likewise this can easily be noticed if you read the warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
03:20 PM Bug #14654: Resurvey performance of RDoc by frozen_string_literal: true
- Already backported at r63048.
-
02:52 PM Revision fb01ef38 (git): Add guard for Solaris in Socket#connect_nonblock spec
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64417 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
02:45 PM Misc #14981: DevelopersMeeting20180913Japan
- * [Feature #8661] Add option to print backstrace in reverse order(stack frames first & error last)
* The current backtrace order is really annoying, and I'm not still used; is there any chance to revert? -
02:41 PM Feature #8661: Add option to print backtrace in reverse order (stack frames first and error last)
- Over one year has passed since the backtrace order was reversed. But I'm not still used to the new order.
I agree with Samuel's points. In addition, the old order was more useful because it shows the last debug output and the except... -
01:07 PM Revision abd8880d (git): Guard connect_nonblock spec on FreeBSD
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
01:07 PM Revision 28ed3c0f (git): Guard with a :pktinfo feature specs relying on PKTINFO
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
01:07 PM Revision a48339c2 (git): Re-add specs
- * This reverts commit 325fd389018897bd156837639675517ef3b7dea5.
* Platform guards in the next commit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
11:22 AM Revision a88e5ccc (git): Add a note how to run specs under older Ruby versions
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
11:22 AM Revision 1630728e (git): Fix typo in version guard
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
11:22 AM Revision f3b347e1 (git): Add version guards for Enumerator::ArithmeticSequence
- * And keep specs for older versions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
10:16 AM Feature #15004 (Closed): Run ruby/spec in TravisCI on older versions of MRI to make sure the specs keep working with older supported versions
- ruby/spec is a single codebase supporting the latest minor versions of all supported MRI versions.
So currently, that's 2.3.7, 2.4.4, 2.5.1 and trunk.
I want to make MRI developers aware that ruby/spec must keep working with older (s... -
10:14 AM Revision 5032f637 (git): spec/README.md: add a note about version guards
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
09:51 AM Revision 3993cd80 (git): Integrate new specs for ConditionVariable#wait to prevent regressions
- * See [Bug #14999].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
09:00 AM Bug #14972: Net::HTTP inconsistently raises EOFError when peer closes the connection
- What is the ideal behavior you think? Just below?
```
diff --git a/lib/net/http/response.rb b/lib/net/http/response.rb
index 66132985d9..7c744d02f4 100644
--- a/lib/net/http/response.rb
+++ b/lib/net/http/response.rb
@@ -290,7 +2... -
08:07 AM Feature #15002 (Closed): [PATCH] thread.c (sleep_*): reduce the effect of spurious interrupts
- ```
Spurious interrupts from SIGCHLD cause Mutex#sleep (via
ConditionVariable#wait) to return early and breaks some use
cases. Since these are outside the programs's control with
MJIT, we will only consider pending interrupts (e.g. ... - 07:47 AM Revision 30ad3429 (git): NEWS: clarify that we still use FD_CLOEXEC [ci skip]
- [Misc #14907]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64408 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
05:59 AM Revision 3bd2d01f (git): process.c: dead code when no SIGCHLD
- * process.c (ruby_waitpid_all): nothing to do unless SIGCHLD is
available.
* signal.c (ruby_nocldwait): used only if SIGCHLD is available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
04:01 AM Revision 59bbe8a9 (git): [DOC] Add ticket number [ci skip]
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
04:00 AM Revision 6cd8896b (git): [DOC] Update NEWS about close_others [ci skip]
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
03:36 AM Revision 6f63671f (git): vm.c: add a simple rdoc for RubyVM
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64404 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
- 02:06 AM Revision 8b6297e5 (git): thread_pthread.c (rb_sigwait_fd_get): skip getpid check
- 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-823fe... -
01:39 AM Revision 028cda35 (git): signal.c: no SIGCHLD, no sigchld_hit
- * 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 -
01:37 AM Revision e01afc3c (git): ast.c (rb_ast_node_type): return frozen strings
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
01:14 AM Revision 05be3e89 (git): passing non-stdio fds is not supported on Windows
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
12:33 AM Feature #14844: Future of RubyVM::AST?
- bozhidar (Bozhidar Batsov) wrote:
> I'm really curious what's the purpose of this module and why wasn't in developed in collaboration with the maintainers of libraries like https://github.com/whitequark/parser and https://github.com/whi...
08/16/2018
-
11:57 PM Misc #14907 (Closed): [PATCH] io.c: do not close inherited FDs by default
- Applied in changeset trunk|r64399.
----------
process.c: defaults to close_others false
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,... -
11:32 PM Misc #14907: [PATCH] io.c: do not close inherited FDs by default
- eregontp@gmail.com wrote:
> @normalperson FWIW, I'm not fond of the jobserver-related logic in spec/ruby/optional/capi/spec_helper.rb, it's too complex and seems to gain nothing (but does prevent a make warning IIRC).
It's fine, I g... -
12:20 PM Misc #14907: [PATCH] io.c: do not close inherited FDs by default
- @normalperson FWIW, I'm not fond of the jobserver-related logic in spec/ruby/optional/capi/spec_helper.rb, it's too complex and seems to gain nothing (but does prevent a make warning IIRC).
If there is an easy way to ignore the warning ... -
11:57 PM Bug #14999 (Closed): ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed - Applied in changeset commit:ruby-git|2cf3bd5bb2a7c4724e528577d37a883fe80a1122.
----------
thread_sync.c (rb_mutex_lock): acquire lock before being killed
We (the thread acquiring the mutex) need to acquire the mutex
before being killed... -
08:12 PM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
- eregontp@gmail.com wrote:
> Bug #14999: ConditionVariable doesn't require the Mutex if Thread#kill-ed
> https://bugs.ruby-lang.org/issues/14999
r64398
Thank you; it was actually a regression introduced while fixing
[Bug #14841]... -
12:59 PM Bug #14999 (Closed): ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
- These specs reproduce the issue:
https://raw.githubusercontent.com/oracle/truffleruby/master/spec/ruby/library/conditionvariable/wait_spec.rb
I can commit them, but of course they will fail.
Feel free to just copy it to MRI's spec/r... - 11:56 PM Revision b53fadfd (git): process.c: defaults to close_others false
- 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... -
11:14 PM Bug #15001 (Closed): Peek causes cursor to advance when enumerating the lines of a file
- When a call to peek is made on the enumerator for the lines of a file the cursor advances.
File:
~~~ text
1
2
3
~~~
Sample script:
~~~ ruby
e = File.open("f").each_line
e.peek
p e.each.to_a
~~~
The output is => ["2... -
09:02 PM Feature #14982: Improve namespace system in ruby to avoiding top-level names chaos
- Propose new syntax for https://bugs.ruby-lang.org/issues/14982#note-5 (The core idea is not changing)
``` ruby
# add 'isolate' keyword to describe an isolated binding scope
isolate
# .....
# can't access unimported names from ... - 07:59 PM Revision 2cf3bd5b (git): thread_sync.c (rb_mutex_lock): acquire lock before being killed
- 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-afte... -
04:11 PM Revision 4bf11e21 (git): Makefile.sub: remove -DRUBY_EXPORT overridden by -U option
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
- 04:11 PM Revision 75321976 (git): * 2018-08-17
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
04:11 PM Revision 9c827bd0 (git): appveyor.yml: run on all branches
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64395 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
01:21 PM Feature #15000 (Closed): Prevent to initialize MonitorMixin twice
- Some libraries or tests unfortunately do something like:
~~~ ruby
require 'monitor'
class Foo
include MonitorMixin
def initialize(*args)
super()
mon_initialize
end
end
~~~
This unfortunately ends up initializ... -
12:51 PM Bug #14998 (Closed): Race conditions in MonitorMixin when interrupted
- From https://bugs.ruby-lang.org/issues/14859#note-9
The code of MonitorMixin#wait is:
~~~ ruby
def wait(timeout = nil)
@monitor.__send__(:mon_check_owner)
count = @monitor.__send__(:mon_exit_for_cond)
begi... -
12:14 PM Revision 1f0f2ae2 (git): Remove outdated comment [ci skip]
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64394 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
10:50 AM Revision 250bf32f (git): skip examples failing on solaris
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64393 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
09:46 AM Bug #14992 (Closed): mkmf sets DYLD_LIBRARY_PATH on macOS which breaks pkg-config
- Applied in changeset trunk|r64392.
----------
configure.ac: LIBPATHENV on macOS
* configure.ac (LIBPATHENV): use DYLD_FALLBACK_LIBRARY_PATH instead of
DYLD_LIBRARY_PATH on macOS, to honor runtime paths embedded in the
binaries. [r... -
09:46 AM Revision 1961c786 (git): configure.ac: LIBPATHENV on macOS
- * 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@64... -
09:27 AM Revision ae59620b (git): Makefile.in: dependencies to config.status
- * 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 - 09:16 AM Revision e3f6429e (git): thread.c (consume_communication_pipe): disarm UBF_TIMER before consume
- 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-... -
08:56 AM Bug #14997 (Closed): Socket connect timeout exceeds the timeout value for
- Given a case, where a domain is being resolved to multiple IPs (4 in the following example):
```
dig debug-xyz.elb.us-east-1.amazonaws.com a
; <<>> DiG 9.10.3-P4-Ubuntu <<>> debug-xyz.elb.us-east-1.amazonaws.com a
;; global optio... - 08:26 AM Revision 3872ea81 (git): thread_pthread.c: reduce ubf_timer arming for non-signal wakeups
- 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-823f... - 08:26 AM Revision 960ef493 (git): thread_pthread.c: check signals from gvl.timer
- 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... - 03:37 AM Revision 0783fd93 (git): test/net/imap/test_imap.rb (test_exception_during_idle): kill infinite looper
- 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
s... -
12:58 AM Feature #14994 (Closed): Enumerator::Lazy#uniq & Enumerator::Lazy#grep_v should use proc chaining
- Applied in changeset trunk|r64385.
----------
Adding Enumerator::Lazy#uniq and Enumerator::Lazy#grep_v to proc chaining
[Feature #14994]
[Fix GH-1930]
From: Anmol Chopra <chopraanmol1@gmail.com> - 12:58 AM Revision 6fc7f103 (git): * properties.
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
12:58 AM Revision 7d6a26f2 (git): Adding Enumerator::Lazy#uniq and Enumerator::Lazy#grep_v to proc chaining
- [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 -
12:13 AM Revision 2c195f64 (git): enumerator.c: id_lazy is no longer used since r38923
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
12:05 AM Revision bb8b44b0 (git): apply r64239 to macOS too
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
08/15/2018
-
07:03 PM Misc #14907: [PATCH] io.c: do not close inherited FDs by default
- I wrote:
> OK, I'll commit 0001-process.c-close_others-defaults-to-false.patch
Nevermind, the version I uploaded here also introduces
compatibility problems around make jobserver FD inheritance with
rubyspec. So setting FD_CLOEXE... - 06:56 PM Revision 490898a0 (git): * 2018-08-16
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
- 06:56 PM Revision 309042d8 (git): test/ripper/test_parser_events.rb (test_block_variables): bump RLIMIT_AS again
- 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 -
02:24 PM Revision 3d3ff9f3 (git): gmtimew_noleapsecond uses tables for mon and mday.
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
12:53 PM Revision 50ad0995 (git): spec/ruby/optional/capi/ext/io_spec.c: guard unreachable code
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
11:01 AM Revision 9071cd63 (git): spec/ruby/optional/capi/ext/io_spec.c: guard unreachable code
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64378 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
07:32 AM Misc #14937: [PATCH] thread_pthread: lazy-spawn timer-thread only on contention
- Eric Wong wrote:
> ko1@atdot.net wrote:
> > Let me clear your commits.
> > Maybe "Description" of this ticket is obsolete.
>
> I guess, I will add doc or comments to thread_pthread.c
I think I addressed this in r64377 and made ... -
12:22 AM Misc #14937: [PATCH] thread_pthread: lazy-spawn timer-thread only on contention
- ko1@atdot.net wrote:
> Let me clear your commits.
> Maybe "Description" of this ticket is obsolete.
I guess, I will add doc or comments to thread_pthread.c
> They are my understandings (fix me if they are wrong):
>
> * Your i... - 07:16 AM Revision 4610d36c (git): thread_pthread.c: hoist out do_gvl_timer and improve documentation
- 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 -
06:38 AM Feature #14994 (Closed): Enumerator::Lazy#uniq & Enumerator::Lazy#grep_v should use proc chaining
- Proc chaining for Enumerator::Lazy was introduced in https://bugs.ruby-lang.org/issues/6183
Proc chaining improved the performance on chained lazy enum for adapted method.
Current implementation of proc chaining can be easily used... - 05:54 AM Revision 727a2d55 (git): vm_core.h (rb_thread_t): pack small fields together
- 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-sv... - 05:31 AM Revision 906ad167 (git): thread_pthread.h (native_thread_data): split list_node between ubf and gvl
- 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 -
04:51 AM Revision 7815d7d7 (git): test_function.rb: skip running test
- 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=... - 04:32 AM Revision 3dcf85e0 (git): thread_pthread.c: rename rb_timer_* to ubf_timer_*
- 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-... - 04:32 AM Revision e4fd71d6 (git): thread_pthread.c: rename timer_thread_pipe to signal_self_pipe
- 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 - 04:32 AM Revision 5dca7d86 (git): thread_pthread.c: additional UBF_TIMER == UBF_TIMER_PTHREAD guards
- 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 -
04:10 AM Revision 425a820d (git): appveyor.yml: no MSYS path conversion
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64370 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
03:03 AM Revision 4940bbc7 (git): test_readline.rb: skip teardown failure
- 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 -
02:15 AM Revision 5a149052 (git): appveyor.yml: get rid of msys sh as possible
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
02:05 AM Revision 438955ef (git): -Wsuggest-attribute=noreturn on io_spec_rb_io_wait_readable
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64367 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
01:55 AM Revision 36e41fd9 (git): test_env.rb: change mingw branch
- 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/... -
01:40 AM Revision 0c95c744 (git): skip tests failing on AppVeyor MinGW
- 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 -
01:36 AM Feature #14989: Add Hash support for transient heap
- Hello, thank you again for a response.
tacinight (Yimin Zhao) wrote:
> > Why you can say that a hash's size has something to do with its age?
> ...
OK. Looking forward to the measurement result. Even if this was a false assert, m...
08/14/2018
-
11:23 PM Revision 1684a1bd (git): appveyor.yml: remove broken --name option
- 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 - 11:00 PM Revision ab7e34e4 (git): webrick/httpauth/htgroup.rb (flush): avoid unnecessary unlink
- 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://c... - 10:59 PM Revision 7d664ecc (git): Revert "test/lib/leakchecker.rb (find_tempfiles): don't warn for missing files"
- 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 b2... - 10:06 PM Revision 63529403 (git): Revert "thread_pthread.c: use UBF_TIMER_PTHREAD on Solaris"
- 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/... -
08:00 PM Bug #14992 (Closed): mkmf sets DYLD_LIBRARY_PATH on macOS which breaks pkg-config
- When `mkmf` runs `pkg-config`, it sets `DYLD_LIBRARY_PATH` on macOS which causes `pkg-config` to not work. As an example, running
~~~
$ ruby2.5 -r mkmf -e 'pkg_config("libxml-2.0")'
~~~
writes the following to `mkmf.log`.
~~~
... -
06:32 PM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
- danieldasilvaferreira@gmail.com wrote:
> normalperson@yhbt.net wrote:
>
> > I am thinking of adding preemption support to this feature for
> compatibility with 1.8
>
> non-preemptive vs preemptive.
> coroutines are non-preempti... -
05:52 PM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
- Koichi Sasada <ko1@atdot.net> wrote:
> On 2018/08/14 9:42, Eric Wong wrote:
> > I am thinking of adding preemption support to this feature for
> > compatibility with 1.8
>
> So that "auto-fiber" proposal is to provide green thread... -
09:00 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
- normalperson@yhbt.net wrote:
> I am thinking of adding preemption support to this feature for
compatibility with 1.8
non-preemptive vs preemptive.
coroutines are non-preemptive.
threads are preemptive.
Are we talking about havi... -
08:32 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
- On 2018/08/14 9:42, Eric Wong wrote:
> I am thinking of adding preemption support to this feature for
> compatibility with 1.8
So that "auto-fiber" proposal is to provide green threads like Ruby 1.8?
Like:
```
model 1: Userlev... -
12:52 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
- ko1@atdot.net wrote:
> Issue #13618 has been updated by ko1 (Koichi Sasada).
>
>
> We discussed about naming.
>
> ```
> X IoThread.new{}
> X GreenThread.new{}
> X Thread::Green.new{} #124 “most likely candidates”(vote: hsbt... -
05:48 PM Bug #14678: Segmentation fault in pg
- I wanted to use ruby v2.5.1 instead v2.5.0
But I got this error.
With ruby v2.5.0, my rails project works great without any error.
I was using Rails v5.2.1 on macbook pro macos High Sierra 10.13.6 with Postgres.app v2.1.4
- 05:07 PM Revision 81562d89 (git): * 2018-08-15
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64360 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
- 05:07 PM Revision 17ed23bb (git): spec/ruby/optional/capi/io_spec.rb: fix fragile spec from unpredictable errno
- 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 b... -
11:58 AM Revision 37279d15 (git): non-symbol keys in kwargs
- * 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 ... -
11:23 AM Bug #14976 (Feedback): /usr/local/lib/ruby/gems/2.6.0/gems/fluentd-1.2.4/lib/fluent/event.rb:193: [BUG] Segmentation fault at 0x0000000000000000 ruby 2.6.0preview1 (2018-02-24 trunk 62554) [x86_64-linux]
- Preview version of Ruby is provided for testing purpose.
If you want to use fluentd for production, please use Ruby 2.5 at this time. -
10:44 AM Feature #14989: Add Hash support for transient heap
- Nice introduction and explanation!
-
07:32 AM Feature #14989: Add Hash support for transient heap
- Thanks for the quick response.
> Why you can say that a hash's size has something to do with its age?
Thanks for pointing it out, I admit that there are some problems with
this statement. I will go to measure it.
> > 1. We don... -
04:33 AM Feature #14989: Add Hash support for transient heap
- Thank you for a great work.
tacinight (Yimin Zhao) wrote:
> 2. Transient heap is based on the hypothesis that most of objects die at a young age. To understand the issue with first need to survey the distribution of hash size.
W... -
03:38 AM Feature #14989 (Closed): Add Hash support for transient heap
- Hi, there
I am a GSoC student following @ko1 to do some work for Ruby, here I want to make a brief introduction for one of my work in this period.
## Transient Heap
The first discussion of transient heap was opened by @ko1 at [Intro... -
08:09 AM Misc #14937: [PATCH] thread_pthread: lazy-spawn timer-thread only on contention
- Let me clear your commits.
Maybe "Description" of this ticket is obsolete.
They are my understandings (fix me if they are wrong):
* Your idea is using POSIX timer if possible.
```
#define UBF_TIMER_NONE 0
#define UBF_TIMER_PO... - 06:49 AM Revision 31bfe0fe (git): thread_pthread.c: use UBF_TIMER_PTHREAD on Solaris
- 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.
... -
05:43 AM Feature #14984: case when with splat operator performance
- ko1 (Koichi Sasada) wrote:
> Could you give us your idea with examples in pseudo-code?
I'm not sure if I understand your question. In case if you are asking about implementation for this issue, then I created a pull request for that:... -
03:05 AM Feature #14984: case when with splat operator performance
- Could you give us your idea with examples in pseudo-code?
-
03:04 AM Feature #14955: [PATCH] gc.c: use MADV_FREE to release most of the heap page body
- On 2018/08/11 13:48, Eric Wong wrote:
>> https://bugs.ruby-lang.org/issues/14955
>
> One major question to ask is: does object count during
> application lifetime vary enough to justify freeing
> "struct heap_page_body"?
>
> In... - 02:24 AM Revision 291afc96 (git): thread_pthread.c: use CLOCK_REALTIME on SunOS (Solaris)
- 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 F... - 12:31 AM Revision 1e769ce6 (git): test/fiddle/test_function.rb (test_nogvl_poll): stop timer hack
- 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 pthre...
08/13/2018
- 10:19 PM Revision 8da12db1 (git): thread_pthread (rb_timer_arm): ignore UBF_TIMER_POSIX state 2
- It looks like I forgot to account for a situation involving 3
threads.
[ruby-core:88360] [Misc #14937]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64354 b2dd03c8-39d4-4d8f-98ff-823fe69b080e - 09:34 PM Revision 3dd6288d (git): thread_pthread: use POSIX timer or thread to get rid of races
- This closes race condition where GVL is uncontended and a thread
receives a signal immediately before calling the blocking
function when releasing GVL:
1) check interrupts
2) release GVL
3) blocking function
If ... - 09:34 PM Revision 48b6bd74 (git): thread_pthread.c: eliminate timer thread by restructuring GVL
- This reverts commit 194a6a2c68e9c8a3536b24db18ceac87535a6051 (r64203).
Race conditions which caused the original reversion will be fixed
in the subsequent commit.
[ruby-core:88360] [Misc #14937]
git-svn-id: svn+ssh://ci.ruby-lang.org/... -
07:12 PM Revision 4d2e0fff (git): FreeBSD 11.0 lacks ELFCOMPRESS_ZLIB
- FreeBSD 11.0 unfortunately lacks ELF compression definitions in their
elf.h (sys/elf_common.h), and 11.1 introduced them.
https://github.com/freebsd/freebsd/commit/b9167d33a12b8a6c279be9cd1005874728e808c9
Though we can add workaround, w... -
04:03 PM Revision 49083895 (git): appveyor.yml: install gdbm
- which is missing on AppVeyor environment
https://github.com/ruby/ruby/commit/6a1e323ae88101cfed3fc4591d6e6a3bd8c05f02#commitcomment-30056791
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e - 03:29 PM Revision 2d313a29 (git): * 2018-08-14
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64349 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
03:29 PM Revision 6a1e323a (git): appveyor.yml: add MinGW build
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
03:10 PM Bug #14979: Invalid argument - ruby_setenv(SURVEY) (Errno::EINVAL)
- shevegen (Robert A. Heiler) wrote:
> Interesting. My Linux-environment, in ruby via ENV, has 810 entries and
> ...
When you read my report carefully: the problem only occurs on windows. I was trying to recreate it on linux but without ... -
02:54 PM Revision 7d2b70a9 (git): fix typos [ci skip]
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64347 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
- 02:33 PM Revision 4e87ee8d (git): mention about r64337
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64346 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
- 02:29 PM Revision f0d20684 (git): Add some tests for *method_defined?
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
01:50 PM Revision 0381ec51 (git): Fix test bug
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64344 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
- 01:48 PM Revision 67d87b19 (git): Fix problem about notimplemented case
- Re-revert r64340, and take care about notimplemented case.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
01:46 PM Revision 74966729 (git): appveyor.yml: drop unnecessary 1.0. prefix
- from version.
Also I fixed the wrong way of using `for:`.
Specifying `for` without `matrix.only` was just useless.
This fix is for adding MinGW matrix in the future.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64342 b2dd03c8-39d4... -
01:27 PM Revision 984ba3da (git): Add test for method_defined?(notimplement)
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64341 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
01:27 PM Revision ee05c567 (git): Revert "Support optional inherit argument for Module#method_defined?"
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64340 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
- 12:42 PM Revision 5bf3db3e (git): get rid of an encode noncompatible error
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64339 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
12:42 PM Feature #14944 (Closed): Support optional inherit argument for Module#method_defined?
- Applied in changeset trunk|r64337.
----------
Support optional inherit argument for Module#method_defined?
Module has many introspection methods for methods and constants that
either return an array or return true or false for whether ... - 12:42 PM Revision efd5a574 (git): * remove trailing spaces.
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64338 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
- 12:42 PM Revision bccb24a8 (git): Support optional inherit argument for Module#method_defined?
- Module has many introspection methods for methods and constants that
either return an array or return true or false for whether the method
or constant is defined. Most of these methods support an optional
argument that controls whether t... -
12:22 PM Revision 50e41f4a (git): test/rinda/test_rinda.rb: Start keeper only on used tests
- to reduce sleeping threads on unrelated tests
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
12:07 PM Feature #14912: Introduce pattern matching syntax
- > Btw, won't it better to introduce a new expression named `match` than to extend `case`?
I have exactly the opposite question: do we really need `in`, why not reuse `when`?.. For all reasonable explanations, case+when IS Ruby's "patt... -
11:02 AM Revision 0ab6266c (git): Makefile.in: drop MJIT_DLDFLAGS_NOCOMPRESS
- which is obsoleted by r64331
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64335 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
08:48 AM Revision 0ca50534 (git): Don't free allocated uncompressed_debug_line until backtrace is printed
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64334 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
07:55 AM Revision 0efd00bf (git): Re-apply wrongly reverted r64330
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64333 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
07:05 AM Feature #14982: Improve namespace system in ruby to avoiding top-level names chaos
- I can imagine how hard to implement the "requiring into isolated binding" correct in VM.
If we want to maintain the compatible we need to maintain the reference of the name cross different require/import.
Think of a situation:
`... -
06:40 AM Feature #14982: Improve namespace system in ruby to avoiding top-level names chaos
- shyouhei (Shyouhei Urabe) wrote:
> I like this idea in general. I too want to have "requiring into isolated Binding".
> ...
Totally agreed! -
03:34 AM Feature #14982: Improve namespace system in ruby to avoiding top-level names chaos
- In the Why? section, case 1 is just a programming error on the library developer's or library user's part, depending on how the library is documented.
In terms of case 2 (multiple gems define overlapping constants in the top level n... -
01:12 AM Feature #14982: Improve namespace system in ruby to avoiding top-level names chaos
- I like this idea in general. I too want to have "requiring into isolated Binding".
One thing I would like to add, "namespace" shall be a keyword rather than a normal method taking a block. Blocks can be passed around:
```ruby
nam... -
06:31 AM Revision cc1c6059 (git): Define parse_compressed_debug_line() only ifdef SUPPORT_COMPRESSED_DEBUG_LINE
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
06:20 AM Revision bcf8f79d (git): support compressed debug_line
- re-commit r64328
https://blogs.oracle.com/solaris/elf_section_compression-v2
https://gnu.wildebeest.org/blog/mjw/2016/01/13/elf-libelf-compressed-sections-and-elfutils/
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64331 b2dd03c8-39... -
06:09 AM Revision 2132fb33 (git): configure.ac: use linker_flag to LIBRUBY_DLDFLAGS
- * configure.ac: use a feature flag `linker_flag`, than checking if the
compiler is `GCC`.
* configure.ac: append to LIBRUBY_DLDFLAGS once after initialized with
DLDFLAGS.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64330 b2dd... -
06:05 AM Revision 843589a7 (git): Revert "support compressed debug_line"
- This reverts commit r64328
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64329 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
02:56 AM Revision a20a2b00 (git): support compressed debug_line
- https://blogs.oracle.com/solaris/elf_section_compression-v2
https://gnu.wildebeest.org/blog/mjw/2016/01/13/elf-libelf-compressed-sections-and-elfutils/
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64328 b2dd03c8-39d4-4d8f-98ff-823f...
08/12/2018
-
04:45 PM Revision 85079043 (git): timegm_noleapsecond uses calc_tm_yday.
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64327 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
03:16 PM Revision 25c79f44 (git): configure.ac: use the correct argument
- for --compress-debug-sections. I thought "no" is the correct one because
configure.ac has `AS_IF([test "x$compress_debug_sections" != xno]`, but
it wasn't the case.
This commit is needed to resolve errors like:
/usr/bin/x86_64-linux-gnu... -
03:13 PM Revision 422f4e3e (git): configure.ac: MJIT_DLDFLAGS_NOCOMPRESS
- is configured now, to force -Wl,--compress-debug-sections=no
for MJIT only when the option is used in MJIT_DLDFLAGS.
This needs to be done in configure.ac to resolve build failure like
https://travis-ci.org/ruby/ruby/builds/415120662.
... - 03:00 PM Revision a7775c4e (git): * 2018-08-13
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
03:00 PM Revision 7e478ba3 (git): mjit_worker.c: lazily delete so file
- on ELF.
I need symbol name and line number to lazily create program counter for
optimization on ELF binary.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
02:42 PM Revision bd789fa5 (git): mjit_worker.c: allow showing line number
- on addr2line.c, if --jit-save-temps is specified.
I'm going to use the line number to lazily create program counter to
improve the performance degraded in r64283.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64322 b2dd03c8-39d4-4d... -
12:59 PM Revision c55e10a9 (git): mjit.c: reduce the number of variables
- in mark_ec_units() to simplify code.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64321 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
11:51 AM Bug #14707: String#scan(/\K/) has changed its behavior in ruby 2.5
- ruby_2_5 r64320 merged revision(s) 63252.
-
11:51 AM Revision fa07823a (git): merge revision(s) 63252: [Backport #14707]
- string.c: fix scanned substring with `\K`
* string.c (scan_once): fix the matched substring with `\K`, the
beginning of that string may differ from the matched position.
[ruby-core:86663] [Bug #14707]
git-sv... -
10:37 AM Bug #14566: `raise` in `Exception#message` causes infinite loop
- ruby_2_5 r64319 merged revision(s) 63133.
-
10:37 AM Revision 78e4b57c (git): merge revision(s) 63133: [Backport #14566]
- eval_error.c: fix loop on exception in message
* error.c (rb_get_message): accessor to the message.
* eval_error.c (rb_ec_error_print): handle exceptions on fetching
the message. [Bug #14566]
git-svn-id: svn... -
09:12 AM Feature #14982: Improve namespace system in ruby to avoiding top-level names chaos
- I believe namespace can reduce the complexity of organizing codes in large projects.
Recently I write rust code in a large project. Our code base is dependent on other several complex projects. With rust `use` syntax(https://doc.rust... -
08:10 AM Feature #14984 (Closed): case when with splat operator performance
- Applied in changeset trunk|r64318.
----------
Optimization for case when with splat operator
[Fix GH-1928] [Feature #14984]
From: chopraanmol1 <chopraanmol1@gmail.com> -
08:10 AM Revision af2e98ae (git): Optimization for case when with splat operator
- [Fix GH-1928] [Feature #14984]
From: chopraanmol1 <chopraanmol1@gmail.com>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
06:00 AM Revision 4fe8308e (git): tool/downloader.rb: increase retries
- GitHub download failed on 13:50:36
https://ci.appveyor.com/project/ruby/ruby/build/1.0.9221 and it also
failed on 13:51:35 (all builds between them failed too).
It means that we need to expect GitHub 502 that continues 1 minute.
So I co... -
05:14 AM Feature #14912: Introduce pattern matching syntax
- Btw, won't it better to introduce a new expression named `match` than to extend `case`? Seems to me this will make the use of patter matching clearer, and I assume it's also going to simplify the implementation.
-
04:50 AM Revision fe781af3 (git): compile.c: use EXPECT_NODE macro
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64316 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
04:50 AM Revision e7f88ff6 (git): compile.c: check error in when_vals
- * compile.c (when_vals): return a negative value on error.
* compile.c (compile_case): check error in when_vals().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64315 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
12:30 AM Revision 80769280 (git): vm_insnhelper.c: revert r64280
- This commit caused test-all failure with --jit-wait.
I don't know the reason yet, but let me revert it to normalize CI.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64314 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -
12:28 AM Revision aa6c02a5 (git): skip non-IP interfaces
- * spec/ruby/library/socket/socket/getifaddrs_spec.rb: VirtualBox host
only adapter seems something different than ordinary interfaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e