Project

General

Profile

Activity

From 04/09/2020 to 04/15/2020

04/15/2020

11:36 PM Feature #16790: string format and refinements
This isn't a bug, as it is currently expected that refinements would not be used in this case. Switching this to a feature request. jeremyevans0 (Jeremy Evans)
11:25 PM Feature #16790 (Open): string format and refinements
I did:
```ruby
require 'pathname'
module PathRefinement
refine Pathname do
def to_s
'"%s"' % self
end
end
end
module Builder
using PathRefinement
def call(s,params)
cmd = s % param...
dsisnero (Dominic Sisneros)
09:57 PM Bug #16787: [patch] allow Dir.home to work for non-login procs when $HOME not set
Just attaching the "v2" version of the patch, which adds functionality to fallback on using getpwuid() when getpwuid_r() is not available at compile time. This patch is already obsolete, as we are discussing doing name based lookups, and... salewski (Alan Salewski)
09:50 PM Bug #16787: [patch] allow Dir.home to work for non-login procs when $HOME not set
nobu (Nobuyoshi Nakada) wrote in #note-2:
> The reason to prefer `getpwnam` over `getpwuid` is that some login names who have different home directories can share the same user id.
> ...
Thanks; I agree. I hadn't considered that possib...
salewski (Alan Salewski)
01:06 PM Bug #16787: [patch] allow Dir.home to work for non-login procs when $HOME not set
The reason to prefer `getpwnam` over `getpwuid` is that some login names who have different home directories can share the same user id.
I think it looks good as the _next_ fallback when `getlogin` and/or `getpwnam` fail.
nobu (Nobuyoshi Nakada)
11:38 AM Bug #16787: [patch] allow Dir.home to work for non-login procs when $HOME not set
I created a pull request for this over on GitHub:
https://github.com/ruby/ruby/pull/3034
The automated intgration tests there have some complaints. I'll see what I can do about getting those fixed up, and will report back.
salewski (Alan Salewski)
11:19 AM Bug #16787 (Closed): [patch] allow Dir.home to work for non-login procs when $HOME not set
The 'Dir.home' method in versions of Ruby 2.x through the latest (2.7.1,
released 2020-03-31) is unable to reliably locate the user's home directory
when all three of the following are true at the same time:
1. Ruby is running o...
salewski (Alan Salewski)
07:23 PM Bug #16789 (Closed): Compaction callback for C extensions not documented
The compaction callback for C extensions not documented in the extension rdoc.
Here's the section of the C code where the callback is called, if it exists:
https://github.com/ruby/ruby/blob/master/gc.c#L8343
Here's the relevant ...
mooreds (Dan Moore)
05:45 PM Bug #16788 (Rejected): T_CLASS counts classes double
This is expected and not a bug. Creating a class automatically creates a singleton class. Output from debugger when doing `c = Class.new`:
```
#0 class_alloc (flags=0, klass=120258865952) at class.c:172
#1 0x0000073abf1eadcd in ...
jeremyevans0 (Jeremy Evans)
05:22 PM Bug #16788 (Rejected): T_CLASS counts classes double
Consider the following code:
``` ruby
h = {}
ObjectSpace.count_objects(h)
puts "Counts: #{ h[:T_CLASS] }, #{ h[:T_ICLASS] }"
objects = []
classes = []
ObjectSpace.each_object(Object){|x| objects << x}
ObjectSpace.each_object(...
ana06 (Ana Maria Martinez Gomez)
12:05 PM Revision 155f64e3 (git): Raise EPIPE at broken pipe for the backward compatibility
Instead of SignalException for SIGPIPE, raise `Errno::EPIPE` with
instance variable `signo` and re-send that signal at exit.
[Feature #14413]
nobu (Nobuyoshi Nakada)
12:00 PM Revision d72fd1e4 (git): Added rb_syserr_new_path
Similar to rb_syserr_fail_path, but just returns the created
exception instance instead of raising it.
nobu (Nobuyoshi Nakada)
10:51 AM Bug #16785: ruby 2.8.0-dev 5c27681813 causes Rails CI failure
I have confirmed 79f3403b addresses the issue.
```
% ruby -v
ruby 2.8.0dev (2020-04-15T06:49:29Z master 79f3403be0) [x86_64-darwin19]
% PARALLEL_WORKERS=1 bin/test test/controller/base_test.rb --seed 31701 -n "/^(?:UrlOptionsTest#...
yahonda (Yasuo Honda)
06:53 AM Bug #16785: ruby 2.8.0-dev 5c27681813 causes Rails CI failure
Thanks to the easy way to reproduce the issue, I could fix the failure in commit:8355a99883 at least in my environment. Also I fixed a similar problem in commit:79f3403be0.
Could you check if commit:79f3403be0 fixes the problem?
k0kubun (Takashi Kokubun)
06:42 AM Bug #16785 (Closed): ruby 2.8.0-dev 5c27681813 causes Rails CI failure
Applied in changeset commit:git|8355a998839f17ff214a89062821a0a4287f6a54.
----------
Invalidate fastpath when calling attr_writer by super
We started to use fastpath on invokesuper when a method is not refinements
since 5c27681813, but...
k0kubun (Takashi Kokubun)
07:06 AM Revision 69b3e0ac (git): Create succ_index_table as a part of `iseq_setup`
With compiling `CPDEBUG >= 2`, `rb_iseq_disasm` segfaults if this
table has not been created. Also `ibf_load_iseq_each` calls
`rb_iseq_insns_info_encode_positions`.
nobu (Nobuyoshi Nakada)
07:06 AM Revision a9567cc2 (git): Added test for `debug_level:` option of `RubyVM::InstructionSequence.compile`
nobu (Nobuyoshi Nakada)
06:59 AM Revision 1dad9fa5 (git): This test is not testing attr_writer
k0kubun (Takashi Kokubun)
06:49 AM Revision 79f3403b (git): Invalidate fastpath when calling attr_reader by super
The same bug as 8355a99883 existed in attr_reader too. k0kubun (Takashi Kokubun)
06:32 AM Revision 8355a998 (git): Invalidate fastpath when calling attr_writer by super
We started to use fastpath on invokesuper when a method is not refinements
since 5c27681813, but we shouldn't have used fastpath for attr_writer either.
`cc->aux_.attr_index` is for an actual receiver class, while we store
its superclas...
k0kubun (Takashi Kokubun)
03:34 AM Revision 2c12d111 (git): Disassemble nop-inserted list
nobu (Nobuyoshi Nakada)
03:28 AM Revision de2afcbf (git): Show heading for update_catch_except_flags
nobu (Nobuyoshi Nakada)
03:17 AM Revision f9822d17 (git): Shrink diassembled result string
nobu (Nobuyoshi Nakada)
01:37 AM Revision 0d6737cb (git): * 2020-04-15 [ci skip]
git[bot]
01:33 AM Revision 478135f4 (git): Disallow line-continuation before R-assign
nobu (Nobuyoshi Nakada)
01:18 AM Feature #16786: Light-weight scheduler for improved concurrency.
I looked at C interface.
We can introduce new interface, something like:
```c
int rb_wait_readable(VALUE io);
int rb_wait_writable(VALUE io);
// Similar to wait_for_single_fd:
int rb_wait_events(VALUE io, int events, struct timeval * ...
ioquatix (Samuel Williams)
12:42 AM Feature #16786: Light-weight scheduler for improved concurrency.
Added `autoclose: false` to reflect discussion point from @headius. ioquatix (Samuel Williams)
12:47 AM Feature #14736 (Closed): Thread selector for flexible cooperative fiber based concurrency
Closing in favour of https://bugs.ruby-lang.org/issues/16786 ioquatix (Samuel Williams)

04/14/2020

11:58 PM Feature #16786: Light-weight scheduler for improved concurrency.
In addition, I thought about it more, and I think `Fiber do ... end` without a scheduler should be a hard error, otherwise, the default implementation needs to expose symmetric/asymmetric co-routine (`resume`/`transfer`). In addition, ev... ioquatix (Samuel Williams)
11:55 PM Feature #16786: Light-weight scheduler for improved concurrency.
> Why not differentiate what we think of as Fiber today with this new type of Fiber (e.g. ScheduledFiber)?
From the user's point of view, it's still a fiber, and can be scheduled like a fiber: `resume`/`yield`/`transfer` and so on. The ...
ioquatix (Samuel Williams)
06:55 PM Feature #16786: Light-weight scheduler for improved concurrency.
I have not had much time to digest this from a single reading but a question immediately screams out at me in reading this: Why not differentiate what we think of as Fiber today with this new type of Fiber (e.g. ScheduledFiber)?
It fe...
enebo (Thomas Enebo)
06:45 PM Feature #16786: Light-weight scheduler for improved concurrency.
A thought occurs: if you have to create a "special" fiber to get nonblocking behavior anyway, why isn't it named something else? How about something like Worker?
* Create a new nonblocking worker fiber with `Worker.new do`
* Workers ...
headius (Charles Nutter)
06:15 PM Feature #16786: Light-weight scheduler for improved concurrency.
Notes from recent discussions about this on Slack:
Scheduler API should pass IO objects, not file descriptors
----------------------------------------------------------
The current design calls for the Scheduler methods like `wait...
headius (Charles Nutter)
03:31 PM Feature #16786: Light-weight scheduler for improved concurrency.
> One issue I see is that this adds another API (Scheduler) for people to have to
In practice, users do not see this interface. If you check `Async` implementation, it's completely hidden from user, but allows `Async` to handle native R...
ioquatix (Samuel Williams)
02:54 PM Feature #16786: Light-weight scheduler for improved concurrency.
One issue I see is that this adds another API (Scheduler) for people to have to
remember. They will have to know how/when to use Mutex, Thread, Fibers, perhaps
Guilds, and now Scheduler.
Is this really what we want to have in ruby? ...
shevegen (Robert A. Heiler)
02:38 PM Feature #16786 (Closed): Light-weight scheduler for improved concurrency.
# Abstract
We propose to introduce a light weight fiber scheduler, to improve the concurrency of Ruby code with minimal changes.
# Background
We have been discussing and considering options to improve Ruby scalability for severa...
ioquatix (Samuel Williams)
04:57 PM Bug #16785 (Assigned): ruby 2.8.0-dev 5c27681813 causes Rails CI failure
> commit:5c27681813
Thank you for your report. Let me take a look at this.
k0kubun (Takashi Kokubun)
09:16 AM Bug #16785 (Closed): ruby 2.8.0-dev 5c27681813 causes Rails CI failure
Rails CI has been failing since https://buildkite.com/rails/rails/builds/68202#ee7fdd62-d66b-48a1-a55f-af28a2bff287 , according to git bisect it is triggered since ruby 2.8.0-dev 5c27681813
# Steps to reproduce (I have not found how t...
yahonda (Yasuo Honda)
04:37 PM Misc #16047: Reconsider impact of frozen_string_literal on dynamic strings
I find myself only applying ".freeze" to all-cap constants:
RED = "red".freeze
I think it would nice if Ruby 3 only (automatically) froze string that are declared/assigned to constants.
ngan (Ngan Pham)
10:47 AM Revision a520ee47 (git): Removed duplicate value_expr checks
`arg_rhs` has the same check and is always a non-void value
expression.
nobu (Nobuyoshi Nakada)
08:02 AM Feature #11816: Partial safe navigation operator
> Given the fact that `foo&.bar.baz` have basically no use whatsover, it is difficult to see what functioning code could be broken though
I can imagine some!
* Not from production, but it does not seem too obscure: `foo&.bar.nil?...
zverok (Victor Shepelev)
03:49 AM Feature #11816: Partial safe navigation operator
> The &. operator has pretty well-defined semantics by now and changing it may break some existing code.
Any change may break some existing code. Given the fact that `foo&.bar.baz` have basically no use whatsover, it is difficult to s...
marcandre (Marc-Andre Lafortune)
06:48 AM Revision f8886265 (git): Fix logic to detect vs120
MJIT_CC seems not defined
https://ci.appveyor.com/project/ruby/ruby/builds/32161572/job/u5sw8yn4in87heki
k0kubun (Takashi Kokubun)
06:13 AM Revision 7a85d31c (git): [ruby/date] Suppress -Wchar-subscripts warnings by Cygwin gcc 9.3.0
https://github.com/ruby/date/commit/9968eb69f0 nobu (Nobuyoshi Nakada)
06:11 AM Revision e6677503 (git): Add missing call in 70b7304f03
k0kubun (Takashi Kokubun)
06:08 AM Revision 70b7304f (git): Ignore AppVeyor vs120's pdb corruption
We tried to fix this like https://github.com/ruby/ruby/pull/3029, but it
didn't work. The failure has never been helpful for developing MJIT, and
currently it's not prioritized to be fixed. Until we try to figure out
the root cause on Ap...
k0kubun (Takashi Kokubun)
04:37 AM Revision f883d621 (git): Unify vm benchmark prefixes to vm_ (#3028)
The vm1_ prefix and vm2_ had had special meaning until
820ad9cb1d72d0897b73dae282df3793814b27e8 and
12068aa4e980ab32a0438408a519030e65dabf5e. AFAIK there's no special
meaning in vm3_ prefix.
As they have confused people (like "In `bench...
k0kubun (Takashi Kokubun)
04:10 AM Revision 9fa24018 (git): Make y.output in ripper unlocalized [ci skip]
Often it is easy to search, grep, etc from command line, for
debugging purpose.
nobu (Nobuyoshi Nakada)
03:39 AM Revision c79e3a59 (git): Add {Regexp,String}#match with block to call-seq [ci skip]
znz (Kazuhiro NISHIYAMA)
03:32 AM Revision 310ef9f4 (git): Make vm_call_cfunc_with_frame a fastpath (#3027)
when there's no need to call CALLER_SETUP_ARG and CALLER_REMOVE_EMPTY_KW_SPLAT
(i.e. !rb_splat_or_kwargs_p(ci) && !calling->kw_splat).
Micro benchmark:
```
$ benchmark-driver -v --rbenv 'before;after' benchmark/vm_send_cfunc.yml --repea...
k0kubun (Takashi Kokubun)
02:32 AM Bug #16784 (Closed): Compiling with --enable-load-relative and "musl-gcc -static" yields "negative string size (or size too big) (ArgumentError)"
```
$ uname -ar
Linux localhost 5.4.27-0-lts #1-Alpine SMP Mon, 23 Mar 2020 18:15:20 UTC ppc64le Linux
$ gcc --version
gcc (Alpine 9.2.0) 9.2.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the sour...
runlevel5 (Trung Le)

04/13/2020

11:45 PM Revision b9d3ceee (git): Unwrap vm_call_cfunc indirection on JIT
for VM_METHOD_TYPE_CFUNC.
This has been known to decrease optcarrot fps:
```
$ benchmark-driver -v --rbenv 'before --jit;after --jit' benchmark.yml --repeat-count=24 --output=all
before --jit: ruby 2.8.0dev (2020-04-13T16:25:13Z master...
k0kubun (Takashi Kokubun)
07:16 PM Feature #16783: Implicit vs explicit self
😻 koriroys (Kori Roys)
05:59 PM Feature #16783 (Closed): Implicit vs explicit self
This was implemented in Ruby 2.7:
```ruby
class A
def b
self.a
self.a = 1
end
private
attr_accessor :a
end
p A.new.b
# 2.7: 1
# 2.6 and below: NoMethodError
```
See #11297 and #16123.
jeremyevans0 (Jeremy Evans)
05:49 PM Feature #16783: Implicit vs explicit self
phrasing koriroys (Kori Roys)
05:48 PM Feature #16783 (Closed): Implicit vs explicit self
I recently ran into this case while trying to explain why `self` is needed for calling setters (can't disambiguate between creating a local variable versus calling the setter because of the syntactic sugar). However, I couldn't come up w... koriroys (Kori Roys)
05:37 PM Feature #16688: Allow #to_path object as argument to system()
There's maybe just one small gotcha to consider:
```ruby
o = File.open("o","w")
system("ls", out: o) #should be equivalent
system("ls", out: o.fileno) #to this
system("ls", out: o.to_path) #not to this
```
Dan0042 (Daniel DeLorme)
05:29 PM Feature #11816: Partial safe navigation operator
The `&.` operator has pretty well-defined semantics by now and changing it *may* break some existing code. Maybe a possible alternative would be a similar but separate operator like `&&.` / `and.` which would then intuitively have the sa... Dan0042 (Daniel DeLorme)
04:26 PM Bug #16740: Deprecating and removing the broken Process.clock_getres
I added an explicit list based on the file linked above in a6f7458ea81e084f6ebe7dc5c8cb5b7cb70fe2be.
On the upside it should be even clearer nobody should use this method.
I consider this issue resolved.
Eregon (Benoit Daloze)
04:16 PM Bug #16740: Deprecating and removing the broken Process.clock_getres
I don't think a list of ~15 cases of OS+clock would be helpful there, it's basically all OS we test.
And I doubt anyone would ever bother to update that list anyway.
I think clock_getres() will remain broken or inaccurate forever.
Eregon (Benoit Daloze)
04:25 PM Revision fb40495c (git): * 2020-04-14 [ci skip]
git[bot]
04:23 PM Revision a6f7458e (git): Add a a list of cases for which clock_getres() has been observed to be inaccurate
* See [Bug #16740] Eregon (Benoit Daloze)
01:57 PM Revision c28e230a (git): Improve Hash documentation.
burdettelamar (Burdette Lamar)
12:51 PM Revision 67bcac87 (git): Allow simple R-assign in endless def
nobu (Nobuyoshi Nakada)
07:38 AM Revision 5dc6080c (git): delete CACHELINE
Since https://github.com/ruby/ruby/pull/2888 this macro is no longer
used in any place.
shyouhei (Shyouhei Urabe)
07:06 AM Revision c37a357c (git): include what you use.
This reverts commit 443389effc37308ce1a3c3a840082a344fc6af56.
This reverts commit d94960f22ec2de3a3855305cb51343806d2b46c7.
Inclusion of header files must be explicit. Every file shall directly
include what is necessary.
https://githu...
shyouhei (Shyouhei Urabe)
07:06 AM Revision 4ff3f205 (git): add #include guard hack
According to MSVC manual (*1), cl.exe can skip including a header file
when that:
- contains #pragma once, or
- starts with #ifndef, or
- starts with #if ! defined.
GCC has a similar trick (*2), but it acts more stricter (e. g. there
m...
shyouhei (Shyouhei Urabe)
06:10 AM Revision a3f6f679 (git): Add MJIT_COUNTER macro to dump total_calls
k0kubun (Takashi Kokubun)
03:43 AM Bug #16782: `lock': deadlock; recursive locking (ThreadError) in 2.7.1
Total stab in the dark, but I wonder if it's because the signal handling is interrupting the same thread it's already on? Or something else weird? ioquatix (Samuel Williams)
03:42 AM Bug #16782 (Closed): `lock': deadlock; recursive locking (ThreadError) in 2.7.1
Using the latest `async-http` repo:
```
% bundle exec rspec spec/async/http/performance_spec.rb
Traceback (most recent call last):
11: from /home/samuel/.gem/ruby/2.7.1/gems/async-1.24.2/lib/async/task.rb:258:in `block in make_f...
ioquatix (Samuel Williams)
03:31 AM Feature #15897: `it` as a default block parameter
jeremyevans0 (Jeremy Evans) wrote in #note-39:
> I'm going to close this feature since numbered block parameters were introduced to address it.
Noted. But I think there might have been some confusion.
In my opinion, the spirit o...
joallard (Jonathan Allard)
12:51 AM Misc #16778: Should we stop vendoring default gems code?
CI in general, and in particular Actions (along with actions/checkout@v2) can be done from any repo.
There could a repo (maybe ruby-std-lib-ci) that contained nothing but Actions workflow scripts using Ruby master for all std-lib repo...
MSP-Greg (Greg L)

04/12/2020

08:47 PM Feature #16781 (Open): alias :fold :reduce
1. Method "collect" has short synonym "map", short synonym of "inject" and "reduce" doesn't exist.
2. Name "fold" is more common/popular than "reduce" or "inject".
In my own code I use:
```
module Enumerable
alias :fold :redu...
0x81000000 (/ /)
07:19 PM Revision 82fdffc5 (git): Avoid UB with flexible array member
Accessing past the end of an array is technically UB. Use C99 flexible
array member instead to avoid the UB and simplify allocation size
calculation.
See also: DCL38-C in the SEI CERT C Coding Standard
alanwu (Alan Wu)
03:02 PM Revision f2c3848a (git): * 2020-04-13 [ci skip]
git[bot]
02:29 PM Revision 4c8e3f12 (git): Make rb_scan_args implementations same
between rb_scan_args_set and rb_scan_args_assign +
rb_scan_args_result.
nobu (Nobuyoshi Nakada)
02:04 PM Bug #16776: Regression in coverage library
Eregon (Benoit Daloze) wrote in #note-5:
> Maybe coverage could use a second type of internal tracepoint to fix this issue (internal coverage handlers are likely pure C and so don't emit any extra event)?
Yes, it is the plan B that I...
mame (Yusuke Endoh)
02:01 PM Bug #16776: Regression in coverage library
IMO, TracePoint hooks should have a priority. A TracePoint hook that is first enabled should monitor a hook code that is second enabled:
```ruby
1: TracePoint.new(:line) do |tp|
2: p [:parent, tp]
3: end.enable do
4: TracePoi...
mame (Yusuke Endoh)
01:14 PM Bug #16776: Regression in coverage library
I'm surprised too the coverage stdlib gets hit by this issue.
Maybe coverage could use a second type of internal tracepoint to fix this issue (internal coverage handlers are likely pure C and so don't emit any extra event)?
Eregon (Benoit Daloze)
06:27 AM Bug #16776: Regression in coverage library
I'm not super familiar with `TracePoint`, but at first sight `DeepCover` shouldn't generate any extra callbacks as the instrumenting is minimal, typically adding `$tracker[42] += 1` and taking care to never change the line numbers.
So...
marcandre (Marc-Andre Lafortune)
05:32 AM Bug #16776: Regression in coverage library
I never realized this limitation. I imagine that for the vast majority of users it's a non issue, but for `byebug` it is quite serious. Would you consider using `deep-cover` instead? marcandre (Marc-Andre Lafortune)
01:11 PM Feature #16779: Add sprintf %q format option
`%p` is part of the documentation of `sprintf` but maybe it's not so clear.
PR welcome to improve that documentation.
Eregon (Benoit Daloze)
01:10 PM Feature #16779 (Rejected): Add sprintf %q format option
Eregon (Benoit Daloze)
11:54 AM Feature #16779: Add sprintf %q format option
I am not aware of `%p` format option, this option exactly did what i try to solve.
Thanks.
Someone can close this issue?
gearnode (Bryan Frimin)
10:59 AM Feature #16779: Add sprintf %q format option
`.inspect.dump` double quotes, that doesn't seem readable/useful to me:
```ruby
puts sprintf("%s", "abc".inspect.dump)
# "\"abc\""
```
Eregon (Benoit Daloze)
10:57 AM Feature #16779: Add sprintf %q format option
Isn't `%p` enough (which uses `#inspect`)? Eregon (Benoit Daloze)
11:16 AM Misc #16778: Should we stop vendoring default gems code?
I believe that is a good practice in general because:
* Contributions don't get affected by changes in external dependencies (in this case, the language). So it avoids "CI failures are unrelated" kind of issues.
* It makes finding break...
deivid (David Rodríguez)
11:04 AM Misc #16778: Should we stop vendoring default gems code?
> One issue might be that ruby/ruby changes frequently but the CI of e.g. ruby/ostruct might run infrequently because commits are less frequent there. And yet it could be very useful to identity which ruby/ruby commit broke some standard... deivid (David Rodríguez)
10:45 AM Misc #16778: Should we stop vendoring default gems code?
I think this is a great idea and it would make the stdlib really "just a set of gems".
I'm not sure what should happen regarding CI testing.
One issue might be that ruby/ruby changes frequently but the CI of e.g. ruby/ostruct might...
Eregon (Benoit Daloze)
10:19 AM Misc #16778: Should we stop vendoring default gems code?
Hei @mame!
> When Ruby CI fails, we need to stop the error as soon as possible. It is not acceptable to send a pull request and wait for acceptance. Otherwise, the notification flood makes it hard to detect a new type of failure. This...
deivid (David Rodríguez)
05:05 AM Misc #16778: Should we stop vendoring default gems code?
mame (Yusuke Endoh) wrote in #note-11:
> As a committer who is involved in security release, I'm concerned about the maintenance policy of default gems.
> ...
With git submodules it’s possible to address that issue by applying patch file...
greggzst (Grzegorz Jakubiak)
03:29 AM Misc #16778: Should we stop vendoring default gems code?
As a committer who is involved in security release, I'm concerned about the maintenance policy of default gems.
Consider a recent vulnerability issue of JSON gem (CVE-2020-10663). It looks that JSON gem maintains its only latest versio...
mame (Yusuke Endoh)
02:56 AM Misc #16778: Should we stop vendoring default gems code?
I have one favor as a maintainer of Ruby CIs. If the copies of default gems are removed from ruby/ruby, please allow us (ruby committers) to directly change the upstream of default gems (and rubygems, if you want to remove the rubygems ... mame (Yusuke Endoh)
10:26 AM Feature #16494: Allow hash unpacking in non-lambda Proc
Honestly, after how Matz has stated his opinion, I don't expect there is any room for dialogue.
The only thing I'd like to add is I feel a huge discrepancy in this decision, in my head it happens this way:
1. On the one hand, a lot...
zverok (Victor Shepelev)
09:45 AM Feature #16494: Allow hash unpacking in non-lambda Proc
I am another person with blocks affected in a production application codebase, found sixteen uses.
I see a cluster of people reporting an issue. Are we the tip of an iceberg, or the entire iceberg? There is a school of programmer tha...
inopinatus (Joshua GOODALL)
05:58 AM Feature #16754 (Closed): Pager for `--help`
Applied in changeset commit:git|f22c4ff359498ab342e4b6d6feb21af6004ee270.
----------
View the help message with PAGER [Feature #16754]
View the help message wth pager designed by RUBY_PAGER or PAGER
environment variable, unless that va...
nobu (Nobuyoshi Nakada)
05:58 AM Revision a07cbacd (git): Honor COLUMNS [Feature #16754]
nobu (Nobuyoshi Nakada)
05:58 AM Revision cc68d2fb (git): Hightlight usage [Feature #16754]
nobu (Nobuyoshi Nakada)
05:58 AM Revision 3825662d (git): Set up environment variable for pager [Feature #16754]
nobu (Nobuyoshi Nakada)
05:58 AM Revision e6551d83 (git): PAGER without fork&exec too [Feature #16754]
nobu (Nobuyoshi Nakada)
05:58 AM Revision f22c4ff3 (git): View the help message with PAGER [Feature #16754]
View the help message wth pager designed by RUBY_PAGER or PAGER
environment variable, unless that value is empty.
nobu (Nobuyoshi Nakada)
03:45 AM Revision 5c276818 (git): Enable fastpath on invokesuper (#3021)
Fastpath has not been used for invokesuper since it has set vm_call_super_method on every invocation.
Because it seems to be blocked only by refinements, try enabling fastpath on invokesuper when cme is not for refinements.
While this p...
k0kubun (Takashi Kokubun)
03:20 AM Feature #11816: Partial safe navigation operator
FWIW, EcmaScript 2020 introduced a similar operator, see https://github.com/tc39/proposal-optional-chaining/
. The precedence is between `[]` and `*`, higher than I propose in https://bugs.ruby-lang.org/issues/11816#note-6 but at least ...
marcandre (Marc-Andre Lafortune)
01:09 AM Bug #13962: Change http://unicode.org to https
znz (Kazuhiro NISHIYAMA) wrote in #note-13:
> Making snapshots of 2.5 and 2.6 sometimes failed to download from `http://www.unicode.org`.
> ...
This may be related to http://blog.unicode.org/2020/04/technical-alert-unicode-technical.ht...
duerst (Martin Dürst)

04/11/2020

10:26 PM Misc #16778 (Assigned): Should we stop vendoring default gems code?
hsbt (Hiroshi SHIBATA)
10:24 PM Misc #16778: Should we stop vendoring default gems code?
Using git submodules would certainly have advantages, but it's a big change.
Either way, it would be helpful if upstream repos were running CI on Ruby head/master, preferably on all supported platforms. Especially true with extensions.
MSP-Greg (Greg L)
09:12 PM Misc #16778: Should we stop vendoring default gems code?
shevegen (Robert A. Heiler) wrote in #note-4:
> this may help distributions such as,
> ...
Wearing my Fedora Ruby maintainer hat, I was always for gemification of StdLib. Nevertheless, I can tell you that that the *current* design, inc...
vo.x (Vit Ondruch)
07:57 PM Misc #16778: Should we stop vendoring default gems code?
Yeah! You're right about those other reasons. Specially for security issues in standard libraries, gemification is great. I believe those benefits remain with my proposal though.
I didn't mention any drawbacks because I couldn't think...
deivid (David Rodríguez)
07:02 PM Misc #16778: Should we stop vendoring default gems code?
> I believe that all of that kind of defeats the point of "gemification" of
> ...
If I remember correctly then this was not the only reason made in favour of
gemifying core. One, for example, was that it becomes easier to change
exis...
shevegen (Robert A. Heiler)
04:17 PM Misc #16778: Should we stop vendoring default gems code?
> Is that done against ruby/ruby's code, or the master code of all run-time and/or testing dependencies (ie, the 'gemified' repos)? That might get rather messy...
I don't think that's much of an issue here since default gems are so ba...
deivid (David Rodríguez)
03:07 PM Misc #16778: Should we stop vendoring default gems code?
> upstream's responsibility to make sure the code works and it's properly tested
Is that done against ruby/ruby's code, or the master code of all run-time and/or testing dependencies (ie, the 'gemified' repos)? That might get rather me...
MSP-Greg (Greg L)
01:49 PM Misc #16778: Should we stop vendoring default gems code?
Forgot to mention, but something else that should be done as a "prerequisite" to this would be to make sure that all default gems run daily tests against ruby-core. deivid (David Rodríguez)
01:26 PM Misc #16778 (Rejected): Should we stop vendoring default gems code?
Currently ruby-core vendors all the code in default gems, and runs the tests for each of them.
Also, ruby-core continuously updates the vendored code of default gems to sync with the upstream repos. That's overhead work, not only from...
deivid (David Rodríguez)
10:17 PM Bug #16780 (Closed): Net::FTP PUT command issuing Net::ReadTimeout too quickly
This is my first time writing up an issue for this community, so I apologize if this is written in an abnormal way than your normal issues.
We recently upgraded from ruby 2.6.5 to 2.7.1. Almost immediately, we started seeing issues wi...
rgerard (Ryan Gerard)
09:34 PM Feature #16779: Add sprintf %q format option
The github pull request: https://github.com/ruby/ruby/pull/3019 gearnode (Bryan Frimin)
06:06 PM Feature #16779 (Rejected): Add sprintf %q format option
It would be great to have format option for quoted string for sprintf (like golang sprintf),
it's particularly useful to format log message for example.
Currently we have to do this:
``` ruby
sprintf("%s", some_value.inspect.dump)
...
gearnode (Bryan Frimin)
03:19 PM Revision a01bda59 (git): * 2020-04-12 [ci skip]
git[bot]
03:07 PM Revision 022c7bbe (git): Relaxed of R-assign value to arg
nobu (Nobuyoshi Nakada)
02:00 PM Feature #16742: RbConfig.windows? and RbConfig.host_os
> it should be false for cygwin too since it also tries to hide the fact you're on Windows.
Agreed. I think. I've never worked with the platform.
I've seen many gems/repos that have `.windows?`, `.darwin?`, `.jruby?`, `.mingw?`, `msw...
MSP-Greg (Greg L)
01:16 PM Bug #13962: Change http://unicode.org to https
Making snapshots of 2.5 and 2.6 sometimes failed to download from `http://www.unicode.org`.
But it seems making snapshots of 2.7 and master is no error.
So I want to retry this in ruby_2_5 and ruby_2_6.
https://github.com/ruby/actio...
znz (Kazuhiro NISHIYAMA)
11:48 AM Bug #16669: Rails Action Text unit tests fail since b9007b6c548f91e88fd3f2ffa23de740431fa969
Thanks for providing a fix, which addresses the failure originally reported at Rails Action Text. https://github.com/rails/rails/issues/38613
Unfortunately, As kamipo suggested there are "undefined method `root' for Rails:Module" at Ra...
yahonda (Yasuo Honda)
11:34 AM Bug #16660 (Rejected): Struct#deconstruct_keys inconsistent behavior
My stance is "if we really should care about consistency over performance, we should remove the `keys` argument itself from the specification.
Otherwise, we should do a thorough optimization using the `keys` argument(*)".
Since `deco...
ktsj (Kazuki Tsujimoto)
08:15 AM Feature #16763 (Closed): MSVC: allow ranges for MSVC 2017 and 2019 support in win32/Makefile.sub
Applied in changeset commit:git|93edbb4c08856d6d10d0e2676cc2e36eef839a7d.
----------
Support version ranges for MSVC [Feature #16763]
nobu (Nobuyoshi Nakada)
08:12 AM Revision 93edbb4c (git): Support version ranges for MSVC [Feature #16763]
nobu (Nobuyoshi Nakada)
03:59 AM Revision e56e089b (git): Assertions for basic use of `encoding:` option
nobu (Nobuyoshi Nakada)
03:59 AM Revision bae16b42 (git): Assertions for enumerators of Dir
nobu (Nobuyoshi Nakada)
02:58 AM Revision aade69ea (git): Removed unnecessary `to_a` call
`Dir.entries` returns an array. nobu (Nobuyoshi Nakada)
02:39 AM Bug #14413: `-n` and `-p` flags break when stdout is closed
I understand change. It makes sense. My only concern is:
- Is exit status changed when `SignalException` is raised?
- It's reasonable for users to want non-blocking output to `stdout`. The semantics are changed for this one file descrip...
ioquatix (Samuel Williams)
12:30 AM Bug #14413 (Closed): `-n` and `-p` flags break when stdout is closed
Applied in changeset commit:git|6f28ebd585fba1aff1c9591ced08ed11b68ba9e3.
----------
Silence broken pipe error messages on STDOUT [Feature #14413]
Raise `SignalException` for SIGPIPE to abort when EPIPE occurs.
nobu (Nobuyoshi Nakada)
02:34 AM Bug #16455 (Closed): coroutine ucontext uses deprecated POSIX getcontext/swapcontext/makecontext, absent in musl and uclibc
It is fixed: https://github.com/ruby/ruby/pull/2995 ioquatix (Samuel Williams)
02:24 AM Bug #16777 (Closed): IRB in Ruby 2.7 hangs on pasting long here document
IRB in Ruby 2.7 hangs on pasting long here document. Here is an example when I copy and paste the script in the attached file:
![ruby27](http://g.recordit.co/PJil9eMn25.gif)
Ruby 2.6 works well:
![ruby26](http://g.recordit.co/Yg...
jnchito (Junichi Ito)
02:23 AM Revision bfe70671 (git): [ci skip] Enumerator doc cleanup
This is my first attempt at a pull request. I was reading the ruby docs
the other day and noticed that the output didn't match the code sample
on the with_object documentation. Inserted spaces to fix it.
gerero20
02:19 AM Revision abe2e7de (git): Don't require sub-word atomics
On some architectures (like RISC-V) sub-word atomics are only available
when linking against -latomic, but the configure script doesn't do that,
causing the atomic checks to fail and the resulting ruby binary is
non-functional. Ruby doe...
Andreas Schwab
01:51 AM Bug #16740: Deprecating and removing the broken Process.clock_getres
Eregon (Benoit Daloze) wrote in #note-11:
> I don't have time to report these bugs to all operations systems.
> ...
Personally, I like to write nothing about the accuracy if we cannot be responsible.
As @akr said, OS names and behav...
mame (Yusuke Endoh)
12:51 AM Bug #16771: Segmentation fault when inspecting a bound method
I can reproduce this in 2.7.1, but not on master. Here's debugging information:
```
(gdb) bt
#0 0x00000bbf2523f290 in rb_funcallv_with_cc (cd=0xbbf25296430 <rb_inspect.rb_funcallv_data>, recv=12912719941280, mid=2753, argc=0, argv...
jeremyevans0 (Jeremy Evans)
12:30 AM Revision 6f28ebd5 (git): Silence broken pipe error messages on STDOUT [Feature #14413]
Raise `SignalException` for SIGPIPE to abort when EPIPE occurs. nobu (Nobuyoshi Nakada)
12:24 AM Bug #16768 (Rejected): "\n" started not to work as a delimiter in time zone names for Date._strptime since 2.7.0
This seems more like a bugfix than a regression to me, even if the change was unintended. Is there a reason you would want the previous behavior? In any case, issues in the date library should be filed upstream: https://github.com/ruby... jeremyevans0 (Jeremy Evans)

04/10/2020

10:40 PM Bug #16669 (Assigned): Rails Action Text unit tests fail since b9007b6c548f91e88fd3f2ffa23de740431fa969
k0kubun (Takashi Kokubun)
10:09 PM Bug #16740: Deprecating and removing the broken Process.clock_getres
mame (Yusuke Endoh) wrote in #note-9:
> But some people said, it might be only guaranteed that the number returned by `clock_gettime` is a multiple of the resolution.
Sometimes it returns a resolution less than precise than the clock...
Eregon (Benoit Daloze)
09:47 PM Bug #16740: Deprecating and removing the broken Process.clock_getres
akr (Akira Tanaka) wrote in #note-8:
> It doesn't describe OS version and actual problem of OS behavior.
If you look at the "blame" you can easily find CI logs, including OS versions and which clocks failed.
Blame: https://github....
Eregon (Benoit Daloze)
06:01 PM Bug #16740: Deprecating and removing the broken Process.clock_getres
Eregon (Benoit Daloze) wrote in #note-6:
> https://github.com/ruby/spec/blob/ec844797a51a017ebc93af833e421362b4b24a17/core/process/fixtures/clocks.rb#L19-L59 and the hundreds of failures in CI are solid evidence.
Some of the committers ...
mame (Yusuke Endoh)
04:49 PM Bug #16740: Deprecating and removing the broken Process.clock_getres
Eregon (Benoit Daloze) wrote in #note-6:
> https://github.com/ruby/spec/blob/ec844797a51a017ebc93af833e421362b4b24a17/core/process/fixtures/clocks.rb#L19-L59 and the hundreds of failures in CI are solid evidence.
It doesn't describe ...
akr (Akira Tanaka)
04:34 PM Bug #16740: Deprecating and removing the broken Process.clock_getres
I'm OK to change to "operating system or hardware bugs", although I don't think it's the fault of the hardware.
clock_gettime() works perfectly fine, but clock_getres() on all platforms tested by Ruby is inaccurate for at least some clo...
Eregon (Benoit Daloze)
04:26 PM Bug #16740: Deprecating and removing the broken Process.clock_getres
https://github.com/ruby/spec/blob/ec844797a51a017ebc93af833e421362b4b24a17/core/process/fixtures/clocks.rb#L19-L59 and the hundreds of failures in CI are solid evidence. Eregon (Benoit Daloze)
03:26 PM Bug #16740: Deprecating and removing the broken Process.clock_getres
I don't think that it is a good idea to say "operating system bugs" in rdoc unless there is a solid evidence. You should report it to the upstream and confirm that it is actually a bug. For this particular case, I'm afraid if it is not... mame (Yusuke Endoh)
02:48 PM Bug #16740: Deprecating and removing the broken Process.clock_getres
Eregon (Benoit Daloze) wrote in #note-3:
> OK. I'll improve the documentation to mention it's basically unreliable or broken on most operating systems.
When describing such broken behavior, please describe
(1) OS version and (2) act...
akr (Akira Tanaka)
12:23 PM Bug #16740: Deprecating and removing the broken Process.clock_getres
OK. I'll improve the documentation to mention it's basically unreliable or broken on most operating systems. Eregon (Benoit Daloze)
07:06 AM Bug #16740 (Rejected): Deprecating and removing the broken Process.clock_getres
We discussed this issue at a Ruby developer meeting.
https://bugs.ruby-lang.org/issues/16693
We don't want to remove the method.
(1) Removing a method is incompatible.
(2) Even if OS implementation of clock_getres is buggy, it ...
akr (Akira Tanaka)
05:32 PM Revision 87bcb3c4 (git): Fix articles.
akr (Akira Tanaka)
05:25 PM Bug #16776: Regression in coverage library
I see.
It's a severe as "I can no longer track code coverage on my library that makes heavy use of TracePoint" is considered.
(Edited the message to add thank you for your response and your work in general :))
deivid (David Rodríguez)
05:20 PM Bug #16776: Regression in coverage library
Thank you for your report. The reason why the method execution is missed is because:
* coverage measurement is based on TracePoint mechanism (since 2.6), and
* no TracePoint event is fired during the execution of TracePoint hooks (t...
mame (Yusuke Endoh)
04:39 PM Bug #16776 (Assigned): Regression in coverage library
Hi!
I noticed a regression in the coverage library. I tried to write a minimal program to show it, hopefully it gives some clues or where the issue might lie.
In ruby 2.5.8 and earlier, the following program would print `{:lines=>[...
deivid (David Rodríguez)
05:09 PM Revision 7df83c4e (git): * 2020-04-11 [ci skip]
git[bot]
05:09 PM Revision 6abd08c0 (git): Replace Fixnum by Integer in a document.
akr (Akira Tanaka)
04:51 PM Bug #16770 (Closed): Commit: RUBY3_HAS_BUILTIN: fix for nonexistent builtin - large increase in MinGW & mswin compile times
I guess 443389effc37308ce1a3c3a840082a344fc6af56 probably fixed this. Eregon (Benoit Daloze)
01:41 PM Bug #16770: Commit: RUBY3_HAS_BUILTIN: fix for nonexistent builtin - large increase in MinGW & mswin compile times
@Eregon
I apologize for the possible confusion. When I opened the issue, I woke up, and all three builds (Actions - mingw & mswin, AppVeyor - mingw) took much longer for both build & test. I mentioned the CI logs that showed when it...
MSP-Greg (Greg L)
04:45 PM Bug #14413: `-n` and `-p` flags break when stdout is closed
I like silent exit at EPIPE on STDOUT.
The error message of `ruby ... | head` doesn't help us.
The user, who types the command line, knows the ruby process cannot continue to output to STDOUT after EPIPE.
Alto, I think it's Unix-i...
akr (Akira Tanaka)
04:01 PM Bug #14413: `-n` and `-p` flags break when stdout is closed
I think we need to be careful about changing the exceptions that IO operations can raise.
We already have:
SocketError, IOError, EOFError, Errno::EPIPE, Errno::ECONNRESET, and several others which need to be handled correctly.
S...
ioquatix (Samuel Williams)
04:44 PM Bug #6087: How should inherited methods deal with return values of their own subclass?
Much like all Enumerable methods return `Array` and (of course) do not copy instance variables, I think Array methods should do the same.
This seems particularly important since Array overrides a few methods from Enumerable for optimi...
Eregon (Benoit Daloze)
07:18 AM Bug #6087: How should inherited methods deal with return values of their own subclass?
Should we do an experiment in 3.0?
Matz
matz (Yukihiro Matsumoto)
07:17 AM Bug #6087: How should inherited methods deal with return values of their own subclass?
I used to think methods should honor subclasses, but I changed my mind that the behavior made things too complex.
So if possible I want to make every method return `Array` instead of instance of a subclass. I just worry about the size o...
matz (Yukihiro Matsumoto)
04:06 PM Feature #16428: Add Array#uniq?, Enumerable#uniq?
In my cases, I (server side) only had to check duplication because a client also have validations.
Legal users can't send a request with duplicates, so detailed error message was not required.
(If needed, I could investigate logged req...
kyanagi (Kouhei Yanagita)
02:42 PM Feature #16428: Add Array#uniq?, Enumerable#uniq?
kyanagi (Kouhei Yanagita) wrote in #note-5:
> I was developing mobile games, and I met these situations:
> ...
So you just want to test? Why doesn't `deck.cards.map(...).uniq!`'s return value work?
> When players compose items, eac...
shyouhei (Shyouhei Urabe)
02:25 PM Feature #16428: Add Array#uniq?, Enumerable#uniq?
I was developing mobile games, and I met these situations:
A card deck can't have duplicate characters.
i.e. `deck.cards.map(&:character_id).uniq.size == deck.cards.size`
-> `deck.cards.map(&:character_id).uniq?` or `deck.cards.uniq...
kyanagi (Kouhei Yanagita)
04:41 AM Feature #16428 (Feedback): Add Array#uniq?, Enumerable#uniq?
You said, "I often need to check if an array have duplicate elements". But we cannot think of the real-world use-case.
Could you elaborate on how to use the proposed `#uniq?` and its benefit?
Matz.
matz (Yukihiro Matsumoto)
02:47 PM Misc #16775 (Closed): DevelopersMeeting20200514Japan
# The next dev meeting
**Date: 2020/05/14 13:00-17:00**
Place/Sign-up: https://docs.google.com/document/d/11rxI64ipKrYlDDsGZBfqjYHNepaOWLv1DZBYAdVHFF8/edit
Agenda/Log: https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMe...
mame (Yusuke Endoh)
02:47 PM Misc #16693 (Closed): DevelopersMeeting20200410Japan
mame (Yusuke Endoh)
02:07 PM Revision 108d392e (git): RUBY3_HAS_ATTRIBUTE: fix fallbacks
Same as 133ae0807d661eac174b59c6e91c11a40975baea shyouhei (Shyouhei Urabe)
02:02 PM Bug #16774 (Closed): Don't require sub-word atomics
On some architectures (like RISC-V) sub-word atomics are only available
when linking against -latomic, but the configure script doesn't do that,
causing the atomic checks to fail and the resulting ruby binary is
non-functional. Ruby ...
schwab (Andreas Schwab)
01:46 PM Revision 8ec79540 (git): [DOC] Fixed POSIX clock_getres(3) link [ci skip]
It should not be linked to `Process.clock_getes`. nobu (Nobuyoshi Nakada)
01:12 PM Revision b18a6b64 (git): include/ruby/3: do not skip RUBY3_UNREACHABLE_RETURN
Revert "Revert "include/ruby/3/core/rtypeddata.h: Use 0 instead of NULL for C++ compiler""
Revert "include/ruby/3/core/rtypeddata.h: Use 0 instead of NULL for C++ compiler"
Revert "include/ruby/3: Skip RUBY3_UNREACHABLE_RETURN for icc"
R...
shyouhei (Shyouhei Urabe)
12:42 PM Revision c9b3aa84 (git): Warn about Process#clock_getres being unreliable in documentation
* [Bug #16740]
* Remove the GETTIMEOFDAY_BASED_CLOCK_REALTIME example because the
caveat applies to all clock ids, not just the Symbol clock ids.
Eregon (Benoit Daloze)
12:20 PM Feature #16746: Endless method definition
nobu (Nobuyoshi Nakada) wrote in #note-19:
> It is not easy to control parsing time warnings, and bothers tests.
The exact same applies to pattern matching and yet we added a warning there.
Testing/suppressing the warning is an `eva...
Eregon (Benoit Daloze)
11:59 AM Feature #16746: Endless method definition
It is not easy to control parsing time warnings, and bothers tests. nobu (Nobuyoshi Nakada)
10:20 AM Feature #16746: Endless method definition
> I'd like to experiment with this new syntax. We may find drawbacks in the future, but to find them, we need to experiment first.
If this was merged as an experiment, shouldn't it raise warning on usage (same as pattern matching does)?
retro (Josef Šimánek)
10:06 AM Feature #16746 (Closed): Endless method definition
Applied in changeset commit:git|e8f53692ca7d65c92bde6d5bc6a1aea492915d9f.
----------
Endless method definition [Feature #16746]
nobu (Nobuyoshi Nakada)
08:26 AM Feature #16746: Endless method definition
I'd like to experiment with this new syntax. We may find drawbacks in the future, but to find them, we need to experiment first.
Matz.
matz (Yukihiro Matsumoto)
02:18 AM Feature #16746: Endless method definition
Using the assignment operator like `def value =` expects the following behavior.
```ruby
value = 42
# Refer to variables outside scope
def hoge = value
hoge # => 42
```
However, currently it is `error: undefined local variable...
osyo (manga osyo)
12:15 PM Feature #16769: Struct.new(..., immutable: true)
Sad to see this rejected as there was a lot of agreement here, and I think #16122 might take a lot longer before anything gets implemented. Eregon (Benoit Daloze)
08:38 AM Feature #16769 (Rejected): Struct.new(..., immutable: true)
I don't like the keyword argument that changes the fundamental behavior. I prefer #16122 to this proposal.
Let's discuss there.
Matz.
matz (Yukihiro Matsumoto)
12:13 PM Feature #16122: Data: simple immutable value object
In my view, `Struct.new` is the perfect example to generate a custom class in Ruby.
I think making it customizable with new keyword arguments is both elegant and simple.
OTOH I think having N "subclasses" with different behaviors invite...
Eregon (Benoit Daloze)
12:09 PM Feature #16122: Data: simple immutable value object
We already have `Struct.new(..., keyword_init: true)`.
I think having other variants like `immutable: true, enumerable: false, hash_accessors: false` is consistent and flexible.
Having only the helpers like `Struct.Value` would restr...
Eregon (Benoit Daloze)
12:02 PM Revision 302da060 (git): Reference to [Feature #16746] [ci skip]
nobu (Nobuyoshi Nakada)
11:56 AM Feature #16688: Allow #to_path object as argument to system()
mame (Yusuke Endoh) wrote in #note-9:
> I'd like to confirm: `system(Pathname("cat /etc/passwd"))` should attempt to execute a file whose path is `./cat\ /etc/passwd`, not attempt to show the content of `/etc/passwd`, right?
Definite...
Eregon (Benoit Daloze)
11:44 AM Feature #16688: Allow #to_path object as argument to system()
I'd like to confirm: `system(Pathname("cat /etc/passwd"))` should attempt to execute a file whose path is `./cat\ /etc/passwd`, not attempt to show the content of `/etc/passwd`, right? mame (Yusuke Endoh)
06:38 AM Feature #16688: Allow #to_path object as argument to system()
Accepted.
Matz.
matz (Yukihiro Matsumoto)
06:36 AM Feature #16688: Allow #to_path object as argument to system()
I'm positive.
It would be useful for most options for `spawn`.
(except open mode, "w" of `system("ls", out: ["/tmp/foo", "w"])`)
akr (Akira Tanaka)
11:53 AM Feature #16742: RbConfig.windows? and RbConfig.host_os
For `RbConfig.host_os` I expect the same as `RbConfig::CONFIG['host_os']`, or better slightly simplified (no version, no variant information)
like `linux`, `darwin`, `mingw`, `mswin`, etc (easier to check, and we could document the vari...
Eregon (Benoit Daloze)
06:00 AM Feature #16742: RbConfig.windows? and RbConfig.host_os
Is `host_os` what you want to see?
`RbConfig::CONFIG['host_os']` is bare value by config.guess, like "linux-gnu", "darwin19.4.0", etc.
`RUBY_PLATFORM` consists of "target_cpu" and "target_os" instead.
nobu (Nobuyoshi Nakada)
05:54 AM Feature #16742: RbConfig.windows? and RbConfig.host_os
The `#host_os` seems OK.
Regarding `#windows?`, what do you want to check using the value? Drive letter? Path separator? Case insensitivity? Process behavior? Posix compatibility? Should it be true on Cygwin? It is not clear yet.
M...
matz (Yukihiro Matsumoto)
11:36 AM Feature #16773 (Open): Reduce allocations in net/http
Some minor patches which help to reduce allocations in net/http, which should benefit any programs making heavy use of net/http:
* patch1.diff sets frozen_string_literal to true for some net/http files (I used `''.dup` for mutable str...
timcraft (Tim Craft)
11:35 AM Feature #15921: R-assign (rightward-assignment) operator
`expr in var` already allows rightward assignment:
```
$ ruby -e '(1..).lazy.map {|x| x*2} in x; p x.first(10)'
```
Why adding another operator for the same thing?
Eregon (Benoit Daloze)
07:27 AM Feature #15921: R-assign (rightward-assignment) operator
Cases where `=>` is used outside hashes, arrays, and method call arguments currently are syntax errors. This changes things so that they are not syntax errors, but mean something quite different. I foresee this as a source of future bu... jeremyevans0 (Jeremy Evans)
07:11 AM Feature #15921 (Closed): R-assign (rightward-assignment) operator
Applied in changeset commit:git|1b2d351b216661e03d497dfdce216e0d51474664.
----------
Rightward-assign by ASSOC
[Feature #15921]
nobu (Nobuyoshi Nakada)
05:17 AM Feature #15921: R-assign (rightward-assignment) operator
Accepted. I choose `=>`. Some confusing cases should be warned (by the compiler or a cop) e.g.
```
m((a=>b))
m (a=>b)
```
Matz.
matz (Yukihiro Matsumoto)
09:02 AM Revision e8f53692 (git): Endless method definition [Feature #16746]
nobu (Nobuyoshi Nakada)
08:55 AM Feature #16754: Pager for `--help`
I have no objection to the feature. Go ahead.
Matz.
matz (Yukihiro Matsumoto)
08:35 AM Revision 878e21c6 (git): R-assign is still experimental [Feature #15921] [ci skip]
nobu (Nobuyoshi Nakada)
07:58 AM Feature #16684: Use the word "to" instead of "from" in backtrace
matz (Yukihiro Matsumoto) wrote in #note-8:
> I don't think `to` is sufficient. I'd rather remove `from` altogether if there's no compatibility issue.
> ...
I agree. Removing `from` will make it at least better than as is now.
sawa (Tsuyoshi Sawada)
07:52 AM Feature #16684: Use the word "to" instead of "from" in backtrace
I don't think `to` is sufficient. I'd rather remove `from` altogether if there's no compatibility issue.
Should we remove them?
Matz.
matz (Yukihiro Matsumoto)
07:29 AM Bug #14541 (Closed): Class variables have broken semantics, let's fix them
Applied in changeset commit:git|900e83b50115afda3f79712310e4cb95e4508972.
----------
Turn class variable warnings into exceptions
This changes the following warnings:
* warning: class variable access from toplevel
* warning: class var...
jeremyevans (Jeremy Evans)
05:36 AM Bug #14541: Class variables have broken semantics, let's fix them
Accepted. Let's see if it works out.
Matz.
matz (Yukihiro Matsumoto)
07:29 AM Revision 900e83b5 (git): Turn class variable warnings into exceptions
This changes the following warnings:
* warning: class variable access from toplevel
* warning: class variable @foo of D is overtaken by C
into RuntimeErrors. Handle defined?(@@foo) at toplevel
by returning nil instead of raising an ex...
jeremyevans (Jeremy Evans)
07:17 AM Revision defc0ee9 (git): ext/-test-/cxxanyargs: add #pragma for icc.
shyouhei (Shyouhei Urabe)
07:17 AM Revision 4e7d84cf (git): ruby3_rstring_getmem: suppres warning
icc warns at this line.
> include/ruby/3/core/rstring.h(126): warning #413: variable "retval" has an uninitialized const field
> ...
This must not be a problem because uninitialized const field is not used
at all. But the warnings are ...
shyouhei (Shyouhei Urabe)
07:17 AM Revision 3e92785f (git): RUBY3_ASSUME: suppress warnings on icc
icc warns side effects for RUBY3_ASSUME like this:
> ./include/ruby/3/value_type.h(202): warning #2261: __assume expression with side effects discarded
> ...
Which is a false positive (RB_FLONUM_P has no side effect). It seems
there is...
shyouhei (Shyouhei Urabe)
07:17 AM Revision d69c5326 (git): configure: suppress SunPro warning
To this date there is no way for Oracle developer Studio to suppress
warnings about unreachable codes (12.6 manual says it implemented
__builtin_unreachable "as a no-op to C++. It might be added to C.")
There is no way but globally kill...
shyouhei (Shyouhei Urabe)
07:17 AM Revision 75802bcf (git): configure: suppress icc warnings
Every time a pointer to/from VALUE conversion happens, these two
warnings are issued:
- warning #1684: conversion from pointer to same-sized integral type (potential portability problem)
- warning #2312: pointer cast involving 64-bit po...
shyouhei (Shyouhei Urabe)
07:17 AM Revision e43237b1 (git): configure: always check for __builtin_unreachable
Non-gcc compilers tend to have this intrinsic these days (e.g. icc).
Better check it regardless of $GCC.
shyouhei (Shyouhei Urabe)
07:17 AM Revision 133ae080 (git): RUBY3_HAS_BUILTIN: fix __builtin_unreachable
This macro has to be truthy, otherwise the `+0` trick above evalues
RUBY3_HAS_BUILTIN(__builtin_unreachable) to be always false.
shyouhei (Shyouhei Urabe)
07:17 AM Revision 4b853932 (git): mjit_worker: __GNUC__ is too lax
Namely icc defines __GNUC__, but doesn't have -Wdeprecated-declarations shyouhei (Shyouhei Urabe)
06:03 AM Revision 1b2d351b (git): Rightward-assign by ASSOC
[Feature #15921] nobu (Nobuyoshi Nakada)
05:53 AM Bug #16772 (Closed): Build becomes slow with CIFS mounted srcdir
Applied in changeset commit:git|443389effc37308ce1a3c3a840082a344fc6af56.
----------
reduce duplicate include.
Without this patch, 20k files are opened (openat syscall) because
of duplicate includes. This patch reduced it to 3k and bui...
ko1 (Koichi Sasada)
05:53 AM Revision d94960f2 (git): update dependencies
ko1 (Koichi Sasada)
05:53 AM Revision 443389ef (git): reduce duplicate include.
Without this patch, 20k files are opened (openat syscall) because
of duplicate includes. This patch reduced it to 3k and build time
was reduced compile time of range.o from 15sec -> 3sec on my machine.
[Bug #16772]
ko1 (Koichi Sasada)
05:31 AM Bug #16660: Struct#deconstruct_keys inconsistent behavior
I agree that it's inconsistent and (a little bit) confusing. But it's not a bug.
I wish @ktsj to revisit this issue, but I honor his decision.
Matz.
matz (Yukihiro Matsumoto)
01:52 AM Revision 63a5412d (git): Make `#inspect` interruptible in `Kernel#p`
Only writing the inspected result and a newline is
uninterruptible.
nobu (Nobuyoshi Nakada)
01:38 AM Revision 230efaf2 (git): * 2020-04-10 [ci skip]
git[bot]
01:37 AM Revision 614d816a (git): Constified writev function family
nobu (Nobuyoshi Nakada)

04/09/2020

07:59 PM Feature #15330: autoload_relative
autoload is important for big rails applications, as for things like Rake scripts, being able to load only what is really being used can shave several seconds.
outside of rails world, you are forced to mess with $LOAD_PATH constant wh...
brodock (Gabriel Mazetto)
01:42 PM Bug #16772: Build becomes slow with CIFS mounted srcdir
@shyouhei maybe it was split in too many header files?
Agreed before ruby/ruby.h and intern.h were too big, but 186 headers vs 26 before seems the other extreme.
Eregon (Benoit Daloze)
12:59 AM Bug #16772: Build becomes slow with CIFS mounted srcdir
On my Windows PC, building ruby without tests takes over 20 min now.
And mswin-CI (http://mswinci.japaneast.cloudapp.azure.com/vc12-x64/ruby-master/recent.html) also fails by timeout.
usa (Usaku NAKAMURA)
12:43 AM Bug #16772 (Closed): Build becomes slow with CIFS mounted srcdir
Recent 9e6e39c3512f7a962c44dc3729c98a0f8be90341 increases many include files and it makes slow build on my machine.
My build environment is not normal:
* srcdir is managed on Windows 10 host file system and edit it on windows nativ...
ko1 (Koichi Sasada)
01:36 PM Feature #16769: Struct.new(..., immutable: true)
@nobu setter methods shouldn't be defined, so just `.freeze` is not enough. Eregon (Benoit Daloze)
02:05 AM Feature #16769: Struct.new(..., immutable: true)
How about:
```ruby
Freezing = ->*{def initialize(...) super; freeze; end}
Post = Struct.new(:id, :name, &Freezing)
```
nobu (Nobuyoshi Nakada)
01:05 AM Feature #16769: Struct.new(..., immutable: true)
It would be good to reuse an existing "freeze" mechanism.
```ruby
Post = Struct.new(:id, :name, freeze: true)
post = Post.new(1, "hello world")
p post.frozen? #=> true
post.id = 2 #=> FrozenError
```
I'd like to avoid the word `immuta...
mame (Yusuke Endoh)
09:23 AM Revision 55a5a4bc (git): Fixed to initialize ruby-core repository when it has no master branch
hsbt (Hiroshi SHIBATA)
07:34 AM Revision 7a26021d (git): Support one repository for updating the latest commits
hsbt (Hiroshi SHIBATA)
05:24 AM Revision b965e7e0 (git): Revert "include/ruby/3/core/rtypeddata.h: Use 0 instead of NULL for C++ compiler"
This reverts commit d2bb2e066b5a914283dd3ea473fc1762183af013.
It didn't work:
https://rubyci.org/logs/rubyci.s3.amazonaws.com/icc-x64/ruby-master/log/20200409T050004Z.log.html.gz#end
```
In file included from ../../.././include/ruby/3/...
mame (Yusuke Endoh)
03:51 AM Revision fd0222ca (git): should check pending interrupts correctly.
rb_uninterruptible() disables any interrupts using handle_interrupt
feature (This function is used by `p`).
After this function, pending interrupts should be checked correctly,
however there is no chance to setup interrupt flag of workin...
ko1 (Koichi Sasada)
03:50 AM Revision d2bb2e06 (git): include/ruby/3/core/rtypeddata.h: Use 0 instead of NULL for C++ compiler
NULL in C++ is esoteric mame (Yusuke Endoh)
03:23 AM Revision 97f73bd0 (git): Ignore upper bits of pw_change on macOS too
nobu (Nobuyoshi Nakada)
03:12 AM Bug #6087: How should inherited methods deal with return values of their own subclass?
Recently this ticket was discussed at dev-meeting, and matz changed his mind. I remember that matz said:
* A method that seems to return a new array that is directly related to the receiver, should return an instance of the receiver'...
mame (Yusuke Endoh)
01:56 AM Bug #16753: ruby -run -e httpd . -p 8080 , not support CJK directorys .
znz (Kazuhiro NISHIYAMA) wrote in #note-2:
> https://github.com/ruby/ruby/pull/2998
``` diff
--- filehandler.rb.old 2020-04-09 09:49:57.536780938 +0800
+++ filehandler.rb 2020-04-09 09:51:07.854878036 +0800
@@ -520,6 +520,7 @@
...
sevk (kk kk)
12:44 AM Revision f099bb04 (git): Ignore upper bits of pw_expire on macOS
`pw_expire` is declared as `time_t`, but actually not, and
`getpwuid` returns a garbage there.
Also the declaration of `struct passwd` in pwd.h and the manual
page contradict each other, interal `pw_fields` is mentioned only
in the latt...
nobu (Nobuyoshi Nakada)
12:38 AM Revision 9af3469b (git): internal/bits.h: Suppress "uninitialized variable"
Coverity Scan says "Using uninitialized value c.fixnum when calling
__builtin_mul_overflow_p."
mame (Yusuke Endoh)
12:14 AM Revision 1a4f33e8 (git): numeric.c: Remove unreachable code
b cannot be <= 0 here. Found by Coverity Scan mame (Yusuke Endoh)
 

Also available in: Atom