[#44786] [ruby-trunk - Feature #2565] adding hooks for better tracing — "tenderlovemaking (Aaron Patterson)" <aaron@...>
8 messages
2012/05/01
[#44788] Re: [ruby-trunk - Feature #2565] adding hooks for better tracing
— SASADA Koichi <ko1@...>
2012/05/02
(2012/05/02 8:25), tenderlovemaking (Aaron Patterson) wrote:
[#44789] Re: [ruby-trunk - Feature #2565] adding hooks for better tracing
— SASADA Koichi <ko1@...>
2012/05/02
(2012/05/02 8:25), tenderlovemaking (Aaron Patterson) wrote:
[#44911] [ruby-trunk - Bug #6408][Open] DelegateClass#eql? and <=> don't work as expected — "tenderlovemaking (Aaron Patterson)" <aaron@...>
11 messages
2012/05/06
[#44951] [ruby-trunk - Feature #6414][Open] Destructuring Assignment — "edtsech (Edward Tsech)" <edtsech@...>
14 messages
2012/05/08
[#45001] [ruby-trunk - Bug #6425][Open] Psych issue with !!omap — "trans (Thomas Sawyer)" <transfire@...>
5 messages
2012/05/11
[#45009] [ruby-trunk - Bug #6427][Open] ruby ioctl: Error integer 2148012656 too big to convert to `int' — "hadmut (Hadmut Danisch)" <hadmut@...>
5 messages
2012/05/12
[#45014] [Backport93 - Backport #6429][Assigned] Backport r35631 - [mingw] Errno::EBADF in ruby/test_io.rb on ruby_1_9_3 — "luislavena (Luis Lavena)" <luislavena@...>
3 messages
2012/05/12
[#45015] Re: [ruby-changes:23580] luislavena:r35631 (trunk): * test/ruby/test_io.rb (class TestIO): Disable GC during IO tests to — Tanaka Akira <akr@...>
2012/5/13 luislavena <ko1@atdot.net>:
3 messages
2012/05/12
[#45035] [ruby-trunk - Bug #6433][Open] rb_thread_blocking_region(): ubf() function is executed with GVL — ibc (Iñaki Baz Castillo) <ibc@...>
12 messages
2012/05/14
[#45062] [ruby-trunk - Bug #6436][Open] Byte counting incorrect in BufferedIO (net/protocol.rb) — "jcast (Jeremie Castagna)" <jeremie.castagna@...>
6 messages
2012/05/15
[#45073] [PATCH] Ruby's port to NativeClient — Yuki Yugui Sonoda <yugui@...>
Hello Matz and rubyists,
9 messages
2012/05/16
[#45074] Re: [PATCH] Ruby's port to NativeClient
— SASADA Koichi <ko1@...>
2012/05/16
(2012/05/16 12:34), Yuki Yugui Sonoda wrote:
[#45075] Re: [PATCH] Ruby's port to NativeClient
— Yuki Yugui Sonoda <yugui@...>
2012/05/16
On Wed, May 16, 2012 at 12:43 PM, SASADA Koichi <ko1@atdot.net> wrote:
[#45102] ruby-mode maintainer? — Stefan Monnier <monnier@...>
Could the ruby-mode maintainer(s) contact me off-list?
6 messages
2012/05/17
[#45151] Re: ruby-mode maintainer?
— "NARUSE, Yui" <naruse@...>
2012/05/20
(2012/05/17 10:06), Stefan Monnier wrote:
[#45132] [ruby-trunk - Bug #6454][Open] Anonymous classes should delete tmp_classpath on dup — "tenderlovemaking (Aaron Patterson)" <aaron@...>
5 messages
2012/05/18
[#45176] [ruby-trunk - Bug #6476][Open] Proc unrolls an array even without splat — "prijutme4ty (Ilya Vorontsov)" <prijutme4ty@...>
3 messages
2012/05/22
[#45193] [ruby-trunk - Feature #6482][Open] Add URI requested to Net::HTTP request and response objects — "drbrain (Eric Hodel)" <drbrain@...7.net>
16 messages
2012/05/23
[#45268] [ruby-trunk - Feature #6482] Add URI requested to Net::HTTP request and response objects
— "mame (Yusuke Endoh)" <mame@...>
2012/05/26
[#45222] [ruby-trunk - Feature #6492][Open] Inflate all HTTP Content-Encoding: deflate, gzip, x-gzip responses by default — "drbrain (Eric Hodel)" <drbrain@...7.net>
23 messages
2012/05/24
[#45528] Re: [ruby-trunk - Feature #6492][Open] Inflate all HTTP Content-Encoding: deflate, gzip, x-gzip responses by default
— Eric Wong <normalperson@...>
2012/06/09
"drbrain (Eric Hodel)" <drbrain@segment7.net> wrote:
[#45253] [RFC] RubyVM::FrameInfo.caller method — SASADA Koichi <ko1@...>
Hi,
11 messages
2012/05/26
[#45302] Re: [RFC] RubyVM::FrameInfo.caller method
— Dice <tetradice@...>
2012/05/28
Hello.
[#45269] [ruby-trunk - Bug #6501][Open] Documentation for Exception#set_backtrace is incorrect — "djberg96 (Daniel Berger)" <redmine@...>
3 messages
2012/05/26
[#45272] [ruby-trunk - Feature #6503][Open] Support for the NPN extension to TLS/SSL — "igrigorik (Ilya Grigorik)" <ilya@...>
13 messages
2012/05/27
[ruby-core:44953] [ruby-trunk - Feature #5474] keyword argument
From:
"marcandre (Marc-Andre Lafortune)" <ruby-core@...>
Date:
2012-05-08 18:46:41 UTC
List:
ruby-core #44953
Issue #5474 has been updated by marcandre (Marc-Andre Lafortune).
Hi,
mame (Yusuke Endoh) wrote:
> ## Marc-Andre's hash decomposition [ruby-core:41772]
>
> Unfortunately, matz is not so positive. [ruby-core:41822]
Maybe I misread Matz' comment, but I understood he was not sure yet.
In any case, a new feature request (#6414) was just opened, so we can discuss there.
----------------------------------------
Feature #5474: keyword argument
https://bugs.ruby-lang.org/issues/5474#change-26540
Author: mame (Yusuke Endoh)
Status: Closed
Priority: Normal
Assignee: mame (Yusuke Endoh)
Category: core
Target version: 2.0.0
Hello,
I'm sending a patch for keyword arguments.
(This feature had been discussed in #5454, but I'm re-creating
a new ticket because the old ticket was resigtered in ruby-dev)
Matz himself proposed this feature. It is also basically
promised to include the feature in 2.0. [ruby-core:39837]
I'm planning to commit the patch after it is reviewed by koichi.
But the detail of the spec is not fixed yet, and may be changed
drastically.
We would like to hear your comments and suggestions, especially,
with a use case and/or an actual experience.
The background of this proposal is that, in the recent Ruby,
the last argument (as a Hash) is often used to pass optional
information. This feature is intended to aid the style.
Look an example:
def create_point(x, y, color: "white", size: 1)
# keyword arguments ^^^^^^^^^^^^^^^^^^^^^^^ here!
p [x, y, color, size]
end
create_point(2, 3, color: "red")
#=> [2, 3, "red", 1]
The caller size is a traditional hash argument notation.
This feature is Hash parsing in the callee side.
(So it is more suitable to call it "keyword parameter."
But I use "keyword argument" because everyone calls so.)
We can implement the similar behavior in pure Ruby. However,
this feature is easier to read/write, and richer in the some
aspects:
- it raises an TypeError when unknown keyword is given
create_point(2, 3, style: "solid")
#=> unknown keyword (TypeError)
- you can use ** argument to suppress the TypeError and/or
to get the given hash itself:
def create_point(x, y, color: "white", size: 1, **h)
p [x, y, color, size, h]
end
create_point(2, 3, style: "solid")
#=> [2, 3, "red", 1, {:style=>"solid"}]
- it is easily used even when there is a rest argument
def create_point(x, y, *r, color: "solid", size: 1)
...
end
(a complex and non-essential code is required to
implement the same behavior in pure Ruby)
- there is room for optimizing the speed (though I have
not done any optimization yet)
An alternative design is to treat all parameters as keyword
arguments (as Evan said in [ruby-core:40195]).
def create_point(x, y, color = "white", size = 1)
p [x, y, color, size]
end
create_point(color: "red", x: 2, y: 3)
#=> [2, 3, "red", 1]
Actually I also like this, but I'm afraid if it is too flexible
and seems difficult to implement and optimize.
Thanks,
--
Yusuke Endoh <mame@tsg.ne.jp>
--
http://bugs.ruby-lang.org/