Project

General

Profile

Actions

Misc #20281

closed

DevMeeting-2024-03-14

Added by mame (Yusuke Endoh) 2 months ago. Updated about 2 months ago.

Status:
Closed
Assignee:
-
[ruby-core:116846]

Description

The next dev meeting

Date: 2024/03/14 09:00-12:00, 13:00-17:00 (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/2024/DevMeeting-2024-03-14.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 2024/03/11. 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) 2 months ago

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

Updated by Eregon (Benoit Daloze) 2 months ago

  • [Feature #20275] Avoid extra backtrace entries for rescue and ensure (eregon)
    • OK to hide/avoid the extra backtrace entries?
    • I think it helps to avoid confusion (there is no call semantically for a rescue or ensure section). e.g. ["-:4:in '<main>'", "-:4:in '<main>'"] seems unclear (it looks like a recursive call of <main>)
    • Doing so would make it consistent with other Ruby implementations.
Actions #3

Updated by burdettelamar (Burdette Lamar) 2 months ago

  • Related to Feature #20261: Add symbol synonyms for '' and nil for IO method line separator arguments added
Actions #4

Updated by peterzhu2118 (Peter Zhu) 2 months ago

  • Related to deleted (Feature #20261: Add symbol synonyms for '' and nil for IO method line separator arguments)

Updated by mame (Yusuke Endoh) 2 months ago

  • Description updated (diff)

Note: The next meeting will be held not only at P.M. but also at A.M. (09:00-12:00) in JST. We will try this time slot once for those who want to attend from the U.S. (It has not been decided if this slot will be permanent, though.)

Updated by burdettelamar (Burdette Lamar) 2 months ago

  • [Feature #20261] Add symbol synonyms for '' (empty string) and nil for IO method line separator arguments (BurdetteLamar)
    • For value '' (read paragraph), add synonym :paragraph.
    • For value nil (read all), add synonym :slurp.
    • Thus the user can write gets(:paragraph) or gets(:slurp), instead of gets('') or gets(nil).
    • The term slurp is well-established in Perl and Python to mean read all, but a different term can be used in Ruby if there's a better one.

Updated by peterzhu2118 (Peter Zhu) 2 months ago

  • [Feature #20265] Deprecate and remove rb_newobj and rb_newobj_of (peterzhu2118)
    • These two APIs are difficult to use, fragile to use, and requires internal knowledge of internal implementation of data types in Ruby.
    • The rb_newobj function creates a T_NONE object. T_NONE objects cannot be marked and are not reclaimed by the GC, which can leak memory.
    • The rb_newobj_of function requires the developer to understand flags of objects. Many flags for objects are also not public, preventing direct use by developers.
    • Very few C extensions use these APIs, and are from over a decade ago.

Updated by duerst (Martin Dürst) 2 months ago · Edited

  • [Misc #20287] DevMeeting before or after RubyKaigi
    • It would be great to plan ahead, so that people can make their flight/hotel reservations.

Updated by peterzhu2118 (Peter Zhu) 2 months ago · Edited

  • [Feature #20306] Add rb_free_at_exit_p (peterzhu2118 & HParker)
    • Ticket #19993 added the new feature RUBY_FREE_AT_EXIT, which frees memory in Ruby at shutdown.
    • ruby_vm_at_exit can be used to register a callback for when the VM exits.
    • There is no way to check if RUBY_FREE_AT_EXIT is enabled, so this ticket adds rb_free_at_exit_p.

Updated by matheusrich (Matheus Richard) 2 months ago

  • [Feature #20202] Memoized endless method definitions

    • Do Matz and others have opinions on the syntax?
    • If this is approved, should the ivar name match the method named exactly? For example, should it behave like def foo = (@foo ||= :value) or should we use special naming conventions like def foo = (@_foo ||= :value)?
  • [Bug #20090] Anonymous arguments are now syntax errors in unambiguous cases

    • I'm not sure this is the best place to ask, but can we release 3.3.1? There are a couple of bugs that have been holding me back from updating to 3.3 in some projects. In particular, this one (#20090). It even affects Rubocop.
    • I know there are also other bugfixes and memory leaks fixed on main right now.
  • [Feature #4247] New features for Array#sample, Array#choice

    • This is quite old, but I wonder if we wanna move forward with at least some of this. If it is the case we might create a different issue.
    • I find weighted sampling very useful, in particular for games. Maybe Hash would be a better candidate than Array?
      { gold_coin: 0.8, ruby: 0.2}.weighted_sample # => :ruby # yay, lucky!
    

Updated by byroot (Jean Boussier) 2 months ago · Edited

  • [Feature #13557] Allow to pass Array of Backtrace::Location to Exception#set_backtrace (byroot)
    • Proposed patch: https://github.com/ruby/ruby/pull/10017
    • I think this is better than passing an Array of String because with strings Exception#backtrace_locations returns nil, making backtrace_locations unreliable.
    • No objections to the feature or patch?

Updated by dentarg (Patrik Ragnarsson) 2 months ago · Edited

  • [Feature #14066] Add CAA DNS RR on Resolv (dentarg)

Updated by tagomoris (Satoshi Tagomori) 2 months ago · Edited

Updated by hsbt (Hiroshi SHIBATA) 2 months ago · Edited

  • [Feature #20309] Bundled gems for Ruby 3.5
    • Let's discuss target gems to migrate bundled gems.

Updated by jeremyevans0 (Jeremy Evans) about 2 months ago

  • [Bug #20301] Set#add? does two hash look-ups (jeremyevans0)
    • This doesn't seem like a bug to me, as there was never a guarantee of a single hash lookup.
    • Fixed proposed is adding Hash#exchange_value and using it.
    • Alternative fix would be adding block support to Hash#store, yielding existing value if already set (similar to Hash#update).
    • Adding/modifying Hash just for Set seems undesirable, especially as I would like to rewrite Set in C as a core class.
  • [Bug #19231] Integer#step and Float::INFINITY - inconsistent behaviour when called with and without a block (jeremyevans0)
    • If receiver and step are both integers and end value is a float, can we change to always yielding integers?
    • Alternatively, we could just tell users to use nil instead of Float::INFINITY for the end value.

Updated by kjtsanaktsidis (KJ Tsanaktsidis) about 2 months ago · Edited

  • [Bug #20310] ASAN fake stacks need to be marked during GC for non-current execution context
    • When the GC is marking machine stacks, and ASAN is enabled, it needs to detect pointers on the stack which point to ASAN "fake stack" entries, and mark those "fake stacks" as well. For example, V8 does that here: https://github.com/v8/v8/blob/b639938e99fa6b5ffa9c859b18c72a251fd56942/src/heap/base/stack.cc#L57
    • In CRuby, we already do that for the current execution context here: https://github.com/ruby/ruby/blob/23dc7aa2c5a104e73563134a595124804379f049/gc.c#L6401
    • However, this is only called for the current execution context (i.e. the thread/fiber which is performing the GC work). Machine stacks for other threads & fibers are not yet marked in this way.
    • I propose to unify all the machine stack marking for all kinds of machine stacks into a single function in gc.c, rb_gc_mark_machine_context. PR for this is here: https://github.com/ruby/ruby/pull/10122. All machine-stack marking for all fibers/threads flows through the same code path with this PR.
    • Alternative approach would be to write a helper for marking ASAN fake stack values, and call it from various places in cont.c and vm.c.
    • I would like a decision on whether the refactoring of machine stack marking into a single function is worthwhile, or whether it's too ASAN specific and I should just add ASAN-related code to each place we do machine stack marking currently.
    • (sorry, this is my first dev meeting agenda item, so apologies if this is not the kind of thing discussed in dev meetings!)

Updated by yui-knk (Kaneko Yuichiro) about 2 months ago

  • [Feature #20331] Should parser warn hash duplication and when clause?
    • What is the best approach to handle hash duplication warnings and when clause duplication warnings.

Updated by kddnewton (Kevin Newton) about 2 months ago

  • [Feature #20024] SyntaxError metadata
    • Can we add some information to the syntax error about what kind of error produced it?
    • What is a good API? (The discussion on the ticket says a symbol for :type.)
  • [Misc #20238] Use prism for mk_builtin_loader.rb
    • I would like to propose that we use prism for mk_builtin_loader.rb.
    • There are lots of different thoughts on the issue — using bundler/using the Ruby library/using the C library. I would like to get a direction/understanding of what to do.
Actions #19

Updated by mame (Yusuke Endoh) about 2 months ago

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

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like1Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0