Actions
Misc #19240
closedDevMeeting-2023-01-19
    Misc #19240:
    DevMeeting-2023-01-19
  
Status:
Closed
Assignee:
-
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.
        
           Updated by mame (Yusuke Endoh) almost 3 years ago
          Updated by mame (Yusuke Endoh) almost 3 years ago
          
          
        
        
      
      - Related to Misc #14770: [META] DevelopersMeeting added
        
           Updated by duerst (Martin Dürst) almost 3 years ago
          Updated by duerst (Martin Dürst) almost 3 years ago
          
          
        
        
      
      - [Feature #13890] Allow a regexp as an argument to 'count'
- Recent interest, should be easy to implement
 
        
           Updated by byroot (Jean Boussier) almost 3 years ago
          Updated by byroot (Jean Boussier) almost 3 years ago
          
          
        
        
      
      - [Feature #19245] Array#packshould 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 packneed a "strict mode" that would instead raise an error, e.g.[4096].pack("C", strict: true) # => 4096 out of char range (RangeError)(likeInteger.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)?
 
        
           Updated by kjtsanaktsidis (KJ Tsanaktsidis) almost 3 years ago
          Updated by kjtsanaktsidis (KJ Tsanaktsidis) almost 3 years ago
          
          
        
        
      
      - [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#inspectandSocket::AncillaryData#inspect
- I propose enhancing Socket::OptionsandSocket::AncillaryDatato 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.
 
        
           Updated by hsbt (Hiroshi SHIBATA) almost 3 years ago
          Updated by hsbt (Hiroshi SHIBATA) almost 3 years ago
          
          
        
        
      
      - [Bug #19260] ruby/spec is failed with Ruby 3.3
- How handles these issues?
- https://bugs.ruby-lang.org/issues/13671 is still open status
- https://bugs.ruby-lang.org/issues/18518#note-8 @nobu (Nobuyoshi Nakada) ?
 
        
           Updated by mame (Yusuke Endoh) almost 3 years ago
          Updated by mame (Yusuke Endoh) almost 3 years ago
          
          
        
        
      
      - [Feature #18285] NoMethodError#message uses a lot of CPU/is really expensive to call (mame)
- I have created a PR to change the message of NoMethodError based on @akr (Akira Tanaka) 's proposal. https://github.com/ruby/ruby/pull/6950
- Why don't you give it a try on master?
 
        
           Updated by hsbt (Hiroshi SHIBATA) almost 3 years ago
          Updated by hsbt (Hiroshi SHIBATA) almost 3 years ago
          
          
        
        
      
      - [Misc #16671] BASERUBY version policy
- How about my proposal?
 
        
           Updated by shugo (Shugo Maeda) almost 3 years ago
          Updated by shugo (Shugo Maeda) almost 3 years ago
          
          
        
        
      
      - [Feature #19314] String#bytesplice should support partial copy
- Not only I but also kazuho-san wants this feature: https://twitter.com/kazuho/status/1611279616098070532
- Can the length be omitted in the destination?
 
        
           Updated by Eregon (Benoit Daloze) almost 3 years ago
          Updated by Eregon (Benoit Daloze) almost 3 years ago
          
          
        
        
      
      EDIT: I remove #19315 for this meeting's agenda, let's discuss it at a later meeting.
        
           Updated by Eregon (Benoit Daloze) almost 3 years ago
          Updated by Eregon (Benoit Daloze) almost 3 years ago
          
          
        
        
      
      - [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)ifshift widthis >= 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.
 
        
           Updated by peterzhu2118 (Peter Zhu) almost 3 years ago
          Updated by peterzhu2118 (Peter Zhu) almost 3 years ago
          
          
        
        
      
      - [Bug #19289] RbConfig::CONFIG["STRIP"] should keep rb_abi_versionandrb_abi_versionshould always be part of Ruby- In dev meeting #18557 it was decided that we would keep rb_abi_versionon 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_versionwould 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_versionto be present.
- This will continue to cause problems in the future due to this difference in behavior.
 
- In dev meeting #18557 it was decided that we would keep 
        
           Updated by hsbt (Hiroshi SHIBATA) almost 3 years ago
          Updated by hsbt (Hiroshi SHIBATA) almost 3 years ago
          
          
        
        
      
      - [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_0before moving security only maintenance phase?
 
- Should we merge openssl-3.0.x into 
        
           Updated by ioquatix (Samuel Williams) almost 3 years ago
          Updated by ioquatix (Samuel Williams) almost 3 years ago
          
          
        
        
      
      - [Feature #19333] Setting (Fiber Local|Thread Local|Fiber Storage) to nil should delete value in order to avoid memory leaks.
        
           Updated by jeremyevans0 (Jeremy Evans) almost 3 years ago
          Updated by jeremyevans0 (Jeremy Evans) almost 3 years ago
          
          
        
        
      
      - [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] ||= valuein 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.newand/orHash#default_proc=regarding use with concurrent threads?
 
- Similar to 
- [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?
 
        
           Updated by mame (Yusuke Endoh) almost 3 years ago
          Updated by mame (Yusuke Endoh) almost 3 years ago
          
          
        
        
      
      - Description updated (diff)
- Status changed from Open to Closed
Actions