Project

General

Profile

Activity

From 08/19/2018 to 08/25/2018

08/25/2018

05:40 PM Misc #15007: Let all Init_xxx and extension APIs frequently called from init code paths be considered cold
methodmissing (Lourens Naudé) wrote:
> ko1 (Koichi Sasada) wrote:
> ...
It uses function style macro because some function attribute of MSVC are valid only if written as suffix.
Therefore about coldfunc, just constant style is ok.
...
naruse (Yui NARUSE)
05:29 PM Bug #15027 (Rejected): When Struct#each method is overriden Struct#select and Struct#to_a use wrong collections
### Bug
Here's the code snippet that should reproduce the problem:
~~~ ruby
class Foo < Struct.new(:bar)
def each(&block)
[:baz, :qux].each(&block)
end
end
foo = Foo.new(:foo)
foo.map(&:itself) # => [:baz, :qux] #...
bruno (Bruno Sutic)
03:13 PM Feature #14097: Add union and difference to Array
Ana, I watched the video of [your EuRuKo talk](https://www.youtube.com/watch?v=jUc8InwoA-E). I could understand the background of your proposal.
However, I'm now getting confused. I thought you agreed that `Array#union` should be no...
mame (Yusuke Endoh)
06:58 AM Misc #15014 (Closed): thread.c: use rb_hrtime_scalar for high-resolution time operations
Applied in changeset trunk|r64533.
----------
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 roundi...
normalperson (Eric Wong)
05:05 AM Feature #15024: Support block in Array#join
I'd like somewhat to agree with the motivation. Indeed, I sometimes feel I want to insert separators between each pair of elements. However, I cannot remember the concrete situation, and how often I have encountered the situation. The... mame (Yusuke Endoh)
03:23 AM Feature #15024: Support block in Array#join
`Array#join` concatenates array elements recursively.
What do you expect as the index between different level elements?
nobu (Nobuyoshi Nakada)
01:13 AM Bug #15025 (Closed): Encountered a bug in interpreter or extension libraries
Seems an already fixed bug. nobu (Nobuyoshi Nakada)

08/24/2018

08:55 PM Feature #15024: Support block in Array#join
For `%{a b c d}.join { |_,_,i| i.to_s } == "a0b1c2d"`, you could do:
~~~ ruby
*a, l = %w{a b c d}; a.each.with_object('').with_index{|(v, str), i| str << v << i.to_s} << l
~~~
That definitely isn't as nice looking. I can see the...
jeremyevans0 (Jeremy Evans)
07:54 PM Feature #15024: Support block in Array#join
Doesn't `#each_slice` create temporary array for each pair? Doesn't seem very efficient. But assuming that does not matter, can I use something similar to produce `%{a b c d}.join { |_,_,i| i.to_s } == "a0b1c2d"`, is there oneliner for t... graywolf (Gray Wolf)
05:45 PM Feature #15024: Support block in Array#join
Your examples are both possible to implement using existing Array methods:
~~~ ruby
puts %w{a b c d}.each_slice(2).map{|a| a.join(", ")}.join("\n")
a, b
c, d
%w{a b c d}.each_cons(2).with_index.each{|a, i| puts (a << i).join(":"...
jeremyevans0 (Jeremy Evans)
05:11 PM Feature #15024 (Open): Support block in Array#join
I think it could be handy to have block support in Array#join.
For example
```ruby
> puts %w{a b c d}.join { |_, _, i| i % 2 == 1 ? "\n" : ', ' }
a, b
c, d
```
not sure what arguments exactly the block should take, atm I'm t...
graywolf (Gray Wolf)
08:03 PM Bug #15025 (Closed): Encountered a bug in interpreter or extension libraries
/Users/suyesh/.rbenv/versions/2.6.0-preview2/lib/ruby/gems/2.6.0/gems/bootsnap-1.3.1/lib/bootsnap/compile_cache/iseq.rb:18: [BUG] Segmentation fault at 0x000000000001cfa0
ruby 2.6.0preview2 (2018-05-31 trunk 63539) [x86_64-darwin17]
...
suyesh (suyesh bhandari)
07:19 PM Misc #15011 (Closed): [PATCH] thread_pthread.c: use eventfd instead of pipe on Linux
Applied in changeset trunk|r64527.
----------
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....
normalperson (Eric Wong)
04:04 PM Bug #15023: Time precision (in microsecond) inaccurate after performing strftime
`Time.at` supports `Rational` numbers too.
```ruby
puts Time.at(1486525793.995r).strftime("%s.%6N") #=> 1486525793.995000
```
nobu (Nobuyoshi Nakada)
03:58 PM Bug #15023 (Rejected): Time precision (in microsecond) inaccurate after performing strftime
IEEE 754 floating point numbers are inexact, and cannot represent that value exactly.
```ruby
printf("%.20f\n", 1486525793.995) #=> 1486525793.99499988555908203125
```
You can use the second argument to `Time.at` if you have accu...
nobu (Nobuyoshi Nakada)
03:41 PM Bug #15023 (Rejected): Time precision (in microsecond) inaccurate after performing strftime
Please see the example below. I think we should expect the result to be "1486525793.995". Right?
OS version: MacOS High Sierra 10.13.6
Ruby version: 2.5.1
~~~ ruby
2.5.1 :005 > Time.at(1486525793.995).strftime("%s.%6N")
=> "1...
calvinchso (Calvin So)
02:47 PM Bug #14997: Socket connect timeout exceeds the timeout value for
If anyone is actually willing to confirm, that it is indeed an unwanted / unexpected behavior, I offer to fix it.
It could be fixed by tracking how much of the time "pool" has been used and lowering the timeout value appropriate for t...
maciej.mensfeld (Maciej Mensfeld)
02:47 PM Bug #15021: Segfault when compiling certain code on Ruby 2.5.1
I think this is duplicate of https://bugs.ruby-lang.org/issues/14897 which contain the fix and the backport request tags. rafaelfranca (Rafael França)
09:56 AM Bug #15021: Segfault when compiling certain code on Ruby 2.5.1
Can reproduce this on 2.5, but not on trunk. Seems 2.5 needs a backport?
Not sure which is the exact revision though.
shyouhei (Shyouhei Urabe)
09:44 AM Bug #15021: Segfault when compiling certain code on Ruby 2.5.1
Sorry there's a small typo. The command to run the script is `ruby code.rb` not `ruby foo.rb` st0012 (Stan Lo)
09:40 AM Bug #15021 (Closed): Segfault when compiling certain code on Ruby 2.5.1

## Steps to reproduce
save the following code to `code.rb`
```
code =<<CODE
if false
new(arg: $arg)
end
CODE
RubyVM::InstructionSequence.compile(code).to_binary
```
and simply run `ruby foo.rb` then you'll get
```
c...
st0012 (Stan Lo)
01:32 PM Misc #14981: DevelopersMeeting20180913Japan
* [Feature #15022] Oneshot coverage
* I'd like to introduce a new kind of coverage to record whether each line is executed or not. It provides less but still useful information compared to the traditional line coverage, and the measu...
mame (Yusuke Endoh)
01:28 PM Feature #15022 (Closed): Oneshot coverage
I'd like to introduce a new feature to the coverage library, namely, "oneshot coverage".
## Synopsis
The following is a sample target program "test-cov.rb":
```
1: def foo
2: :foo
3: end
4:
5: def bar
6: :bar
7: end
...
mame (Yusuke Endoh)
10:25 AM Bug #15020 (Closed): [PATCH] Add 'guards' for mswin, mingw, update test_readline.rb
Applied in changeset trunk|r64526.
----------
ext/readline/extconf.rb: try using more readline APIs
on MinGW.
[Bug #15020]
From: MSP-Greg <[email protected]>
k0kubun (Takashi Kokubun)
01:58 AM Bug #15020: [PATCH] Add 'guards' for mswin, mingw, update test_readline.rb
@k0kubun,
I forgot one patch that I have on `ext/readline/extconf.rb`, at [ruby-loco/patches/ext-readline-extconf.rb.patch](
https://github.com/MSP-Greg/ruby-loco/blob/d41930447c93079a51a8bbbe200aa23cdffc808d/patches/ext-readline-ext...
MSP-Greg (Greg L)
08:26 AM Feature #14989: Add Hash support for transient heap
~~~
Hello, I took a look at add-hash-support-for-transient-heap.patch.
It seems lines are copy & pasted from st.c to hash.c. This is in fact
a wise idea to avoid common pitfalls. I have almost no comments on
that part.
> --- a...
shyouhei (Shyouhei Urabe)
05:55 AM Feature #15009 (Assigned): Add negotiated SSL protocol and cipher to Net::HTTP debug output
znz (Kazuhiro NISHIYAMA)

08/23/2018

06:01 PM Misc #15007: Let all Init_xxx and extension APIs frequently called from init code paths be considered cold
Hanmac (Hans Mackowiak) wrote:
> what happens when i would call such cold function outside of Init_xxx ?
I considered primarily only core for this change and carefully looked @ usage of the extension API in `Init_xxx` functions, but ...
methodmissing (Lourens Naudé)
05:57 PM Misc #15007: Let all Init_xxx and extension APIs frequently called from init code paths be considered cold
ko1 (Koichi Sasada) wrote:
> I agree to introduce COLD attribute.
I was wondering about Eric's suggestion about the convention for using it though. I like the Kernel style of `COLDFUNC void some_func()` or `COLD void some_func()` mor...
methodmissing (Lourens Naudé)
02:16 PM Misc #15007: Let all Init_xxx and extension APIs frequently called from init code paths be considered cold
what happens when i would call such cold function outside of Init_xxx ?
what functions in my own binding should be using cold?
like for example i have a own _attr_method function that mimic a attribute by setting a Get/Set function
Hanmac (Hans Mackowiak)
08:20 AM Misc #15007: Let all Init_xxx and extension APIs frequently called from init code paths be considered cold
I agree to introduce COLD attribute.
----
> TLB (translation lookaside buffer) specific
Do PHP people specify THP with DWARF knowledge?
ko1 (Koichi Sasada)
05:28 PM Bug #15020 (Closed): [PATCH] Add 'guards' for mswin, mingw, update test_readline.rb
When the mingw build was added, test_readline.rb failed. One test fails on mingw, several tests error due to the windows issue with "can't close a file with an existing ref on it".
See [GH PR #1941](https://github.com/ruby/ruby/pull/...
MSP-Greg (Greg L)
12:40 PM Bug #15019 (Closed): Documentation for Net::HTTP claims that multipart/form-data is not supported
https://ruby-doc.org/stdlib-2.5.1/libdoc/net/http/rdoc/Net/HTTP.html claims that `At this time Net::HTTP does not support multipart/form-data.`. According to stackoverflow ( https://stackoverflow.com/a/45976252/781743 ) this should be su... graywolf (Gray Wolf)
10:42 AM Misc #15014: thread.c: use rb_hrtime_scalar for high-resolution time operations
[email protected] wrote:
> Just a comment.

> API references (a list of provided functions with a comment) at the beginning of the hrtime.h will help us.

OK, updated:
https://80x24.org/spew/[email protected]/raw

(...
normalperson (Eric Wong)
07:16 AM Misc #15014: thread.c: use rb_hrtime_scalar for high-resolution time operations
Just a comment.
API references (a list of provided functions with a comment) at the beginning of the hrtime.h will help us.
ko1 (Koichi Sasada)
07:41 AM Feature #15010: Reduce allocation for rest parameters
ko1 (Koichi Sasada) wrote:
> sorry, which patch should I review?
Reduce-allocation-for-rest-parameters-v1.patch
chopraanmol1 (Anmol Chopra)
07:22 AM Feature #15010: Reduce allocation for rest parameters
sorry, which patch should I review?
ko1 (Koichi Sasada)
07:11 AM Bug #14817 (Feedback): TracePoint#parameters for bmethod's return event should return the same value as its Method#parameters
ko1 (Koichi Sasada)
07:10 AM Bug #14817: TracePoint#parameters for bmethod's return event should return the same value as its Method#parameters
見逃してました。
これ、実装見てたら、どーしょーもない気がするんで、制限のある仕様、ってことで駄目でしょうか。駄目かなあ。実装アイディア募集。
ko1 (Koichi Sasada)
04:13 AM Bug #14702 (Closed): On Ruby 2.5.1, tracepoint isn't working on the file that is loaded by load_iseq
Applied in changeset trunk|r64514.
----------
check trace flags at loading [Bug #14702]
* iseq.c (iseq_init_trace): at ISeq loading time, we need to check
`ruby_vm_event_enabled_flags` to turn on trace instructions.
Seprate this ch...
ko1 (Koichi Sasada)

08/22/2018

03:04 PM Bug #15018: NODE_ARGSCAT is not parsed properly
Good catch! I've committed it. Thank you! mame (Yusuke Endoh)
03:04 PM Bug #15018 (Closed): NODE_ARGSCAT is not parsed properly
Applied in changeset trunk|r64510.
----------
parse.y (arg_append): support NODE_ARGSCAT case
Because of the lack of this case, `[*ary,1,2,3,4,5,6]` was parsed into
an inefficient AST like `ary + [1,2] + [3,4] + [5,6]`.
A patch from A...
mame (Yusuke Endoh)
12:10 PM Bug #15018 (Closed): NODE_ARGSCAT is not parsed properly
Instead of wrapping following arguments in one list, current implementation creates multiple list wrapping only 2 elements.
e.g.
for
[*args,1,2,3,4,5,6]
**Expected AST**:
~~~
NODE_ARGSCAT---nd_head-->NODE_SPLAT(args)
|
|-...
chopraanmol1 (Anmol Chopra)
02:46 PM Bug #13889: FileUtils.rmdir が Errno::ENOTEMPTY を無視している
Seems related to https://bugs.ruby-lang.org/issues/3178 - maybe close that ticket? apeiros (Stefan Rusterholz)
11:47 AM Misc #15012: Testing on latest version gcc on Travis CI
Hi Greg,
> Sorry, my message was unclear.
No problem at all. Thanks for the explanation to be cleared.
> ...
So, adding gcc-8 to the both environments makes sense for me.
What I want to share as one of the benefits is
*...
jaruga (Jun Aruga)
10:13 AM Bug #15001: Peek causes cursor to advance when enumerating the lines of a file
i think the problem is that String Enumerations are rewindable while on the IO/File it is not Hanmac (Hans Mackowiak)
09:48 AM Bug #15001: Peek causes cursor to advance when enumerating the lines of a file
with slight modification of the above code,
~~~ ruby
e = File.open("f").each_line
p e.each.to_a
e.peek
p e.each.to_a
~~~
it will give following result
~~~ text
["1\n", "2\n", "3\n"]
Traceback (most recent call last):
1: from ...
ysfk (Yosfik Alqadri)
05:42 AM Feature #15017: Provide extended information about Signal
> Feature #15017: Provide extended information about Signal
> https://bugs.ruby-lang.org/issues/15017#change-73659

Implementation would be tricky, since we defer signals to run
Ruby code. (Deferring allows us to use malloc and oth...
normalperson (Eric Wong)
02:57 AM Feature #15017: Provide extended information about Signal
shevegen (Robert A. Heiler) wrote:
> Some comments (personal opinion here):
> ...
Currently, it is:
```ruby
Signal.trap("INT") {|signo| }
```
where `signo` is an integer.
What I can think of is:
```ruby
Signal.trap("INT") {|si...
nobu (Nobuyoshi Nakada)

08/21/2018

10:17 PM Feature #15004 (Closed): Run ruby/spec in TravisCI on older versions of MRI to make sure the specs keep working with older supported versions
Applied in changeset trunk|r64502.
----------
Run specs against 2.3.7 to ensure version guards are correctly added
* See [Feature #15004].
Eregon (Benoit Daloze)
07:52 PM Misc #15014: thread.c: use rb_hrtime_scalar for high-resolution time operations
[email protected] wrote:
> At r64493, ruby-loco built successfully using the abiove patch, Thanks, Greg

Thanks! I don't know when I'll commit this, yet.
normalperson (Eric Wong)
02:57 PM Misc #15014: thread.c: use rb_hrtime_scalar for high-resolution time operations
@normalperson Eric,
At r64493, ruby-loco built successfully using the abiove patch, Thanks, Greg
MSP-Greg (Greg L)
07:52 PM Feature #15006: [PATCH] io.c: use copy_file_range with every types of files
[email protected] wrote:
> In this case, how would you feel about another patch to add
> `splice` support to `IO.copy_file`?

Sure!

> My use case is that I need to efficiently write from a socket
> to a pipe, and sometimes...
normalperson (Eric Wong)
11:38 AM Feature #15006: [PATCH] io.c: use copy_file_range with every types of files
> That is incorrect, copy_file_range requires both source and
destination as regular files
Damn, I totally got mislead by that LWN article & the man page. I really searched for it but couldn't find an indication that only real files ...
byroot (Jean Boussier)
05:55 PM Feature #11076: Enumerable method count_by
How about `tally`?
```ruby
array = ['aa', 'aA', 'bb', 'cc']
p array.tally(&:downcase) #=> {'aa'=>2,'bb'=>1,'cc'=>1}
```
`tally` describes quite well to me what this method does and avoids clashing with `group` or `count`.
`tall...
djones (David Jones)
05:02 PM Feature #15017: Provide extended information about Signal
Some comments (personal opinion here):
1) I think the described use case is understandable, but if you can, I think it may
help matz and the ruby core team decide on; for example, what is the specific API
you had in mind? Could you ...
shevegen (Robert A. Heiler)
11:26 AM Feature #15017 (Open): Provide extended information about Signal
Hi,
I see that ruby already use sigaction for signal handling on linux. It would be really nice to extend it to provide also signal details in siginfo_t and then provide such details in ruby via Signal module (as additional param beside...
jreidinger (Josef Reidinger)
01:44 PM Misc #15012: Testing on latest version gcc on Travis CI
@jaruga,
Sorry, my message was unclear. For quite some time, Ruby trunk has been built on Appveyor using the MSFT VC compiler (mswin). Sometime last year, full testing was added to that build.
In the wild, most Windows Ruby users...
MSP-Greg (Greg L)
10:04 AM Misc #15012: Testing on latest version gcc on Travis CI
> Given that Appveyor/Windows MSYS2/MinGW also has gcc 8.2.0 available (ruby-loco uses it), seems like a good idea to me. One would hope that newer gcc releases are also better optimized for JIT...
It looks good idea to add gcc 8 on t...
jaruga (Jun Aruga)
12:41 AM Misc #15012: Testing on latest version gcc on Travis CI
Given that Appveyor/Windows MSYS2/MinGW also has gcc 8.2.0 available (ruby-loco uses it), seems like a good idea to me. One would hope that newer gcc releases are also better optimized for JIT...
Off topic - about Appveyor testing - ...
MSP-Greg (Greg L)
12:45 PM Feature #15010: Reduce allocation for rest parameters
Limitation of patch 2.
1. Patch 2 gets slower than Patch 1 for a large array. Array with length 100 - 200 have similar performance but beyond that patch 1 is faster in most of the case.
2. Patch 2 results in segmentation fault fo...
chopraanmol1 (Anmol Chopra)
07:26 AM Feature #15010: Reduce allocation for rest parameters
chopraanmol1 (Anmol Chopra) wrote:
> I'm also thinking of an alternate solution which will avoid passing the skip_dup_flag variable around, If we can ensure that args->rest is not used/assigned until args_copy is called. To do this when...
chopraanmol1 (Anmol Chopra)
05:59 AM Feature #15010: Reduce allocation for rest parameters
chopraanmol1 (Anmol Chopra) wrote:
> Moving method to internal.h breaks jit https://travis-ci.org/ruby/ruby/builds/418529271 , I'm not sure how to fix this failure.
Define the function with `MJIT_FUNC_EXPORTED`.
nobu (Nobuyoshi Nakada)
05:36 AM Feature #15010: Reduce allocation for rest parameters
normalperson (Eric Wong) wrote:
> New functions prototypes should go into internal.h, though.
> ...
Moving method to internal.h breaks jit https://travis-ci.org/ruby/ruby/builds/418529271 , I'm not sure how to fix this failure.
chopraanmol1 (Anmol Chopra)
05:19 AM Feature #15010: Reduce allocation for rest parameters
I'm also thinking of an alternate solution which will avoid passing the skip_dup_flag variable around, If we can ensure that args->rest is not used/assigned until args_copy is called. To do this when VM_CALL_ARGS_SPLAT flag is on instead... chopraanmol1 (Anmol Chopra)
04:46 AM Feature #15010: Reduce allocation for rest parameters
normalperson (Eric Wong) wrote:
>
> ...
Updated.
mame (Yusuke Endoh) wrote:
>
> ...
For now, I'm renaming the method to rb_ary_behead (suggested by nobu)
chopraanmol1 (Anmol Chopra)
02:03 AM Bug #15015 (Closed): Build failure from `git clone`
Applied in changeset trunk|r64491.
----------
common.mk: timestamp directory
* common.mk: timestamp files need the timestamp directory.
[Bug #15015] [ruby-core:88584]
nobu (Nobuyoshi Nakada)
01:06 AM Bug #15015 (Closed): Build failure from `git clone`
I got build failure related mjit header.
```
chkbuild002% make
BASERUBY = /usr/local/bin/ruby --disable=gems
CC = cc
LD = ld
LDSHARED = cc -shared
CFLAGS = -O3 -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wn...
hsbt (Hiroshi SHIBATA)

08/20/2018

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
[email protected] 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
[email protected] 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)
08:12 PM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
[email protected] 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
[email protected] 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: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)
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
[email protected] 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)

08/19/2018

11:12 PM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
[email protected] 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
[email protected] 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)
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)
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)
 

Also available in: Atom