Project

General

Profile

Activity

From 04/30/2018 to 05/06/2018

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 tim...
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
...
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 switc... 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 selec... 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 ... 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...
nobu (Nobuyoshi Nakada)
03:33 AM Feature #14723: [WIP] sleepy GC
[email protected] wrote:
> For Rails Ruby Bench (large concurrent Rails benchmark based
> on Discourse),...
normalperson (Eric Wong)
03:04 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
[email protected] wrote:
> I've been thinking about these issues for the past few days, and one thing I foun...
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 abo... 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
> compile without problems on all supported platforms.
...
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... 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 thi...
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_NA...
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...
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
> ...
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 change... 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...
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/4a9c12d94aae1cf3a52ca5f026432cd03e98...
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`...
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 ... 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 mor... 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...
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: ...
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 implemen...
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, bu...
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, thoug...
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....
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
> incorrect a...
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 ... 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/3dfd36bf08ba49cf87410ae73edb2dabb... 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... 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
> are Ruby stuff IMO, so I think this is appropriate...
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.
...
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. ... 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 l...
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)

05/04/2018

09:32 PM Feature #14723: [WIP] sleepy GC
Eric Wong <[email protected]> wrote:
> Marking is best done when the stack is shallow (where unicorn
> calls I...
normalperson (Eric Wong)
04:21 PM Bug #14738 (Closed): Failed to load_from_binary on 2.5.1
```
% cat /tmp/1226.rb
iseq = RubyVM::InstructionSequence.compile('num = 1 + 2')
binary = iseq.to_binary("extra_d...
znz (Kazuhiro NISHIYAMA)
03:20 PM Revision a99d017d (git): forgot to add INT2FIX (sorry!)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63340 b2dd03c8-39d4-4d8f-98ff-823fe69b080e shyouhei (Shyouhei Urabe)
03:18 PM Revision 1096be5a (git): passing rb_thread_sleep to rb_protect is IMHO dangerous
rb_thread_sleep's argument is int, while rb_protect expects the function
to take VALUE. Depending on ABI this could b...
shyouhei (Shyouhei Urabe)
03:03 PM Revision 7ba44caa (git): * 2018-05-05
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63338 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
03:03 PM Revision b121cfde (git): nobody is using the return value of rb_io_fptr_finalize
However this function is listed in ruby/io.h. We cannot but
define a new, void-returning variant to use instead.
g...
shyouhei (Shyouhei Urabe)
01:30 PM Revision b4d93545 (git): Use `&.` instead of modifier if
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
01:09 PM Misc #14735: thread-safe operations in a hash could be documented
Thanks, Eric. So, if I got this right, even though MRI tries to make it safe for common key types (it's a string in m... rosenfeld (Rodrigo Rosenfeld Rosas)
12:22 AM Misc #14735: thread-safe operations in a hash could be documented
[email protected] wrote:
> result = {} # assume this is thread-safe in MRI for now
> data_types.map do |data_type...
normalperson (Eric Wong)
10:38 AM Feature #14737 (Assigned): Split default gems into separate directory structure
On Fedora, we are using operating_system.rb [1], [2] to setup various RubyGems paths. Unfortunately, if we change Gem... vo.x (Vit Ondruch)
10:29 AM Bug #14728: OptionParser takes other options as argument values
In common, an argument is determined by the preceding option, consider `grep` command's `-e` option.
If you want to ...
nobu (Nobuyoshi Nakada)
06:12 AM Bug #14729 (Closed): Float("long_invalid_string") fails to throw an exception
Applied in changeset trunk|r63334.
----------
object.c: raise on long invalid float string
* object.c (rb_cstr_to_d...
nobu (Nobuyoshi Nakada)
06:12 AM Revision 306e1e81 (git): * 2018-05-04
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63335 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
06:12 AM Revision 955849c1 (git): object.c: raise on long invalid float string
* object.c (rb_cstr_to_dbl_raise): check long invalid float
string more precisely when truncating insignificant par...
nobu (Nobuyoshi Nakada)
03:12 AM Feature #14736 (Closed): Thread selector for flexible cooperative fiber based concurrency
Ruby concurrency can be greatly enhanced by concurrent, deterministic IO.
Fibers have been shown many times to be ...
ioquatix (Samuel Williams)
12:59 AM Bug #14734 (Third Party's Issue): trunk + gcc-8 + mac SEGV
OK, could reproduce without ruby. Filed an issue in GCC bugzilla.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85644
shyouhei (Shyouhei Urabe)

05/03/2018

10:09 PM Bug #14733: Error on reading log4r
Thanks for the update. However I checked the gem directory and I can find log4r in it.
It just weird I cant run the ...
cardillos (cherry ard)
03:55 PM Bug #14733: Error on reading log4r
The error says missing log4r.
I think this is not related to ruby core - the tracker here is about
ruby itself, n...
shevegen (Robert A. Heiler)
06:52 AM Bug #14733 (Closed): Error on reading log4r
Hello all,
I used Vagrant on Windows 10 which is using Ruby.
Here is the error on the log
!verror.png!
Any i...
cardillos (cherry ard)
09:00 PM Bug #14464: MJIT & MinGW / gcc 7.3.0 seemed ok as of 62337, fail or skip after
k0kubun,
Thanks for looking into this. The motherboard on my home desktop stopped working, so I've been without a...
MSP-Greg (Greg L)
06:55 PM Misc #14735 (Open): thread-safe operations in a hash could be documented
Hi, sometimes I find myself fetching data from the database through multiple queries concurrently. For example, suppo... rosenfeld (Rodrigo Rosenfeld Rosas)
06:01 PM Bug #14139: [BUG] Segmentation fault
Thanks for sharing! https://giaonhanquocte247.com/order-hang-nhat/ giaonhanquocte247 (giaonhan quocte)
02:09 PM Bug #14734 (Third Party's Issue): trunk + gcc-8 + mac SEGV
- ruby 2.6.0dev (2018-05-03 trunk 63333) [x86_64-darwin15]
- gcc-8 (Homebrew GCC 8.1.0) 8.1.0
- Mac OS X 10.11.6 Bu...
shyouhei (Shyouhei Urabe)
11:27 AM Feature #14724: chains of inequalities
After reading comments above I believe even more strongly that feature like this does not belong in language which al... graywolf (Gray Wolf)
09:19 AM Feature #14724: chains of inequalities
A Eregon (Benoit Daloze) wrote:
> > 1. if a non-boolean is returned, treats the rest of chain in the compatible mann...
gotoken (Kentaro Goto)
08:47 AM Revision 6dd4657f (git): _mjit_compile_send.erb: retry inlining attr_reader
This reverts r63249 (revert r63212) and fixes a bug in it. The test to
prevent the bug is added as well.
vm_insnhelp...
k0kubun (Takashi Kokubun)
07:13 AM Feature #14723: [WIP] sleepy GC
[email protected] wrote:
> perf change seems a tiny bit more noticable.

Thanks for benchmarking! Disappoin...
normalperson (Eric Wong)
06:07 AM Feature #14723: [WIP] sleepy GC
I found one place where we were not using async_exec so I changed it to use async_exec... this is revised numbers:
...
sam.saffron (Sam Saffron)
05:43 AM Feature #14723: [WIP] sleepy GC
From my testing on Discourse bench ... the difference is pretty much not that measurable
Before patch
```
Unic...
sam.saffron (Sam Saffron)
03:17 AM Feature #14723: [WIP] sleepy GC
Ah, never mind. It looks like the Ruby I tested doesn't have the sleepy GC changes! So it's slower, but that's not th... noahgibbs (Noah Gibbs)
03:12 AM Feature #14723: [WIP] sleepy GC
I checked today's head-of-master with Rails Ruby Bench. The first run suggests a noticeable drop in performance betwe... noahgibbs (Noah Gibbs)
07:09 AM Revision d9d84688 (git): mjit_compile.c: skip generating unnecessary goto
after return or longjmp. This is mainly for skipping the check of stack
size in such cases, which shouldn't be checke...
k0kubun (Takashi Kokubun)
05:44 AM Bug #14714: Ruby 2.5.1 Segmentation Fault in GC
I tried putting GC.stress = true in the rails_helper file, and after 4.5 hours, no test has been completed, so this i... obromios (Chris Drane)
03:08 AM Revision cdef13d7 (git): mjit_compile.c: verify stack size agreement
between branches.
mjit_compile.inc.erb: move the compiled_for_pos reference to
mjit_compile.c
git-svn-id: svn+ssh:/...
k0kubun (Takashi Kokubun)
01:33 AM Bug #14732: CGI.unescape returns different instance between Ruby 2.3 and 2.4
[email protected] wrote:
> normalperson (Eric Wong) wrote:
> > > > https://bugs.ruby-lang.org/issues/14732
> >
> > ...
normalperson (Eric Wong)
01:25 AM Bug #14732 (Open): CGI.unescape returns different instance between Ruby 2.3 and 2.4
I'm actually not sure what the correct behavior should be...
normalperson (Eric Wong)
12:22 AM Bug #14732: CGI.unescape returns different instance between Ruby 2.3 and 2.4
normalperson (Eric Wong) wrote:
> > > https://bugs.ruby-lang.org/issues/14732
>
> r63328 This also affects 2.3...
jnchito (Junichi Ito)
01:24 AM Revision 0e32c7c1 (git): Revert "ext/cgi/escape: preserve String subclass in result"
This reverts commit 6afea14043b0c0e603f26c89ae0d043f65852668 r63328
I misread the original bug report and got results...
Eric Wong
12:52 AM Revision 9b6dec6c (git): mjit_compile.inc.erb: verify stack consistency
on JIT compilation. r63092 was risky without this check.
mjit_compile.c: update comment about stack consistency chec...
k0kubun (Takashi Kokubun)

05/02/2018

11:52 PM Bug #14713: <internal:prelude>:132:in `__write_nonblock': Protocol wrong type for socket (Errno::EPROTOTYPE)
Thanks for solving this problem. Your patch was much more thorough.
Any change to back port this?
ioquatix (Samuel Williams)
11:36 PM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
> I don't care for those rigid definitions. They're all just
> bytes that's scheduled in userland and not the kernel...
ioquatix (Samuel Williams)
11:03 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
[email protected] wrote:
> I found an interesting summary of EPOLLET, which I think explains it better than ...
normalperson (Eric Wong)
08:38 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
I found an interesting summary of EPOLLET, which I think explains it better than I did: https://stackoverflow.com/a/4... ioquatix (Samuel Williams)
08:04 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
[email protected] wrote:
> So, it seems like your design has unavoidable contention (and
> therefore latenc...
normalperson (Eric Wong)
05:20 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
Thanks for the detailed information.
So, it seems like your design has unavoidable contention (and therefore laten...
ioquatix (Samuel Williams)
11:22 PM Bug #14732: CGI.unescape returns different instance between Ruby 2.3 and 2.4
> > https://bugs.ruby-lang.org/issues/14732

r63328 This also affects 2.3 for unescapeHTML.
normalperson (Eric Wong)
11:19 PM Bug #14732 (Closed): CGI.unescape returns different instance between Ruby 2.3 and 2.4
Applied in changeset trunk|r63328.
----------
ext/cgi/escape: preserve String subclass in result
* ext/cgi/escape/e...
normalperson (Eric Wong)
11:04 PM Bug #14732: CGI.unescape returns different instance between Ruby 2.3 and 2.4
[email protected] wrote:
> Bug #14732: CGI.unescape returns different instance between Ruby 2.3 and 2.4
> https://bugs....
normalperson (Eric Wong)
09:42 PM Bug #14732 (Closed): CGI.unescape returns different instance between Ruby 2.3 and 2.4
In Ruby 2.3, CGI.unescape always returns String object:
~~~ ruby
$ ruby -v -rcgi/util -e 'class S < String; end; ...
jnchito (Junichi Ito)
11:18 PM Revision 6afea140 (git): ext/cgi/escape: preserve String subclass in result
* ext/cgi/escape/escape.c (optimized_escape_html): use rb_str_new_with_class
(optimized_unescape_html): ditto
(op...
Eric Wong
09:24 PM Bug #10212: MRI is not for lambda calculus
mvasin (Mikhail Vasin) wrote:
> Ruby is manifested as a multi-paradigm language, but recursion and lambdas are way t...
Eregon (Benoit Daloze)
08:16 AM Bug #10212: MRI is not for lambda calculus
This code
```
def fib(x)
return x if x == 0 || x == 1
fib(x-1) + fib(x-2)
end
t = Time.now; fib(40); puts...
mvasin (Mikhail Vasin)
02:12 AM Bug #10212: MRI is not for lambda calculus
On 2018/05/02 2:02, [email protected] wrote:
> One can think that JavaSscript is 35,5 times faster then Ruby.....
ko1 (Koichi Sasada)
09:16 PM Feature #14724: chains of inequalities
gotoken (Kentaro Goto) wrote:
> 1. if a non-boolean is returned, treats the rest of chain in the compatible manner.
...
Eregon (Benoit Daloze)
02:10 PM Feature #14724: chains of inequalities
> And implementing it even for other operators would silently break
> existing code which I don't think is justifiab...
shevegen (Robert A. Heiler)
01:53 PM Feature #14724: chains of inequalities
I heard non-comparison use of `#<` in shell.rb http://ruby-doc.org/stdlib-2.5.0/libdoc/shell/rdoc/Shell.html#class-Sh... gotoken (Kentaro Goto)
01:49 PM Feature #14724: chains of inequalities
graywolf (Gray Wolf) wrote:
> Just pointing out that this would be a breaking change since
>
> ```
> a < b == c
...
gotoken (Kentaro Goto)
01:48 PM Feature #14724: chains of inequalities
duerst (Martin Dürst) wrote:
> Mentioned at #14698 (DevelopersMeeting20180517Japan). Fixed subject.
Thanks for ch...
gotoken (Kentaro Goto)
07:28 AM Feature #14724: chains of inequalities
if `x <= y <=z` is expanded to `(x <= y) && (y <= z)`
then if (x <= y) would return something else than boolean, w...
Hanmac (Hans Mackowiak)
07:17 AM Feature #14724: chains of inequalities
phluid61 (Matthew Kerwin) wrote:
> No, not breaking existing code; but removing a syntax error introduces the chance...
graywolf (Gray Wolf)
07:13 AM Feature #14724: chains of inequalities
I don't think this can be reasonably implemented. Implementing it as it is now ("chains of inequalities") would be wa... graywolf (Gray Wolf)
02:05 AM Feature #14724: chains of inequalities
shan (Shannon Skipper) wrote:
>
> How does this patch make things harder for experienced programmers? Reading the ...
phluid61 (Matthew Kerwin)
09:03 PM Feature #14718: Use jemalloc by default?
[email protected] wrote:
> An alternative is to tune glibc by reducing the number of arenas. Call this on startup:
...
normalperson (Eric Wong)
05:31 PM Feature #14718: Use jemalloc by default?
Blog post this morning on the massive improvements from jemalloc for one heavy Ruby user:
https://brandonhilkert.c...
mperham (Mike Perham)
04:27 PM Revision d54e2286 (git): test_jit.rb: test local variables
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63327 b2dd03c8-39d4-4d8f-98ff-823fe69b080e k0kubun (Takashi Kokubun)
04:04 PM Revision db8e9558 (git): test_jit.rb: test opt_aref_with again
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e k0kubun (Takashi Kokubun)
03:41 PM Revision f15ce493 (git): test_jit.rb: make it possible to automatically find
untested insns. Resolved some warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63325 b2dd03c8-39d4-4d8f-9...
k0kubun (Takashi Kokubun)
03:16 PM Bug #14729: Float("long_invalid_string") fails to throw an exception
shevegen (Robert A. Heiler) wrote:
> I think that particular reasoning is incorrect in regards to underscores, as
>...
samiam (Sam Napolitano)
03:13 PM Bug #14731 (Closed): Float() ignores exponent in long string
Applied in changeset trunk|r63322.
----------
object.c: fix exponent with underscore
* object.c (rb_cstr_to_dbl_rai...
nobu (Nobuyoshi Nakada)
01:32 PM Bug #14731 (Closed): Float() ignores exponent in long string
Related to #14729:
```ruby
Float("1."+"00000"*Float::DIG+"0e10") #=> 10000000000.0
Float("1."+"00000"*Float::DIG...
nobu (Nobuyoshi Nakada)
03:12 PM Revision 41dc02c6 (git): * 2018-05-03
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
03:12 PM Revision d48efc4c (git): test_jit.rb: verify tested insns
and fix some untested insns
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63323 b2dd03c8-39d4-4d8f-98ff-823fe69b...
k0kubun (Takashi Kokubun)
01:55 PM Bug #14730: [MJIT] lambda stack consistency error
confirmed, thanks ahorek (Pavel Rosický)
01:01 PM Bug #14730 (Closed): [MJIT] lambda stack consistency error
Thanks for a very good bug report. I fixed this bug in r63320. Please confirm that.
I have some ideas to systemati...
k0kubun (Takashi Kokubun)
01:37 PM Revision 85370712 (git): object.c: fix exponent with underscore
* object.c (rb_cstr_to_dbl_raise): do not ignore exponent part
when the input string longer than internal buffer co...
nobu (Nobuyoshi Nakada)
01:11 PM Revision 2af97e03 (git): test_jit.rb: add missing dependency
The test works with make test-all, but I sometimes want to do a thing like:
`.ruby-svn/ruby -Itest/lib test/ruby/test...
k0kubun (Takashi Kokubun)
12:57 PM Bug #14561: Consistent 2.5.0 seg fault in GC, related to accessing an enumerator in a thread
By the way, it only happened once. Re-running the same spec several more times didn't generate any further odd output. ioquatix (Samuel Williams)
12:56 PM Bug #14561: Consistent 2.5.0 seg fault in GC, related to accessing an enumerator in a thread
I don't know if this is related or not, but I just now saw a very odd error.
```
Traceback (most recent call last...
ioquatix (Samuel Williams)
12:55 PM Revision 14a3499c (git): compile.c: mark catch_except_p of iseq
which has throw insn, not only ancestor iseqs of it.
I think we should remove catch_except_p flag and try to simplify...
k0kubun (Takashi Kokubun)
10:06 AM Bug #14714: Ruby 2.5.1 Segmentation Fault in GC
I also tried to isolate my vips-related code in a new Ruby program, and ran it 100 times with `GC.stress = true`, wit... renchap (Renaud Chaput)
09:10 AM Bug #14728: OptionParser takes other options as argument values
nobu (Nobuyoshi Nakada) wrote:
> If `--custom` with no argument is allowed, it is not "MANDATORY".
>
> Try:
>
...
xz0r (xz0r xz0r)
08:22 AM Feature #14723: [WIP] sleepy GC
[email protected] wrote:
> require 'benchmark/ips'

> So this moves us from 200-210 ops/s to 240 ops/s. This ...
normalperson (Eric Wong)
06:33 AM Feature #14723: [WIP] sleepy GC
On 2018/05/02 14:00, Eric Wong wrote:
> I also added some benchmarks, but I'm not sure if dependency on
> /dev/ura...
ko1 (Koichi Sasada)
05:19 AM Feature #14723: [WIP] sleepy GC
I can confirm this has a MAJOR benefit for particular workloads with the pg gem. In particular if you are using async... sam.saffron (Sam Saffron)
05:04 AM Feature #14723: [WIP] sleepy GC
Koichi Sasada <[email protected]> wrote:
> On 2018/05/02 13:08, Eric Wong wrote:
> >Sure. Should I commit after addin...
normalperson (Eric Wong)
04:22 AM Feature #14723: [WIP] sleepy GC
On 2018/05/02 13:08, Eric Wong wrote:
> Sure. Should I commit after adding "else" to mutex_lock?

I want to ask ...
ko1 (Koichi Sasada)
04:12 AM Feature #14723: [WIP] sleepy GC
Koichi Sasada <[email protected]> wrote:
> OK. I assumed that this "step" API is used with "rb_gc_inprogress()". But it...
normalperson (Eric Wong)
03:52 AM Feature #14723: [WIP] sleepy GC
On 2018/05/02 11:49, Eric Wong wrote:
> I fetch and run "git diff" locally which gives me many options
>
> REMOT...
ko1 (Koichi Sasada)
02:52 AM Feature #14723: [WIP] sleepy GC
Koichi Sasada <[email protected]> wrote:
> On 2018/05/01 17:46, Eric Wong wrote:
> >Individual patches available at:
...
normalperson (Eric Wong)
02:22 AM Feature #14723: [WIP] sleepy GC
On 2018/05/01 17:46, Eric Wong wrote:
> Individual patches available at:
> https://80x24.org/spew/20180501080844.2...
ko1 (Koichi Sasada)
02:07 AM Revision 0d492003 (git): common.mk: Update dependencies on tool/ruby_vm scripts
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e mame (Yusuke Endoh)
12:57 AM Revision 18c40b16 (git): tool/ruby_vm/views/_insn_name_info.erb: Auto-detect the longest insn name
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e mame (Yusuke Endoh)
12:57 AM Revision 8bfc46a1 (git): iseq.c (rb_iseq_disasm_insn): Change the width of insn names
Currently "trace_opt_send_without_block" (28 letters) is the longest
insn.
git-svn-id: svn+ssh://ci.ruby-lang.org/ru...
mame (Yusuke Endoh)

05/01/2018

11:47 PM Feature #14724: chains of inequalities
phluid61 (Matthew Kerwin) wrote:
> shan (Shannon Skipper) wrote:
> > I've often seen new Rubyists try this syntax i...
shan (Shannon Skipper)
10:03 PM Feature #14724: chains of inequalities
shan (Shannon Skipper) wrote:
> I've often seen new Rubyists try this syntax intuitively. I think this is a really n...
phluid61 (Matthew Kerwin)
08:15 PM Feature #14724: chains of inequalities
If it works for classes you might have just allowed for some fun stuff like this:
```ruby
class Proc
def >=(o)...
baweaver (Brandon Weaver)
08:05 PM Feature #14724: chains of inequalities
I've often seen new Rubyists try this syntax intuitively. I think this is a really nice change. +1 shan (Shannon Skipper)
07:47 PM Feature #14724: chains of inequalities
Just pointing out that this would be a breaking change since
```
a < b == c
```
is already valid syntax meani...
graywolf (Gray Wolf)
10:31 AM Feature #14724: chains of inequalities
Mentioned at #14698 (DevelopersMeeting20180517Japan). Fixed subject. duerst (Martin Dürst)
01:32 AM Feature #14724: chains of inequalities
It would be nice to have this in Ruby. I have assigned it to Matz, because it's a syntax change that he should check ... duerst (Martin Dürst)
11:00 PM Feature #14697: Introducing Range#% as an alias to Range#step
I understand.
I guess it's a way to make `Enumerator::ArithmeticSequence` even more "core", even if it's rarely used...
marcandre (Marc-Andre Lafortune)
08:55 PM Misc #14720 (Closed): [PATCH] cont.c: cleanup needless cast
Applied in changeset trunk|r63315.
----------
cont.c: cleanup needless cast
It seems like leftover development step...
normalperson (Eric Wong)
02:48 AM Misc #14720: [PATCH] cont.c: cleanup needless cast
Thank you. No problem.
ko1 (Koichi Sasada)
08:55 PM Revision d64c9c78 (git): * 2018-05-02
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63316 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
08:55 PM Revision 74fdf523 (git): cont.c: cleanup needless cast
It seems like leftover development step from r59557
("refactoring Fiber status").
I will make fiber_status use BITFI...
Eric Wong
07:42 PM Bug #14730 (Closed): [MJIT] lambda stack consistency error
```ruby
fib = lambda do |x|
return x if x == 0 || x == 1
fib.call(x-1) + fib.call(x-2)
end
fib.call(35)
```...
ahorek (Pavel Rosický)
05:02 PM Bug #10212: MRI is not for lambda calculus
I guess this is related, so I'll post it here.
Today I tried this code sample in MRI 2.5
```
fib = lambda {|x| r...
mvasin (Mikhail Vasin)
03:27 PM Bug #14729: Float("long_invalid_string") fails to throw an exception
> This behavior is inconsistent; underscores are verified throughout the entire
> string so why not look for other i...
shevegen (Robert A. Heiler)
03:25 PM Bug #14729: Float("long_invalid_string") fails to throw an exception
> Should Float() accept any size string or limit it?
I think the method Float() should behave in the same way
as ...
shevegen (Robert A. Heiler)
02:37 PM Bug #14729 (Closed): Float("long_invalid_string") fails to throw an exception
When Float() is used to convert a string into a float, invalid characters in the string throw an error.
But when a...
samiam (Sam Napolitano)
12:54 PM Bug #14728 (Rejected): OptionParser takes other options as argument values
If `--custom` with no argument is allowed, it is not "MANDATORY".
Try:
```ruby
opts.on("-q","--custom [CUSTO...
nobu (Nobuyoshi Nakada)
12:10 PM Bug #14728 (Rejected): OptionParser takes other options as argument values
`test.rb`
~~~ ruby
require 'optparse'
options = {}
OptionParser.new do |opts|
opts.banner = "Usage: test.r...
xz0r (xz0r xz0r)
10:35 AM Bug #14725: fatal: No live threads left. Deadlock? since Revision 63215
Thanks for the update. I have confirmed this error does not reproduce with revision 63314.
~~~
$ ruby -v
ruby ...
yahonda (Yasuo Honda)
12:05 AM Bug #14725: fatal: No live threads left. Deadlock? since Revision 63215
[email protected] wrote:
> fatal: No live threads left. Deadlock?
> 5 threads, 5 sleeps current:0x000055f8f856...
normalperson (Eric Wong)
10:29 AM Misc #14698: DevelopersMeeting20180517Japan
* [Feature #14724] chains of inequalities
* Proposal by gotoken (Kentaro Goto) to allow `0 <= a < 10` as a short...
duerst (Martin Dürst)
08:52 AM Feature #14723: [WIP] sleepy GC
Koichi Sasada <[email protected]> wrote:
> On 2018/05/01 12:47, Eric Wong wrote:
> >Oh sorry, I realize I was using th...
normalperson (Eric Wong)
03:52 AM Feature #14723: [WIP] sleepy GC
On 2018/05/01 12:47, Eric Wong wrote:
> Oh sorry, I realize I was using the wrong gc.c functions :x
> Something li...
ko1 (Koichi Sasada)
03:52 AM Feature #14723: [WIP] sleepy GC
Koichi Sasada <[email protected]> wrote:
> On 2018/05/01 12:18, Eric Wong wrote:
> >>`gc_rest()` do all of rest steps....
normalperson (Eric Wong)
03:33 AM Feature #14723: [WIP] sleepy GC
On 2018/05/01 12:18, Eric Wong wrote:
>> `gc_rest()` do all of rest steps. Is it intentional?
>
> I thought abo...
ko1 (Koichi Sasada)
03:22 AM Feature #14723: [WIP] sleepy GC
[email protected] wrote:
> My understanding, your proposal in pseudo code is (pls correct me if it is wrong):
>

Co...
normalperson (Eric Wong)
02:31 AM Feature #14723: [WIP] sleepy GC
My concerns are:
(1) Full GC (like GC.start) or step incremental marking/sweeping (to guarantee (or to reduce) the...
ko1 (Koichi Sasada)
01:22 AM Feature #14723: [WIP] sleepy GC
[email protected] wrote:
> Implementation wise it seems like you only have it on rb_wait_for_single_fd, is ther...
normalperson (Eric Wong)
08:35 AM Revision 45255c42 (git): use list_head_init instead of open-coding it
While we cannot use LIST_HEAD since r63312, we can at
least use list_head_init to make our code more readable.
git-s...
Eric Wong
06:55 AM Revision 41f4ac6a (git): ast.c: use enum in switch for warnings
* ext/-test-/ast/ast.c (node_children): use enum instead of int
for not-handled enumeration value in switch warning...
nobu (Nobuyoshi Nakada)
04:41 AM Revision 496ddbc2 (git): LIST_HEAD as a local variable is a C99ism.
Address of a variable whose storage duration is `auto` is _not_ a
compile time constant, according to ISO 9899 sectio...
shyouhei (Shyouhei Urabe)
04:27 AM Bug #14726: wrong message when superclass is not a Class
なるほど、それは気づきませんでした。すると、こうでしょうか。
```c
rb_raise(rb_eTypeError, "superclass must be a Class (given a(n) %"PRIsVALUE")...
yugui (Yuki Sonoda)
04:05 AM Bug #14726: wrong message when superclass is not a Class
……で、不定冠詞を付ける場合、例えば`Integer`のインスタンスが来たら`an`にしないといけないのでは、という問題が……。 usa (Usaku NAKAMURA)
03:58 AM Bug #14726: wrong message when superclass is not a Class
なるほど、確かに冠詞があればインスタンスが来たとわかるのでいいかも。
私の案だとモジュールが来た時わかりにくいというのも納得です。
usa (Usaku NAKAMURA)
02:34 AM Bug #14726: wrong message when superclass is not a Class
ああ、補足ですが、`super` の属するクラスではなく `super` の文字列表現を表示するというパッチの案に対しては、誤ってmoduleを渡した場合が心配です。
そのmoduleをクラスだと思い込んでいると却って分かりづらいの...
yugui (Yuki Sonoda)
02:31 AM Bug #14726: wrong message when superclass is not a Class
どちらかというと元の仕様のほうに賛成で、これはバグではないという認識です。Classオブジェクトを期待していたのにC1オブジェクトが来たというのはどちらも `super` の属するクラスの話をしていて、そのパッチよりもバランスが取れて... yugui (Yuki Sonoda)
01:49 AM Bug #14726 (Closed): wrong message when superclass is not a Class
クラス定義の際に親クラスとして`Class`でないものを与えると`TypeError`になりますが、その際にエラーメッセージに与えられたもののクラス名が表示されるため、メッセージだけ見ると何が間違ってるのかわけがわからなくなっています... usa (Usaku NAKAMURA)
03:12 AM Revision 766ee6e5 (git): rexml: Suppress warnings
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63311 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Sutou Kouhei
02:59 AM Bug #14727: TestQueue#test_queue_with_trap always timeout on Windows10
いちおう、手元(というかなんというか)での再現状況は、
- □ Windows 7
- □ Windows Server 2012 R2 (Windows 8.1相当)
- ☑ Windows 10
という感じです。
usa (Usaku NAKAMURA)
02:43 AM Bug #14727: TestQueue#test_queue_with_trap always timeout on Windows10
私も Windows 10 にして再現していました。
私が理解している範囲で、現象をちょっと書いておきます。
(1) GVL に Win32 の Mutex を使っている
(2) Win32 Mutex は、以前はスケジュー...
ko1 (Koichi Sasada)
02:27 AM Bug #14727 (Assigned): TestQueue#test_queue_with_trap always timeout on Windows10
表題の通りです。ささださんも把握しているそうなので、備忘録として。
```
[19/35] TestQueue#test_queue_with_trap = 10.13 s
1) Error:
TestQueue#te...
usa (Usaku NAKAMURA)
01:46 AM Feature #14718: Use jemalloc by default?
mperham (Mike Perham) wrote:
> For `strdup`, can we use jemalloc prefix mode so Ruby uses `je_malloc` and `je_free` ...
shyouhei (Shyouhei Urabe)

04/30/2018

11:53 PM Revision f5db4a0c (git): test/thread/test_cv.rb: test CV usability inside forked child
* test/thread/test_cv.rb (def test_condvar_fork): new test
[Bug #14725]
git-svn-id: svn+ssh://ci.ruby-lang.org/rub...
Eric Wong
11:47 PM Bug #14725 (Closed): fatal: No live threads left. Deadlock? since Revision 63215
Applied in changeset trunk|r63309.
----------
thread_sync.c (condvar_ptr): reset fork_gen after forking
Otherwise t...
normalperson (Eric Wong)
11:33 PM Bug #14725: fatal: No live threads left. Deadlock? since Revision 63215
Investigating... normalperson (Eric Wong)
10:31 PM Bug #14725 (Closed): fatal: No live threads left. Deadlock? since Revision 63215
## Steps to reproduce
~~~ text
$ sudo gem install bundler
$ git clone https://github.com/rails/rails.git
$ cd rai...
yahonda (Yasuo Honda)
11:47 PM Revision d2f52a5f (git): thread_sync.c (condvar_ptr): reset fork_gen after forking
Otherwise the condition variable waiter list will always
be empty, which is wrong :x
[Bug #14725] [Bug #14634]
git-...
Eric Wong
11:12 PM Revision 5e5b2fe6 (git): * 2018-05-01
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63308 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
11:12 PM Revision ce70bff3 (git): thread.c (vm_living_thread_num): constify vm arg
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eric Wong
06:51 PM Feature #6284: Add composition for procs
I just realized that infix operators evaluate before `to_proc`, allowing something like this:
```ruby
[1,2,3].map...
baweaver (Brandon Weaver)
06:17 PM Feature #14724: chains of inequalities
That works fine for me! Thanks for your patch. That works for not only numerics but also for hashes or classes.
And...
gotoken (Kentaro Goto)
08:45 AM Feature #14724: chains of inequalities
https://github.com/nobu/ruby/tree/feature/cmpseq nobu (Nobuyoshi Nakada)
06:36 AM Feature #14724 (Assigned): chains of inequalities
In mathematics, chain of inequations is a shorthand notation for the conjunction of several inequations involving com... gotoken (Kentaro Goto)
04:53 PM Bug #14702: On Ruby 2.5.1, tracepoint isn't working on the file that is loaded by load_iseq
How is the issue?
In addition to above, I confirm the issue in following example that does not use 3rd party gem.
...
[email protected] (Makoto Tajitsu)
03:57 PM Feature #14718: Use jemalloc by default?
So is it impossible for Ruby to use jemalloc by default? jemalloc reduces Ruby memory usage 50-75% on large Rails ap... mperham (Mike Perham)
03:22 PM Bug #14714: Ruby 2.5.1 Segmentation Fault in GC
I think I am seeing a similar bug.
My test suite (Rails system tests, using Minitest and Capybara) is crashing on ...
renchap (Renaud Chaput)
10:52 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
[email protected] wrote:
> If you use any kind of thread-safe shared mutable state (e.g.
> a queue), you wi...
normalperson (Eric Wong)
10:32 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
[email protected] wrote:
>
> > Using a background thread is your mistake.

> Don't assume I made this de...
normalperson (Eric Wong)
01:37 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
> IPC? Interprocess communication? What? There's no processes, here.
Sorry, my terminology wasn't so clear. Howeve...
ioquatix (Samuel Williams)
01:24 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
> Using a background thread is your mistake.
Don't assume I made this design. It was made by other people. I merel...
ioquatix (Samuel Williams)
10:01 AM Revision cb67e0bd (git): Use `&.` instead of modifier if
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63306 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
09:05 AM Bug #14719: FalseClass wrapped in a SimpleDelegator evaluates to true in an IF statement
Thanks Marc-Andre. Appreciate the quick response. theirishpenguin (Declan McGrath)
06:54 AM Revision 4602d8e2 (git): NEWS: Add recent REXML changes
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Sutou Kouhei
04:42 AM Feature #14723: [WIP] sleepy GC
[email protected] wrote:
> I really really like this, its a free performance boost with
> almost no downsides....
normalperson (Eric Wong)
02:17 AM Bug #14713 (Closed): <internal:prelude>:132:in `__write_nonblock': Protocol wrong type for socket (Errno::EPROTOTYPE)
Applied in changeset trunk|r63304.
----------
io.c: workaround for EPROTOTYPE
* io.c (internal_write_func, internal...
nobu (Nobuyoshi Nakada)
02:17 AM Revision 7727b22e (git): io.c: workaround for EPROTOTYPE
* io.c (internal_write_func, internal_writev_func): retry at
unexpected EPROTOTYPE on macOS, to get rid of a kernel...
nobu (Nobuyoshi Nakada)
12:28 AM Revision 9cd48348 (git): * 2018-04-30
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63303 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
12:28 AM Revision 6073edd6 (git): io.c: reuse internal_write_func
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63302 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
 

Also available in: Atom