Project

General

Profile

Actions

Misc #20193

closed

DevMeeting-2024-02-14

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

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

Description

The next dev meeting

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

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

Updated by mame (Yusuke Endoh) 3 months ago

  • [Feature #16495] Inconsistent quotes in error messages (mame)
    • Implemented a prototype.
    • Error message: undefined method `foo' -> undefined method 'foo'
    • Backtrace: from test.rb:2:in `foo' -> from test.rb:2:in 'foo'
    • It caused 140 test failures in make test-all. Do we want to go forward?
  • [Feature #19117] Include the method owner in backtraces, not just the method name (mame)
    • Implemented a prototype.
    • from test.rb:2:in `instance_meth' -> from test.rb:2:in `Foo#instance_meth'
    • from test.rb:2:in `class_meth' -> from test.rb:2:in `Foo.class_meth'
    • from test.rb:2:in `singleton_meth' -> from test.rb:2:in `singleton_meth'
    • It caused 8 test failures in make test-all. Do we want to go forward?

Updated by byroot (Jean Boussier) 3 months ago

  • [Bug #20188] Module#const_source_location returns wrong information when real constant was defined but autoload is still ongoing (byroot)
    • const_source_location continues to return the autoload location even after the constant was defined.
    • It only start returning the constant location once the autoload has completed.
    • There is debate whether this should be considered a bug or a feature request.
    • Patch: https://github.com/ruby/ruby/pull/9549

Updated by stuyam (Stuart Yamartino) 3 months ago

  • [Feature #20080] Introduce #bounds method on Range (stuyam)
    • #bounds method on range to return raw bound data about the range [ first, last, exclude_end? ]
    • Easy array deconstruction for setting first and last as variables from a range.
      • first, last = (1..10).bounds #=> [1, 10, false]
    • Easy serialization and rehydration of ranges.
      • array = (1...10).bounds #=> [1, 10, true]
      • Range.new(*array)

Updated by alanwu (Alan Wu) 3 months ago

  • [Bug #20203] TestEnumerable test failures with GCC 14
    • Using qsort_r to sort causes corruption when the comparison function is reentered using continuation/fiber and when using GC compaction due to undefined behavior
    • Should we stop using qsort_r for correctness?

Updated by shioimm (Misaki Shioi) 3 months ago

  • [Feature #20108] Introduction of Happy Eyeballs Version 2 (RFC8305) in Socket.tcp
    • Fixed the points raised at the last DevMeeting and in the comments.
      • When an IP address is specified as an argument, or when the host is single-stack, name resolution is now performed on the main thread.
      • fast_fallback option is added.

Updated by kddnewton (Kevin Newton) 3 months ago

  • [Misc #20238] Use prism for mk_builtin_loader.rb (kddnewton)
    • I would like to propose that we use prism for mk_builtin_loader.rb.
    • This would allow us to use the latest Ruby syntax in builtin classes, as opposed to the base Ruby version.

Updated by byroot (Jean Boussier) 3 months ago

  • [Feature #20205] Enable frozen_string_literal by default (byroot)
    • A proposed migration plan for allowing to enable frozen_string_literal by default in the future.
    • Introduce "chilled strings", they behave like frozen strings, but on mutation they emit a deprecation warning and become regular mutable strings again.
    • Implemented as a USER_FLAG on RString, proof of concept at https://github.com/Shopify/ruby/pull/549.
    • The warning can include the location of the mutation and/or the location of the string allocation. The later is a bit more costly.
    • --disable-frozen-string-literal remains forever as a way to keep running older code that can't be updated.
    • # frozen_string_literal: false remains forever as a very minimal and cheap way to make older code compatible.

Updated by jeremyevans0 (Jeremy Evans) 3 months ago

  • [Bug #20218] aset/masgn/op_asgn with keyword arguments (jeremyevans0)
    • Do we want to make it a syntax error to pass keyword arguments in these cases?
      • There was already a desire to make passing blocks in these cases a syntax error (see #19918)?
    • If keyword arguments should be allowed, should we treat keywords as keywords or as positional arguments (currently: aset treats as positional, op_asgn treats as keywords)?
  • [Bug #20229] Empty keyword splat in array not removed in ARGSPUSH case (jeremyevans0)
    • Is it OK to fix this as part of an optimization that adds pushtoarraykwsplat instruction?

Updated by kddnewton (Kevin Newton) 3 months ago

  • [Misc #20242] --parser=prism_without_warning (kddnewton)
    • Could we add --parser=prism_without_warning? It hard to run the tests/specs that test against the output of stderr.
    • This would do the exact same thing as --parser=prism it just wouldn't warn.
  • [Feature #20210] Invalid source encoding raises ArgumentError, not SyntaxError (kddnewton)
    • Could we make it raise a syntax error?

Updated by yui-knk (Kaneko Yuichiro) 3 months ago

  • [Feature #20257] Rearchitect Ripper
    • I want to have a chance to explain new Ripper's architecture.
    • In short, Ripper uses semantic value stack to manage Ruby Object returned by Ripper callback methods then Ripper can't execute semantic analysis which needs AST Node. New architecture enables it by adding another stack to Ripper parser with Lrama's update.

Updated by kddnewton (Kevin Newton) 3 months ago

  • [Misc #20260] ISEQ flag for prism compiler (kddnewton)
    • Would it be alright to add a flag to iseqs to say it came from the prism compiler? We need this to support error highlight.

Updated by make_now_just (Hiroya Fujinami) 3 months ago

  • [Bug #20225] Inconsistent behavior of regex matching for a regex has a null loop (makenowjust)
    • Onigmo has strange behavior for null (empty) loops with captures.
      • Null-loop check depends on capture status.
    • This behavior causes some bugs and prevents memoization (cache) optimization.
    • I would like to fix null-loop check to capture-free.
      • This behavior is not common; Python and JavaScript uses capture-free null-loop check.
      • It is hard to implement capture-aware null-loop check correctly and impossible to provide efficient implementation.
        • e.g. ruby -e '(1..10).each { |n| /((?=(\3a|a))(?=(\2a|a))){#{n}}/ =~ "aaaa"; p $~ }'
        • This example shows capture status changes oscillationally.

Updated by nobu (Nobuyoshi Nakada) 3 months ago

  • [Feature #20244] Show the conflicting another chdir block

    • Dir.chdir is warning when in another chdir block.

      $ ruby -e 'Dir.chdir {' -e 'Dir.chdir("/")' -e '}'
      -e:2: warning: conflicting chdir during another chdir block
      

      If two chdirs are far apart, it can be difficult to find conflicting blocks.

    • To help the debugging, I propose to improve the warning message to show the conflicting block.

      $ ./ruby -e 'Dir.chdir {' -e 'Dir.chdir("/")' -e '}'
      -e:2: warning: conflicting chdir during another chdir block
      -e:1: warning: here
      

Updated by osyoyu (Daisuke Aritomo) 3 months ago

  • [Feature #20249] Introduce a backtrace-only mode for rb_bug() (osyoyu)
    • The current crash report printed by rb_bug() is extremely long
      • Terminals get quickly cluttered when developing C exts or CRuby itself
    • Introduce a switch that limits output to Ruby-level/C-level backtraces only
      • The backtraces are the most (or the only) helpful part when debugging
    • Running with env var RUBY_CRASH_REPORT_MODE=minimal or configuring Ruby with RUBY_DEBUG shall change behavior

Updated by hsbt (Hiroshi SHIBATA) 3 months ago

[Feature #20187] Bundled gems at Ruby 3.4

  • Should we test bundled gems at make check?
Actions #17

Updated by mame (Yusuke Endoh) 2 months ago

  • Description updated (diff)
Actions #18

Updated by mame (Yusuke Endoh) 2 months ago

  • Status changed from Open to Closed
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0