Project

General

Profile

Activity

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

08/25/2018

10:32 PM Revision 32910b87 (git): test/io/wait/test_io_wait_uncommon.rb: relax /dev/random check
Too many machines lack entropy to have a usable /dev/random. I
had similar problems on my system until I started using
haveged(8), but we can't require that for CI.
cf. https://rubyci.org/logs/rubyci.s3.amazonaws.com/debian/ruby-trunk/...
Eric Wong
10:14 PM Revision 894847a5 (git): thread_pthread.c (ubf_wakeup_thread): `th' is never NULL
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64539 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eric Wong
09:59 PM Revision 70a8a6d3 (git): thread_pthread.c: main thread always gets hit by signals
We need to ensure Signal.trap handlers can function if the main
thread is sleeping after a subthread has grabbed sigwait_fd,
but later exited.
Consider the following timeline:
main_thread sub-thread
------------------------...
Eric Wong
09:33 PM Revision 49309733 (git): * 2018-08-26
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64537 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
09:33 PM Revision b4084d7c (git): thread.c: quiet down -Wmaybe-uninitialized on gcc 7.[2-3]
Haven't tested gcc 8, yet; but gcc 6 seems fine....
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64536 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
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)
09:02 AM Revision 95abea43 (git): hrtime.h: add documentation
I updated the patch with documentation but forgot about it,
earlier :x
[ruby-core:88616] [Misc #15014]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64535 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
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)
06:58 AM Revision 0e063601 (git): * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
06:58 AM Revision b0253a75 (git): 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 using a 64-bit type.
Unsigned 64-bit integer is able to give us over nearly 5...
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)
02:32 AM Revision 7c31c273 (git): drb: close graceful shutdown pipe before socket
Closing a listen socket while entering select(2) may
trigger IOError or even deadlock because another thread
may give the file descriptor to another file description;
meaning the kernel can wait on the wrong description.
git-svn-id: svn...
Eric Wong
02:32 AM Revision a4802248 (git): drb: simplify shutdown pipe close logic
IO#close is idempotent, so we don't need to waste bytecode
to check or nil it at shutdown time.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64531 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
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

10:32 PM Revision 7710bdd1 (git): Add AIX guards
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64530 b2dd03c8-39d4-4d8f-98ff-823fe69b080e naruse (Yui NARUSE)
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:28 PM Revision 6277b924 (git): test/ruby/test_io.rb (test_recycled_fd_close): use IO#read to avoid ppoll call
IO#sysread calls rb_wait_for_single_fd for compatibility, and
perhaps something is amiss with that (unrelated to timer-thread
elimination)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64529 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
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)
07:19 PM Revision 72af13f3 (git): * 2018-08-25
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64528 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
07:19 PM Revision 0a77fd04 (git): 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 lighter
eventfd on Linux.
[ruby-core:88563] [Misc #15011]
g...
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 <Greg.mpls@gmail.com>
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)
10:25 AM Revision 5bd4283f (git): ext/readline/extconf.rb: try using more readline APIs
on MinGW.
[Bug #15020]
From: MSP-Greg <Greg.mpls@gmail.com>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64526 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
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

11:50 PM Revision 6264225c (git): test/readline/test_readline.rb: fix readline test
for mingw.
test/lib/minitest/unit.rb: Add 'guards' for mingw.
Removed still-unused method `mswin?` from original patch.
[Fix GH-1941]
From: MSP-Greg <MSP-Greg@users.noreply.github.com>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trun...
k0kubun (Takashi Kokubun)
07:49 PM Revision 7bde63fa (git): thread_pthread.c (ubf_timer_destroy): remove redundant getpid check
TIMER_THREAD_CREATED_P already checks that pid, and glibc 2.25+
no longer caches getpid(2).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64524 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
07:13 PM Revision f3bf0e1b (git): * 2018-08-24
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
07:13 PM Revision 8ae44386 (git): NEWS: add entries for rb_waitpid and timer-thread [ci skip]
Some of these changes may affect debugging and tracing tools
[Bug #14867] [ruby-core:88199] [Misc #14937]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64522 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
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
ko1@atdot.net 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/20180823103503.29516-1-e@80x24.org/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)
08:49 AM Revision 7c9af3e1 (git): iseq.c (rb_vm_encoded_insn_data_table_init): add a cast to build on clang
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64521 b2dd03c8-39d4-4d8f-98ff-823fe69b080e mame (Yusuke Endoh)
08:33 AM Revision 57a5a3eb (git): Mention `--enable=jit` instead of `--jit`
"--jit" flag usage may be deprecated at r63995 [Feature #14878]
[ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64520 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
znz (Kazuhiro NISHIYAMA)
08:32 AM Revision 5b720972 (git): iseq.c (rb_iseq_trace_set): refactoring by using encoded_insn_data
Now it uses encoded_insn_data to identify and replace each encoded insn.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64519 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
mame (Yusuke Endoh)
08:32 AM Revision d574683c (git): iseq.c: add a map from encoded insn to insn data
This enhances rb_vm_insn_addr2insn which retrieves a decoded insn number
from encoded insn.
The insn data table include not only decoded insn number, but also its
len, trace and non-trace version of encoded insn.
This table can be used t...
mame (Yusuke Endoh)
07:45 AM Revision bf6e2eb7 (git): compile.c: drop unused array
* compile.c (iseq_peephole_optimize): drop unused dynamic array
literal, without concatenation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64517 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
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:22 AM Revision 130ef3b4 (git): compile.c: drop unused string
* compile.c (iseq_peephole_optimize): drop unused dynamic string
literal, without concatenation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64516 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
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)
05:54 AM Revision 8752a1ff (git): remove `const` warning.
* compile.c (iseq_ibf_load): remove `const` to pass iseq as no `const`
parameter.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64515 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
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)
04:12 AM Revision b85b10c1 (git): 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 checking code from `finish_iseq_build()` and make
new function. `iseq_ibf_load()` calls th...
ko1 (Koichi Sasada)

08/22/2018

07:18 PM Revision 870af862 (git): Also skip on AIX
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64513 b2dd03c8-39d4-4d8f-98ff-823fe69b080e naruse (Yui NARUSE)
04:02 PM Revision 37fa201e (git): compile.c: pop literal object in condition
* compile.c (compile_branch_condition): pop dynamic literal
object, which is never nil/false, as the branch condition.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64512 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
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)
03:04 PM Revision 954613bd (git): * 2018-08-23
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64511 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
03:04 PM Revision fad01941 (git): 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 Anmol Chopra <anmolchopra@rocketbox.in>.
Fixes [Bug #15018].
git-svn-id: svn+ssh://ci.ruby-lang....
mame (Yusuke Endoh)
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)
11:09 AM Revision 100bf275 (git): compile.c: remove tracecoverage instruction for line coverage
Line coverage was based on special instruction "tracecoverage".
Now, instead, it uses the mechanism of trace hook [Feature #14104].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
mame (Yusuke Endoh)
10:38 AM Revision d65f7458 (git): parse.y: remove coverage-related code fragments
The code fragments that initializes coverage data were scattered into
both parse.y and compile.c. parse.y allocated a coverage data, and
compile.c initialize the data.
To remove this cross-cutting concern, this change moves the allocat...
mame (Yusuke Endoh)
10:38 AM Revision 52bd0d19 (git): node.h (rb_ast_t): move its field mark_ary to node_buffer_t
I want to add a new field to rb_ast_t whose size is restricted because
it is an imemo. This change makes one room in rb_ast_t.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64507 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
mame (Yusuke Endoh)
10:22 AM Revision c5f50296 (git): prototized
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64506 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
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)
05:24 AM Revision 664bf8bf (git): common.mk: update "make help" so that "make check" now runs test-spec
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64505 b2dd03c8-39d4-4d8f-98ff-823fe69b080e mame (Yusuke Endoh)
05:24 AM Revision 33af0429 (git): thread.c (rb_reset_coverages): remove coverage counters from all ISeqs
When coverage measurement is enabled, the compiler makes each iseq have
a reference to the counter array of coverage.
Even after coverage measurement is disabled, the reference is kept.
And, if coverage measurement is restarted, a covera...
mame (Yusuke Endoh)
04:04 AM Revision 84fd997f (git): Avoid compiler depend error
ref r64492
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64503 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
znz (Kazuhiro NISHIYAMA)

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)
10:17 PM Revision d4313df0 (git): Run specs against 2.3.7 to ensure version guards are correctly added
* See [Feature #15004].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64502 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eregon (Benoit Daloze)
10:01 PM Revision b448f23e (git): Update to ruby/spec@dd828d6
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eregon (Benoit Daloze)
10:01 PM Revision 2aefb198 (git): Update to ruby/mspec@269f9cd
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64500 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eregon (Benoit Daloze)
08:28 PM Revision ec1af131 (git): Only run the spec on Linux
* Other platforms seem to behave differently.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eregon (Benoit Daloze)
08:28 PM Revision 778964ba (git): Revert r64483
* This reverts commit 12f624b673fd1bd1782f4c52e3b6c78d033e7b84:
"Try 4 times for WIN32OLE specs"
* It was a machine problem, it needed to be rebooted.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64498 b2dd03c8-39d4-4d8f-98ff-823f...
Eregon (Benoit Daloze)
07:52 PM Misc #15014: thread.c: use rb_hrtime_scalar for high-resolution time operations
Greg.mpls@gmail.com 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
jean.boussier@gmail.com 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)
03:57 PM Revision 20a766d0 (git): * 2018-08-22
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64497 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
03:57 PM Revision 8783ecd8 (git): AIX also timeouts the spec
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64496 b2dd03c8-39d4-4d8f-98ff-823fe69b080e naruse (Yui NARUSE)
02:57 PM Revision b8eb5309 (git): Add more assertions for NotImplementedError of instance method
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64495 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
02:40 PM Revision efb002cd (git): rename an argument of calc_wday.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64494 b2dd03c8-39d4-4d8f-98ff-823fe69b080e akr (Akira Tanaka)
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)
01:39 PM Revision 682a661e (git): Re-Revert "Temporary revert "process.c: dead code when no SIGCHLD""
This re-reverts commit r64447.
The issue was machine side problem.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64493 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
naruse (Yui NARUSE)
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:11 AM Revision c8a34443 (git): cont.c: fix syntax error
* cont.c (struct rb_fiber_struct): fix wrong usage of BITFIELD in
r64487, which caused syntax error on pre-C99 compilers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64492 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
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)
02:02 AM Revision 5a336c26 (git): common.mk: timestamp directory
* common.mk: timestamp files need the timestamp directory.
[Bug #15015] [ruby-core:88584]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64491 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
01:01 AM Revision 79bdb6f9 (git): thread*.c: replace GetMutexPtr with mutex_ptr
Following ko1's lead in r59192, this gets rid of non-obvious
assignments which happen inside macros.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
01:01 AM Revision 383d7dba (git): cont.c: replace "GetFooPtr" macros with "foo_ptr" functions
Following ko1's lead in r59192, this gets rid of non-obvious
assignments which happen inside macros.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64489 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
12:16 AM Revision 7e5423b8 (git): internal.h: remove prototype for non-existent rb_divert_reserved_fd
I forgot to remove it 3 years ago in r51576
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64488 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong

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
 

Also available in: Atom