[#15701] Ruby 1.9.0-1 snapshot released — Yukihiro Matsumoto <matz@...>
Hi,
[#15704] Proc#curry doesn't work on func which produces func — Lin Jen-Shin <godfat@...>
Proc#curry doesn't work on function which produces function,
Hi,
>>>>> "Y" == Yusuke ENDOH <mame@tsg.ne.jp> writes:
[#15707] Schedule for the 1.8.7 release — "Akinori MUSHA" <knu@...>
Hi, developers,
On Sat, Mar 01, 2008 at 08:58:00PM +0900, Akinori MUSHA wrote:
Hi,
At Fri, 21 Mar 2008 23:16:54 +0900,
At Mon, 24 Mar 2008 21:39:45 +0900,
[#15709] capitalize and downcase — Trans <transfire@...>
I've always wondered why String#capitalize downcases the whole string
[#15713] Ruby String hash key overflow when converting to Fixnum. — "Chiyuan Zhang" <pluskid@...>
Hi, all! I've opened a issue at rubyforge:
[#15728] Question on build process - skipping unsupported extensions — Daniel Berger <djberg96@...>
Hi,
[#15740] Copy-on-write friendly garbage collector — Hongli Lai <hongli@...99.net>
Hi.
Hi,
Yukihiro Matsumoto wrote:
Yukihiro Matsumoto wrote:
Hi.
Hongli Lai wrote:
Hi.
Hi,
I believe I managed to close the performance gap to only 6% slower than
Daniel DeLorme wrote:
[#15746] Am I misinterpreting the new keyword arguments to IO.foreach and friends? — Dave Thomas <dave@...>
I was expecting this to pass lines to the block:
[#15756] embedding Ruby 1.9.0 inside pthread — "Suraj Kurapati" <sunaku@...>
Hello,
Hi,
Hi,
Yukihiro Matsumoto wrote:
Suraj N. Kurapati wrote:
Hi,
Nobuyoshi Nakada wrote:
Suraj N. Kurapati wrote:
Hongli Lai wrote:
[#15775] next(n), succ(n) ? — Trans <transfire@...>
Can anyone see any reason against adding an optional parameter to
[#15778] Named captures and regular captures — Dave Thomas <dave@...>
It seems that once you have a named capture in a regular expression,
[#15783] Adding startup and shutdown to Test::Unit — Daniel Berger <Daniel.Berger@...>
Hi all,
Daniel Berger wrote:
On Wed, Mar 05, 2008 at 07:52:40AM +0900, Daniel Berger wrote:
[#15835] TimeoutError in core, timeouts for ConditionVariable#wait — MenTaLguY <mental@...>
I've been reworking JRuby's stdlib to improve performance and fix
On Sun, 2008-03-09 at 12:13 +0900, MenTaLguY wrote:
[#15837] Correct procedure for patch review? — Hongli Lai <hongli@...99.net>
Hi.
[#15855] Ruby 1.8.6 trace return line numbers wrong — "Rocky Bernstein" <rocky.bernstein@...>
Consider this program:
[#15860] Webrick directory traversal exploit on UNIX — Jos Backus <jos@...>
DSecRG Advisory #DSECRG-08-026 aka -018 describes a remote directory traversal
[#15871] Sparc architecture optimizations — Thomas Enebo <Thomas.Enebo@...>
Someone at Sun has been looking at Ruby on Sparc:
Thomas Enebo wrote:
Hello Ruby-core,
Hi,
Yukihiro Matsumoto wrote:
Prashant Srinivasan wrote:
[#15880] Ruby 1.8.6 binding value after "if" expression evaluation — "Rocky Bernstein" <rocky.bernstein@...>
Here's another trace hook weirdness that I've encountered.
Hello,
Thanks. The output you report matches what I get in 1.8.6 and suggests where
I think I've found why this is happening. The trace hook for NODE_IF is
[#15907] Range#member? semantics seem wrong — Dave Thomas <dave@...>
Range#member? has been changed so that it the start and end of the
[#15909] RARRAY_PTR — "Laurent Sansonetti" <laurent.sansonetti@...>
Hi,
[#15917] Ruby 1.9 (trunk) crashes when running RubyGems and Rake — Hongli Lai <hongli@...99.net>
Ruby 1.9 (trunk) seems to crash when running the supplied RubyGems and Rake:
Hi,
Nobuyoshi Nakada wrote:
On Mon, Mar 17, 2008 at 06:53:19PM +0900, Hongli Lai wrote:
[#15927] how to create a block with a block parameter in C? — Paul Brannan <pbrannan@...>
This works in Ruby (1.9):
>>>>> "P" == Paul Brannan <pbrannan@atdesk.com> writes:
[#15933] complex and rational — Dave Thomas <dave@...>
Before I start doing the documentation for the PickAxe, could I just
[#15936] Are Depreciated Methods "add_final" & "remove_final" supposed to ACTUALLY WORK? — Charles Thornton <ceo@...>
In Working on IRHG Docs for GC the following
>>>>> "C" == Charles Thornton <ceo@hawthorne-press.com> writes:
ts wrote:
[#15938] Questions on Enumerator#skip_first and Enumerable#first — "Artem Voroztsov" <artem.voroztsov@...>
I asked in ruby-talk, but did not get answer.
On Mar 18, 2008, at 6:20 AM, Artem Voroztsov wrote:
[#15975] Bugs in REXML — "Federico Builes" <federico.builes@...>
Hi,
On Mar 21, 2008, at 17:35, Federico Builes wrote:
[#15980] 1.8.6 memory leak? — "Stephen Sykes" <sdsykes@...>
Hi,
[#15983] Changing the algorithm of String#* — apeiros <apeiros@...>
Hi there
[#15990] Recent changes in Range#step behavior — "Vladimir Sizikov" <vsizikov@...>
Hi,
Hi Dave,
Hi Dave,
Hi,
Hi,
Hi,
On Wed, Mar 26, 2008 at 7:01 PM, Dave Thomas <dave@pragprog.com> wrote:
Dave Thomas wrote:
Dave Thomas wrote:
Dave Thomas wrote:
Dave,
This is all a semantic problem. Different people have different
[#16011] New ERb mode — Marc Haisenko <haisenko@...>
Hi folks,
On Tuesday 25 March 2008, Marc Haisenko wrote:
ERb already does this:
On Tuesday 25 March 2008, Jason Roelofs wrote:
On Tue, Mar 25, 2008 at 11:39 AM, Marc Haisenko <haisenko@comdasys.com> wro=
On Tuesday 25 March 2008, Jason Roelofs wrote:
[#16023] some Enumerable methods slower in 1.9 on OS X after revision 15124 — Chris Shea <cmshea@...>
All,
Hi,
Hi,
On Thu, Mar 27, 2008 at 02:26:51PM +0900, Nobuyoshi Nakada wrote:
Hi,
Nobuyoshi Nakada wrote:
Hi,
[#16057] About the license of gserver.rb being "freeware"? — "XiaoLiang Liu" <liuxlsh@...>
Hello everyone,
[#16088] command_call in parse.y — Adrian Thurston <thurston@...>
Hi,
Re: Why Ruby do not optimize code at all?
On Fri, Mar 28, 2008 at 10:45 AM, Jason Roelofs <jameskilton@gmail.com> wrote:
>
> On Fri, Mar 28, 2008 at 10:38 AM, Heesob Park <phasis@gmail.com> wrote:
> > Hi,
> >
> > I do not undertand why ruby doesn't do any optimization at all during
> > parsing time.
> > Some optimization maybe affects debugging process.
> > Nevertheless, it seems "Constant folding" is not harmful but helpful.
> > I tried some pre-evaluation of constant or literal nodes in parsing
> > time.
> >
> > Consider this code
> >
> > i = 320 * 200 * 32
> >
> > Original ruby-1.8.6 parsed it like this:
> >
> > 0:[NODE_BLOCK],0xb7f93ce4,p1:-9,p2:12,p3:1}
> > -9:[NODE_NEWLINE],0xb7f93d98,u1:0,u2:1,p3:-17}
> > -17:[NODE_LASGN],0xb7f93e38,u1:10473,p2:-10,u3:2}
> > -10:[NODE_CALL],0xb7f93dac,p1:-13,u2:42,p3:-11}
> > -13:[NODE_CALL],0xb7f93de8,p1:-16,u2:42,p3:-14}
> > -16:[NODE_LIT],0xb7f93e24,u1:641,u2:0,u3:0}
> > -14:[NODE_ARRAY],0xb7f93dfc,p1:-15,u2:1,u3:0}
> > -15:[NODE_LIT],0xb7f93e10,u1:401,u2:0,u3:0}
> > -11:[NODE_ARRAY],0xb7f93dc0,p1:-12,u2:1,u3:0}
> > -12:[NODE_LIT],0xb7f93dd4,u1:65,u2:0,u3:0}
> >
> > My modified ruby parsed it like this:
> >
> > 0:[NODE_BLOCK],0xb7f5cd0c,p1:-9,p2:12,p3:1}
> > -9:[NODE_NEWLINE],0xb7f5cdc0,u1:0,u2:1,p3:-15}
> > -15:[NODE_LASGN],0xb7f5ce38,u1:10473,p2:-10,u3:2}
> > -10:[NODE_LIT],0xb7f5cdd4,u1:4096001,u2:0,u3:0}
> >
> > A little more complex code
> >
> > c = (12-3) * Math.sin(100) + 1.300 * (2 + 3) * Math.log(100)
> >
> > Original parser:
> > 0:[NODE_BLOCK],0xb7f35b08,p1:-9,p2:1,p3:1}
> > -9:[NODE_NEWLINE],0xb7f35bbc,u1:0,u2:4,p3:-38}
> > -38:[NODE_LASGN],0xb7f35e00,u1:10473,p2:-10,u3:2}
> > -10:[NODE_CALL],0xb7f35bd0,p1:-27,u2:43,p3:-11}
> > -27:[NODE_CALL],0xb7f35d24,p1:-33,u2:42,p3:-28}
> > -33:[NODE_NEWLINE],0xb7f35d9c,u1:0,u2:4,p3:-34}
> > -34:[NODE_CALL],0xb7f35db0,p1:-37,u2:45,p3:-35}
> > -37:[NODE_LIT],0xb7f35dec,u1:25,u2:0,u3:0}
> > -35:[NODE_ARRAY],0xb7f35dc4,p1:-36,u2:1,u3:0}
> > -36:[NODE_LIT],0xb7f35dd8,u1:7,u2:0,u3:0}
> > -28:[NODE_ARRAY],0xb7f35d38,p1:-29,u2:1,u3:0}
> > -29:[NODE_CALL],0xb7f35d4c,p1:-32,u2:9961,p3:-30}
> > -32:[NODE_CONST],0xb7f35d88,u1:9925,u2:0,u3:0}
> > -30:[NODE_ARRAY],0xb7f35d60,p1:-31,u2:1,u3:0}
> > -31:[NODE_LIT],0xb7f35d74,u1:201,u2:0,u3:0}
> > -11:[NODE_ARRAY],0xb7f35be4,p1:-12,u2:1,u3:0}
> > -12:[NODE_CALL],0xb7f35bf8,p1:-18,u2:42,p3:-13}
> > -18:[NODE_CALL],0xb7f35c70,p1:-25,u2:42,p3:-19}
> > -25:[NODE_LIT],0xb7f35cfc,p1:-26,u2:0,u3:0}
> > -19:[NODE_ARRAY],0xb7f35c84,p1:-20,u2:1,u3:0}
> > -20:[NODE_NEWLINE],0xb7f35c98,u1:0,u2:4,p3:-21}
> > -21:[NODE_CALL],0xb7f35cac,p1:-24,u2:43,p3:-22}
> > -24:[NODE_LIT],0xb7f35ce8,u1:5,u2:0,u3:0}
> > -22:[NODE_ARRAY],0xb7f35cc0,p1:-23,u2:1,u3:0}
> > -23:[NODE_LIT],0xb7f35cd4,u1:7,u2:0,u3:0}
> > -13:[NODE_ARRAY],0xb7f35c0c,p1:-14,u2:1,u3:0}
> > -14:[NODE_CALL],0xb7f35c20,p1:-17,u2:10057,p3:-15}
> > -17:[NODE_CONST],0xb7f35c5c,u1:9925,u2:0,u3:0}
> > -15:[NODE_ARRAY],0xb7f35c34,p1:-16,u2:1,u3:0}
> > -16:[NODE_LIT],0xb7f35c48,u1:201,u2:0,u3:0}
> > Modified parser:
> > 0:[NODE_BLOCK],0xb7f0fae8,p1:-9,p2:1,p3:1}
> > -9:[NODE_NEWLINE],0xb7f0fb9c,u1:0,u2:4,p3:-40}
> > -40:[NODE_LASGN],0xb7f0fe08,u1:10473,p2:-10,u3:2}
> > -10:[NODE_LIT],0xb7f0fbb0,p1:-11,u2:0,u3:0}
> >
> > String operation code
> > s = ("hello " + "world ")*100
> >
> > Original parser:
> > 0:[NODE_BLOCK],0xb7fa4c74,p1:-11,p2:1,p3:1}
> > -11:[NODE_NEWLINE],0xb7fa4d50,u1:0,u2:2,p3:-22}
> > -22:[NODE_LASGN],0xb7fa4e2c,u1:10473,p2:-12,u3:2}
> > -12:[NODE_CALL],0xb7fa4d64,p1:-15,u2:42,p3:-13}
> > -15:[NODE_NEWLINE],0xb7fa4da0,u1:0,u2:2,p3:-16}
> > -16:[NODE_CALL],0xb7fa4db4,p1:-19,u2:43,p3:-21}
> > -19:[NODE_STR],0xb7fa4df0,p1:-20,u2:0,u3:0}
> > -21:[NODE_ARRAY],0xb7fa4e18,p1:-17,u2:1,u3:0}
> > -17:[NODE_STR],0xb7fa4dc8,p1:-18,u2:0,u3:0}
> > -13:[NODE_ARRAY],0xb7fa4d78,p1:-14,u2:1,u3:0}
> > -14:[NODE_LIT],0xb7fa4d8c,u1:2001,u2:0,u3:0}
> >
> > Modified parser:
> > 0:[NODE_BLOCK],0xb7efdc6c,p1:-11,p2:1,p3:1}
> > -11:[NODE_NEWLINE],0xb7efdd48,u1:0,u2:2,p3:-22}
> > -22:[NODE_LASGN],0xb7efde24,u1:10473,p2:-12,u3:2}
> > -12:[NODE_STR],0xb7efdd5c,p1:-13,u2:0,u3:0}
> >
> > In the loop it make considerable difference
> > With the code
> > for i in 1..10000
> > s = "hello"*10000
> > end
> > puts s
> >
> > Original ruby:
> > real 0m2.591s
> > user 0m2.579s
> > sys 0m0.013s
> >
> > Modified ruby:
> > real 0m0.010s
> > user 0m0.007s
> > sys 0m0.003s
> >
> > What do you think of the minimum optimization?
> >
> > Regards,
> >
> > Park Heesob
> > --
> > Posted via http://www.ruby-forum.com/.
> >
> >
>
> I guess the first question is does Ruby with your parser changes pass
> all the tests?
>
> Second, could you post a patch for people to try out and evaluate?
> We'll need to see the actual code to really evaluate if you've got
> something here.
>
> Jason
>
Oh, and this belongs in the Ruby Core mailing list.
Jason