[#107008] [Ruby master Bug#18465] Make `IO#write` atomic. — "ioquatix (Samuel Williams)" <noreply@...>
Issue #18465 has been reported by ioquatix (Samuel Williams).
16 messages
2022/01/09
[#107150] [Ruby master Feature#18494] [RFC] ENV["RUBY_GC_..."]= changes GC parameters dynamically — "ko1 (Koichi Sasada)" <noreply@...>
Issue #18494 has been updated by ko1 (Koichi Sasada).
4 messages
2022/01/17
[#107170] Re: [Ruby master Feature#18494] [RFC] ENV["RUBY_GC_..."]= changes GC parameters dynamically
— Eric Wong <normalperson@...>
2022/01/17
> https://bugs.ruby-lang.org/issues/18494
[#107302] [Ruby master Bug#18553] Memory leak on compiling method call with kwargs — "ibylich (Ilya Bylich)" <noreply@...>
Issue #18553 has been reported by ibylich (Ilya Bylich).
4 messages
2022/01/27
[#107346] [Ruby master Misc#18557] DevMeeting-2022-02-17 — "mame (Yusuke Endoh)" <noreply@...>
Issue #18557 has been reported by mame (Yusuke Endoh).
18 messages
2022/01/29
[ruby-core:107398] [Ruby master Feature#18402] Argument Labels
From:
"pabloh (Pablo Herrero)" <noreply@...>
Date:
2022-01-31 18:14:05 UTC
List:
ruby-core #107398
Issue #18402 has been updated by pabloh (Pablo Herrero). This is a cool idea but I'm not sure about the syntax, if we eventually want Ruby to have pattern matching at the method definition level like Elixir has, using rightward assignment for this feature could eventually create a conflict. ---------------------------------------- Feature #18402: Argument Labels https://bugs.ruby-lang.org/issues/18402#change-96300 * Author: Lomig (Lomig Enfroy) * Status: Open * Priority: Normal ---------------------------------------- As a developer, I mainly program in two languages: Swift and Ruby. I love Ruby with all my heart, but I came to like a particular feature of Swift: **Argument labels** ; I would love to see them appear in Ruby. Matz on Twitter suggested I post a feature request, so here we are! # Context Naming is hard. Keyword arguments helps defining methods that are readable and allow for flexibility ordering arguments, but the result may be a little too verbose as I use to create methods like: ``` ruby def change_color_for_user_until_date(new_color:, user:, end_date:) do_something_with(new_color) do_something_else_with(user, end_date) end change_color_for_user_until_date(new_color: :blue, user: user, end_date: DateTime.tomorrow) ``` Also, that's not as readable in a "natural way" as plenty of code we can produce with Ruby. Copying Swift, I would love to have argument labels, aka the option to define a different name for the argument and its related parameter. # Right now This code is a no-go, as it would be a nightmare to maintain: (the code below is using reserved keywords so would not work in reality, but it's for the sake of clarity and the sake of the example) ```ruby def change_color(to:, for:, until:) new_color, user, end_date = to, for, until do_something_with(to) do_something_else_with(for, until) # What does this do with which data again? end change_color(to: :blue, for: user, until: DateTime.tomorrow) ``` This being said, I can simulate such a behaviour this way: (the code below is using reserved keywords so would not work in reality, but it's for the sake of clarity and the sake of the example) ```ruby def change_color(to:, for:, until:) new_color, user, end_date = to, for, until # well, those are reserved keywords, I would never be able to use them like that do_something_with(new_color) do_something_else_with(user, end_date) end change_color(to: :blue, for: user, until: DateTime.tomorrow) ``` That's not perfect though: * Not standardized enough * Conflict with reserved keywords (in reality, I would try to find synonyms? `change_color(with: :blue, regarding: user, up_until: DateTime.tomorrow)` ?) * An extra line, and not so elegant # The feature request mirroring Swift It does not have to be implemented exactly this way, of course! ```ruby def change_color(to new_color:, for user:, until end_date:) do_something_with(new_color) do_something_else_with(user, end_date) # No use of reserved keywords anymore, and readable variable name! end change_color(to: :blue, for: user, until: DateTime.tomorrow) ``` Thanks in advance for your insight on this matter, Cheers! -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>