Project

General

Profile

Activity

From 08/14/2018 to 08/20/2018

08/20/2018

11:48 PM Revision aba0929a (git): cont.c (struct rb_fiber_struct): bitfields for trasnferred and status
On 32-bit x86, this reduces the struct from 836 to 832 bytes and
brings us down to 13 (64-byte) cachelines (from 14).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64487 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
11:29 PM Misc #15014 (Closed): thread.c: use rb_hrtime_scalar for high-resolution time operations
thread.c: use rb_hrtime_t scalar for high-resolution time operations
Relying on "struct timespec" was too annoying API-wise and
used more stack space. "double" was a bit wacky w.r.t rounding
in the past, so now we'll switch to usin...
normalperson (Eric Wong)
11:14 PM Feature #15010: Reduce allocation for rest parameters
normalperson (Eric Wong) wrote:
> > Added rb_ary_clear_m (suggestion for a better name will be
> ...
What about rb_ary_clear_head? (or rb_ary_behead :)
nobu (Nobuyoshi Nakada)
10:15 PM Feature #15010: Reduce allocation for rest parameters
Thank you, too. Two points:
First, the prefix `_m` is often used for an entry function of Ruby-level method that is passed to `rb_define_method`. Though it is just an internal function, it would be better to avoid the prefix. How a...
mame (Yusuke Endoh)
07:04 PM Feature #15010: Reduce allocation for rest parameters
chopraanmol1@gmail.com wrote:
> normalperson (Eric Wong) wrote:
> > Cool! It's probably worth implementing something like
> > rb_ary_shift_m (but without the return value) to avoid looping
> > on rb_ary_shift.

> Added rb_ary_...
normalperson (Eric Wong)
10:27 AM Feature #15010: Reduce allocation for rest parameters
normalperson (Eric Wong) wrote:
> Cool! It's probably worth implementing something like
> ...
Added rb_ary_clear_m (suggestion for a better name will be appreciated) with suggested changes.
mame (Yusuke Endoh) wrote:
> Some oth...
chopraanmol1 (Anmol Chopra)
06:42 AM Feature #15010: Reduce allocation for rest parameters
chopraanmol1@gmail.com wrote:
> Yes, it can be further optimized for keyword argument and argument setup for the block. I'll modify the patch in a day or two.

Cool! It's probably worth implementing something like
rb_ary_shift_m (...
normalperson (Eric Wong)
06:29 AM Feature #15010: Reduce allocation for rest parameters
mame (Yusuke Endoh) wrote:
> Some other functions in vm_args.c also use rb_ary_dup. There may be more room to optimize.
Yes, it can be further optimized for keyword argument and argument setup for the block. I'll modify the patch in...
chopraanmol1 (Anmol Chopra)
05:13 AM Feature #15010: Reduce allocation for rest parameters
Looks good to me. Though destructive operation to the rest array may make the source code unclear, performance is more important in this case, I think.
Some other functions in vm_args.c also use rb_ary_dup. There may be more room to...
mame (Yusuke Endoh)
10:23 PM Bug #14966 (Closed): 2.5 branch - Appveyor failures - backport missed line
hsbt (Hiroshi SHIBATA)
10:17 PM Bug #14966: 2.5 branch - Appveyor failures - backport missed line
Please see [GitHub PR 1939](https://github.com/ruby/ruby/pull/1939), which passed.
I guess a look at ruby_2_4 is next, as it's also failing...
MSP-Greg (Greg L)
09:34 PM Bug #15013 (Closed): thread_pthread.c: reinitialize ubf_list at fork
Applied in changeset trunk|r64485.
----------
thread_pthread.c: reinitialize ubf_list at fork
It's possible for the ubf_list_head to be populated with dead
threads at fork or the ubf_list_lock to be held, so reinitialize
both at startu...
normalperson (Eric Wong)
09:01 PM Bug #15013 (Closed): thread_pthread.c: reinitialize ubf_list at fork
thread_pthread.c: reinitialize ubf_list at fork
It's possible for the ubf_list_head to be populated with dead
threads at fork or the ubf_list_lock to be held, so reinitialize
both at startup.
And while we're at it, use a static i...
normalperson (Eric Wong)
09:34 PM Revision 39c64117 (git): thread*.c: avoid unnecessary initialization for list_for_each_safe
According to r52446, it is only necessary for the current item (@i),
not the `@nxt` parameter for list_for_each_safe.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64486 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
09:34 PM Revision 17e4aff2 (git): thread_pthread.c: reinitialize ubf_list at fork
It's possible for the ubf_list_head to be populated with dead
threads at fork or the ubf_list_lock to be held, so reinitialize
both at startup.
And while we're at it, use a static initializer at startup
to save a library call and kill s...
Eric Wong
08:45 PM Revision ce48b558 (git): test/socket/test_socket.rb (timestamp_retry_rw): IO.select before recvmsg
CI failures are still happening from these tests, but try
to break out of it earlier instead of holding up the job.
[Bug #14898]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64484 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
08:12 PM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
eregontp@gmail.com wrote:
> normalperson (Eric Wong) wrote:
> > (*) Along those lines, I think the "lock" idiom for GVL is not
> > ideal for performance (kosaki rewrote the GVL for 1.9.3 to
> > optimize for contention as a result...
normalperson (Eric Wong)
01:30 PM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
normalperson (Eric Wong) wrote:
> (*) Along those lines, I think the "lock" idiom for GVL is not
> ...
I don't follow, which data structures would the scheduler protect?
Internal VM data structures but not e.g. Ruby Hash?
> Note:...
Eregon (Benoit Daloze)
07:52 PM Feature #15006: [PATCH] io.c: use copy_file_range with every types of files
jean.boussier@gmail.com wrote:
> However from my understanding, contrary to `sendfile` and
> `splice`, `copy_file_range` has no file type restriction, it
> should be able to copy from and to sockets and pipes just
> fine.

That is...
normalperson (Eric Wong)
04:45 PM Misc #15007: Let all Init_xxx and extension APIs frequently called from init code paths be considered cold
normalperson (Eric Wong) wrote:
> Thank you for taking the time to do this!
> ...
Initial pass had that, but I decided to line up with recommendations from the guidelines. Not great for human parsing, especially when nested with `NORET...
methodmissing (Lourens Naudé)
07:32 AM Misc #15007: Let all Init_xxx and extension APIs frequently called from init code paths be considered cold
Thank you for taking the time to do this!

> The GCC specific [cold](https://gcc.gnu.org/onlinedocs/gcc-4.6.4/gcc/Function-Attributes.html) function attribute works in the following way (from GCC docs):

Since it's gcc (and clang); ...
normalperson (Eric Wong)
01:19 AM Misc #15007: Let all Init_xxx and extension APIs frequently called from init code paths be considered cold
Interesting.
Re: label attributes. JFYI I once tried them https://github.com/ruby/ruby/pull/1805/files
(answer, bitblt, and all the trace_* instructions are marked cold.)
It did change generated binary to arrange branches, but I saw...
shyouhei (Shyouhei Urabe)
03:48 PM Revision 12f624b6 (git): Try 4 times for WIN32OLE specs
* They seem to fail a lot on:
http://mswinci.japaneast.cloudapp.azure.com/vc12-x64/ruby-trunk/recent.html
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64483 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eregon (Benoit Daloze)
03:41 PM Revision a8d6ba1f (git): Revert r64471
* This reverts commit 9ab04897bd06767f773b35c6958a0551981093aa:
"don't run specs add at r64409 on Windows"
* It doesn't seem to help:
http://mswinci.japaneast.cloudapp.azure.com/vc12-x64/ruby-trunk/recent.html
git-svn-id: svn+ssh://...
Eregon (Benoit Daloze)
03:34 PM Revision e8222695 (git): * 2018-08-21
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64481 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
03:33 PM Revision 023537f8 (git): Remove extra semicolon
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64480 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
03:21 PM Misc #15012: Testing on latest version gcc on Travis CI
If you want to imagine how gcc-N and clang test cases work on both linux and osx of Travis CI, I can share this project's case.
https://travis-ci.org/trinityrnaseq/trinityrnaseq
https://github.com/trinityrnaseq/trinityrnaseq/blob/mas...
jaruga (Jun Aruga)
02:30 PM Misc #15012: Testing on latest version gcc on Travis CI
The demerit is
* The Travis test running time could be longer than current one. But maybe not so long time because those test cases are run in parallel.
* I am not sure whether the "ppa:ubuntu-toolchain-r/test" repository [1] shown ...
jaruga (Jun Aruga)
02:23 PM Misc #15012 (Closed): Testing on latest version gcc on Travis CI
Ruby's Travis CI [1] is running on gcc 4.8.4 as the default behavior of Travis gcc setting.
Right now gcc's latest version is 8.
Though it is important to test on the old version gcc-4.8, also it is meaningful to test on the latest ver...
jaruga (Jun Aruga)
08:24 AM Revision d6bfef79 (git): Update link to Email address specification
The current link leads to 404, I updated to the actual one.
[Fix GH-1929] [ci skip]
Author: Nikolay Belov <travelerspb@gmail.com>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64479 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
znz (Kazuhiro NISHIYAMA)
06:17 AM Misc #15011 (Closed): [PATCH] thread_pthread.c: use eventfd instead of pipe on Linux
thread_pthread.c: use eventfd instead of pipe on Linux
Based on r64478, any regular user creating more than 1024 pipes
on Linux will end up with tiny pipes with only a single page
capacity. So avoid wasting user resources and use l...
normalperson (Eric Wong)
06:12 AM Bug #14898: test/lib/test/unit/parallel.rb: TestSocket#test_timestamp stuck sometimes
ko1@atdot.net wrote:
> Bug #14898: test/lib/test/unit/parallel.rb: TestSocket#test_timestamp stuck sometimes
> https://bugs.ruby-lang.org/issues/14898#change-73373

Still not solved. This might be a similar issue to r64478 with
to...
normalperson (Eric Wong)
01:43 AM Revision 332b302f (git): spec/ruby/core/io/select_spec.rb: workaround stuck IO.select
Under pipe page memory pressure on Linux, a pipe may only be
created with a single buffer[1]. And as of Linux v4.18, the
fs/pipe.c::pipe_poll callback does not account for merging
done in fs/pipe::pipe_write; only the number of usable b...
Eric Wong

08/19/2018

11:36 PM Revision 25d274b3 (git): thread_sync.c (rb_condvar_initialize): remove extra semicolon
Oops :x
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
11:12 PM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
eregontp@gmail.com wrote:
> normalperson (Eric Wong) wrote:
> > "git bisect" points to r63498 ("thread_pthread.c: enable
> > thread cache by default"), which is HIGHLY unexpected.
>
> So it seems it doesn't happen in Ruby <= 2.5...
normalperson (Eric Wong)
09:42 PM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
normalperson (Eric Wong) wrote:
> r64467 seems to make CI happy, at least
Great!
> ...
I could also verify it fails before your commit, and passes after with:
taskset -c 1 mspec-run -R1000 library/conditionvariable/wait_spe...
Eregon (Benoit Daloze)
07:52 PM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
Eric Wong wrote:
> Fwiw, I can still reproduce the failures with low timeouts:
>
> ```
> diff --git a/thread_pthread.c b/thread_pthread.c
> index 2fd60ddd4a..e8da3ee9c2 100644
> --- a/thread_pthread.c
> +++ b/thread_pthread.c
>...
normalperson (Eric Wong)
10:04 AM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
eregontp@gmail.com wrote:
> I think we need to give some thinking on this,
> and I don't want to stress you to fix it to fix the build.
> (although this should be solved soon IMHO, latest before the next preview/RC)

It needs to be...
normalperson (Eric Wong)
12:13 AM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
normalperson (Eric Wong) wrote:
> Maybe wishful thinking, but r64464 might be the right fix.
Seems it's not yet fully fixed unfortunately:
http://ci.rvm.jp/results/trunk_clang_39@silicon-docker/1236189
http://ci.rvm.jp/results/tru...
Eregon (Benoit Daloze)
10:20 PM Revision d9cb9017 (git): thread_sync.c (rb_mutex_sleep): disable interrupt checking in ensure
This is needed to reliably fix ConditionVariable#wait on Thread#kill
[Bug #14999] because there is still a chance an interrupt could fire
and prevent lock acquisition after an ensure statement.
Arguably, rb_mutex_lock itself should be u...
Eric Wong
08:40 PM Revision 6056dae7 (git): thread.c (rb_thread_fd_select): fix off-by-one with sigwait_fd
select(2) needs the nfds argument to be one higher than the
largest FD in the sets :x
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64475 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
08:16 PM Revision 883422b1 (git): thread_sync.rb (rb_condvar_wait): golf out unnecessary variables
GCC is smart enough to optimize these away, but my attention
span is too short :{
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64474 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
08:16 PM Revision 6343dd4a (git): * 2018-08-20
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
08:16 PM Revision d167aae2 (git): test/ruby/test_io.rb (test_select_leak): quiet unused variable warning
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eric Wong
04:25 PM Feature #15010 (Closed): Reduce allocation for rest parameters
Currently multiple arrays are allocated while making a call to method with rest parameter.
E.g.
~~~
def rest_method(*args) #-> This will create 2 arrays
end
def post_method(*args,last) #-> This will create 3 arrays
end
~~~
...
chopraanmol1 (Anmol Chopra)
01:59 PM Feature #15009 (Closed): Add negotiated SSL protocol and cipher to Net::HTTP debug output
This makes is easier to verify what Ruby has negotiated with the server. An example of why you'd want to double check; for credit card payment data the PCI DSS [mandates](https://blog.pcisecuritystandards.org/are-you-ready-for-30-june-20... bdewater (Bart de Water)
01:25 PM Revision 9ab04897 (git): don't run specs add at r64409 on Windows
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@64471 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
naruse (Yui NARUSE)
01:23 PM Revision d5c112ff (git): select() on all platforms for Socket#recvmsg_nonblock spec
* The specs above already do that, and Solaris needs it too:
https://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable10x/ruby-trunk/log/20180819T111806Z.fail.html.gz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64470 b2dd03c8-39d...
Eregon (Benoit Daloze)
01:55 AM Revision ed32e526 (git): NEWS: categorized new entries all
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64469 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
01:33 AM Revision b97e215b (git): Fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
12:38 AM Misc #15007: Let all Init_xxx and extension APIs frequently called from init code paths be considered cold
Eregon (Benoit Daloze) wrote:
> What is "original chunky PR" VS "then trunk"?
> ...
First one is from the changeset in https://github.com/ruby/ruby/pull/1922, but it's gotten too large to review, hence the split into smaller incrementa...
methodmissing (Lourens Naudé)
12:23 AM Misc #15007: Let all Init_xxx and extension APIs frequently called from init code paths be considered cold
What is "original chunky PR" VS "then trunk"?
Which one is original and which one with your patch?
The first one seems better.
Eregon (Benoit Daloze)
12:01 AM Revision d2afeb94 (git): thread_pthread.c: reset timeslice delay when uncontended
This matches the behavior of old timer thread more closely
and seems to fix [Bug #14999] when limited to a single CPU.
I cannot reproduce the error on a multi-core system unless
I use schedtool to force affinity to a single CPU:
schedto...
Eric Wong
12:01 AM Revision 77038f9f (git): Revert "thread_sync.c (rb_mutex_sleep): skip interrupt check before sleep"
This reverts commit 2e420b8b99db4a5b81e2deda1ca386d59ad6bcba (r64464)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong

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 Eregon (Benoit Daloze)
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...
methodmissing (Lourens Naudé)
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
normalperson (Eric Wong)
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 ...
Eregon (Benoit Daloze)
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 Eregon (Benoit Daloze)
01:54 PM Bug #14999 (Open): ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
Eregon (Benoit Daloze)
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...
Eregon (Benoit Daloze)
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.
...
Eregon (Benoit Daloze)
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]

>...
normalperson (Eric Wong)
11:13 AM Bug #14999 (Open): ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
Eregon (Benoit Daloze)
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:...
Eregon (Benoit Daloze)
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 ...
normalperson (Eric Wong)
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...
normalperson (Eric Wong)
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

...
normalperson (Eric Wong)
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-...
Eric Wong
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
Eregon (Benoit Daloze)
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
Eregon (Benoit Daloze)
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 Eregon (Benoit Daloze)
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
Eregon (Benoit Daloze)
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 Eregon (Benoit Daloze)
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 Eregon (Benoit Daloze)
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 Eregon (Benoit Daloze)
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
Eregon (Benoit Daloze)
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
Eregon (Benoit Daloze)
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
Eregon (Benoit Daloze)
07:35 PM Revision bf4276b4 (git): * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
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
Eregon (Benoit Daloze)
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...
Eric Wong
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 svn[bot]
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...
Eric Wong
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 (...
shevegen (Robert A. Heiler)
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...
shevegen (Robert A. Heiler)
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...
Eregon (Benoit Daloze)
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...
Eregon (Benoit Daloze)
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
naruse (Yui NARUSE)
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 nobu (Nobuyoshi Nakada)
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
nobu (Nobuyoshi Nakada)
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
...
normalperson (Eric Wong)
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...
normalperson (Eric Wong)
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... k0kubun (Takashi Kokubun)
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...
Eric Wong
08:35 AM Bug #14416: Net::POPMail methods modify frozen literal when using default arg
ruby_2_5 r64443 merged revision(s) 62099. nagachika (Tomoyuki Chikanaga)
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...
nagachika (Tomoyuki Chikanaga)
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 znz (Kazuhiro NISHIYAMA)
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 ...
Eric Wong
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
Eric Wong
05:20 AM Bug #14868: [PATCH] process.c (ruby_fork_ruby): fix race in signal handling
ruby_2_5 r64439 merged revision(s) 63741. nagachika (Tomoyuki Chikanaga)
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 ...
nagachika (Tomoyuki Chikanaga)
05:04 AM Bug #14865: Raising exception in c_return event hook causes infinite loop
ruby_2_5 r64438 merged revision(s) 63727. nagachika (Tomoyuki Chikanaga)
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...
nagachika (Tomoyuki Chikanaga)
04:40 AM Bug #14856: [PATCH] lib/drb/extservm.rb (service): do not return `false'
ruby_2_5 r64437 merged revision(s) 63698. nagachika (Tomoyuki Chikanaga)
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...
nagachika (Tomoyuki Chikanaga)
04:30 AM Misc #14981: DevelopersMeeting20180913Japan
* [Feature #14609] `Kernel#p` without args shows the receiver aycabta (aycabta .)
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 ...
Eric Wong
04:19 AM Bug #14818: [Docs] Backport r63112 to ruby 2.5
ruby_2_5 r64435 merged revision(s) 63112. nagachika (Tomoyuki Chikanaga)
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/...
nagachika (Tomoyuki Chikanaga)
04:18 AM Bug #14816: Extension build failure on a system with musl libc
ruby_2_5 r64434 merged revision(s) 63571,63572. nagachika (Tomoyuki Chikanaga)
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...
nagachika (Tomoyuki Chikanaga)
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 znz (Kazuhiro NISHIYAMA)
03:38 AM Bug #14805: Enumerator#count is silently limited to int32
ruby_2_5 r64432 merged revision(s) 63549,63551,63554. nagachika (Tomoyuki Chikanaga)
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...
nagachika (Tomoyuki Chikanaga)
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 ...
byroot (Jean Boussier)
03:07 AM Bug #14790: DateTime.iso8601 parses incorrect ISO8601
ruby_2_5 r64431 merged revision(s) 63512,63514. nagachika (Tomoyuki Chikanaga)
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...
nagachika (Tomoyuki Chikanaga)
02:56 AM Bug #14756: `Exception` may cause SEGV when `#backtrace` returns a string
ruby_2_5 r64430 merged revision(s) 63417. nagachika (Tomoyuki Chikanaga)
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...
nagachika (Tomoyuki Chikanaga)
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 nobu (Nobuyoshi Nakada)
02:39 AM Bug #14754: Backport openssl v2.1.1 / v2.0.8
ruby_2_5 r64428 merged revision(s) 63406. nagachika (Tomoyuki Chikanaga)
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
----------------------------------------------------...
nagachika (Tomoyuki Chikanaga)
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
k0kubun (Takashi Kokubun)
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...
k0kubun (Takashi Kokubun)
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
k0kubun (Takashi Kokubun)
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...
k0kubun (Takashi Kokubun)

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?
Eregon (Benoit Daloze)
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 svn[bot]
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
Eregon (Benoit Daloze)
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. nagachika (Tomoyuki Chikanaga)
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-...
nagachika (Tomoyuki Chikanaga)
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. nagachika (Tomoyuki Chikanaga)
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...
nagachika (Tomoyuki Chikanaga)
03:48 PM Bug #14708: argument stack underflow (-1) (SyntaxError)
ruby_2_5 r64419 merged revision(s) 63255. nagachika (Tomoyuki Chikanaga)
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...
nagachika (Tomoyuki Chikanaga)
03:34 PM Bug #14693: Segfault calling super+[] from redefined #backtrace
ruby_2_5 r64418 merged revision(s) 61567. nagachika (Tomoyuki Chikanaga)
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
nagachika (Tomoyuki Chikanaga)
03:20 PM Bug #14654: Resurvey performance of RDoc by frozen_string_literal: true
Already backported at r63048. nagachika (Tomoyuki Chikanaga)
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 Eregon (Benoit Daloze)
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?
mame (Yusuke Endoh)
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...
mame (Yusuke Endoh)
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 Eregon (Benoit Daloze)
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 Eregon (Benoit Daloze)
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
Eregon (Benoit Daloze)
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 Eregon (Benoit Daloze)
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 Eregon (Benoit Daloze)
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
Eregon (Benoit Daloze)
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...
Eregon (Benoit Daloze)
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 Eregon (Benoit Daloze)
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
Eregon (Benoit Daloze)
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...
naruse (Yui NARUSE)
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. ...
normalperson (Eric Wong)
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
Eric Wong
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
nobu (Nobuyoshi Nakada)
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 znz (Kazuhiro NISHIYAMA)
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 znz (Kazuhiro NISHIYAMA)
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 mame (Yusuke Endoh)
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...
Eric Wong
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
nobu (Nobuyoshi Nakada)
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 nobu (Nobuyoshi Nakada)
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 nobu (Nobuyoshi Nakada)
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...
mame (Yusuke Endoh)

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,...
normalperson (Eric Wong)
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...
normalperson (Eric Wong)
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 ...
Eregon (Benoit Daloze)
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...
Anonymous
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]...
normalperson (Eric Wong)
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...
Eregon (Benoit Daloze)
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...
Eric Wong
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...
fletchto99 (Matthew Langlois)
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 ...
jjyr (Jinyang Jiang)
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...
Eric Wong
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 nobu (Nobuyoshi Nakada)
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 svn[bot]
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 nobu (Nobuyoshi Nakada)
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...
Eregon (Benoit Daloze)
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...
Eregon (Benoit Daloze)
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 znz (Kazuhiro NISHIYAMA)
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 naruse (Yui NARUSE)
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...
nobu (Nobuyoshi Nakada)
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...
nobu (Nobuyoshi Nakada)
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
nobu (Nobuyoshi Nakada)
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-...
Eric Wong
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...
maciej.mensfeld (Maciej Mensfeld)
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...
Eric Wong
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...
Eric Wong
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...
Eric Wong
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>
nobu (Nobuyoshi Nakada)
12:58 AM Revision 6fc7f103 (git): * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
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
nobu (Nobuyoshi Nakada)
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 nobu (Nobuyoshi Nakada)
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 nobu (Nobuyoshi Nakada)

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...
normalperson (Eric Wong)
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 svn[bot]
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
Eric Wong
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 akr (Akira Tanaka)
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 nobu (Nobuyoshi Nakada)
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 nobu (Nobuyoshi Nakada)
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 ...
normalperson (Eric Wong)
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...
normalperson (Eric Wong)
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
Eric Wong
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...
chopraanmol1 (Anmol Chopra)
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...
Eric Wong
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
Eric Wong
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=...
k0kubun (Takashi Kokubun)
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-...
Eric Wong
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
Eric Wong
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
Eric Wong
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 nobu (Nobuyoshi Nakada)
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
k0kubun (Takashi Kokubun)
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 nobu (Nobuyoshi Nakada)
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 nobu (Nobuyoshi Nakada)
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/...
k0kubun (Takashi Kokubun)
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
k0kubun (Takashi Kokubun)
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...
shyouhei (Shyouhei Urabe)

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
k0kubun (Takashi Kokubun)
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...
Eric Wong
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...
Eric Wong
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/...
Eric Wong
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`.
~~~
...
stevecheckoway (Stephen Checkoway)
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...
normalperson (Eric Wong)
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...
normalperson (Eric Wong)
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...
dsferreira (Daniel Ferreira)
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...
ko1 (Koichi Sasada)
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...
normalperson (Eric Wong)
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
Ricochet (SeHoon Park)
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 svn[bot]
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...
Eric Wong
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 ...
nobu (Nobuyoshi Nakada)
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.
naruse (Yui NARUSE)
10:44 AM Feature #14989: Add Hash support for transient heap
Nice introduction and explanation!
shevegen (Robert A. Heiler)
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...
tacinight (Yimin Zhao)
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...
shyouhei (Shyouhei Urabe)
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...
tacinight (Yimin Zhao)
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...
ko1 (Koichi Sasada)
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.
...
Eric Wong
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:...
chopraanmol1 (Anmol Chopra)
03:05 AM Feature #14984: case when with splat operator performance
Could you give us your idea with examples in pseudo-code?
ko1 (Koichi Sasada)
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...
ko1 (Koichi Sasada)
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...
Eric Wong
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...
Eric Wong
 

Also available in: Atom