Project

General

Profile

Activity

From 08/21/2020 to 08/27/2020

08/27/2020

10:17 PM Bug #17031 (Closed): `Kernel#caller_locations(m, n)` should be optimized
Applied in changeset commit:git|3b24b7914c16930bfadc89d6aff6326a51c54295.
----------
Improve performance of partial backtraces
Previously, backtrace_each fully populated the rb_backtrace_t with all
backtrace frames, even if caller only...
jeremyevans (Jeremy Evans)
10:17 PM Revision 3b24b791 (git): Improve performance of partial backtraces
Previously, backtrace_each fully populated the rb_backtrace_t with all
backtrace frames, even if caller only requested a partial backtrace
(e.g. Kernel#caller_locations(1, 1)). This changes backtrace_each to
only add the requested frame...
jeremyevans (Jeremy Evans)
07:54 PM Revision 8095114f (git): Comply with guide for method doc: hash.c (#3466)
Instance methods considered (most unchanged):
- any
- dig
- \<=
- \<
- \>=
- \>
- to_proc
burdettelamar (Burdette Lamar)
06:28 PM Revision 029c7e60 (git): Comply with guide for method doc: hash.c (#3465)
Instance methods considered (maybe not all changed):
invert
merge!
merge
assoc
rassoc
flatten
compact
compact!
compare_by_identity
compare_by_identity?
burdettelamar (Burdette Lamar)
05:16 PM Bug #17030: Enumerable#grep{_v} should be optimized for Regexp
Dan0042 (Daniel DeLorme) wrote in #note-21:
> Yeah ok, that sentence wasn't very clear, sorry.
> ...
Unfortunately, you can't take this approach for VM optimizations without breaking backwards compatibility unless you also have a deopt...
jeremyevans0 (Jeremy Evans)
04:55 PM Bug #17030: Enumerable#grep{_v} should be optimized for Regexp
Yeah ok, that sentence wasn't very clear, sorry.
The first thing is that when compiling a method to an iseq, you have to set a flag on the iseq if the method contains any of the "last_match" pseudo-globals (`$~`, `$&`, `$1`, `Regexp.l...
Dan0042 (Daniel DeLorme)
08:03 AM Bug #17030: Enumerable#grep{_v} should be optimized for Regexp
Dan0042 (Daniel DeLorme) wrote in #note-15:
>
> ...
I didn't quite get it. So, to summarize, how this new approach should work? Can you elaborate in few more sentences?
Does ruby already do some kind of static analysis that you can...
fatkodima (Dima Fatko)
02:10 AM Bug #17030: Enumerable#grep{_v} should be optimized for Regexp
Dan0042 (Daniel DeLorme) wrote in #note-17:
> Maybe not impossible, but personally I wouldn't want to code that kind of analysis when a simple approach is enough for >90% of cases, and guaranteed to be bug-free.
Agreed
> ...
You a...
marcandre (Marc-Andre Lafortune)
04:52 PM Revision f332fe23 (git): Comply with guide for method doc: hash.c (#3464)
Instance methods considered (maybe not all changed):
to_a
inspect
to_hash
to_h
keys
values
include?
has_value?
==
eql?
hash
burdettelamar (Burdette Lamar)
04:17 PM Feature #15573: Permit zero step in Numeric#step and Range#step
@zverok
Without `take` (or simply if `step` will have a block) this will be problematic.
But, agreed, good example.
fatkodima (Dima Fatko)
04:12 PM Feature #15573: Permit zero step in Numeric#step and Range#step
> What is the purpose of a zero step? I cannot understand why/how it would be used.
> ...
For edge cases like this, they typically emerge on dynamic calculation (and if the calculation is mathematically sound, they probably shouldn't ...
zverok (Victor Shepelev)
03:42 PM Feature #15573: Permit zero step in Numeric#step and Range#step
Dan0042 (Daniel DeLorme) wrote in #note-9:
> What is the purpose of a zero step? I cannot understand why/how it would be used.
This is basically an infinite generator of the same number. I haven't real usecases for this also.
fatkodima (Dima Fatko)
01:59 PM Feature #15573: Permit zero step in Numeric#step and Range#step
What is the purpose of a zero step? I cannot understand why/how it would be used. Dan0042 (Daniel DeLorme)
10:29 AM Feature #15573: Permit zero step in Numeric#step and Range#step
Mathematically, it is allowed that step can be 0, but from practical stand point - this is an infinite loop waiting to be happen.
The original issue was about inconsistencies, so I decided to allow `0` for consistency (mainly because...
fatkodima (Dima Fatko)
04:01 PM Revision 9658a5a8 (git): Show deprecation warning on TCPSocket.gethostbyname
Glass_saga (Masaki Matsushita)
04:00 PM Revision 5483bf8f (git): add T_ZOMBIE support to lldb scripts
tenderlovemaking (Aaron Patterson)
03:54 PM Feature #14476: Adding same_all? for checking whether all items in an Array are same
How about `all_equivalent?` or `all_duplicates?`? fatkodima (Dima Fatko)
03:37 PM Feature #14394: Class.descendants
I would like the ruby team to reconsider this feature.
There is a high demand for this and a lot of implementations in the ruby world. Just some of them:
* rails' ActiveSupport - https://github.com/rails/rails/blob/master/activesupport...
fatkodima (Dima Fatko)
03:37 PM Bug #17130 (Closed): Method#super_method is broken for aliased methods
Applied in changeset commit:git|c60aaed1856b2b6f90de0992c34771830019e021.
----------
Fix Method#super_method for aliased methods
Previously, Method#super_method looked at the called_id to
determine the method id to use, but that isn't ...
jeremyevans (Jeremy Evans)
03:37 PM Bug #11189 (Closed): alias prepended module
Applied in changeset commit:git|c60aaed1856b2b6f90de0992c34771830019e021.
----------
Fix Method#super_method for aliased methods
Previously, Method#super_method looked at the called_id to
determine the method id to use, but that isn't ...
jeremyevans (Jeremy Evans)
03:37 PM Revision c60aaed1 (git): Fix Method#super_method for aliased methods
Previously, Method#super_method looked at the called_id to
determine the method id to use, but that isn't correct for
aliased methods, because the super target depends on the
original method id, not the called_id.
Additionally, aliases ...
jeremyevans (Jeremy Evans)
03:06 PM Revision f41bd0d7 (git): * 2020-08-28 [ci skip]
git[bot]
02:55 PM Revision 280d0281 (git): [ruby/stringio] Bump version to 0.1.4
https://github.com/ruby/stringio/commit/64f2360d38 nobu (Nobuyoshi Nakada)
02:46 PM Revision f4b9e943 (git): [ruby/io-console] Bug 17128: In test_set_winsize_console, wrapped re-size in a begin-rescue-else.
https://github.com/ruby/io-console/commit/a22333c33a leam (Leam Hall)
02:41 PM Revision b3c1c767 (git): [stringio] fix stringio codepoint enumerator off by one error
ylecuyer (Yoann Lecuyer)
02:39 PM Revision 96d701f7 (git): Adjust indents [ci skip]
nobu (Nobuyoshi Nakada)
01:31 PM Revision b8bfb1d5 (git): Comply with guide for method doc: hash.c (#3459)
Instance methods considered (some maybe not changed):
clear
[]=
replace
length
empty?
each_value
each_key
each_pair
transform_keys
transform_keys!
transform_values
transform_values!
burdettelamar (Burdette Lamar)
07:56 AM Feature #16476 (Closed): Socket.getaddrinfo cannot be interrupted by Timeout.timeout
merged: https://github.com/ruby/ruby/commit/2038cc6cab6ceeffef3ec3a765c70ae684f829ed Glass_saga (Masaki Matsushita)
07:43 AM Misc #17041: DevelopersMeeting20200831Japan
Adjust subject to match new date. duerst (Martin Dürst)
07:42 AM Revision 49001008 (git): sed -i '/rmodule.h/d'
shyouhei (Shyouhei Urabe)
07:42 AM Revision 5ca44076 (git): include/ruby/backward/2/rmodule.h: deprecate
Only one function in only one file uses contents of this public header.
That is not a wise idea. Let's just free the header's soul.
shyouhei (Shyouhei Urabe)
07:39 AM Revision 2038cc6c (git): Make Socket.getaddrinfo interruptible (#2827)
Before, Socket.getaddrinfo was using a blocking getaddrinfo(3) call.
That didn't allow to wrap it into Timeout.timeout or interrupt the thread in any way.
Combined with the default 10 sec resolv timeout on many Unix systems, this can
ha...
kirs (Kir Shatrov)
07:33 AM Feature #17103: Add a :since option to ObjectSpace.dump_all
That's a good point. I added:
> The current generation can be accessed using GC::count.
byroot (Jean Boussier)
12:19 AM Feature #17103: Add a :since option to ObjectSpace.dump_all
I missed "allocation tracing disabled are not dumped" sentence. And changed version is more helpful.
Now I don't have any objection.
One suggestion is, "since" integer is not clear yet (even if `trace_object_allocations` describes it...
ko1 (Koichi Sasada)
06:04 AM Revision 1035a3b2 (git): RUBY_SHOW_COPYRIGHT_TO_DIE: flip the default
Commit 7aab062ef3772c7e8e50fc872a1647918c76dbba says:
> ruby_show_version() will no longer exits the process, if
> ...
3.0 is a good timing for that "future".
shyouhei (Shyouhei Urabe)
06:03 AM Revision 756403d7 (git): sed -i '/r_cast.h/d'
shyouhei (Shyouhei Urabe)
06:03 AM Revision cd1d6d90 (git): include/ruby/backward/2/r_cast.h: deprecate
Remove all usages of RCAST() so that the header file can be excluded
from ruby/ruby.h's dependency.
shyouhei (Shyouhei Urabe)
06:02 AM Revision 44252552 (git): improve deprecation warning
We should not recommend RBIMPL_*. shyouhei (Shyouhei Urabe)
06:02 AM Revision 21b3bc10 (git): DEPRECATED_TYPE: is deprecated
Nobody uses this macro any longer. shyouhei (Shyouhei Urabe)
06:02 AM Revision 3437e624 (git): RClassDeprecated: delete
It has been deprecated for 5 years since 1f2255604087e9a7d7efcb2df61b5ca0e2daa200. shyouhei (Shyouhei Urabe)
05:42 AM Feature #17125 (Open): Remove Thread.exclusive
znz (Kazuhiro NISHIYAMA)
05:37 AM Feature #17125 (Closed): Remove Thread.exclusive
Applied in changeset commit:git|3353baac3d55e1b42515ce7084e7b7f07abc0192.
----------
Use own mutex instead of Thread.exclusive
ref [Feature #17125]
znz (Kazuhiro NISHIYAMA)
05:37 AM Revision 3353baac (git): Use own mutex instead of Thread.exclusive
ref [Feature #17125] znz (Kazuhiro NISHIYAMA)
05:27 AM Revision 5ae2c1b0 (git): git rm include/ruby/backward/rubyio.h
shyouhei (Shyouhei Urabe)
05:11 AM Revision 6ec6dd3e (git): git rm include/ruby/backward/rubysig.h
shyouhei (Shyouhei Urabe)
05:09 AM Revision 5ca7b6ab (git): git rm include/ruby/backward/{st,util}.h
shyouhei (Shyouhei Urabe)
05:08 AM Revision d9c93a0d (git): * 2020-08-27 [ci skip]
git[bot]
05:08 AM Revision 6b6a4471 (git): rb_deprecated_classext_struct: delete
Used from nowhere any longer. shyouhei (Shyouhei Urabe)
05:08 AM Revision 4bc38463 (git): git rm include/ruby/backward/classext.h
shyouhei (Shyouhei Urabe)
05:07 AM Revision 0da2a3f1 (git): sed -i '\,2/extern.h,d'
shyouhei (Shyouhei Urabe)
05:07 AM Revision b2e1688e (git): git rm include/ruby/backward/2/extern.h
shyouhei (Shyouhei Urabe)
03:21 AM Bug #17129: bundle install `eventmachine` and `sassc` fails since 914b2208ab3eddec478cdc3e079e6c30d0f0892c
I think this issue has been resolved by https://github.com/ruby/ruby-docker-images/commit/6e36738aaea9caedc31372d5c3f91ea831ae3c3c Thank you! yahonda (Yasuo Honda)
03:18 AM Bug #17129: bundle install `eventmachine` and `sassc` fails since 914b2208ab3eddec478cdc3e079e6c30d0f0892c

> This is not a problem by itself. But a next mystery arises: how was it possible to compile eventmachine before, given it is written in C++?
Rails CI runs on Buildkite, whose Dockerfile also installs `g++`.
https://github.com/...
yahonda (Yasuo Honda)
02:35 AM Bug #17129: bundle install `eventmachine` and `sassc` fails since 914b2208ab3eddec478cdc3e079e6c30d0f0892c
I added g++ in the docker image. I confirmed this problem was fixed by the steps to reproduce described above. Thanks. mrkn (Kenta Murata)
01:38 AM Bug #17129: bundle install `eventmachine` and `sassc` fails since 914b2208ab3eddec478cdc3e079e6c30d0f0892c
Thank you!
https://gist.github.com/mrkn/1c2b8ad11810355ff916fd86af8317be#file-config-log-L1147-L1149
> ```
> ...
So it seems C++ compiler does not exist at all in the container.
This is not a problem by itself. But a next myster...
shyouhei (Shyouhei Urabe)
01:28 AM Bug #17129: bundle install `eventmachine` and `sassc` fails since 914b2208ab3eddec478cdc3e079e6c30d0f0892c
This is config.log produced by `rake docker:build ruby_version=master:914b2208ab3eddec478cdc3e079e6c30d0f0892c`.
https://gist.github.com/mrkn/1c2b8ad11810355ff916fd86af8317be
mrkn (Kenta Murata)
01:14 AM Bug #17129: bundle install `eventmachine` and `sassc` fails since 914b2208ab3eddec478cdc3e079e6c30d0f0892c
Does this help to check `config.log`?
https://gist.github.com/yahonda/25231929b96c2eb5a6cb6df8862ac742
yahonda (Yasuo Honda)
12:13 AM Feature #16986: Anonymous Struct literal
> So, external input like JSON data is not the target of this proposal. Rather, this proposal is just a variant of Struct, which allows to omit the definition line: Foo = Struct.new(...).
Yes. This proposal is strict one.
ko1 (Koichi Sasada)

08/26/2020

08:43 PM Bug #17030: Enumerable#grep{_v} should be optimized for Regexp
What about this?
```ruby
2.times do
p $~ # depends on match *below*
rx =~ str
end
```
Now imagine if `2.times` is replaced by `foo`; a priori we can't know if or how many times the block will be executed. So what I was tr...
Dan0042 (Daniel DeLorme)
07:31 PM Bug #17030: Enumerable#grep{_v} should be optimized for Regexp
Dan0042 (Daniel DeLorme) wrote in #note-15:
> But static analysis has other limits
Good example but it is easily resolved: assume `v` isn't a Regexp and we may get a false positive, which is not a big issue. There will be other false...
marcandre (Marc-Andre Lafortune)
07:17 PM Bug #17030: Enumerable#grep{_v} should be optimized for Regexp
> Couldn't static analysis of the code determine in most cases if match data need be generated or not?
scivola20 had a good idea, but this is even better. We can automatically get the best performance without having to manually optimi...
Dan0042 (Daniel DeLorme)
05:30 PM Bug #17030: Enumerable#grep{_v} should be optimized for Regexp
fatkodima (Dima Fatko) wrote in #note-13:
> In many cases, probably yes, but again, `case-when`, when arguments/consts/etc instead of local vars are used - it is hard to tell if them are regexes or not.
That's not really what I'm pro...
marcandre (Marc-Andre Lafortune)
05:01 PM Bug #17030: Enumerable#grep{_v} should be optimized for Regexp
marcandre (Marc-Andre Lafortune) wrote in #note-12:
> Maybe it would be best to start a different thread as none of these proposals have a relation to `grep{_v}` without block not being optimized.
I have already implemented a patch to m...
fatkodima (Dima Fatko)
03:01 PM Bug #17030: Enumerable#grep{_v} should be optimized for Regexp
Couldn't static analysis of the code determine in most cases if match data need be generated or not?
This is Ruby, so I can think of some corner cases where things like `const_get(:Regexp).last_match` would be impacted (in theory), wh...
marcandre (Marc-Andre Lafortune)
08:31 AM Bug #17030: Enumerable#grep{_v} should be optimized for Regexp
sawa (Tsuyoshi Sawada) wrote in #note-10:
> I feel scivola20 (sciv ola)'s idea promising, but have a concern that it is going to introduce the same kind of mess as when `"string"f` notation was introduced (same "f" used due to frozen and...
fatkodima (Dima Fatko)
08:27 PM Bug #17048: Calling initialize_copy on live modules leads to crashes
Yes, nobu's patch fixes the crash. It is technically a breaking change though, so maybe it needs approval from Matz?
Side note, the bug still exists on master as of [today](https://wandbox.org/permlink/afSmo1UbL9wnIBmq).
alanwu (Alan Wu)
06:11 PM Bug #17131: Time.at(time) != time in certain cases
The check for `to_int` in addition to `to_r` is deliberate. The related code comment states: `test to_int method availability to reject non-Numeric objects such as String, Time, etc which have to_r method`. So that is not a bug.
I'v...
jeremyevans0 (Jeremy Evans)
05:49 PM Bug #17131 (Closed): Time.at(time) != time in certain cases
## Problem
According to the [spec](https://github.com/ruby/ruby/blob/445e5548c9da906a2d7a490e660328b2893d07d1/spec/ruby/core/time/at_spec.rb#L89):
```ruby
describe "with an argument that responds to #to_r" do
it "coerce...
phil_pirozhkov (Phil Pirozhkov)
05:39 PM Bug #17130: Method#super_method is broken for aliased methods
Pull request submitted: https://github.com/ruby/ruby/pull/3458 jeremyevans0 (Jeremy Evans)
05:36 PM Bug #17130 (Closed): Method#super_method is broken for aliased methods
Method#super_method currently does not work correctly for aliased methods. Here's a simple example:
```ruby
class A
def m1; p :A_m1 end
def m2; p :A_m2 end
end
class B < A
def m1; p :B_m1; super end
alias m2 m1
end
...
jeremyevans0 (Jeremy Evans)
05:20 PM Bug #16997: IO#gets converts some \r\n to \n with universal_newline: false
I'm able to reproduce this issue on Windows (`ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x64-mingw32]`), but not on OpenBSD (probably expected).
On Windows, this doesn't just affect IO#gets, it also affects IO#read and likely othe...
jeremyevans0 (Jeremy Evans)
12:36 PM Revision 445e5548 (git): Fixed error messages at non-ascii %string terminator
nobu (Nobuyoshi Nakada)
12:16 PM Revision cc36b5d4 (git): Removed a never-true condition
nobu (Nobuyoshi Nakada)
09:05 AM Feature #17127: Some TrueClass methods are faster if implemented in Ruby
these method able to speeding up implemented by Ruby code.
- `TrueClass#^`
- `TrueClass#&`
benchmark:
```yaml
benchmark:
to_s: |
true.to_s
inspect: |
true.inspect
or: |
true | false
xor: |
true ^ false
and: |...
S_H_ (Shun Hiraoka)
08:40 AM Misc #17041: DevelopersMeeting20200831Japan
The meeting was postponed to the next Monday (31th Aug.) for some reason. mame (Yusuke Endoh)
01:16 AM Misc #17041: DevelopersMeeting20200831Japan
* [Feature #16812] Allow slicing arrays with ArithmeticSequence (mrkn)
* I found the wrong test case, so the implementation was also in wrong state. The proposed patch has been fixed.
* There are opposing opinions in the following ...
mrkn (Kenta Murata)
08:39 AM Bug #17129: bundle install `eventmachine` and `sassc` fails since 914b2208ab3eddec478cdc3e079e6c30d0f0892c
It only reproduces with Ruby using`rubylang/ruby:master-nightly-bionic`.
It does not reproduce ruby installed by `rbenv install 2.8.0-dev` at local Ubuntu 18.04.5 LTS, then I do not know how to provide `config.log`, yet.
yahonda (Yasuo Honda)
08:10 AM Bug #17129: bundle install `eventmachine` and `sassc` fails since 914b2208ab3eddec478cdc3e079e6c30d0f0892c
Is there a way for me to get the `config.log` which has to be created during compiling ruby itself? It must contain the reason why the C++ compiler was rejected. shyouhei (Shyouhei Urabe)
08:02 AM Bug #17129 (Closed): bundle install `eventmachine` and `sassc` fails since 914b2208ab3eddec478cdc3e079e6c30d0f0892c
bundle install `eventmachine` and `sassc` fails since 914b2208ab3eddec478cdc3e079e6c30d0f0892c
Ruby on Rails CI against ruby 2.8.0dev using rubylang/ruby:master-nightly-bionic docker image has been failing since https://buildkite.com/...
yahonda (Yasuo Honda)
07:43 AM Feature #17104: Do not freeze interpolated strings when using frozen-string-literal
Non-freezing interpolated strings is good thing to reduce allocations.
I think it is possible if most developers understands difference of interpolated and non-interpolated strings.
akr (Akira Tanaka)
07:30 AM Feature #17125: Remove Thread.exclusive
We checked gems which use this API and they look obsoleted.e
We should check the impact with preview.
Go ahead
naruse (Yui NARUSE)
07:07 AM Feature #17040: cleanup include/ruby/backward*
It looks implementation detail and concurrent gems already supports new headers.
Go ahead
naruse (Yui NARUSE)
06:35 AM Feature #17122: Add category to Warning#warn
If we can accept the compatibility issue, I support it.
However, I'm not sure the "category" is a last attribute, so to make stable API, accept `**kw` is one idea (but it increases runtime overhead).
ko1 (Koichi Sasada)
06:02 AM Feature #16345: Don't emit deprecation warnings by default.
We discussed about it and I recognized the motivation is how to shorten the migration period (to reuse conflicts feature or to delete barrier features) and I understand the advantages of this proposal.
IMO off-by-default and on-by-defau...
ko1 (Koichi Sasada)
05:28 AM Revision 72cb9bc5 (git): [webrick][DOC] Describe the stance of WEBrick about its security and utilization (#3457)
WEBrick is not recommended for the production use. We need to explicitly
describe this fact in the document to avoid troubles due to misunderstanding.
Kenta Murata
03:54 AM Bug #17037: rounding of Rational#to_f
Gauche scheme interpreter has same issue and Kawai-san (the author of Gauche) investigate it.
http://blog.practical-scheme.net/gauche/20200722-ratnum-flonum
akr (Akira Tanaka)

08/25/2020

11:37 PM Bug #17030: Enumerable#grep{_v} should be optimized for Regexp
I feel scivola20 (sciv ola)'s idea promising, but have a concern that it is going to introduce the same kind of mess as when `"string"f` notation was introduced (same "f" used due to frozen and fast, but this is just coincidental). Peopl... sawa (Tsuyoshi Sawada)
10:09 PM Bug #17030: Enumerable#grep{_v} should be optimized for Regexp
I have implemented a simple PoC - https://github.com/ruby/ruby/pull/3455.
I got the following results.
## Enumerable#grep
```ruby
ARR = %w[foobar foobaz bazquux hello world just making this array longer]
REGEXP = /o/
FAST_REG...
fatkodima (Dima Fatko)
05:23 PM Bug #17030: Enumerable#grep{_v} should be optimized for Regexp
I like @scivola20 's idea and would like to try to implement it.
Before starting, @nobu, wdyt, is this something that will be merged?
fatkodima (Dima Fatko)
10:39 PM Misc #17041: DevelopersMeeting20200831Japan
- [Feature #14723] python's buffer protocol clone (mrkn)
- I renamed `buffer` to `memory_view`.
- This name is already used in Python for the Python object wrapper of `PyBuffer`.
- I've added tests for some functions and ...
mrkn (Kenta Murata)
09:24 PM Bug #14823 (Closed): Endless Range Excluding End
jeremyevans0 (Jeremy Evans)
09:17 PM Bug #16789 (Closed): Compaction callback for C extensions not documented
I think this was fixed by commit:92b2d5816ae04375cef7e3909bf69954e1833160. jeremyevans0 (Jeremy Evans)
09:12 PM Bug #17128 (Closed): test_io_console.rb fails on actual console
The pull request was merged (https://github.com/ruby/io-console/pull/16), so this can be closed. jeremyevans0 (Jeremy Evans)
09:09 PM Revision a84a2e87 (git): Comply with guide for method doc: hash.c (#3454)
Methods reviewed (a few not modified):
key
delete
shift
delete_if
reject!
reject
slice
except
values_at
fetch_values
select
select!
keep_if
burdettelamar (Burdette Lamar)
05:50 PM Revision 92b2d581 (git): Add documentation to "dcompact" callback and "parent" member
larskanis (Lars Kanis)
05:14 PM Revision 326d89b7 (git): Correctly account for heap_pages_final_slots so it does not underflow
`rb_objspace_call_finalizer` creates zombies, but does not do the correct accounting (it should increment `heap_pages_final_slots` whenever it creates a zombie). When we do correct accounting, `heap_pages_final_slots` should never underf... peterzhu2118 (Peter Zhu)
03:47 PM Revision 8c030b5c (git): * 2020-08-26 [ci skip]
git[bot]
03:47 PM Revision 36cc53da (git): Comply with guide for method doc: hash.c (#3451)
Methods:
::new
::[]
::try_convert
#rehash
#[]
#fetch
#default
#default=
#default_proc
#default_proc=
burdettelamar (Burdette Lamar)
12:17 PM Revision 2e3a7f70 (git): Promote nkf to default gems
hsbt (Hiroshi SHIBATA)
09:11 AM Revision 8d68f54c (git): Fix erb executable
Run ERb processing unconditionally since __FILE__ and $0 doesn't match
in a gem context.
Lars Kanis

08/24/2020

11:44 PM Revision e6ac1fb6 (git): Specify the executable of erb
hsbt (Hiroshi SHIBATA)
11:11 PM Bug #17094 (Closed): PTY methods with blocks
Applied in changeset commit:git|9e25eb308d4fae9a10e120c2b4601916cc38336c.
----------
Update PTY.open documentation to document it yields a single argument [ci skip]
For a regular block, accepting two arguments is fine as the array
will...
jeremyevans (Jeremy Evans)
11:11 PM Revision 1b34d843 (git): * 2020-08-25 [ci skip]
git[bot]
11:09 PM Revision 9e25eb30 (git): Update PTY.open documentation to document it yields a single argument [ci skip]
For a regular block, accepting two arguments is fine as the array
will be autosplatted. However, a lambda that accepts two arguments
will not work.
We could change the implementation to yield two arguments instead
of an array with a s...
jeremyevans (Jeremy Evans)
10:33 PM Bug #17112: Resolv.getaddress fails with IPv6 link-local addresses
I've added a pull request with a fix for this: https://github.com/ruby/ruby/pull/3452 jeremyevans0 (Jeremy Evans)
05:42 PM Feature #16345: Don't emit deprecation warnings by default.
The enabled-by-default deprecation warnings have following effects.
- Good Effect: It makes developers more aware of the problem. (including users noticing and creating a issue)
- Bad Effect: Users ignore warnings or stop ruby upgrade
...
akr (Akira Tanaka)
03:18 PM Feature #16994: Sets: shorthand for frozen sets of symbols / strings
+1
I think this is more important than having a general Set syntax as discussed in #5478. Being able to use `%ws[foo bar].include?(str)` is a double-plus of not creating a new object each time and having O(1) efficiency.
Dan0042 (Daniel DeLorme)
03:12 PM Feature #16989: Sets: need ♥️
> matz: Positive to introduce Set into core. But we need to first introduce a set literal. { x, y, z } is good, but JavaScript uses it as another meanings, so it would bring confusion.
I have to ask, is [lack of] similarity with javas...
Dan0042 (Daniel DeLorme)
12:55 PM Feature #16989: Sets: need ♥️
That's great news.
Was there discussion for a *frozen* set literal of symbols / strings as I proposed in #16994? For sets that need to be mutable or containing different types of objects, I find the existing `Set[...]` quite convenien...
marcandre (Marc-Andre Lafortune)
04:13 AM Feature #16989: Sets: need ♥️
We discussed this issue at the last-month meeting.
https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMeeting20200720Japan.md
> matz: Positive to introduce Set into core. But we need to first introduce a set literal. { x...
mame (Yusuke Endoh)
02:34 PM Feature #17127: Some TrueClass methods are faster if implemented in Ruby
k0kubun (Takashi Kokubun) wrote in #note-3:
> off topic: If you write an entire ticket in English, I think you should post your ticket to ruby-core to attract more audiences instead of ruby-dev, which has been for tickets written in Jap...
S_H_ (Shun Hiraoka)
01:43 PM Feature #16986: Anonymous Struct literal
Dan0042 (Daniel DeLorme) wrote in #note-37:
> > I thought that this would be a useful substitute of symbol-key Hash (like JSON data) which we can read the values by `s.name` instead of `s[:name]`.
> ...
I thought so. Thus, I wanted to...
mame (Yusuke Endoh)
03:13 AM Feature #16986: Anonymous Struct literal
> I thought that this would be a useful substitute of symbol-key Hash (like JSON data) which we can read the values by `s.name` instead of `s[:name]`.
This is the same thing stated in the Feature proposal, and I would also like this, ...
Dan0042 (Daniel DeLorme)
01:28 PM Feature #17056: Array#index: Allow specifying the position to start search as in String#index
👍
I'd like to have optional `start` and `stop` arguments for `find_index`, `find`, `bsearch` and `bsearch_index`.
As mentionned, a typical usecase is to repeat a lookup, but another one is to lookup a range of indices (e.g. which e...
marcandre (Marc-Andre Lafortune)
10:24 AM Revision 1eb1add6 (git): Added entry for changes of default gems
hsbt (Hiroshi SHIBATA)
07:35 AM Feature #17103: Add a :since option to ObjectSpace.dump_all
> this feature strongly connected with trace_object_allocations, right?
Indeed.
> ...
I changed:
```
Objects that were allocated with object allocation tracing disabled are not dumped.
```
to:
```
Objects that were allo...
byroot (Jean Boussier)
04:49 AM Feature #17103: Add a :since option to ObjectSpace.dump_all
this feature strongly connected with `trace_object_allocations`, right? so please write it on document.
what happens on without `trace_object_allocations`? it is unclear.
ko1 (Koichi Sasada)
06:58 AM Revision cb7634c1 (git): Fix links [ci skip]
znz (Kazuhiro NISHIYAMA)
06:38 AM Revision 09acafac (git): NEWS.md: add an example, add references, and move some items
mame (Yusuke Endoh)
01:38 AM Bug #15856: Performance of redundant `Kernel.require` is slow when many gems are activated
Without the patch:
```ruby
require "digest"
p Digest::SHA256 #=> Digest::SHA256
p Digest::SHA2 #=> Digest::SHA2
```
With the patch:
```ruby
require "digest"
p Digest::SHA256 #=> Digest::SHA256
p Digest::SHA2 #=> unini...
Dan0042 (Daniel DeLorme)

08/23/2020

09:07 PM Feature #6309: Add a reference queue for weak references
This still seems like a good idea. Any update? ioquatix (Samuel Williams)
05:10 PM Revision f292bb24 (git): * 2020-08-24 [ci skip]
git[bot]
05:10 PM Revision 1d3e87a2 (git): Remove checks for self returned in array.c and hash.c examples (#3446)
Further compliance with https://github.com/ruby/ruby/blob/master/doc/method_documentation.rdoc#details-and-examples- burdettelamar (Burdette Lamar)
01:46 PM Revision 30ccc7d0 (git): Fix typos
znz (Kazuhiro NISHIYAMA)
12:46 PM Revision 4f7ff9c9 (git): * 2020-08-23 [ci skip]
git[bot]
12:45 PM Revision 2c4c088a (git): .github/workflows/compilers.yml: more compilers
Added some cross compilers that we can run on GitHub Workflow runner
environments. Because they are cross compilers we cannot run the
generated binary. The added matrix are compile-only.
shyouhei (Shyouhei Urabe)
03:14 AM Bug #16853: calling bla(hash, **kw) with a string-based hash passes the strings into **kw (worked < 2.7)
> > When it comes to optimization, though, I would assume that the keywords are all symbols would open a lot more doors.
> ...
If a Hash contains only Symbol keys I can easily imagine an optimized implementation that takes advantage of S...
Dan0042 (Daniel DeLorme)

08/22/2020

09:59 AM Bug #16853: calling bla(hash, **kw) with a string-based hash passes the strings into **kw (worked < 2.7)
FWIW I also find the `where("table.id" => 42)` example unconvincing.
That could work just fine with `def where(conditions)`, no need and it seems no much gains for keyword arguments there.
Eregon (Benoit Daloze)
09:56 AM Bug #16853: calling bla(hash, **kw) with a string-based hash passes the strings into **kw (worked < 2.7)
sylvain.joyeux (Sylvain Joyeux) wrote in #note-9:
> Keyword splat would not allow anything but symbols as keys pre-2.7.
Indeed, so what happens is the Hash is magically split in two if it has non-Symbol keys (or `raise`s with `**`):
...
Eregon (Benoit Daloze)
05:12 AM Revision 2ddc67ff (git): configure.ac: suppress more Sun C warnings.
They are rather annoying than being useful to us. shyouhei (Shyouhei Urabe)
02:54 AM Feature #15974: Warn in verbose mode on defining a finalizer that captures the object
A partial solution to this but with a better implementation is at https://github.com/ruby/ruby/pull/3444. chrisseaton (Chris Seaton)
02:12 AM Revision 331d0203 (git): .travis.yml: prefer gcc
It seems `clang --save-temps` does not interface well with
tool/update-deps. Prefer gcc for that purpose.
shyouhei (Shyouhei Urabe)
12:49 AM Revision d916a4c8 (git): configure.ac: more checks on STRIP
STRIP now depends on compilers, not on OS. Previous check against
$target_os does no longer work.
shyouhei (Shyouhei Urabe)
12:39 AM Revision 1ab60345 (git): Fix type of getlogin_r's 2nd argument
https://rubyci.org/logs/rubyci.s3.amazonaws.com/freebsd12/ruby-master/log/20200821T223002Z.fail.html.gz
```
process.c:5593:37: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
while ((g...
znz (Kazuhiro NISHIYAMA)

08/21/2020

09:52 PM Bug #16907 (Closed): Probable use-after-free in VM assertion
Applied in changeset commit:git|a0273d67d044dc9fe25313e0854a33374b990e8a.
----------
Avoid a use after free in VM assertion
If the thread for the current EC has been killed, don't check
the VM ptr for the EC (which gets it via the thre...
jeremyevans (Jeremy Evans)
08:58 PM Bug #16907: Probable use-after-free in VM assertion
I think I've found a solution. If the thread for the EC has been killed, then don't check that the VM pointer matches, because the thread's memory (including the VM pointer) will have been freed. I've added a pull request that fixes th... jeremyevans0 (Jeremy Evans)
09:52 PM Revision a0273d67 (git): Avoid a use after free in VM assertion
If the thread for the current EC has been killed, don't check
the VM ptr for the EC (which gets it via the thread), as that will
have already been freed.
Fixes [Bug #16907]
jeremyevans (Jeremy Evans)
08:50 PM Revision ea4ccc09 (git): Remove trivial examples from array.c (#3442)
"Trivial" typically means "returns a new empty Array." burdettelamar (Burdette Lamar)
08:37 PM Bug #16853: calling bla(hash, **kw) with a string-based hash passes the strings into **kw (worked < 2.7)
> If there is a call like foo(**h), and h has both Symbol and non-Symbol keys, in <2.7 the Hash is "split" which I find extremely confusing and it's also slowing things down by always having to consider "there might be an extra positiona... sylvain.joyeux (Sylvain Joyeux)
06:37 PM Feature #17127: Some TrueClass methods are faster if implemented in Ruby
off topic: If you write an entire ticket in English, I think you should post your ticket to ruby-core to attract more audiences instead of ruby-dev, which has been for tickets written in Japanese. k0kubun (Takashi Kokubun)
06:01 PM Bug #17031: `Kernel#caller_locations(m, n)` should be optimized
Most of the CI issues were when running with asserts, so I compiled with asserts enabled and ran tests. It took quite a while, and no problems were noted:
```
Finished tests in 82924.634324s, 0.2518 tests/s, 67.0770 assertions/s.
2...
jeremyevans0 (Jeremy Evans)
04:42 PM Revision 0fea0427 (git): Remove nil-return examples from hash.c (#3438)
* Remove nil-return examples from hash.c burdettelamar (Burdette Lamar)
03:54 PM Bug #17128: test_io_console.rb fails on actual console
Jeremy, thank you for the suggestion! I will do that now. leam (Leam Hall)
03:12 PM Bug #17128: test_io_console.rb fails on actual console
leam (Leam Hall) wrote in #note-1:
> I have opened Bug 17128, to handle an edge case in a test. I have
> ...
I'm not sure whether the change is correct, but if you would like to submit a pull request for it, you should do so to the up...
jeremyevans0 (Jeremy Evans)
11:45 AM Bug #17128: test_io_console.rb fails on actual console
I have opened Bug 17128, to handle an edge case in a test. I have
working code to fix the issue, but am still learning the Ruby process
for contributing.

Is this small enough to do a pull request for? Is there a better way to
r...
leam (Leam Hall)
11:39 AM Bug #17128 (Closed): test_io_console.rb fails on actual console
When running "make test-all TESTS=io/console/test_io_console" on the current Ruby source, the following error is generated if the test is run on the server console:
Run options:
--seed=37271
"--ruby=./miniruby -I./lib -I. -I.ex...
leam (Leam Hall)
03:45 PM Revision 914b2208 (git): configure.ac: rule out old Sun C++
CI failures observed for old Sun C++. We don't want to hustle, as newer
versions are okay. Just check the sanity and rule out insane compilers.
shyouhei (Shyouhei Urabe)
03:45 PM Revision 954afd1b (git): protect CFLAGS from being smashed by AC_PROG_CC
AC_PROG_CC_C99 calls AC_PROC_CC, which calls _AC_PROG_CC_G, which sets
default CFLAGS, whose contents are not customisable. We don't welcome
this behaviour.
The exact same thing happens for CXXFLAGS in AC_PROG_CXX.
shyouhei (Shyouhei Urabe)
03:33 PM Revision 7263fd6f (git): * 2020-08-22 [ci skip]
git[bot]
03:33 PM Revision cc2caa6e (git): do not test --version
`llvm-strip-7` is a sane valid strip command that LLVM 7 ships, albeit
it does not understand `--version`. It is a bad idea to check that
option. Instead just see if the command actually strips something. A
copy of `/bin/sh` should su...
shyouhei (Shyouhei Urabe)
02:22 PM Feature #17016: Enumerable#accumulate
I'd like to propose that we name this method `#accumulate`. @matz do you think that is an acceptable name? parker (Parker Finch)
11:40 AM Revision 44d25c65 (git): Fixup 3292f4d965845d543733559fd1736b8c42fadab3
hsbt (Hiroshi SHIBATA)
11:28 AM Revision 3292f4d9 (git): Fixed the executable path for erb command
hsbt (Hiroshi SHIBATA)
11:18 AM Revision 8c97883b (git): Promote erb to default gems
hsbt (Hiroshi SHIBATA)
09:10 AM Revision bc374e5c (git): Promote rinda to default gems
hsbt (Hiroshi SHIBATA)
08:51 AM Feature #16986: Anonymous Struct literal
At first, I misunderstood this feature. I thought that this would be a useful substitute of symbol-key Hash (like JSON data) which we can read the values by `s.name` instead of `s[:name]`.
However, it is not. This use is potentially...
mame (Yusuke Endoh)
07:01 AM Revision 3eb76e74 (git): configure.ac: try GCC-provided ld
In case of cross-compilation, GCC might provide its own linker. Its
behaviour seems slightly different from that of gcc(1). This is not a
big deal for normal situations, but the difference can cause libtool to
go mad.
We ship bundled ...
shyouhei (Shyouhei Urabe)
02:47 AM Revision 73b6bc57 (git): AC_PROG_CXXCPP: remove
Caused CI failures on environments without sane C++ compilers. shyouhei (Shyouhei Urabe)
02:04 AM Revision 7341b1a5 (git): configure.ac: move program_transform_name
Historically `$program_transform_name` has been put in front of
`AC_CANONICAL_TARGET`. Previous commit changes it, which affects the
name of generated ruby binary when cross-compiling. I _guess_ the
historical behaviour is a bug (name ...
shyouhei (Shyouhei Urabe)
02:04 AM Revision 2c96e048 (git): configure.ac: use compiler-provided toolchains
These days as link-time optimisations spread accross compilers, they
tend to ship their own version of ld, ar, etc. Why not detect such
things if any. Users can select compilers by ./configure --with-gcc=
whatever, or select individual...
shyouhei (Shyouhei Urabe)
02:04 AM Revision 8b022da5 (git): HAVE_STMT_AND_DECL_IN_EXPR: not for Sun C++
Because we check HAVE_STMT_AND_DECL_IN_EXPR in configure, it is peoven
to work in C. But C++ situation can be different. Oracle Developer
Studio is another example of such things.
shyouhei (Shyouhei Urabe)
02:04 AM Revision 80b31621 (git): ext/-test-/cxxanyargs: suppress SunPro warning
I found a way to suppress particular kind of warnings via pragmas. shyouhei (Shyouhei Urabe)
02:04 AM Revision 01826b3f (git): RBIMPL_HAS_CPP_ATTRIBUTE: handle SunPro
Oracle Developer Studio's C++ preprocessor started to understand
__has_cpp_attribute since version 12.5, and is broken. After looking
around for a while I found Boost and ICU also had this issue before.
Let me add workaround for it.
shyouhei (Shyouhei Urabe)
01:40 AM Revision b6c7b94b (git): Remove nil-return examples from array.c (#3437)
burdettelamar (Burdette Lamar)
 

Also available in: Atom