Misc #19240
closed
Added by mame (Yusuke Endoh) almost 2 years ago.
Updated almost 2 years ago.
Description
The next dev meeting¶
Date: 2023/01/19 13:00-17:00 (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/2023/DevMeeting-2023-01-19.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/01/16. 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 #13890] Allow a regexp as an argument to 'count'
- Recent interest, should be easy to implement
- [Feature #19245]
Array#pack
should have a strict mode (byroot)
- Currently it silently modulo the arguments if they are too big for the type.
- This can can lead to silent data loss.
- I believe
pack
need a "strict mode" that would instead raise an error, e.g. [4096].pack("C", strict: true) # => 4096 out of char range (RangeError)
(like Integer.chr
)
- It may make sense to gradually make the strict mode the default in future versions.
- [Feature #19236] Allow to create hashes with a specific capacity from Ruby (byroot)
- This is significantly more efficient when you need to create large hashes of known size.
-
rb_hash_new_capa(long)
was added as a C-API in 3.2
- We're still missing a similar API in Ruby.
- What about
Hash.create(capacity: 4096)
?
- [Feature #19179] Support parsing SCM_CRED(ENTIALS) messages from ancillary messages
- Various UNIX-y OS's support getting the (e)uid, (e)gid, and pid from unix sockets - some with a socket option, some with an ancillary message
- Ruby's socket module already has code to parse these, but it's only used for
Socket::Options#inspect
and Socket::AncillaryData#inspect
- I propose enhancing
Socket::Options
and Socket::AncillaryData
to conveniently support this functionality where it's available
- [Feature #19144] Ruby should set AI_V4MAPPED | AI_ADDRCONFIG getaddrinfo flags by default
- Many older and widely-deployed glibc versions have a bug which can cause a 5-second delay in DNS resolutions when IPv4/IPv6 are both enabled
- When IPv6 is not in use, the AI_ADDRINFO flag to getaddrinfo works around this bug by not making AAAA requests if the host does not have a useable IPv6 address.
- This bug often shows up in Ruby programs in particular, because Ruby accidentally overwrites one of the overlapping levels of glibc defaults, and causes AI_ADDRCONFIG to be unset where it would normally be set by default.
- [Bug #19260] ruby/spec is failed with Ruby 3.3
- [Feature #18285] NoMethodError#message uses a lot of CPU/is really expensive to call (mame)
- [Misc #16671] BASERUBY version policy
- [Feature #19314] String#bytesplice should support partial copy
EDIT: I remove #19315 for this meeting's agenda, let's discuss it at a later meeting.
- [Bug #18518] NoMemoryError + [FATAL] failed to allocate memory for twice 1 << large (eregon)
- I would like a decision on this ticket
- I propose to raise
RangeError (shift width too big)
if shift width
is >= 2**31 (32-bit signed integer) for all platforms, like it already behaves on 32-bit platforms.
- Current behavior is useless on 64-bit platforms, it's slow and then eventually NoMemoryError.
- This will restore consistency for this between Ruby, JRuby and TruffleRuby.
- [Bug #19289] RbConfig::CONFIG["STRIP"] should keep
rb_abi_version
and rb_abi_version
should always be part of Ruby
- In dev meeting #18557 it was decided that we would keep
rb_abi_version
on both development and release (so there would be no difference in behavior between development and release).
- In commit cd1a0b3 it was changed so that
rb_abi_version
would not be defined in release.
- This has caused issues in gems such as gRPC and rb-sys (which compiles Rust based gems) because they expect
rb_abi_version
to be present.
- This will continue to cause problems in the future due to this difference in behavior.
- [Bug #18658] Need openssl 3 support for Ubuntu 22.04 (Ruby 2.7.x and 3.0.x)
- Should we merge openssl-3.0.x into
ruby_3_0
before moving security only maintenance phase?
- [Feature #19333] Setting (Fiber Local|Thread Local|Fiber Storage) to nil should delete value in order to avoid memory leaks.
- [Feature #19347] Add Dir.fchdir (jeremyevans0)
- This method is useful when passing directory file descriptors through UNIX sockets or to child processes to avoid TOCTOU vulnerabilities.
- We already have Dir#fileno, but nothing that can use the returned directory file descriptor.
- Is it OK to add this method?
- If so, is the implementation in the pull request acceptable?
- [Bug #19237] Hash default_proc is not thread-safe to lazy-initialize value for a given key (jeremyevans0)
- Similar to
hash[key] ||= value
in multiple concurrent threads.
- One workaround is using a Mutex and
mutex.synchronize{hash[key] = value unless hash.key?(key)}
inside the default proc.
- Another workaround is to avoid using a default proc to set values in a hash accessed by multiple concurrent threads.
- Is this a bug? If not, should we update the documentation of
Hash.new
and/or Hash#default_proc=
regarding use with concurrent threads?
- [Bug #19286] What should kwargs' arity be? (jeremyevans0)
- Do we want to change how arity is calculated for methods/procs accepting/requiring keywords?
- I don't think it is worth breaking backwards compatibility here (#parameters can be used for keyword argument details).
- [Bug #19293] The new Time.new(String) API is nice... but we still need a stricter version of this (jeremyevans0)
- Do we want to add a keyword argument to Time.new for stricter parsing, or another Time method that is stricter?
- Description updated (diff)
- Status changed from Open to Closed
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0