[#39810] 2.0 feature questionnaire — SASADA Koichi <ko1@...>
I made a questionnaire "What do you want to introduce in 2.0?" in my
2011/10/1 SASADA Koichi <ko1@atdot.net>:
Hi,
On Sun, Oct 2, 2011 at 1:30 AM, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
Oops, I was mentioned.
See below.
(10/07/2011 02:19 PM), Evan Phoenix wrote:
>> No, it isn't. VM-aware extensions shall obey the MVM-safe APIs.
2011/10/1 SASADA Koichi <ko1@atdot.net>:
On Monday, October 24, 2011 at 10:29 PM, Charles Oliver Nutter wrote:
On Mon, Oct 24, 2011 at 10:29 PM, Charles Oliver Nutter <headius@headius.com
On Tue, Oct 25, 2011 at 3:51 PM, Rocky Bernstein <rockyb@rubyforge.org> wrote:
On Tue, Oct 25, 2011 at 1:51 PM, Rocky Bernstein <rockyb@rubyforge.org>wrote:
On Wed, Oct 26, 2011 at 12:43 AM, Tim Felgentreff <tim@nada1.de> wrote:
[#39823] Discussion results — SASADA Koichi <ko1@...>
Hi,
I did not have the fortune of attending the discussion, but I would
Hi,
Hello Matz,
Hello,
On Mon, Oct 3, 2011 at 8:16 AM, Yusuke Endoh <mame@tsg.ne.jp> wrote:
Hello,
How does String#margin behave when given irregular input?
On Mon, Oct 3, 2011 at 11:05 AM, Jim Freeze <jimfreeze@gmail.com> wrote:
Sent from my iPad
On Mon, Oct 3, 2011 at 1:52 PM, Gmail <jimfreeze@gmail.com> wrote:
On Mon, Oct 3, 2011 at 14:16, Yusuke Endoh <mame@tsg.ne.jp> wrote:
[#39824] Road to 2.0 — SASADA Koichi <ko1@...>
Hi,
Hello,
[#39886] [Ruby 1.9 - Bug #5393][Open] some style fixes in enum.c docs — b t <redmine@...>
[#39888] [Ruby 1.9 - Feature #5394][Open] Anonymous Symbols, Anonymous Methods — Kurt Stephens <ks.ruby@...>
[#39915] [Ruby 1.9 - Feature #5400][Open] Remove flip-flops in 2.0 — Magnus Holm <judofyr@...>
Hello,
[#39918] [Ruby 1.9 - Bug #5401][Open] Ruby 1.9.3 interpreter crash — Conrad Taylor <conradwt@...>
[#39937] redmine 2.0 tracker — SASADA Koichi <ko1@...>
There is no 2.0 tracker (sub-project) in redmine.
[#39957] [Ruby 1.9 - Bug #5407][Open] Cannot build ruby-1.9.3-rc1 with TDM-GCC 4.6.1 on Windows XP SP3 — Heesob Park <phasis@...>
[#39986] problems with Refinements — Shugo Maeda <shugo@...>
Hi,
There are also the group of people that think refinements are just a
Hi,
> Unfortunately, I missed Brian's talk, so we have to wait until the
Hi,
> I am not sure why
On Fri, Oct 7, 2011 at 6:02 AM, Steve Klabnik <steve@steveklabnik.com>wrote:
[#39993] [Ruby 1.9 - Feature #2348] RBTree Should be Added to the Standard Library — David Graham <david.malcom.graham@...>
(2011.10.07 01:50 ), David Graham wrote:
On 07/10/2011, at 1:16 PM, Kenta Murata wrote:
(2011/10/07 1:50), David Graham wrote:
On Thu, Oct 6, 2011 at 6:34 PM, SASADA Koichi <ko1@atdot.net> wrote:
[#40058] Statistical Profiling — Perry Smith <pedzsan@...>
Would it be plausible to somehow, get the (ruby) stack of the running ruby process (or a particular thread), periodically? For example, every 10 seconds.
[#40073] [Ruby 1.9 - Feature #5427][Open] Not complex patch to improve `require` time (load.c) — Yura Sokolov <funny.falcon@...>
[#40117] [Ruby 1.9 - Bug #5437][Open] Using fibers leads to huge memory leak — Robert Pankowecki <robert.pankowecki@...>
[#40138] [Ruby 1.9 - Feature #5444][Open] Object.free — Thomas Sawyer <transfire@...>
[#40172] plans for 2.0. — Carter Cheng <cartercheng@...>
Hello,
2011/10/17 Carter Cheng <cartercheng@gmail.com>:
[#40188] [Ruby 2.0 - Feature #5454] keyword arguments — Yukihiro Matsumoto <matz@...>
This looks very interesting! Would someone be willing to translate to english? I've only got a vague idea of what is being discussed.
Hi,
Hi,
Thanks for the translation!
From the current patch it seems to me that this would raise an ArgumentError, as it does now. Neither name nor age are "keyword arguments". There is no way to define keyword arguments without a default.
On Tue, Oct 18, 2011 at 1:33 AM, Haase, Konstantin <
[#40200] [Ruby 1.9 - Bug #5459][Open] Silence -Wmissing-declarations and -Wold-style-definition warnings in mkmf — Nikolai Weibull <now@...>
[#40203] invoking garbage_collect in gc.c — Carter Cheng <cartercheng@...>
Hello,
[#40259] Counseling — Perry Smith <pedzsan@...>
Ruby and I are back in counseling... Its always the same thing with her. "I'm throwing an Encoding exception!!!"
What's your $LC_CTYPE? What OS are you on?
Hi all,
Gon軋lo Silva wrote:
On Oct 21, 2011, at 9:43 AM, Perry Smith wrote:
To try and cut to the core of the issue: in Ruby 1.8 it was common practice to use the String class to represent both "proper strings" as well as a "bag-o-bytes". In Ruby 1.9, you can only properly use the String class to represent "proper strings". For a "bag-o-bytes" we're left with Array, but there are times when Array is not the right abstraction (e.g. reading data from a socket, identifying a start and stop token, and writing the bytes between to a file on disk). Also, the "BINARY" encoding is not the right abstraction, because you still have an object which will worry about encodings and, due to Ruby always trying to do "the right thing", bugs can be very difficult to track down. Consider:
> What Ruby needs (IMHO), is the equivalent of Obj-C's NSData class. That is,
On Saturday, October 22, 2011 at 12:43 PM, Jon wrote:
[#40271] Can rubygems save us from "binary-compatibility hell"? — Yusuke Endoh <mame@...>
Hello, rubygems developers --
Dne 22.10.2011 4:48, Yusuke Endoh napsal(a):
On Oct 31, 2011, at 2:41 PM, V咜 Ondruch wrote:
Dne 1.11.2011 0:05, Eric Hodel napsal(a):
On Nov 1, 2011, at 2:03 PM, V咜 Ondruch wrote:
Forwarding this again to ruby-core as received a postmaster delivery failure.
Hello,
On Thu, Nov 10, 2011 at 4:38 PM, Yusuke Endoh <mame@tsg.ne.jp> wrote:
Hello,
2011/11/10 Yusuke Endoh <mame@tsg.ne.jp>:
Hello,
[#40281] [Ruby 2.0 - Bug #5470][Open] r33507 and r33508 break the build under MinGW — Luis Lavena <luislavena@...>
[#40284] set_trace_func changed? — Intransition <transfire@...>
Did something change about `set_trace_func` between 1.8.7 and 1.9.3?
[#40290] [ruby-trunk - Feature #5474][Assigned] keyword argument — Yusuke Endoh <mame@...>
More refinement below. I think we're on a good path here.
Hi,
On Wed, Oct 26, 2011 at 2:08 PM, Yukihiro Matsumoto <matz@ruby-lang.org>wrote:
Hi,
On Wed, Oct 26, 2011 at 7:30 PM, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
Hi,
On Thu, Oct 27, 2011 at 3:16 AM, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
Hi,
Hi,
Hi,
See below.
Hi,
> |> It's Python way, and I won't take it.
[#40311] [ruby-trunk - Feature #5478][Open] import Set into core, add syntax — Konstantin Haase <Konstantin.Haase@...>
On 2011-12-04, at 16:15:00, Alexey Muranov wrote:
[#40312] [ruby-trunk - Feature #5479][Open] import StringIO into core, add String#to_io — Konstantin Haase <Konstantin.Haase@...>
On Tue, Oct 25, 2011 at 10:14:54PM +0900, Charles Nutter wrote:
My main request was to add String#to_io, as Aaron described, so this protocol can actually be used. This is the only reason why I proposed moving StringIO to core. We could also add String#to_io as a monkey-patch to String in stringio in the stdlib.
On Wed, Oct 26, 2011 at 02:22:21AM +0900, Haase, Konstantin wrote:
[#40314] [ANN] 2011 Call for grant proposals — Shugo Maeda <shugo@...>
Hello,
Hello,
> Ruby reference manual for you, me and everyoneApplicant: Yutaka Hara
[#40316] [ruby-trunk - Feature #5481][Open] Gemifying Ruby standard library — Hiroshi Nakamura <nakahiro@...>
On Tue, Oct 25, 2011 at 14:45, Intransition <transfire@gmail.com> wrote:
[#40322] [ruby-trunk - Feature #5482][Open] Rubinius as basis for Ruby 2.0 — Thomas Sawyer <transfire@...>
Come back when all 1.9 features and callcc are implemented :-)
(2011/10/25 12:46), Yusuke Endoh wrote:
On Mon, Oct 24, 2011 at 9:58 PM, SASADA Koichi <ko1@atdot.net> wrote:
On Tue, Oct 25, 2011 at 11:45 PM, Tim Felgentreff <tim@nada1.de> wrote:
[#40356] JIT development for MRI — Carter Cheng <cartercheng@...>
Hello,
Hello Charlie,
Hi,
Dear Koichi SASADA,
I noticed that you used context threading in YARV. Do you have some analysis
Thanks for reference.
Thanks Koichi.
On Wed, Oct 26, 2011 at 6:43 PM, Carter Cheng <cartercheng@gmail.com> wrote:
Hi Carter,
Thanks Koichi. How do profiling based approaches differ from trace recording
[#40412] [ruby-trunk - Bug #5486][Open] rb_stat() doesn’t respect input encoding — Nikolai Weibull <now@...>
On Fri, Oct 28, 2011 at 07:28, Usaku NAKAMURA <redmine@ruby-lang.org> wrote:
On Fri, Oct 28, 2011 at 08:14, Nikolai Weibull <now@bitwi.se> wrote:
On Sun, Mar 11, 2012 at 22:41, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
Hello,
2012/3/15 U.Nakamura <usa@garbagecollect.jp>:
[#40427] cfp consistency error — Aaron Patterson <tenderlove@...>
Hi, I'm getting a cfp consistency error when I use trunk ruby. Here is
[#40453] Test case format — Jon <jon.forums@...>
I see no mention of a required (or preferred) test case format after reviewing:
2011/10/27 Jon <jon.forums@gmail.com>:
[#40489] [ruby-trunk - Bug #5497][Open] Math.log10(10_000) error on HP-UX/PA — The Written Word Inc <bugs-ruby@...>
[#40492] [ruby-trunk - Feature #5505][Open] BasicObject#__extend__ — Thomas Sawyer <transfire@...>
[#40527] [ANN] Ruby 1.9.3-p0 is out — "Yuki Sonoda (Yugui)" <yugui@...>
-----BEGIN PGP SIGNED MESSAGE-----
Hello,
On Sun, Oct 30, 2011 at 11:11 PM, Luis Lavena <luislavena@gmail.com> wrote:
On Sun, Oct 30, 2011 at 11:20 AM, Yugui <yugui@yugui.jp> wrote:
> On Sun, Oct 30, 2011 at 11:20 AM, Yugui <yugui@yugui.jp> wrote:
[#40562] [ruby-trunk - Bug #5525][Open] UDPSocket#bind(ip, port) fails under IPv6 => Errno::EAFNOSUPPORT — Iñaki Baz Castillo <ibc@...>
[#40571] [ruby-trunk - Bug #5529][Open] Bus error with Fibers on OSX Lion — Dave Thomas <dave@...>
[#40586] [ruby-trunk - Feature #5531][Open] deep_value for dealing with nested hashes — Kyle Peyton <kylepeyton@...>
[ruby-core:40188] [Ruby 2.0 - Feature #5454] keyword arguments
Issue #5454 has been updated by Yukihiro Matsumoto.
|細かいことはまだ気にしていませんが、キーワード引数が 2.0 に入る
|ことはかなり確定的なので、とりあえず trunk に入れて考えるという
|のはどうでしょうか。
賛成です。trunkに入れちゃっていいのかな。そういう機能の入っ
ていない1.9ブランチが欲しい人は急いで切ったほうがいいと思い
ますよ。
|以下は未実装・懸案です。
|
| - 残りのキーワード引数を受け取る方法が必要か
|
| 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")
nilになるべきでしょう。
| - rest なしで知らないキーワードが来たら例外・警告を発して
| 欲しい?
|
| def foo(str: "foo", num: 424242)
| end
| foo(check: true) #=> ArgumentError?
ここは議論の余地があるところですね。現時点では、**で受け取ら
ない限り例外にするべきだと考えていますが、実際にいろいろな局
面で使ってみると意見が変わるかもしれません。
| - Hash のように振る舞うオブジェクトもキーワード引数として
| 解釈すべき? (現在は速度重視で T_HASH だけ見ている)
とりあえずto_hashを使ってください。新設のto_kwのようなメソッ
ドを使うべきなのかもしれませんが。
| - 引数の順番はよいか
|
| 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
| )
これで良いと思います。
まつもと ゆきひろ /:|)
----------------------------------------
Feature #5454: keyword arguments
http://redmine.ruby-lang.org/issues/5454
Author: Yusuke Endoh
Status: Assigned
Priority: Normal
Assignee: Yukihiro Matsumoto
Category:
Target version: 2.0.0
遠藤です。
キーワード引数を実装してみました。
$ 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