Activity
From 09/08/2023 to 09/14/2023
09/14/2023
-
11:31 PM Feature #19842: Introduce M:N threads
- @tenderlovemaking We can merge this with ko1's convenience. We needed to skip this for preview2 because ko1 said this branch is bit of unstable.
-
11:17 PM Feature #19842: Introduce M:N threads
- Any idea when / if we will merge this? Or, is there anything preventing us to merge?
-
11:15 PM Revision f08cac06 (git): Don't call malloc with 0
- It seems not-uncommon for methods to have no IV, ISE, or ICVARC caches.
Calling malloc with 0 will actually allocate something, so if there
aren't any caches (`ISEQ_IS_SIZE(body) == 0`), then we can avoid
allocating memory by not calling... -
10:49 PM Revision 982d6503 (git): YJIT: Skip Insn::Comment and format! if disasm is disabled (#8441)
- * YJIT: Skip Insn::Comment and format!
if disasm is disabled
Co-authored-by: Alan Wu <alansi.xingwu@shopify.com>
* YJIT: Get rid of asm.comment
---------
Co-authored-by: Alan Wu <alansi.xingwu@shopify.com> -
10:40 PM Revision 0ba6c603 (git): YJIT: Remove UTF-8 BOM [ci skip]
- /yjit/src/backend/x86_64/mod.rs Is also UTF-8 and it doesn't have the
marker. The standard recommends against it, so remove it. -
10:02 PM Revision 07b615bb (git): Skip renaming OpenSSL DLLs
- to fix CI failures like:
https://github.com/ruby/ruby/actions/runs/6190995187/job/16808382442 -
09:18 PM Revision 1961c5bb (git): YJIT: Plug native stack overflow
- Previously, TestStack#test_machine_stack_size failed pretty consistently
on ARM64 macOS, with Rust code and part of the interpreter used for
per-instruction fallback (rb_vm_invokeblock() and friends) touching the
stack guard page and cra... -
07:43 PM Revision 66ffa15c (git): [rubygems/rubygems] Gemfile ruby file: covers more version formats
- Increase test coverage and be explicit about what is and is not supported.
https://github.com/rubygems/rubygems/commit/a096397a00 -
07:16 PM Revision 0d33bc0c (git): [ruby/yarp] Simplify multi-target parsing
- This simplifies how we handle multi-targets, and also fixes a bug we
had where for loops were always getting multi-targets, even when there
was only a single target.
https://github.com/ruby/yarp/commit/31eb8b7ad5 -
07:10 PM Revision 0a8f3670 (git): [ruby/yarp] Introduce MatchWriteNode
- This rarely used node holds information about the local variables
that need to get written in the case a regular expression is used on
the left-hand side of a =~ operator and it has named capture groups.
Note that we already "handled" t... -
07:10 PM Revision 9d2549ac (git): [ruby/yarp] Write names should not underflow size_t
- If the read_name is invalid, we shouldn't try to set a write name.
https://github.com/ruby/yarp/commit/06881c8ca7 -
06:38 PM Bug #19882: :$0x should be rejected
- Don't overlook the colon!
-
06:23 PM Bug #19882: :$0x should be rejected
- I think it is rejected at the moment:
```
-e:1: identifier $0x is not valid to get
-e: compile error (SyntaxError)
``` -
06:13 PM Bug #19882 (Closed): :$0x should be rejected
- ```
irb(main):001> :$0x
=> :"$0x"
```
Since `$0x` is not a valid global variable name, I think it should be rejected unless quotation marks are used. -
06:32 PM Revision 63d1e056 (git): [ruby/yarp] Handle errors when operator writes on a call with a block
- https://github.com/ruby/yarp/commit/93bec2c173
-
06:31 PM Revision fb1328e4 (git): [ruby/yarp] Fix multi target parentheses locations
- https://github.com/ruby/yarp/commit/7f71527522
-
06:31 PM Revision b098c424 (git): [ruby/yarp] Remove deprecated aliases
- https://github.com/ruby/yarp/commit/db28e22363
-
06:30 PM Revision de2fe863 (git): [ruby/yarp] Extract out parse_write_name
- https://github.com/ruby/yarp/commit/0d3e8cdcd7
-
06:30 PM Revision 826bebb7 (git): [ruby/yarp] Reject invalid call-operator-write
- https://github.com/ruby/yarp/commit/d3a852dac2
-
06:28 PM Revision 7f6cf2d2 (git): [ruby/yarp] Use bytes instead of bit fields
- https://github.com/ruby/yarp/commit/890fa72fdd
-
06:28 PM Revision 581bda0c (git): [ruby/yarp] Add a frozen string flag
- https://github.com/ruby/yarp/commit/09248a1f9e
-
06:28 PM Revision 282e4388 (git): [ruby/yarp] Introduce a flag for a static literal check
- https://github.com/ruby/yarp/commit/c61658c0fd
-
06:28 PM Revision 500f38e0 (git): [ruby/yarp] Parse frozen string literal comment
- https://github.com/ruby/yarp/commit/373898e7cb
-
06:28 PM Revision 122f3d64 (git): [ruby/yarp] Move booleans on the parser to the end so they are more compact
- https://github.com/ruby/yarp/commit/21a43034d0
-
06:16 PM Revision 533c4072 (git): [YARP] Fix up alias and true node (#8423)
- * [YARP] Use ALIAS_METHOD as opposed to ALIAS
* [YARP] Use YP_TRUE_NODE instead of YP_NODE_TRUE_NODE -
06:11 PM Bug #19881: Unary operators on calls without parentheses
- My uncertain understanding is that an expression (called "arg" in parse.y) must come after the unary minus. Since `foo 1, 2, 3` is not an expression but a statement (called "command" in parse.y), `- foo 1, 2, 3` is not acceptable.
-
04:46 PM Bug #19881 (Rejected): Unary operators on calls without parentheses
- At the moment it appears that you can't use unary operators when you have a call without parentheses. For example:
``` ruby
- foo 1, 2, 3
```
This seems useful, particularly for methods that perform calculations.
I'm also aski... -
05:55 PM Revision fcc16991 (git): YJIT: Initialize Vec with capacity for iterators (#8439)
-
05:29 PM Bug #19877 (Closed): Non intuitive behavior of syntax only applied to literal value
- Applied in changeset commit:git|e8896a31d48e5797df3878696dcb50aed85b87c2.
----------
[Bug #19877] Literals cannot have singleton methods even in blocks -
04:23 PM Feature #19720: Warning for non-linear Regexps
- I agree with Matz, false positives are worse than no warnings at all. I use atomic groups and positive/negative lookahead/lookbehind all the time. In particular, atomic groups are a great tool to *prevent* ReDoS-susceptible regexps, so t...
-
10:22 AM Feature #19720: Warning for non-linear Regexps
- If "non-linear" means real non-linear, I would not object. But in this case, “non-linear” means the recent memoize optimization cannot be applied. So if we add this warning, we will get a lot of false positives from safe regular expressi...
-
04:09 PM Revision 9cb33aad (git): [Bug #19877] Fix flip-flop in block
-
04:09 PM Revision 864bb868 (git): [Bug #19877] Named captures should take place from regexps in block
-
04:09 PM Revision e8896a31 (git): [Bug #19877] Literals cannot have singleton methods even in blocks
-
04:09 PM Revision 3f492921 (git): Reuse `rb_reg_named_capture_assign_iter_impl`
-
03:11 PM Revision 6df0927b (git): [ruby/yarp] Remove varargs entirely
- Following up on #1483, this removes our usage of varargs entirely.
Under the new approach we make explicit methods for the various
signatures. Because we know the type of everything any it's very
consistent, this makes it easier for comp... -
02:44 PM Bug #9115: Logger traps all exceptions; breaks Timeout
- mame (Yusuke Endoh) wrote in #note-11:
> As a better-than-nothing mitigation, it is proposed to enclose the entire `Logger::LogDevice#write` in `Thread.handle_interrupt(:never) { ... }`.
> ...
This sounds problematic, especially since ... -
01:52 PM Bug #9115: Logger traps all exceptions; breaks Timeout
- Discussed at the dev meeting.
* It is clear that Logger has the intention not to interfere with the execution of the application on a log write failure.
* On the other hand, it is also clear that Logger is not considering about async... -
02:17 PM Feature #19849: Requiring file with autoload results in confusing error if file doesn't exist
- Briefly discussed at the dev meeting.
We understand the problem, but doesn't find a good solution. Since the call line of autoload does not exist in the call stack when the exception occurs, it cannot be displayed as a backtrace.
It ... -
02:10 PM Feature #19850 (Rejected): Get thread creation time
- We discussed this at the dev meeting, and decided not to implement it.
Considering frameworks that implement a thread pool, the time when a Thread object is created is not necessarily useful, but could be rather confusing. It would be... -
08:22 AM Feature #19850: Get thread creation time
- To investigate when you want to investigate what causes a program hang...
## pid2line
https://gist.github.com/nurse/0619b6af90df140508c2
It shows what threads are running or sleeping and where it is as C function name.
In your ca... -
02:10 PM Revision cdc69da9 (git): YJIT: Initialize Assembler vectors with capacity (#8437)
-
02:04 PM Feature #19859: Start & Finish, Begin & End
- I confirmed that, at least, Java, Python, JavaScript, Rust, .NET, PHP, and OCaml are using starts_with/ends_with or similar.
https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/String.html#startsWith(java.lang.String)... -
07:46 AM Feature #19859 (Closed): Start & Finish, Begin & End
- We have picked that pair (inspired by Java). Adding infinite number of variation seems not to be a good idea.
Matz.
-
01:58 PM Revision 1b6d2b91 (git): [ruby/yarp] Fix up unary minus precedence
- https://github.com/ruby/yarp/commit/6be28eeed0
-
01:58 PM Revision 174aa536 (git): [ruby/yarp] Handle concat character literal and string
- https://github.com/ruby/yarp/commit/fb141b8d07
-
01:58 PM Revision 57745450 (git): [ruby/yarp] Extract out heredoc parsing into parse_strings
- https://github.com/ruby/yarp/commit/c5a1094988
-
01:58 PM Revision 72d008d8 (git): [ruby/yarp] Extract out parse_strings
- https://github.com/ruby/yarp/commit/55446f7a43
-
01:52 PM Bug #19867 (Rejected): Unicode line and paragraph separator are not stripped
-
01:48 PM Feature #19839: Need a method to check if two ranges overlap
- https://github.com/nobu/ruby/tree/Range%23overlap_p
-
09:49 AM Feature #19839: Need a method to check if two ranges overlap
- I think the analogue for `range1.overlap?(range2)` in mathematics is `interval1 ∩ interval2 ≠ ∅`, which does not hold when either `interval1` or `interval2` is an empty interval.
Hence, I think that, when either `range1` or `range2` is ... -
08:53 AM Feature #19839: Need a method to check if two ranges overlap
- Although I said “accepted”, we found some corner cases which are not clear (e.g. #note-11). We have to make these cases clear before merging it to the core.
Matz.
-
08:36 AM Feature #19839: Need a method to check if two ranges overlap
- I'm not sure what `(n...n)` means but on AS definition, the following code return true.
```ruby
p (1..2).overlap?(2...2) #=> true
p (2..2).overlap?(2...2) #=> true
p (2...2).overlap?(2...2) #=> true
```
is it intentional?
-
08:17 AM Feature #19839: Need a method to check if two ranges overlap
- Accepted. It must be useful without ActiveSupport.
Matz.
-
01:43 PM Revision b85bb90c (git): [DOC] Sort "Core classes updates" section
- Alphabetically by class or module names.
-
01:39 PM Revision 9a1c5a12 (git): [ruby/yarp] Handle invalid operator write on fcall
- https://github.com/ruby/yarp/commit/22c800eab1
-
01:36 PM Bug #17146: Queue operations are allowed after it is frozen
- I would like to add a point that came up during the dev meeting: if a thread is waiting for `Queue#pop`, and another thread freezes the Queue, what should the first thread do? Wait forever? Raise a FrozenError?
To raise a FrozenError,... -
05:37 AM Bug #17146: Queue operations are allowed after it is frozen
- Since frozen `queue` is meaningless, if you care about consistency, we should prohibit `freeze` queues, like `ENV`.
Matz.
-
12:17 PM Revision c95f3447 (git): [ruby/yarp] get rid of `accept_any_p` and just use regular functions
- https://github.com/ruby/yarp/commit/4512daf769
-
12:17 PM Revision a921d4be (git): [ruby/yarp] don't use varargs for common cases of `match_any_type_p`
- https://github.com/ruby/yarp/commit/79794b4833
-
12:17 PM Revision 99023401 (git): [ruby/yarp] add some `const` qualifiers
- https://github.com/ruby/yarp/commit/e807462c6d
-
09:47 AM Feature #19735: Add support for UUID version 7
- We core committers discussed this issue on DevMeeting, and we accepted it.
Go ahead - 08:37 AM Revision a095740f (git): Fix `io_buffer_get_string` default length computation. (#8427)
- * Fix `io_buffer_get_string` default length computation.
When an offset bigger than the size is given, the resulting length will be
computed incorrectly. Raise an argument error in this case.
* Validate all arguments. -
08:25 AM Feature #19832 (Rejected): Method#destructive?, UnboundMethod#destructive?
- It should be fundamentally covered by the reference document.
Matz.
-
08:02 AM Misc #19860 (Rejected): Update license phrases to SPDX BSD-2-Clause
- A license term is not easy to change.
Also note that Ruby consists from many code which use difference license.
Therefore I think changing license text to match with SPDX is not a good proposal.
-
07:41 AM Bug #19868 (Closed): `Process::Status` methods for compatibility with `Fixnum`
- Applied in changeset commit:git|b6de0a6c69a4857ca4347f65d7c9a5cb6e52c5bd.
----------
[Bug #19868] Suggest other Process::Status method for `&` and `>>`
`Process::Status#&` and `Process::Status#>>` are provided only for
the backward com... -
06:26 AM Revision 998ae7c3 (git): [Bug #19868] Deprecate `Process::Status#&` and `Process::Status#>>`
-
05:57 AM Revision b6de0a6c (git): [Bug #19868] Suggest other Process::Status method for `&` and `>>`
- `Process::Status#&` and `Process::Status#>>` are provided only for
the backward compatibility with older Ruby than 1.8 where `$?` was
a `Fixnum`, and the knowledge about internals of system dependent
macros is necessary to use them. Mod... -
05:47 AM Bug #17354: Module#const_source_location is misleading for constants awaiting autoload
- Currently, it gives the place we called `autoload`. If you want the place where the loaded module defined (after autoload), you can explicitly reference the module before calling `const_source_location`. So I vote for keeping it as it is...
-
05:38 AM Revision efe5e6e8 (git): Negative value to Process::Status method for compatibility
-
05:07 AM Feature #19075 (Closed): Binary searching for the last element
- We reject `bsearch_last`, it's not intuitive (from my POV). If we come up with good name candidates, resubmit the proposal.
Matz.
-
01:09 AM Revision e50fcca9 (git): [ruby/yarp] make some encoding tables `const`
- https://github.com/ruby/yarp/commit/777c376deb
09/13/2023
-
11:42 PM Revision f644996f (git): For YJIT Actions, don't filter test-spec backtraces
- I'm trying to debug a flaky `RuntimeError: nested #it` failure in
ruby/spec. Hopefully the full backtrace will give some clues.
Last occurence:
https://github.com/ruby/ruby/actions/runs/6172578817/job/16753137038 -
09:26 PM Revision 3d453bc6 (git): [ruby/yarp] free strings in the ruby extension
- https://github.com/ruby/yarp/commit/87dbb6cf1f
-
08:44 PM Revision b49be2a7 (git): YJIT: Skip adding past_page_bytes for past pages (#8433)
- YJIT: Skip adding past_pages_bytes for past pages
-
07:16 PM Feature #19832: Method#destructive?, UnboundMethod#destructive?
- IMO this feature wouldn't really add anything new to ractors that I can think of, because ractors already work with either new "moved" objects or deeply frozen objects, which can still have methods called on them inside the ractors. For ...
-
05:37 PM Revision 7f6c0efa (git): Fix hyperlink for Script Encoding
-
05:31 PM Bug #19875: Ruby 3.0 -> 3.1 Performance regression in String#count
- > May you please help me to find the root cause?
A start would be to decompile `rb_str_count` on two versions.
@alanwu guessed that it might be the change from signed to unsigned that is preventing some compilers from auto-vectoriz... -
04:22 PM Bug #19875: Ruby 3.0 -> 3.1 Performance regression in String#count
- Thanks for your feedback, @nobu! It looks like compiler dependent. I used `x86_64-linux`.
May you please help me to find the root cause? (*I'll do my own research, just asking for starting points.* )
-
01:36 AM Bug #19875 (Feedback): Ruby 3.0 -> 3.1 Performance regression in String#count
- It seems compiler dependent.
My results on x86_64-darwin are:
```
$ ruby -I ./benchmark/benchmark-driver/lib/ benchmark/benchmark-driver/exe/benchmark-driver ~/tmp/string_count_benchmark_driver.yml --executables=/opt/local/bin/ruby{... -
03:08 PM Bug #19880 (Closed): Missing write barrier in iseq instruction list
-
03:08 PM Bug #19880 (Closed): Missing write barrier in iseq instruction list
- There's a missing write barrier for operands in the iseq instruction list, which can cause crashes. This bug has been fixed in commit [b3b57f7](https://github.com/ruby/ruby/commit/b3b57f70cc1ee6f40ff10b2abaa51889abce2331).
It can be r... -
02:48 PM Revision ff329ce4 (git): YJIT: Make yjit_alloc_size available by default (#8426)
-
02:45 PM Revision 721d21d3 (git): YJIT: Make compile_time_ns a default counter (#8425)
-
02:37 PM Bug #18257: rb_mRubyVMFrozenCore is broken by GC run
- I don't think this is resolved, at least to the full extent. Trying again with the patch from comment #18257-13 and this is the results:
~~~
$ ./miniruby -v
ruby 3.3.0dev (2023-09-05 master 7c8932365f) [x86_64-linux]
$ ./miniruby -e "1... -
02:30 PM Bug #17354: Module#const_source_location is misleading for constants awaiting autoload
- I said this could be useful for debugging. If a user finds a call to `autoload` on the line pointed to by `const_source_location`, they can guess that autoload is set. If they want to know the actual definition location, they can actuall...
-
12:38 PM Bug #17354: Module#const_source_location is misleading for constants awaiting autoload
- mame (Yusuke Endoh) wrote in #note-16:
> Why do you want to know the location of the autoload call after it is actually loaded?
I do not know. I do not understand in the first place your use case where you want to identify where a co... -
10:44 AM Bug #17354: Module#const_source_location is misleading for constants awaiting autoload
- Why do you want to know the location of the autoload call after it is actually loaded? I guess that information is already gone from the runtime as well.
-
05:55 AM Bug #17354: Module#const_source_location is misleading for constants awaiting autoload
- mame (Yusuke Endoh) wrote in #note-14:
> As I said, you can use it safely in conjunction with `Module.autoload?`.
> ...
What I meant is that, once you are in a location beyond where `A` was called, you cannot reference the call site an... -
05:11 AM Bug #17354: Module#const_source_location is misleading for constants awaiting autoload
- sawa (Tsuyoshi Sawada) wrote in #note-13:
> You cannot safely use `const_source_location` to extract the autoload call site since the return value depends on whether the constant is called or not:
As I said, you can use it safely in ... -
04:07 AM Bug #17354: Module#const_source_location is misleading for constants awaiting autoload
- mame (Yusuke Endoh) wrote in #note-11:
> 2. If we want to identify where a constant is set as autoload, we can use the current `Module#const_source_location`.
> ...
You cannot safely use `const_source_location` to extract the autoload ca... -
01:50 PM Revision 90838a94 (git): [ruby/yarp] Fix associativity for a couple of operators
- https://github.com/ruby/yarp/commit/820774976d
-
01:40 PM Revision f9898b9e (git): [ruby/yarp] Better handle invalid gvar writes
- https://github.com/ruby/yarp/commit/eaaebc17c8
-
12:48 PM Revision ea75a682 (git): [ruby/yarp] Mark empty flags as well as locations and blocks
- https://github.com/ruby/yarp/commit/b74ce35379
-
12:40 PM Bug #19878 (Closed): Math.log is broken for bignum
- Applied in changeset commit:git|411572661a3995a0daacb6c866ea3ac6b52ad25b.
----------
math.c: Fix Math.log against huge bignum [Bug #19878] -
09:59 AM Bug #19878: Math.log is broken for bignum
- Fortunately, this bug was introduced this year on commit:da39936ce165ea9462b9e192eb6b608485c94842 so no need to backport.
-
09:58 AM Bug #19878: Math.log is broken for bignum
- https://github.com/ruby/ruby/pull/8429
-
09:54 AM Bug #19878 (Closed): Math.log is broken for bignum
- ```ruby
p Math.log(2 ** 1020, 10) #=> 307.0505955772608
p Math.log(2 ** 1021, 10) #=> 307.35162557292483
p Math.log(2 ** 1022, 10) #=> 307.6526555685888
p Math.log(2 ** 1023, 10) #=> 688.6994720982339 <- WHAT!?
p Math.log(2 ** 1024,... -
12:40 PM Revision a0e66873 (git): Use log2(b) instead of (log(b) / M_LN2)
- Co-Authored-By: Nobuyoshi Nakada <nobu@ruby-lang.org>
-
12:40 PM Revision 41157266 (git): math.c: Fix Math.log against huge bignum [Bug #19878]
-
12:31 PM Bug #19879 (Third Party's Issue): GC crash during Rails app testing
- ```
/opt/hostedtoolcache/Ruby/3.1.3/x64/lib/libruby.so.3.1(objspace_xmalloc0.cold+0x0) [0x7f07a3fbfa2f]
[0x7f079983999e]
/opt/hostedtoolcache/Ruby/3.1.3/x64/lib/libruby.so.3.1(obj_free+0x632) [0x7f07a4080282]
/opt/hostedtoolcache/Rub... -
10:42 AM Bug #19879 (Third Party's Issue): GC crash during Rails app testing
- In a Github action (using https://github.com/ruby/setup-ruby latest) for a rails app, I am seeing the following error when trying to run the test suite (RSpec). The tests have been running OK for a while, but recently this started happen...
-
09:44 AM Bug #19754: `IO::Buffer#get_string` raises unsuitable exception for too large offset
- It also begs the question whether `NUM2SIZET` should allow negative values..
-
09:44 AM Bug #19754: `IO::Buffer#get_string` raises unsuitable exception for too large offset
- This change isn't sufficient, it just protects against the invalid value of offset. We can backport it, but I don't feel strongly about whether it's required or not.
-
09:22 AM Bug #19877 (Closed): Non intuitive behavior of syntax only applied to literal value
- Non intuitive behavior of syntax only applied to literal value
Some ruby syntax is only applied to literal value.
~~~ruby
def 1.foo; end # receiver is a literal, it is Syntax Error
/(?<a>)/ =~ s # receiver is regexp literal, it wil... -
09:09 AM Bug #9115: Logger traps all exceptions; breaks Timeout
- "defensive" code like that is just broken, no one should `rescue Exception`.
Let's remove that outer `rescue`?
If `synchronize` raises there is a serious bug worth fixing and not ignoring.
Similarly I think the inner `rescue`s shoul... -
09:03 AM Revision 4655d210 (git): Lrama v0.5.6
-
09:00 AM Misc #19772: API naming for YARP compiler
- @mame Thanks for the clarifications, notably about the name.
My impression is if YARP supports multiple Ruby grammar versions then basically everything discussed in this issue is solved (and no need to rename, and only C files of yarp a... -
07:23 AM Revision c75d54a3 (git): Fixup 1851824b1c7b816e41b567b5310bb18ab6f9ff7a
-
07:07 AM Bug #19872: TestRequireLib#test_thread_size test case is unstable
- Have not chance to test it yet, but the change LGTM. Thx!
-
01:43 AM Bug #19872 (Closed): TestRequireLib#test_thread_size test case is unstable
- Applied in changeset commit:git|234722ed9fce33d7ec8152920636af663d527912.
----------
[Bug #19872] Refine TestRequireLib
Always test only the scripts just under “lib", and just under
child directories which has not the same name script ... -
07:01 AM Revision 1851824b (git): [flori/json] alias_method is private on Ruby 2.3 and 2.4
- https://github.com/flori/json/commit/573ef94bc5
-
06:36 AM Feature #19075: Binary searching for the last element
- FYI: Julia has `searchsortedfirst` and `searchsortedlast`
https://docs.julialang.org/en/v1/base/sort/#Base.Sort.searchsortedfirst -
01:23 AM Feature #19075: Binary searching for the last element
- (In the following, searching for the last element will be referred to as "LAST".)
There are often cases where searching for the last element would be useful.
A typical example that immediately comes to mind is as follows:
* When w... -
05:58 AM Feature #19839: Need a method to check if two ranges overlap
- I believe there are a few reasons for this addition. The core one I see often in justifications is precedence in existing Ruby, such as:
**Combinations**
These cases have clear precedent for iterable / enumerable types:
* `Array... -
05:19 AM Feature #19839: Need a method to check if two ranges overlap
- Honestly, I can't give a formal reason. But I do believe it's a very basic operation. For example, postgres and boost provide such functionality.
- https://www.postgresql.org/docs/15/functions-range.html
- https://www.boost.org/doc/l... -
03:11 AM Revision e22086bb (git): Enable `.NOTPARALLEL` on `ripper_srcs`
- And add special treats only for old GNU make.
-
03:08 AM Misc #19858: DevMeeting-2023-09-14
- * [Bug #17146] Queue operations are allowed after it is frozen (jeremyevans0)
* Last discussed at October 2020 developer meeting, no decision made.
* @headius and I discussed this at RubyKaigi and agreed it would be best to raise F... -
01:43 AM Revision 234722ed (git): [Bug #19872] Refine TestRequireLib
- Always test only the scripts just under “lib", and just under
child directories which has not the same name script in the upper
level; instead of random sampling from whole libraries. -
01:24 AM Revision 435b2439 (git): Suppress an unused variable warning
-
12:59 AM Bug #19876 (Closed): Equality chaining
- Okay. I will make this behavior match.
-
12:55 AM Bug #19876: Equality chaining
- I think it is by design. They are marked as `%nonassoc` in parse.y.
https://github.com/ruby/ruby/blob/6e64d4370456190541705ec4c6cf3af6bf4ac647/parse.y#L1698
```
%nonassoc tCMP tEQ tEQQ tNEQ tMATCH tNMATCH
``` -
12:46 AM Bug #19876 (Closed): Equality chaining
- It appears that you cannot chain `==`, `!=`, `<=>`, `=~`, `!~`, `===`:
``` ruby
foo == bar == baz
```
but you can chain all of the other operators:
``` ruby
1 << 2 << 3
```
I'm not sure if I've missed some. I would just l... -
12:55 AM Revision c421f08f (git): [ruby/yarp] Handle parsing local variable singleton method definition
- https://github.com/ruby/yarp/commit/943204d56f
09/12/2023
-
11:30 PM Bug #19862 (Closed): argument stack underflow compile error happens for the combination of and/or & one line pattern matching
- Applied in changeset commit:git|6e64d4370456190541705ec4c6cf3af6bf4ac647.
----------
[Bug #19862] Skip compiled result of never reachable expression -
11:30 PM Revision 6e64d437 (git): [Bug #19862] Skip compiled result of never reachable expression
-
11:28 PM Bug #19861 (Closed): Ripper does not fire any error event on unfinished heredoc
-
09:45 PM Bug #19754 (Closed): `IO::Buffer#get_string` raises unsuitable exception for too large offset
- Applied in changeset commit:git|19346c2336053b351673da030b00c704138252d8.
----------
[Bug #19754] Make `IO::Buffer#get_string` check `offset` range (#8016) -
05:27 AM Bug #19754 (Assigned): `IO::Buffer#get_string` raises unsuitable exception for too large offset
-
09:45 PM Revision 19346c23 (git): [Bug #19754] Make `IO::Buffer#get_string` check `offset` range (#8016)
-
09:32 PM Feature #19737 (Rejected): Add `IO::Buffer#cat` for concat `IO::Buffer` instances
- It's probably not obvious given how existing Ruby code traditionally works, but in the above code, `a` and `b` are zero copy (which is ideal).
```
irb(main):001> data = "foo"
=> "foo"
irb(main):002> IO::Buffer.for(data)
=>
#<IO:... -
08:51 PM Misc #19772: API naming for YARP compiler
- I would add that if the yarp gem had straight multi-version support like the parser gem, such a mechanism is not even needed.
-
08:37 PM Misc #19772: API naming for YARP compiler
- Hi @kddnewton
kddnewton (Kevin Newton) wrote in #note-22:
> From this thread and others, this is my understanding of the requirements:
> ...
There may be a communication error. More precisely,
* The `YARP` name is not good as a built-i... -
08:33 PM Revision 11c32e33 (git): Adjust CGI spec to pass when ran in isolation
- It failed with `NameError` because `Html3` is defined in the file that
`CGI::HtmlExtension` autoloads. -
08:31 PM Revision 5edabd1c (git): [DOC] RDoc for Process::Status (#8416)
-
07:42 PM Revision d43765c3 (git): [rubygems/rubygems] Unify LockfileParser loading of SPECS section
- Ensure unrecognized SPECS types are ignored
https://github.com/rubygems/rubygems/commit/5b33e91075 -
05:52 PM Revision 0ae7f2d1 (git): YJIT: Add compilation time counter (#8417)
- * YJIT: Add compilation time counter
* YJIT: Use Instant instead -
03:44 PM Revision a98209b8 (git): [ruby/yarp] Split AliasNode
- Into AliasGlobalVariableNode and AliasMethodNode. These have different
enough semantics that we feel comfortable splitting them up.
https://github.com/ruby/yarp/commit/c1f3e6d344 -
03:25 PM Feature #19777 (Closed): Make `Kernel#lambda` raise when called without a literal block
- Applied in changeset commit:git|39ee3e22bd3d071c1c283b6b8dbd1af413342fb1.
----------
Make Kernel#lambda raise when given non-literal block
Previously, Kernel#lambda returned a non-lambda proc when given a
non-literal block and issued a... -
03:25 PM Revision 39ee3e22 (git): Make Kernel#lambda raise when given non-literal block
- Previously, Kernel#lambda returned a non-lambda proc when given a
non-literal block and issued a warning under the `:deprecated` category.
With this change, Kernel#lambda will always return a lambda proc, if it
returns without raising.
... -
03:20 PM Revision b90272b3 (git): Fix typo in gc.c
-
02:28 PM Revision 385033ba (git): Ensure signaled processes at opening FIFO terminated
-
02:18 PM Bug #19875 (Open): Ruby 3.0 -> 3.1 Performance regression in String#count
- `String#count` became slower since Ruby 3.1. Originally found by `@Freaky`: https://github.com/ruby/ruby/pull/4001#issuecomment-1714779781
Compared using the [`benchmark-driver` gem](https://github.com/benchmark-driver/benchmark-drive... -
01:39 PM Revision 39336c1a (git): [ruby/yarp] Heredocs can create Interpolated(X)StringNodes or
- (X)StringNodes
(https://github.com/ruby/yarp/pull/1427)
Prior to this commit, heredocs were automatically InterpolatedNodes
regardless of whether there was actually interpolation. With this
commit, heredocs are only interpolate if there... -
01:27 PM Feature #19874 (Closed): Re-introduce heap sort by pinned count prior to GC compaction
- See Github PR: [#8420](https://github.com/ruby/ruby/pull/8420)
<hr />
## Introduction
In Ruby 2.7 compaction was originally introduced as an experimental feature.
There was no auto-compaction, and compaction had to be manually ... -
01:11 PM Feature #19790: Optionally write Ruby crash reports into a file rather than STDERR
- I've backported @nobu's branch on our 3.2 rubies and it's been working very well. Not too sure what is missing.
-
01:02 PM Revision b5578557 (git): Restore `in_defined` flag at nested `defined?`
-
12:11 PM Revision fe3eff08 (git): [ruby/yarp] Move the post required parameters after the rest parameter
- * See https://github.com/ruby/yarp/issues/1436
https://github.com/ruby/yarp/commit/6f4e9ff940 -
11:51 AM Feature #19871 (Rejected): Add __owner__
-
09:55 AM Feature #19871: Add __owner__
- mame (Yusuke Endoh) wrote in #note-2:
> Could you explain the use case?
It's supposed to make sure a general-use module can be implemented purely and can't be tainted by any of its inheritors, unless it's deliberately patched of cour... -
09:47 AM Feature #19871: Add __owner__
- nobu (Nobuyoshi Nakada) wrote in #note-3:
> Why not use the constant without scopes?
> ...
I was expecting the lookup to still be affected by the inheriting class. I should have tested it first.
I guess this invalidates the feature... -
06:59 AM Feature #19871: Add __owner__
- Why not use the constant without scopes?
```ruby
module M
C = 1234
def m
puts "C: #{C}" #=> C: 1234
end
end
``` -
06:54 AM Feature #19871: Add __owner__
- Could you explain the use case?
-
09:31 AM Feature #19839 (Open): Need a method to check if two ranges overlap
- Thanks. Basically, we didn't add new methods from ActiveSupport without performance reason.
Can you describe why we should add `overlap?` to ruby core? -
08:54 AM Feature #19839: Need a method to check if two ranges overlap
- Though ActiveSupport's `overlaps?` method is enough for our use-case. I think the feature is so fundamental that it should be supported by the standard library.
Slightly off-topic: It might be better to add a method that returns the o... -
07:53 AM Feature #19839 (Feedback): Need a method to check if two ranges overlap
- ActiveSupport already have `overlaps?` method.
* https://api.rubyonrails.org/classes/Range.html#method-i-overlaps-3F
* https://github.com/rails/rails/blob/main/activesupport/lib/active_support/core_ext/range/overlap.rb#L7
Is it en... -
09:08 AM Bug #19844 (Feedback): Ruby 3.2 fails to build with openssl version 3
- I'm not sure why you use local installation of OpenSSL 3. I recommend to use libssl provided by Ubuntu 22.04.
-
08:04 AM Bug #19794 (Assigned): Ruby 3.2.2 fails to build on macOS Sonoma betas
- We should avoid to non-existence directory for fresh install of macOS.
@nobu Can you investigate this? -
06:51 AM Bug #19872: TestRequireLib#test_thread_size test case is unstable
- Maybe this is becaue the test of `TestRequireLib` does sampling: https://github.com/ruby/ruby/blob/f1c78b23313e63eb31a213cc7277b1eb206a581b/test/ruby/test_require_lib.rb#L13
@znz Should we fix the random seed at least? @nobu says that... -
06:10 AM Revision f1c78b23 (git): Suppress warning for shadowing outer local variable
-
05:23 AM Misc #19858: DevMeeting-2023-09-14
- * [Bug #19868] `Process::Status` methods for compatibility with `Fixnum` (nobu)
* Looking at commit:54274b8c65a0981f1c69055a1513ba3c614dd675, noticed that `pst_rshift` contains shift by a negative integer, an unspecified behavior in C9... -
04:40 AM Feature #19075: Binary searching for the last element
- I think the workaround is good enough. Do you have a good use case to introduce this?
The proposed behavior is not something that can simply be called "last".
The traditional behavior requires a given block to return `false` for elem... -
03:58 AM Bug #19873 (Closed): Thread#native_thread_id is incorrectly cached across fork on Linux
- On Linux, when a process forks, the native thread ID of the (only) thread in the forked child should change.
```
>> libc = Fiddle.dlopen(nil)
=> #<Fiddle::Handle:0x0000ffffb0d8e900>
> ...
=>
#<Fiddle::Function:0x0000ffffb15d1130
...
09/11/2023
-
09:49 PM Revision 8953fc77 (git): [ruby/yarp] Provide a flag for the integer base
- https://github.com/ruby/yarp/commit/45dd046b83
-
09:42 PM Revision b7ffa74d (git): [ruby/yarp] Introduce MatchLastLineNode and InterpolatedMatchLastLineNode
- These are replacements for regular expressions when they are used
alone as the predicate of a conditional. That's because they are
significantly different from a regular expression because they are
not evaluated for truthyness, but inste... -
09:40 PM Revision aa69bd84 (git): Use constant lookup for constant names
-
09:40 PM Revision bfc82fe1 (git): Remove deprecated aliases from yarp compiler
-
09:32 PM Revision 14a83e08 (git): [ruby/yarp] Update pretty_print to use inspect
- https://github.com/ruby/yarp/commit/c2b9b780c7
- 09:06 PM Revision 203fdd73 (git): [rubygems/rubygems] Fixed include realpath in error statement
- https://github.com/rubygems/rubygems/commit/ac3b85bd5e
- 09:06 PM Revision 8bb61077 (git): [rubygems/rubygems] Fixed false positive SymlinkError in symbolic link directory
- https://github.com/rubygems/rubygems/commit/58173ff2ea
-
05:09 PM Revision 1ae5dd6f (git): Rename `NODE_NEW_TEMPORAL` as `NODE_NEW_INTERNAL`
-
04:18 PM Revision 719f8344 (git): [ruby/yarp] Mark flags as private
- The flags integer is an implementation detail. We want people to
use the query methods to access the individual fields so we are
freed from having to maintain a specific order. As such, this
commit changes the Ruby API to mark all flags ... - 03:25 PM Revision 05a853c2 (git): [ruby/yarp] Update fixtures
- https://github.com/ruby/yarp/commit/884f2ca8e4
- 03:25 PM Revision 5a8767ed (git): [ruby/yarp] Fix order of Regexp flags
- https://github.com/ruby/yarp/commit/e421305ea2
- 03:25 PM Revision 689dffc8 (git): [ruby/yarp] Add failing test for Regexp flags
- https://github.com/ruby/yarp/commit/16fe179c5f
-
02:09 PM Bug #19872: TestRequireLib#test_thread_size test case is unstable
- vo.x (Vit Ondruch) wrote in #note-1:
> Or is it issue of the respective libraries, which does not support proper loading of nested files, without loading their dependencies first?
Randomly looking at lib/reline/history.rb, maybe the ... -
02:07 PM Bug #19872: TestRequireLib#test_thread_size test case is unstable
- Maybe predefining some well know namespaces could help? Or is it issue of the respective libraries, which does not support proper loading of nested files, without loading their dependencies first?
-
02:05 PM Bug #19872 (Closed): TestRequireLib#test_thread_size test case is unstable
- Just exploring the difference in skipped test cases, it seems to be due to `TestRequireLib#test_thread_size`. One test run might look like:
~~~
84) Skipped:
TestRequireLib#test_thread_size:/builddir/build/BUILD/ruby-3.3.0-7c8932365... -
03:23 AM Revision b1f0d009 (git): Use the keyword for output and omit default arguments [ci skip]
-
02:06 AM Revision 05046b89 (git): Add `modencs` target to build encodings/transcoders as modules
-
02:04 AM Revision 2cc32ad6 (git): Split commit recipe and pass more macros
09/10/2023
-
03:03 PM Feature #19871: Add __owner__
- The changes needed to implement this turned out to be just simple so I went ahead and just created a PR in https://github.com/ruby/ruby/pull/8411.
The difference between using `method(__method__).owner` and using `__owner__` can be de... -
07:58 AM Feature #19871 (Rejected): Add __owner__
- Which will give the owner of the currently executing method.
`method(__method__).owner` or `method(__callee__).owner` isn't enough since it may return a different owner if the method is overridden.
Relying on calling the name of it... -
12:56 PM Misc #19870 (Feedback): Why is a long-run thread allocated more memory than a short-run one?
- 1048936 - 360 = 1048576 = 0x100000
A terminated thread no longer keeps its stack area.
-
05:56 AM Misc #19870 (Feedback): Why is a long-run thread allocated more memory than a short-run one?
- I want to write multithreading programing in Ruby but I found the following memory consumptions.
```
$ irb
irb(main):001> require 'objspace'
=> true
irb(main):002> t1 = Thread.new {}
=> #<Thread:0x00007f9237a74b28 (irb):2 run>
i... -
12:37 PM Revision b8d0ab80 (git): Declare `k_class` and `k_module` as `ctxt`
- So that it is not ncessary to specify the type each time.
-
10:46 AM Revision 16882d4e (git): Add a new line between function definitions [ci skip]
-
10:45 AM Revision b5914a72 (git): Refactor to use same logic with other assignment nodes
-
10:39 AM Revision 0e49f817 (git): [DOC] Fix method docs of scheduler#io_read and scheduler#io_write
- Each of Fiber::Scheduler#io_read and io_write takes the "offset" as the fourth argument, which is not doucmented.
-
10:33 AM Revision b926ac51 (git): [DOC] Fix a typo in "Open Options" section of IO
- The word "and" was missing.
-
10:20 AM Revision f2102e40 (git): Set ripper_init.c.tmpl to C mode [ci skip]
09/09/2023
-
02:02 PM Feature #19842: Introduce M:N threads
- `Ractor.shareable` is a C function that doesn't call back into the interpreter under usual circumstances, so won't be pre-empted. It could be re-written in Ruby to avoid this sort of issue, ie where large object graphs are traversed with...
-
10:33 AM Bug #19788: Ripper returns a symbol instead of a token as operator for "::"
- ruby_3_2 bb877e5b4fe81965af60a0d86daeb8ed477e8e87 merged revision(s) 382678d4112f4afc6272244c22924d2b004274b1.
-
10:33 AM Revision bb877e5b (git): merge revision(s) 382678d4112f4afc6272244c22924d2b004274b1: [Backport #19788]
- [Bug #19788] Use the result of `tCOLON2` event
---
parse.y | 16 ++++++++--------
test/ripper/test_parser_events.rb | 17 +++++++++++++++++
test/ripper/test_scanner_events.rb ... -
09:52 AM Bug #19837: Concurrent calls to Process.waitpid2 misbehave on Ruby 3.1 & 3.2
- Merged into ruby_3_2 branch at 0b7a4fbaa9c56d2c67d00d86c69f9e5c71803267.
Thank you! -
09:51 AM Bug #19387 (Closed): ObjectSpace.each_objects only returns shareable objects after starting a Ractor - Applied in changeset commit:git|0b7a4fbaa9c56d2c67d00d86c69f9e5c71803267.
----------
Allow waitpid(-1) to be woken if a waitpid(pid) call is pending
If two threads are running, with one calling waitpid(-1), and another
calling waitpid(... - 09:51 AM Revision 0b7a4fba (git): Allow waitpid(-1) to be woken if a waitpid(pid) call is pending
- If two threads are running, with one calling waitpid(-1), and another
calling waitpid($some_pid), and then $some_other_pid exits, we would
expect the waitpid(-1) call to retrieve that exit status; however, it
cannot actually do so until ...
09/08/2023
- 11:08 PM Revision b635a66e (git): [DOC] Update Reline and IRB's maintainers list (#8406)
- Update Reline and IRB's maintainers list
Maintainers' order follows the same order they appear in the projects'
contributors list as of the time this commit is made. - 10:30 PM Revision 90dad2b1 (git): memory_view: Avoid using bit field
- Bit field's memory layout is implementation-defined.
See also:
https://wiki.sei.cmu.edu/confluence/display/c/EXP11-C.+Do+not+make+assumptions+regarding+the+layout+of+structures+with+bit-fields
If memory layout is implementation-defined... -
08:33 PM Revision d9ede181 (git): [YARP] Extract YP_COMPILE helper (#8403)
- 07:52 PM Revision 1f35789f (git): Update default gems list at f4443f3b1c6dd70b6b22470a7d5f87 [ci skip]
-
07:50 PM Revision f4443f3b (git): [ruby/yarp] Increment version
- https://github.com/ruby/yarp/commit/2b41ceb754
-
07:38 PM Revision c0f162ca (git): [ruby/yarp] Template out a comment_targets method
- https://github.com/ruby/yarp/commit/a94af7c4c8
-
07:38 PM Revision 5d73c0f3 (git): [ruby/yarp] Move parse result mutations into their own files
- https://github.com/ruby/yarp/commit/3be8272fa2
-
07:33 PM Revision 7fc4db35 (git): [YARP] Implement compilation for RationalNodes, fix other num types (#8404)
- 06:10 PM Revision 6050b5a4 (git): [ruby/yarp] Add ParseResult#attach_comments! to tie comments to their locations
- https://github.com/ruby/yarp/commit/ddc699156f
Co-authored-by: Kevin Newton <kddnewton@users.noreply.github.com> -
04:45 PM Revision 7f53da94 (git): Fix weak_references count test
- This test creates a lot of Objects held in an array, and a set of weak
references to them using WeakMap. It then clears the array and frees it
and asserts that all the weak references to it are also gone.
This test is failing because on... -
04:33 PM Revision 60ef156b (git): [DOC] Kernel#{proc,lambda} don't issue warnings anymore
- They've been raising since 3.0.0.
-
04:09 PM Revision af5df9ee (git): [YARP] Implement compilation for Regex / InterpolatedRegex (#8396)
-
03:37 PM Bug #19869: Mark skipped test somehow
- Ok, adding `TESTS="--show-skip"` makes the difference. Such tests are reported at the end of the run of test suite, e.g.:
~~~
70) Skipped:
TestGemExtCmakeBuilder#test_self_build_fail [/builddir/build/BUILD/ruby-3.3.0-7c8932365f/tes... -
03:01 PM Bug #19869 (Open): Mark skipped test somehow
- When Minitest was used to execute the Ruby test suite, skipped test were cleanly marked, e.g.:
~~~
[14036/25715] TestGemExtCmakeBuilder#test_self_build_has_makefile = s
~~~
However, with the test-unit the output is:
~~~
[1403... -
02:40 PM Revision 8807b0dc (git): [YARP] Implement compilation for InterpolatedXStringNode (#8395)
- * [YARP] Implemented compilation for InterpolatedXStringNode
* Extract common function for interpolated nodes -
01:40 PM Revision c7d61181 (git): [ruby/yarp] Flatten multitarget into multiwrite
- https://github.com/ruby/yarp/commit/1021dac372
-
01:40 PM Revision f39b576e (git): [ruby/yarp] Multi target nodes
- https://github.com/ruby/yarp/commit/fa53fe88e4
- 08:44 AM Revision be21a056 (git): Try default `gcc` 9.4.0 to see if it exhibits the same compiler bugs. (#8394)
- * Revert "Extract `do_mutex_lock_check_interrupts` to try and fix `ppc64le`. (#8393)"
This reverts commit 5184b40dd4dc446660cd35c3e53896324e95b317.
* .travis.yml: Try default gcc 9.4.0 instead of gcc-10 in ppc64le and s390x.
Use gcc 9... - 03:26 AM Revision 15fd8976 (git): Bump actions/cache from 3.3.1 to 3.3.2
- Bumps [actions/cache](https://github.com/actions/cache) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.co... -
03:22 AM Revision b6df6f91 (git): Continue even if addr or rnglists headers not found
- Fix up commit 31d1226, "Avoid aborting inside addr2line.c".
Source code informations did not appear in C level backtrace since
that change. - 03:15 AM Revision 78233e83 (git): Add `String#getbyte` YJIT implementation (#8397)
- * Add getbyte JIT implementation
Adds an implementation for String#getbyte for YJIT, along with a
bootstrap test. This should be helpful for pure Ruby implementations
and to avoid unneeded allocations.
Co-authored-by: John Hawthorn <jh... -
03:15 AM Revision 89edce43 (git): YJIT: Decrease IVAR_MAX_DEPTH to 8 (#8398)