Project

General

Profile

Misc #15996

DevelopersMeeting20190829Japan

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

Status:
Closed
Priority:
Normal
Assignee:
-
[ruby-core:93683]

Description

Please comment on your favorite ticket numbers you want to ask to discuss with your SHORT comment or summary.
(your summary/comment will help us because we don't need to read all of the ticket comments)

DO NOT discuss then on this ticket, please.


Date: 2019/08/29 (Thu)
Time: 13:00-17:00 (JST)
Place and Sign-up: https://connpass.com/event/139231/
log: https://docs.google.com/document/d/1XypDO1crRV9uNg1_ajxkljVdN8Vdyl5hnz462bDQw34/edit

NOTES

  • 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.

Agenda

Next dev-meeting

About 2.7 timeframe

Check security tickets

Discussion


Please comment on your favorite ticket we need to discuss with the following format.

* [Ticket ref] Ticket title (your name)
  * your comment why you want to put this ticket here if you want to add.

Your comment is very important if you are no attendee because we can not ask why you want to discuss it.

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.

We don't guarantee to put tickets in the agenda if the comment violates the format (because it is hard to copy&paste).

A short summary of a ticket is strongly recommended. We cannot read all discussion of the ticket in a limited time.
A proposal is often changed during the discussion, so it is very helpful to summarize the latest/current proposal, post it as a comment in the ticket, and write a link to the comment.


Related issues

Related to Ruby master - Misc #14770: [META] DevelopersMeetingOpenActions

History

Updated by mame (Yusuke Endoh) 4 months ago

I added the following note.

**A short summary of a ticket is strongly recommended. We cannot read all discussion of the ticket in a limited time.**
A proposal is often changed during the discussion, so it is very helpful to summarize the latest/current proposal, post it as a comment in the ticket, and write a link to the comment.

Please consider adding a short summary comment to the ticket you want us to discuss.

Updated by mame (Yusuke Endoh) 4 months ago

Carry over.

  • [Feature #11460] Unhelpful error message when naming a module with the same name as an existing class (nobu)
  • [Misc #15805] Let memory sizes of the various IMEMO object types be reflected correctly (methodmissing)
  • [Misc #15806] Explicitly initialise encodings on init to remove branches on encoding lookup (methodmissing)
    • Currently rb_enc_from_index and related methods explicitly check for encoding table init on each call - I think this should be initialised at boot time instead as even the simple case of loading the interpreter requires the encoding table to be loaded anyways (symbol.c)
    • PR: https://github.com/ruby/ruby/pull/2128
#3

Updated by mame (Yusuke Endoh) 4 months ago

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

Updated by nobu (Nobuyoshi Nakada) 4 months ago

  • [Feature #12093] Eval InstructionSequence with binding

Updated by jeremyevans0 (Jeremy Evans) 4 months ago

  • [Bug #11326] Defining a writer as a Struct member allowed?
    • Should we ban struct members ending in =?
    • Do we also want to ban struct members ending in ! or ??

Updated by Glass_saga (Masaki Matsushita) 4 months ago

  • [Feature #15588] String#each_chunk and #chunks
    • name: #each_slice and #slices are better?
    • size as characters or bytes
    • should we support :strip parameter?
  • [Feature #15553] Addrinfo.getaddrinfo supports timeout
    • I'd like to have some feedback for patch2.diff

Updated by sikachu (Prem Sichanugrist) 4 months ago

  • [Misc #15723] Reconsider numbered parameters
    • Reading from description, I think there are a few supporters of removing @1, @2 in favor of just having @ refer to the first argument.
    • I also believe having just @ is enough for major use cases, and for the readability of the code when multiple implicit receivers are used.
    • Proposal: Remove @1 and @2 and have only @ for the first argument in Ruby 2.7+

Updated by ko1 (Koichi Sasada) 4 months ago

Triage:

  • [Feature #15998] Allow String#-@ to deduplicate tainted string, but return an untainted one
    • taint removal schedule
  • [Feature #15123] Enumerable#compact proposal
  • [Feature #15854] Tracing instance variable assignment
  • [Bug #9588] program name variables tainted
  • [Feature #12802] Add BLAKE2 support to Digest
  • [Feature #16001] Provide an alias to Kernel#caller_locations(1,1) and Kernel#caller(1,1)
  • [Bug #7768] Inherited Array class missing
  • [Bug #16007] Process.clock_getres matches the clock in practice for Process::CLOCK_{PROCESS,THREAD}_CPUTIME_ID FAILED fails on armv7hl
  • [Feature #15975] Add Array#pluck
  • [Bug #10463] :~@ and :!@ are not parsed correctly
  • [Feature #10123] Named capture groups don't set local vars when matched using ~
  • [Feature #16011] Digit grouping
  • [Feature #16018] Add a way to deprecate methods
  • [Bug #11935] Date.new returns inconsistent errors when passed invalid arguments
  • [Bug #12230] Wrong exception raised when IO.read from a pipe is passed an offset on Windows
  • [Bug #16020] Forbid if elsif without a condition
  • [Bug #15244] Method #extname return empty string if filename is dot ('.')
  • [Feature #15955] UnboundMethod#apply
  • [Feature #15976] Add Array#overlap? for whether the intersection of 2 arrays is non empty?
  • [Bug #15558] Should Exception#exception copy the backtrace?

if there is a time to check...

Updated by nobu (Nobuyoshi Nakada) 4 months ago

  • [Feature #15868] Implement File.absolute_path?

Updated by nobu (Nobuyoshi Nakada) 4 months ago

  • [Feature #16029] Expose fstring related APIs to C-extensions

Updated by Eregon (Benoit Daloze) 4 months ago

  • [Feature #15778] caller_locations(debug: true) to access bindings of the stack.
    • Can we introduce the API? If not, why not? If not, please propose a way to support such functionality on other Ruby implementations (e.g., JRuby, TruffleRuby).

Updated by nobu (Nobuyoshi Nakada) 4 months ago

  • [Feature #16035] Allow non-finalizable objects such as Integer, static Symbol etc in ObjectSpace::WeakMap
  • [Feature #16038] Provide a public WeakMap which compare by equality rather than identity

Updated by ko1 (Koichi Sasada) 3 months ago

  • Description updated (diff)

Schedule was changed!!

Before: 2019/08/20 (Thu) 13:00-17:00 (JST)
After: 2019/08/29 (Thu) 13:00-17:00 (JST)

Thanks,
Koichi

#14

Updated by ko1 (Koichi Sasada) 3 months ago

  • Subject changed from DevelopersMeeting20190820Japan to DevelopersMeeting20190829Japan

Updated by nobu (Nobuyoshi Nakada) 3 months ago

This was a missed carry-over on the last month.

  • [Bug #15908] Detecting BOM with non-UTF encoding

Updated by zverok (Victor Shepelev) 3 months ago

  • [Feature #14781] Enumerator.generate. Patch provided; Matz seem to have liked the idea and name proposed, can we have it in 2.7?
  • [Feature #14784] Comparable#clamp with a range. Implementation details are discussed, but generally proposal seem to be acceptable? Can we have it in 2.7, should I provide a patch?

Updated by mtsmfm (Fumiaki Matsushima) 3 months ago

  • [Feature #15815] Add option to raise NoMethodError for OpenStruct (mtsmfm)
    • We can use Symbol#to_proc with enumerable stuff when we use OpenStruct instead of Hash. For example: OpenStruct.new(JSON.parse(users)).map(&:id)
    • But it can't prevent typo. For Hash, it has Hash#fetch to raise KeyError.

Updated by nobu (Nobuyoshi Nakada) 3 months ago

  • [Feature #16103] Make the dot-colon method reference frozen

Updated by k0kubun (Takashi Kokubun) 3 months ago

  • [Misc #16112] Reduce the possibility of "expand tabs" commit occurrences
    • Never mind. Resolved before the MTG thanks to @jeremyevans's comment.

Updated by mrkn (Kenta Murata) 3 months ago

  • [Feature #15864] Proposal: Add methods to determine if it is an infinite range
    • I proposed some candidates from mathematical terms

Updated by mame (Yusuke Endoh) 3 months ago

  • [Feature#14183] "Real" keyword argument
    • Jeremy and I agreed with Jeremy's proposal. I'd like to ask for matz's final confirmation.

Updated by mame (Yusuke Endoh) 3 months ago

  • [Feature #16115] Keyword arguments from method calls or ignore extra hash keys in splat
    • It proposes a triple splat (foo(***opt)) to pass a keyword hash with filtering out unknown keywords. What do you think?

Updated by mame (Yusuke Endoh) 3 months ago

  • [Feature #15955] UnboundMethod#apply
    • The ticket proposes a shortcut to unbound_method.bind(obj).call(args...) without allocation of a Method object. There are some use cases, and looks reasonable to me. What do you think?

Updated by osyo (manga osyo) 3 months ago

  • [Feature #15991] Allow questionmarks in variable names
    • Proposal: Allow ? in variable names
    • In #5781, matz is explicitly against an instance variable that ends with ?
    • How about allowing only local variables ?

Updated by zverok (Victor Shepelev) 3 months ago

  • [Feature #16113] Partial application: fetch(urls).map(&JSON.:parse.w(symbolize_names: true))
  • [Feature #16122] Struct::Value: simple immutable value object

Updated by Dan0042 (Daniel DeLorme) 3 months ago

  • [Feature #10829] Add to_proc method to the Array class
  • [Feature #12115] Add Symbol#call to allow to_proc shorthand with arguments
  • [Feature #15302] Proc#with and Proc#by, for partial function application and currying
  • [Misc #15723] Reconsider numbered parameters
  • [Feature #15897] it as a default block parameter
  • [Feature #16113] Partial application
  • [Feature #16120] Implicit block argument if block starts with dot-method call
    • All proposals above are different ideas for a block shorthand more versatile than (&:to_s)
    • Insatisfaction with numbered parameters solution
    • In #16120 I try to analyze the root issue common to all the above

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

Dan0042 (Daniel DeLorme) wrote:

  • [Feature #10829] Add to_proc method to the Array class
  • [Feature #12115] Add Symbol#call to allow to_proc shorthand with arguments
  • [Feature #15302] Proc#with and Proc#by, for partial function application and currying
  • [Misc #15723] Reconsider numbered parameters
  • [Feature #15897] it as a default block parameter
  • [Feature #16113] Partial application
  • [Feature #16120] Implicit block argument if block starts with dot-method call
    • All proposals above are different ideas for a block shorthand more versatile than (&:to_s)
    • Insatisfaction with numbered parameters solution
    • In #16120 I try to analyze the root issue common to all the above

I know I shouldn't comment on individual issues here, but I haven't found a better way of commenting on this group of issues (maybe we should create a superissue): I think we should stop dealing with individual ideas of how to improve functional programming in Ruby and work out an overview of what's missing and how to address it, understanding that Ruby is first and foremost an OO language and we'll never get to the same point as Haskell or something similar.

Updated by shevegen (Robert A. Heiler) 3 months ago

I know I shouldn't comment on individual issues here

While I agree, one problem is that e. g. Dan0042 did not read the prior comments here - in
particular he linked in "[Misc #15723] Reconsider numbered parameters", which already was
linked in by sikachu. IMO, these issues become quite a lot of discussion work in general
and I am not sure matz has enough time to comment on every single one when people just
copy/paste new issues without looking whether others already linked these in. :\

Otherwise I agree with Martin's statement of "work out an overview of what's missing and
how to address it", in regards to the functional approach. I myself use ruby almost
exclusively from an OOP view (mostly); other ruby users seem to like a more functional
approach, such as zverok. Sometimes these styles seem to clash, in my opinion.

The dev-meeting discussions are great for others in the ruby community who are not e. g.
in japan, but this here is probably the longest individual issue tracker for any dev
meeting as of yet; I am not sure it is possible to discuss all of this in e. g. 4 hours.
But I digress too, apologies for that.

Updated by Dan0042 (Daniel DeLorme) 3 months ago

My apologies if I did something inappropriate. I did realize there was some duplication, I just thought these issues should be considered part of a single "package". 100% agree with duerst (Martin Dürst), what he describes is what I was trying to do.

Updated by mame (Yusuke Endoh) 3 months ago

Looks like we have too many topics at the next meeting. Please do not expect all tickets to be discussed. Thank you for your understanding.

Updated by mame (Yusuke Endoh) 3 months ago

zverok (Victor Shepelev) wrote:

  • [Feature #14781] Enumerator.generate. Patch provided; Matz seem to have liked the idea and name proposed, can we have it in 2.7?
  • [Feature #14784] Comparable#clamp with a range. Implementation details are discussed, but generally proposal seem to be acceptable? Can we have it in 2.7, should I provide a patch?

The two tickets were discussed at the past meetings. Next time, could you give us more informative short summary instead of "can we have it in 2.7?" We need to spend time to read the ticket to grab the progress from the previous discussion.
For example, the first issue is mainly a naming issue, so it would be helpful to list the proposed names. In the second one, akr pointed out the spec issue. (Do not call it "implementation details.") "Raising an exception is proposed for clamp(1...2)" would be even helpful.

zverok (Victor Shepelev) Sorry for picking only your agenda, but for all people, please consider saving our time (especially matz's).

Updated by zverok (Victor Shepelev) 3 months ago

mame (Yusuke Endoh) OK, sorry. I was not sure how the process looks internally (e.g. should I save the space and attention of the reader in agenda by just listing things shortly, or provide the full context in-place). Here are updated descriptions, just in case:

  • [Feature #14781] Enumerator.generate: Matz seems to have liked the idea and name proposed; implementation patch provided; the name should be decided upon: either generate, or, maybe, produce (looking like more-or-less oppose to reduce)
  • [Feature #14784] Comparable#clamp with a range. The issue generally agreed on, except for behavior with upper bound with excluding-end range. ArgumentError is proposed for this case.
#34

Updated by mame (Yusuke Endoh) 2 months ago

  • Status changed from Open to Closed

Also available in: Atom PDF