Project

General

Profile

Activity

From 05/05/2018 to 05/11/2018

05/11/2018

11:34 PM Bug #14752 (Closed): abort during build full build log
during ruby build on NetBSD arm the system aborts and I cannot find a core or anything else to
debug it. as the program miniruby does not leave a core dump
================session follows=========================
/usr/work/lang/ruby...
extremelydangerous (sergio lenzi)
10:08 PM Bug #14750: [IMAP] `send_string_data` uses `send_literal` method with incorrect number of arguments
ShockwaveNN (Pavel Lobashov) wrote:
> Thanks for quick fix, I monkeypatched my code using your fix and working as intended.
> ...
I think the fix should be backported to 2.5.
shugo (Shugo Maeda)
01:35 PM Bug #14750: [IMAP] `send_string_data` uses `send_literal` method with incorrect number of arguments
shugo (Shugo Maeda) wrote:
> Applied in changeset trunk|r63396.
> ...
Thanks for quick fix, I monkeypatched my code using your fix and working as intended.
Does this fix will be included in next bugfix of 2.5? Or it will be included o...
ShockwaveNN (Pavel Lobashov)
12:39 PM Bug #14750 (Closed): [IMAP] `send_string_data` uses `send_literal` method with incorrect number of arguments
Applied in changeset trunk|r63396.
----------
net/imap: Fix ArgumentError in send_string_data
Thanks to ShockwaveNN (Pavel Lobashov) for reporting the bug.
[ruby-core:86990] [Bug #14750]
shugo (Shugo Maeda)
12:01 PM Bug #14750: [IMAP] `send_string_data` uses `send_literal` method with incorrect number of arguments
You are right, it seems indeed as if it was forgotten, as seen by:
https://github.com/ruby/ruby/commit/84c1596342854208c45832ed9700482dd28efbfc#diff-4b4baaf75652a369c39b0b76e81ad54dR1315
shevegen (Robert A. Heiler)
09:49 AM Bug #14750 (Closed): [IMAP] `send_string_data` uses `send_literal` method with incorrect number of arguments
Hi there, sorry I haven't reliable test case to reproduce an issue, since I don't have access to any public IMAP servers.
In Ruby 2.5 in file `lib/net/imap.rb` there is method `def send_string_data` which looks like
~~~ ruby
def ...
ShockwaveNN (Pavel Lobashov)
08:07 PM Revision 4b8d33a3 (git): lib/securerandom.rb: improve docs
* lib/securerandom.rb: [DOC] drop unnecessary `p' from code examples.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
stomar (Marcus Stollsteimer)
05:21 PM Revision 3d1e34c1 (git): configure.ac: remove ineffective check on Solaris with GCC
* configure.ac (solaris): Remove ineffective check for -std=iso9899:1999
on Solaris with GCC. The "-std=iso9899:1999" was replaced by
"-std=gnu99" by the commit r54895. The check is no longer effective
after that, and two years hav...
ngoto (Naohisa Goto)
04:48 PM Bug #14751 (Closed): error during transform_mjit_header.rb on Solaris 10
Applied in changeset trunk|r63400.
----------
transform_mjit_header.rb: workaround for Solaris 10 with old GCC
* tool/transform_mjit_header.rb (MJITHeader.conflicting_types?):
Add workaround for Solaris 10 with old GCC (4.6.2), that ...
ngoto (Naohisa Goto)
04:24 PM Bug #14751 (Closed): error during transform_mjit_header.rb on Solaris 10
Solaris 10 にて、以下のエラーで transform_mjit_header.rb に失敗します。
(r63361 にて確認)
~~~
gcc -E -DMJIT_HEADER -P -dD -m64 -O3 -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautologic...
ngoto (Naohisa Goto)
04:47 PM Revision 1c67c46e (git): transform_mjit_header.rb: workaround for Solaris 10 with old GCC
* tool/transform_mjit_header.rb (MJITHeader.conflicting_types?):
Add workaround for Solaris 10 with old GCC (4.6.2), that is
essentially the same as for AIX (commit r62326), but probably
due to different GCC versions, different err...
ngoto (Naohisa Goto)
04:23 PM Feature #14718: Use jemalloc by default?
~~~
Bundle jemalloc and link it statically.
pro: No runtime hell.
con: Bloats source distribution. Costs non-glibc users.
con: Also costs the core devs because they have to sync the bundled jemalloc with the upstream.
...
mperham (Mike Perham)
04:06 AM Feature #14718: Use jemalloc by default?
bluz71 (Dennis B) wrote:
> Just enabling `--with-jemalloc` would satisfy pretty much most (myself included). On Linux it would be one extra dependency at build time (for distros, rvm/rbenv/ruby-install). Dependency management on the m...
bluz71 (Dennis B)
04:00 AM Feature #14718: Use jemalloc by default?
jeremyevans0 (Jeremy Evans) wrote:
> I think you have me confused with Jason Evans, the author of jemalloc. :)
Yes indeed I did, please accept my apologies, I did believe you were the JE in jemalloc.
bluz71 (Dennis B)
03:38 AM Feature #14718: Use jemalloc by default?
mame (Yusuke Endoh) wrote:
> (Don't get me wrong: I'm never against jemalloc nor this feature. I'm purely unsure.)
It is right to be unsure and sceptical.
But in this case we do have years worth of experience with the benefits ...
bluz71 (Dennis B)
03:28 AM Feature #14718: Use jemalloc by default?
> - Just enable `--with-jemalloc` default on, only for Linux.
This is my close 2nd favoured option.
> ...
No, too complicated. I don't think anyone wants this.
> - Bundle jemalloc and link it statically.
My favoured, but I un...
bluz71 (Dennis B)
03:01 AM Feature #14718: Use jemalloc by default?
normalperson (Eric Wong) wrote:
> We will depend on distros to enable/disable the dependency on it.
Yes. This is what I wanted to ask.
Since almost all people use distros' package of Ruby, the final decision is left to distros.
Th...
mame (Yusuke Endoh)
02:22 AM Feature #14718: Use jemalloc by default?
shyouhei@ruby-lang.org wrote:
> So, I think it's clear people are interested in replacing _glibc_ malloc, not everything that exist in the whole universe.
>
> Let's discuss how we achieve that. There can be several ways:
>
> - J...
normalperson (Eric Wong)
01:31 AM Feature #14718: Use jemalloc by default?
So, I think it's clear people are interested in replacing _glibc_ malloc, not everything that exist in the whole universe.
Let's discuss how we achieve that. There can be several ways:
- Just enable `--with-jemalloc` default on, o...
shyouhei (Shyouhei Urabe)
03:46 PM Bug #14746 (Closed): $cppflags が ext/zlib/Makefile に反映されないため(?) Solaris 10 にて ext/zlib のmakeに失敗する
Applied in changeset trunk|r63398.
----------
mkmf.rb: set cppflags
* ext/mkmf.rb (configuration): set the default cppflags, which is
referred from the default CPPFLAGS, for extension libraries.
This fixes build failure of ext/zlib...
ngoto (Naohisa Goto)
03:32 PM Bug #14746: $cppflags が ext/zlib/Makefile に反映されないため(?) Solaris 10 にて ext/zlib のmakeに失敗する
mkmf時に使用した$cppflagsが生成されたMakefileに反映されないのはlib/mkmf.rbのバグだと思います。
以下のパッチで$cppflagsが生成されたMakefileに書き込まれ、ext/zlibのmakeも通ることを確認しました。(r63393にて確認)
~~~
--- a/lib/mkmf.rb
+++ b/lib/mkmf.rb
@@ -1982,6 +1982,7 @@ def configuration(srcdir)
...
ngoto (Naohisa Goto)
03:46 PM Revision 94cb4cef (git): * 2018-05-12
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
03:46 PM Revision 5cc2ac98 (git): mkmf.rb: set cppflags
* ext/mkmf.rb (configuration): set the default cppflags, which is
referred from the default CPPFLAGS, for extension libraries.
This fixes build failure of ext/zlib on Solaris 10.
[Bug #14746] [ruby-dev:50539]
git-svn-id: svn+ssh:...
ngoto (Naohisa Goto)
02:20 PM Bug #14747 (Feedback): uninitialized constant Gem::PathSupport
I fixed this problem at r63377. I think that this is your environment problem.
Did you clean-up with `/cygdrive/c/Data/ruby` ?
hsbt (Hiroshi SHIBATA)
11:00 AM Bug #14747: uninitialized constant Gem::PathSupport
hsbt (Hiroshi SHIBATA) wrote:
> I caused by broken csv-1.0.3.gemspec. Can you try to clean installation directory and re-install trunk version?
I tried. I completely removed the checkout, and checked everything out from svn again, th...
duerst (Martin Dürst)
01:01 PM Revision b936115e (git): fix potential memory leaks
* parse.y (primary, new_args_tail, local_tbl): keep the order;
allocate an empty imemo first then xmalloc, to get rid of
potential memory leak when allocation imemo failed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63397 b2d...
nobu (Nobuyoshi Nakada)
12:39 PM Revision 59630683 (git): 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/trunk@63396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
shugo (Shugo Maeda)
12:12 PM Revision b787be4e (git): * 2018-05-11
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63395 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
12:12 PM Revision 0f4b4684 (git): Use `&.` instead of modifier if
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63394 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
11:22 AM Bug #14728: OptionParser takes other options as argument values
nobu (Nobuyoshi Nakada) wrote:
> In common, an argument is determined by the preceding option, consider `grep` command's `-e` option.
> ...
Thanks!
xz0r (xz0r xz0r)
10:20 AM Feature #14249: Remove str[match_str]
I can tell you that the `str[match_str]` is used in many codes, but i can't find any example now
and no, it is different from `str[regex]` !
Hanmac (Hans Mackowiak)
09:57 AM Feature #14249: Remove str[match_str]
My example in the first comment is not really correct (something went wrong when copying). What I meant:
~~~ ruby
params = { "user" => { "name" => "Nicolas Cage", "age" => 27 } }
params["user"]["age"] #=> 27
params = { "user" =...
ana06 (Ana Maria Martinez Gomez)
10:02 AM Misc #14698: DevelopersMeeting20180517Japan
Hi!
I would that the following issues are discussed in the meeting:
* [Feature #14097] Add union and difference to Array (ana06)
* Addition of two new methods in aim of readability, ease of use, efficiency and consistence. There...
ana06 (Ana Maria Martinez Gomez)
08:49 AM Bug #14749 (Closed): IRB: `_` is not updated after exception raised
After r63150, once exception raised, irb holds that exception to `_` instead of the last evaluated value.
~~~irb
$ irb -f
irb(main):001:0> RUBY_VERSION
=> "2.6.0"
irb(main):002:0> _
=> "2.6.0"
irb(main):003:0> raise RUBY_RELEASE...
no6v (Nobuhiro IMAI)
05:52 AM Bug #14745: High memory usage when using String#replace with IO.copy_stream
janko.marohnic@gmail.com wrote:
> def initialize(content)
> @io = StringIO.new(content)
> end
>
> def read(length, outbuf)
> chunk = @io.read(length)

Finally, I always assumed your example is a contrived case and...
normalperson (Eric Wong)
04:32 AM Bug #14745: High memory usage when using String#replace with IO.copy_stream
janko.marohnic@gmail.com wrote:
> ~~~ ruby
> def read(length, outbuf)
> chunk = @io.read(length)
>
> if chunk
> outbuf.replace chunk
> chunk.clear

Elaborating on my previous comment, chunk.clear is a no...
normalperson (Eric Wong)
03:42 AM Bug #14745: High memory usage when using String#replace with IO.copy_stream
janko.marohnic@gmail.com wrote:
> the memory usage has now doubled to 100MB at the end of the
> program, indicating that some string bytes weren't
> successfully deallocated. So, it seems that String#replace has
> different behaviou...
normalperson (Eric Wong)
03:09 AM Bug #14748 (Closed): Inconsistent (and regressed from 2.4) behavior on `Array#min` and max between array literals and arrays
This is already fixed in trunk at r61766. Please wait for ruby 2.5.2.
(Note that #12172 is innocent because opt_newarray_min is included in 2.4 :-)
mame (Yusuke Endoh)
03:04 AM Bug #14748: Inconsistent (and regressed from 2.4) behavior on `Array#min` and max between array literals and arrays
Related to this?
https://bugs.ruby-lang.org/issues/14350
Hanmac (Hans Mackowiak)
02:09 AM Bug #13407: We have recv_nonblock but not send_nonblock... can we add it?
I have since worked around this issue, by using `sendmsg` as an alias. https://github.com/socketry/async-io/blob/dbcfb05d209a41d2283e49c75c407a93179a64b6/lib/async/io/socket.rb#L47 ioquatix (Samuel Williams)
02:08 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
> Server and reactor designers sometimes don't consider this case:
> ...
I see. That makes sense.
Well, `async-io` doesn't have this problem AFAIK, because it doesn't have callbacks like this. It only read when you ask it to. That do...
ioquatix (Samuel Williams)

05/10/2018

11:41 PM Bug #14748 (Closed): Inconsistent (and regressed from 2.4) behavior on `Array#min` and max between array literals and arrays
`Array#min` and `Array#max` have different behavior depending on whether or not they are called with array literals:
~~~
$ ruby -e 'puts([1.0, 1].min); one_f = 1.0; one = 1; puts([one_f, one].min)'
1.0
1
~~~
This is a regress...
nelhage (Nelson Elhage)
09:12 PM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
samuel@oriontransfer.net wrote:
> I hacked in EPOLLONESHOT semantics into my runloop. IT was
> about the same performance. But when I leveraged it correctly
> (calling `EPOLL_CTL_ADD` when accepting IO once, and
> `EPOLL_CTL_DEL` wh...
normalperson (Eric Wong)
08:12 PM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
samuel@oriontransfer.net wrote:
> > Again, Mio (Glasgow Haskell Compiler) is most similar to what
> > I'm working on, here, and that scales to some ridiculous number
> > of cores
>
> Thanks for that I will read it.

Fwiw, I've b...
normalperson (Eric Wong)
05:20 PM Feature #14718: Use jemalloc by default?
bluz71 (Dennis B) wrote:
> jeremyevans0 (Jeremy Evans) wrote:
> ...
On OpenBSD, I don't think we modify either. I think Golang uses a custom allocator based on tcmalloc, and Rust is still apparently using the jemalloc allocator.
> ...
jeremyevans0 (Jeremy Evans)
06:26 AM Feature #14718: Use jemalloc by default?
jeremyevans0 (Jeremy Evans) wrote:
> It should definitely not be the default for all Unix-like systems. On OpenBSD using jemalloc by default would be considered an exploit mitigation countermeasure. jemalloc may have better performanc...
bluz71 (Dennis B)
05:54 AM Feature #14718: Use jemalloc by default?
bluz71 (Dennis B) wrote:
> Some programming languages do ship with the own allocator source. If Ruby did the same with jemalloc it would not be out of the ordinary. Personally I would want to enable it by default for all Unix-like syste...
jeremyevans0 (Jeremy Evans)
05:37 AM Feature #14718: Use jemalloc by default?
normalperson (Eric Wong) wrote:
> mperham@gmail.com wrote:
> ...
I actually believe if enabled it would for the long-term.
> Long-term (unlikely this year) I hope to work with glibc team to
> ...
This is admirable, but we are stil...
bluz71 (Dennis B)
05:11 AM Feature #14718: Use jemalloc by default?
> * What will be changed by using jemalloc by default? I understood that jemalloc is great at the present time, but we are already able to use it with `configure --with-jemalloc`.
jemalloc clearly has superior memory fragmentation ch...
bluz71 (Dennis B)
03:57 PM Feature #14688: Net::HTTPResponse#value raises "Net::HTTPServerException" in 4xx response
k0kubun (Takashi Kokubun) wrote:
> I like this. If nobody has an objection, I want to `deprecate_constant` the old one, and would like the same fix for Net::ProtoServerError as well.
I updated the patch. Like this?
unasuke (Yusuke Nakamura)
12:53 PM Bug #14747 (Assigned): uninitialized constant Gem::PathSupport
hsbt (Hiroshi SHIBATA)
12:53 PM Bug #14747: uninitialized constant Gem::PathSupport
It caused by broken csv-1.0.2.gemspec. Can you try to clean installation directory and re-install trunk version? hsbt (Hiroshi SHIBATA)
10:36 AM Bug #14747 (Closed): uninitialized constant Gem::PathSupport
I'm getting the following error repeatedly:
```
/cygdrive/c/Data/ruby/lib/rubygems.rb:393:in `paths': uninitialized constant Gem::PathSupport (N ameError)
make: *** [uncommon.mk:353: do-install-nodoc] Error 1
```
I have set --...
duerst (Martin Dürst)
12:43 PM Feature #14187: `make test` and `make check` to run all test suites
+1
I'd prefer mame's change.
hsbt (Hiroshi SHIBATA)
09:49 AM Revision bd97ca44 (git): node.c: Fix format and example of NODE_OPCALL
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63393 b2dd03c8-39d4-4d8f-98ff-823fe69b080e yui-knk (Kaneko Yuichiro)
08:54 AM Revision ec959fbb (git): variable.c: fix multiple autoload with identical file (again)
We need to ensure autoload declarations pointing to the same
feature (aka "file") can wait on each other to avoid deadlock
situations.
So, reorganize autoload data structures to maintain a
feature => autoload_data_i mapping, and have mo...
Eric Wong
06:34 AM Revision 5afa84b0 (git): parse.y: Fix locations of NODE_NIL in endless ranges.
* parse.y: Fix to start with the end of dots.
e.g. The locations of the NODE_NIL is fixed:
```
1..
```
* Before
```
NODE_NIL (line: 1, location: (1,0)-(1,3))
```
* After
```
NODE_NIL (line: 1, location: (1,3)-...
yui-knk (Kaneko Yuichiro)
05:12 AM Bug #14742: Deadlock when autoloading different constants in the same file from multiple threads
Eric Wong <normalperson@yhbt.net> wrote:
> Sorry for the delay, r63387 should fix it.

Reverted for now. Some problems need fixing but I can't reproduce
on my 32-bit system (and my 64-bit machines have problems).
normalperson (Eric Wong)
01:32 AM Bug #14742: Deadlock when autoloading different constants in the same file from multiple threads
Sorry for the delay, r63387 should fix it. normalperson (Eric Wong)
01:19 AM Bug #14742 (Closed): Deadlock when autoloading different constants in the same file from multiple threads
Applied in changeset trunk|r63387.
----------
variable.c: fix multiple autoload with identical file
We need to ensure autoload declarations pointing to the same
feature (aka "file") can wait on each other to avoid deadlock
situations.
...
normalperson (Eric Wong)
05:10 AM Revision 18b2cee2 (git): revert r63387 and r63389 for now
I can't reproduce the problem on my 32-bit machine, and I have
connectivity problems to my 64-bit systems at the moment.
Will revisit in a few hours hopefully.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63390 b2dd03c8-39d4-4d8f-9...
Eric Wong
04:28 AM Feature #14739: Improve fiber yield/resume performance
Here is the initial code.
https://github.com/kurocha/coroutine
It implements a semantically similar interface to `libcoro`, but it supports native coroutines on win32, win64 and amd64. I should add a `ucontext` wrapper (`makecontex...
ioquatix (Samuel Williams)
04:18 AM Revision 6726038d (git): variable.c: fix autoload object lifetimes and leak
We must not call normal Hash methods inside GC free callback,
either, however identity hash may be used.
[ruby-core:86935] [Bug #14742]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63389 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
04:08 AM Misc #12781: Segmentation fault on macOS Sierra (sqlite3_adapter.rb)
@nobu the last two updates are spam. ioquatix (Samuel Williams)
02:54 AM Revision 23c74845 (git): RSTRING_PTR is not guaranteed to be char*-aligned
We need to ensure aligned memory access by allocating
another memory region.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63388 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
shyouhei (Shyouhei Urabe)
01:19 AM Revision b7413113 (git): variable.c: fix multiple autoload with identical file
We need to ensure autoload declarations pointing to the same
feature (aka "file") can wait on each other to avoid deadlock
situations.
So, reorganize autoload data structures to maintain a
feature => autoload_data_i mapping, and have mo...
Eric Wong
12:23 AM Revision 59a571d1 (git): node.c: Fix typos
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e yui-knk (Kaneko Yuichiro)

05/09/2018

11:34 PM Feature #14739: Improve fiber yield/resume performance
What compiler is used to compile 64-bit Ruby on Windows? ioquatix (Samuel Williams)
02:23 PM Feature #14739: Improve fiber yield/resume performance
Thanks Koichi, for your valuable response and I appreciate your past work in this area.
I started hacking on my own implementation for x64. It is slightly simpler than libcoro.
I have been reviewing x64 ABI, and it should be pretty...
ioquatix (Samuel Williams)
08:06 PM Bug #14741: [].pack('M') quoted printable RFC2045 contains only LF, does not contain CRLF, Messages
> To those who don't read Japanese let me summarize:
Thanks for the summary in english, shyouhei!
shevegen (Robert A. Heiler)
05:40 PM Revision 6e06d644 (git): fix potential memory leaks
* gc.c (rb_alloc_tmp_buffer_with_count): keep the order; allocate
an empty imemo first then xmalloc, to get rid of potential
memory leak when allocation imemo failed.
* parse.y (rb_parser_malloc, rb_parser_calloc, rb_parser_realloc)...
nobu (Nobuyoshi Nakada)
05:19 PM Revision 8789eb02 (git): _mjit_compile_pc_and_sp: re-commit r63360
reverting r63379 (revert of r63360).
The cause of error seems to be r63350. See r63382.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
05:17 PM Revision 5afd479d (git): compile.c: suppress a warning
* compile.c (iseq_peephole_optimize): initialize dniobj first, to
suppress a false warning by gcc 8.1.0.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
05:11 PM Revision 179bc1b8 (git): _mjit_compile_send.erb: revert r63350
Revert "_mjit_compile_send.erb: inline recursive call"
I reverted r63360 in r63379, but the errors were reproductive from
r63350. So I need to revert this.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63382 b2dd03c8-39d4-4d8f-98ff...
k0kubun (Takashi Kokubun)
04:12 PM Revision 29ac19a0 (git): * 2018-05-10
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63381 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
04:12 PM Revision c4a83d29 (git): iseq.h: fix argument order
* iseq.h (ISEQ_ORIGINAL_ISEQ_ALLOC): the order of ruby_xmalloc2
arguments is `count` and `element size`.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
01:42 PM Bug #14746 (Closed): $cppflags が ext/zlib/Makefile に反映されないため(?) Solaris 10 にて ext/zlib のmakeに失敗する
Solaris 10 にて、以下のように configure && make すると、ext/zlibのmakeに失敗します。(r63361 にて確認)
~~~
$ export PATH=/usr/local/64/bin:/usr/local/bin:/usr/ccs/bin:/usr/xpg4/bin:/usr/bin:/bin:/usr/openwin/bin:/usr/dt/bin:/usr/X11/bin:/usr/sbin
$ export ...
ngoto (Naohisa Goto)
01:09 PM Revision 3c4f49c8 (git): _mjit_compile_pc_and_sp.erb: revert r63360
Revert "_mjit_compile_pc_and_sp.erb: make sure no uninitialized"
This triggered some `NoMethodError`s which seem to be caused by the
commit like: https://travis-ci.org/k0kubun/mjit-test/builds/376416934
I'll add tests and fix it later....
k0kubun (Takashi Kokubun)
01:01 PM Bug #14678: Segmentation fault in pg
Hi,
I have the same problem, exactly the same Ruby version and revision. I can supply a crash report or 3 if you require, here is some code that causes it:
~~~ ruby
require 'nenv'
require 'dotenv/load'
require 'sequel'
require ...
yb601 (Iain Barnett)
12:51 PM Revision 34002d12 (git): Use `&.` instead of modifier if
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63378 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
12:50 PM Bug #14745 (Closed): High memory usage when using String#replace with IO.copy_stream
I'm using custom IO-like objects that implement #read as the first argument to IO.copy_stream, and I noticed odd memory behaviour when using String#replace on the output buffer versus String#clear. Here is an example of a "fake IO" objec... janko (Janko Marohnić)
11:44 AM Revision 10a495a0 (git): Use hard-coded file list instead of Dir.glob.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e hsbt (Hiroshi SHIBATA)
11:44 AM Revision 954d0c58 (git): Revert "Use hard-coded vesion number for CI broken."
This reverts commit f5fef0a80d597f40c2d1a8cc8079bf190039fd6f.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63376 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
hsbt (Hiroshi SHIBATA)
09:53 AM Revision abc30f25 (git): align jmp_buf to VALUE
This ec->machine.regs is marked by GC. However jmp_buf is
not defined by us. There are chances of unaligned access.
We should force it VALUE-aligned.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63375 b2dd03c8-39d4-4d8f-98ff-823f...
shyouhei (Shyouhei Urabe)
09:35 AM Revision f5fef0a8 (git): Use hard-coded vesion number for CI broken.
https://rubyci.org/logs/rubyci.s3.amazonaws.com/ubuntu/ruby-trunk/log/20180509T063003Z.fail.html.gz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
hsbt (Hiroshi SHIBATA)
09:09 AM Bug #14744: Refinements modules have a superclass
shugo (Shugo Maeda) wrote:
> The superclass of a refinement module is for implementing super in refined methods.
> ...
I see, thank you for the explanation.
I'm not sure it's good to hide though, as I noticed this interesting case b...
Eregon (Benoit Daloze)
03:57 AM Bug #14744: Refinements modules have a superclass
> So the refinement module (self in the refine Array do block) is a Module, but looking at its ancestors it has Array as a "superclass".
> ...
The superclass of a refinement module is for implementing super in refined methods.
However,...
shugo (Shugo Maeda)
07:46 AM Revision a6108df9 (git): RSTRING_PTR is not guaranteed to be VALUE-aligned
Don't abuse struct RString to hold arbitrary memory region.
Thanks to @mame we now have rb_imemo_alloc_auto_free_pointer
so use it instead.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
shyouhei (Shyouhei Urabe)
07:11 AM Revision e9303e1a (git): Rename imemo_alloc with imemo_tmpbuf
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e mame (Yusuke Endoh)
07:08 AM Revision af069678 (git): gc.c (rb_imemo_alloc_new): split for each purpose
imemo_alloc is used for three purposes: auto-free pointer (alternative
of alloca), alloc_tmp_buffer, and heap allocation for bison.
To make it clear, this change introduces three functions:
rb_imemo_alloc_auto_free_pointer,
rb_imemo_allo...
mame (Yusuke Endoh)
06:55 AM Revision 01d998aa (git): type func(); is different from type func(void);
If a function declarator includes no parameter list, that doesn't
mean the function takes zero parameter. rb_ast_new here does take
zero parameter, so it should be explicitly prototypes as (void).
git-svn-id: svn+ssh://ci.ruby-lang.or...
shyouhei (Shyouhei Urabe)
06:12 AM Revision 58823392 (git): gc.c (rb_imemo_alloc_new): improve the API interface
rb_imemo_alloc_new returns rb_imemo_alloc_t*, but took VALUEs, which is
inconsistent. To make the intention clear, it now takes only a pointer
to the buffer.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63369 b2dd03c8-39d4-4d8f-98...
mame (Yusuke Endoh)
05:42 AM Revision 75d5cf55 (git): RSTRING_PTR is not guaranteed to be VALUE-aligned (retry)
Don't abuse struct RString to hold arbitrary memory region.
Raw pointer should just suffice.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
shyouhei (Shyouhei Urabe)
05:41 AM Bug #14743: Some links broken in README
I can't answer your two questions, but for what it's worth,
aycabta commented on the linked/associated github issue:
> I think that GitHub's UI isn't important for Ruby. And,
> ...
I personally am not hugely active on github, but I ...
shevegen (Robert A. Heiler)
04:45 AM Revision 433a4e66 (git): Fixed file structure for csv.gemspec.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63367 b2dd03c8-39d4-4d8f-98ff-823fe69b080e hsbt (Hiroshi SHIBATA)
04:39 AM Revision 8835dd49 (git): * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63366 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
04:39 AM Revision 74db990e (git): * append newline at EOF.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
04:39 AM Revision 5c1941a9 (git): Merge csv-1.0.2 from upstream.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e hsbt (Hiroshi SHIBATA)
02:42 AM Revision dfc56b8c (git): revert r63362 due to test failure. Sorry!
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63363 b2dd03c8-39d4-4d8f-98ff-823fe69b080e shyouhei (Shyouhei Urabe)
02:36 AM Revision 7079db9e (git): RSTRING_PTR is not guaranteed to be VALUE-aligned
Don't abuse struct RString to hold arbitrary memory region.
use rb_alloc_tmp_buffer for that purpose.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63362 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
shyouhei (Shyouhei Urabe)

05/08/2018

08:42 PM Bug #14744: Refinements modules have a superclass
> I thought modules can never have a superclass in Ruby.
This may be a bug, I think; other modules do not seem to have
anything but themselves if you call .ancestors() on them either.
I am not absolutely certain, but perhaps eithe...
shevegen (Robert A. Heiler)
02:26 PM Bug #14744 (Closed): Refinements modules have a superclass
~~~
$ ruby -e 'module M; refine Array do; p self; p self.class; p ancestors; end; end'
#<refinement:Array@M>
Module
[#<refinement:Array@M>, Array, Enumerable, Object, Kernel, BasicObject]
~~~
So the refinement module (self in the...
Eregon (Benoit Daloze)
03:06 PM Revision 6061071f (git): * 2018-05-09
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63361 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
03:06 PM Revision bdb42689 (git): _mjit_compile_pc_and_sp.erb: make sure no uninitialized
area on VM stack to prevent SEGV on GC. GC may mark every value in VM
stack.
Unfortunately I couldn't write a test for it... So let me explain the
situation.
SEGV example:
https://gist.github.com/k0kubun/c7cea2b5761ffdff29ec79ea1a8f7f9...
k0kubun (Takashi Kokubun)
02:19 PM Bug #14743 (Closed): Some links broken in README
[Some links broken in README](https://github.com/ruby/docs.ruby-lang.org/issues/56) is original issue.
And I tried to fix links, but some problems occur.
1. Current README.md's link is `[win32/README.win32](win32/README.win32)` and i...
znz (Kazuhiro NISHIYAMA)
12:48 PM Bug #14741: [].pack('M') quoted printable RFC2045 contains only LF, does not contain CRLF, Messages
shyouhei (Shyouhei Urabe) wrote:
> See also issue #14352. We have decided to reject this change. The behaviour is now documented.
> ...
Understood, thanks shyouhei! Love how helpful the Ruby community is.
uhrohraggy (Michael Moore)
09:29 AM Bug #14741 (Closed): [].pack('M') quoted printable RFC2045 contains only LF, does not contain CRLF, Messages
matz (Yukihiro Matsumoto)
02:05 AM Bug #14741: [].pack('M') quoted printable RFC2045 contains only LF, does not contain CRLF, Messages
See also issue #14352. We have decided to reject this change. The behaviour is now documented.
To those who don't read Japanese let me summarize: Ruby's pack behabiour was from Perl's and Perl also don't emit CRLF. This is suppose...
shyouhei (Shyouhei Urabe)
01:45 AM Bug #14741 (Closed): [].pack('M') quoted printable RFC2045 contains only LF, does not contain CRLF, Messages
Important
You should contain at least the following items.
Reproduce process
your ruby version (ruby -v)
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]
~~~ ruby
rails c
['aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
uhrohraggy (Michael Moore)
10:58 AM Revision b755fe88 (git): vm_eval.c: eval_string_protect wrapper
* vm_eval.c (eval_string_protect): cast data instead of the
function pointer, to suppress "cast between incompatible
function types" warning by gcc 8.1.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63359 b2dd03c8-39d4-4d8f-98ff...
nobu (Nobuyoshi Nakada)
10:41 AM Feature #14739: Improve fiber yield/resume performance
ioquatix (Samuel Williams) wrote:
> Thanks for your feedback. When I made this issue, I could only select "Bug", "Feature" or "Misc". Should I have selected "Misc" instead?
"Feature" should be okay.
duerst (Martin Dürst)
07:43 AM Feature #14739: Improve fiber yield/resume performance
Sorry I can't read all of your comments because it too long :p
As you quoted first,
> Here is a nice summary of what was done for RethinkDB: https://rethinkdb.com/blog/making-coroutines-fast/
In this article:
> ...
It shows tha...
ko1 (Koichi Sasada)
04:33 AM Feature #14739: Improve fiber yield/resume performance
It's been a while since I played around with libcoro.
I was evaluating it's performance in a C++ program.
I found that it's not thread safe due to global variables. I change them to thread local to fix the issue, it works well.
...
ioquatix (Samuel Williams)
09:09 AM Revision 841d5ae8 (git): rb_ary_dig, rb_hash_dig: nobody is using them outside.
mark them static.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63358 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
shyouhei (Shyouhei Urabe)
07:01 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
I hacked in `EPOLLONESHOT` semantics into my runloop. IT was about the same performance. But when I leveraged it correctly (calling `EPOLL_CTL_ADD` when accepting IO once, and `EPOLL_CTL_DEL` when closing IO, then `EPOLL_CTL_MOD` when wa... ioquatix (Samuel Williams)
06:40 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
Sorry, one more question.
I'm interested in the peformance of EPOLLONESHOT.
Is it correct that `EPOLL_CTL_(ADD/DEL)` create more contention in the kernel locks than EPOLL_CTL_MOD? So, we should prefer `CTL_MOD` because it should be...
ioquatix (Samuel Williams)
05:25 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
I studied that Mio paper.
It was very interesting.
I made a similar server in C++ using my async toolkit (the version for C++). It handled almost 400k recv/send IOs on a 4 core CPU. It was a similar implementation to Mio, but it us...
ioquatix (Samuel Williams)
06:53 AM Revision 76daf51c (git): fix type mismatch.
* cont.c (fiber_context_create): `func` should accept variable args.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63357 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
ko1 (Koichi Sasada)
05:24 AM Misc #14632: [ANN] git.ruby-lang.org
>If you haven't already, enable repack.writeBitmaps (and repack)
Thanks Eric. I invoked repack and set `repack.writeBitmaps` to enable on git.r-l.o.
hsbt (Hiroshi SHIBATA)
03:42 AM Bug #14742: Deadlock when autoloading different constants in the same file from multiple threads
Yes, this is an old bug and not caused by my changes, I guess.
It requires reworking some internal data structures in
variable.c to provide feature mapping to autoload_data_i
so different autoloads referring to the same file (aka "fe...
normalperson (Eric Wong)
03:12 AM Bug #14742: Deadlock when autoloading different constants in the same file from multiple threads
Investigating normalperson (Eric Wong)
02:16 AM Bug #14742 (Closed): Deadlock when autoloading different constants in the same file from multiple threads
The following example deadlocks consistently:
~~~ ruby
# a.rb
autoload :Foo, __dir__ + "/b"
autoload :Bar, __dir__ + "/b"
t1 = Thread.new { Foo }
t2 = Thread.new { Bar }
t1.join
t2.join
# b.rb
module Foo; end
module Ba...
eugeneius (Eugene Kenny)
03:34 AM Feature #14718: Use jemalloc by default?
I'm neutral. I have two questions.
* What will be changed by using jemalloc by default? I understood that jemalloc is great at the present time, but we are already able to use it with `configure --with-jemalloc`.
* How do we implem...
mame (Yusuke Endoh)
02:27 AM Feature #14718: Use jemalloc by default?
Hi, I'm a jemalloc dev (sorry I didn't see this earlier, I try to keep an eye out for mentions on bug trackers). I don't have any insights about our performance vs. glibc's on Ruby workloads, but as far as correctness goes, I don't think... davidtgoldblatt (David Goldblatt)
02:07 AM Revision e75d8e0c (git): Merge rdoc-6.0.4 from upstream.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e hsbt (Hiroshi SHIBATA)
01:27 AM Bug #10892: Deadlock in autoload
The simpler repro script runs successfully from 2.3.0 onwards, and `git bisect` between 2.2.0 and 2.3.0 shows that r59221 (from #11384) fixed it. eugeneius (Eugene Kenny)
12:01 AM Revision f5f218f7 (git): cont.c: host out context setup
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63355 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
12:00 AM Revision 3dd6c0d3 (git): Remove unreachable break
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63354 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
12:00 AM Revision e8ec23b1 (git): Modify spaces [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63353 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)

05/07/2018

11:52 PM Revision d7a9f591 (git): cont.c: wrapper function
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63352 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
11:14 PM Revision cd36bea5 (git): cont.c: refined error message
* cont.c (fiber_machine_stack_alloc): refined the error message on
failure at setting a guard page.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63351 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
10:05 PM Bug #14733 (Closed): Error on reading log4r
It works fine now and I don't know what happened. Thanks anyway.
Cheers!
cardillos (cherry ard)
04:16 PM Revision 6c62356e (git): _mjit_compile_send.erb: inline recursive call
mjit_compile.c: propagate funcname to compile_insn
test_jit.rb: add test covering this behavior
* Benchmark
```
require 'benchmark_driver'
Benchmark.driver(runner: :time, repeat_count: 4) do |x|
x.prelude %{
def fib(x)
re...
k0kubun (Takashi Kokubun)
03:15 PM Feature #14723: [WIP] sleepy GC
normalperson (Eric Wong) wrote:
> So multithreaded? Do you have any info on the amount of CPU
> ...
Highly multithreaded. Normally the CPU usage stays at nearly 100%. So I agree, this is not a great benchmark to show the benefit. The...
noahgibbs (Noah Gibbs)
09:52 AM Feature #14723: [WIP] sleepy GC
Koichi Sasada <ko1@atdot.net> wrote:
> On 2018/05/05 6:32, Eric Wong wrote:
> >Also, I think we need to start GC if no sweeping/marking is
> >inprogress.
>
> This is a problem we need to discuss.
>
> Good: It can increase GC cl...
normalperson (Eric Wong)
08:12 AM Feature #14723: [WIP] sleepy GC
On 2018/05/05 6:32, Eric Wong wrote:
> Also, I think we need to start GC if no sweeping/marking is
> inprogress.

This is a problem we need to discuss.

Good: It can increase GC cleaning without additional overhead.

Bad1: Howev...
ko1 (Koichi Sasada)
03:08 PM Revision a4a66510 (git): Remove needless require [ci skip]
already require on top
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63349 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
znz (Kazuhiro NISHIYAMA)
03:07 PM Revision 1a38d5ee (git): * 2018-05-08
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
03:07 PM Revision 59c5d0b9 (git): Use `&.` instead of modifier if and remove needless closed?
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63347 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
02:44 PM Revision 58357237 (git): Fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63346 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
11:39 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
> Can you please summarize and perhaps link to code they talk about?
The simplest summary I can give is that OS schedulers don't know what threads to wake up for optimal IO latency. So, Google implemented an API for cooperatively sche...
ioquatix (Samuel Williams)
09:58 AM Feature #14187: `make test` and `make check` to run all test suites
Looks good to me, +1.
I don't know who uses just `make test` currently.
But if it's to check changes to CRuby then I think that's too little, and the proposal seems better.
> spec/: Another main test suite (or spec?) once called r...
Eregon (Benoit Daloze)
06:46 AM Feature #14187: `make test` and `make check` to run all test suites
Casual users really needs to run test-all and rubyspec?
Those tests often fail on some environment. (see also https://rubyci.org/)
It will be false positive for casual users.
Anyway I agree with adding also rubypec to `make check`.
naruse (Yui NARUSE)
06:36 AM Feature #14187: `make test` and `make check` to run all test suites
Current test suites:
* `bootstraptest/`: Some trivial tests to verify the VM; each test is executed under a new Ruby process because the failure easily leads to a critical error such as a segfault.
* `KNOWNBUGS.rb`: Some test to keep...
mame (Yusuke Endoh)
08:47 AM Bug #14740 (Closed): You may have encountered a bug in the Ruby interpreter or extension libraries. Bug reports are welcome.
re_ext/kernel_require.rb:20:in `require_with_bootsnap_lfi'
/home/pi/.rvm/gems/ruby-2.4.1/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register'
/home/pi/.rvm/gems/ruby-2.4.1/gems/bootsnap-1.3.0/lib/b...
KIlokura (Dante Abreu)
06:59 AM Revision 04aba59c (git): * 2018-05-07
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
06:59 AM Revision 8da1219d (git): cont.c: machine stack cache condition
* cont.c (fiber_store, rb_fiber_terminate): separate the condition
to cache machine stacks, which is not directly restricted to the
platforms, and may be used on Windows too in the future.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby...
nobu (Nobuyoshi Nakada)
06:39 AM Bug #14726: wrong message when superclass is not a Class
duerst (Martin Dürst) wrote:
> mame (Yusuke Endoh) wrote:
> ...
具体例は `TypeError (superclass must be a Class (given a(n) C1))` になると思います。(カッコが 3 重でくどいですね)
mame (Yusuke Endoh)
06:29 AM Bug #14726: wrong message when superclass is not a Class
mame (Yusuke Endoh) wrote:
> くだらないコメントです。英語がわかりませんが、"given a XXX" の語順は変な気がします。"a XXX given" でいいような?
念のためぐたいれいをみたいですが、"given a(n) XXX" は大丈夫かもしれません。"was XXX" はもうちょっと短くて簡単なのかもしれません。
duerst (Martin Dürst)
06:03 AM Bug #14726: wrong message when superclass is not a Class
くだらないコメントです。英語がわかりませんが、"given a XXX" の語順は変な気がします。"a XXX given" でいいような? mame (Yusuke Endoh)

05/06/2018

12:17 PM Feature #14739: Improve fiber yield/resume performance
I tested async-http, a web server, it has a basic performance spec using `wrk` as the client.
I ran it several times and report the best result of each below. It's difficult to make a judgement. I'd like to say performance was improve...
ioquatix (Samuel Williams)
11:17 AM Feature #14739: Improve fiber yield/resume performance
Compare async-dns with bind9 for the same workload:
```
# Without libcoro-fiber
user system total real
Async::DNS::Server 0.000345 0.000029 0.000374 ( 0.000381...
ioquatix (Samuel Williams)
11:06 AM Feature #14739: Improve fiber yield/resume performance
I test in some real world applications today. The first is async, which has a performance test for read context switch overhead: https://github.com/socketry/async/blob/master/spec/async/performance_spec.rb
This isn't direct comparison...
ioquatix (Samuel Williams)
10:09 AM Feature #14739: Improve fiber yield/resume performance
Thanks for your feedback. When I made this issue, I could only select "Bug", "Feature" or "Misc". Should I have selected "Misc" instead? ioquatix (Samuel Williams)
09:48 AM Feature #14739: Improve fiber yield/resume performance
I'm neutral. This is a feature request but the "feature" being discussed is the speed of execution. It is by nature different from each other. If this improvement could be truly transparent (and seems currently it is), I think there ar... shyouhei (Shyouhei Urabe)
09:53 AM Revision fb2acec9 (git): * 2018-05-06
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
09:53 AM Revision 2ad7fb6d (git): optparse: Suppress warnings
Ruby warns "instance variable `@version` not initialized" for optparse when it receives `--version` option.
`test.rb`
```ruby
require 'optparse'
Version = '1'
OptionParser.new.parse(ARGV)
```
```
$ ruby -w test.rb --version
/home/pock...
nobu (Nobuyoshi Nakada)
03:33 AM Feature #14723: [WIP] sleepy GC
the.codefolio.guy@gmail.com wrote:
> For Rails Ruby Bench (large concurrent Rails benchmark based
> on Discourse),

So multithreaded? Do you have any info on the amount of CPU
time was being used without these changes?

If the C...
normalperson (Eric Wong)
03:04 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
samuel@oriontransfer.net wrote:
> I've been thinking about these issues for the past few days, and one thing I found was this video https://www.youtube.com/watch?v=KXuZi9aeGTw#t=519 where they specifically talk about the latencies incu...
normalperson (Eric Wong)

05/05/2018

10:21 PM Feature #14739: Improve fiber yield/resume performance
The windows code path for fibers is relatively trivial both in libcoro and cont.c, so I wouldn’t be too concerned about windows support. It shouldn’t be much effort to make it work well in libcoro or keep existing windows code path.
T...
ioquatix (Samuel Williams)
08:28 PM Feature #14739: Improve fiber yield/resume performance
> However, it wouldn't be silly to update libcoro to make it
> ...
I can't speak for matz and the ruby core team, but in the past
there were (feature-)proposals that were rejected since they
were only specific for e. g. Linux - that ...
shevegen (Robert A. Heiler)
12:55 PM Feature #14739: Improve fiber yield/resume performance
I was reading https://sourceware.org/ml/libc-help/2016-01/msg00008.html and noticed the following regarding `*context` functions:
>> these functions are deprecated/dead -- they no longer exist in the latest
> ...
Of course they still...
ioquatix (Samuel Williams)
12:30 PM Feature #14739: Improve fiber yield/resume performance
I updated my branch with a few changes.
I'm sorry I didn't rebase on your branch.
I think once we decide if this is a good idea or not, we can decide how best to integrate it with Ruby. I just wanted to make a proof of concept to s...
ioquatix (Samuel Williams)
12:17 PM Feature #14739: Improve fiber yield/resume performance
Okay, I found out what happened.
On macOS, you need to set
```
#include "libcoro/coro.c"
#define FIBER_USE_NATIVE 1
```
Otherwise it won't take the optimal code path. My apologies, I think as I was playing with the code I mad...
ioquatix (Samuel Williams)
12:03 PM Feature #14739: Improve fiber yield/resume performance
Yes, that supports my own test as well.
```
koyoko% ruby --version
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]
koyoko% ruby ./fiber_benchmark.rb 10000 1000
setup time for 10000 fibers: 0.094309
execution time for 1...
ioquatix (Samuel Williams)
12:00 PM Feature #14739: Improve fiber yield/resume performance
ioquatix (Samuel Williams) wrote:
> > Also, asm needed to be replaced with `__asm__` to compile with Apple clang
> ...
```
$ clang --version
Apple LLVM version 8.0.0 (clang-800.0.42.1)
Target: x86_64-apple-darwin15.6.0
Thread model...
nobu (Nobuyoshi Nakada)
10:48 AM Feature #14739: Improve fiber yield/resume performance
I am trying out your branch, and will report back. 3% is within the margin for error so it sounds like nothing changed for some reason. There will be some explanation. ioquatix (Samuel Williams)
10:18 AM Feature #14739: Improve fiber yield/resume performance
I've compiled this on both LLVM and GCC just fine.
I've never tried compiling it on Windows but it should work. It might require some work.
> Also, asm needed to be replaced with `__asm__` to compile with Apple clang
I didn't ha...
ioquatix (Samuel Williams)
10:14 AM Feature #14739: Improve fiber yield/resume performance
You can see the supported methods here.
https://github.com/ioquatix/ruby/blob/4a9c12d94aae1cf3a52ca5f026432cd03e9817bc/libcoro/coro.h#L99-L164
For the proof of concept, I forced it to use the ASM method, which supports 32-bit and 6...
ioquatix (Samuel Williams)
10:13 AM Feature #14739: Improve fiber yield/resume performance
And seems it requires gcc (variants) and non-Windows.
coro.c can't compile with Visual C nor mingw gcc.
Also, `asm` needed to be replaced with `__asm__` to compile with Apple clang, and it is 3% faster.
```
$ ruby fiber_benchmark.r...
nobu (Nobuyoshi Nakada)
08:41 AM Feature #14739: Improve fiber yield/resume performance
I wonder what architectures libcoro supports? It seems it supports x86 a probably some ARM, but what about s390x and ppc64? vo.x (Vit Ondruch)
03:56 AM Feature #14739: Improve fiber yield/resume performance
I don't know how to run a full benchmark of Ruby. Can someone help me with that? It would be interesting to get a more general idea of the performance. ioquatix (Samuel Williams)
03:54 AM Feature #14739: Improve fiber yield/resume performance
```
# Without libcoro (macOS)
^_^ > ./build/bin/ruby ./fiber_benchmark.rb 10000 1000
setup time for 10000 fibers: 0.298039
execution time for 1000 messages: 35.248941
# With libcoro (macOS)
^_^ > ./build/bin/ruby ./fiber_b...
ioquatix (Samuel Williams)
03:38 AM Feature #14739: Improve fiber yield/resume performance
```
# Without libcoro
koyoko% ./build/bin/ruby ./fiber_benchmark.rb 10000 1000
setup time for 10000 fibers: 0.099961
execution time for 1000 messages: 19.505909
# With libcoro
koyoko% ./build/bin/ruby ./fiber_bench...
ioquatix (Samuel Williams)
02:50 AM Feature #14739: Improve fiber yield/resume performance
> Not sure how fast libcoro is, though.
In my experience, the `libcoro` ASM implementation is the fastest implementation I found.
It's not much slower than a (normal) C function call.
ioquatix (Samuel Williams)
02:48 AM Feature #14739: Improve fiber yield/resume performance
Here is the code https://github.com/ioquatix/ruby/tree/fiber-libcoro
UPDATE: I provided some benchmark details, but it turns out they were wrong. I've retracted it until I can provide correct information to prevent any confusion.
ioquatix (Samuel Williams)
01:25 AM Feature #14739: Improve fiber yield/resume performance
ioquatix (Samuel Williams) wrote:
> Does Ruby currently reuse stacks?
Yes.
Not sure how fast libcoro is, though.
shyouhei (Shyouhei Urabe)
12:59 AM Feature #14739 (Closed): Improve fiber yield/resume performance
I am interested to improve Fiber yield/resume performance.
I've used this library before: http://software.schmorp.de/pkg/libcoro.html and handled millions of HTTP requests using it.
I'd suggest to use that library.
As this is us...
ioquatix (Samuel Williams)
04:25 PM Bug #14539: Duplicate range in character class warning
shevegen (Robert A. Heiler) wrote:
> Agreed. Your code did not use more than one \X so the warning is
> ...
This warning now shows up on ActiveSupport: activesupport/lib/active_support/core_ext/string/filters.rb:109: warning: character...
vipulnsward (Vipul Amler)
02:53 PM Feature #14723: [WIP] sleepy GC
For Rails Ruby Bench (large concurrent Rails benchmark based on Discourse), measuring sleepy-gc-v3 branch versus the previous commit, the difference isn't measurable. No detectable speedup. The sleepy-gc batch of runs has a higher varian... noahgibbs (Noah Gibbs)
07:02 AM Feature #14723: [WIP] sleepy GC
I updated pg to [use rb_wait_for_single_fd()](https://github.com/ged/ruby-pg/commit/3dfd36bf08ba49cf87410ae73edb2dabbf715a2b) instead of rb_thread_fd_select(). The change is already on the master branch: https://github.com/ged/ruby-pg . ... larskanis (Lars Kanis)
01:06 PM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
I've been thinking about these issues for the past few days, and one thing I found was this video https://www.youtube.com/watch?v=KXuZi9aeGTw#t=519 where they specifically talk about the latencies incurred by the threading model you prop... ioquatix (Samuel Williams)
11:15 AM Feature #14737 (Assigned): Split default gems into separate directory structure
hsbt (Hiroshi SHIBATA)
08:23 AM Feature #14737: Split default gems into separate directory structure
> BTW2 I could fill this against RubyGems, but the default gems
> ...
It may be a chicken-egg problem, e. g. where to start.
I think it may take a little while altogether; bundler integration;
using gems for distributed ruby add-ons...
shevegen (Robert A. Heiler)
10:53 AM Feature #14683: IRB with Ripper
I discussed this issue with @hsbt, @matsuda, and @matz .
In the present day, IRB needs compatibility completely.
- Bundler generates template files of new RubyGems with example console as "bin/console" for development. It uses IRB....
aycabta (aycabta .)
10:45 AM Bug #14733 (Rejected): Error on reading log4r
I tried to reproduce the issue because I have Vagrant 2.0.4 on Windows 10 1709 by chance. I cannot reproduce though. `vagrant ssh` succeed. Your screenshot shows that ruby runs in the debian box but vanilla wheezy box does not include ru... gotoken (Kentaro Goto)
03:12 AM Revision d32763ec (git): securerandom.rb: [DOC] require in examples
* lib/securerandom.rb: added `require 'securerandom'` to each
example, to state these methods are defined in this library and
require it explicitly. [ruby-core:85933] [Bug #14576]
[ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/r...
nobu (Nobuyoshi Nakada)
02:51 AM Feature #14736: Thread selector for flexible cooperative fiber based concurrency
As part of this, I've started working on https://bugs.ruby-lang.org/issues/14739 ioquatix (Samuel Williams)
02:46 AM Bug #14738: Failed to load_from_binary on 2.5.1
`"extra_data"` is not necessary. nobu (Nobuyoshi Nakada)
02:44 AM Bug #14738 (Closed): Failed to load_from_binary on 2.5.1
nobu (Nobuyoshi Nakada)
 

Also available in: Atom