Misc #18174



Added by mame (Yusuke Endoh) 11 months ago. Updated 10 months ago.



The next dev meeting

Date: 2021/10/21 13:00-17:00 +09:00

  • 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 log about the discussion to a 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 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 2021/10/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) 11 months ago

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

Updated by mame (Yusuke Endoh) 11 months ago

  • [Feature #18176] Make Coverage suspendable (mame)
    • I'd like to add Coverage.suspend and Coverage.resume. Any opinion?
  • [Bug #18170] Exception#inspect should not include newlines (mame)
    • I've created a PR for"foo\nbar") #=> #<StandardError: "foo\nbar">. I had to modify some tests. Is it acceptable?

Updated by ioquatix (Samuel Williams) 11 months ago

  • [Feature #18035] Introduce general model/semantic for immutable by default.
    • Can we agree on interface and implementation.
    • Process::Status is example use-case. Should be many more.
  • [Feature #18083] Capture error in ensure block.
    • Can we deprecate $! (& $@)? It's dangerous and every use case is better with explicit capture. Also may have some performance advantages.
  • [Feature #18020] Introduce IO::Buffer for fiber scheduler.
    • For efficient file IO we need an internal buffer with well defined semantics suitable for IO.
  • [Feature #17369] Introduce non-blocking Process.wait, Kernel.system and related methods.
    • Currently, $? is thread-local, but it should be fiber local.
    • Should we try to fix $? or deprecate it?
    • Introduce new interface? system(...) {|status| ...}?
  • [Bug #18194] No easy way to format exception messages per thread/fiber scheduler context.
    • Can we come to an agreement on what this looks like for Ruby 3.1?
    • Can we introduce fiber scheduler hook for unhandled exceptions?

Updated by shugo (Shugo Maeda) 11 months ago

  • [Bug #17429] Prohibit include/prepend in refinement modules
    • Is the name Refinement#import OK?

Updated by duerst (Martin Dürst) 10 months ago

  • [Feature #18239] Variable Width Allocation: Strings
    • Discuss deployment schedule and binary incompatibility issues.

Updated by nobu (Nobuyoshi Nakada) 10 months ago

  • [Feature #18242] Allow multiple assignment in logical expression
    • 1 < 2 and a, b = 2, 1 and so on.

Updated by jeremyevans0 (Jeremy Evans) 10 months ago

  • [Misc #18248] Add Feature Triaging Guide (jeremyevans0)
    • Is it OK to add a feature triaging guide and start using it triage feature requests?
  • [Bug #18066] Load did_you_mean/error_highlight even with --disable-gems (jeremyevans0)
    • Should --disable-gems also disable did_you_mean and error_highlight?
    • Most developers appear in favor, though @mame (Yusuke Endoh) is against (but not strongly opposed).
  • [Bug #18187] Float#clamp() returns ArgumentError (comparison of Float with 1 failed) (jeremyevans0)
    • How should Float#clamp handle case where receiver is NaN?
    • Currently it raises ArgumentError, but that is due to implementation details, not by design.
    • Is it OK to change it to return the receiver (NaN) in this case?
  • [Bug #12436] newline argument of seems not respected on Windows (jeremyevans0)
    • The option is currently ignored due to an oversight when the code was originally added.
    • Is it OK to introduce lf_newline transcoder and newline: :lf option to fix this?
    • Also, is newline: :crlf supposed to convert \r\n to \n during read only on Windows?

Updated by byroot (Jean Boussier) 10 months ago

  • [Feature #10917] Add GC.stat[:total_time] when GC profiling enabled
    • @ko1 (Koichi Sasada) did submit a pull request which seem fine except maybe for 32bits support.
    • @ko1 (Koichi Sasada) did also measure the overhead and it appeared small.
    • Could this feature be merged for Ruby 3.1?

Updated by byroot (Jean Boussier) 10 months ago

  • [Feature #17760] Where we should install a header file when gem install --user?
    • digest have been gemified. However its extconf.rb have $INSTALLFILES = { "digest.h" => "$(HDRDIR)" } which fail for most people because ruby's include directory is owned by root.
    • What should rubygems do here? Have a secondary user owned include directory?
    • If I have several versions of digest installed? How gems linking against it would know which version to use?
    • If there's no clear solution, with 3.1.0 approaching, should we revert that digest gemification so that 3.1.0 is actually usable?
Actions #10

Updated by nobu (Nobuyoshi Nakada) 10 months ago

  • Description updated (diff)

Updated by Eregon (Benoit Daloze) 10 months ago

  • [Feature #18256] Change the canonical name of Thread::Mutex, Thread::Queue, Thread::SizedQueue and Thread::ConditionVariable to just Mutex, Queue, SizedQueue and ConditionVariable (eregon)
    • OK? (sorry for late addition for the meeting, we can move to next meeting if needed, but would be best to decide sooner than later)

Updated by Dan0042 (Daniel DeLorme) 10 months ago

  • [Feature #17795] Around Process.fork callbacks API (dan0042)
    • A few naming suggestions have been made; does Matz like any of them?
  • [Feature #17837] Add support for Regexp timeouts (dan0042)
    • Adding this to ruby 3.1 with a safe (high) value for Regexp.backtrack_limit would be an improvement on the current lack of limit, and would allow to get measurements from real-world applications for a better default value.

Updated by byroot (Jean Boussier) 10 months ago

  • [Feature #18254] Add an offset parameter to String#unpack and String#unpack1
    • Binary protocol parsers currently have to slice their buffer repeatedly, this new argument would save a lot of string copying.

Updated by Eregon (Benoit Daloze) 10 months ago

  • [Bug #17146] Queue operations are allowed after it is frozen. (eregon)
    • This is an obvious inconsistency and it makes no sense whenever we discuss deep freezing object graphs. Let's fix it.

Updated by mame (Yusuke Endoh) 10 months ago

We held the dev-meeting but didn't finish until the last topic. An extra meeting will be held at the next Monday.

Actions #16

Updated by mame (Yusuke Endoh) 10 months ago

  • Status changed from Open to Closed
  • Description updated (diff)

Also available in: Atom PDF