Project

General

Profile

Activity

From 04/30/2020 to 05/06/2020

05/06/2020

11:33 PM Feature #16786: Light-weight scheduler for improved concurrency.
> My big concern here is that this does not cover why #13618 was deficient and this complete greenfield implementation solves the issues it had?
This proposal is really an evolution of #13618. The reasons why that proposal did not mov...
ioquatix (Samuel Williams)
11:25 PM Bug #16831: Running `Pathname#glob` with `File::FNM_DOTMATCH` option loses `.` and `..`
nobu (Nobuyoshi Nakada) wrote in #note-1:
> Actually `.` and `..` entries are kept.
> ...
That's true, but I feel the following code should have consistent results:
``` ruby
require 'pathname'
pathname = Pathname.pwd
Pathname...
jnchito (Junichi Ito)
06:40 AM Bug #16831: Running `Pathname#glob` with `File::FNM_DOTMATCH` option loses `.` and `..`
Actually `.` and `..` entries are kept.
Just `Pathname("/Users/jnito/dev/..")` is cleaned up as `Pathname("/Users/jnito")`.
nobu (Nobuyoshi Nakada)
10:42 PM Feature #16832: Use #name rather than #inspect to build "uninitialized constant" error messages
From your example, why don't we see `uninitialized constant Shipit::Stack(id: integer, environment: string, ...)::Foo`?
I feel calling `name` here is a hack, if people return a useless String for `inspect` that's the bug, `inspect` is...
Eregon (Benoit Daloze)
01:01 PM Feature #16832: Use #name rather than #inspect to build "uninitialized constant" error messages
Nobu recommended creating an issue request here, so I won't comment on that in
itself - but I would like to point out that ruby users may wonder why/if/how
to use #name rather than #inspect, if applicable, so that should be considered
...
shevegen (Robert A. Heiler)
11:38 AM Feature #16832 (Closed): Use #name rather than #inspect to build "uninitialized constant" error messages
While debugging a bug in Rails (https://github.com/rails/rails/pull/37632#issuecomment-623387954) I noticed `NameError` calls `inspect` on the `const_get` receiver to build its error message.
The problem is that some libraries such as...
byroot (Jean Boussier)
10:32 PM Bug #16835: SIGCHLD + system new behavior on 2.6
Oh that's definitely interesting. Both on my mac and on a freebsd server I spot-checked on it outputs nothing. But evidently there isn't a settled "correct" answer for how this should behave. maths22 (Jacob Burroughs)
10:18 PM Bug #16835: SIGCHLD + system new behavior on 2.6
If I compile that program on OpenBSD, it outputs `Handler`. So system(3) behavior appears to be operating-system (or libc) specific. jeremyevans0 (Jeremy Evans)
10:01 PM Bug #16835: SIGCHLD + system new behavior on 2.6
Also I have tested and the old behavior (not calling the CLD signal handler) does appear to match the glibc behavior
``` c
#include <stdlib.h>
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
void proc_exit()
{
pr...
maths22 (Jacob Burroughs)
09:39 PM Bug #16835: SIGCHLD + system new behavior on 2.6
jeremyevans0 (Jeremy Evans) wrote in #note-2:
> I agree that based on a review of the commit message, this change was unintended, and since the issue was not known previously, it was not documented.
> ...
Going by https://github.com/ru...
maths22 (Jacob Burroughs)
09:06 PM Bug #16835: SIGCHLD + system new behavior on 2.6
I agree that based on a review of the commit message, this change was unintended, and since the issue was not known previously, it was not documented.
However, I think the new behavior makes more sense. `system` creates a child proces...
jeremyevans0 (Jeremy Evans)
08:16 PM Bug #16835 (Rejected): SIGCHLD + system new behavior on 2.6
In rubies < 2.5, the `system` command did not trigger sigchld signal traps. On ruby >= 2.6 it does. This appears to have been introduced by https://github.com/ruby/ruby/commit/054a412d540e7ed2de63d68da753f585ea6616c3 . To observe the ... maths22 (Jacob Burroughs)
07:55 PM Feature #16833: Add Enumerable#empty?
sawa wrote:
> If that was what you meant, then that is not the case. Array mixes-in
> ...
Happens to me as well a lot - I always mix these two up. May be because
the name is so similar. :)
To the suggestion itself: I have no part...
shevegen (Robert A. Heiler)
04:44 PM Feature #16833: Add Enumerable#empty?
Enumerators can behave very differently than arrays. Some have side-effects. What's supposed to happen with those?
```
require 'stringio'
s = StringIO.new("first\nsecond\nthird\nlast").each_line
s.first # => "first"
s.first # => "...
marcandre (Marc-Andre Lafortune)
04:40 PM Feature #16833: Add Enumerable#empty?
Your use case is not clear. Why can't you do this?
```ruby
table_rows = [{ data: ['First', 'Second', 'Third'], config: {} }, { data: [4, 5, 6], config: { color: 'red' } }].to_enum
table_rows.to_a.dig(0, :data) # => ["First", "Second", "...
sawa (Tsuyoshi Sawada)
04:34 PM Feature #16833: Add Enumerable#empty?
Not sure what you mean by
>Enumerator, something mixed into Array
Do you mean this?
> ...
If that was what you meant, then that is not the case. `Array` mixes-in `Enumerable`, not `Enumerator`.
Even if that was the case, it is not cl...
sawa (Tsuyoshi Sawada)
02:09 PM Feature #16833 (Assigned): Add Enumerable#empty?
It was surprising to me that Enumerator, something mixed into Array, does not include `#empty?`. I think it is reasonable to assume people may have to guard iterating and other logic based on the emptiness of an enumerator, such was my c... f3ndot (Justin Bull)
05:58 PM Revision 545d2ab7 (git): leakchecker.rb: try `lsof`
nobu (Nobuyoshi Nakada)
05:53 PM Revision ce00fda9 (git): Suffixed memory leak tests as "memory_leak"
So that `TEST_EXCLUDES` option in common.mk works. nobu (Nobuyoshi Nakada)
05:51 PM Revision 01e0e4c4 (git): Cut down warm-up loops and gain main/warm-up ratio
nobu (Nobuyoshi Nakada)
05:50 PM Revision eb012595 (git): Share logically equivalent functions
nobu (Nobuyoshi Nakada)
05:49 PM Revision 2273af56 (git): * 2020-05-07 [ci skip]
git[bot]
05:47 PM Revision 1e3c910b (git): Enable OPT_CHECKED_RUN on MJIT for debugging
Trying to debug errors like
http://ci.rvm.jp/results/trunk-mjit@silicon-docker/2921397
http://ci.rvm.jp/results/trunk-mjit@silicon-docker/2894526
k0kubun (Takashi Kokubun)
05:25 PM Bug #16834 (Closed): rb_profile_frame_classpath only recognize class singleton methods, not module singleton methods
Proposed patch: https://github.com/ruby/ruby/pull/3084
Right now `SomeClass.method` is properly named, but `SomeModule.method`
is displayed as `#<Module:0x000055eb5d95adc8>.method` which makes
profiling annoying.
This particularl...
byroot (Jean Boussier)
11:40 AM Misc #16775: DevelopersMeeting20200514Japan
* [Feature #16832] Use `#name` rather than `#inspect` to build "uninitialized constant" error messages (byroot)
* As `#name` on `Module` and `Class` is more likely to return a proper constant name than `#inspect`
byroot (Jean Boussier)
07:06 AM Revision 46b93175 (git): Fakes IPSocket.getaddress in the whole method
To get rid of calling `getaddrinfo`, which may keep FDs
internally.
nobu (Nobuyoshi Nakada)
05:09 AM Revision de3f7259 (git): Makes nil-safe
nobu (Nobuyoshi Nakada)
04:47 AM Revision b247ac08 (git): Ignore FDs kept by system library
`getaddrinfo` on macOS seems keeping FDs to query host names
internally.
nobu (Nobuyoshi Nakada)
03:45 AM Revision 7397b9f7 (git): Fixed leaked fds
nobu (Nobuyoshi Nakada)
01:09 AM Revision 039a8ef7 (git): leakchecker.rb: search /dev/fd too
It is more popular than /proc/self/fd. nobu (Nobuyoshi Nakada)
12:51 AM Revision 3a6dad9d (git): [DOC] Removed no longer meaningful part [ci skip]
As now `Object#===` document is separated from `rb_equal`, this note
no longer makes sense.
nobu (Nobuyoshi Nakada)
12:47 AM Revision b0498caa (git): Removed unnecessary duplicate code
`rb_equal` may be inlined in `case_equal` and actually same code
is generated twice.
nobu (Nobuyoshi Nakada)

05/05/2020

10:56 PM Misc #16803: Discussion: those internal macros reside in public API headers
> also think it makes sense: both are internal, and one of them of make install-ed and the other not, because include/ruby/internal/ needs to be public headers to compile correctly.
Agreed. I think because @nobu was going to use `int...
ioquatix (Samuel Williams)
09:39 PM Misc #16803: Discussion: those internal macros reside in public API headers
shyouhei (Shyouhei Urabe) wrote in #note-6:
> https://github.com/ruby/ruby/pull/3079
Looks a lot clearer to me :)
I think indeed having `ruby/internal/attr/const.h` instead of `ruby/impl/attr/const.h` would be even clearer,
and for the...
Eregon (Benoit Daloze)
06:43 AM Misc #16803: Discussion: those internal macros reside in public API headers
ioquatix (Samuel Williams) wrote in #note-7:
> If it was me, I'd literally call it `ruby/internal/file.h` to make it very clear, along with `ruby3` -> `rb_internal_/RB_INTERNAL_`
> ...
That arrangement could be confusing when @nobu mer...
shyouhei (Shyouhei Urabe)
05:32 AM Misc #16803: Discussion: those internal macros reside in public API headers
If it was me, I'd literally call it `ruby/internal/file.h` to make it very clear, along with `ruby3` -> `rb_internal_/RB_INTERNAL_`
Assuming `impl` means implementation, it's not clear that it's private, but `internal` does mean a cer...
ioquatix (Samuel Williams)
10:49 PM Bug #16831 (Closed): Running `Pathname#glob` with `File::FNM_DOTMATCH` option loses `.` and `..`
Running `Dir.glob`, `Pathname.glob` with `File::FNM_DOTMATCH` option keeps `.` and `..` as their basename:
``` ruby
require 'pathname'
pathname = Pathname.pwd
#=> #<Pathname:/Users/jnito/dev>
# Dir.glob keeps "." and ".."
Dir...
jnchito (Junichi Ito)
10:27 PM Revision e79e5e0b (git): Generalize the explanation of the side effect of the rb_equal() optimization
Eregon (Benoit Daloze)
10:20 PM Revision 48d509ce (git): Document rb_equal() and clarify the relation with Kernel#===
* Multiple times people have been confused and believed rb_equal()
called #=== but it does not, it calls #==.
* This optimization has a subtle side effect for Float::NAN,
which is now documented.
Eregon (Benoit Daloze)
10:09 PM Revision 00a9d697 (git): Remove redundant check in rb_obj_cmp()
* rb_equal() already checks using `obj1 == obj2`. Eregon (Benoit Daloze)
09:06 PM Bug #16829: Exceptions raised from within an enumerated method lose part of their stacktrace
I've made by best to improve the documentation in 7bde981.
@nobu: is it feasible to improve stacktraces raised within fibers?
marcandre (Marc-Andre Lafortune)
08:36 PM Bug #16829: Exceptions raised from within an enumerated method lose part of their stacktrace
I believe this is due to the fact that `next`'s implementation uses a `Fiber`.
If you use `to_a` instead of `next`, you will get the stacktrace you were hoping for.
If you replace your definition of `execution_method_a` with:
``...
marcandre (Marc-Andre Lafortune)
09:04 PM Revision 86391a55 (git): * 2020-05-06 [ci skip]
git[bot]
09:04 PM Revision 7bde9812 (git): Improve documentation for Enumerator#next, next_values, peek and peek_values.
[DOC] [#16829] Marc-Andre Lafortune
09:04 PM Revision 77f19d26 (git): Fix gemspec
Marc-Andre Lafortune
08:23 PM Feature #16822: Array slicing: nils and edge cases
I'm strongly against this, for compatibility reasons and because current choice is a consistent convention.
Before proposing any incompatible change, especially for an API that is very much in use, please provide a compelling use case...
marcandre (Marc-Andre Lafortune)
02:33 PM Bug #16830 (Closed): URI.parse raises NoMethodError instead of URI::InvalidURIError
nobu (Nobuyoshi Nakada)
07:58 AM Bug #16830 (Closed): URI.parse raises NoMethodError instead of URI::InvalidURIError
When parsing an invalid uri using `URI.parse` it is possible to get `NoMethodError (undefined method `[]' for nil:NilClass)`. I would expect `URI::InvalidURIError` or similar.
Example with a trace:
```
irb(main):002:0> URI.parse("ld...
csk157 (Česlovas Lopan)
02:29 PM Revision e04418bb (git): [ruby/uri] Check if DN exists
https://bugs.ruby-lang.org/issues/16830
https://github.com/ruby/uri/commit/b4bf8c1217
nobu (Nobuyoshi Nakada)
10:09 AM Bug #16825: JSON#generate gives invalid json string
shyouhei (Shyouhei Urabe) wrote in #note-2:
> Actually it is not an _invalid_ JSON in any sense. RFC 8259 section 4 explicitly allows such duplicated names:
> ...
I am little confused now, RFC states that
> The names within an object SH...
definitely_not_a_bot (Definitely Not A Bot)
04:53 AM Revision f0b5629c (git): envutil.rb: Also alias to #name
nobu (Nobuyoshi Nakada)

05/04/2020

09:15 PM Bug #16829 (Open): Exceptions raised from within an enumerated method lose part of their stacktrace
Consider the following code:
``` ruby
class Test
include Enumerable
def each(&block)
raise "Boom"
end
end
def execution_method_a
Test.new.to_enum(:each).next
end
def execution_method_b
Test.new.each do
...
doliveirakn (Kyle d'Oliveira)
08:50 PM Revision dc13a980 (git): * 2020-05-05 [ci skip]
git[bot]
08:50 PM Revision 5ef019e8 (git): Output compaction stats in one loop / eliminate 0 counts
We only need to loop `T_MASK` times once. Also, not every value between
0 and `T_MASK` is an actual Ruby type. Before this change, some
integers were being added to the result hash even though they aren't
actual types. This patch omit...
tenderlovemaking (Aaron Patterson)
01:38 PM Feature #16828: Introduce find patterns
Is this a bit like .scan(), but applied to the pattern matching style? (Not
sure if I understood this completely but it reminds me a bit of using .scan()
and MatchData on the result possibly.)
shevegen (Robert A. Heiler)
09:03 AM Feature #16828: Introduce find patterns
I am a noob in this area who don't understand what is good about it. Can you show us a bit more realistic example? The proposal kind of seems illustrative to me. shyouhei (Shyouhei Urabe)
04:13 AM Feature #16828 (Closed): Introduce find patterns
I propose to add find pattern to pattern matching.
# Specification
```
find_pattern: Constant(*var, pat, ..., *var)
| Constant[*var, pat, ..., *var]
| [*var, pat, ..., *var]
```
This pattern is similar ...
ktsj (Kazuki Tsujimoto)
09:10 AM Revision 5c250806 (git): Bison 3.5.91 now defaults parse.error to "simple"
nobu (Nobuyoshi Nakada)
08:46 AM Misc #16803: Discussion: those internal macros reside in public API headers
https://github.com/ruby/ruby/pull/3079 shyouhei (Shyouhei Urabe)
04:35 AM Revision 47720e22 (git): Bison 3.59.1 folds yydestruct function header
nobu (Nobuyoshi Nakada)
04:27 AM Revision 6ed7bc83 (git): Fix indentation
ktsj (Kazuki Tsujimoto)
04:27 AM Revision d6389224 (git): Fix pseudo code for NODE_ARYPTN, NODE_HSHPTN
Due to the change in 3893a8dd42fb3bbd71750648c3c0de118955a6ea,
there is no longer a need to put true/false.
ktsj (Kazuki Tsujimoto)
03:28 AM Revision b7e1eda9 (git): Suppress warnings by gcc 10.1.0-RC-20200430
* Folding results should not be empty.
If `OnigCodePointCount(to->n)` were 0, `for` loop using `fn`
wouldn't execute and `ncs` elements are not initialized.
```
enc/unicode.c:557:21: warning: 'ncs[0]' may be used uninitialized ...
nobu (Nobuyoshi Nakada)
03:01 AM Feature #16822: Array slicing: nils and edge cases
Slicing returns nil when the index is out of bounds, and that can be a useful signal that something is wrong and we should fail fast. Having that nil return value provides information that is not present if it's auto-converted to an empt... Dan0042 (Daniel DeLorme)
12:39 AM Revision 39bd1244 (git): Revert 0776198486 for Solaris debug
For some reason 0776198486 didn't fail
https://rubyci.org/logs/rubyci.s3.amazonaws.com/solaris10-gcc/ruby-master/log/20200503T230004Z.log.html.gz
even while it was before 9aa5fe1bf8.
Anyway, there's no need to keep the change anymore.
k0kubun (Takashi Kokubun)

05/03/2020

11:49 PM Revision a8d39a05 (git): Test no .dSYM on macOS
I think 9aa5fe1bf89db8cd215b24d8ddfb668714681b83 helps this issue too. k0kubun (Takashi Kokubun)
11:41 PM Revision 9aa5fe1b (git): Split compile and link for MinGW support
MinGW test_jit fails with no error message. Perhaps linker flags should
not be passed when compilation is happening.
Anyway splitting these stages doesn't matter for performance. So let me
just split it to fix the issue. Probably this h...
k0kubun (Takashi Kokubun)
10:49 PM Revision 07761984 (git): Debug Solaris's MJIT failure
using -Winvalid-pch
https://rubyci.org/logs/rubyci.s3.amazonaws.com/solaris10-gcc/ruby-master/log/20200501T170004Z.fail.html.gz
k0kubun (Takashi Kokubun)
10:16 PM Feature #16791: Shortcut for Process::Status.exitstatus
nobu (Nobuyoshi Nakada) wrote in #note-4:
> Even `exec` works better than `system` & `exit`, unless you need some clean-ups.
You're right. What can you say about this 'vararg require':
```
module Kernel
alias :require_1 :requi...
0x81000000 (/ /)
08:58 PM Revision f72bec2c (git): Travis s390x-linux is too unstable
It has caused errors by ENOSPC like
https://travis-ci.org/github/ruby/ruby/jobs/682520961 too often.
I cleared all cache of Travis yesterday, but it didn't help it. Until
somebody figures out how to fix it, let me exclude it from CI sta...
k0kubun (Takashi Kokubun)
03:27 PM Revision 41e547e6 (git): Fixed constant initializer
An expression using `static const` value seems not considered as
`static const` by Visual C.
nobu (Nobuyoshi Nakada)
03:00 PM Revision dfbbd94e (git): * 2020-05-04 [ci skip]
git[bot]
03:00 PM Revision 5b28f01d (git): Make int-pair-to-real conversion more portable
And utilize more bits even if DBL_MANT_DIG > 53. nobu (Nobuyoshi Nakada)
02:48 PM Misc #16803: Discussion: those internal macros reside in public API headers
shyouhei (Shyouhei Urabe) wrote in #note-4:
> What about those names, like `ruby_impl` or even, `rbimpl`?
I think those are already much clearer than `ruby3_`.
`ruby_internal_` might be even clearer but indeed it's long.
I think ...
Eregon (Benoit Daloze)
08:26 AM Misc #16803: Discussion: those internal macros reside in public API headers
Thank you for looking at the new macros/functions.
Eregon (Benoit Daloze) wrote in #note-3:
> I took a look, these look fine to me, they seem almost all about portability, except `RUBY3_ANYARGS_DISPATCH*`.
Yes. ANYARGS related on...
shyouhei (Shyouhei Urabe)
10:28 AM Revision 5aaa75e7 (git): Update to ruby/spec@032ee74
Eregon (Benoit Daloze)
10:28 AM Revision f646d20a (git): Update to ruby/mspec@d419d0b
Eregon (Benoit Daloze)
07:47 AM Bug #16825: JSON#generate gives invalid json string
Actually it is not an _invalid_ JSON in any sense. RFC 8259 section 4 explicitly allows such duplicated names:
https://tools.ietf.org/html/rfc8259#section-4
shyouhei (Shyouhei Urabe)
07:45 AM Revision 4aca078b (git): Support cc_added_args again
This support was accidentally removed in 818d6d33368a396d9cd3d1a34a84015a9e76c5c8. k0kubun (Takashi Kokubun)
07:41 AM Revision a218cbdf (git): Skip pdb corruption on Visual Studio 2015 as well
It turned out that the pdb corruption happens on Visual Studio 2015 as
well.
https://ci.appveyor.com/project/ruby/ruby/builds/32602953/job/3gj43q18wqeiy729
k0kubun (Takashi Kokubun)
07:34 AM Revision e0c023d1 (git): Skip only .dSYM cleanup on macOS
Fix https://github.com/ruby/ruby/runs/636020145 without skipping too
many tests.
It seems that .c -> .o with debug flags and .o -> .so without debug
flags did not generate .dSYM but now .c -> .so with debug flags seems to
generate a .dS...
k0kubun (Takashi Kokubun)
07:09 AM Feature #15921: R-assign (rightward-assignment) operator
duerst (Martin Dürst) wrote in #note-20:
> I'm not sure if having the assignment on the following line is possible (see below), but I think it should be. I'll submit a feature request if it is not yet possible.
It was removed at http...
nobu (Nobuyoshi Nakada)
12:04 AM Feature #15921: R-assign (rightward-assignment) operator
For me, the main use case is at the end of method chains. Instead of e.g.
```ruby
Word = Struct.new(:text, :count)
words = $stdin.read
.scan(/[-\w']+/)
.group_by(&:downcase)
.collect { |key, value| Word.new(key, v...
duerst (Martin Dürst)
06:29 AM Revision e49ecaed (git): Optimize sin/cos
GCC/Clang can optimize to calculate `sin(x)` and `cos(x)` at once,
when the both are closely called on the same argument.
Similar optimization is possible for `__sinpi(x)` and `__cospi(x)`
if available, which calculate arguments in radi...
nobu (Nobuyoshi Nakada)
05:36 AM Revision 8af098b4 (git): Show unreserved bits only
`RUBY_FL_SEEN_OBJ_ID` can be set by #object_id. nobu (Nobuyoshi Nakada)
04:43 AM Revision cc6afff0 (git): Avoid infinite times of JIT compaction
It's to avoid memory leak for actual usage (because they don't get
unloaded properly), but also for fixing CI timed out due to JIT
compaction taking too long time on --jit-wait (which runs every time)
http://ci.rvm.jp/results/trunk-mjit-...
k0kubun (Takashi Kokubun)
03:07 AM Feature #16827 (Closed): C API for writing custom random number generator that can be used as Random objects
I want to write custom random number generators (RNGs) that can be used as an alternative to a Random object.
Now custom RNGs with `#rand` method can be used for that purpose, but there is the method call overhead in the current impleme...
mrkn (Kenta Murata)

05/02/2020

09:08 PM Misc #16747: Repository reorganization request
vo.x (Vit Ondruch) wrote in #note-7:
> Also, not sure what is the rationale for mainsrc, but at the first look, I couldn't find the sources, because it is somehow unexpected name (at least to me).
Indeed, I missed that, why `mainsrc`...
Eregon (Benoit Daloze)
09:05 PM Misc #16747: Repository reorganization request
vo.x (Vit Ondruch) wrote in #note-7:
> Also, not sure what is the rationale for mainsrc, but at the first look, I couldn't find the sources, because it is somehow unexpected name (at least to me).
`src` is what people are used to, so...
greggzst (Grzegorz Jakubiak)
06:45 PM Misc #16747: Repository reorganization request
shyouhei (Shyouhei Urabe) wrote in #note-5:
> - For instance ccan is a header-only library. Should it be placed under include?
It is not just header only library, but vendored code. It would be nice if this kind of code lives outsid...
vo.x (Vit Ondruch)
11:49 AM Misc #16747: Repository reorganization request
IMHO it's best if `include/` in the repository corresponds closely to what ends up in the install dir.
So I prefer ccan in `src/`.
`make test*` uses the repository dir, so adding anything else under `include/` would expose it to thos...
Eregon (Benoit Daloze)
09:31 AM Misc #16747: Repository reorganization request
Great work, thank you.
Questions/discussions related to header files:
- For instance ccan is a header-only library. Should it be placed under include?
- What about for instance vm_core.h etc?
- Should files under include be instal...
shyouhei (Shyouhei Urabe)
03:21 AM Misc #16747: Repository reorganization request
https://github.com/nobu/ruby/tree/feature/src-dir is the status quo. nobu (Nobuyoshi Nakada)
03:23 PM Revision 224f29c8 (git): spec/ruby/core/process/clock_getres_spec.rb: lax the resolution limit
Android is Linux, but the clock resolution is 10 milliseconds.
I think that 1 microsecond is too strict for embedded environment.
This change laxes the limit to 10 milliseconds.
mame (Yusuke Endoh)
03:16 PM Revision fe2a832a (git): * 2020-05-03 [ci skip]
git[bot]
03:15 PM Revision cfe0e660 (git): Disable -Wswitch warning when VM_CHECK_MODE
nobu (Nobuyoshi Nakada)
03:11 PM Revision 717680f1 (git): DO NOT CORRUPT TYPE FLAGS
nobu (Nobuyoshi Nakada)
03:05 PM Revision 9998161b (git): Fixed missing `should`
nobu (Nobuyoshi Nakada)
02:16 PM Revision c2dc52e1 (git): Rename arguments for ObjectSpace::WeakMap#[]= for clarity
Eregon (Benoit Daloze)
02:15 PM Revision e964f67b (git): append newline at EOF [ci skip]
nobu (Nobuyoshi Nakada)
02:11 PM Revision de8b8b60 (git): Command failed to run just fails
The exact exit status value of command failed to run is not a
spec, but a platform dependent implementation detail. Just it is
not "success".
nobu (Nobuyoshi Nakada)
02:09 PM Bug #16826 (Closed): ObjectSpace::WeakMap#key? returns false if value is nil
Applied in changeset commit:git|a2be428c5fec31b8adbd5ac087e7637ddf7e54d0.
----------
Fix ObjectSpace::WeakMap#key? to work if the value is nil
* Fixes [Bug #16826]
Eregon (Benoit Daloze)
02:06 PM Bug #16826: ObjectSpace::WeakMap#key? returns false if value is nil
I'll fix this. Eregon (Benoit Daloze)
01:17 PM Bug #16826 (Closed): ObjectSpace::WeakMap#key? returns false if value is nil
```
$ ruby -e 'map=ObjectSpace::WeakMap.new; map[:foo] = 4; p map; p map.key? :foo'
#<ObjectSpace::WeakMap:0x000055fbe0c38c00: :foo => 4>
true # OK
$ ruby -e 'map=ObjectSpace::WeakMap.new; map[:foo] = nil; p map; p map.key? :foo'...
Eregon (Benoit Daloze)
02:08 PM Revision a2be428c (git): Fix ObjectSpace::WeakMap#key? to work if the value is nil
* Fixes [Bug #16826] Eregon (Benoit Daloze)
02:03 PM Revision c9213aa8 (git): Update to ruby/spec@d394dfd
Eregon (Benoit Daloze)
02:03 PM Revision a68ddf42 (git): Update to ruby/mspec@ee29a34
Eregon (Benoit Daloze)
01:17 PM Revision b78fba44 (git): internal/process.h: forgot to guard "#ifdef HAVE_WORKING_FORK"
mame (Yusuke Endoh)
12:34 PM Revision 91e4e240 (git): internal/process.h: add a no-warning simple wrapper for fork(2)
As fork(2) is deprecated, its calls must be guarded by
`COMPILER_WARNING_IGNORED(-Wdeprecated-declarations)`.
All usages of fork(2) in process have been alread guarded. A new call
to fork(2) was added in ruby.c with f22c4ff359498ab342e4...
mame (Yusuke Endoh)
12:06 PM Misc #16803: Discussion: those internal macros reside in public API headers
shyouhei (Shyouhei Urabe) wrote in #note-2:
> If you want the complete list, new macros are:
> ...
I took a look, these look fine to me, they seem almost all about portability, except `RUBY3_ANYARGS_DISPATCH*`.
I think most of those...
Eregon (Benoit Daloze)
12:04 PM Bug #16825 (Third Party's Issue): JSON#generate gives invalid json string
Interesting.
As `JSON.generate` converts the keys by `to_s`, it can be funnier.
```sh
$ ruby -rjson -e 'puts JSON.generate({"main"=>"string", :main=>"symbol", self=>"object"})'
{"main":"string","main":"symbol","main":"object"}
`...
nobu (Nobuyoshi Nakada)
11:30 AM Bug #16825 (Third Party's Issue): JSON#generate gives invalid json string
Hello Guys! First of all, thank you for working on the Ruby language.
I observed a peculiarity while playing around with `JSON#generate`. When hash contains keys of the same word/literal but as symbol and string in the same hash, the ...
definitely_not_a_bot (Definitely Not A Bot)
11:45 AM Feature #15921: R-assign (rightward-assignment) operator
I think it would be good to make it a habit to justify any syntax change with some motivation.
For instance, I would suggest making sure the point is clear in the ticket before accepting a syntax change.
I don't see much examples her...
Eregon (Benoit Daloze)
09:15 AM Misc #16775: DevelopersMeeting20200514Japan
* [Feature #15771] Add `String#split` option to set `split_type string` with a single space separator (sawa)
* Proposal by 284km. Allow splitting literally by `" "` when the argument is `" "`.
sawa (Tsuyoshi Sawada)
02:54 AM Misc #16775: DevelopersMeeting20200514Japan
- [Misc #16747] Repository reorganization request (shyouhei)
- @hsbt says:
> I remember @nobu has the working branch about this.
I would like to know its current situation.
shyouhei (Shyouhei Urabe)
02:47 AM Feature #16824: Follow RubyGems naming conventions for the stdlib
shevegen (Robert A. Heiler) wrote in #note-9:
> The optionparser situation is indeed quite ... peculiar to me:
> ...
It has been available since 6 years ago, for your [Feature #9864].
```
$ ruby -roptionparser -e 'ARGV.parse!' -- -...
nobu (Nobuyoshi Nakada)
01:42 AM Feature #16824: Follow RubyGems naming conventions for the stdlib
The optionparser situation is indeed quite ... peculiar to me:
require 'optparse'
OptionParser.new
My brain has a hard time with it. I'd prefer:
require 'optionparser'
or
require 'option_parser' # <- would...
shevegen (Robert A. Heiler)

05/01/2020

11:53 PM Feature #16824: Follow RubyGems naming conventions for the stdlib
@marcandre AFAIK some gem ownerships were already transferred back to claim std-lib names. Looking at those examples, majority of those conflicts could be solved in the same way if needed (long-term).
The main question in here is if R...
retro (Josef Šimánek)
07:33 PM Feature #16824 (Open): Follow RubyGems naming conventions for the stdlib
marcandre (Marc-Andre Lafortune)
07:33 PM Feature #16824: Follow RubyGems naming conventions for the stdlib
We can't do this in general, sadly. For example, there exist two gems `file-utils` and `file_utils`, both of which use `require 'file_utils'` to be used.
Some other gems are conflict free (e.g. neither `open_struct` or `open-struct` a...
marcandre (Marc-Andre Lafortune)
02:54 PM Feature #16824: Follow RubyGems naming conventions for the stdlib
@naruse @nobu The "use case" for this is Rubyists nowadays have a very strong intuition that "Foo::BarBaz" module typically required via `foo/bar_baz` path. This convention is encouraged by tutorials (including RubyGems' linked above, wi... zverok (Victor Shepelev)
02:22 PM Feature #16824: Follow RubyGems naming conventions for the stdlib
The same also works for English.rb which is part of Ruby itself. It is very confusing to do `require 'English'` (require file with initial capital letter). retro (Josef Šimánek)
02:19 PM Feature #16824: Follow RubyGems naming conventions for the stdlib
@naruse I was thinking about the same for a while as well. My use-case in here is simple. I often require 'secure_random' since that should be standard filename for file defying SecureRandom class/module, but actually I end up with error... retro (Josef Šimánek)
01:48 PM Feature #16824: Follow RubyGems naming conventions for the stdlib
Features should have use cases. naruse (Yui NARUSE)
05:24 AM Feature #16824 (Rejected): Follow RubyGems naming conventions for the stdlib
nobu (Nobuyoshi Nakada)
03:33 AM Feature #16824 (Rejected): Follow RubyGems naming conventions for the stdlib
It's been really nice that most gems these days follow the RubyGems naming convention, so you know exactly what to require just from seeing the gem name: https://guides.rubygems.org/name-your-gem/
I wonder if it would be possible to a...
shan (Shannon Skipper)
05:41 PM Revision bb2ca762 (git): * 2020-05-02 [ci skip]
git[bot]
05:40 PM Revision 72c0612c (git): Skip Solaris RubyCI TestJIT for now
to be investigated later
https://rubyci.org/logs/rubyci.s3.amazonaws.com/solaris10-gcc/ruby-master/log/20200501T160004Z.fail.html.gz
k0kubun (Takashi Kokubun)
10:52 AM Revision 28aa5f7f (git): Fixed a message and version guard then moved to the existing block
nobu (Nobuyoshi Nakada)
10:28 AM Revision dc3bc425 (git): Get rid of -Wgnu-folding-constant errors
Also renamed as like as a constant. nobu (Nobuyoshi Nakada)
10:08 AM Revision 41bbdd78 (git): Skip MinGW TestJIT* and macOS TestJITDebug failures
caused by 818d6d33368a396d9cd3d1a34a84015a9e76c5c8, for now.
I'll take a look at them tomorrow.
k0kubun (Takashi Kokubun)
09:54 AM Revision e4d3d5ce (git): Stop generating MJIT_PCH include guard
to fix
https://ci.appveyor.com/project/ruby/ruby/builds/32577700/job/yh61rom35wt2uv39
It was for JIT compaction, and we don't support it on mswin.
k0kubun (Takashi Kokubun)
09:39 AM Revision 76d9be9c (git): Get rid of -Wgnu-zero-variadic-macro-arguments errors
As zero variadic macro argument, `rb_scan_args(argc, argv, "")`
(or `"0"`), means 0-arity method and should be defined so, that
case doesn't need to consider.
nobu (Nobuyoshi Nakada)
09:35 AM Revision e19f4b3a (git): Fix MJIT compiler warnings in clang
k0kubun (Takashi Kokubun)
09:12 AM Revision 90969edf (git): Fix a wrong argument of vm_exec on JIT cancel
k0kubun (Takashi Kokubun)
08:58 AM Revision 72aa4dd1 (git): c_file_access_mode should be defined for Windows
as well. And also unit->c_file doesn't exist in mswin.
https://github.com/ruby/ruby/runs/635915704
k0kubun (Takashi Kokubun)
08:46 AM Bug #16780 (Assigned): Net::FTP PUT command issuing Net::ReadTimeout too quickly
@naruse It seems that the change was introduced by your commit. Could you check it?
shugo (Shugo Maeda)
08:38 AM Revision 818d6d33 (git): Deduplicate functions in compacted JIT code
to improve code locality.
Using benchmark-driver/sinatra with 100 methods JIT-ed,
[Before] 12149.97 rps
1.3M /tmp/_ruby_mjit_p31171u145.so
[After] 12818.83 rps
260K /tmp/_ruby_mjit_p32155u145.so
(VM is 13714.89 rps)
k0kubun (Takashi Kokubun)
08:31 AM Feature #5481: Gemifying Ruby standard library
While `tool/sync_default_gems` can be useful to overwrite files, in some circumstances it won't help (e.g. different changes in both directories). I also wanted to move commits across repositories and not loose history.
I found a soluti...
marcandre (Marc-Andre Lafortune)
07:46 AM Revision 773afeb7 (git): Fix a typo
k0kubun (Takashi Kokubun)
07:45 AM Revision 76507bfc (git): Fix matrix spec for 7d360efe92d2db11a4e51820ed2f52de36b3257f
k0kubun (Takashi Kokubun)
07:40 AM Revision 5c8bfad0 (git): Make sure unit->id is inherited
to child compile_status k0kubun (Takashi Kokubun)
07:25 AM Revision 6eed4d1b (git): [ruby/matrix] v0.3.0
Marc-Andre Lafortune
07:25 AM Revision 9b5675b3 (git): [ruby/matrix] Add Matrix#adjoint [#14]
Patch adapted from Alessandro Minali Marc-Andre Lafortune
07:25 AM Revision 07fd6dc4 (git): [ruby/matrix] Optimize Matrix#*
Marc-Andre Lafortune
07:25 AM Revision 3cb038cc (git): [ruby/matrix] Fix Matrix#orthogonal?
Marc-Andre Lafortune
07:25 AM Revision 7d360efe (git): [ruby/matrix] Fix Matrix#unitary? [#14]
Marc-Andre Lafortune
07:13 AM Revision c925cc01 (git): [ruby-matrix] Update docs (nicer rendering, undocumented method)
zverok (Victor Shepelev)
06:08 AM Revision f5ddbba9 (git): Include unit id in a function name of an inlined method
I'm trying to make it possible to include all JIT-ed code in a single C
file. This is needed to guarantee uniqueness of all function names
k0kubun (Takashi Kokubun)
05:21 AM Revision 96837dc9 (git): Switch test_unload_units_and_compaction on mswin
because we support JIT compaction on it k0kubun (Takashi Kokubun)
04:38 AM Revision e8a78d7d (git): Do not stop the world during JIT compaction
Running C compiler for JIT compaction inside a critical section may lock
main thread for a long time when it triggers GC. As I'm planning to
increase this duration a bit, I'd like to make sure this doesn't stop
the world.
For now, I cho...
k0kubun (Takashi Kokubun)
01:58 AM Revision 520ac5da (git): [pty] do not check openpty twice if found in util library
nobu (Nobuyoshi Nakada)

04/30/2020

07:42 PM Feature #16822: Array slicing: nils and edge cases
I do not have a strong preference here either way; I guess one can reason in
favour for both behaviour types/styles, and I think a primary point in the
suggestion is that it refers to startless/endless situations, such as "5..",
whic...
shevegen (Robert A. Heiler)
10:44 AM Feature #16822 (Rejected): Array slicing: nils and edge cases
(First of all, I understand that the proposed change can break code, but I expect it not to be a large amount empirically.)
I propose that methods that slice an array (`#slice` and `#[]`) and return a sub-array in the normal case, sho...
zverok (Victor Shepelev)
07:18 PM Misc #16775: DevelopersMeeting20200514Japan
* [Feature #9758] Allow setting SSLContext#extra_chain_cert in Net::HTTP (stan3)
* useful to allow https with cert chain, small patch, few :+1s
stan3 (Tristan Hill)
10:54 AM Misc #16775: DevelopersMeeting20200514Japan
* [Feature #16822] Array slicing: nils and edge cases (zverok)
* Never return `nil` from `ary[start...end]` even if out of arrays' bounds
zverok (Victor Shepelev)
05:32 PM Revision 9014c900 (git): * 2020-05-01 [ci skip]
git[bot]
05:32 PM Revision 5a9d2da7 (git): Remove deprecated rb_require_safe
jeremyevans (Jeremy Evans)
01:54 PM Revision 4a8acf46 (git): [ruby/irb] Restore the default encodings
IRB::ReadlineInputMethod#initialize sets via IRB.set_encoding. nobu (Nobuyoshi Nakada)
12:20 PM Bug #16823 (Closed): Bundler related manual pages are corrupted
We recently found out that bundler related manual pages we get by building and installing ruby 2.6 (and as far as I can tell all newer versions as well) are corrupted (we are building with `--with-mantype=man`).
The reason is that, e....
Kulikjak (Jakub Kulik)
09:00 AM Feature #13820: Add a nil coalescing operator
Your proposal to distinguish `nil` from `false` is ad hoc, and is not a real solution for your use case, which is to add a value to a hash only when it does not yet have a corresponding key.
Following your way of doing it, you would sti...
sawa (Tsuyoshi Sawada)
02:50 AM Feature #13820: Add a nil coalescing operator
bsarrazin (Ben Sarrazin) wrote in #note-7:
> Kotlin has this feature, Swift has this feature, many other languages have this feature.
No. Kotlin does not have this feature (distinguish `false` and `null`). It is a really bad idea f...
shyouhei (Shyouhei Urabe)
04:16 AM Feature #16821: gem version notation for "rational version" compatibility
Thank you for the quick response. Yes, I will do refile there. Sorry for mistakenly filing here. colindkelley (Colin Kelley)
02:53 AM Feature #16821: gem version notation for "rational version" compatibility
Can you report it to rubygems' upstream? It has its own tracker: https://github.com/rubygems/rubygems shyouhei (Shyouhei Urabe)
12:18 AM Feature #16821 (Third Party's Issue): gem version notation for "rational version" compatibility
nobu (Nobuyoshi Nakada)
02:57 AM Revision 9d1b272b (git): [ruby/irb] Suppress messages switching inspect mode
nobu (Nobuyoshi Nakada)
02:48 AM Revision 14b5a3b4 (git): * 2020-04-30 [ci skip]
git[bot]
02:44 AM Revision b3ce6fa0 (git): [ruby/irb] Relaxed regexp for readline
Readline::VERSION may not be a single word, e.g EditLine wrapper
when linked with editline.
nobu (Nobuyoshi Nakada)
 

Also available in: Atom