[#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:40518] Re: [ruby-trunk - Feature #5474][Assigned] keyword argument
Hi,
On 23 October 2011 14:53, Yusuke Endoh <mame@tsg.ne.jp> wrote:
>
> Issue #5474 has been reported by Yusuke Endoh.
>
> ----------------------------------------
> Feature #5474: keyword argument
> http://redmine.ruby-lang.org/issues/5474
>
> Author: Yusuke Endoh
> Status: Assigned
> Priority: Normal
> Assignee: Koichi Sasada
> Category: core
> Target version:
>
>
> Hello,
>
> I'm sending a patch for keyword arguments.
>
> (This feature had been discussed in #5454, but I'm re-creating
> new ticket because the old ticket was resigtered in ruby-dev)
>
>
> Matz himself proposed this feature. t 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. his feature is intended to aid the style.
>
> Look an example:
>
> ef create_point(x, y, color: "white", size: 1)
> keyword arguments ^^^^^^^^^^^^^^^^^^^^^^ here!
>
> [x, y, color, size]
> nd
>
> reate_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."
> ut I use "keyword argument" because everyone calls so.)
>
>
> We can implement the similar behavior in pure Ruby. owever,
> this feature is easier to read/write, and richer in the some
> aspects:
>
> - it raises an TypeError when unknown keyword is given
>
> reate_point(2, 3, style: "solid")
> => unknown keyword (TypeError)
>
> - you can use ** argument to suppress the TypeError and/or
> o get the given hash itself:
>
> ef create_point(x, y, color: "white", size: 1, **h)
> [x, y, color, size, h]
> nd
> reate_point(2, 3, style: "solid")
> => [2, 3, "red", 1, {:style=>"solid"}]
>
> - it is easily used even when there is a rest argument
>
> ef create_point(x, y, *r, color: "solid", size: 1)
> ..
> nd
>
> 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
> ot done any optimization yet)
>
>
>
> An alternative design is to treat all parameters as keyword
> arguments (as Evan said in [ruby-core:40195]).
>
> ef create_point(x, y, color = "white", size = 1)
> [x, y, color, size]
> nd
> reate_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://redmine.ruby-lang.org
>
>
It sounds great!
I agree mandatory keyword arguments should be positional arguments and
all parameters should not be treated as keyword arguments.
I have a few questions/remarks:
1) What is the way to pass keyword arguments ?
I would guess `**h` like:
def meth(a, **h)
other(a, **h)
end # => syntax error
BTW, using **h in the argument list does not seems to work in some cases for me:
def a(**h)
end # => syntax error, unexpected tPOW
def m(k: nil, **h, &block)
end
m() # => undefined method `key?' for nil:NilClass
2) I'm a bit dubious about the `**h` syntax to get (and I guess to
pass) a Hash though.
I know it's the way it's done in Python, but I don't like it
(esthetically), especially when it is used to pass the Hash:
def meth(a, *r, **h)
other(a, *r, **h)
end
I believe `*args` is appropriate for the rest argument, because the
star is the splat operator.
I cannot think of any clear logic like that for `**h` except "another
rest argument".
Also `**` is the power operator, which is unrelated.
Something related to `{}`, the literal Hash syntax, would fit better
in my opinion.
Do you have any idea of an alternate syntax to `**h` ?
(Or maybe we should introduce `a, b = **h` as a joke for `a, b =
h.values_at(:a, :b)`)
3) What would {Proc,Method,UnboundMethod}#parameters returns for
keywords arguments ?
def meth(mandatory, optional = nil, *rest, post, keyw: nil, **h, &block)
end
p method(:meth).parameters
Currently: [[:req, :mandatory], [:opt, :optional], [:rest, :rest],
[:req, :post], [:block, :block]]
Something like:
[[:req, :mandatory], [:opt, :optional], [:rest, :rest], [:req, :post],
[:key, :keyw], [:keyrest, :h], [:block, :block]] ?
4) I noticed a few problems while experimenting:
def a(k: :a, **h)
p [k,h]
end
a(:b, c: :d, e: :f) # => wrong number of arguments (2 for 0) (ArgumentError)
It should be "1 for 0"
def a(k: :a)
p [k,h]
end
a(r: :a) # => unknown keyword (TypeError)
It should say which keyword is missing (and an ArgumentError rather
than TypeError, no?).
(Of course I do not expect the current patch to pass these details, I
just mention them to be sure they will be considered.)