Project

General

Profile

Activity

From 09/01/2020 to 09/07/2020

09/07/2020

06:48 PM Bug #17160: Wrong exception backtrace
I thought there will be some magic and yes, it is confusing, because I'd expect the `rescue` exception to be the rule. Also, if the `WebConsole::Evaluator#eval` was named differently, it would be probably more obvious. Appreciate your e... vo.x (Vit Ondruch)
03:08 PM Bug #17160 (Rejected): Wrong exception backtrace
It is confusing, but I think there is nothing wrong. There are two points.
The first point is that the location for a method written in C is represented by its caller's location.
This is an example: `Integer#times` is implemented in...
mame (Yusuke Endoh)
02:19 PM Bug #17160 (Rejected): Wrong exception backtrace
Looking at web-console test results [1], there is following error reported:
~~~
WebConsole::EvaluatorTest#test_Evaluator_callers_are_cleaned_up_of_unneeded_backtraces [/home/travis/build/rails/web-console/test/web_console/evaluator_t...
vo.x (Vit Ondruch)
02:38 PM Bug #17161 (Closed): [BUG] object allocation during garbage collection phase
Hi, I frequently get this error in development or production, at any time. I cannot find a sequence of actions to reproduce it, it just happens.
I have no knowledge to solve it, but I can help if you have questions.
Thanks a lot!
Fre...
FreddieFrog (Frédéric Champreux)
01:05 PM Bug #17152: Missing TracePoint return event for String#unpack
This behavior is fixed(alredy backported).
ref: https://bugs.ruby-lang.org/issues/17149
ref: https://github.com/ruby/ruby/commit/3fef159f81fad6ffb9af5b60f4c8ec867fdb2391
S_H_ (Shun Hiraoka)
12:13 PM Revision 27707617 (git): Run a TracePoint test in an insolated process
to prevent a random failure like
http://ci.rvm.jp/results/trunk-random2@phosphorus-docker/3024287
nagachika (Tomoyuki Chikanaga)
12:07 PM Revision 2b5b9e12 (git): * 2020-09-07 [ci skip]
git[bot]
12:06 PM Revision a2f3aaea (git): Fix a random test failure by TracePoint
A test worker process may already be enabling TracePoint, which results
in changing the insn name in this test.
http://ci.rvm.jp/results/trunk-random0@phosphorus-docker/3022750
nagachika (Tomoyuki Chikanaga)
11:08 AM Revision 2b07b24b (git): Added `rb_random_base_init`
To enclose the initialization of Random::Base part. nobu (Nobuyoshi Nakada)
11:08 AM Revision 49240112 (git): Added WITH_REAL macros
Added `WITH_REAL` versions to `RB_RANDOM_INTERFACE` macros. Also
these macros including "without real" versions no longer contain
the terminator (semicolon and comma).
nobu (Nobuyoshi Nakada)
11:08 AM Revision d6ec0ef5 (git): Added `get_real` interface
nobu (Nobuyoshi Nakada)
11:08 AM Revision c449b9b0 (git): Added rb_int_pair_to_real
nobu (Nobuyoshi Nakada)
11:08 AM Revision af5e87ab (git): separate rb_random_t
* random.c: separate abstract rb_random_t and rb_random_mt_t for
Mersenne Twister implementation.
* include/ruby/random.h: the interface for extensions of Random
class.
* DLL imported symbol reference is not constant on Windows.
*...
nobu (Nobuyoshi Nakada)
11:08 AM Revision f4d52739 (git): Random::Base
* random.c (InitVM_Random): introduce abstract super class
Random::Base.
nobu (Nobuyoshi Nakada)
10:02 AM Revision 19917d45 (git): .github: try GitHub Container Registry
It is natural for a CI running on GitHub to use GitHub's facility.
See also https://github.blog/2020-09-01-introducing-github-container-registry/
shyouhei (Shyouhei Urabe)
04:36 AM Feature #17159: extend `define_method` for Ractor
Yes, I mean most of case (2) can be replaced with `eval` and proposed changes.
ko1 (Koichi Sasada)
02:39 AM Feature #17159: extend `define_method` for Ractor
Just a comment. In general,
```ruby
i = 0
define_method("foo#{i}"){ i }
```
and
```ruby
i = 0
eval("def foo#{i} #{i}; end")
```
behave differently. The former returns the current value of `i` in the closure, the latter embed the val...
matz (Yukihiro Matsumoto)
01:49 AM Feature #17159 (Open): extend `define_method` for Ractor
Ractor prohibits use of non-isolated `Proc`s.
Non-isolated example is here:
```ruby
s = "foo"
pr = Proc.new{ p s }
```
This Proc `pr` can not be shared among ractors because outer variable `s` can contain an unshareable objec...
ko1 (Koichi Sasada)
04:29 AM Feature #17157 (Closed): Remove `ruby -T`
Applied in changeset commit:git|0dbf6e46fb88a1c8c48ce5f67ac881a77de76526.
----------
[Feature #17157] removed -T command line option
nobu (Nobuyoshi Nakada)
04:29 AM Revision 17a27060 (git): * 2020-09-07 [ci skip]
git[bot]
04:12 AM Feature #17148: stdbuf(1) support
なるほど、そんなやり方が……。
それだと stdbuf の有無など環境の差異を気にしなくて良さそうですね。
os (Shigeki OHARA)
01:41 AM Feature #17147: New method to get frozen strings from String objects
Thank you for the beedbacks! I missed considering about `String#-@` method. It looks worth to try, so I'll evaluate that option on the workload of msgpack-ruby (and Fluentd possibly). tagomoris (Satoshi Tagomori)

09/06/2020

07:29 PM Bug #17158 (Closed): Ractor Segfault when using shell and puts
Here is my example repo:
https://github.com/schneems/ractor_shell_bug_reproduction
This is the commit of Ruby I'm using:
```shell
$ git log
commit de30450d91a8dda9dd415512ba5a1709704cae12 (HEAD -> master, origin/master, origin...
schneems (Richard Schneeman)
03:59 PM Revision 0dbf6e46 (git): [Feature #17157] removed -T command line option
nobu (Nobuyoshi Nakada)
03:43 PM Feature #17147: New method to get frozen strings from String objects
> Not also sure if String#-@ saves the OP’s situation, though
`String#-@` doesn't as it's too late (the string was allocated already). But exposing `rb_fstring()` would, at in some specific use cases it could drastically reduce alloca...
byroot (Jean Boussier)
12:22 PM Bug #17152: Missing TracePoint return event for String#unpack
Hi, cfis (Charlie Savage) .
you expected `return` like this?
```
47435362097880:112480.769196 line # bug.rb: 5
47435362097880:112480.769280 c-call Integer#times bug.rb: 5
47435362097880:112480.769290 line # bu...
S_H_ (Shun Hiraoka)
10:12 AM Feature #17157 (Closed): Remove `ruby -T`
Warning says that it will be removed in Ruby 3.0.
```
% ruby -T1 -e ''
ruby: warning: ruby -T will be removed in Ruby 3.0
```
znz (Kazuhiro NISHIYAMA)
10:11 AM Revision b22b3f03 (git): Increase timeout for GitHub Actions.
Samuel Williams
10:05 AM Revision c19f8f62 (git): Add `*.md` to doc/.document [ci skip]
znz (Kazuhiro NISHIYAMA)
04:57 AM Revision 369cfabd (git): Make it possible to dump and load an exception object
A backtrace object in an exception had never supported marshalling
correctly: `Marshal.load(Marshal.dump(exc)).backtrace_locations` dumped
core.
An Exception object has two hidden instance varibles for backtrace data:
one is "bt", which...
mame (Yusuke Endoh)
03:37 AM Revision c12b2703 (git): Add `RB_` prefix for size_t to number conversion.
Samuel Williams
02:16 AM Bug #17015: RubyVM::AbstractSyntaxTree.parse has the same result on `proc { |a| }` and `proc { |a,| }`
ruby_2_7 dd4e51d84e01d9c60458dfe19a0b4d4e05b55140 merged revision(s) ff5e66034006a875125581114cce19d46843b32a. nagachika (Tomoyuki Chikanaga)
02:16 AM Revision dd4e51d8 (git): merge revision(s) ff5e66034006a875125581114cce19d46843b32a: [Backport #17015]
Added `NODE_SPECIAL_EXCESSIVE_COMMA` info to `ARGS` of
`RubyVM::AbstractSyntaxTree`.
nagachika (Tomoyuki Chikanaga)
02:06 AM Bug #17149: Backport 3e02cd518fbe4d91c2aca7fbc3c5aafa387d3cb7
ruby_2_7 3fef159f81fad6ffb9af5b60f4c8ec867fdb2391 merged revision(s) 3e02cd518fbe4d91c2aca7fbc3c5aafa387d3cb7. nagachika (Tomoyuki Chikanaga)
02:05 AM Revision 3fef159f (git): merge revision(s) 3e02cd518fbe4d91c2aca7fbc3c5aafa387d3cb7: [Backport #17149]
Trace :return of builtin methods
using opt_invokebuiltin_delegate_leave insn.
Since Ruby 2.7, :return of methods using builtin have not been traced properly.
nagachika (Tomoyuki Chikanaga)
01:59 AM Feature #17156 (Open): Refinements per directory tree
One of the main use case for refinements is to enable extensions to core classes for a given codebase (app or gem) without impacting the other codebases. Let's call it sandboxed monkey-patching. Note that you usually want this for an ent... Dan0042 (Daniel DeLorme)
01:56 AM Bug #17141: Crash when parsing malformed input
ruby_2_7 e778de2c82478dda930cfc8d795ed4e0e60ea775 merged revision(s) 11963da9e8e98821860fbb0c0f2adc118860c814. nagachika (Tomoyuki Chikanaga)
01:43 AM Bug #17141: Crash when parsing malformed input
I have just found that the similar testcase was added in https://bugs.ruby-lang.org/issues/16603 and backporting git|11963da9e8e98821860fbb0c0f2adc118860c814 fixes this issue.
nagachika (Tomoyuki Chikanaga)
01:30 AM Bug #17141: Crash when parsing malformed input
Okey, I will add a test for this case into master and backport it to ruby_2_7 with your patch.
Thanks.
nagachika (Tomoyuki Chikanaga)
01:55 AM Bug #16603: Passing number or symbol to kwargs splat causes segmentation fualt
ruby_2_7 e778de2c82478dda930cfc8d795ed4e0e60ea775 merged revision(s) 11963da9e8e98821860fbb0c0f2adc118860c814. nagachika (Tomoyuki Chikanaga)
01:54 AM Revision e778de2c (git): merge revision(s) 11963da9e8e98821860fbb0c0f2adc118860c814: [Backport #16603] [Backport #17141]
Check type of empty keyword [Bug #16603]
Co-authored-by: Yusuke Endoh <mame@ruby-lang.org>
nagachika (Tomoyuki Chikanaga)
12:55 AM Bug #17144: Tempfile.open { ... } does not unlink the file
Austin Ziegler wrote on mailing list:
> If we don’t change the behaviour, could we at least modify the documentation for `Tempfile.open` to recommend most people use `Tempfile.create`, since I don’t think that I’ve ever used it and reac...
Dan0042 (Daniel DeLorme)

09/05/2020

07:58 PM Revision 40c06e6f (git): Fixed some typos in ractor.md (#3522)
Ashwin Elangovan
06:13 PM Bug #17141: Crash when parsing malformed input
nagachika (Tomoyuki Chikanaga) wrote in #note-2:
> Hi Jeremy,
> ...
The program doesn't crash in master, so I assume the fix isn't needed in master. It's possible there is a better fix for 2.7 that fixes the problem at a higher level ...
jeremyevans0 (Jeremy Evans)
11:11 AM Bug #17141: Crash when parsing malformed input
Hi Jeremy,
The code around the patch you show is exactly same in master and ruby_2_7 branches.
Isn't the patch necessary for master branch?
nagachika (Tomoyuki Chikanaga)
04:59 PM Revision dfefe0e0 (git): * 2020-09-06 [ci skip]
git[bot]
04:58 PM Revision 776b3df4 (git): Fix typos [ci skip]
znz (Kazuhiro NISHIYAMA)
02:16 PM Revision 170c7528 (git): common.mk: UNALIGNED_MEMBER_ACCESS needs internal/warnings.h on some platforms
nobu (Nobuyoshi Nakada)
02:16 PM Revision dd83d0c5 (git): update-deps: ruby-runner is not a target
nobu (Nobuyoshi Nakada)
02:05 PM Feature #17155 (Open): Add a Diggable mixin
Ruby 2.3 introduced the ```#dig``` method as a general way to access elements in deep structures. Initially it was implemented only for ```Array``` and ```Hash```. In the meanwhile also the classes ```Struct```, ```OpenStruct``` and ```S... janfri (Jan Friedrich)
01:18 PM Misc #17154: Update Pathname Documentation to Clarify Expected Behavior
Oh, and I would be happy to submit the necessary patches if this if a feature that will be accepted. resperat (Ralph Esperat)
02:29 AM Misc #17154 (Assigned): Update Pathname Documentation to Clarify Expected Behavior
I would like to suggest adding a sentence to the documentation for [Pathname](https://ruby-doc.org/stdlib-2.7.1/libdoc/pathname/rdoc/Pathname.html) to make clear the unusual behavior of `Pathname#+` when an absolute path is included in t... resperat (Ralph Esperat)
12:30 PM Bug #17150: Dumping/loading an Exception object dumps core
https://github.com/ruby/ruby/pull/3521 mame (Yusuke Endoh)
11:49 AM Feature #16461: Proc#using
I think it would be good to get @headius' feedback on this.
I'd also like to take another detailed look (I won't be able before 14 September though).
Eregon (Benoit Daloze)
11:05 AM Feature #16461: Proc#using
Disclaimer: I'm a big fan of refinements; they make Ruby more expressive (or chaotic 😉) and allow developers to be more creative.
shugo (Shugo Maeda) wrote in #note-5:
> I admit that the behavior is complex, but DSL users need not
>...
palkan (Vladimir Dementyev)
10:28 AM Bug #16771: Segmentation fault when inspecting a bound method
Thank you jeremy for your investigation.
I reverted the commit at 2c9dd060ab487a96e391793bd782cef6fd471b83 according to your recommendation. thanks!
nagachika (Tomoyuki Chikanaga)
10:26 AM Bug #16771: Segmentation fault when inspecting a bound method
ruby_2_7 2c9dd060ab487a96e391793bd782cef6fd471b83. nagachika (Tomoyuki Chikanaga)
10:19 AM Revision 9a1f0240 (git): bump patchlevel to 119
nagachika (Tomoyuki Chikanaga)
10:18 AM Revision 2c9dd060 (git): Revert "Don't display singleton class in Method#inspect unless method defined there"
[Backport #16771]
This reverts commit 0d24fb774d84d4a99454ce10fd343da00049a588.
nagachika (Tomoyuki Chikanaga)
08:34 AM Revision 5c49bb54 (git): Removed useless casts
nobu (Nobuyoshi Nakada)
08:21 AM Revision 72757fb5 (git): Fix typo in ractor.md
andrewmelis
06:31 AM Feature #16786: Light-weight scheduler for improved concurrency.
Thanks @matz, I'll consider your feedback, and we can make some changes after the next PR is finished. ioquatix (Samuel Williams)
02:54 AM Bug #17149 (Closed): Backport 3e02cd518fbe4d91c2aca7fbc3c5aafa387d3cb7
nagachika (Tomoyuki Chikanaga)
01:51 AM Feature #17153 (Closed): Add Enumerable#compact_map
jeremyevans0 (Jeremy Evans)
01:09 AM Feature #17153: Add Enumerable#compact_map
Oops! I didn't notice that. Thank you for letting me know. Please close this.
sawa (Tsuyoshi Sawada) wrote in #note-1:
> Hi Ito-san,
> ...
jnchito (Junichi Ito)
12:41 AM Feature #17153: Add Enumerable#compact_map
Hi Ito-san,
This is a duplicate of https://bugs.ruby-lang.org/issues/5663 and https://bugs.ruby-lang.org/issues/15323, and has been realized as `Enumerable#filter_map` since Ruby 2.7.0.
```ruby
[1, 2, 3, 4, 5].filter_map { |n| n * 10 i...
sawa (Tsuyoshi Sawada)
01:41 AM Feature #17151: Support multiple builtin ruby code for implimatation in Ruby & C
Beacause, if file can be separeted when number of cases implemented by builtin code in future, readability for code will be good.(I think so)
Currently, amount of code does not increase to much, but I thought it would be good to consi...
S_H_ (Shun Hiraoka)
01:21 AM Feature #17151: Support multiple builtin ruby code for implimatation in Ruby & C
Why do they need to be separate files? nobu (Nobuyoshi Nakada)
12:10 AM Feature #17147 (Feedback): New method to get frozen strings from String objects
Not also sure if String#-@ saves the OP’s situation, though. The method dedups string contents but has nothing to do with GC pressures.
Can you test if String#-@ works?
shyouhei (Shyouhei Urabe)

09/04/2020

11:28 PM Feature #17153 (Closed): Add Enumerable#compact_map
I often write code like this (`map`, then `compact`):
``` ruby
nums = [1, 2, 3, 4, 5]
nums.map { |n| n * 10 if n.even? }.compact
#=> [20, 40]
```
Or like this:
``` ruby
nums.select(&:even?).map { |n| n * 10 }
#=> [20, 40]
...
jnchito (Junichi Ito)
07:25 PM Bug #17152 (Closed): Missing TracePoint return event for String#unpack
A user reported an incorrect call graph for profiled code from ruby prof. See https://github.com/ruby-prof/ruby-prof/issues/279.
After investigation, this is a bug in Ruby 2.7.1 (it works in Ruby 2.6.*, not sure about Ruby 2.7.0).
...
cfis (Charlie Savage)
05:36 PM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
Every method call in Ruby is a message that is sent. That's why `Object#send(name,...)` exists.
Sure, you are sending a message to Ractor, which is a message. But so is sending a packed from a Socket, using any connection, sending a qu...
MaxLap (Maxime Lapointe)
04:45 PM Feature #17151 (Open): Support multiple builtin ruby code for implimatation in Ruby & C
## Summrary
Support these multiple builtin code in implimatation in Ruby & C.
```ruby
# excerpt of trueclass.rb
class TrueClass
def to_s
Primitive.attr! 'inline'
Primitive.cexpr! 'rb_cTrueClass_to_s'
end
end
`...
S_H_ (Shun Hiraoka)
04:41 PM Revision de30450d (git): Fix typos in Ractor README.
Tom Schady
03:53 PM Bug #17150 (Closed): Dumping/loading an Exception object dumps core
During debugging a random core dump of Ractor test, I found an Exception object loaded via marshal seems broken even in Ruby 2.7.
```ruby
def foo
raise
end
begin
foo
rescue => e
p e
p s = Marshal.dump(e)
p e = Mar...
mame (Yusuke Endoh)
03:42 PM Revision 1c8fe907 (git): * 2020-09-05 [ci skip]
git[bot]
03:42 PM Feature #17148: stdbuf(1) support
バッファリングのモードを直接知る方法ってないですよねぇ。
```diff
diff --git a/io.c b/io.c
index 0d6e2178573..f69aa14934d 100644
--- a/io.c
+++ b/io.c
@@ -8162,6 +8162,35 @@ prep_stdio(FILE *f, int fmode, VALUE klass, const char *path)
return io;
}
...
nobu (Nobuyoshi Nakada)
09:54 AM Feature #17148 (Open): stdbuf(1) support
# 概要
Ruby インタープリターを stdbuf(1) による stdout/stderr の出力バッファ制御に対応させたい。
# 背景
UNIX のフィルターコマンドの多くは、標準出力の先が端末かどうかによって出力バッファリングの制御を行っており、パイプを多段に繋げているとリアルタイムな出力が行われず問題になることが多々あります。
コマンドによってはバッファリング制御するオプションを設けることでバッファリングの問題を回避することができますが...
os (Shigeki OHARA)
03:34 PM Revision f943566d (git): break around function definition [ci skip]
nobu (Nobuyoshi Nakada)
03:20 PM Bug #17149 (Closed): Backport 3e02cd518fbe4d91c2aca7fbc3c5aafa387d3cb7
Since Ruby 2.7.x, builtin methods don't trigger return events in Tracepoint. This issue breaks other debuggers which depend heavily on Tracepoint to perform step calculation (aka Byebug - https://github.com/deivid-rodriguez/byebug/issues... nguyenquangminh0711 (Quang-Minh Nguyen)
01:20 PM Revision 1c78f5d5 (git): Sort links in NEWS.md by URI [ci skip]
nobu (Nobuyoshi Nakada)
01:18 PM Revision eb67c603 (git): Added Symbol#name
https://bugs.ruby-lang.org/issues/16150#change-87446 nobu (Nobuyoshi Nakada)
10:43 AM Feature #17147 (Closed): New method to get frozen strings from String objects
The feature is provided by `-str`. naruse (Yui NARUSE)
09:11 AM Feature #17147: New method to get frozen strings from String objects
@tagomoris I've been advocating for exposing the `fstring` family of function exactly for this. We load a lot of data from flat files, and it cost us a lot of memory alloc and then CPU to deduplicate them. And I was planning to submit pa... byroot (Jean Boussier)
07:56 AM Feature #17147: New method to get frozen strings from String objects
Understand the needs. Not sure if what is needed is actually the concept called “frozen” though. shyouhei (Shyouhei Urabe)
07:39 AM Feature #17147: New method to get frozen strings from String objects
I don't care of the name of that method, but here's some example if the discussion stops without options:
* String#frozen_string
* String#as_frozen_string
* ObjectSpace.get_frozen_string(str)
tagomoris (Satoshi Tagomori)
07:36 AM Feature #17147 (Feedback): New method to get frozen strings from String objects
Object deserializer (like JSON, MessagePack) instantiates many String objects (as keys of Hash objects), and many of those are in a set of names. (So the total number of keys is not infinite.)
In such use-case, the object deserializer i...
tagomoris (Satoshi Tagomori)
08:25 AM Bug #16651: Extensions Do Not Compile on Mingw64 with mingw32-make
Ping? cfis (Charlie Savage)
07:33 AM Feature #16150: Add a way to request a frozen string from to_s
I admit `Symbol#name` that returns a frozen string from a symbol. This can be a building block of the proposal.
As a direct solution for this issue, we have to face the naming problem (as always).
Matz.
matz (Yukihiro Matsumoto)
07:29 AM Feature #16650: Ruby 2.6.* and 2.7* no longer compile on latest Mingw64
Ruby 2.6.5 on gcc 10.2.0 is still broken. cfis (Charlie Savage)
07:28 AM Revision d7406ccc (git): Updated dependency
nobu (Nobuyoshi Nakada)
06:17 AM Revision d164eef9 (git): Fixed heap-use-after-free on racter
nobu (Nobuyoshi Nakada)
05:23 AM Revision fbaab562 (git): lib/ostruct.rb: Revert "To use RuntimeError instead of FrozenError for old ruby versions."
This reverts commit 4cd1fc8b3559353069860eee90b1b5bade013917. Marc-Andre Lafortune
05:18 AM Revision 3b0bcaf2 (git): check multi_ractor mode at main_p
rb_ractor_main_p() need to access to the ractor pointer in TLS.
However it is slow operation so that we need to skip this check
if it is not multi-ractor mode (!ruby_multi_ractor).
This performance regression is pointed at
https://bugs....
ko1 (Koichi Sasada)
03:56 AM Bug #17146: Queue operations are allowed after it is frozen
It seems "what is freeze mean" discussion. ko1 (Koichi Sasada)
01:52 AM Bug #17146: Queue operations are allowed after it is frozen
If a Queue cannot push/pop, it is useless. A Queue doesn't have any operations on that would make sense if you cannot push/pop. This makes it different from most freezable objects, where the object is usable read-only in a frozen stat... jeremyevans0 (Jeremy Evans)
12:58 AM Bug #17146: Queue operations are allowed after it is frozen
> I guess old Thread::Queue implemented in Ruby did not have this bug.
`require "thread"; q=Queue.new.freeze; q.push 1` works without error from Ruby 1.6.0.
Surprisingly before 1.6.0 there is no `Queue#freeze`.
ko1 (Koichi Sasada)
02:55 AM Feature #17145: Ractor-aware `Object#deep_freeze`
marcandre (Marc-Andre Lafortune) wrote in #note-7:
> I think these objects should stop the propagation. The name `make_shareable_via_ractor_by_deep_freezing_what_is_necessary` would be more accurate but too long 😆 Maybe `ractorable`?
...
duerst (Martin Dürst)
02:46 AM Revision 169b1d1a (git): Initialize loop variables of list_for_each for MS VC
nobu (Nobuyoshi Nakada)
01:18 AM Bug #17144: Tempfile.open { ... } does not unlink the file
Eregon (Benoit Daloze) wrote in #note-9:
> Dan0042 (Daniel DeLorme) wrote in #note-6:
> ...
It is compared to wrong use of Tempfile.open
I understand "perceived consistency" is compared to Tempfile.create.
> And people must be an...
akr (Akira Tanaka)
01:13 AM Feature #16990: Sets: operators compatibility with Array
mame (Yusuke Endoh) wrote in #note-9:
> I expect that `ary + set` return a Set, not an Array, unless it raises an exception.
> ...
I will use `array | something` if I mean to deduplicate the result, so `array + something` to me is the ...
knu (Akinori MUSHA)
12:25 AM Feature #16990: Sets: operators compatibility with Array
I expect that `ary + set` return a Set, not an Array, unless it raises an exception.
> Otherwise array += set would turn the variable array to a Set and that would be a surprise.
It is a surprise if `ary + set` returns a collection...
mame (Yusuke Endoh)

09/03/2020

11:35 PM Feature #16990: Sets: operators compatibility with Array
Eregon (Benoit Daloze) wrote in #note-6:
> I don't expect Array "set" operations to magically know about the Set representation.
I would like to expect it 😆
> ...
Yes
> And then that makes the return type inconsistent with `set...
marcandre (Marc-Andre Lafortune)
11:29 PM Feature #16990: Sets: operators compatibility with Array
knu (Akinori MUSHA) wrote in #note-4:
> We can probably define Set#to_ary if it's OK, and Array#+ will be able to deal with a set. Let us think about the downsides...
While this may be a good thing, and at least make them interopera...
marcandre (Marc-Andre Lafortune)
02:00 PM Feature #16990: Sets: operators compatibility with Array
Because Array and Set are fundamentally different, I think ensuring both operands have the same type, explicitly or internally, is completely reasonable.
I don't expect Array "set" operations to magically know about the Set representati...
Eregon (Benoit Daloze)
08:50 AM Feature #16990: Sets: operators compatibility with Array
As for the result type, I think Array operators should return arrays. Otherwise `array += set` would turn the variable `array` to a Set and that would be a surprise. knu (Akinori MUSHA)
08:47 AM Feature #16990: Sets: operators compatibility with Array
We can probably define Set#to_ary if it's OK, and Array#+ will be able to deal with a set. Let us think about the downsides... knu (Akinori MUSHA)
12:09 AM Feature #16990: Sets: operators compatibility with Array
Eregon (Benoit Daloze) wrote in #note-2:
> Isn't `[1].to_set + Set[2]` a good workaround here?
Did you mean only for `+`, or for all operators? Take `-` for example... `ary.to_set - set` the `to_set` is wasteful, and I don't want to ...
marcandre (Marc-Andre Lafortune)
11:09 PM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
ko1 (Koichi Sasada) wrote in #note-28:
Thanks for all your replies!
> ```ruby
> ...
Surprising to me, I think unintended, I filed #17146.
> I believe `Ractor#send` is best name because it sends an message.
"Sending a message...
Eregon (Benoit Daloze)
08:26 PM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
marcandre (Marc-Andre Lafortune) wrote in #note-24:
> I find `Ractor` very promising 🎉
Thanks, I hope so.
> ...
I introduced `shareable` flag into objects (`FL_SHAREABLE` in C level).
Once the interpreter found it is immutable, this fl...
ko1 (Koichi Sasada)
08:18 PM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
Eregon (Benoit Daloze) wrote in #note-23:
> Here is a problematic case on `master` sharing mutable state via `define_method`:
Exactly. `define_method` is also the big issue...
The Proc object referred from defined method is not isolated...
ko1 (Koichi Sasada)
08:14 PM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
I don't care about the name `recv` and `receive`.
Eregon (Benoit Daloze) wrote in #note-19:
> @ko1, @matz Which one(s) do you like in this list?
I believe `Ractor#send` is best name because it sends an message.
It is conflicts wi...
ko1 (Koichi Sasada)
08:04 PM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
> I feel Ractor#send mutates the Ractor's state and frozen Ractor shouldn't accept any messages.
However, I don't against to freeze Ractors.
```ruby
q = Queue.new
q.freeze
q << 1
```
is working (I'm not sure it is intentional)...
ko1 (Koichi Sasada)
08:01 PM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
Eregon (Benoit Daloze) wrote in #note-18:
> @ko1 Can you review these potential performance overheads of adding Ractors? (and so potential regressions for code not using Ractors)
> ...
Yes. I didn't think it is huge cost.
BUT
`...
ko1 (Koichi Sasada)
07:46 PM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
Sorry I missed your question.
Eregon (Benoit Daloze) wrote in #note-8:
> Instance variables on modules should probably be consistent with constants.
> ...
I think we can expect "Constants" are defined at once at the beginning of cod...
ko1 (Koichi Sasada)
06:50 PM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
I find `Ractor` very promising 🎉
The impact is severily limited without support for user-based immutable types. Is that planned for 3.0?
I'm curious what is the technical difficulty. I mean, can't existing builtin `freeze` check fo...
marcandre (Marc-Andre Lafortune)
02:43 PM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
@mame Regarding OptCarrot, I think having `deep_freeze` would be a great help.
But I wonder, maybe `Object.deep_freeze` would work to freeze all constants very succintly?
Some constants expect to be mutable, so I guess it doesn't work ...
Eregon (Benoit Daloze)
02:32 PM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
joanbm (Joan Blackmoore) wrote in #note-20:
I'll disregard your offensive comment, I tried to summarize the poll as good as I can.
This is my interpretation of the poll, and everyone can interpret as they want.
Of course it's a poll...
Eregon (Benoit Daloze)
12:11 PM Feature #17100 (Closed): Ractor: a proposal for a new concurrent abstraction without thread-safety issues
Applied in changeset commit:git|79df14c04b452411b9d17e26a398e491bca1a811.
----------
Introduce Ractor mechanism for parallel execution
This commit introduces Ractor mechanism to run Ruby program in
parallel. See doc/ractor.md for more ...
ko1 (Koichi Sasada)
10:53 PM Bug #17146 (Closed): Queue operations are allowed after it is frozen
```
[1] pry(main)> q = Queue.new
=> #<Thread::Queue:0x000056263683aee8>
[2] pry(main)> q.freeze
=> #<Thread::Queue:0x000056263683aee8>
[3] pry(main)> q << 1
=> #<Thread::Queue:0x000056263683aee8>
[4] pry(main)> q.pop
=> 1
[5] pr...
Eregon (Benoit Daloze)
09:44 PM Feature #16989: Sets: need ♥️
matz (Yukihiro Matsumoto) wrote in #note-17:
> I agree with some of your proposals (#16990, #16991, #16993, #16995). I want @knu to work on this. If I missed something, he will tell us.
Thank you for reviewing these :-)
> ...
Righ...
marcandre (Marc-Andre Lafortune)
09:44 PM Feature #16989: Sets: need ♥️
knu (Akinori MUSHA) wrote in #note-18:
> OK, I think it's good for us now to diverge from the original philosophy of Set when I first wrote it and pursue the performance and integrity with other parts of Ruby. There are many parts in S...
marcandre (Marc-Andre Lafortune)
07:48 AM Feature #16989: Sets: need ♥️
OK, I think it's good for us now to diverge from the original philosophy of Set when I first wrote it and pursue the performance and integrity with other parts of Ruby. There are many parts in Set where I avoided optimization in order t... knu (Akinori MUSHA)
01:14 AM Feature #16989: Sets: need ♥️
I agree with some of your proposals (#16990, #16991, #16993, #16995). I want @knu to work on this. If I missed something, he will tell us.
I strongly disagree with #16994. There's no evidence we need frozen sets of strings or symbols ...
matz (Yukihiro Matsumoto)
09:41 PM Revision d4585e74 (git): Avoid potential for rb_raise() while crashing
rb_obj_raw_info is called while printing out crash messages and
sometimes called during garbage collection. Calling rb_raise() in these
situations is undesirable because it can start executing ensure blocks.
alanwu (Alan Wu)
08:44 PM Feature #17145: Ractor-aware `Object#deep_freeze`
> I think these objects should stop the propagation. The name make_shareable_via_ractor_by_deep_freezing_what_is_necessary would be more accurate but too long 😆
> ...
For Ractor, it is very clear. Another candidate is `to_shareable`?
...
ko1 (Koichi Sasada)
07:39 PM Feature #17145: Ractor-aware `Object#deep_freeze`
ko1 (Koichi Sasada) wrote in #note-4:
> One concern about the name "freeze" is, what happens on shareable objects on Ractors.
> ...
I think these objects should stop the propagation. The name `make_shareable_via_ractor_by_deep_freezing_w...
marcandre (Marc-Andre Lafortune)
07:34 PM Feature #17145: Ractor-aware `Object#deep_freeze`
Eregon (Benoit Daloze) wrote in #note-3:
> A dynamic call to `freeze` causes extra calls
Yes
> ...
That won't add any noticeable overhead
> Is there a compelling reason to call a user-defined `freeze` for every value?
Yes. S...
marcandre (Marc-Andre Lafortune)
07:27 PM Feature #17145: Ractor-aware `Object#deep_freeze`
Maybe we should have a method that ensure an object graph is shareable?
Not sure what a good name for that would be (shareable is hard to spell).
So that would noop for special shareable objects like you say, and freeze the rest.
Note...
Eregon (Benoit Daloze)
07:20 PM Feature #17145: Ractor-aware `Object#deep_freeze`
One concern about the name "freeze" is, what happens on shareable objects on Ractors.
For example, Ractor objects are shareable and they don't need to freeze to send beyond Ractor boundary.
I also want to introduce Mutable but sharea...
ko1 (Koichi Sasada)
07:06 PM Feature #17145: Ractor-aware `Object#deep_freeze`
A dynamic call to `freeze` causes extra calls, and needs checks that it was indeed frozen.
So for efficiency I think it would be better to mark as frozen internally without a call to `freeze` on every value.
Also a leaf `freeze` call...
Eregon (Benoit Daloze)
06:42 PM Feature #17145 (Rejected): Ractor-aware `Object#deep_freeze`
I'd like to propose `Object#deep_freeze`:
Freezes recursively the contents of the receiver (by calling `deep_freeze`) and
then the receiver itself (by calling `freeze`).
Values that are shareable via `Ractor` (e.g. classes) are neve...
marcandre (Marc-Andre Lafortune)
07:29 PM Misc #17138: DevelopersMeeting20200925Japan
* [Feature #17143] Improve support for warning categories (jeremyevans0)
* Warning.warn :category keyword support was approved last developer meeting.
* I would like to add Kernel#warn :category keyword for Ruby-level warnings, and...
jeremyevans0 (Jeremy Evans)
09:24 AM Misc #17138: DevelopersMeeting20200925Japan
* [Bug #17144] Tempfile.open { ... } does not unlink the file (eregon)
* OK to keep the change and make Tempfile.open(&block) finally intuitive? Some usages might need updating but it seems very few.
* `SomeClass.open { ... }` shou...
Eregon (Benoit Daloze)
07:09 PM Revision e0a749c0 (git): * 2020-09-04 [ci skip]
git[bot]
07:07 PM Revision 3f922f3b (git): don't use toplevel return
Toplevel return is supported after Ruby 2.4, so don't use it
for older BASERUBY.
ko1 (Koichi Sasada)
06:56 PM Bug #17144: Tempfile.open { ... } does not unlink the file
Dan0042 (Daniel DeLorme) wrote in #note-6:
> -1 for breaking compatibility with no deprecation, just for the sake of perceived consistency.
Not "the sake of perceived consistency".
It's leaking a resource (a file on the disk) outsid...
Eregon (Benoit Daloze)
03:46 PM Bug #17144: Tempfile.open { ... } does not unlink the file
> `Tempfile.open{ }` returns nil
I apologize for this brain fart. `Tempfile.open{ }` returns the result of the block. So it's entirely likely that someone would use
`tmp = Tempfile.open{ |f| f.write(data); f }`
instead of
`tmp = Tempf...
Dan0042 (Daniel DeLorme)
03:15 PM Bug #17144: Tempfile.open { ... } does not unlink the file
If we could allow incompatible changes of Tempfile in 3.0 or later, it is a good chance to reimplement it as a subclass of File without delegate.rb.
#7148
Glass_saga (Masaki Matsushita)
03:14 PM Bug #17144: Tempfile.open { ... } does not unlink the file
-1 for breaking compatibility with no deprecation, just for the sake of perceived consistency.
But then again it's important to note that `Tempfile.open{ }` returns nil, so the only way to cause an incompatibility is if the blocks "le...
Dan0042 (Daniel DeLorme)
01:44 PM Bug #17144: Tempfile.open { ... } does not unlink the file
It seems hard to deprecate here without changing behavior. Any idea?
OTOH, when an usage relied on the file to still exist it should be quite clear what happens (the file will not be there, so an exception).
It took me seconds to find ...
Eregon (Benoit Daloze)
01:15 PM Bug #17144: Tempfile.open { ... } does not unlink the file
One idea: creating tmpfile library and
Tmpfile.open calls Tempfile.create.
This also resolves an inconsistency between tempfile.rb and tmpdir.rb.
For this consistency, File.tmpfile may be better than Tmpfile.open
because it is simi...
akr (Akira Tanaka)
12:58 PM Bug #17144: Tempfile.open { ... } does not unlink the file
I sympathize with this issue.
I wish Tempfile.open had worked like Tempfile.create from the beginning.
But changing it is incompatible.
It is not our (current) practice that introducing an incompatible change without prior notice.
...
akr (Akira Tanaka)
09:32 AM Bug #17144: Tempfile.open { ... } does not unlink the file
Out of these 2 usages that relied on the file to still exist, 1 was incorrect:
https://github.com/ruby/ruby/blob/e8c3872555fc85640505974e6b1c39d315572689/lib/reline/line_editor.rb#L2085-L2087
The GC can trigger anywhere between these 3 l...
Eregon (Benoit Daloze)
09:21 AM Bug #17144 (Closed): Tempfile.open { ... } does not unlink the file
```
ruby -rtempfile -e 'Tempfile.open("txt") { |f| $path = f.path }; p File.exist?($path)'
true
```
but it should be `false`.
This means even after the block finishes to execute the file still exists on a disk
And this might or n...
Eregon (Benoit Daloze)
04:37 PM Feature #17140: Merge Enumerable#grep(_v) with Enumerable#select/reject
I imagine that `Set['and', 'the', 'of']` was meant. marcandre (Marc-Andre Lafortune)
07:01 AM Feature #17140: Merge Enumerable#grep(_v) with Enumerable#select/reject
I guess I understand the first example. Just to make sure:
```
[-3, 4, 0, 8.5, 20, 5].select(1..10) #=> [4, 8.5, 5]
```
But for the second example, I don't understand `{ 'and', 'the', 'of' }`. Is that supposed to be an array, or ...
duerst (Martin Dürst)
02:57 PM Feature #17016: Enumerable#accumulate
Dan0042 (Daniel DeLorme) wrote in #note-33:
> ... what about `#cumulative` ?
Oh that's interesting! I had leapt straight to verbs since that tends to be the pattern for methods that transform enumerables, but the examples of `[1,2,3...
parker (Parker Finch)
02:26 PM Feature #17104: Do not freeze interpolated strings when using frozen-string-literal
ko1 (Koichi Sasada) wrote in #note-21:
> I found that freezing interpolated strings are help for Ractor programming with constants.
Right, anything deeply frozen is helpful for Ractor.
But interpolated Strings are probably not that comm...
Eregon (Benoit Daloze)
12:29 AM Feature #17104: Do not freeze interpolated strings when using frozen-string-literal
I found that freezing interpolated strings are help for Ractor programming with constants.
```ruby
class C
i = 10
STR = "foo#{i}"
end
```
ko1 (Koichi Sasada)
02:08 PM Feature #16992: Sets: officially ordered
+1 from me. Hash if officially ordered.
Making Set unordered would likely break many things.
In practice I would think many Set usages already assume it ordered.
Similar to what I said in https://bugs.ruby-lang.org/issues/15281#note-9...
Eregon (Benoit Daloze)
02:03 PM Feature #16994: Sets: shorthand for frozen sets of symbols / strings
Dan0042 (Daniel DeLorme) wrote in #note-3:
> I just thought of something...
> ...
That already works on TruffleRuby (and for more than this specific case), it needs a JIT, inlining (also through builtins like #include?) and escape anal...
Eregon (Benoit Daloze)
03:03 AM Feature #16994: Sets: shorthand for frozen sets of symbols / strings
I just thought of something...
In the same way that `"str".freeze` is optimized to be deduplicated, `%w[a b].include?(obj)` could be optimized so it becomes equivalent to `obj == -"a" || obj == -"b"`, or something around those lines. Th...
Dan0042 (Daniel DeLorme)
12:11 PM Revision b52513e2 (git): skip Ractor tests on Compiler tests
This implementation has memory corruption errors so and
it causes BUG on rare occasions. This commit skips
suspect tests on Github actions Compiler tests.
ko1 (Koichi Sasada)
12:11 PM Revision 79df14c0 (git): Introduce Ractor mechanism for parallel execution
This commit introduces Ractor mechanism to run Ruby program in
parallel. See doc/ractor.md for more details about Ractor.
See ticket [Feature #17100] to see the implementation details
and discussions.
[Feature #17100]
This commit does ...
ko1 (Koichi Sasada)
09:51 AM Revision eeb5325d (git): Hoisted out warn_deprecated
nobu (Nobuyoshi Nakada)
08:54 AM Revision 705b908f (git): Fix a typo [ci skip]
znz (Kazuhiro NISHIYAMA)
07:49 AM Revision 7b9ef667 (git): Don't call to_s in const_set
Follow up for 5e16857315bf55307c5fc887ca6f03bfa0630a93. Calling a method
in the middle of const_set adds a way that it would fail. It also makes
it inconsistent with declaring a constant using `::`, which doesn't call
`to_s`.
alanwu (Alan Wu)
06:14 AM Revision 50b18e81 (git): configure: detect that there is no g++
AC_PROG_CXX checks for several C++ compilers INCLUDING g++. When none
of them were found it sets the CXX variable to be g++. This doesn't
make any sense. Absense of g++ has already been made sure.
Because we don't want insanity (that...
shyouhei (Shyouhei Urabe)
03:30 AM Feature #17122 (Closed): Add category to Warning#warn
https://github.com/ruby/ruby/pull/3505 has been merged. Thank you Eileen! mame (Yusuke Endoh)
03:06 AM Feature #16786: Light-weight scheduler for improved concurrency.
Since this thread became long and complex, it was hard for me to grasp the latest proposal. Correct me if I missed something.
# How to create `async I/O fiber`
I tentatively call fibers with context switching on I/O operations `asy...
matz (Yukihiro Matsumoto)
01:32 AM Feature #16986: Anonymous Struct literal
One more point: I haven't seen much examples of similar features in other languages. The only suggestion I saw was that of a similarity to Python tuples. But tuples are much closer to Arrays than to Structs or hashes. The easiest descrip... duerst (Martin Dürst)
12:04 AM Feature #17143 (Open): Improve support for warning categories
Support was recently added for Warning.warn to accept a `category` keyword. However, the initial implementation was limited to having `rb_warn_deprecated` and `rb_warn_deprecated_to_remove` use the `:deprecated` value for the `category`... jeremyevans0 (Jeremy Evans)

09/02/2020

11:45 PM Revision 3fb25562 (git): add lldb functions for getting the heap page / heap page body
tenderlovemaking (Aaron Patterson)
11:45 PM Revision 933035d3 (git): support T_MATCH in lldb
tenderlovemaking (Aaron Patterson)
09:54 PM Revision 0b81a484 (git): Initialize new T_OBJECT as ROBJECT_EMBED
Previously, when an object is first initialized, ROBJECT_EMBED isn't
set. This means that for brand new objects, ROBJECT_NUMIV(obj) is 0 and
ROBJECT_IV_INDEX_TBL(obj) is NULL.
Previously, this combination meant that the inline cache wou...
jhawthorn (John Hawthorn)
09:15 PM Feature #16989: Sets: need ♥️
Eregon (Benoit Daloze) wrote in #note-14:
> Also, does moving Set to core mean rewriting it to C?
> ...
I'm not sure, but `Set` is quite small, most of the processing uses `Hash`...
> Only moving Set but not SortedSet in core would ...
marcandre (Marc-Andre Lafortune)
09:01 PM Feature #16989: Sets: need ♥️
Dan0042 (Daniel DeLorme) wrote in #note-13:
> I don't get that part. If you have a literal like `{ x, y, z }` then x/y/z can be any type of object. There's no restriction. But I agree `Set[]` is short and good enough.
Right, I was th...
Eregon (Benoit Daloze)
09:00 PM Feature #16989: Sets: need ♥️
Also, does moving Set to core mean rewriting it to C?
I think that would be suboptimal, because every implementation would have to maintain its own native implementation then (or reuse the C extension).
It would also hurt readability.
...
Eregon (Benoit Daloze)
02:45 PM Feature #16989: Sets: need ♥️
> which would anyway restrict the type of keys
I don't get that part. If you have a literal like `{ x, y, z }` then x/y/z can be any type of object. There's no restriction. But I agree `Set[]` is short and good enough.
Dan0042 (Daniel DeLorme)
01:44 PM Feature #16989: Sets: need ♥️
Eregon (Benoit Daloze) wrote in #note-11:
> IMHO there is no need for a literal Set notation (which would anyway restrict the type of keys, etc).
I agree. `Set[...]` works very well already for constructing sets at runtime out of any...
marcandre (Marc-Andre Lafortune)
09:52 AM Feature #16989: Sets: need ♥️
IMHO there is no need for a literal Set notation (which would anyway restrict the type of keys, etc).
> Some of the upcoming feature requests would be easier (or only possible) to implement were Sets builtin.
@marcandre Which featu...
Eregon (Benoit Daloze)
08:59 PM Feature #16990: Sets: operators compatibility with Array
Isn't `[1].to_set + Set[2]` a good workaround here? Eregon (Benoit Daloze)
08:46 PM Bug #9815: attr_reader doesn't warn on a uninitialized instance variable
What was the rationale here to have different behavior?
Which C function is used by `attr_reader` seems an implementation detail.
Eregon (Benoit Daloze)
08:33 PM Feature #15628: init_inetsock_internal should fallback to IPv4 if IPv6 is unreachable
Hi!
Any feedback about this? We're considering implementing "Happy Eyeballs" in rubygems by monkeypatching `TCPSocket.new`, in order to fix longstanding issues with `gem install` timing out on ipv6-capable clients. But it would feel m...
deivid (David Rodríguez)
07:44 PM Revision eada6350 (git): Add category to `rb_warn_deprecated`
PR https://github.com/ruby/ruby/pull/3418 added a category to
`rb_warn_deprecated_to_remove` but not to `rb_warn_deprecated`. This
adds the same code to `rb_warn_deprecated` so that those warnings also
get a category.
This change also a...
eileencodes (Eileen Uchitelle)
07:33 PM Bug #14437 (Closed): Integer == doesn't work with coerce since 2.4 (and != since 1.9). Should it?
taw (Tomasz Wegrzanowski) wrote in #note-2:
> Looking at the code fix_equal(x,y) when y was of non-core class used to call num_equal,(x,y) which then did reverse call for y==x,
> ...
The `Integer#==` method is documented to only return...
jeremyevans0 (Jeremy Evans)
07:21 PM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
@Eregon (Benoit Daloze) https://bugs.ruby-lang.org/issues/17100#note-19
> Re naming of receiving a message, here is the poll I made:
> ...
Can you just cease your manipulative behaviour, based on faulty generalization resoning in this ...
joanbm (Joan Blackmoore)
07:02 PM Revision 54fb8fb6 (git): Comply with guide for method doc: array.c (#3506)
Methods:
any?
all?
one?
none?
sum
shuffle!
shuffle
sample
burdettelamar (Burdette Lamar)
05:45 PM Bug #17139 (Closed): [doc] StringScanner#matched_size seems to be byte-oriented but that is not documented
Applied in changeset commit:git|d9b8411a7be4c9e300b75bc374f29e6965ab3040.
----------
Document that StringScanner#matched_size returns size in bytes [ci skip]
Fixes [Bug #17139]
jeremyevans (Jeremy Evans)
05:41 PM Revision d9b8411a (git): Document that StringScanner#matched_size returns size in bytes [ci skip]
Fixes [Bug #17139] jeremyevans (Jeremy Evans)
05:38 PM Bug #15417 (Closed): Pathname case insensitive comparison
Applied in changeset commit:git|cc5b7ed1dccc6a5cffa5c52778c6db8794722404.
----------
Document limitation of Pathname#relative_path_from [ci skip]
This method is explicitly documented to not access the filesystem,
and the only way to ge...
jeremyevans (Jeremy Evans)
05:32 PM Bug #15417: Pathname case insensitive comparison
I don't think this is fixable. SAME_PATHS is only used in `relative_path_from`, which is explicitly documented to not access the filesystem. I'll update the documentation for `relative_path_from` to explain the issue. jeremyevans0 (Jeremy Evans)
05:38 PM Revision 0938bad0 (git): * 2020-09-03 [ci skip]
git[bot]
05:34 PM Revision cc5b7ed1 (git): Document limitation of Pathname#relative_path_from [ci skip]
This method is explicitly documented to not access the filesystem,
and the only way to get the correct behavior for a case where the
filesystem's case sensitivity differs from the operating system
default would be to access the filesyste...
jeremyevans (Jeremy Evans)
05:21 PM Feature #16986: Anonymous Struct literal
I'm also unconvinced of a good use case and why creating a `MyResult = Struct.new(:some_value, :name)` is really something that should be "saved". marcandre (Marc-Andre Lafortune)
12:17 PM Feature #16986: Anonymous Struct literal
mame (Yusuke Endoh) wrote in #note-38:
> So, external input like JSON data is not the target of this proposal. Rather, this proposal is just a variant of Struct, which allows to omit the definition line: `Foo = Struct.new(...)`.
I...
duerst (Martin Dürst)
05:03 PM Misc #17137: Cooperation on maintaining official docker ruby images
I _believe_ official images also want to be minimal and they are not explicitly designed for Rails. So in my opinion, many of the patches you have made to make your images thinner would probably be accepted upstream and benefit a larger ... deivid (David Rodríguez)
02:24 PM Misc #17137: Cooperation on maintaining official docker ruby images
There were three reasons why I started rubylang/ruby as separated from Docker's official ruby.

The first reason is that my personal reason. I needed a simplest pure ruby image. This image should be in the state after `make install` ...
mrkn (Kenta Murata)
03:35 PM Feature #17055: Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
Eregon (Benoit Daloze) wrote in #note-22:
> FWIW I noticed that using `attr_reader` does not warn if the @ivar is not set:
> ...
I don't want to define private methods for all of the instance variables in use just to work around verbos...
jeremyevans0 (Jeremy Evans)
02:57 PM Feature #17055: Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
FWIW I noticed that using `attr_reader` does not warn if the @ivar is not set:
```
$ ruby -w -e 'class T; def foo; @foo; end; end; t=T.new; p t.foo'
-e:1: warning: instance variable @foo not initialized
nil
$ ruby -w -e 'class T; attr_r...
Eregon (Benoit Daloze)
02:18 PM Feature #15236: add support for hash shorthand
For all interested in this feature, I've added support for it in the latest Ruby Next (Ruby transpiler) release (https://github.com/ruby-next/ruby-next/releases/tag/v0.10.0), so it should be easier to give it a try and share opinions.
palkan (Vladimir Dementyev)
02:15 PM Feature #17104: Do not freeze interpolated strings when using frozen-string-literal
https://github.com/nobu/ruby/tree/unfrozen-literal nobu (Nobuyoshi Nakada)
02:05 PM Bug #17142 (Open): Ruby fails to build in AIX
Ruby fails to build in AIX in 64bit mode.
This commit https://github.com/ruby/ruby/commit/f47c38245ff6976c5d1fc27a79f239bba00fc333 essentially broke the 64bit build.
The asm code is not applicable for AIX it seems. Probably we need...
Ayappan (Ayappan Perumal)
01:40 PM Feature #17122: Add category to Warning#warn
PR for `rb_warn_deprecated` opened here: https://github.com/ruby/ruby/pull/3505 eileencodes (Eileen Uchitelle)
12:17 PM Feature #17122: Add category to Warning#warn
> Could you add the same logic not only to rb_warn_deprecated_to_remove but also to rb_warn_deprecated? Thanks.
Yup, I will send a PR!
eileencodes (Eileen Uchitelle)
06:36 AM Feature #17122 (Assigned): Add category to Warning#warn
Hi @eileencodes
mame (Yusuke Endoh) wrote in #note-8:
> In addition: your PR changed only `rb_warn_deprecated_to_remove` but not `rb_warn_deprecated`. Is there any reason?
Could you add the same logic not only to `rb_warn_depreca...
mame (Yusuke Endoh)
12:16 AM Feature #17122 (Closed): Add category to Warning#warn
Merged at https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/6e8ec9ab6da228ade70fe7d0dd16540d8f859f00 hsbt (Hiroshi SHIBATA)
06:14 AM Misc #17050 (Closed): profiler gem
Okay, I look forward to your profiler. ioquatix (Samuel Williams)
04:30 AM Revision 93b78abd (git): new_dstr: hoisted out from literal_concat and evstr2dstr
nobu (Nobuyoshi Nakada)
04:30 AM Revision 63213304 (git): Removed trailing spaces [ci skip]
nobu (Nobuyoshi Nakada)
04:05 AM Bug #14895 (Closed): Inconsistent constant names when using const_set on a singleton class
Applied in changeset commit:git|5e16857315bf55307c5fc887ca6f03bfa0630a93.
----------
Fix constant names set using const_set on a singleton class
Fixes [Bug #14895]
Anonymous
04:05 AM Revision 5e168573 (git): Fix constant names set using const_set on a singleton class
Fixes [Bug #14895] Marc-Andre Lafortune
02:03 AM Revision 11922b5e (git): Fix error message for wb unprotected objects count
This error is about wb unprotected objects, not old objects. peterzhu2118 (Peter Zhu)
02:02 AM Revision 4c3f0597 (git): Remove the pc argument of vm_trace()
This makes the binary 272 bytes smaller on -O3 GCC 10.2.0. alanwu (Alan Wu)
01:22 AM Bug #17141 (Closed): Crash when parsing malformed input
I can confirm this crash in Ruby 2.7.1, 2.7.0, and the ruby_2_7 branch. It is not present in master.
Here's the backtrace on ruby_2_7 branch:
```
0x00000a3c357f2d7c in CALLER_REMOVE_EMPTY_KW_SPLAT (cfp=0xa3ba636ef90, calling=0x7f...
jeremyevans0 (Jeremy Evans)
01:02 AM Revision 94b54b03 (git): Reapply "Special case Range#max for integer beginning and Float::Infinity end" (tests)
Reverted in e080a4cdee Marc-Andre Lafortune
12:56 AM Misc #17138: DevelopersMeeting20200925Japan
* [Feature #16994] Shorthand syntax for static frozen sets of string/symbols (e.g. `%ws{hello world}`) (marcandre)
* Rest of my "Set program", especially: insure interoperability with `Array` (e.g so `array & set` works and is efficient)
marcandre (Marc-Andre Lafortune)
12:40 AM Feature #11927: Return value for `Module#include` and `Module#prepend`
It would help to:
1) have an example of use case
2) discuss why `B.include M unless B < M` is not equivalent / sufficient
marcandre (Marc-Andre Lafortune)

09/01/2020

11:16 PM Revision 6e8ec9ab (git): Support passing a category to `Warning.warn`
This change adds a `category` kwarg to make it easier to monkey patch
`Warning.warn`. Warnings already have a category, but that warning isn't
exposed. This implements a way to get the category so that warnings with
a specific category, ...
eileencodes (Eileen Uchitelle)
09:07 PM Bug #16787: [patch] allow Dir.home to work for non-login procs when $HOME not set
Just noting that I rebased (and re-tested) the Ruby 2.7 backport PR ([PR 3293](https://github.com/ruby/ruby/pull/3293)) on top of the latest changes in the 'ruby-2_7' branch. The rebasing did not result in any material changes to the 2.7... salewski (Alan Salewski)
08:10 PM Bug #17141 (Closed): Crash when parsing malformed input
Calling "ruby crash_small.rb" crashes ruby - see attached crash log tumdum (Tomasz Kłak)
07:52 PM Feature #17140 (Open): Merge Enumerable#grep(_v) with Enumerable#select/reject
In recent versions of Ruby we've gotten new behavior of some Enumerable methods like any?, all?, none?, one?, and others to support a single argument pattern that responds to `===`. This is very powerful, and very useful.
Currently En...
baweaver (Brandon Weaver)
07:35 PM Feature #17122: Add category to Warning#warn
I've addressed the backwards compatibility on the PR (https://github.com/ruby/ruby/pull/3418) and added an entry to NEWS.md. Let me know if there are other changes <3 eileencodes (Eileen Uchitelle)
06:18 PM Feature #17104: Do not freeze interpolated strings when using frozen-string-literal
mame (Yusuke Endoh) wrote in #note-18:
> I found `"foo#{ "foo" }"` frozen because it is optimized to `"foofoo"` at the parser. What do you think?
I guess that's semantically correct (besides the frozen status), since interpolation d...
Eregon (Benoit Daloze)
03:39 PM Feature #17104: Do not freeze interpolated strings when using frozen-string-literal
Eregon (Benoit Daloze) wrote in #note-17:
> I'll try to make a PR for this change: https://github.com/ruby/ruby/pull/3488
Thanks, I've given it a try.
I found `"foo#{ "foo" }"` frozen because it is optimized to `"foofoo"` at the p...
mame (Yusuke Endoh)
05:53 PM Bug #17017: Range#max & Range#minmax incorrectly use Float end as max
I reverted the changes in this pull request, and updated the Range#max documentation to explain the behavior (commit:de10a1f3583adeeffd7f8bcf8f276e0a626ffa0c). jeremyevans0 (Jeremy Evans)
02:49 PM Bug #17017: Range#max & Range#minmax incorrectly use Float end as max
matz (Yukihiro Matsumoto) wrote in #note-24:
> `Range` class methods are classified in two. The ones that behave like `Enumerable` methods (defined by `#each`), and the others that behave like region (defined by the both ends).
> ...
O...
jeremyevans0 (Jeremy Evans)
05:13 AM Bug #17017: Range#max & Range#minmax incorrectly use Float end as max
`Range` class methods are classified in two. The ones that behave like `Enumerable` methods (defined by `#each`), and the others that behave like region (defined by the both ends).
I think `#min` and `#max` should belong to the latter. ...
matz (Yukihiro Matsumoto)
05:52 PM Revision de10a1f3 (git): Update documentation for Range#max
jeremyevans (Jeremy Evans)
05:52 PM Revision 4db4faef (git): Revert "Fix Range#{max,minmax} for range with integer beginning and non-integer end"
This reverts commit 8900a25581822759daca528d46a75e0b743fc22e. jeremyevans (Jeremy Evans)
05:52 PM Revision e080a4cd (git): Revert "Special case Range#max for integer beginning and Float::Infinity end"
This reverts commit 05bf811c2839628aaef3d565daedb28be80d47ef. jeremyevans (Jeremy Evans)
05:49 PM Revision 94430d00 (git): Comply with guide for method doc: array.c (#3499)
Methods considered:
count
flatten!
flatten
cycle
permutation
combination
repeated_permutation
repeated_combination
product
take
take_while
drop
drop_while
burdettelamar (Burdette Lamar)
04:46 PM Revision 9d4c5147 (git): * 2020-09-02 [ci skip]
git[bot]
04:41 PM Revision 41cf17be (git): Fixed argument types
nobu (Nobuyoshi Nakada)
04:41 PM Revision f6822e4e (git): Format with proper conversion specifiers instead of casts
nobu (Nobuyoshi Nakada)
04:31 PM Bug #17139 (Closed): [doc] StringScanner#matched_size seems to be byte-oriented but that is not documented
StringScanner#matched_size seems to be byte oriented. But that is not documented. Better be documented to avoid confusion.
[1] pry(main)> ss = StringScanner.new([1024].pack("U*"))
[3] pry(main)> ss.skip_until(/./)
[4] pry(main)> ss....
akostadinov (Aleksandar Kostadinov)
03:56 PM Feature #17055: Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
At the last dev meeting, @matz said he did not like the callback API, and decided to postpone discussion on this. jeremyevans0 (Jeremy Evans)
03:48 PM Misc #17138 (Closed): DevelopersMeeting20200925Japan
# The next dev meeting
**Date: 2020/09/25 13:00-17:00**
Place/Sign-up/Agenda/Log: https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMeeting20200925Japan.md
- Dev meeting *IS NOT* a decision-making place. All decisions ...
mame (Yusuke Endoh)
03:47 PM Misc #17041 (Closed): DevelopersMeeting20200831Japan
mame (Yusuke Endoh)
03:01 PM Bug #14895: Inconsistent constant names when using const_set on a singleton class
Fixed dangling participle. sawa (Tsuyoshi Sawada)
02:20 PM Bug #14895: Inconsistent constant names when using const_set on a singleton class
marcandre (Marc-Andre Lafortune) wrote in #note-7:
> So I suggest I'll commit your patch, unless there's an objection.
I have no objection, so if you consider the current behavior a bug, please commit the patch (assuming it doesn't c...
jeremyevans0 (Jeremy Evans)
04:50 AM Bug #14895 (Open): Inconsistent constant names when using const_set on a singleton class
jeremyevans0 (Jeremy Evans) wrote in #note-6:
> Output:
> ...
... and it shows the name 'A' and 'C'. That's much better!
> If you like that idea, please submit a feature request for it (or switch this to a feature request and reope...
marcandre (Marc-Andre Lafortune)
02:16 PM Bug #15178 (Closed): Wrong paramaters passing to pthread_setname_np(3)
Applied in changeset commit:git|be9dbe1c3eb4bb4cab0bdc42a91ef425bb1eaddd.
----------
Fix pthread_setname_np arguments on NetBSD
The previous attempt to fix this in
b87df1bf243074edb2e6cc8a24bc00df81cebf3c reversed the argument
order in...
jeremyevans (Jeremy Evans)
02:16 PM Revision be9dbe1c (git): Fix pthread_setname_np arguments on NetBSD
The previous attempt to fix this in
b87df1bf243074edb2e6cc8a24bc00df81cebf3c reversed the argument
order instead of just fixing the quote escaping.
From Takahiro Kambe.
Fixes [Bug #15178]
jeremyevans (Jeremy Evans)
12:18 PM Revision 6b432009 (git): Fix syncing bundler man pages
`rm_rf` does not support globbing, so not all files get deleted. deivid (David Rodríguez)
10:03 AM Revision 8d1de315 (git): Use RSTRING_LENINT for overflow check
nobu (Nobuyoshi Nakada)
10:01 AM Revision 21ad4075 (git): Don't read past the end of the Ruby string
Ruby strings don't always have a null terminator, so we can't use
it as a regular C string. By reading only the first len bytes of
the Ruby string, we won't read past the end of the Ruby string.
peterzhu2118 (Peter Zhu)
08:06 AM Feature #15752 (Closed): A dedicated module for experimental features
As far as I understand, you want a place to separate features that do not only belong to `CRuby`, right?
But for example, we started `RubyVM::AbstractSyntaxTree` as a `CRuby` specific feature, it was natural for us to place it under `Ru...
matz (Yukihiro Matsumoto)
05:42 AM Revision fbf79f1c (git): Use the previous winflexbison3
winflexbison3 v2.5.23.20200829 seems to install nothing. nobu (Nobuyoshi Nakada)
04:23 AM Bug #15417: Pathname case insensitive comparison
The arguments are path components but not paths, can't stat. nobu (Nobuyoshi Nakada)
02:21 AM Revision cceba235 (git): minitest is working fine with Ruby 3
hsbt (Hiroshi SHIBATA)
02:21 AM Revision e00eba1c (git): xmlrpc has been removed from the bundled gems
hsbt (Hiroshi SHIBATA)
02:21 AM Revision a3d90f1b (git): bump version to minitest-5.14.2
hsbt (Hiroshi SHIBATA)
02:21 AM Revision 37715937 (git): Revert the workaround of minitest and hoe
86737c509cd49cfe4509a65d300d390da0f07be6
3e1aea461320094e634ab32ca0b13dd43b69d8b0
hsbt (Hiroshi SHIBATA)
02:05 AM Revision b01d852c (git): congigure.ac: favour gcc on Linux
Requested by Naruse. shyouhei (Shyouhei Urabe)
 

Also available in: Atom