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.
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.
Comment deadline: 2020/06/11 (one week before the meeting)
I added a patch implementing Proc#== and #eql? (previously not implemented, so Object#== and #eql? were used)
Do the equalivance conditions I describe make sense, or should more be added?
Is it OK to merge the patch?
[Bug #11669] inconsitent behavior of refining frozen class (jeremyevans0)
Refining a frozen class where the refinement adds a method is currently broken.
Refinement methods are internal, so I'm not sure we should raise FrozenError in this case
Is it OK to merge the patch?
[Bug #16504] foo(*args, &args.pop) should pass all elements of args (jeremyevans0)
Bug is due to an optimization that skips duping of args for the splat.
I created a patch that fixes the issue in most cases by removing the optimization in those cases.
The patch does not remove the optimization in common cases, such as &local_variable or &:symbol
Truly fixing the issue in all cases requires removing the optimization completely.
Is it OK to merge the patch?
[Feature #16470] Issue with nanoseconds in Time#inspect (jeremyevans0)
Currently, Time#inspect can display fractional seconds as a rational, which few rational people want.
I think Time#inspect should always display fractional seconds as decimal.
I have a patch to do this, but it makes Time#inspect the same for Time instances that are not equal.
Arbitrary precision for fractional seconds, the benefit of storing nanoseconds as a rational, seems pointless to me.
Do we want to keep things as is, merge the patch, or change Time's implementation so fractional seconds are not stored with greater than nanosecond precision?
[Feature #16897] General purpose memoizer in Ruby 3 with Ruby 2 performance (eregon)
Thoughts about the ***args / Arguments proposal?
Ideas to optimize delegation with *args, **kwargs better, which it seems most people expect (it's intuitive, same as Python) is the Ruby 3 way to do delegation?
Some other ideas to optimize memoization, maybe using ...?
many C-extensions that use large buffer like objects in C - Numo::Narray , NMatrix, red-arrow, but to transfer between them and ruby usually copy the data to go between types
create a c-api to describe the shape and access of the data to avoid copying data
[Bug #14541] Class variables have broken semantics, let's fix them (jeremyevans0)
My previous commit to fix this only raised in verbose mode, since the class variable overtaken warning was only issued in verbose mode.
Are we OK jumping directly from verbose-mode warning in 2.7 to RuntimeError in 3.0, or do we want to issue a warning even in non-verbose mode in 3.0 and switch to RuntimeError in 3.1?
[Feature #16950] Stop nonsense keyword argument warnings in 2.6 (mame)
2.6 produces a warning that no longer makes sense. Unfortunately, this warning is not only unhelpful but also annoying for supporting 3.0 keyword behavior (according to some Rails developers). This is a change for 2.6, but how about deleting the warning?
Last time it was discussed, Matz asked "We didn't see the need for Hash#except yet. Any (real world use-case)? I don't think the name except is the best name for the behavior." In the ticket's new comments, I am providing use cases and name justification.
I vaguely remember already adding it to some previous meetings agenda, but I don't see any outcome in the ticket
[Feature #16848] Allow callables in $LOAD_PATH (byroot)
I added a proposal for the "loader" interface based on two methods: find_feature and load_feature.
A couple solutions for the $LOAD_PATH backward compatibility concern were proposed (maintaining a distinct $FEATURE_LOADERS array).
I'd like to really question the importance of that compatibility issue. It would certainly require some code to be updated, but wouldn't break any use case.
More generally I'd like to know what I could do to help move this forward.