Project

General

Profile

Activity

From 04/23/2018 to 04/29/2018

04/29/2018

11:50 PM Feature #14723: [WIP] sleepy GC
I really really like this, its a free performance boost with almost no downsides.
I guess the simplest way of measuring it would be to run something like Discourse bench with and without the patch. In theory we should get better timi...
sam.saffron (Sam Saffron)
11:03 AM Feature #14723: [WIP] sleepy GC
Eric Wong <normalperson@yhbt.net> wrote:
> I'm not sure if native_sleep() is worth doing GC on in most
> cases (Mutex#lock, Queue#pop, ...) because that's waiting
> on local resources from other threads within our process.

Nevermi...
normalperson (Eric Wong)
09:22 AM Feature #14723: [WIP] sleepy GC
Also, added "thread.c (do_select): perform GC if idle"

https://80x24.org/spew/20180429090250.GA15634@dcvr/raw

And updated "sleepy-gc" git branch @ git://80x24.org/ruby.git
to 10bcc1908601e6f35ebef5ff66476b5cea6da96c.

I'm not s...
normalperson (Eric Wong)
07:42 AM Feature #14723: [WIP] sleepy GC
Eric Wong <normalperson@yhbt.net> wrote:
> This is a quick check and even optimized inside the Linux kernel[1].

Sorry, forgot link:
[1] https://bogomips.org/mirrors/linux.git/tree/fs/select.c?h=v4.16#n851
/* Optimise the no-wait c...
normalperson (Eric Wong)
06:04 AM Feature #14723: [WIP] sleepy GC
"Atdot.net" <ko1@atdot.net> wrote:
> Could you give us more detail algorithm?

Pretty simple and I thought the patch was easy-to-read.

Background is we can use ppoll with zero-timeout
({.tv_sec = 0, .tv_nsec = 0 }) to check and r...
normalperson (Eric Wong)
04:52 AM Feature #14723: [WIP] sleepy GC
Could you give us more detail algorithm?

2018/04/29 12:57、normalperson@yhbt.netのメール:

> Issue #14723 has been reported by normalperson (Eric Wong).
>
> ----------------------------------------
> Feature #14723: [WIP] sleepy GC
...
ko1 (Koichi Sasada)
03:57 AM Feature #14723 (Open): [WIP] sleepy GC
The idea is to use "idle time" when process is otherwise sleeping
and using no CPU time to perform GC. It makes sense because real
world traffic sees idle time due to network latency and waiting
for user input.
Right now, it's Lin...
normalperson (Eric Wong)
01:45 PM Revision 6199c9ac (git): * spec/ruby/command_line/dash_upper_i_spec.rb: skip symlink on Windows like
other specs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63301 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
U.Nakamura
01:25 PM Bug #14713: <internal:prelude>:132:in `__write_nonblock': Protocol wrong type for socket (Errno::EPROTOTYPE)
I made a patch for write_nonblock. But this probably equally applies to send, sendmsg, etc. Perhaps we can discuss the right course of action to cover all these cases. ioquatix (Samuel Williams)
01:17 PM Bug #14713: <internal:prelude>:132:in `__write_nonblock': Protocol wrong type for socket (Errno::EPROTOTYPE)
I've made a PR which fixes the issue.
https://github.com/ruby/ruby/pull/1868
I believe it would make sense to back-port it.
Additionally the following change could be reverted: https://bugs.ruby-lang.org/issues/12914
ioquatix (Samuel Williams)
12:40 PM Bug #14713: <internal:prelude>:132:in `__write_nonblock': Protocol wrong type for socket (Errno::EPROTOTYPE)
It seems that in this specific case, EPROTOTYPE is the same as EPIPE. It's a bug in the kernel code. I wonder if we should compensate for it by detecting EPROTOTYPE by write, and raising EPIPE. ioquatix (Samuel Williams)
12:35 PM Bug #14713: <internal:prelude>:132:in `__write_nonblock': Protocol wrong type for socket (Errno::EPROTOTYPE)
I tried digging into this issue.
I found some other people with similar problems: https://github.com/nodejs/node/issues/2382
The most interesting article digging into the issue: http://erickt.github.io/blog/2014/11/19/adventures-i...
ioquatix (Samuel Williams)
02:20 AM Bug #14713: <internal:prelude>:132:in `__write_nonblock': Protocol wrong type for socket (Errno::EPROTOTYPE)
> It happens often on macOS.
I don't have this experience. I can't systematically reproduce the issue. It only happens perhaps once a month even thought I'm running networking code almost daily on macOS, and these are code paths that ...
ioquatix (Samuel Williams)
11:15 AM Revision de2bfd3d (git): Remove the teeny part from the shared library name on macOS
This will prevent macOS users from having to rebuild all extension
libraries every time they upgrade ruby to a new teeny release.
Before:
- libruby.2.6.0.dylib
- libruby.2.6.dylib -> libruby.2.6.0.dylib
- libruby.dylib -> libruby.2.6.0....
Akinori MUSHA
08:21 AM Feature #14718: Use jemalloc by default?
mperham (Mike Perham) wrote:
> Since MRI offers --with-jemalloc, I assume it is safe
That's not the reason for it being safe.
> ...
You can have trouble without any C extensions. See also https://bugs.ruby-lang.org/issues/13524 ...
shyouhei (Shyouhei Urabe)
07:12 AM Revision 058949ac (git): range.c: optimize range_each for Bignum
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
05:50 AM Feature #14701: If the object is not frozen, I want to be able to redefine the compound assignment operator.
Maybe I don't get the point though, if `Numo::NArray#inplace` and `inplace.+` always return identical object, `#inplace=` can be defined and one can write
```
a = Numo::Int32[5, 6]
a.inplace += 1
```
means shorthand for `a.inpl...
gotoken (Kentaro Goto)
03:20 AM Revision 394418c9 (git): _mjit_compile_send.erb: fix pointer conversion warning
/var/folders/b0/9hgj_tyx10zgkcbyx3_j2dlr0000gn/T//_ruby_mjit_p72619u0.c:37:58: warning: incompatible integer to pointer
conversion passing 'long' to parameter of type 'const struct rb_call_info *' [-Wint-conversion]
vm_call...
k0kubun (Takashi Kokubun)

04/28/2018

11:31 PM Revision 797d2ab5 (git): range.c: endless symbol range
* range.c (range_each): shortcirtuit endless symbol range too, as
well as `#step`.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
11:04 PM Revision 54701725 (git): Generalize the check to MRI in the -I spec
* The current check seems to fail with AppVeyor.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63296 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eregon (Benoit Daloze)
08:37 PM Revision aaac5df3 (git): Ignore the extension of miniruby on Windows in the -I spec
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eregon (Benoit Daloze)
08:33 PM Feature #14718: Use jemalloc by default?
Hi Nobu, GitHub, GitLab and Discourse are all running jemalloc in production. Since MRI offers --with-jemalloc, I assume it is safe and does not free any memory returned by strdup. Are you mainly concerned with native C extensions that... mperham (Mike Perham)
07:52 PM Feature #14718: Use jemalloc by default?
Unfortunately, I have to object it.
As functions in libc, e.g., `strdup`, cannot be replaced by jemalloc and continue to use the system `malloc`, so freeing the pointer returned from such functions by `je_free` causes a crash (segfault...
nobu (Nobuyoshi Nakada)
04:36 AM Feature #14718: Use jemalloc by default?
On Ubuntu Linux, with Rails Ruby Bench, jemalloc gives an overall speedup (not just memory, end-to-end speedup) of around 11%. Details: "http://engineering.appfolio.com/appfolio-engineering/2018/2/1/benchmarking-rubys-heap-malloc-tcmallo... noahgibbs (Noah Gibbs)
07:50 PM Revision ebb69738 (git): * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63294 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
07:50 PM Revision 4fbb9aa3 (git): Update to ruby/spec@6f38a82
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eregon (Benoit Daloze)
07:49 PM Revision b864bd05 (git): * 2018-04-29
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63292 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
07:49 PM Revision 702eb2c8 (git): Update to ruby/mspec@b5b13de
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63291 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eregon (Benoit Daloze)
06:11 PM Feature #14722: python's buffer protocol clone
The article is an oversimplification, I do agree. But some common mechanism to pass chunks of memory to C libs (gsl, blas, opencv, maybe cuda, and many others) would help I think. This way you could run all of the functions of these libr... jsaak (jsaak jsaak)
08:41 AM Feature #14722: python's buffer protocol clone
I do not think that the above article describes as to why python has
become so popular. It is DEFINITELY not because of a SINGLE feature.
But anyway, I do not want to digress from your suggestion, and I am
pretty sure that matz is l...
shevegen (Robert A. Heiler)
06:38 AM Feature #14722 (Closed): python's buffer protocol clone
Is there a way to implement, or even copy Python's buffer protocol in ruby?
There is an article that describes the benefits quite well:
https://jeffknupp.com/blog/2017/09/15/python-is-the-fastest-growing-programming-language-due-to-a...
jsaak (jsaak jsaak)
03:55 PM Feature #12912: An endless range `(1..)`
nobu (Nobuyoshi Nakada) wrote:
> Why is `(1..).size` `nil`, but not `Float::INFINITY`?
It's a bug, see #14699
marcandre (Marc-Andre Lafortune)
01:25 PM Feature #12912: An endless range `(1..)`
Why is `(1..).size` `nil`, but not `Float::INFINITY`? nobu (Nobuyoshi Nakada)
11:16 AM Revision 703a5dd3 (git): string.c: adjust to rb_str_upto_each
* range.c (range_each_func): adjust the signature of the callback
function to rb_str_upto_each, and exit the loop if the callback
returned non-zero.
* string.c (rb_str_upto_endless_each): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.o...
nobu (Nobuyoshi Nakada)
09:22 AM Revision d025f64a (git): test_open3.rb: let test_popen2 work with --jit
test/lib/jit_support.rb: add .remove_mjit_logs to normalize stderr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63289 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
09:11 AM Revision 60902062 (git): test_rubyoptions.rb: let all tests work with --jit
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63288 b2dd03c8-39d4-4d8f-98ff-823fe69b080e k0kubun (Takashi Kokubun)
09:02 AM Revision acacd7a1 (git): test_bug_reporter.rb: make it work with --jit
test_rubyoptions.rb: replace gsub with sub because it's suboptimal for
this
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
08:52 AM Revision 0b01776d (git): test_rubyoptions.rb: let test_verbose work w/ --jit
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e k0kubun (Takashi Kokubun)
08:41 AM Revision 9aab4b6b (git): test_parallel.rb: extend timeout for --jit-wait
testing. 10s was long enough for my machine, but not for travis.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63285 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
08:39 AM Feature #14701: If the object is not frozen, I want to be able to redefine the compound assignment operator.
nobu (Nobuyoshi Nakada) wrote:
> What about
> ...
When saving in a variable, I do not want to manage the inplace state.
```
> require 'numo/narray'
> ...
=> Numo::Int32#shape=[2]
[5, 6]
> a.inplace?
=> false
> ...
=> Numo...
naitoh (Jun NAITOH)
08:24 AM Revision ada41984 (git): test_ftp.rb: extend read_timeout for --jit-wait
testing. I'm running `make test-all RUN_OPTS='--jit-wait'` and the
read_timeout was too slow for it.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63284 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
07:31 AM Revision d07861fb (git): range.c: each on endless range
* range.c (range_each): endless range begins with string-like
object should iterate from the converted result string, as well
as `#each` on a string-end range or `#step` method on an endless
range, i.e., `begin.succ` should not be ...
nobu (Nobuyoshi Nakada)
06:23 AM Revision b6e28514 (git): thread_sync.c: remove "volatile" qualifiers
I may store ->ec in rb_mutex_t instead of ->th to support green
thread. For now, "volatile" is useless for thread-safety
anyways and we're not dealing with *jmp or signals with mutex.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6...
Eric Wong
06:00 AM Revision 0d77b73d (git): thread_sync.c: remove unused list_heads
I forgot to clean these up in r63215
* thread_sync.c (szqueue_list, queue_list, condvar_list): remove
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63281 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
05:45 AM Bug #14721 (Closed): Backport request patch for rubygems 2.6
rubygems 2.6.14.1 has a problem with Windows platform.
Please see details: https://github.com/rubygems/rubygems/pull/2211
@usa Can you apply attachment patch with next release and bump version to 2.6.14.2?
hsbt (Hiroshi SHIBATA)
05:12 AM Misc #14720: [PATCH] cont.c: cleanup needless cast
ko1@atdot.net wrote:
> > 0001-cont.c-cleanup-needless-cast (0 Bytes)

Reattached. Also posted to spew@80x24.org:
https://80x24.org/spew/20180428050438.16831-1-e@80x24.org/raw
normalperson (Eric Wong)
04:47 AM Misc #14720: [PATCH] cont.c: cleanup needless cast
> 0001-cont.c-cleanup-needless-cast (0 Bytes)
it seems redmine system error.
ko1 (Koichi Sasada)
03:49 AM Misc #14720 (Closed): [PATCH] cont.c: cleanup needless cast
It seems like leftover development step from r59557
("refactoring Fiber status").
I will make fiber_status use BITFIELD macro in a future
commit.
* cont.c (struct rb_fiber_struct): drop const from fiber_status
(fiber_status_se...
normalperson (Eric Wong)
01:47 AM Revision f1140895 (git): Merge Pysch 3.0.3.pre1.
I added the following additional commits from 3.0.3.pre1:
* https://github.com/ruby/psych/pull/356
* https://github.com/ruby/psych/pull/357
* https://github.com/ruby/psych/pull/359
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby...
hsbt (Hiroshi SHIBATA)
01:45 AM Revision 13dc8e4e (git): mjit_config.h: expand min header name
* Makefile.in, win32/Makefile.sub (mjit_config.h): expand min
header name, including the version number and the suffix.
* mjit.c (init_header_filename): the version number and the suffix
are now included in the header name.
git-svn...
nobu (Nobuyoshi Nakada)
01:36 AM Revision 1d67b9de (git): rexml: disable XPath 1.0 compatible "#{ELEMENT_NAME}" processing by default
It breaks backward compatibility than I thought. So it's disabled by
default. It means that REXML's XPath processor isn't compatible with
XPath 1.0. But it will be acceptable for users.
We can enable it by specifying "strict: true" to
R...
Sutou Kouhei

04/27/2018

11:58 PM Feature #14701: If the object is not frozen, I want to be able to redefine the compound assignment operator.
matz (Yukihiro Matsumoto) wrote:
> Use `append` instead of `+=` for arrays. Changing the behavior of `+=` would have too much compatibility problems from side-effect.
> ...
Thank you for your reply.
I am sorry if it caused me to misun...
naitoh (Jun NAITOH)
10:19 PM Feature #14701: If the object is not frozen, I want to be able to redefine the compound assignment operator.
Alternative idea: If Ruby has a feature like:
~~~ ruby
x = x.left_variable? # => true
y = x.left_variable? # => false
~~~
then inplace operation is possible without redefinition of `+=`.
masa16 (Masahiro Tanaka)
09:58 PM Feature #14718: Use jemalloc by default?
I have a Sidekiq benchmark[1] which processes 100,000 jobs through Redis, exercising networking, threading and JSON heavily. 2.5.0 on OSX takes 20.5 sec, 2.5.1 with jemalloc on OSX takes 18.3 sec, a 10% speed boost.
[1]: https://gith...
mperham (Mike Perham)
07:59 PM Feature #14718: Use jemalloc by default?
Regarding performance, it's subjective as always. What are your server's specifications? Usually RAM is not cheap, which means people don't usually have plenty of RAM in their servers, which means that lots of RAM usage could mean that a... rosenfeld (Rodrigo Rosenfeld Rosas)
07:28 PM Feature #14718: Use jemalloc by default?
The compile option to use jemalloc is already provided by Ruby from my understanding, this issue is about making it the default in Linux, where it seems to matter most. rosenfeld (Rodrigo Rosenfeld Rosas)
06:50 PM Feature #14718: Use jemalloc by default?
I know way too little about the topic at hand, so I can not really
comment on it, the usability, gains and so forth.
I had a look at the discussion at #9113, just due to my curiosity alone.
It seems as if matz has not yet commente...
shevegen (Robert A. Heiler)
06:22 PM Feature #14718: Use jemalloc by default?
On 2018/04/28 3:12, Eric Wong wrote:
> Long-term (unlikely this year) I hope to work with glibc team to
> improve malloc on their end. I have ideas which require LGPL
> code (wfcqueue) to implement, so not doable with jemalloc.

s...
ko1 (Koichi Sasada)
06:13 PM Feature #14718: Use jemalloc by default?
mperham@gmail.com wrote:
> https://bugs.ruby-lang.org/issues/14718

Agreed. I think it's acceptable to enable jemalloc by default short-term.

Long-term (unlikely this year) I hope to work with glibc team to
improve malloc on the...
normalperson (Eric Wong)
04:38 PM Feature #14718: Use jemalloc by default?
It's also quite possible that jemalloc will give us a small performance increase. Another data point:
https://medium.com/@adrienjarthon/ruby-jemalloc-results-for-updown-io-d3fb2d32f67f
mperham (Mike Perham)
04:30 PM Feature #14718: Use jemalloc by default?
If Ruby decides to ship with jemalloc, let's make sure to be like Redis and only use it by default on Linux (as mentioned in the Redis 2.4 release announcement). jeremyevans0 (Jeremy Evans)
04:14 PM Feature #14718 (Rejected): Use jemalloc by default?
I know Sam opened #9113 4 years ago to suggest this but I'm revisiting the topic to see if there's any movement here for Ruby 2.6 or 2.7. I supply a major piece of Ruby infrastructure (Sidekiq) and I keep hearing over and over how Ruby ... mperham (Mike Perham)
09:24 PM Bug #14719 (Rejected): FalseClass wrapped in a SimpleDelegator evaluates to true in an IF statement
I'm afraid you can not achieve what you want to achieve in Ruby. The only two objects that are falsy in Ruby are `nil` and `false`. No other object can "look" like `false`. This is by design and can not be changed. marcandre (Marc-Andre Lafortune)
04:33 PM Bug #14719 (Rejected): FalseClass wrapped in a SimpleDelegator evaluates to true in an IF statement
Hi, thanks for Ruby :-)
I have run into a problem. When I wrap the boolean false in a SimpleDelegator it breaks the semantics of the boolean when evaluated in expressions such as IF statements - returning true when I would have expect...
theirishpenguin (Declan McGrath)
08:25 PM Revision 75f4f699 (git): * 2018-04-28
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63277 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
08:25 PM Revision 743c6edd (git): NEWS: fix typos
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63276 b2dd03c8-39d4-4d8f-98ff-823fe69b080e stomar (Marcus Stollsteimer)
06:19 PM Feature #12607: Ruby needs an atomic integer
Oh, sorry, I just noticed this issue isn't about changing Ruby's syntax, it was just my comment on the other related issue that mentioned that :P So this is basically the same request as Mike's. rosenfeld (Rodrigo Rosenfeld Rosas)
06:08 PM Feature #12607: Ruby needs an atomic integer
I'm not sure if type was set to Bug on purpose, so I'm changing it to Feature instead, but feel free to change it back to Bug if you really think it's a bug. rosenfeld (Rodrigo Rosenfeld Rosas)
06:07 PM Feature #12607: Ruby needs an atomic integer
Just to make it clearer, since I was mentioned by Shyouhey in the issue's description, performance has never been the reason why I asked for support for atomic operations such as incrementing an integer. It might seem like it is the case... rosenfeld (Rodrigo Rosenfeld Rosas)
07:14 AM Feature #12607: Ruby needs an atomic integer
I think that you might not have understood his concern. Getting multi-threaded code right is hard, no matter the primitives available. "People who know well about thread programming can use this feature using concurrent-ruby and I don'... Student (Nathan Zook)
02:11 AM Feature #12607: Ruby needs an atomic integer
We have already shown the benefits of atomic integers very well. What Ko1 says is the downside of it ("it is too hard for mere mortals"). Now is the time for us to tell him it's not that bad. Showing another benefits of concurrency do... shyouhei (Shyouhei Urabe)
02:40 PM Bug #14350: Strange behavior for Array.min in ruby 2.5.0
This change afects PrawnPDF gems (I'm a maintainer).
From the maths point of view it is indeed insignificant, but there are other areas where exact value matters. For example, in Prawn these values are serialized. Integer `1` is seria...
cheba (Alexander Mankuta)
01:14 PM Revision 0dd9f7cc (git): iseq.c: consistent rb_bug messages
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63275 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
01:14 PM Revision e858f865 (git): mjit.c: remove undef
* mjit.c (clean_so_file): removed unnecessary undef of `Sleep`
which is redfined as rb_w32_sleep. eventually, retry loop with
sleep has been removed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63274 b2dd03c8-39d4-4d8f-98ff-8...
nobu (Nobuyoshi Nakada)
09:44 AM Bug #14716: SecureRandom throwing an error in Ruby 2.5.1
We checked that by executing 'cat /dev/urandom' and we did see an output.
So dont think thats an issue.
We suspect that this issue occurs when there are many concurrent requests.
snehavas (sneha vasanth)
09:23 AM Bug #14716: SecureRandom throwing an error in Ruby 2.5.1
I can reproduce the situation using this Dockerfile https://github.com/shyouhei/docker-library/blob/master/%2314716/Dockerfile
The key point is to delete /dev/urandom from the image.
2.3.6 used to try openssl first, so if it had en...
shyouhei (Shyouhei Urabe)
08:54 AM Bug #14716: SecureRandom throwing an error in Ruby 2.5.1
naruse (Yui NARUSE) wrote:
> r57307 changed to use __NR_getrandom (kernel header) from SYS_getrandom (glibc header).
> ...
genrandom(2) is introduced at v3.17.
On v3.13 kernel, it should fallback to /dev/urandom.
Maybe your environme...
naruse (Yui NARUSE)
08:45 AM Bug #14716 (Open): SecureRandom throwing an error in Ruby 2.5.1
r57307 changed to use __NR_getrandom (kernel header) from SYS_getrandom (glibc header).
But __NR_getrandom is from v3.17.
It needs to check both __NR_getrandom and SYS_getrandom for compatibility.
naruse (Yui NARUSE)
07:36 AM Bug #14716: SecureRandom throwing an error in Ruby 2.5.1
The Kernel version is 3.13.0-145-generic snehavas (sneha vasanth)
07:34 AM Bug #14716: SecureRandom throwing an error in Ruby 2.5.1
We are using Ubuntu 14.04.5 LTS snehavas (sneha vasanth)
06:29 AM Bug #14716 (Feedback): SecureRandom throwing an error in Ruby 2.5.1
It depends on your OS.
What OS and the kernel version?
nobu (Nobuyoshi Nakada)
06:19 AM Bug #14716 (Closed): SecureRandom throwing an error in Ruby 2.5.1
Hi,
We recently upgraded from ruby 2.3.6 to 2.5.1.
We use SecureRandom.uuid to generate a random number for our session.
Post the upgrade we have been getting the following error intermittently
```
app error: failed to get urand...
snehavas (sneha vasanth)
08:25 AM Feature #14709: Proper pattern matching
I've gone and done something exceptionally bad to Ruby, but this should be an interesting proof of concept nonetheless:
* Benchmarks - https://github.com/baweaver/qo/blob/evil/Rakefile
* Results - https://gist.github.com/baweaver/086...
baweaver (Brandon Weaver)
02:01 AM Feature #14709: Proper pattern matching
Whenever I feel I need pattern matching, I'm trying to handle method args. With some of the ideas presented here, like Qo, I feel I'd really only be using it inside the outer edges of a method to match on the args that that method receiv... jgaskins (Jamie Gaskins)
08:14 AM Feature #14717: [PATCH] thread: allow disabling preempt
https://80x24.org/spew/20180427081252.12560-1-e@80x24.org/raw
normalperson (Eric Wong)
08:09 AM Feature #14717 (Closed): [PATCH] thread: allow disabling preempt
In some cases, it may be beneficial to disable preemptibility to
have more predictable behavior than increasing Thread#priority.
Threads with preempt disabled will run until they either:
a) encounter a thread blocking region
...
normalperson (Eric Wong)
07:44 AM Feature #12912: An endless range `(1..)`
I tried to structure my post to make it clear that there a two different types of uses for ranges. Of course `..5` where the left bound is -­­∞, wouldn't make sense for iterating. But being able to skip the right bound, but not the left,... sowieso (So Wieso)
07:19 AM Feature #12912: An endless range `(1..)`
sowieso (So Wieso) wrote:
> >It is better to have ary[..1] as a consistency. But it will cause a shift/reduce conflict. Anyway, ary[0..1] looks not so bad to me since it have no cursed negative index. So I don't push it.
> ...
A shif...
duerst (Martin Dürst)
06:24 AM Feature #12912: An endless range `(1..)`
I like this change.
**As for general ranges**:
I was somewhat comfortable with `.step`, but this is much nicer. Having a short global variable for Float::INFINITY would be fine too, imho. Something like `0..Inf` or `0..INF`.
**...
sowieso (So Wieso)
07:39 AM Revision fa7fa928 (git): mjit.c: clean so file on Windows
* mjit.c (dlclose): use FreeLibrary to manage the reference count
on the loaded module properly.
* mjit.c (clean_so_file): clean shared object file after unloaded,
in-use files cannot be removed on Windows.
git-svn-id: svn+ssh://ci...
nobu (Nobuyoshi Nakada)
05:20 AM Revision ea631cc1 (git): mjit.c: fix cc arguments
* mjit.c (CC_LIBS): MJIT_LIBS is used only on Windows.
* mjit.c (compile_c_to_so): moved source and shared object files
to simplify indexes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63272 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
05:20 AM Revision 6dafb4c9 (git): ruby.c: moved libdir
* ruby.c (ruby_init_loadpath_safe): moved libdir name inside
LOAD_RELATIVE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
04:36 AM Revision 4eb2c1e1 (git): ruby.c: fix compilation error
* ruby.c (ruby_init_loadpath_safe): fix compilation error when
ENABLE_MULTIARCH but not universal binary.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63270 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
02:02 AM Revision 67800ea9 (git): mjit.c: prefix and archdir in init
* ruby.c (ruby_init_loadpath_safe): store prefix and archlibdir
paths.
* mjit.c (compile_c_to_so, init_header_filename): use just one
library path on Windows.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63269 b2dd03c8-39d4-4d...
nobu (Nobuyoshi Nakada)
01:58 AM Revision 9ce0a846 (git): rbinstall.rb: fix timing to read stub
* tool/rbinstall.rb ($script_installer.stub): read stub file on
demand. as `$cmdtype` is set to "exe" in parse_args, it is not
set yet when `$script_installer` is defined.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63268 b2d...
nobu (Nobuyoshi Nakada)
12:30 AM Bug #14607: Fix use of the rb_profile_frames start parameter
I need to remember why such special (additional) calculation is done, so I left this ticket.
I need to remember...
ko1 (Koichi Sasada)
12:15 AM Bug #14607 (Open): Fix use of the rb_profile_frames start parameter
ko1 said I shouldn't have committed the patch, so I reverted. Sorry! tenderlovemaking (Aaron Patterson)
12:13 AM Revision c03f86b3 (git): Revert "Fix use of `rb_profile_frames` start parameter"
This reverts commit r63265.
ko1 said I should not have committed this! I'm sorry!
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63267 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
tenderlovemaking (Aaron Patterson)

04/26/2018

10:49 PM Bug #14607 (Closed): Fix use of the rb_profile_frames start parameter
Applied in changeset trunk|r63265.
----------
Fix use of `rb_profile_frames` start parameter
rb_profile_frames was always behaving as if the value given for the
start parameter was 0.
The reason for this was that it would check if (st...
tenderlovemaking (Aaron Patterson)
10:49 PM Revision 707cbe6f (git): * 2018-04-27
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63266 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
10:49 PM Revision d676ad10 (git): Fix use of `rb_profile_frames` start parameter
rb_profile_frames was always behaving as if the value given for the
start parameter was 0.
The reason for this was that it would check if (start > 0) { then
continue without updating the control frame pointer or anything other
than decr...
tenderlovemaking (Aaron Patterson)
09:04 PM Feature #12607: Ruby needs an atomic integer
I don't like pulling in the entire concurrent-ruby gem only for a few lines of code. I've implemented my own slow but thread-safe Counter here:
https://github.com/mperham/sidekiq/blob/b58c505df3501d8c1de5207552d68dd2d9abea31/lib/side...
mperham (Mike Perham)
12:37 PM Feature #14715 (Open): Pathname#== should compare by #realpath instead of #to_s
Hi Core Team,
I'd like to report a confusing behaviour I noticed with Pathname#== comparison method.
See the following example:
Supposed I've created a file "file.txt" on /home/user/ directory.
~~~ ruby
require 'pathname'
...
hspazio (Fabio Pitino)
12:36 PM Revision 81f02142 (git): win32/Makefile.sub: LIBDIR_BASENAME
* mjit.c (init_header_filename): support LIBDIR_BASENAME.
* win32/Makefile.sub (config.h): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63264 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
12:36 PM Revision 8036af48 (git): ruby.c (ruby_init_loadpath_safe): constify
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63263 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
11:51 AM Bug #14714: Ruby 2.5.1 Segmentation Fault in GC
As it occurs in GC, it may reproduce with a few test by setting `GC.stress` to `true`. nobu (Nobuyoshi Nakada)
11:02 AM Bug #14714: Ruby 2.5.1 Segmentation Fault in GC
I have reverted to ruby 2.4.4 and done rspec/spec/features and the problem does not occur, to this increases the probability that it is a ruby 2.5.1 problem. obromios (Chris Drane)
10:28 AM Bug #14714 (Closed): Ruby 2.5.1 Segmentation Fault in GC
I am using Ruby 2.5.1, and running ruby on rails 5.1.4 with rspec-rails 3.7.2 and capybara 3.0.2.
When I run my feature tests, i.e. rspec spec/features, I get a segmentation fault. When I found the test in which the fault is occurri...
obromios (Chris Drane)
11:05 AM Bug #11779: Module#using does not make sense as a method
From RSpec:
~~~ ruby
let(:test_class) do
Class.new(described_class) do
private
using SomeRefiningModule # => RuntimeError: Module#using is not permitted in methods
def foo
end
end
end
~~~
AlexWayfer (Alexander Popov)
09:32 AM Bug #14713: <internal:prelude>:132:in `__write_nonblock': Protocol wrong type for socket (Errno::EPROTOTYPE)
ioquatix (Samuel Williams) wrote:
> Very occasionally on macOS, using Ruby 2.5.0, I get the above error.
It happens often on macOS.
> ...
Probably, but not sure.
nobu (Nobuyoshi Nakada)
05:00 AM Bug #14713 (Closed): <internal:prelude>:132:in `__write_nonblock': Protocol wrong type for socket (Errno::EPROTOTYPE)
Very occasionally on macOS, using Ruby 2.5.0, I get the above error.
```
Traceback (most recent call last):
23: from /Users/samuel/.rvm/gems/ruby-2.5.0/gems/async-1.6.0/lib/async/task.rb:74:in `block in initialize'
22: from /User...
ioquatix (Samuel Williams)
09:30 AM Feature #14701: If the object is not frozen, I want to be able to redefine the compound assignment operator.
I think it is enough to change the meaning of
~~~ ruby
x += a
~~~
to
~~~ ruby
if x.respond_to?(:'+=')
x.send(:'+=',a)
else
x = x + a
end
~~~
Matz rejected this in http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/...
masa16 (Masahiro Tanaka)
09:28 AM Feature #14701: If the object is not frozen, I want to be able to redefine the compound assignment operator.
nobu (Nobuyoshi Nakada) wrote:
> It seems a different story from `+=`.
I am sorry for getting off the point, but I wanted to say that `add!` method does not solve the problem.
> ...
This cannot be a solution because both inplace a...
masa16 (Masahiro Tanaka)
08:56 AM Feature #14701: If the object is not frozen, I want to be able to redefine the compound assignment operator.
masa16 (Masahiro Tanaka) wrote:
> Former NArray had `add!` method, but it results in a confused result.
It seems a different story from `+=`.
> ...
It feels that `a[0,true]` should return `inplace` object.
Otherwise `+=` would no...
nobu (Nobuyoshi Nakada)
07:21 AM Feature #14701: If the object is not frozen, I want to be able to redefine the compound assignment operator.
As first thing to say, we do not expect changing behavior of `+=` for ruby built-in types such as string or array.
We want to have an extension point to redefine `+=` for our library such as NArray.
How it should behave is the design...
sonots (Naotoshi Seo)
06:03 AM Feature #14701: If the object is not frozen, I want to be able to redefine the compound assignment operator.
I agree with matz and eregon.
Honestly, I first thought that it was a good idea to split `+` and `+=`. But by investigating Python, I now think that it easily leads to strange behavior. One example is what eregon and sonots said:
...
mame (Yusuke Endoh)
04:24 AM Feature #14701: If the object is not frozen, I want to be able to redefine the compound assignment operator.
> Most notably, it means other variables pointing to the same NArray would get modified in place by +=, which seems highly unexpected.
It seems expected and natural for me. It behaves similarly with other destructive methods of ruby:
...
sonots (Naotoshi Seo)
03:58 AM Feature #14701: If the object is not frozen, I want to be able to redefine the compound assignment operator.
What about
```ruby
na = Numo::Int32[5, 6]
a = na.inplace
a += 1
```
nobu (Nobuyoshi Nakada)
01:17 AM Feature #14701: If the object is not frozen, I want to be able to redefine the compound assignment operator.
Former NArray had `add!` method, but it results in a confused result.
~~~ ruby
require 'narray'
a = NArray.int(2,2).indgen!
a[1,true] += 10
p a
# => NArray.int(2,2):
# [ [ 0, 11 ],
# [ 2, 13 ] ]
a = NArray.int(2,...
masa16 (Masahiro Tanaka)
06:04 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
samuel@oriontransfer.org wrote:
> If you are unsure of a good definition for the reactor
> pattern, I think this is a good one:
> https://en.wikipedia.org/wiki/Reactor_pattern except the
> assumption that you need to invert flow con...
normalperson (Eric Wong)
04:57 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
If you are unsure of a good definition for the reactor pattern, I think this is a good one: https://en.wikipedia.org/wiki/Reactor_pattern except the assumption that you need to invert flow control which is not necessary using fibers.
...
ioquatix (Samuel Williams)
12:12 AM Bug #14712 (Closed): test_step does not work for implementations with full 64-bit fixnum
Applied in changeset trunk|r63261.
----------
test_numeric.rb: loose precision assertion
* test/ruby/test_numeric.rb (TestNumeric#test_step): remove a
loose precision assertion, as Float cannot keep complete
precision. [ruby-core:...
nobu (Nobuyoshi Nakada)
12:12 AM Revision 4ac77028 (git): * 2018-04-26
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63262 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
12:12 AM Revision b7d260f1 (git): test_numeric.rb: loose precision assertion
* test/ruby/test_numeric.rb (TestNumeric#test_step): remove a
loose precision assertion, as Float cannot keep complete
precision. [ruby-core:86684] [Bug #14712]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63261 b2dd03c8-39d4-...
nobu (Nobuyoshi Nakada)

04/25/2018

07:45 PM Feature #14709: Proper pattern matching
On considering a bit more, I've come up with a few syntax variants for such a feature.
Preference towards avoiding `%p` and other shorthands in favor of a more self-descriptive word like `matches` or `match`.
### 1. matches
Ther...
baweaver (Brandon Weaver)
05:22 AM Feature #14709: Proper pattern matching
## On Pattern Matching in Other Languages
For continuity, we should also go over implementations in other languages.
Note that I am not an expert in any of these languages, and only proficient in Javascript. I would encourage other...
baweaver (Brandon Weaver)
02:53 AM Feature #14709: Proper pattern matching
It should also be mentioned that the way I achieved the pattern matching mentioned above was by using a status container in the style of Elixir (`{:ok, result}` except `[true, result]`):
https://github.com/baweaver/qo/blob/83577f80a47...
baweaver (Brandon Weaver)
01:35 AM Feature #14709: Proper pattern matching
It was mentioned to me on Reddit that I should detail exactly what cases of pattern matching would entail.
For the case of Qo, these include four primary categories:
* Array matches Array
* Array matches Object
* Hash matches Has...
baweaver (Brandon Weaver)
12:39 AM Feature #14709: Proper pattern matching
I am the author of aforementioned Qo, so I believe I can shed some light on a few things:
* The thinking behind Qo
* Reusable syntax features
* Making it feel like Ruby
* Shortcomings of current syntax
* Performance considerations...
baweaver (Brandon Weaver)
05:35 PM Bug #14712 (Closed): test_step does not work for implementations with full 64-bit fixnum
In test/ruby/test_numeric.rb, in test_step, there's the following logic:
```ruby
assert_operator((0.0).step(bignum.to_f, 1.0).size, :>=, bignum) # may loose precision
```
where bignum is
```
bignum = RbConfig::LIMITS['FIXNUM_...
headius (Charles Nutter)
04:53 PM Feature #14701: If the object is not frozen, I want to be able to redefine the compound assignment operator.
I agree with matz.
Python's inplace operators sound like a fundamental design flaw to me,
because `a += b` is no longer `a = a + b` but sometimes something completely different and there is no way to differentiate at the source level...
Eregon (Benoit Daloze)
03:22 PM Feature #14701: If the object is not frozen, I want to be able to redefine the compound assignment operator.
ANOTHER IDEA:
How about allowing to redefine `+!` instead of `+=` although it looks not intuitive for me, but it would be a ruby way.
sonots (Naotoshi Seo)
03:19 PM Feature #14701: If the object is not frozen, I want to be able to redefine the compound assignment operator.
> Use append instead of += for arrays.
`+=` operation for NArray is totally different with `append` for ruby array.
What we want to do with `+=` operation for NArray is to do element-wise addition like
```
narray([1, 2, 3]) += na...
sonots (Naotoshi Seo)
02:00 PM Revision 6509c178 (git): [DOC] Fix capitallizing [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63260 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
11:57 AM Bug #14711 (Closed): URI::HTML5ASCIIINCOMPAT returns expression
Applied in changeset trunk|r63259.
----------
common.rb: unused constant
* lib/uri/common.rb (URI::HTML5ASCIIINCOMPAT): remove the constant
which has been unused since r40460, and wrong since r49069 due
to the operator precedence. ...
nobu (Nobuyoshi Nakada)
07:00 AM Bug #14711 (Closed): URI::HTML5ASCIIINCOMPAT returns expression
Since Ruby 2.3.0 URI::HTML5ASCIIINCOMPAT returns expression instead of an array.
I guess it's a backward compatibility issue.
```
➜ ~ RBENV_VERSION=2.2.5 ruby -e "require 'uri'; p URI::HTML5ASCIIINCOMPAT"
[#<Encoding:UTF-7 (dum...
aderyabin (Andrey Deryabin)
11:56 AM Revision 27e97285 (git): common.rb: unused constant
* lib/uri/common.rb (URI::HTML5ASCIIINCOMPAT): remove the constant
which has been unused since r40460, and wrong since r49069 due
to the operator precedence. [ruby-core:86678] [Bug #14711]
git-svn-id: svn+ssh://ci.ruby-lang.org/rub...
nobu (Nobuyoshi Nakada)
10:43 AM Bug #12305: "can't remove str from str_id" at unregister_sym
Was there any resolution to this issue? We are encountering the same issue now that we have upgraded our Ruby from 2.1.6 to 2.3.3. This happens randomly throughout our framework when we are trying to run regression.
Any and all infor...
eramsey (Eric Ramsey)
08:16 AM Revision 512041bf (git): Avoid "should_not raise_error" in Thread#raise spec
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63258 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eregon (Benoit Daloze)
08:15 AM Revision 9498d66c (git): Fix style in Thread#raise spec
* Add space after { and before }.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63257 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eregon (Benoit Daloze)
08:11 AM Revision 66058dd5 (git): Use Thread.pass in loop{} to check interrupts more often
* The spec now runs in ~5ms vs ~100ms before.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63256 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eregon (Benoit Daloze)
08:03 AM Misc #14698: DevelopersMeeting20180517Japan
> please follow the format to make easy to copy&paste.
@ko1 I've updated my comment with a list of "functional programming" tickets.
zverok (Victor Shepelev)
01:54 AM Misc #14698: DevelopersMeeting20180517Japan
Hi,
I will copy & paste topics to ticket's "description" later so that please follow the format to make easy to copy&paste.
mrkn's exmaple is perfect:
```
* [Feature #14697] Introducing Range#% as an alias to Range#step (mrkn)
...
ko1 (Koichi Sasada)
01:47 AM Misc #14698: DevelopersMeeting20180517Japan
I would also like to propose that this be discussed as it recently came up: https://bugs.ruby-lang.org/issues/14709
Though it may be premature.
baweaver (Brandon Weaver)
06:45 AM Bug #14708 (Closed): argument stack underflow (-1) (SyntaxError)
Applied in changeset trunk|r63255.
----------
compile.c: fix unconditional branch optimization
* compile.c (iseq_peephole_optimize): add dummy `putnil` after a
`jump` replacing an unconditional branch, to adjust removed
`dup`. [ru...
nobu (Nobuyoshi Nakada)
06:45 AM Revision 067066fc (git): compile.c: fix unconditional branch optimization
* compile.c (iseq_peephole_optimize): add dummy `putnil` after a
`jump` replacing an unconditional branch, to adjust removed
`dup`. [ruby-core:86666] [Bug #14708]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63255 b2dd03c8-39d...
nobu (Nobuyoshi Nakada)

04/24/2018

11:28 PM Feature #14710 (Open): I'd like to know from C API that "It has only one reference to Ruby object" to determine whether it is a temporary object.
I'd like to know from C API that "It has only one reference to Ruby object" to determine whether it is a temporary object.
Because broadcasting with python numpy is faster for
(1 line case)
y = x + 1 + 1
than
(2 ...
naitoh (Jun NAITOH)
08:32 PM Feature #14705 (Closed): [PATCH] eval.c (ruby_setup): disable THP on Linux
Applied in changeset trunk|r63253.
----------
eval.c (ruby_setup): disable THP on Linux
Transparent Huge Pages (THP) decrease the effectiveness of
CoW-friendly GC because it decreases page granularity. That is,
a forked process dirtyi...
normalperson (Eric Wong)
08:32 PM Revision b768dc22 (git): * 2018-04-25
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
08:31 PM Revision acbbf8b0 (git): eval.c (ruby_setup): disable THP on Linux
Transparent Huge Pages (THP) decrease the effectiveness of
CoW-friendly GC because it decreases page granularity. That is,
a forked process dirtying one bit of CoW-shared memory can
trigger a copy of a huge page (2MB on x86-64) instead ...
Eric Wong
07:35 PM Bug #13524: miniruby: [BUG] Segmentation fault at 0x0055e487e00230 ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-li
All, I modified Shyouhei's Dockerfile to use alpine3.7 and jemalloc 5.0.1 and it no longer segfaults:
~~~
FROM ruby:2.4.4-alpine3.7
~~~
~~~
Step 8/10 : ADD segv.c /tmp/segv.c
---> be86245150aa
Step 9/10 : RUN gcc -ljemall...
mperham (Mike Perham)
04:19 PM Feature #14709: Proper pattern matching
I think only matz can answer that.
On a side note, I am not aware of a issue request about it. Has this
already been suggested, or is it only a presentation? If it has not
yet been proposed formally through an issue request on the t...
shevegen (Robert A. Heiler)
03:19 PM Feature #14709 (Closed): Proper pattern matching
On RubyKaigi 2017, there was a [presentation](http://rubykaigi.org/2017/presentations/yotii23.html) of Yuki Torii about possible implementation of pattern matching.
The syntax proposed in presentation was:
```ruby
res = [:ng, 500]...
zverok (Victor Shepelev)
02:45 PM Bug #14708 (Closed): argument stack underflow (-1) (SyntaxError)
~~~
ruby -e '[].each { false || [].each { } }' # OK
ruby -e '[].each { nil.nil? || [].each { } }' # OK
ruby -e '[].each { true || [].each { } }'
-- raw disasm--------
<L498253648>
trace: 100
0000 nop ...
tim.leppard (Tim Leppard)
12:40 PM Feature #13683: Add strict Enumerable#single
How about `Enumerable#just(num=1)` or `Enumerable#only(num=1)`?
nobu (Nobuyoshi Nakada)
12:26 PM Bug #14707 (Closed): String#scan(/\K/) has changed its behavior in ruby 2.5
Applied in changeset trunk|r63252.
----------
string.c: fix scanned substring with `\K`
* string.c (scan_once): fix the matched substring with `\K`, the
beginning of that string may differ from the matched position.
[ruby-core:8666...
nobu (Nobuyoshi Nakada)
11:48 AM Bug #14707 (Closed): String#scan(/\K/) has changed its behavior in ruby 2.5
It seems `\K` does not work as expected any more:
```
% ruby -ve 'p "a1 a2 a3".scan(/a\K./)'
ruby 2.3.7p456 (2018-03-28 revision 63014) [x86_64-darwin17]
["1", "2", "3"]
ruby 2.4.5p297 (2018-03-29 revision 63036) [x86_64-darwi...
knu (Akinori MUSHA)
12:25 PM Revision 2c8f16e6 (git): string.c: fix scanned substring with `\K`
* string.c (scan_once): fix the matched substring with `\K`, the
beginning of that string may differ from the matched position.
[ruby-core:86663] [Bug #14707]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63252 b2dd03c8-39d4-4d8...
nobu (Nobuyoshi Nakada)
12:22 PM Feature #12607: Ruby needs an atomic integer
Should this issue be assigned to Matz? rosenfeld (Rodrigo Rosenfeld Rosas)
09:53 AM Feature #14706: Atomic Integer incr/decr
I guess this may come up several times in the future. Would
this be a good candidate for discussion in the upcoming
ruby developer meeting? I don't want to suggest it myself
since I was not the one who started the thread (that was
...
shevegen (Robert A. Heiler)

04/23/2018

11:46 PM Revision 3471d0f6 (git): rescue Errno::EPROTOTYPE
* test/webrick/test_httpserver.rb (test_gigantic_request_header):
Errno::EPROTOTYPE is sometimes raised on Mac OS X 10.10.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
09:40 PM Feature #14706: Atomic Integer incr/decr
Jeremy, good point. I would agree that the different semantics are enough to justify a different class. Namespacing it within the Thread class also seems reasonable, e.g. `Thread::Counter` so it would be available if you `require 'thre... mperham (Mike Perham)
09:27 PM Feature #14706: Atomic Integer incr/decr
Related ticket with some discussion already (and partially rejected) https://bugs.ruby-lang.org/issues/12607 rafaelfranca (Rafael França)
09:18 PM Feature #14706: Atomic Integer incr/decr
I think this feature in general is a good candidate for addition to stdlib.
I don't think the `Integer` class is appropriate for this, because (some) Integers are immediate values, and all Integers are frozen, and you can't modify the...
jeremyevans0 (Jeremy Evans)
09:08 PM Feature #14706: Atomic Integer incr/decr
I've always missed that feature as well, so I'm +1 to this. This and many other built-in thread-safe helpers by the way ;) rosenfeld (Rodrigo Rosenfeld Rosas)
08:53 PM Feature #14706 (Closed): Atomic Integer incr/decr
Ruby does not any thread-safe way to implement simple counters without a Mutex. Today Ruby provides Integer#succ but this funcalls "+", making it thread-unsafe as far as I know.
I'd propose adding Integer#incr(amount=1) and Integer#r...
mperham (Mike Perham)
04:20 PM Revision 6c4cab00 (git): * 2018-04-24
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63250 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
04:20 PM Revision f84efbaa (git): revert r63212
except test_jit.rb.
In some situations, this generates a wrong code. I'll add a test for it
later but let me revert this to make it work for now.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63249 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
01:56 PM Feature #14697: Introducing Range#% as an alias to Range#step
I'm supposing that this new notation of Range#step is mostly used for slicing numerical arrays like Numo::NArray.
This usecase is very similar to Python's slice notation used for slicing numpy's arrays.
With this new notation, `ary[:...
mrkn (Kenta Murata)
12:51 PM Revision 4cae5353 (git): compile.c: copy a short insn with leave
* compile.c (iseq_peephole_optimize): copy not only `leave`, with
a non-operand instruction, which are not longer than `jump`.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63248 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
12:09 PM Revision 425118b8 (git): [DOC] URI::Generic#port returns Integer [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63247 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
09:52 AM Revision c6ad7a62 (git): compile.c: insn before pop
* compile.c (iseq_peephole_optimize): more eliminatable
instructions before `pop` without side effects.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63246 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
07:02 AM Misc #14698: DevelopersMeeting20180517Japan
zverok (Victor Shepelev) wrote:
> > your favorite ticket numbers you want to ask to discuss with your SHORT comment or summary.
> ...
I would second this list, especially #6284 (composition of Procs) and #13581 (syntax sugar for method...
baweaver (Brandon Weaver)
07:00 AM Feature #13581: Syntax sugar for method reference
sevos (Artur Roszczyk) wrote:
> After a while I am becoming a bigger fan of the triple colon operator. We could implement a class MethodSelector for handling the logic and the operator would be expected to return an instance of the clas...
baweaver (Brandon Weaver)
05:54 AM Revision 87ca4f30 (git): test/ruby/test_io.rb: add extra Thread#join to delay close
Maybe this fixes some CI failures. Also, use different timeouts
for each item for hopefully easier diagnosis.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
02:07 AM Revision 1222560a (git): thread_pthread.c: fallback to CLOCK_REALTIME
* thread_pthread.c (Init_native_thread): fallback to the default
CLOCK_REALTIME when failed to set to CLOCK_MONOTONIC, e.g. on
Solaris. [Misc #14497]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63244 b2dd03c8-39d4-4d8f-98ff-8...
nobu (Nobuyoshi Nakada)
 

Also available in: Atom