Misc #20193
closed
Added by mame (Yusuke Endoh) 10 months ago.
Updated 9 months ago.
Description
The next dev meeting¶
Date: 2024/02/14 13:00-17:00 (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/2024/DevMeeting-2024-02-14.md
- Dev meeting IS NOT a decision-making place. All decisions should be done at the bug tracker.
- Dev meeting is a place we can ask Matz, nobu, nurse and other developers directly.
- Matz is a very busy person. Take this opportunity to ask him. If you can not attend, other attendees can ask instead of you (if attendees can understand your issue).
- We will write a record of the discussion in the file or to each ticket in English.
- All activities are best-effort (keep in mind that most of us are volunteer developers).
- The date, time and place of the meeting are scheduled according to when/where we can reserve Matz's time.
-
DO NOT discuss then on this ticket, please.
Call for agenda items¶
If you have a ticket that you want matz and committers to discuss, please post it into this ticket in the following format:
* [Ticket ref] Ticket title (your name)
* Comment (A summary of the ticket, why you put this ticket here, what point should be discussed, etc.)
Example:
* [Feature #14609] `Kernel#p` without args shows the receiver (ko1)
* I feel this feature is very useful and some people say :+1: so let discuss this feature.
- It is recommended to add a comment by 2024/02/11. We hold a preparatory meeting to create an agenda a few days before the dev-meeting.
- The format is strict. We'll use this script to automatically create an markdown-style agenda. We may ignore a comment that does not follow the format.
- Your comment is mandatory. We cannot read all discussion of the ticket in a limited time. We appreciate it if you could write a short summary and update from a previous discussion.
Related issues
1 (1 open — 0 closed)
- [Feature #16495] Inconsistent quotes in error messages (mame)
- Implemented a prototype.
- Error message:
undefined method `foo'
-> undefined method 'foo'
- Backtrace:
from test.rb:2:in `foo'
-> from test.rb:2:in 'foo'
- It caused 140 test failures in make test-all. Do we want to go forward?
- [Feature #19117] Include the method owner in backtraces, not just the method name (mame)
- Implemented a prototype.
-
from test.rb:2:in `instance_meth'
-> from test.rb:2:in `Foo#instance_meth'
-
from test.rb:2:in `class_meth'
-> from test.rb:2:in `Foo.class_meth'
-
from test.rb:2:in `singleton_meth'
-> from test.rb:2:in `singleton_meth'
- It caused 8 test failures in make test-all. Do we want to go forward?
- [Bug #20188]
Module#const_source_location
returns wrong information when real constant was defined but autoload is still ongoing (byroot)
-
const_source_location
continues to return the autoload
location even after the constant was defined.
- It only start returning the constant location once the
autoload
has completed.
- There is debate whether this should be considered a bug or a feature request.
- Patch: https://github.com/ruby/ruby/pull/9549
- [Feature #20080] Introduce #bounds method on Range (stuyam)
-
#bounds
method on range to return raw bound data about the range [ first, last, exclude_end? ]
- Easy array deconstruction for setting first and last as variables from a range.
first, last = (1..10).bounds #=> [1, 10, false]
- Easy serialization and rehydration of ranges.
array = (1...10).bounds #=> [1, 10, true]
Range.new(*array)
- [Bug #20203]
TestEnumerable
test failures with GCC 14
- Using
qsort_r
to sort causes corruption when the comparison function is reentered using continuation/fiber and when using GC compaction due to undefined behavior
- Should we stop using
qsort_r
for correctness?
- [Feature #20108] Introduction of Happy Eyeballs Version 2 (RFC8305) in Socket.tcp
- Fixed the points raised at the last DevMeeting and in the comments.
- When an IP address is specified as an argument, or when the host is single-stack, name resolution is now performed on the main thread.
-
fast_fallback
option is added.
- [Misc #20238] Use prism for mk_builtin_loader.rb (kddnewton)
- I would like to propose that we use prism for mk_builtin_loader.rb.
- This would allow us to use the latest Ruby syntax in builtin classes, as opposed to the base Ruby version.
- [Feature #20205] Enable
frozen_string_literal
by default (byroot)
- A proposed migration plan for allowing to enable
frozen_string_literal
by default in the future.
- Introduce "chilled strings", they behave like frozen strings, but on mutation they emit a deprecation warning and become regular mutable strings again.
- Implemented as a USER_FLAG on RString, proof of concept at https://github.com/Shopify/ruby/pull/549.
- The warning can include the location of the mutation and/or the location of the string allocation. The later is a bit more costly.
-
--disable-frozen-string-literal
remains forever as a way to keep running older code that can't be updated.
-
# frozen_string_literal: false
remains forever as a very minimal and cheap way to make older code compatible.
- [Bug #20218] aset/masgn/op_asgn with keyword arguments (jeremyevans0)
- Do we want to make it a syntax error to pass keyword arguments in these cases?
- There was already a desire to make passing blocks in these cases a syntax error (see #19918)?
- If keyword arguments should be allowed, should we treat keywords as keywords or as positional arguments (currently: aset treats as positional, op_asgn treats as keywords)?
- [Bug #20229] Empty keyword splat in array not removed in ARGSPUSH case (jeremyevans0)
- Is it OK to fix this as part of an optimization that adds pushtoarraykwsplat instruction?
- [Misc #20242]
--parser=prism_without_warning
(kddnewton)
- Could we add
--parser=prism_without_warning
? It hard to run the tests/specs that test against the output of stderr.
- This would do the exact same thing as --parser=prism it just wouldn't warn.
- [Feature #20210] Invalid source encoding raises ArgumentError, not SyntaxError (kddnewton)
- Could we make it raise a syntax error?
- [Feature #20257] Rearchitect Ripper
- I want to have a chance to explain new Ripper's architecture.
- In short, Ripper uses semantic value stack to manage Ruby Object returned by Ripper callback methods then Ripper can't execute semantic analysis which needs AST Node. New architecture enables it by adding another stack to Ripper parser with Lrama's update.
- [Misc #20260] ISEQ flag for prism compiler (kddnewton)
- Would it be alright to add a flag to iseqs to say it came from the prism compiler? We need this to support error highlight.
- [Bug #20225] Inconsistent behavior of regex matching for a regex has a null loop (makenowjust)
- Onigmo has strange behavior for null (empty) loops with captures.
- Null-loop check depends on capture status.
- This behavior causes some bugs and prevents memoization (cache) optimization.
- I would like to fix null-loop check to capture-free.
- This behavior is not common;
Python and JavaScript uses capture-free null-loop check.
- It is hard to implement capture-aware null-loop check correctly and impossible to provide efficient implementation.
- e.g.
ruby -e '(1..10).each { |n| /((?=(\3a|a))(?=(\2a|a))){#{n}}/ =~ "aaaa"; p $~ }'
- This example shows capture status changes oscillationally.
- [Feature #20249] Introduce a backtrace-only mode for rb_bug() (osyoyu)
- The current crash report printed by rb_bug() is extremely long
- Terminals get quickly cluttered when developing C exts or CRuby itself
- Introduce a switch that limits output to Ruby-level/C-level backtraces only
- The backtraces are the most (or the only) helpful part when debugging
- Running with env var
RUBY_CRASH_REPORT_MODE=minimal
or configuring Ruby with RUBY_DEBUG
shall change behavior
[Feature #20187] Bundled gems at Ruby 3.4
- Should we test bundled gems at
make check
?
- Description updated (diff)
- Status changed from Open to Closed
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0