Misc #19525
closed
Added by mame (Yusuke Endoh) over 1 year ago.
Updated over 1 year ago.
Description
The next dev meeting¶
Date: 2023/04/13 13:00-17:00 (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/2023/DevMeeting-2023-04-11.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 2023/04/10. 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)
- [Bug #19551] Backport commits for CI failures
- Can I merge PR like "Fix CI failure" for stable branches myself from April 2023?
- [Feature #18885] End of boot advisory API (byroot)
- I'm about to merge the first optimizations, are we still ok with
Process.warmup
as a name?
- [Feature #19561] ObjectSpace::WeakMap#delete and ObjectSpace::WeakKeyMap#delete (byroot)
- When used as a weak set, it can be convenient to eagerly delete some keys.
- [Feature #19538] Performance warnings (byroot and eregon)
- Disabled by default, enabled with
-W:performance
.
- Would allow the VM or YJIT to indicate when it has to deoptimize because of some construct.
- For example: transitioning to
SHAPE_TOO_COMPLEX
, mega-morphic call sites, etc.
- [Feature #19528]
JSON.load
enabling create_additions: true
by default is surprising and lead to security vulnerabilities (byroot)
-
JSON.load
is the natural method to reach to as "load/dump" is the standard Ruby interface (Marshal.load
, YAML.load
, etc).
- Various linters have to ben
load
and recommend to use parse
instead.
- I think json 2.x should warn when this feature is implicitly enabled, and json 3.x should disable it by default.
- This has led to multiple CVE in the past.
- [Feature #19560]
IO#close_on_fork=
and IO#close_on_fork?
(byroot)
-
O_CLOFORK
was added to the POSIX spec in 2020, and some system (not Linux) supports it.
- Ruby could emulate it.
- Such feature would make it much easier to write fork-safe network clients.
- [Feature #19571] Add REMEMBERED_WB_UNPROTECTED_OBJECTS_LIMIT_RATIO to the GC (peterzhu2118)
- We tested on production traffic on Shopify's Storefront Renderer.
- We saw a significant improvement in GC time (0.67x on average and 0.49x for p99) and response time (0.96x on average and 0.86x for p99).
- [Bug #4040] SystemStackError with Hash[*a] for Large a (jeremyevans0)
- @ko1 (Koichi Sasada) fixed this issue for iseq methods accepting splats in Ruby 2.2.
- We fixed this issue for cfunc methods in January.
- I found this issue applies to all other method calls.
- I developed a fix for all cases I could identity (yjit will need updates for it).
- The fix results in a minor performance decrease in microbenchmarks.
- I have attempted to offset this performance decrease with major optimizations to bmethod, send, symproc, and method_missing calls, using knowledge gained from fixing this bug.
- Do we want to fix this issue, and if so, how much of a performance loss are we willing to accept?
- I propose we should accept this fix if it doesn't result in more than 0.2% performance decrease in production benchmarks such as railsbench.
- [Bug #19533] Behavior of ===/include? on a beginless/endless range (nil..nil) changed in ruby 3.2 (jeremyevans0)
- Do we want to make beginless+endless
Range#include?
return true for all objects?
- A decision was made in August 2022 to have
include?
raise exception for beginless/endless ranges.
- Looking back, it's possible that it was desired for the beginless^endless case and not the beginless+endless case.
- [Bug #19564] Range.cover? fails for Range wrapped in SimpleDelegator (jeremyevans0)
- Do we want to handle delegate objects in
Range#cover?
?
- If so, do we want to add
Range#to_range
and have Range#cover?
check for that method and call it if it exists?
- [Feature #19573] Add Class#singleton_inherited (jeremyevans0)
- This would be similar to
Class#inherited
, but called for singleton class creation instead of normal subclass creation.
- This could be used to warn or raise on singleton class creation, or modify the object to change behavior.
- [Bug #19246] Rebuilding the loaded feature index much slower in Ruby 3.1
- Personally asked for the situation.
- [Fearure #19591] Add symbolize_keys to MatchData#named_captures
- Looking for Matz's feedback
- Description updated (diff)
- Status changed from Open to Closed
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0Like0Like0Like0Like0