Actions
Misc #18836
closedDevMeeting-2022-07-21
Status:
Closed
Assignee:
-
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.
Updated by mame (Yusuke Endoh) about 2 years ago
- Related to Misc #14770: [META] DevelopersMeeting added
Updated by Eregon (Benoit Daloze) about 2 years ago
- [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?
Updated by nobu (Nobuyoshi Nakada) about 2 years ago
- [Feature #18809] Add
Numeric#ceildiv
- ceiling or rounding up division
- maybe also
Numeric#floordiv
? -
Numeric#div(divisor, round: :up)
? - Julia provides
cld
andfld
for the ceiling and flooring division, respectively. - https://github.com/ruby/ruby/pull/5965
Updated by ioquatix (Samuel Williams) about 2 years ago
- [Feature #18810] Make
Kernel#p
interruptable.- Pull Request: https://github.com/ruby/ruby/pull/5967
- [Feature #18630] Introduce general
IO#timeout
andIO#timeout=
for blocking operations.- Pull Request: https://github.com/ruby/ruby/pull/5653
Updated by alanwu (Alan Wu) about 2 years ago
-
[Bug #18780] Surprising
self
for C APIrb_eval_string()
(alanwu)- Script for
rb_eval_string()
runs with locals from the inner most Ruby context, butself
is always top levelself
(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 levelself
since 1.3 - Should we change
self
for scripts passed torb_eval_string()
?
- Script for
-
[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
- Plain one argument call to
Updated by shugo (Shugo Maeda) about 2 years ago
- [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.
Updated by k0kubun (Takashi Kokubun) about 2 years ago
- [Misc #18891] Expand tabs in C code (k0kubun)
- Does anybody have objections to fixing this problem? Any suggestions on how to approach this?
Updated by jeremyevans0 (Jeremy Evans) about 2 years ago
- [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 andchomp
keyword, should IO chomp a final line separator? - I don't think it should, as
chomp
should only remove separators, andnil
separator means no separator. - Assuming we should not chomp in this case, is the pull request acceptable?
- When using
- [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?
- When using paragraph separator and
- [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 toeval
)?
- I don't think this is a bug, since Ruby does not attempt to ensure inspect returns valid Ruby code (e.g.
- [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
andFileUtils.rm_rf
should not mask exceptions (jeremyevans0)- Should these methods only swallow exceptions if passed files that don't exist?
Updated by byroot (Jean Boussier) about 2 years ago
- [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 theProcess.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
orISeq.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
- When tracing allocations, all internal objects created during compilation are attributed to
- [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 toCGI.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
asGCI.encode_www_form_component
- Clarify the documentation of
CGI.escape
.
-
Updated by mame (Yusuke Endoh) about 2 years ago
- [Bug #18911] Process._fork hook point is not called when Process.daemon is used (mame)
- akr, why should
Process._fork
have ignoredProcess.daemon
?
- akr, why should
Updated by mame (Yusuke Endoh) about 2 years ago
We did not make it in time to discuss all the topics; we will continue on 2nd Aug.
Updated by Eregon (Benoit Daloze) about 2 years ago
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.
Updated by hsbt (Hiroshi SHIBATA) almost 2 years ago
- Status changed from Open to Closed
Actions
Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0