[#44566] [Ruby 1.9 - Bug #5386][Open] FiberオブジェクトのGC時にSEGV — Kazuki Tsujimoto <kazuki@...>
[#44581] [Ruby 1.9 - Bug #5419][Open] FileUtils.cp_rの:preserveの動作 — Masatoshi Seki <seki@...>
[#44589] [Ruby 1.9 - Bug #5429][Open] 64ビットなFreeBSDのioctlでビット31が1なリクエストの時の不具合 — Makoto Kishimoto <redmine@...>
2011年11月14日11:25 Tomoyuki Chikanaga <nagachika00@gmail.com>:
[#44604] Ruby 2.0 release plan — "NARUSE, Yui" <naruse@...>
ささださんが既にいくつか 2.0 関連のメールを投げていらっしゃいますが、
sora_h です.
On 10/18/2011 03:49 PM, Shota Fukumori (sora_h) wrote:
RUBY_VERSION の存在をすっかり忘れていました.なるほど.
遠藤です。
2011年10月18日17:41 Yusuke Endoh <mame@tsg.ne.jp>:
遠藤です。
2011年10月18日17:43 Yusuke Endoh <mame@tsg.ne.jp>:
遠藤です。
まつもとさん
まつもと ゆきひろです
まつもと ゆきひろです
(2011/10/18 16:15), Yukihiro Matsumoto wrote:
まつもと ゆきひろです
On 10/18/2011 10:16 PM, Yukihiro Matsumoto wrote:
まつもと ゆきひろです
たとえば2.0の次のバージョン番号はどうしますか?
2011年10月20日3:31 Urabe Shyouhei <shyouhei@ruby-lang.org>:
まつもと ゆきひろです
On 10/20/2011 01:45 PM, Yukihiro Matsumoto wrote:
In message <CAK6Hhsqwv0wh8OVBb3Z5BQrh3-7dLHhL-pXvW+CBv8U1rayYZg@mail.gmail.com>
なかだです。
まつもと ゆきひろです
(2011/10/20 13:36), Yukihiro Matsumoto wrote:
まつもと ゆきひろです
(2011/10/20 23:36), Yukihiro Matsumoto wrote:
[#44680] [Ruby 2.0 - Feature #5454] keyword arguments — Yusuke Endoh <mame@...>
[#44688] [ruby-trunk - Bug #5475][Open] r33507以降SolarisでPTYが使えない — Naohisa Goto <ngotogenome@...>
2011年10月24日16:56 Naohisa Goto <ngotogenome@gmail.com>:
On Mon, 24 Oct 2011 18:43:39 +0900
[#44702] Re: [ruby-cvs:40712] nobu:r33534 (trunk): * configure.in (RUBY_FUNC_ATTRIBUTE): unset temporary variable. — Tanaka Akira <akr@...>
2011/10/27 <nobu@ruby-lang.org>:
boronのお守りをしている西田です.
2011年10月27日19:54 Yuya.Nishida. <yuya@j96.org>:
[#44707] [ruby-trunk - Feature #5512][Open] Integer#/ の改訂 — tadayoshi funaba <redmine@...>
まつもと ゆきひろです
遠藤です。
[#44713] Re: [ruby-changes:21512] akr:r33561 (trunk): * configure.in: check dup3. — KOSAKI Motohiro <kosaki.motohiro@...>
(ruby-devへ河岸をうつします)
[#44719] [ruby-trunk - Feature #5520][Open] Numeric#exact?、Numeric#inexact? の追加 — tadayoshi funaba <redmine@...>
[#44720] [ruby-trunk - Feature #5521][Open] Numeric#rational?、Numeric#complex?、Numeric#float? の追加 — tadayoshi funaba <redmine@...>
まつもと ゆきひろです
むらたです。
[#44734] IO.select timeout — Tanaka Akira <akr@...>
気がついたのですが、IO.select で、timeout を使ったとき、
> 気がついたのですが、IO.select で、timeout を使ったとき、
[#44735] [ruby-trunk - Feature #2968] 数値の正負を返すメソッド — Kenta Murata <muraken@...>
[ruby-dev:44685] [ruby-trunk - Feature #5454][Rejected] keyword arguments
Issue #5454 has been updated by Yusuke Endoh.
Status changed from Assigned to Rejected
すみません、メールがあちこちに言って議論が混乱しそうですね。
一度 close して立て直します。
Sorry for scattering the mails and confusing the discussion.
I close this once and I'll create a new ticket.
--
Yusuke Endoh <mame@tsg.ne.jp>
----------------------------------------
Feature #5454: keyword arguments
http://redmine.ruby-lang.org/issues/5454
Author: Yusuke Endoh
Status: Rejected
Priority: Normal
Assignee: Koichi Sasada
Category:
Target version:
遠藤です。
キーワード引数を実装してみました。
$ cat t.rb
def foo(str: "foo", num: 424242)
p [str, num]
end
foo(str: "bar")
$ ./ruby t.rb
["bar", 424242]
細かいことはまだ気にしていませんが、キーワード引数が 2.0 に入る
ことはかなり確定的なので、とりあえず trunk に入れて考えるという
のはどうでしょうか。
一応私の環境では make check は通ります (キーワード引数のテスト
は書いてないですが) 。パーサに conflict はないです。
既存のベンチマークを見ると、一部気になる項目もありますが (vm1_
rescue とか) 、全体的には特に速度劣化しないようです。
以下は未検討・未実装の細かいことです。
- 残りのキーワード引数を受け取る方法が必要?
def foo(str: "foo", num: 424242, **h)
p h
end
foo(str: "bar", check: true) #=> { :check => true }
- nil が渡されたらやはり nil になるべき?
def foo(str: "foo")
p str
end
foo(str: nil) #=> nil ? (今は手抜きで "foo")
- rest なしで知らないキーワードが来たら例外・警告を発して
欲しい?
def foo(str: "foo", num: 424242)
end
foo(check: true) #=> ArgumentError?
- Hash のように振る舞うオブジェクトもキーワード引数として
解釈すべき? (現在は速度重視で T_HASH だけ見ている)
- 引数の順番はこれでよいか?
def foo(
a, b, c, # mandatory arguments
opt = 1, # optional arguments
*rest, # rest argument
x, y, z, # post mandatory arguments
k1: 1, k2:2, # keyword arguments
**kh, # keyword rest argument
&blk # block argument
)
- 他いろいろ
benchmark results:
name ruby 1.9.4dev (2011-10-16 trunk 33471) [i686-linux] ruby 1.9.4dev (2011-10-16 trunk 33471) [i686-linux] average difference
app_answer 0.259 0.131 -0.127
app_erb 2.699 2.681 -0.018
app_factorial 5.236 5.320 0.084
app_fib 1.576 1.731 0.154
app_mandelbrot 4.324 3.911 -0.413
app_pentomino 40.882 40.768 -0.114
app_raise 0.966 0.982 0.017
app_strconcat 3.143 3.102 -0.041
app_tak 2.192 2.140 -0.052
app_tarai 1.682 1.748 0.066
app_uri 1.870 1.767 -0.103
io_file_create 2.589 2.570 -0.019
io_file_read 6.169 5.838 -0.330
io_file_write 1.966 1.976 0.010
io_select 3.066 3.111 0.044
io_select2 3.647 3.623 -0.025
io_select3 0.051 0.051 0.000
loop_for 3.302 3.219 -0.082
loop_generator 1.111 1.102 -0.009
loop_times 2.959 2.960 0.001
loop_whileloop 1.437 1.422 -0.016
loop_whileloop2 0.298 0.297 -0.001
so_ackermann 1.862 1.816 -0.046
so_array 3.317 3.473 0.155
so_binary_trees 0.891 0.900 0.009
so_concatenate 9.538 8.696 -0.842
so_count_words 0.412 0.407 -0.005
so_exception 2.185 2.177 -0.008
so_fannkuch 3.338 3.334 -0.004
so_fasta 5.182 5.061 -0.121
so_k_nucleotide 3.425 3.324 -0.101
so_lists 2.239 2.312 0.073
so_mandelbrot 11.479 10.660 -0.820
so_matrix 2.206 2.177 -0.030
so_meteor_contest 11.479 11.634 0.155
so_nbody 8.006 7.925 -0.081
so_nested_loop 2.768 2.614 -0.154
so_nsieve 6.163 6.184 0.021
so_nsieve_bits 6.618 6.850 0.231
so_object 1.807 1.899 0.091
so_partial_sums 11.057 10.537 -0.520
so_pidigits 2.944 3.011 0.066
so_random 1.962 1.992 0.031
so_reverse_complement 3.136 3.036 -0.099
so_sieve 2.224 2.203 -0.021
so_spectralnorm 7.981 7.591 -0.390
vm1_block* 3.790 5.112 1.306
vm1_const* 0.756 0.757 -0.015
vm1_ensure* 0.487 0.601 0.099
vm1_ivar* 1.634 1.863 0.213
vm1_ivar_set* 1.625 1.661 0.021
vm1_length* 1.312 1.366 0.038
vm1_neq* 1.152 0.979 -0.189
vm1_not* 0.589 0.589 -0.015
vm1_rescue* 0.133 0.750 0.601
vm1_simplereturn* 2.467 3.601 1.119
vm1_swap* 1.199 1.716 0.502
vm2_array* 1.644 1.643 -0.001
vm2_case* 0.324 0.348 0.023
vm2_defined_method* 8.829 9.003 0.173
vm2_eval* 39.557 37.726 -1.832
vm2_method* 5.255 4.113 -1.142
vm2_mutex* 3.043 3.175 0.131
vm2_poly_method* 6.044 5.340 -0.705
vm2_poly_method_ov* 0.493 0.675 0.181
vm2_proc* 1.297 1.391 0.093
vm2_regexp* 2.419 2.557 0.137
vm2_send* 0.662 0.903 0.241
vm2_super* 1.107 1.016 -0.093
vm2_unif1* 0.688 0.816 0.127
vm2_zsuper* 1.210 1.068 -0.143
vm3_clearmethodcache 0.785 0.770 -0.014
vm3_gc 2.487 2.453 -0.033
vm_thread_alive_check1 0.389 0.422 0.033
vm_thread_create_join 6.064 6.181 0.118
vm_thread_mutex1 2.349 2.546 0.197
vm_thread_mutex2 10.123 7.755 -2.368
vm_thread_mutex3 4.428 5.390 0.962
vm_thread_pass 0.692 0.754 0.063
vm_thread_pass_flood 0.167 0.170 0.003
vm_thread_pipe 2.437 2.540 0.103
-----------------------------------------------------------
average total difference is -3.4518661499023438
--
Yusuke Endoh <mame@tsg.ne.jp>
--
http://redmine.ruby-lang.org