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... -
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.
-
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... -
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] -
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
-
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 ... -
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 -
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... -
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 ... -
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... -
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... -
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.
... -
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... -
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.
-
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 ... -
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... -
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... -
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... -
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... -
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... -
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)
... - 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
-
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:... -
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` ? -
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... -
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... -
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 - 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
-
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
-
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! -
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]` ! -
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" =... -
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... -
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... -
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... -
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... -
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... -
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 :-)
-
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 -
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
-
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...
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... -
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... -
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... -
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.
> ... -
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... -
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... -
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... -
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... -
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? -
12:53 PM Bug #14747 (Assigned): uninitialized constant Gem::PathSupport
-
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?
-
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 --... -
12:43 PM Feature #14187: `make test` and `make check` to run all test suites
- +1
I'd prefer mame's change. -
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
- 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... -
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)-... -
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). -
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.
-
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.
... - 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... -
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... - 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 -
04:08 AM Misc #12781: Segmentation fault on macOS Sierra (sqlite3_adapter.rb)
- @nobu the last two updates are spam.
-
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 - 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... -
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
05/09/2018
-
11:34 PM Feature #14739: Improve fiber yield/resume performance
- What compiler is used to compile 64-bit Ruby on Windows?
-
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... -
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! -
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)... -
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 -
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 -
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... - 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
-
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 -
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 ... -
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.... -
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 ... -
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
-
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...
-
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
-
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 -
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... -
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 -
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... -
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,... -
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 -
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
-
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... -
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... -
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... -
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 -
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 ... -
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
- 04:39 AM Revision 8835dd49 (git): * properties.
- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63366 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
- 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
-
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
-
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
-
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
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... -
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... - 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
-
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... -
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... -
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. -
09:29 AM Bug #14741 (Closed): [].pack('M') quoted printable RFC2045 contains only LF, does not contain CRLF, Messages
-
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... -
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... -
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... -
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. -
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... -
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.
... -
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 -
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...
-
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... -
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... -
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 -
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. -
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... -
03:12 AM Bug #14742: Deadlock when autoloading different constants in the same file from multiple threads
- Investigating
-
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... -
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... -
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...
-
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
-
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.
-
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
-
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
-
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
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
-
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 -
10:05 PM Bug #14733 (Closed): Error on reading log4r
- It works fine now and I don't know what happened. Thanks anyway.
Cheers! -
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... -
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... -
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... -
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... -
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 - 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
-
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
-
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
-
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... -
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... -
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`. -
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... -
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... - 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
-
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... -
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 重でくどいですね) -
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" はもうちょっと短くて簡単なのかもしれません。 -
06:03 AM Bug #14726: wrong message when superclass is not a Class
- くだらないコメントです。英語がわかりませんが、"given a XXX" の語順は変な気がします。"a XXX given" でいいような?
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... -
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... -
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... -
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?
-
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...
- 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
-
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... -
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... -
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...
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... -
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 ... -
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... -
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... -
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... -
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... -
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... -
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.
-
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... -
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... -
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... -
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?
-
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.
-
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... -
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... -
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. -
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. -
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.
-
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... -
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... -
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...
-
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 . ...
-
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...
-
11:15 AM Feature #14737 (Assigned): Split default gems into separate directory structure
-
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... -
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.... -
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...
-
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... -
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
-
02:46 AM Bug #14738: Failed to load_from_binary on 2.5.1
- `"extra_data"` is not necessary.
-
02:44 AM Bug #14738 (Closed): Failed to load_from_binary on 2.5.1