Misc #18836



Added by mame (Yusuke Endoh) over 1 year ago. Updated about 1 year ago.



The next dev meeting

Date: 2022/07/21 13:00-17:00 (JST)

  • 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.)


* [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 open0 closed)

Related to Ruby master - Misc #14770: [META] DevelopersMeetingOpenActions
Actions #1

Updated by mame (Yusuke Endoh) over 1 year ago

  • Related to Misc #14770: [META] DevelopersMeeting added

Updated by Eregon (Benoit Daloze) over 1 year 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) over 1 year ago

  • [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.

Updated by ioquatix (Samuel Williams) over 1 year ago

Updated by alanwu (Alan Wu) over 1 year ago

  • [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, sometimes doesn't read entire file

    • Plain one argument call to 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

Updated by shugo (Shugo Maeda) about 1 year ago

  • [Misc #18888] Migrate 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 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 1 year 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 1 year 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 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?

Updated by byroot (Jean Boussier) about 1 year 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 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:
  • [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.

Updated by mame (Yusuke Endoh) about 1 year ago

  • [Bug #18911] Process._fork hook point is not called when Process.daemon is used (mame)
    • akr, why should Process._fork have ignored Process.daemon?

Updated by mame (Yusuke Endoh) about 1 year 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 1 year 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.
Actions #13

Updated by mame (Yusuke Endoh) about 1 year ago

  • Description updated (diff)
Actions #14

Updated by hsbt (Hiroshi SHIBATA) about 1 year ago

  • Status changed from Open to Closed

Also available in: Atom PDF