[#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> wro=
Oops, I was mentioned.
See below.
(10/07/2011 02:19 PM), Evan Phoenix wrote:
>> No, it isn't. =A0MVM-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:
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 =
[#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=21 Would someone be willing to translate to e=
Hi,
Hi,
Thanks for the translation=21
RnJvbSB0aGUgY3VycmVudCBwYXRjaCBpdCBzZWVtcyB0byBtZSB0aGF0IHRoaXMgd291bGQgcmFp
[#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 =
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 practi=
> 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 --
Forwarding this again to ruby-core as received a postmaster delivery failur=
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,
Dne 22.10.2011 4:48, Yusuke Endoh napsal(a):
On Oct 31, 2011, at 2:41 PM, V=EDt Ondruch wrote:
Dne 1.11.2011 0:05, Eric Hodel napsal(a):
On Nov 1, 2011, at 2:03 PM, V=EDt Ondruch wrote:
[#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@...>
Hi,
Hi,
See below.
Hi,
> |> It's Python way, and I won't take it.
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> wr=
Hi,
On Thu, Oct 27, 2011 at 3:16 AM, Nobuyoshi Nakada <nobu@ruby-lang.org> wrot=
Hi,
[#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 protoc=
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:39888] [Ruby 1.9 - Feature #5394][Open] Anonymous Symbols, Anonymous Methods
Issue #5394 has been reported by Kurt Stephens.
----------------------------------------
Feature #5394: Anonymous Symbols, Anonymous Methods
http://redmine.ruby-lang.org/issues/5394
Author: Kurt Stephens
Status: Open
Priority: Normal
Assignee:
Category:
Target version:
Proposal for Anonymous Symbols and Anonymous Methods
Anonymous Methods (AnonMeths) can be used for complex orthogonal behaviors that dispatch by receiver class without patching core or other sensitive classes in a globally visible manner.
AnonMeths are located by Anonymous Symbols (AnonSyms).
AnonSyms do not have parseable names, and can only be referenced by value, limiting namespace problems and promoting encapsulation.
AnonMeths are GCed once the AnonSym bound to them are GCed.
AnonMeths would not appear in Object#methods, thus will not confuse introspection.
Assume:
<pre><code class="ruby">
Symbol.new() => #<Symbol:123412> # an AnonSymbol than can never be parsed in ruby code.
anon_sym = Symbol.new() # an AnonSym in a variable that can be closed-over or passed by value.
</code></pre>
Optional Supporting Syntax:
<pre><code class="ruby">
a.*anon_sym(args...) # equiv. to a.send(anon_sym, args...)
class A
def *anon_sym(args...); body...; end
end
</code></pre>
equiv. to:
<pre><code class="ruby">
class A
define_method(anon_sym) {| args... | body... }
end
</code></pre>
AnonSyms are not added directly to a Module's internal symbol-to-method table.
Instead, each AnonSym has an internal module-to-method table that is GCed when the AnonSym is GCed.
<pre><code class="ruby">
rcvr.send(anon_sym, ...)
</code></pre>
will use anon_sym's module-to-method table to locate a method based on usual the receiver's module lookup chain.
Example Application:
Typical visitor pattern that pollutes Array and Object method namespaces:
<pre><code class="ruby">
class Array; def visit(visitor); each { | elem | elem.visit(visitor); } end; end
class Object; def visit(visitor); visitor.something(self); end; end
</code></pre>
Functional alternative using "case ...; when ...":
<pre><code class="ruby">
def visit(obj, visitor)
case obj
when Array
obj.each { | elem | visit(elem, visitor) }
else
visitor.something(obj)
end
end
</code></pre>
AnonMeth version:
<pre><code class="ruby">
def visit(obj, visitor)
sel = Symbol.new
class Array; def *sel(visitor); each { | elem | elem.*sel(visitor) }; end; end
class Object; def *sel(visitor); visitor.something(self); end; end
obj.*sel(visitor)
end
</code></pre>
Imagine that visit() needs dynamic hooks to visit different types:
<pre><code class="ruby">
def visit(obj, visitor)
sel = Symbol.new
class Array; def *sel(visitor); each { | elem | elem.*sel(visitor) }; end; end
class Object; def *sel(visitor); visitor.something(self); end; end
add_visit_methods!(sel)
obj.*sel(visitor)
end
def add_visit_methods!(sel)
class Hash; def *sel(visitor); each { | k, v | v.*sel(visitor); end; end
...
end
</code></pre>
The AnonSym send "rcvr.*sel(...)" dispatches, like a normal method send, directly to the appropriate AnonMeth for "*sel".
visit() can be extended dynamically by adding more AnonMeths bound to "*sel".
The functional "case ...; when..." version is difficult to extend and maintain and is likely to not perform as well as anon messages.
This is similar in style to Scheme letrecs, but is object-oriented.
This idea could be extended to Anonymous Ivars to resolve other namespacing and encapsulation issues for mixins that require state.
-- Kurt Stephens
--
http://redmine.ruby-lang.org