Misc #18836
closed
Added by mame (Yusuke Endoh) over 2 years ago.
Updated about 2 years ago.
Description
The next dev meeting¶
Date: 2022/07/21 13:00-17:00 (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/DevMeeting-2022-07-21.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 2022/07/18. 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 #18832] Suspicious superclass mismatch (#18832) (eregon)
- OK to fix it? (i.e., don't look into included/prepended modules in Object, no special rule if the closest nesting is Object/top-level)
- Any compatibility concerns? Anything we can do to address that, maybe warn first if the special rule is used, then remove the special rule?
- [Feature #18809] Add
Numeric#ceildiv
- ceiling or rounding up division
- maybe also
Numeric#floordiv
?
-
Numeric#div(divisor, round: :up)
?
- Julia provides
cld
and fld
for the ceiling and flooring division, respectively.
- https://github.com/ruby/ruby/pull/5965
- [Feature #18810] Make
Kernel#p
interruptable.
- [Feature #18630] Introduce general
IO#timeout
and IO#timeout=
for blocking operations.
-
[Bug #18780] Surprising self
for C API rb_eval_string()
(alanwu)
- Script for
rb_eval_string()
runs with locals from the inner most Ruby context, but self
is always top level self
(main
). This unique execution environment is surprising; it's not equivalent to any environment one could get using pure Ruby.
- Test script available at [ruby-core:108919]. You need to flip the
if
in the C code to see it.
-
extension.rdoc
says it's supposed to capture local variables while the header says it runs in an "isolated binding"
- It looks like
self
has stayed as the top level self
since 1.3
- Should we change
self
for scripts passed to rb_eval_string()
?
-
[Bug #18882] On 64-mingw-ucrt, File.read()
sometimes doesn't read entire file
- Plain one argument call to
File.read()
can stop reading in the middle of file due to CTRL+Z being interpreted as EOF in Windows text mode
- I think in the one argument form the intention is to read every byte in the file
- Reading everything seems like a better default nowadays. But maybe too hard to change it
- Should we special case the "read entire file" case? Maybe undesirable because that also disables CRLF translation
- Could always just update the docs about this pitfall and make the user handle it
- Because of Ruby's popularity on non Windows systems and FS APIs in other languages not exposing text mode by default, the current behavior will probably continue to surprise
- [Misc #18888] Migrate ruby-lang.org mail services to Google Domains and Google Workspace
- We are planning to migrate the mail services to Google Domains and Google Workspace (Google Groups).
- The maximum numbr of Google Domains email aliases is 100, but currently ruby-lang.org has 153 email aliases, so we have to reduce them.
- The number of active committers listed in email.yml is 58.
- [Misc #18891] Expand tabs in C code (k0kubun)
- Does anybody have objections to fixing this problem? Any suggestions on how to approach this?
- [Bug #18770] Inconsistent behavior of IO/StringIO's each methods when called with nil as a separator, limit and chomp: true (jeremyevans0)
- When using
nil
separator and chomp
keyword, should IO chomp a final line separator?
- I don't think it should, as
chomp
should only remove separators, and nil
separator means no separator.
- Assuming we should not chomp in this case, is the pull request acceptable?
- [Bug #18768] Inconsistent behavior of IO, StringIO and String each_line methods when return paragraph and chomp: true passed (jeremyevans0)
- When using paragraph separator and
chomp
, should String#each_line be changed to chomp paragraphs instead of lines?
- Assuming we should chomp paragraphs in this case, is the pull request acceptable?
- [Bug #18905] :"@=".inspect is non-evaluatable (jeremyevans0)
- I don't think this is a bug, since Ruby does not attempt to ensure inspect returns valid Ruby code (e.g.
Object#inspect
).
- Do we want to change it so that
Symbol#inspect
always returns valid ruby code (something you can pass to eval
)?
- [Bug #18837] Not possible to evaluate expression with numbered parameters in it (jeremyevans0)
- I agree with the poster that this isn't a bug, the issue should probably be switched to feature.
- Do we want to change things so that bindings can deal with numbered parameters?
- [Bug #18784]
FileUtils.rm_f
and FileUtils.rm_rf
should not mask exceptions (jeremyevans0)
- Should these methods only swallow exceptions if passed files that don't exist?
- [Feature #18885] Long lived fork advisory API (potential Copy on Write optimizations) (byroot)
- We have some ideas how to improve CoW performance, but we'd need a Ruby side API to notify the Virtual Machine that we're done loading code.
- Something like
RubyVM.prepare
- Would mostly be useful for forking setups, but could be useful for other long lived programs.
- Currently gems like
nakayoshi_fork
decorate the Process.fork
method to know that, but it's not always a good assumption.
- [Feature #18559] Allocation tracing: Objects created during compilation are attributed to
Kernel.require
(byroot)
- When tracing allocations, all internal objects created during compilation are attributed to
Kernel.require
or ISeq.load_from_binary
- This make it impossible to track down where most of the memory usage of an app comes from.
- Ideally you'd want to insert a frame before compilation, except you need an ISeq to create frame, so there is a chicken and egg problem.
- Instead I think we should handle this special case ad hoc with an override: https://github.com/ruby/ruby/pull/6057
- [Feature #18822] Ruby lack a proper method to percent-encode strings for URIs (RFC 3986) (byroot)
-
URI.escape
was RFC 3986 compliant but was remove in 3.0
-
ERB::Util.url_encode
still exist, but it's very slow compared to CGI.escape
- All other methods use
+
for spaces, which isn't RFC 3986 compliant.
- I propose:
CGI.url_encode(" ") # => "%20"
- Or
CGI.encode_url
.
- Alias
CGI.escape
as GCI.encode_www_form_component
- Clarify the documentation of
CGI.escape
.
- [Bug #18911] Process._fork hook point is not called when Process.daemon is used (mame)
- akr, why should
Process._fork
have ignored Process.daemon
?
We did not make it in time to discuss all the topics; we will continue on 2nd Aug.
Posting here since there is no ticket for the next meeting yet (@mame (Yusuke Endoh) Could you copy this when creating the next dev meeting ticket?).
- [Feature #18949] Deprecate and remove replicate and dummy encodings (eregon)
- What do you think? Could we simplify and speedup Ruby in this area?
- It would lead to speedups for many String methods and simplify semantics.
- [Feature #18930] Officially deprecate class variables (eregon)
- Could at least we discourage them in official docs?
- Could we deprecate them? They often hurt more than help and it is not hard to replace them with instance variables.
- Description updated (diff)
- Status changed from Open to Closed
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0