Project

General

Profile

Activity

From 06/01/2022 to 06/07/2022

06/07/2022

08:19 PM Bug #18170: Exception#inspect should not include newlines
Sorry that the `#inspect` call actually came from the `ruby/debug`'s [own patch](https://github.com/ruby/debug/blob/master/test/support/utils.rb#L78). But I still found an `exception#inspect` occurrence in `test-unit` [here](https://gith... st0012 (Stan Lo)
09:58 AM Bug #18170: Exception#inspect should not include newlines
Can you show where a change to `#inspect` will impact this code? ioquatix (Samuel Williams)
09:25 AM Bug #18170: Exception#inspect should not include newlines
I think this change will affect many users' tests because test frameworks generally use exceptions for assertion messages.
For example, this is how [test-unit](https://github.com/test-unit/test-unit) implements [assert_block](https://...
st0012 (Stan Lo)
06:15 PM Revision bf4684d9 (git): Remove duplicated prototype in header file
rb_imemo_new is defined again later in the file. peterzhu2118 (Peter Zhu)
06:07 PM Feature #18819 (Closed): Moving Strings between size pools
[Github PR](https://github.com/ruby/ruby/pull/5986)
## Motivation
Using GC Compaction we can move objects around on a Ruby heap, this allows us to decrease memory fragmentation for more efficient memory usage and better copy on wri...
eightbitraptor (Matt V-H)
04:15 PM Revision 19c6aaca (git): thread_pthread.c: trigger THREAD_EVENT_READY when going throuhg the fast path.
byroot (Jean Boussier)
03:21 PM Revision bdc6e991 (git): * 2022-06-08 [ci skip]
git[bot]
03:20 PM Revision 1598c945 (git): Add special-case code for the String unary plus operator (#5982)
Noah Gibbs
02:23 PM Bug #18816: Ractor segfaulting MacOS 12.4 (aarch64 / M1 processor)
I've tried to isolate the problem with a few attempts:
First guess was that something GC related (cleaning up something that was still in use etc).
I've tried to disable GC with code below:
```
require 'socket'
# Set based o...
brodock (Gabriel Mazetto)
02:17 PM Bug #18816: Ractor segfaulting MacOS 12.4 (aarch64 / M1 processor)
I get the same segfault, but not as consistent as Gabriel. I had to first do a normal request in the browser before running "ab" the couple times it printed the segfault, but I haven't been able to reproduce as consistently. The localhos... tombruijn (Tom de Bruijn)
02:18 PM Revision deff9e26 (git): [rubygems/rubygems] Remove unnecessary string concatenation
https://github.com/rubygems/rubygems/commit/81ccb3ab89 djberg96 (Daniel Berger)
01:56 PM Revision c4bf24ee (git): Remove while loop over heap_prepare
Having a while loop over `heap_prepare` makes the GC logic difficult to
understand (it is difficult to understand when and why `heap_prepare`
yields a free page). It is also a source of bugs and can cause an infinite
loop if `heap_page` ...
peterzhu2118 (Peter Zhu)
01:47 PM Bug #18061: Execshield test: libruby.so.N.N.N: FAIL: property-note test because no .note.gnu.property section found
Here is a minimal reproducer to see the property-note test failure. The `./configure --enable-shared --with-gcc="gcc -fcf-protection -Wl,-z,now"` above was wrong. The `-Wl,-z,now` should not be in `--with-gcc="..". I checked the reproduc... jaruga (Jun Aruga)
12:04 PM Revision f50432fb (git): [rubygems/rubygems] Relax performance spec limit
https://github.com/rubygems/rubygems/commit/eab417d0ce deivid (David Rodríguez)
11:19 AM Revision b1e6e58c (git): Refactor TestThreadInstrumentation to investigate CI flakiness
`test_thread_instrumentation_fork_safe` has been failing occasionaly
on Ubuntu and Arch. At this stage we're not sure why, all we know is
that the child exit with status 1.
I suspect that something entirely unrelated cause the forked ch...
byroot (Jean Boussier)
08:40 AM Revision f075be3d (git): [ruby/error_highlight] Use Exception#detailed_message instead of overriding #message (https://github.com/ruby/error_highlight/pull/24)
See https://bugs.ruby-lang.org/issues/18564.
Ref: https://github.com/ruby/did_you_mean/pull/177
https://github.com/ruby/error_highlight/commit/671b7c61b2
mame (Yusuke Endoh)
07:18 AM Bug #18811: PTY I/O not working on AIX 7.x
mame (Yusuke Endoh) wrote in #note-2:
>
> ...
I found a way to fix this. The problem seems to be a known strangeness in the AIX pty implementation. It's sensitive to in which order things are done relative closing the descriptors. It'...
hspem (Per-Erik Martin)
06:24 AM Revision 11b9dd8c (git): Manually merged https://github.com/ruby/did_you_mean/pull/177
hsbt (Hiroshi SHIBATA)
06:12 AM Bug #18781: MJIT tests failing with Ubuntu focal with gcc-11 and some flags
> I sent the PR, https://github.com/ruby/ruby/pull/5938 .
The PR was merged.
> ...
The issue above is that the `./configure --enable-shared --enable-mkmf-verbose --with-gcc="gcc -O2 -fcf-protection" ldflags=-Wl,-z,now` was wrong. T...
jaruga (Jun Aruga)
05:51 AM Bug #18781 (Closed): MJIT tests failing with Ubuntu focal with gcc-11 and some flags
Applied in changeset commit:git|cfcf33f1270f78c5fb928d7a0927e6be02ec8900.
----------
.github/workflows/compilers.yml: annocheck: Fix a linker flag to pass MJIT tests.
Set the linker flag `-Wl,-z,now` properly.
Co-authored-by: Takashi ...
Anonymous
05:51 AM Bug #18294 (Closed): error when parsing regexp comment
Applied in changeset commit:git|ec3542229b29ec93062e9d90e877ea29d3c19472.
----------
Ignore invalid escapes in regexp comments
Invalid escapes are handled at multiple levels. The first level
is in parse.y, so skip invalid unicode esca...
jeremyevans (Jeremy Evans)
05:51 AM Bug #18624 (Closed): `const_source_location` returns [false, 0] when autoload is defined for the constant
Applied in changeset commit:git|c85d1cda86d75ee2c3f7b42f22c543409cb5a186.
----------
Fix Module#const_source_location for autoload constants with direct requires
If an autoload exists for a constant, but the path for the autoload
was r...
jeremyevans (Jeremy Evans)
05:51 AM Feature #12655 (Closed): Accessing the method visibility
Applied in changeset commit:git|7cda7fbbdc14f4262afaa94cdeb5a5987f1eb01a.
----------
Add Module#undefined_instance_methods
Implements [Feature #12655]
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
jeremyevans (Jeremy Evans)
02:52 AM Revision b9f03095 (git): Revert "error.c: Let Exception#inspect inspect its message"
This reverts commit 9d927204e7b86eb00bfd07a060a6383139edf741. mame (Yusuke Endoh)
02:44 AM Revision 082c2d1b (git): [ruby/rdoc] [DOC] Undocument internal constants [ci skip]
https://github.com/ruby/rdoc/commit/6d7bf24bb8 nobu (Nobuyoshi Nakada)
02:07 AM Revision 9d927204 (git): error.c: Let Exception#inspect inspect its message
... only when the message string has a newline.
`p StandardError.new("foo\nbar")` now prints `#<StandardError: "foo\nbar">'
instead of:
#<StandardError:
bar>
[Bug #18170]
mame (Yusuke Endoh)
01:42 AM Revision dbfb3b19 (git): [ruby/rdoc] Allow boolean arguments to `rb_attr` and `rb_define_attr`
Currently only literal `0` and `1` are accepted as `read`/`write`
flags.
This patch allows other boolean arguments, C macros (`FALSE`/`TRUE`),
Ruby `VALUE`s (`Qfalse`/`Qtrue`), and C99 `bool`s (`false`/`true`), as
well.
https://github.c...
nobu (Nobuyoshi Nakada)

06/06/2022

10:25 PM Revision cfcf33f1 (git): .github/workflows/compilers.yml: annocheck: Fix a linker flag to pass MJIT tests.
Set the linker flag `-Wl,-z,now` properly.
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
Fixes [Bug #18781]
Jun Aruga
08:50 PM Revision ec354222 (git): Ignore invalid escapes in regexp comments
Invalid escapes are handled at multiple levels. The first level
is in parse.y, so skip invalid unicode escape checks for regexps
in parse.y.
Make rb_reg_preprocess and unescape_nonascii accept the regexp
options. In unescape_nonascii,...
jeremyevans (Jeremy Evans)
06:31 PM Bug #18818: Thread waitq does not retain referenced objects, can lead to use after free.
There might be a good reason we don't want to do this (or want to do it differently). But I can confirm that marking the fibers in the wait queues makes the SEGV go away! :D
Patch also at https://github.com/ruby/ruby/pull/5979
nevans (Nicholas Evans)
04:40 PM Bug #18818: Thread waitq does not retain referenced objects, can lead to use after free.
Aha! Thanks, that makes perfect sense. And it does indeed fix it. I knew this toy scheduler wasn't *good*, and my original version did retain references to the waiting fibers, but I was slowly golfing it down to the smallest readable v... nevans (Nicholas Evans)
05:18 AM Bug #18818: Thread waitq does not retain referenced objects, can lead to use after free.
@ko1 I saw this problem because fiber is not retained while waiting, because we have waiting threads but not waiting fibers at VM level IIRC. Probably we need to make mutex/queue mark the wait list correctly? Is there performance issue? ioquatix (Samuel Williams)
05:17 AM Bug #18818: Thread waitq does not retain referenced objects, can lead to use after free.
Unfortunately Mutex, Queue and probably other objects don't take a reference to the waiting fiber, so your fiber is being garbage collected after it's in the wait list. Then some other object is allocated and unblock is called with it (o... ioquatix (Samuel Williams)
06:17 PM Misc #18803: DevMeeting-2022-06-16
* [Feature #18788] Support passing Regexp options as String to Regexp.new (jeremyevans0)
* Do we want to add support for `Regexp.new(code, options)`, where options is a string (e.g. 'im').
* @nobu pointed out it is already possible...
jeremyevans0 (Jeremy Evans)
06:12 PM Revision c85d1cda (git): Fix Module#const_source_location for autoload constants with direct requires
If an autoload exists for a constant, but the path for the autoload
was required, const_source_location would return [false, 0] instead
of the actual file and line. This fixes it by setting the appropriate
file and line in rb_const_set, ...
jeremyevans (Jeremy Evans)
05:47 PM Revision 653e517e (git): Use bindgen to import Ruby constants wherever possible. (#5943)
Constants that can't be imported via bindgen should have
a comment saying why not.
Noah Gibbs
05:38 PM Feature #18183: make SecureRandom.choose public
One option would be to extend `Random::Formatter#alphanumeric` to have an optional "alphabet":
```ruby
def alphanumeric(n=nil, alphabet: ALPHANUMERIC)
n = 16 if n.nil?
choose(alphabet, n)
end
```
austin (Austin Ziegler)
04:45 PM Feature #18183: make SecureRandom.choose public
My bad for not searching the old topics.
In this module, (most of) the method name describes the output, not the procedure, not how to generate the output.
For example:
Method `hex` outputs a hexadecimal number.
Method `uuid` out...
midnight (Sarun R)
05:38 AM Feature #18183: make SecureRandom.choose public
I don't think `SecureRandom.random_string(args, len)` describes the behavior, neither.
Matz.
matz (Yukihiro Matsumoto)
04:01 AM Feature #18183: make SecureRandom.choose public
@matz The OP proposed `random_string`. What do you think about it? mame (Yusuke Endoh)
03:40 AM Feature #18183: make SecureRandom.choose public
My bad. args.sample(random: SecureRandom) is not a replacement for SecureRandom.choose(*args,len).
But still, choose does not describe the behavior.
Matz.
matz (Yukihiro Matsumoto)
03:28 AM Feature #18183 (Rejected): make SecureRandom.choose public
`SecureRandom.choose(*args)` is not intuitive from my POV. Use `args.sample(random: SecureRandom)`.
Matz.
matz (Yukihiro Matsumoto)
05:38 PM Bug #18770 (Open): Inconsistent behavior of IO/StringIO's each methods when called with nil as a separator, limit and chomp: true
jeremyevans0 (Jeremy Evans)
05:38 PM Bug #18768 (Open): Inconsistent behavior of IO, StringIO and String each_line methods when return paragraph and chomp: true passed
jeremyevans0 (Jeremy Evans)
04:59 PM Revision c5475f42 (git): Fix Range#cover? returning true for beginless ranges of different types
Previously `(2..).cover?("2"..)` was false, but
`(..2).cover?(.."2")` was true. This changes it so both are false,
treating beginless ranges the same as endless ranges in regards to
type checks.
This also adds documentation to #cover? ...
jeremyevans (Jeremy Evans)
04:57 PM Revision 7cda7fbb (git): Add Module#undefined_instance_methods
Implements [Feature #12655]
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
jeremyevans (Jeremy Evans)
03:37 PM Revision b737998d (git): [ruby/fileutils] [DOC] Enhanced RDoc for FileUtils (https://github.com/ruby/fileutils/pull/78)
Treats:
::rm
::rm_f
::rm_r
::rm_rf
::remove_entry_secure
https://github.com/ruby/fileutils/commit/ce2a438d75
burdettelamar (Burdette Lamar)
03:07 PM Revision f2f8c0b3 (git): * 2022-06-07 [ci skip]
git[bot]
03:06 PM Revision 6fc16e74 (git): [ruby/open-uri] [DOC] Fix markup for `URI.open`
* Add missing slash.
https://github.com/ruby/open-uri/commit/40023e63da
Alexander Ilyin
12:19 PM Revision 66a9e452 (git): [ruby/rdoc] Use runnable command as DUMMY_PAGER
https://github.com/ruby/rdoc/commit/fec1ab2e41 nobu (Nobuyoshi Nakada)
09:36 AM Revision ba383188 (git): [rubygems/rubygems] Unify loading `Gem::Requirement`
It was being explicitly required from `Gem::Specification` but also a
strange autoload was set for it at `Gem::Version`. The autoload was non
standard because it should've been done in the `Gem` module, not in
`Gem::Specification`, since...
deivid (David Rodríguez)
09:19 AM Revision f4173ff2 (git): debug is the bundled gems, not default gems
hsbt (Hiroshi SHIBATA)
09:13 AM Revision 4bc7cef8 (git): [ruby/cgi] jruby support
https://github.com/ruby/cgi/commit/93326fb622 Pavel Rosický
03:52 AM Revision 5d014bcb (git): Use `sleep 0.5` for tests of GVL instrumentation API
The tests fail randomly on some platforms.
http://rubyci.s3.amazonaws.com/ubuntu/ruby-master/log/20220605T213004Z.fail.html.gz
http://rubyci.s3.amazonaws.com/arch/ruby-master/log/20220605T210003Z.fail.html.gz
```
[15737/21701] TestThrea...
mame (Yusuke Endoh)
03:22 AM Feature #18817 (Rejected): SecureRandom::choose is not being exposed
"choose" is named just for an internal API. We need another good name if we make it public. Continue to discuss in #18183. mame (Yusuke Endoh)
03:00 AM Revision 52678296 (git): Fix a typo [ci skip]
znz (Kazuhiro NISHIYAMA)
02:40 AM Revision 93555e01 (git): * 2022-06-06 [ci skip]
git[bot]
02:30 AM Revision a56a7119 (git): Remove useless assignment always overridden
nobu (Nobuyoshi Nakada)
02:30 AM Revision d8790ecd (git): Export RbConfig::CONFIG["COROUTINE_TYPE"]
THREAD_MODEL is exported already, so this matches that. Exporting this
is simpler than inspecting configure_args and arch and matching that up
with a specific configure.ac.
Fix GH-5976
nevans (Nicholas Evans)
12:41 AM Bug #18790: cannot load such file -- digest (LoadError)
There is a similar issue with Red Hat Enterprise Linux 8. To install `libyaml-devel` package, it needs 'codeready-builder-for-rhel-8-x86_64-rpms' repository enabled. Refer to https://github.com/rbenv/ruby-build/discussions/1976 . yahonda (Yasuo Honda)

06/05/2022

09:39 PM Bug #18818 (Assigned): Thread waitq does not retain referenced objects, can lead to use after free.
The attached script (and/or others like it) can cause SEGV in 3.0, 3.1, and master. It has always behaved as expected when I use `optflags=-O0`.
When I use it with `make run` on `master`:
```
./miniruby -I../lib -I. -I.ext/common ...
nevans (Nicholas Evans)
10:17 AM Feature #18817 (Rejected): SecureRandom::choose is not being exposed
I read through [the doc of `SecureRandom`](https://ruby-doc.org/stdlib-3.1.2/libdoc/securerandom/rdoc/SecureRandom.html) and found that it has the `choose` method.
So, I spin up `irb` for a quick test.
~~~
> ::SecureRandom.choose([*...
midnight (Sarun R)
06:18 AM Revision 5ce0be02 (git): * 2022-06-05 [ci skip]
git[bot]
05:21 AM Revision ed2dd172 (git): Use RBOOL
nobu (Nobuyoshi Nakada)
04:58 AM Feature #18159: Integrate functionality of syntax_suggest gem into Ruby
schneems (Richard Schneeman) wrote in #note-16:
> I am worried about the memory implications for enabling this by default. Is that a valid concern? If we are storing the contents of all files parsed in memory and are loading many files ...
nobu (Nobuyoshi Nakada)
01:17 AM Bug #18816 (Closed): Ractor segfaulting MacOS 12.4 (aarch64 / M1 processor)
Reproduction server:
```
require 'socket'
# Set based on CPU count
CONCURRENCY = 8
server = TCPServer.new(8080)
workers = CONCURRENCY.times.map do
Ractor.new do
loop do
# receive TCPSocket
session = Ract...
brodock (Gabriel Mazetto)

06/04/2022

11:32 AM Revision 5460675b (git): [ruby/rdoc] Use command array form of `IO.popen` always
So that an exception raises by non-existent command, not via shell.
https://github.com/ruby/rdoc/commit/fd94dce69d
nobu (Nobuyoshi Nakada)
07:53 AM Revision 2e6aee6e (git): [ruby/rdoc] Make all documents at the top level `extra_rdoc_files` [ci skip]
https://github.com/ruby/rdoc/commit/6b1a011243 nobu (Nobuyoshi Nakada)
07:42 AM Revision 9a7be959 (git): [ruby/rdoc] Remove `RDoc::RI::Driver#in_path?`
https://github.com/ruby/rdoc/commit/83051403d6 nobu (Nobuyoshi Nakada)
07:42 AM Revision d4c7e4d5 (git): [ruby/rdoc] Enable pager tests
https://github.com/ruby/rdoc/commit/ce63794fde nobu (Nobuyoshi Nakada)
07:42 AM Revision 323acd26 (git): [ruby/rdoc] Stop checking if pager command found
`IO.popen` does that job.
https://github.com/ruby/rdoc/commit/3bbbc5ac84
nobu (Nobuyoshi Nakada)
07:40 AM Revision 76479de1 (git): [ruby/rdoc] Remove never used win32console
https://github.com/ruby/rdoc/commit/47a1aef447 nobu (Nobuyoshi Nakada)
01:58 AM Feature #11689: Add methods allow us to get visibility from Method and UnboundMethod object.
matz (Yukihiro Matsumoto) wrote in #note-24:
> When investigating #18435, I realized the visibility of a method is not an attribute of the method. Instead, each class should have lists of methods for each visibility. Otherwise, we would...
jeremyevans0 (Jeremy Evans)

06/03/2022

08:07 PM Feature #18159: Integrate functionality of syntax_suggest gem into Ruby
Having `SyntaxError#file_path` would be hugely helpful, there are some non-trivial edge cases I have to handle when reading the file name from the message: https://github.com/zombocom/dead_end/blob/main/spec/unit/pathname_from_message_sp... schneems (Richard Schneeman)
03:05 AM Feature #18159: Integrate functionality of syntax_suggest gem into Ruby
The attribute `file_path` has been written at #note-7 and answered at #note-8 already.
The input from STDIN can be got from `SCRIPT_LINES__` hash if it is set.
nobu (Nobuyoshi Nakada)
02:43 AM Feature #18159: Integrate functionality of syntax_suggest gem into Ruby
Is it useful if `SyntaxError` (or `ScriptError`) has an attribute for the failed locations?
`SyntaxError` often contains multiple failures.
Is it useful an attribute for such list?
nobu (Nobuyoshi Nakada)
05:50 PM Revision c19a842e (git): * 2022-06-04 [ci skip]
git[bot]
05:50 PM Revision e4fe3473 (git): Prevent printing crash report in a loop
In the event that we are crashing due to a corrupt Ruby stack, we might
re-enter rb_vm_bugreport() due to failed assertions in
rb_backtrace_print_as_bugreport() or SDR(). In these cases we were
printing the bug report ad infinitum with u...
alanwu (Alan Wu)
04:42 PM Feature #16150: Add a way to request a frozen string from to_s
@matz I don't think so, the request here was for all `to_s` methods, so `Object#to_s`, `Module#to_s`, `Symbol#to_s`, etc.
The semantic being: "I know I won't need to mutate that string, so you can give me your internal representation ...
byroot (Jean Boussier)
06:33 AM Feature #16150: Add a way to request a frozen string from to_s
Probably #18595 addresses this request. Any opinion?
Matz.
matz (Yukihiro Matsumoto)
01:14 PM Feature #18339 (Closed): GVL instrumentation API
Merged as https://github.com/ruby/ruby/commit/9125374726fbf68c05ee7585d4a374ffc5efc5db after several rounds of review with @ko1 byroot (Jean Boussier)
01:13 PM Revision 91253747 (git): [Feature #18339] GVL Instrumentation API
Ref: https://bugs.ruby-lang.org/issues/18339
Design:
- This tries to minimize the overhead when no hook is registered.
It should only incur an extra unsynchronized boolean check.
- The hook list is protected with a read-write lock as...
byroot (Jean Boussier)
11:25 AM Revision d142eff6 (git): [ruby/nkf] Constified invariant tables
https://github.com/ruby/nkf/commit/b386ddc11c nobu (Nobuyoshi Nakada)
07:04 AM Feature #11689: Add methods allow us to get visibility from Method and UnboundMethod object.
When investigating #18435, I realized the visibility of a method is not an attribute of the method. Instead, each class should have lists of methods for each visibility. Otherwise, we would face issues like #18729 and #18751. With this u... matz (Yukihiro Matsumoto)
06:54 AM Bug #18435 (Open): Calling `protected` on ancestor method changes result of `instance_methods(false)`
I thought it was OK to accept this behavior, but it caused issues like #18729 and #18751. At the time of the decision, I haven't noticed those corner cases. Although it has already been shipped with 3.1, I proposed to revert this change.... matz (Yukihiro Matsumoto)
05:35 AM Revision a4721ec6 (git): [DOC] Fix documentation of Numeric#div: Complex does not have #div
kyanagi (Kouhei Yanagita)
05:13 AM Revision 512d8a25 (git): * 2022-06-03 [ci skip]
git[bot]
05:10 AM Revision 1b44fcf2 (git): [DOC] Mention the case to autoload already defined constant
nobu (Nobuyoshi Nakada)
05:09 AM Revision 5342fcb6 (git): [DOC] Subjects of `autoload` are not restricted to modules
nobu (Nobuyoshi Nakada)

06/02/2022

05:17 PM Feature #18815: instance_{eval,exec} vs Proc#>>
zverok (Victor Shepelev) wrote in #note-3:
> @jeremyevans0 I don't think it is a "bug", but maybe a nice feature to have
That makes sense. Switching to feature request.
jeremyevans0 (Jeremy Evans)
04:56 PM Feature #18815: instance_{eval,exec} vs Proc#>>
@jeremyevans0 I don't think it is a "bug", but maybe a nice feature to have (composite procs being a bit smarter than just a really thin syntax sugar over what you could've done manually). The realistic case I have is a constant with def... zverok (Victor Shepelev)
04:00 PM Feature #18815: instance_{eval,exec} vs Proc#>>
This is basically the same as #18067. I don't think it's a bug, because you get the exact same behavior with manual composition (see example in #18067). However, I welcome feedback from other committers. jeremyevans0 (Jeremy Evans)
12:58 PM Feature #18815 (Open): instance_{eval,exec} vs Proc#>>
```ruby
measure = proc { p "self=#{self}"; size }
multiply = proc { '*' * _1 }
'test'.instance_eval(&measure)
# "self=test"
# => 4
'test'.instance_eval(&measure >> multiply)
# "self=main"
# NameError (undefined local variabl...
zverok (Victor Shepelev)
01:35 PM Misc #18803: DevMeeting-2022-06-16
* [Feature #18773] Pass an optional range object to deconstruct
* It can be very expensive to compute the array for matching against deconstruct
* By passing a range object we can quickly dismiss matches that won't work
* This c...
kddnewton (Kevin Newton)
09:35 AM Misc #18803: DevMeeting-2022-06-16
* [Bug #18813] Module#autoload isn't strict about the autoloaded constant (fxn)
* `module M; autoload :OpenSSL, "openssl"; end` works but is inconsistent.
* `M.constants(false) # => [:OpenSSL]`
* `M::OpenSSL # => ::OpenSSL`
*...
byroot (Jean Boussier)
01:23 PM Revision 4eb140b0 (git): [rubygems/rubygems] Remove redundant bitwise AND
https://github.com/rubygems/rubygems/commit/a20bac7924 deivid (David Rodríguez)
01:23 PM Revision eb5a0197 (git): [rubygems/rubygems] Add test cases from SHA1 RFC and improve test failure message
I found that the current test cases did not cover the bitwise AND
performed on modified words after each iteration
(https://github.com/rubygems/rubygems/blob/7e5765a66c9fe5187b167f619f34db5db121f2df/bundler/lib/bundler/digest.rb#L50)
ht...
deivid (David Rodríguez)
11:59 AM Feature #18814: Ractor: add method to query incoming message queue size
For instance in GO it is possible to query the current size of a channel:
``` go
c := make(chan int, 100)
for i := 0; i < 34; i++ {
c <- 0
}
fmt.Println(len(c)) // => 34
```
phigrofi (Philipp Großelfinger)
10:57 AM Feature #18814 (Assigned): Ractor: add method to query incoming message queue size
## Abstract
A simple method to query the current size of a Ractor's incoming queue from outside. Can be used to decide on the sender's side if a message is sent or postponed.
## Background
Ractors have an infinite incoming mess...
phigrofi (Philipp Großelfinger)
11:24 AM Bug #18811: PTY I/O not working on AIX 7.x
Another discovery... sleep *after* the commands makes it work as well:
``` shell
# ./ptytest.rb 'echo foo; sleep 1'
Got line "foo"
Exit status 0
#
```
So apparently, it's when the child process is exiting too soon the problem ari...
hspem (Per-Erik Martin)
10:30 AM Revision 1d924ae4 (git): [rubygems/rubygems] Remove leftover debugging puts
https://github.com/rubygems/rubygems/commit/7c6f15040d deivid (David Rodríguez)
09:31 AM Bug #18813: Let Module#autoload be strict about the autoloaded constant
Changing this from Misc to bug, and I'll add it to the upcoming dev-meeting. byroot (Jean Boussier)
07:05 AM Revision af904338 (git): Typedef built-in function types
nobu (Nobuyoshi Nakada)
06:32 AM Revision b96a3a6f (git): Move `GC.verify_compaction_references` [Bug #18779]
Define `GC.verify_compaction_references` as a built-in ruby method,
according to GC compaction support via `GC::OPTS`.
nobu (Nobuyoshi Nakada)
05:34 AM Revision dfc80607 (git): Adjust indent and nesting [ci skip]
nobu (Nobuyoshi Nakada)
01:29 AM Revision 9108db96 (git): Fix the condition when a new buffer is needed without GMP
nobu (Nobuyoshi Nakada)
01:13 AM Revision f35c5a28 (git): * 2022-06-02 [ci skip]
git[bot]
01:12 AM Revision 689b5ae7 (git): Split YJIT rules for CODEOWNERS
nobu (Nobuyoshi Nakada)

06/01/2022

11:37 PM Bug #18813: Let Module#autoload be strict about the autoloaded constant
I support raising an error when this fails to load the right constant. I think we can add a warning in 3.2 and make it an error in 3.3. ioquatix (Samuel Williams)
11:00 PM Bug #18813: Let Module#autoload be strict about the autoloaded constant
Thanks for opening the ticket @fxn.
I'm in favor of this change, however I believe that a deprecation cycle is preferable.
This behavior is a bit of a cruft, but at the same time it's not really breaking much things, and it's not ...
byroot (Jean Boussier)
10:55 PM Bug #18813 (Closed): Let Module#autoload be strict about the autoloaded constant
## Introduction
Let's consider
```ruby
module M
autoload :X, 'x'
end
```
The constants API does not distinguish existing constants from potential constants:
```ruby
M.constants(false) # => [:X]
M.const_define...
fxn (Xavier Noria)
04:36 PM Bug #18730: Double `return` event handling with different tracepoints
Here's some more information to round out this thread. I was a bit sloppy
in [ruby-core:108449] and the output I posted was misleading. The script
was observing return events from `tp.enable`. Tracing is tricky!
Here is an updated ver...
alanwu (Alan Wu)
02:42 PM Feature #18812 (Closed): Add ability to trace exit locations for YJIT
Currently, when running yjit with `--yjit-stats` you are able to see method call exit reasons and the top 20 most frequent exits. This is useful to know where to spend time investigating whether an exit should be fixed, but in a larger c... eileencodes (Eileen Uchitelle)
02:22 PM Revision 9d18661e (git): Revert incorrect string-guard optimisation. (#5969)
Also add jhawthorn's test to for this bug.
Fix String#to_s invalidation test
Noah Gibbs
10:01 AM Revision 1177665e (git): [rubygems/rubygems] Fix `bundle remove` by invalidating cached `Bundle.defintion`.
Prior to this commit, `bundle add GEM_NAME` updated the lockfile,
but `bundle remove GEM_NAME` left GEM_NAME in the lockfile.
By invalidating the cached `Bundle.definition`, the existing code
handles that without a problem.
https://git...
Ellen Marie Dash
08:07 AM Revision 0a6b9924 (git): [rubygems/rubygems] Fix generated standalone script for default gems
The installer is actually rewriting the spec's full gem path to be the
one of the newly installed gem, however the accessor was not properly
working for `StubSpecification` instances, and default gems are always
of this type, because the...
deivid (David Rodríguez)
08:07 AM Revision f5b88d93 (git): [rubygems/rubygems] Remove code that seems unnecessary
This change was never covered with a spec, and we have recently covered
the case of partially deleted gems with specs and it works fine
(installation is "auto-healed").
https://github.com/rubygems/rubygems/commit/6e66ee4235
deivid (David Rodríguez)
08:06 AM Revision 8381c568 (git): [rubygems/rubygems] Restore ability to load old marshalled gemspec that use `YAML::PrivateType`
This issue was not detected because when all traces of old YAML parser
and emitter `Syck` were removed, this null-type.gemspec.rz marshalled
gemspec was updated to no longer load `YAML::Syck::PrivateType` but load
`Psych::PrivateType` in...
deivid (David Rodríguez)
08:06 AM Revision 89ec3def (git): [rubygems/rubygems] Improve null private type test
This test is making sure that RubyGems is able to load old marshalled
gemspecs that include a field loading `YAML::PrivateType` instances in
the `rubyforge_project` field instead of `nil` due to a bug in old YAML
emitters.
At some point...
deivid (David Rodríguez)
08:06 AM Revision ebb53480 (git): [rubygems/rubygems] Remove no longer needed `Psych::PrivateType` cleanup
This old bug used to affect the `rubyforge_project` field in serialized
gemspecs. However, this field has been removed and it's no longer
present in marshaled loaded gemspecs.
So, while the constant is still present in these marshalled ...
deivid (David Rodríguez)
02:01 AM Misc #18803: DevMeeting-2022-06-16
* [Bug #18806] protected methods defined by refinements can't be called (shugo)
* I prefer "1. Treat defined methods as though they were defined on the refined class. "
* The pull request looks fine: https://github.com/ruby/rub...
shugo (Shugo Maeda)
 

Also available in: Atom