[#44036] [ruby-trunk - Feature #6242][Open] Ruby should support lists — "shugo (Shugo Maeda)" <redmine@...>
[#44084] [ruby-trunk - Bug #6246][Open] 1.9.3-p125 intermittent segfault — "jshow (Jodi Showers)" <jodi@...>
[#44156] [ruby-trunk - Feature #6265][Open] Remove 'useless' 'concatenation' syntax — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>
Hi,
(2012/04/09 14:19), Yukihiro Matsumoto wrote:
[#44163] [ruby-trunk - Bug #6266][Open] encoding related exception with recent integrated psych — "jonforums (Jon Forums)" <redmine@...>
[#44233] [ruby-trunk - Bug #6274][Open] Float addition incorrect — "swanboy (Michael Swan)" <swanyboy4@...>
[#44303] [ruby-trunk - Feature #6284][Open] Add composition for procs — "pabloh (Pablo Herrero)" <pablodherrero@...>
[#44329] [ruby-trunk - Feature #6287][Open] nested method should only be visible by nesting/enclosing method — "botp (bot pena)" <botpena@...>
[#44349] [ruby-trunk - Feature #6293][Open] new queue / blocking queues — "tenderlovemaking (Aaron Patterson)" <aaron@...>
On Sat, Apr 14, 2012 at 10:58:12AM +0900, mame (Yusuke Endoh) wrote:
Hi,
On Mon, Apr 16, 2012 at 06:25:59PM +0900, SASADA Koichi wrote:
[#44372] Possible merge error of code in Issue 4651 on to Ruby 1.9.3-p125? — "Blythe,Aaron" <ABLYTHE@...>
tl;dr I believe I have uncovered a merge error to ruby 1.9.3-p125 from Issue 4651. Please advise if this is the same issue, or if a separate issue needs to be logged. Details below.
[#44431] [Backport93 - Backport #6314][Open] Backport r35374 and r35375 — "drbrain (Eric Hodel)" <drbrain@...7.net>
[#44432] [ruby-trunk - Feature #6315][Open] handler to trace output of each line of code executed — "ankopainting (Anko Painting)" <anko.com+ruby@...>
[#44533] [ruby-trunk - Bug #6341][Open] SIGSEGV: Thread.new { fork { GC.start } }.join — "rudolf (r stu3)" <redmine@...>
Hello,
On Mon, Apr 23, 2012 at 11:17 PM, Yusuke Endoh <mame@tsg.ne.jp> wrote:
Hello,
(4/24/12 6:55 AM), Yusuke Endoh wrote:
> kosaki (Motohiro KOSAKI) wrote:
[#44540] [ruby-trunk - Bug #6343][Open] Improved Fiber documentation — "andhapp (Anuj Dutta)" <anuj@...>
[#44612] [ruby-trunk - Feature #6354][Open] Remove escape (break/return/redo/next support) from class/module scope — "ko1 (Koichi Sasada)" <redmine@...>
[#44630] [ruby-trunk - Feature #6361][Open] Bitwise string operations — "MartinBosslet (Martin Bosslet)" <Martin.Bosslet@...>
On Fri, Apr 27, 2012 at 8:53 PM, MartinBosslet (Martin Bosslet)
On Saturday, April 28, 2012 at 8:52 AM, KOSAKI Motohiro wrote:
[#44636] [ruby-trunk - Bug #6364][Open] Segmentation fault happend when running test_cptr.rb — "raylinn@... (ray linn)" <raylinn@...>
[#44667] possible YAML bug in ruby 1.9.3p125? — Young Hyun <youngh@...>
YAML in ruby 1.9.3p125 seems to have a bug reading in YAML from older Ruby versions. Specifically, YAML in 1.9.3p125 mis-parses text like "123_456" as a number (just as in Ruby) rather than as a string, which appears to be the correct behavior according to the YAML specification.
[#44686] [BUG] not a node 0x07 — ronald braswell <rpbraswell@...>
Running ruby 1.8.6 on Solaris 10.
2012/4/28 ronald braswell <rpbraswell@gmail.com>:
I have heard reports of this on 1.9.x. Do you know if this problem has
[#44704] [ruby-trunk - Feature #6373][Open] public #self — "trans (Thomas Sawyer)" <transfire@...>
Issue #6373 has been updated by Marc-Andre Lafortune.
[#44743] [ruby-trunk - Feature #6375][Open] Python notation for literal Hash — "alexeymuranov (Alexey Muranov)" <redmine@...>
[#44748] [ruby-trunk - Feature #6376][Open] Feature lookup and checking if feature is loaded — "trans (Thomas Sawyer)" <transfire@...>
On Thu, May 3, 2012 at 6:02 AM, mame (Yusuke Endoh) <mame@tsg.ne.jp> wrote:
[ruby-core:44590] [ruby-trunk - Feature #5474][Closed] keyword argument
Issue #5474 has been updated by mame (Yusuke Endoh).
Status changed from Assigned to Closed
Sorry for leaving this ticket for a long time.
Nobu improved the implementation of keyword argument.
Let's check the current situation.
And then, I'd like to file tickets for each remaining issues, and
close this ticket. Please let me know if I miss something.
## ** with no keyword [ruby-core:40518] [ruby-core:41772]
The following DOES work currently. Thanks nobu!
def foo(x, **h)
p [x, h]
end
foo(1) #=> [1, {}]
foo(1, key: 42) #=> [1, {key: 42}]
foo(1, 2) #=> wrong number of arguments (2 for 1)
## Method#parameters with keyword argument [ruby-core:40518]
The following DOES work currently.
def foo(k1: 42, k2: 42, **kr)
end
p method(:foo).parameters
#=> [[:key, :k1], [:key, :k2], [:keyrest, :kr]]
## caller-side ** [ruby-core:40518]
The following does NOT work.
h = {x: 42}
foo(**h)
Unfortunately, it is not trivial for me to implement.
I'll explain the detail in a separate ticket.
## alternative syntax proposal
As far as I know, there is no proposal that matz approved.
It looks difficult to me to change the syntax, because matz seems to
like "**" very much. [ruby-core:41822]
## Marc-Andre's hash decomposition [ruby-core:41772]
Unfortunately, matz is not so positive. [ruby-core:41822]
## ArgumentError message related to keyword argument
Currently, "unknown keyword" error shows which keyword is missing:
def a(k: 42)
end
a(foo: 42)
# => unknown keyword: foo (ArgumentError)
There is another proposal about "wrong number of arguments" error.
See: http://bugs.ruby-lang.org/issues/6086
## changing stdlib API to use keyword arguments [ruby-core:42037]
I think we should progress it, without breaking compatibility.
But currently, I don't know which API is the target.
Please file a ticket if you find such an API.
--
Yusuke Endoh <mame@tsg.ne.jp>
----------------------------------------
Feature #5474: keyword argument
https://bugs.ruby-lang.org/issues/5474#change-26163
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/