[#9381] Native Thread extension for 1.8 — "Abhisek Datta" <abhisek@...>
Hello,
[#9382] the sign of a number is omitted when squaring it. -2**2 vs (-2)**2 — <noreply@...>
Bugs item #6468, was opened at 2006-11-03 17:25
On 11/3/06, noreply@rubyforge.org <noreply@rubyforge.org> wrote:
Jacob Fugal wrote:
Hi,
Yukihiro Matsumoto wrote:
[#9385] merge YARV into Ruby — SASADA Koichi <ko1@...>
Hi,
On Nov 3, 2006, at 9:11 PM, SASADA Koichi wrote:
On 11/4/06, SASADA Koichi <ko1@atdot.net> wrote:
On Monday 06 November 2006 16:01, Kirill Shutemov wrote:
On Monday 06 November 2006 10:15, Sylvain Joyeux wrote:
On 11/6/06, Sean Russell <ser@germane-software.com> wrote:
On Monday 06 November 2006 13:37, Kirill Shutemov wrote:
On 11/6/06, Kirill Shutemov <k.shutemov@gmail.com> wrote:
On 11/8/06, Austin Ziegler <halostatue@gmail.com> wrote:
On 11/6/06, ville.mattila@stonesoft.com <ville.mattila@stonesoft.com> wrote:
On 2006-11-07 00:47:20 +0900, Kirill Shutemov wrote:
On 11/6/06, Marcus Rueckert <mrueckert@suse.de> wrote:
On Tue, 7 Nov 2006, Joshua Haberman wrote:
[#9402] fast mutexes for 1.8? — MenTaLguY <mental@...>
Many people have been using Thread.critical for locking because Ruby
On Mon, 6 Nov 2006, MenTaLguY wrote:
On Mon, 2006-11-06 at 23:17 +0900, Hugh Sasse wrote:
On Tue, 7 Nov 2006, MenTaLguY wrote:
On Mon, 6 Nov 2006, MenTaLguY wrote:
On Mon, 2006-11-06 at 23:21 +0900, khaines@enigo.com wrote:
On Mon, 2006-11-06 at 09:38, MenTaLguY wrote:
[#9450] Bikeshed: No more Symbol < String? — Kornelius Kalnbach <murphy@...>
Hi ruby-core!
Hi,
David wrote:
On Nov 7, 2006, at 2:28 AM, Yukihiro Matsumoto wrote:
Hi,
Hi --
Hi,
Too bad, I was rejoicing to remove the need of
[#9470] Ruby performanmce improvements — "Michael Selig" <michael.selig@...>
I know you guys are in the middle of YARV stuff, but I thought you might be
Hi,
[#9472] Re: fast mutexes for 1.8? — Brent Roman <brent@...>
At RubyConf 2005 I gave an off-the-wall little talk about the
[#9493] Future Plans for Ruby 1.8 Series — URABE Shyouhei <shyouhei@...>
This week Japanese rubyists were talking about the future of ruby_1_8
[#9515] External entropy pool for random number generator — "Kirill Shutemov" <k.shutemov@...>
In the attachment patch which allow to use external entropy pool for
Hi,
On 11/13/06, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
Hi,
On 11/13/06, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
Hi,
[#9520] Re: fast mutexes for 1.8? — Brent Roman <brent@...>
[#9540] Different return values for setter methods — "Marcel Molina Jr." <marcel@...>
>> class Setter; def set=(value) 1 end end
[#9547] Net::FTP should check the control connection on EPIPE — Simon Williams <simon.williams@...>
Hi,
Hi,
On Tue, Feb 06, 2007 at 11:23:01AM +0900, Shugo Maeda wrote:
[#9554] Ruby 1.[89].\d+ and beyond. — Hugh Sasse <hgs@...>
I've been thinking about how version numbers are restricting what we can do.
On Fri, 17 Nov 2006, Eric Hodel wrote:
On Nov 16, 2006, at 12:02 PM, Hugh Sasse wrote:
On 11/16/06, Eric Hodel <drbrain@segment7.net> wrote:
On Nov 19, 2006, at 6:35 AM, Robert Dober wrote:
On Nov 19, 2006, at 8:13 AM, James Edward Gray II wrote:
> What if we need to exceed 1.8.9?
On Nov 19, 2006, at 10:30 PM, Kornelius Kalnbach wrote:
On Mon, 20 Nov 2006, Eric Hodel wrote:
Hugh Sasse wrote:
[#9572] io_write (io.c) bug (and its fix) under MS Windows for GUI apps (rubyw) — "Mounir Idrassi" <idrassi@...>
Hi all,
[#9581] type information — Deni George <denigeorge@...>
Hi,
Nobuyoshi Nakada wrote:
[#9604] #ancestors never includes the singleton class (inconsistent) — <noreply@...>
Bugs item #6820, was opened at 2006-11-22 08:49
Hi,
> It is supposed to. Singleton classes (or eigenclasses, if you want to
On 11/27/06, Sylvain Joyeux <sylvain.joyeux@m4x.org> wrote:
> 2) You could think of all objects already having a singleton class
Re: Ruby performance improvements
Michael Selig wrote: > ----- Original Message ----- > From: "Charles Oliver Nutter" <charles.nutter@sun.com> > > > >>> 2) Loops & rb_yield() >>> Most of Ruby's loops end up calling rb_yield() for each iteration. >>> > However > >>> much of the work that rb_yield_0 does each time can be often be done >>> > once at > >>> the start of the loop: >>> - Pushing frame, block, vars, class etc >>> - Freeing/creation of dynamic variables (instead they can be >>> > initialized > >>> to NIL each time, unless the context has been saved) >>> Also loops done by rb_iterate() (via an IFUNC stub) can be simplified >>> further to reduce the overhead of "double-yield". >>> >> This one I haven't tried, but it's a great idea. I could modify the >> yield logic in our ThreadContext to do loops natively, likely improving >> the performance of such loops quite a bit. One concern would be making >> sure the looped block doesn't capture additional scope...you'd >> negatively effect the resulting capture >> > The code I wrote checks for this, and if the scope has been captured, it > allocates a new dynamic block. Luckily it was very simple to implement, as > ruby sets a flag DVAR_DONT_RECYCLE when the scope is captured. > > One other thing that I think is worth doing is to make variables created in > a block into "local" variables rather than "dynamic" if possible, keeping > dynamic variables for ones that the parser cannot pick up (eg: created by > "eval"). Dynamic variables are accessed significantly slower than local > ones, because a linear search is done (in 1.8 anyhow). This change would > eliminate the unnecessary (and ugly) initialization of a variable before a > loop simply to make it "local" and hence faster. Furthermore it would > probably eliminate the use of dynamic variables completely in most loops, > which would mean that a new block of dynamic variables could be created > lazily for extra efficiency. Does YARV address this at all? > Actually, in JRuby I have changed all dvar and localvars (same for assigns) to be indexed on depth and index. All the live local/dvar scopes are maintained in a single stack (with captured scopes as spaghetti stacks off each live scope). localvars and dvars need not be distinguishable after parse storing things this way. Also, it also gives the same relative cost of access between the two types. So in a sense I did what you suggested (though I think because of the JVM GC this may be easier to implement for JRuby -- e.g. we do not have to manage whether this stuff is still referenced or not). You still obviously need to differentiate between the two types of vars at parse-time so you can appropriately scope (calculate level and index). I think this is a pretty good idea. For one, it could simplify YARV instruction set by removing two extra instructions. -Tom