Misc #18977



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



The next dev meeting

Date: 2022/09/22 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/09/19. 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 mame (Yusuke Endoh) over 1 year ago

  • [Feature #18784] FileUtils.rm_f and FileUtils.rm_rf should not mask exceptions (mame)
    • I changed FileUtils.rm_f/rm_rf so that it raises a SystemCallError but Errno::ENOENT.
    • But it seemed to affect mkmf on Windows. mkmf uses rm_f to delete conftest.exe, but sometime it fails. I don't know why it happens.
    • I concern that this change will make users just ignore exceptions of FileUtils.rm_rf by wrapping begin .. rescue SystemCallError; end.
    • This is not what I wanted. Should we revert the change of FileUtils?

Updated by byroot (Jean Boussier) over 1 year ago

  • [Feature #18982] Add an exception: false argument for Queue#push, Queue#pop, SizedQueue#push and SizedQueue#pop (byroot)
    • The existing exceptions (ThreadError) are a bit awkward to deal with.
    • Queue is often used deep into the stack where exceptions in common cases are fairly costly.
  • [Feature #18951] Object#with to set and restore attributes around a block (byroot)
    • Works with any public accessor, e.g. GC.with(stress: true) { do_something }
    • This is an extremely common pattern, especially in test suites, but is often implemented with subtle bugs.

Updated by Eregon (Benoit Daloze) over 1 year ago

  • [Feature #11689] Add methods allow us to get visibility from Method and UnboundMethod object. (eregon)
    • I think we should re-add (undo revert) {Method,UnboundMethod}#{public?,private?,protected?} on master, see
    • Both #18729 and #18751 are fixed, and now Method == method entry, and visibility is an attribute of method entry.
    • Ruby 3.1 already has those method and the fix for #18729 and #18751 was backported to 3.1. So if we keep them removed for 3.2 we cause incompatibility and there is no practical issue with those methods anymore.

Updated by st0012 (Stan Lo) over 1 year ago

  • [Feature #18996] Proposal: Introduce new APIs to reline for changing dialog UI colours (st0012)
    • irb's autocompletion background can make texts hard to read for some users.
    • Because the colours are hardcoded in reline, users aren't able to change them. So many users need to disable the feature altogether.
    • The APIs proposed in the ticket actually have been implemented by @pocari and me.
    • Since the maintainer @aycabta (aycabta .) is not available now, I hope we can decide if the APIs still need any improvement or they are ready for release.
  • [Feature #19010] Follow up of #18996: Support changing irb's autocompletion background (st0012)
    • If the above or similar reline APIs are introduced, I want to support dark/bright themes in irb (screenshots are included in the ticket)
    • The default will be dark theme. I don't want to add more themes for now. So it can be toggled to bright theme with a boolean config.
    • To customize more, irb can take and pass per-color configurations to reline too.

Updated by Eregon (Benoit Daloze) over 1 year ago

  • [Feature #18798] UnboundMethod#== with inherited classes (eregon)
    • OK to change UnboundMethod#== to check if same method definition (and ignore from which class instance_method was used on)? If yes, what about UnboundMethod#eql??
    • If not, OK to add {Method,UnboundMethod}#same_definition?(other)?

Updated by jeremyevans0 (Jeremy Evans) over 1 year ago

  • [Bug #18960] Module#using raises RuntimeError when called at toplevel from wrapped script (jeremyevans0)
    • Do we want to support this? I think since #using is permitted at top level and inside a module, we should.
  • [Bug #18919] Ractor: can't share #Method objects (jeremyevans0)
    • Is this a bug? Ractor cannot share most objects, but some procs are sharable.
    • If not a bug, should it be switched to feature request?
  • [Bug #18878] parse.y: Foo::Bar {} is inconsistently rejected (jeremyevans0)
    • This is currently invalid syntax, should we try to support it?
    • If so, do we consider this a bug or a feature request?
    • I tried to support it a couple weeks ago, but all my attempts ended in reduce/reduce conflicts.

Updated by shioyama (Chris Salzberg) over 1 year ago

  • [Bug #18960] Module#using raises RuntimeError when called at toplevel from wrapped script (shioyama)
    • @jeremyevans0 (Jeremy Evans) mentioned this, but I think this is a bug based on common reading of the wrap argument to load.
    • See also context for this in my next bullet point.
  • [Feature #10320] require into module (shioyama)

Updated by peterzhu2118 (Peter Zhu) over 1 year ago

  • [Bug #18978] Unexpected behaviour in Time.utc and Time.local when 8 arguments are passed in (peterzhu2118)
    • Passing 8 arguments causes both the 7th (microseconds) and 8th arguments to be ignored.
    • The behaviour is undocumented, so it is inconsistent between various Ruby implementations.
    • Proposed fix raises an ArgumentError when 8 arguments are passed in (this is the behaviour when 9 arguments are passed in).
    • Proposed PR:

Updated by byroot (Jean Boussier) over 1 year ago

  • [Feature #18885] End of boot advisory API (byroot)
    • The general concept was accepted, but it need a proper name.
    • Suggestions:
    • Kernel.booted / Kernel.application_booted / Kernel.code_loaded / Kernel.startup_done
    • ObjectSpace.loaded / ObjectSpace.optimize
    • The suggestions try to describe an "event" or point in time, more than which optimizations are being performed.
    • This is because the actual optimizations might change over time or be different on other implementations.
    • I'd like to implement the constant cache pre-warming soon, so having an accepted name for it would be very helpful.

Updated by tenderlovemaking (Aaron Patterson) over 1 year ago

  • [Feature #18776] Object shapes as new caching system
    • YARV interpreter benchmarks are similar speed or faster
    • Memory increase is low
    • Opens door for more optimizations

Updated by ioquatix (Samuel Williams) over 1 year ago

  • [Feature #19008] Introduce coverage support for eval.
    • Working implementation.
    • Can introduce some challenges for existing code - same challenges as debug gem - accurate line information for eval must be given.
    • Useful for computing template coverage.
  • [Feature #18411] Introduce Fiber.blocking for disabling the scheduler (efficiently).
    • Useful for writing pure Ruby schedulers.
  • [Feature #18455] IO#close has poor performance and difficult to understand semantics.
    • We need to fix implementation of IO#close which is O(number of blocking operations).
    • We need to hide implementation of struct rb_io_t because the internal implementation details are leaking into public interface (e.g. ccan_list).
  • [Feature #18630] Introduce general IO#timeout and IO#timeout= for blocking operations.
    • We can now support generally blocking and internally non-blocking operations (i.e. fiber scheduler).
    • Safer network I/O.
  • [Bug #18886] Struct aref and aset don't trigger any tracepoints.
    • Do we care enough to fix this issue or is the performance cost too high?

Updated by yui-knk (Kaneko Yuichiro) over 1 year ago

  • [Feature #19013] Error Tolerant Parser
    • I want to get feedback for the direction and other use cases.

Updated by mame (Yusuke Endoh) over 1 year ago

We could not discuss all agenda items in time. We will have an extra meeting at 6th Oct.

Updated by pkubaj (Piotr Kubaj) over 1 year ago

  • [Feature #19022] Use __builtin_ppc_get_timebase on POWER with clang (pkubaj)

    • A simple change that allows run performance improvement
  • [Feature #19023] Enable riscv64 coroutines on riscv64-freebsd, arm32 on arm*-freebsd and ppc on powerpc-freebsd (pkubaj)

    • Passes make test

Updated by hsbt (Hiroshi SHIBATA) over 1 year ago

  • [Bug #19016] syntax_suggest is not working with Ruby 3.2.0-preview2
    • What's blocker now?
Actions #17

Updated by mame (Yusuke Endoh) over 1 year ago

  • Status changed from Open to Closed
Actions #18

Updated by mame (Yusuke Endoh) over 1 year ago

  • Description updated (diff)

Also available in: Atom PDF