Activity
From 04/12/2020 to 04/18/2020
04/18/2020
-
09:25 PM Feature #16799: Add more functional features,make ruby more friendly.
- method1 = (f,n) -> do
return f(n)
end
I think a syntax change such as this may be very problematic.
People would not typically expect this, and even if we, say, assume that this
may be a better syntax for newcomers... -
05:36 PM Feature #16799 (Rejected): Add more functional features,make ruby more friendly.
- Classes are currently first-class citizens in Ruby, but functions are not.
This leads to a situation where the function calls are not uniform, for example:
``` ruby
def boo(x)
return x
end
boo2 = -> x { x }
a = boo 10
b = boo2.... -
08:22 PM Misc #16775: DevelopersMeeting20200514Japan
- * [Misc #16778] Should we stop vendoring default gems code? (greggzst)
* it makes maintenance easier and removes the need for synchronization
* removes confusion for external contributors
* Ruby uses git so git submodules could be ... -
05:17 PM Feature #16781: alias :fold :reduce
- 0x81000000 (/ /) wrote:
> 2. Name "fold" is more common/popular than "reduce" or "inject".
I was surprised to hear this, since I think of "reduce" as most popular. A quick survey of popular languages seems to confirm that "reduce" is... - 03:35 PM Revision cf332f68 (git): * 2020-04-19 [ci skip]
-
02:31 PM Bug #16776: Regression in coverage library
- marcandre (Marc-Andre Lafortune) wrote in #note-3:
> 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?
... -
02:29 PM Bug #16798: ENV.replace on Windows with a variable name not respecting case will clear it
- Thanks for the quick fix @nobu, and for setting the backports! <3
-
02:09 PM Bug #16798 (Closed): ENV.replace on Windows with a variable name not respecting case will clear it
- Applied in changeset commit:git|08529a61153e5c40f57a65272211357511d6e6db.
----------
Compare environment variable names in those manor [Bug #16798] -
02:19 PM Revision 0a986b81 (git): Env values removed by ENV.clear are not used
-
02:19 PM Revision 97e8c72e (git): Bypass env key encoding conversion if unnecessary
-
02:19 PM Revision ec4e57ca (git): Hoisted out reset_by_modified_env
-
02:19 PM Revision 67e4d5e6 (git): Environment variable values are not case-insensitive
- Only the names are case-sensitive.
-
02:12 PM Revision db0d850d (git): [ruby/reline] Add ed_search_next_history
- https://github.com/ruby/reline/commit/ca750b676b
-
02:12 PM Revision bea3e31e (git): [ruby/reline] Add ed_search_prev_history
- https://github.com/ruby/reline/commit/e9ae288825
-
02:11 PM Revision 1e4efbb6 (git): [ruby/reline] Rename wrong test name
- https://github.com/ruby/reline/commit/8480db575b
-
02:09 PM Revision 08c1c3f2 (git): [ruby/reline] Use vi_search_{prev,next} to incremental search
- https://github.com/ruby/reline/commit/cab312f584
-
02:09 PM Revision afe99785 (git): [ruby/reline] Rename search_history with incremental_search_history
- https://github.com/ruby/reline/commit/d563063ea0
-
02:09 PM Revision 08529a61 (git): Compare environment variable names in those manor [Bug #16798]
-
12:48 PM Feature #16796 (Rejected): Assigning local variables when using `case when regexp`
- Implicit assignment from regular expression matches has been a bad idea. I shouldn't have merged it at the first moment.
I'd like to remove it altogether if I have a chance. So I don't like to enhance it any further.
Matz.
-
11:42 AM Revision e042380e (git): power_assert repository is transferred to ruby/power_assert
-
09:05 AM Bug #16797 (Rejected): Array#flatten not checking `respond_to? :to_ary`
- Read the error message.
```
-:4:in `flatten': can't convert Object to Array (Object#to_ary gives Object) (TypeError)
```
-
08:41 AM Revision 04e56958 (git): Make sure newarraykwsplat accesses a correct index
- on stack when local_stack_p is enabled.
This fixes `RB_FL_TEST_RAW:"RB_FL_ABLE(obj)"` assertion failure
on power_assert's test with JIT enabled. -
08:07 AM Revision 0f7d3e4e (git): RUBY_SPECIAL_SHIFT and RUBY_FL_USHIFT are mandatory for rp in lldb_cruby.py
-
07:48 AM Revision dc8ab86a (git): Super TestJIT#setup to skip unsupported envs
- Slightly simplifying 8d6aa06620b316904fd10d0cab1b85e07f2fbf67
-
07:31 AM Revision 9948addd (git): Skip a too-unstable test on s390x-linux
- In the last 26-ish hours, it has failed 5 times:
https://travis-ci.org/github/ruby/ruby/jobs/676497718
https://travis-ci.org/github/ruby/ruby/jobs/676480295
https://travis-ci.org/github/ruby/ruby/jobs/676103216
https://travis-ci.org/gith... -
05:59 AM Revision 8d6aa066 (git): test/ruby/test_jit_debug.rb: Skip unsupported platforms
-
03:34 AM Revision 75f6d706 (git): power_assert repository is transferred to ruby/power_assert
04/17/2020
-
10:20 PM Bug #16787: [patch] allow Dir.home to work for non-login procs when $HOME not set
- nobu (Nobuyoshi Nakada) wrote in #note-10:
> Thank you, I left some comments at the PR for the details.
> ...
Thanks; I'm taking a look now. -
03:07 PM Bug #16787: [patch] allow Dir.home to work for non-login procs when $HOME not set
- Thank you, I left some comments at the PR for the details.
IMHO, the new functions may fit more in process.c. -
10:05 AM Bug #16787: [patch] allow Dir.home to work for non-login procs when $HOME not set
- Attaching the "v5" version of the patch (for real this time).
-
05:18 PM Revision 0511bef9 (git): Remove invalid webhook config
- According to warnings on Travis, there's no such key. We handle this on
webhook side anyway. - 05:12 PM Revision 7c0bc724 (git): * 2020-04-18 [ci skip]
-
05:11 PM Revision f8b79ef5 (git): Compilation error does not impact exit status
- We failed to ignore
https://ci.appveyor.com/project/ruby/ruby/builds/32245902/job/xcfxw67uexxysvni -
04:38 PM Feature #16796: Assigning local variables when using `case when regexp`
- sawa wrote:
> I have met such use cases, and agree this would be useful.
I don't disagree in the sense that there may be valid use cases,
but the syntax is kind of weird:
/s(?<mid>.)r/
I use regexes a lot of course, sinc... -
11:11 AM Feature #16796: Assigning local variables when using `case when regexp`
- sawa (Tsuyoshi Sawada) wrote in #note-2:
> Alternatively, in order to access even unnamed matches, assigning the last matched data to a variable with the following syntax may be useful.
> ...
That's too confusing. The following code w... -
10:20 AM Feature #16796: Assigning local variables when using `case when regexp`
- I have met such use cases, and agree this would be useful.
Alternatively, in order to access even unnamed matches, assigning the last matched data to a variable with the following syntax may be useful.
```ruby
case "str"
when /s(... -
08:53 AM Feature #16796: Assigning local variables when using `case when regexp`
- It is because `when` calls `===` method but not `=~`.
-
08:23 AM Feature #16796 (Rejected): Assigning local variables when using `case when regexp`
- I want to use
```ruby
case "str"
when /s(?<mid>.)r/
p mid
end
```
instead of
```ruby
case
when /s(?<mid>.)r/ =~ "str"
p mid
end
```
I also do not like using `$1`.
This feature is extremely useful when there are a lot... -
04:20 PM Bug #16788: T_CLASS counts classes double
- Thank you so much for the explanations @jeremyevans0 @Eregon!!!!
-
02:13 PM Feature #16794: Rightward operators
- Actually instead of using `|>` as the common element between rightward operators, maybe just the pipe character would be enough.
`|:` (because `|=` is taken)
`|~`
`|>`
`|>>`
`|**`
-
02:57 AM Feature #16794: Rightward operators
- It's an interesting idea. I am not sure if I can easily adjust to the syntax,
but this may be best to just ask matz directly (I think he suggested the
pipeline operator, and streem kind of also taps into that whole handling of
data id... -
01:22 PM Feature #16795: build ruby.exe on Windows against ruby-static.lib omitting x64-vcruntime-ruby.dll (no '--enable-shared' option for Windows)
- shevegen (Robert A. Heiler) wrote in #note-1:
> I feel you here. Not so much due to windows, but I totally understand every
> ...
just simple instructions how to build ruby.exe against static library instead of linking with x64-vcrunti... -
03:01 AM Feature #16795: build ruby.exe on Windows against ruby-static.lib omitting x64-vcruntime-ruby.dll (no '--enable-shared' option for Windows)
- I feel you here. Not so much due to windows, but I totally understand every
preference for --enable-shared and --enable static. :-)
Perhaps nobu and greg can help for the windows-related issues; perhaps greg
even through some automa... -
11:19 AM Bug #16798 (Closed): ENV.replace on Windows with a variable name not respecting case will clear it
- On Windows, environment variable names are case insensitive:
```
PS C:\Users\deivi> ruby -e "puts ENV['Path']; ENV['PATH'] = 'foo'; puts ENV['Path']" ... -
10:04 AM Bug #16797 (Rejected): Array#flatten not checking `respond_to? :to_ary`
- ```ruby
def (a = Object.new).method_missing(...)
Object.new
end
[a].flatten # TypeError
```
It should check whether an object responds to `to_ary` before trying to convert it into an array. -
08:59 AM Revision 92c82588 (git): Fix a typo [ci skip]
-
08:49 AM Revision c8178687 (git): NEWS.md: Mentioned the removal of NIL/TRUE/FALSE [ci skip]
-
08:40 AM Revision 5257a530 (git): Removed NIL/TRUE/FALSE from documents too
- This is follow up of 62554ca97812b454e78a0a9daf6e962ff7a2f589
-
08:35 AM Revision 62554ca9 (git): Removed NIL/TRUE/FALSE
- Deprerecated constants which had been warned since 2.4.
-
05:42 AM Feature #16786: Light-weight scheduler for improved concurrency.
- Tidy up proposal.
-
05:27 AM Feature #16786: Light-weight scheduler for improved concurrency.
- Make `wait_readable`, `wait_writable` and `wait_any` take `IO` argument. Add explicit wrappers for CRuby.
-
05:25 AM Revision 3152977b (git): Rescue EPIPE in _report
- Instead of letting callers rescue the error always.
-
05:08 AM Revision b5132d91 (git): Refactored rb_readwrite_syserr_fail
- * renamed argument `writable` as `waiting`
* hosited out creating and raising exception
* turned into a `switch` -
05:07 AM Revision 00d92783 (git): fileutils now depends on rbconfig.rb due to JRuby support
-
03:38 AM Bug #9573: descendants of a module don't gain its future ancestors, but descendants of a class, do
- @jeremyevans0 thanks so much for fixing this at least in the #include case.
-
12:24 AM Revision 75a0447c (git): Suppress C4267 "possible loss of data" warnings
- Just cast down explicitly.
-
12:22 AM Revision 36353b27 (git): test/ruby/test_process.rb: Skip GID.from_name on Android
- The user management on Android seems very different
https://rubyci.org/logs/rubyci.s3.amazonaws.com/android28-x86_64/ruby-master/log/20200416T234122Z.fail.html.gz
04/16/2020
-
09:30 PM Bug #11143: it should always be possible to return from an if
- Just got hit by this. Is this difficult to backport to supported versions?
- 09:23 PM Revision c23efbaa (git): Remove lib/rss.rb
- This is a follow-up of 83240f315a10b42b53c3b62c1fbc428f97912665 .
-
07:23 PM Feature #16795 (Open): build ruby.exe on Windows against ruby-static.lib omitting x64-vcruntime-ruby.dll (no '--enable-shared' option for Windows)
- I'm trying to build ruby for embedded windows environment. It would help a lot if I would be able to do it without '--enable-shared'
as it could be done for Linux platform. So on linux just ruby-static.a built, without any .so.
Execu... -
06:41 PM Bug #16787: [patch] allow Dir.home to work for non-login procs when $HOME not set
- Attaching the "v5" version of the patch. This version corresponds with the changes I just pushed on my [ads/b.r-l.o-issue-16787](https://github.com/salewski/ruby/tree/ads/b.r-l.o-issue-16787) branch for [PR 3034](https://github.com/ruby/...
-
04:17 AM Bug #16787: [patch] allow Dir.home to work for non-login procs when $HOME not set
- Slightly cleaned-up patch: v4
[still just a wip; please ignore] -
03:45 AM Bug #16787: [patch] allow Dir.home to work for non-login procs when $HOME not set
- Just attaching the "v3" version of the patch. This one is /not/ a commit candidate; needs some beautification.
The functionality is there to start with the password record lookup by username, and only if that fails to then fall back o... -
05:21 PM Bug #16788: T_CLASS counts classes double
- The reason is documented here:
https://github.com/ruby/ruby/blob/f2c3848a5bf2bec0b27a6035c4b7399594c32509/class.c#L1775-L1778
Otherwise, methods on the class (i.e. class methods/singleton methods of that class) wouldn't inherit from the... -
04:02 PM Bug #16788: T_CLASS counts classes double
- Unfortunately, I do not know the reason behind the automatic creation of singleton classes for classes. I'm guessing it is necessary for correct method lookup, but I'm not sure.
Looking at the repository, automatic creation of single... -
11:24 AM Bug #16788: T_CLASS counts classes double
- @jeremyevans0 thank you so much for your answer. Why are two singleton classes created and why only the second one is accesible to the user?
Also, could you please tell me how do you do to see the debugger output?
-
04:23 PM Bug #16793 (Third Party's Issue): [BUG] object allocation during garbage collection phase
- Based on the error message and control frame info, it appears puma is allocating an object during garbage collection, which would be a bug in puma. Try upgrading to puma 4.3.3 (the latest release), and if you still have the same issue, ...
-
11:50 AM Bug #16793 (Third Party's Issue): [BUG] object allocation during garbage collection phase
- Hi
Our Puma server periodically stops working, and returns to command line without error message.
Nothing has changed to the configuration, but today, for the first time, the attached message was raised.
I hope this is a good clue!
... -
03:53 PM Revision a0bc3f2a (git): Suppress C4267 "possible loss of data" warnings
- 03:52 PM Revision 99a04815 (git): * 2020-04-17 [ci skip]
-
03:52 PM Revision 3cca0d19 (git): core_assertions.rb: fixed fd leak at timeout
-
03:52 PM Revision e231f8e8 (git): envutil.rb: not try to close pipes twice
-
02:07 PM Feature #16670: Reverse order of `expression` in `pattern` for 1-line pattern matching while it's still experimental
- I think the `in` syntax and order feels natural when you're actually matching a pattern. It's not AI-like pattern recognition like "find a pattern _in_ this" but rather pattern correspondence like "is this _in_ the range expressed by thi...
-
01:59 PM Feature #15921: R-assign (rightward-assignment) operator
- Until now I thought `=>` made perfect sense, given that it's already used in `rescue`, but Jeremy's counterpoint examples are very convincing. There's a high potential for confusion and bugs. Even matz says confusing cases should be warn...
-
01:55 PM Feature #16794 (Open): Rightward operators
- While reading #15921 (r-assign) and #16670 (reverse pattern matching order) I felt a certain commonality to these and #15799 (pipeline) and I thought maybe there's currently a narrow window of opportunity to adopt an overarching and harm...
-
01:12 PM Feature #16791: Shortcut for Process::Status.exitstatus
- This is not a good feature request, IMO.
There is not really any explanation as to what the idea is about. Why is
p pid and s existatus suddenly? And why should that be common if one
can already extend these classes as-is? What is t... -
06:06 AM Feature #16791 (Open): Shortcut for Process::Status.exitstatus
- [Updated]
```
s = `csc x.cs`.sub(/.*?\n\n/m, '')
puts s if s != ''; exit $?.exitstatus if $?.exitstatus > 0
system 'mono x.exe'; exit $?.exitstatus
```
```
class Process::Status
alias :es :exitstatus
end
```
```
s = `cs... -
11:54 AM Bug #16498: Hash#transform_values in 2.7.0 sets new hash's default to old hash's default_proc
- This does break ActiveSupport 5.2 test suite.
-
11:50 AM Revision fedc8075 (git): Preserve encoding in error messages for invalid user/group name
-
11:50 AM Revision 748c7c7c (git): Added tests for Process::UID.from_name and Process::GID.from_name
-
11:50 AM Revision f57e2d72 (git): Preserve encoding in error message for invalid env exec option
-
11:38 AM Revision 33aaa2aa (git): Added test for invalid env exec option
-
10:39 AM Feature #16786: Light-weight scheduler for improved concurrency.
- Thanks @eregon for your feedback.
> Maybe we can make `Fiber.new(blocking: false)` call `Thread.current.scheduler.fiber {}` or `Thread.current.scheduler.register(fiber_instance)` ?
`Fiber.new` is a constructor and is independent of the... -
09:15 AM Feature #16786: Light-weight scheduler for improved concurrency.
- I think is a great proposal.
I think we need to try to support existing code as much as possible, because all the existing Ruby code will never be rewritten to use a different pattern.
So we need the proposal to compose really well w... -
09:05 AM Feature #16786: Light-weight scheduler for improved concurrency.
- I created #16792 to change Mutex to be held per Fiber instead of per Thread.
Based on that it should be easy to integrate with the Scheduler.
I agree that seems an important case to address, and I think we shouldn't have any builtin op... -
10:26 AM Feature #16792: Make Mutex held per Fiber instead of per Thread
- My initial reply might have come across as overly critical and that was not my intention.
I want to say, I agree with this proposal, and I think it's a good idea.
I would like to see that we merge the scheduler proposal first, which pr... -
09:57 AM Feature #16792: Make Mutex held per Fiber instead of per Thread
- > Any example? Please don't claim such things if there is no example.
I'll have to defer to @headius for examples, since he was the one that mentioned it. I can only assume he is telling the truth when he said some application code was ... -
09:37 AM Feature #16792: Make Mutex held per Fiber instead of per Thread
- ioquatix (Samuel Williams) wrote in #note-5:
> Can you check the Crystal implementation? How do they implement fair scheduling?
It's linked in the description.
Mutex is already not fair so I don't think it matters.
> ...
It doesn... -
09:32 AM Feature #16792: Make Mutex held per Fiber instead of per Thread
- > Application code which expects per-thread mutex
I'm happy to see examples of that.
I've never seen it in 5+ more years of bug reports on TruffleRuby, and JRuby AFAIK always had Mutex per Fiber and yet no real issue because of it.
... -
09:24 AM Feature #16792: Make Mutex held per Fiber instead of per Thread
- Characterising this as trivial hides the impact of this both on the scheduler design and application code which expects per-thread mutex.
Once the scheduler lands into master, we will need to scope out something like `wait_mutex` and al... -
09:01 AM Feature #16792 (Closed): Make Mutex held per Fiber instead of per Thread
- Currently, Mutex in CRuby is held per Thread.
In JRuby and TruffleRuby, Mutex is held per Fiber (because it's simply easier implementation-wise).
While a user could theoretically notice the difference, it seems extremely uncommon in ... -
09:02 AM Revision 693378f1 (git): Moved noreturn call to end of noreturn function
-
08:59 AM Revision d4215daf (git): Use UNREACHABLE_RETURN for non-void function
-
08:39 AM Feature #11747: "bury" feature, similar to 'dig' but opposite
- I think the issues/problems specified in the comments are not present with a Hash-only implementation. :)
I would be supportive of re-considering this feature just for use with a Hash, where I believe 80% of the real-life use cases wo... -
08:19 AM Revision 3eb05a80 (git): fix compiler error on gcc 4.x
- It seems gcc prior to 5 suffered from preprocessor bug. We have to
provide workarounds.
See https://github.com/ruby/ruby/runs/591138012
----
Here is something interesting. According to C99, strictly speaking,
the gcc behaviour was i... - 05:22 AM Revision 4ab14aec (git): * 2020-04-16 [ci skip]
-
05:22 AM Revision 48273534 (git): Support for FreeBSD <sys/cdefs.h>
- FreeBSD's <sys/cdefs.h> is broken. Cygwin is also affected by that.
We need to avoid using them.
See also:
https://github.com/freebsd/freebsd/commit/d1c67819db000c02d3a9c79f3651c10aeedad1a0
https://sourceware.org/git/?p=newlib-cygwin.g...
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...