[#11569] sprintf: Format specifier tokens aren't checked well enough — Florian Gross <florgro@...>
Hi,
Something seems to be broken for %u with negative bignums:
Hi,
[#11576] Array#delete is destructive, String#delete isn't — Florian Gross <florgro@...>
Hi,
[#11585] Array#values_at bug? — "John Lam (CLR)" <jflam@...>
a =3D [1,2,3,4]
[#11588] Timeout doesn't work correctly under windows when executing complex regexp. — "yuanyi zhang" <zhangyuanyi@...>
To repeat the problem, just execute the below code(I've run it with
Hi,
[#11597] Optimizing Symbol#to_proc — murphy <murphy@...>
Greetings to the list!
[#11600] Bug in Kernel#method objects that call super? — Charles Oliver Nutter <charles.nutter@...>
This seems very wrong to me. Calling through a method object should
[#11609] GetoptLong w/ DSL — TRANS <transfire@...>
Hi--
Hi,
On 7/8/07, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
[#11611] Import gem to Ruby 1.9 — SASADA Koichi <ko1@...>
Hi,
On Jul 8, 2007, at 00:49, SASADA Koichi wrote:
-----BEGIN PGP SIGNED MESSAGE-----
On 7/17/07, NAKAMURA, Hiroshi <nakahiro@sarion.co.jp> wrote:
On 7/17/07, Ryan Davis <ryand-ruby@zenspider.com> wrote:
On Jul 17, 2007, at 01:26, NAKAMURA, Hiroshi wrote:
-----BEGIN PGP SIGNED MESSAGE-----
On 7/18/07, NAKAMURA, Hiroshi <nakahiro@sarion.co.jp> wrote:
On 7/22/07, Chad Fowler <chad@chadfowler.com> wrote:
-----BEGIN PGP SIGNED MESSAGE-----
On Jul 24, 2007, at 06:44, NAKAMURA, Hiroshi wrote:
-----BEGIN PGP SIGNED MESSAGE-----
-----BEGIN PGP SIGNED MESSAGE-----
-----BEGIN PGP SIGNED MESSAGE-----
-----BEGIN PGP SIGNED MESSAGE-----
On Sep 30, 2007, at 22:56 , NAKAMURA, Hiroshi wrote:
On Oct 1, 2007, at 09:57 , Eric Hodel wrote:
Hi,
-----BEGIN PGP SIGNED MESSAGE-----
On Oct 13, 2007, at 02:00 , NAKAMURA, Hiroshi wrote:
-----BEGIN PGP SIGNED MESSAGE-----
On Oct 13, 2007, at 08:00 , NAKAMURA, Hiroshi wrote:
-----BEGIN PGP SIGNED MESSAGE-----
On Oct 15, 2007, at 07:14 , NAKAMURA, Hiroshi wrote:
On 10/17/07, Eric Hodel <drbrain@segment7.net> wrote:
Leonard Chin wrote:
On Oct 17, 2007, at 12:28 , Charles Oliver Nutter wrote:
Eric Hodel wrote:
Charles Oliver Nutter wrote:
On Oct 17, 2007, at 14:53 , Charles Oliver Nutter wrote:
Evan Phoenix wrote:
In article <4710890A.3020009@sarion.co.jp>,
-----BEGIN PGP SIGNED MESSAGE-----
In article <4718708D.3050001@sarion.co.jp>,
-----BEGIN PGP SIGNED MESSAGE-----
In article <471A1720.4080606@sarion.co.jp>,
-----BEGIN PGP SIGNED MESSAGE-----
In article <471CAFE0.2070104@sarion.co.jp>,
-----BEGIN PGP SIGNED MESSAGE-----
In article <471D4D1F.5050006@sarion.co.jp>,
-----BEGIN PGP SIGNED MESSAGE-----
In article <471D5665.5040209@sarion.co.jp>,
-----BEGIN PGP SIGNED MESSAGE-----
In article <471FF3B1.3060103@sarion.co.jp>,
-----BEGIN PGP SIGNED MESSAGE-----
In article <47200D74.6020202@sarion.co.jp>,
On Oct 13, 2007, at 01:24 , Yukihiro Matsumoto wrote:
In article <4722FEA4.6040509@sarion.co.jp>,
-----BEGIN PGP SIGNED MESSAGE-----
In article <472532B0.2060600@sarion.co.jp>,
-----BEGIN PGP SIGNED MESSAGE-----
In article <4726C4EF.7060605@sarion.co.jp>,
[#11635] to_str conversions and exceptions — "John Lam (CLR)" <jflam@...>
Silly question of the day:
[#11642] Re: Proposal: runtime-modifying Kernel methods should be keywords — "Marcel Molina Jr." <marcel@...>
On Fri, Jul 13, 2007 at 03:02:06PM +0900, Charles Oliver Nutter wrote:
Calamitas wrote:
I was going to reply to this In a detailed manner, but I'm not. (I
Ryan Davis wrote:
Ryan Davis wrote:
On 18/07/07, Ryan Davis <ryand-ruby@zenspider.com> wrote:
> PS: Incidentally... The comment on the blog entry you gave above
[#11645] Re: Proposal: runtime-modifying Kernel methods should be keywords — Charles Oliver Nutter <charles.nutter@...>
Charles Oliver Nutter wrote:
Hi,
Yukihiro Matsumoto wrote:
Hi,
On Jul 13, 2007, at 2:09 AM, Nobuyoshi Nakada wrote:
James Edward Gray II schrieb:
On Sep 10, 2007, at 11:19 PM, murphy wrote:
[#11648] Re: Proposal: runtime-modifying Kernel methods should be keywords — "John Lam" <jlam@...>
> 3. These methods are exactly the ones that complicate optimizing Ruby in
On 7/13/07, John Lam <jlam@iunknown.com> wrote:
TRANS wrote:
[#11673] Inheritable mixin — TRANS <transfire@...>
Concept for Ruby 2.0...
[#11691] rb_cstr_to_inum use of strtoul as an optimization has unfortunate side effects — Florian Gross <florgro@...>
Hi,
On another note, String#oct allows the base to be changed by a base
Hi,
[#11692] String#rindex(other) doesn't try to convert other via to_str — Florian Gross <florgro@...>
Hi,
[#11739] Re: Proposal: runtime-modifying Kernel methods should be keywords — Brent Roman <brent@...>
Just a follow up to on the idea of disallowing the
Brent Roman wrote:
On 17/07/07, Charles Oliver Nutter <charles.nutter@sun.com> wrote:
[#11754] indentation / emacs woes — Ryan Davis <ryand-ruby@...>
OK. Can someone give me the tweaks I need to make ruby source read
[#11756] threads and heavy io on osx and linux — "ara.t.howard" <Ara.T.Howard@...>
Hung on the 13th run.
[#11795] What libraries to be unbundled? — "NAKAMURA, Hiroshi" <nakahiro@...>
-----BEGIN PGP SIGNED MESSAGE-----
I don't think that json should be unbundled. It is the interchange
On Jul 24, 2007, at 1:39 PM, David Flanagan wrote:
James Edward Gray II wrote:
On 7/24/07, David Flanagan <david@davidflanagan.com> wrote:
-----BEGIN PGP SIGNED MESSAGE-----
On Oct 1, 2007, at 1:07 AM, NAKAMURA, Hiroshi wrote:
-----BEGIN PGP SIGNED MESSAGE-----
[#11821] Columnize, irb, and ruby-debug — "Rocky Bernstein" <rocky.bernstein@...>
I've been working on/with Kent SIbilev's ruby-debug. The current sources in
[#11826] Rdoc allowing arbitrary HTML — "Robert Dober" <robert.dober@...>
Hi all
Re: Proposal: runtime-modifying Kernel methods should be keywords
On 13/07/07, Charles Oliver Nutter <charles.nutter@sun.com> wrote: > The languages you list either use keywords or expose runtime structures > (like variable scopes, call frames, and bindings) as first-class > entities in the system. Ruby does neither. > > And hotspot evolved out of self and strongtalk, so I'm not sure I > understand that logic. Hotspot supports dynamic deoptimization. This enables optimistic optimizations. For instance, the hotspot compiler does method inlining, but dynamic class loading can at any time invalidate that optimization (unless you'd only inline final methods, which is useless in practice.) The hotspot compiler detects this invalidation, and undoes the inlining. It can even undo the inlining for a running method. Unrelated to this, I've read papers on a technique that does optimizations optimistically, and inserts code to check whether the optimization was valid. If it wasn't, execution falls back on the original code. If the optimization is valid most of the time, this results in an overall speedup. These techniques can also be applied to your problem. For instance, you need to detect the presence of a call to eval, or to an alias of eval. At each point in the execution, the Ruby runtime knows the aliases of eval and can decide what optimizations are valid. If an alias is added or removed, the affected methods can be checked and optimized/deoptimized as appropriate. My impression is that currently you only do static, intraprocedural optimization (correct me if I'm wrong). In practice, dynamic optimization techniques are essential. Or at least this is what I remember from a talk on the hotspot compiler by some Sun guy whose name I can't remember. What I do remember is that method inlining is the most important optimization of all, and not only because it removes method call overhead, but also because it enables more intraprocedural analyses. In Ruby, I'd expect this to be even more important as inlining methods that take a block allows to remove the overhead associated with that block. But because in Ruby, methods can be added/removed/redefined at runtime, any inlining can become invalid. On top of that, eval pretty much rules out even the best predictions about what methods can be affected. So, if you really want to get some speed into Ruby, you'll have to use dynamic compilation techniques, and then you don't need the changes you are asking for. These changes will make your job easier, but without these changes, optimization is not impossible. Hard, agreed, but not impossible. Language runtime designer is not an easy job. These days, it's probably one of the hardest jobs, but also one of the most interesting. What would be really interesting is if you could compile Ruby code to Java code in such a way that Java's JIT compiler can do the dynamic optimizations for you. As a side note, in Matz' Ruby, a C extension can easily override eval without resorting to any trickery (it uses the fact that Matz' Ruby does not create a new scope for methods implemented in C.) I'm not 100% sure that this is full proof, but it works well enough to wreak havoc on optimizations that assume that implementing one's own eval is impossible. Finally, in my opinion, the reason why eval and all are methods is because they *can* be. This is the beauty of Ruby, and why it is so fit for creating DSLs, namely because it can make methods look like keywords even though they are not. That is important, because keywords can suck greatly if the perfect name for a method or variable happens to be a keyword. Peter