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.
-
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... -
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...
-
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... -
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.
-
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. -
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... -
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 ... -
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 ... -
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(... -
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] -
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. -
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#... -
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? -
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... -
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`. -
07:06 AM Revision a9567cc2 (git): Added test for `debug_level:` option of `RubyVM::InstructionSequence.compile`
-
06:59 AM Revision 1dad9fa5 (git): This test is not testing attr_writer
-
06:49 AM Revision 79f3403b (git): Invalidate fastpath when calling attr_reader by super
- The same bug as 8355a99883 existed in attr_reader too.
-
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... -
03:34 AM Revision 2c12d111 (git): Disassemble nop-inserted list
-
03:28 AM Revision de2afcbf (git): Show heading for update_catch_except_flags
-
03:17 AM Revision f9822d17 (git): Shrink diassembled result string
- 01:37 AM Revision 0d6737cb (git): * 2020-04-15 [ci skip]
-
01:33 AM Revision 478135f4 (git): Disallow line-continuation before R-assign
-
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 * ... -
12:42 AM Feature #16786: Light-weight scheduler for improved concurrency.
- Added `autoclose: false` to reflect discussion point from @headius.
-
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
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...
-
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 ... -
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... -
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 ... -
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... -
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... -
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? ... -
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... -
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. -
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... -
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. -
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. -
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?... -
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... -
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 -
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
-
06:11 AM Revision e6677503 (git): Add missing call in 70b7304f03
-
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... -
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... -
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. -
03:39 AM Revision c79e3a59 (git): Add {Regexp,String}#match with block to call-seq [ci skip]
-
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... -
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...
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... -
07:16 PM Feature #16783: Implicit vs explicit self
- 😻
-
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. -
05:49 PM Feature #16783: Implicit vs explicit self
- phrasing
-
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...
-
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
``` -
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...
-
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. -
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. - 04:25 PM Revision fb40495c (git): * 2020-04-14 [ci skip]
-
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]
-
01:57 PM Revision c28e230a (git): Improve Hash documentation.
-
12:51 PM Revision 67bcac87 (git): Allow simple R-assign in endless def
-
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. -
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... -
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... -
06:10 AM Revision a3f6f679 (git): Add MJIT_COUNTER macro to dump total_calls
-
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?
-
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... -
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... -
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...
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... -
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 - 03:02 PM Revision f2c3848a (git): * 2020-04-13 [ci skip]
-
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. -
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... -
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... -
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)? -
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... -
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?
-
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. -
01:10 PM Feature #16779 (Rejected): Add sprintf %q format option
-
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? -
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\""
``` -
10:57 AM Feature #16779: Add sprintf %q format option
- Isn't `%p` enough (which uses `#inspect`)?
-
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... -
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...
-
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... -
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... -
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... -
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... -
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 ...
-
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... -
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... -
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... -
05:58 AM Revision a07cbacd (git): Honor COLUMNS [Feature #16754]
-
05:58 AM Revision cc68d2fb (git): Hightlight usage [Feature #16754]
-
05:58 AM Revision 3825662d (git): Set up environment variable for pager [Feature #16754]
-
05:58 AM Revision e6551d83 (git): PAGER without fork&exec too [Feature #16754]
-
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. -
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... -
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 ... -
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...
04/11/2020
-
10:26 PM Misc #16778 (Assigned): Should we stop vendoring default gems code?
-
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. -
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... -
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... -
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... -
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... -
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... -
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.
-
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... -
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... -
09:34 PM Feature #16779: Add sprintf %q format option
- The github pull request: https://github.com/ruby/ruby/pull/3019
-
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)
... - 03:19 PM Revision a01bda59 (git): * 2020-04-12 [ci skip]
-
03:07 PM Revision 022c7bbe (git): Relaxed of R-assign value to arg
-
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... -
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... -
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... -
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... -
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] -
08:12 AM Revision 93edbb4c (git): Support version ranges for MSVC [Feature #16763]
-
03:59 AM Revision e56e089b (git): Assertions for basic use of `encoding:` option
-
03:59 AM Revision bae16b42 (git): Assertions for enumerators of Dir
-
02:58 AM Revision aade69ea (git): Removed unnecessary `to_a` call
- `Dir.entries` returns an array.
-
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... -
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. -
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
-
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:

Ruby 2.6 works well:
: [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. - 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... -
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... -
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... -
12:30 AM Revision 6f28ebd5 (git): Silence broken pipe error messages on STDOUT [Feature #14413]
- Raise `SignalException` for SIGPIPE to abort when EPIPE occurs.
-
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...
04/10/2020
-
10:40 PM Bug #16669 (Assigned): Rails Action Text unit tests fail since b9007b6c548f91e88fd3f2ffa23de740431fa969
-
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... -
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.... -
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 ... -
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 ... -
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... -
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.
-
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...
-
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... -
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.
-
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 ... -
05:32 PM Revision 87bcb3c4 (git): Fix articles.
-
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 :)) -
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... -
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=>[... - 05:09 PM Revision 7df83c4e (git): * 2020-04-11 [ci skip]
-
05:09 PM Revision 6abd08c0 (git): Replace Fixnum by Integer in a document.
-
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.
-
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... -
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... -
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... -
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... -
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
-
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... -
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... -
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... -
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... -
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.
-
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... -
02:47 PM Misc #16693 (Closed): DevelopersMeeting20200410Japan
-
02:07 PM Revision 108d392e (git): RUBY3_HAS_ATTRIBUTE: fix fallbacks
- Same as 133ae0807d661eac174b59c6e91c11a40975baea
-
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 ... -
01:46 PM Revision 8ec79540 (git): [DOC] Fixed POSIX clock_getres(3) link [ci skip]
- It should not be linked to `Process.clock_getes`.
-
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... -
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. -
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... -
11:59 AM Feature #16746: Endless method definition
- It is not easy to control parsing time warnings, and bothers tests.
-
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)? -
10:06 AM Feature #16746 (Closed): Endless method definition
- Applied in changeset commit:git|e8f53692ca7d65c92bde6d5bc6a1aea492915d9f.
----------
Endless method definition [Feature #16746] -
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.
-
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... -
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.
-
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.
-
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... -
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... -
12:02 PM Revision 302da060 (git): Reference to [Feature #16746] [ci skip]
-
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... -
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?
-
06:38 AM Feature #16688: Allow #to_path object as argument to system()
- Accepted.
Matz.
-
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"])`) -
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... -
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. -
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... -
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... -
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? -
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...
-
07:11 AM Feature #15921 (Closed): R-assign (rightward-assignment) operator
- Applied in changeset commit:git|1b2d351b216661e03d497dfdce216e0d51474664.
----------
Rightward-assign by ASSOC
[Feature #15921] -
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.
-
09:02 AM Revision e8f53692 (git): Endless method definition [Feature #16746]
-
08:55 AM Feature #16754: Pager for `--help`
- I have no objection to the feature. Go ahead.
Matz.
-
08:35 AM Revision 878e21c6 (git): R-assign is still experimental [Feature #15921] [ci skip]
-
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. -
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.
-
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... -
05:36 AM Bug #14541: Class variables have broken semantics, let's fix them
- Accepted. Let's see if it works out.
Matz.
-
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... -
07:17 AM Revision defc0ee9 (git): ext/-test-/cxxanyargs: add #pragma for icc.
-
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 ... -
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... -
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... -
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... -
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. -
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. -
07:17 AM Revision 4b853932 (git): mjit_worker: __GNUC__ is too lax
- Namely icc defines __GNUC__, but doesn't have -Wdeprecated-declarations
-
06:03 AM Revision 1b2d351b (git): Rightward-assign by ASSOC
- [Feature #15921]
-
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... -
05:53 AM Revision d94960f2 (git): update dependencies
-
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] -
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. -
01:52 AM Revision 63a5412d (git): Make `#inspect` interruptible in `Kernel#p`
- Only writing the inspected result and a newline is
uninterruptible. - 01:38 AM Revision 230efaf2 (git): * 2020-04-10 [ci skip]
-
01:37 AM Revision 614d816a (git): Constified writev function family
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... -
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. -
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. -
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... -
01:36 PM Feature #16769: Struct.new(..., immutable: true)
- @nobu setter methods shouldn't be defined, so just `.freeze` is not enough.
-
02:05 AM Feature #16769: Struct.new(..., immutable: true)
- How about:
```ruby
Freezing = ->*{def initialize(...) super; freeze; end}
Post = Struct.new(:id, :name, &Freezing)
``` -
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... -
09:23 AM Revision 55a5a4bc (git): Fixed to initialize ruby-core repository when it has no master branch
-
07:34 AM Revision 7a26021d (git): Support one repository for updating the latest commits
-
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/... -
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... -
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
-
03:23 AM Revision 97f73bd0 (git): Ignore upper bits of pw_change on macOS too
-
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'... -
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 @@
... -
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... -
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." -
12:14 AM Revision 1a4f33e8 (git): numeric.c: Remove unreachable code
- b cannot be <= 0 here. Found by Coverity Scan