[#10830] New kill_thread function in eval.c conflict with a BeOS system function — <noreply@...>
Bugs item #9736, was opened at 01/04/2007 16:20
[#10834] Hefty patch for mkmf.rb — <noreply@...>
Patches item #9762, was opened at 2007-04-02 09:55
[#10853] Why limit class def to a constant or colon node? — Charles Oliver Nutter <charles.nutter@...>
Is there a historical reason why I can't do something like these:
Hi,
On 4/3/07, Charles Oliver Nutter <charles.nutter@sun.com> wrote:
[#10867] defined? operator changed in ruby 1.9: bug or feature? — David Flanagan <david@...>
The behavior of the defined? operator is different in current ruby 1.9
Hi,
[#10875] Ruby shouldn't process shebang! — "Kirill A. Shutemov" <k.shutemov@...>
> echo -e '#!test\nputs "test passed"' | ruby=20
On 4/5/07, Kirill A. Shutemov <k.shutemov@gmail.com> wrote:
[#10884] Ruby 1.9/1.8 compatibility: String#lines — murphy <murphy@...>
It seems the most important change in 1.9, in terms of compatibility, is
[#10907] install (/bin/install) path hardcoded at build — <noreply@...>
Bugs item #10004, was opened at 2007-04-10 13:21
[#10909] Turning off verbose output for mkmf — Daniel Berger <Daniel.Berger@...>
Hi all,
[#10923] block_given? => true in main(). — "Adam Bozanich" <adam.boz@...>
Hi all.
[#10933] Cannot build with extra library path if previous version already installed — <noreply@...>
Bugs item #10140, was opened at 2007-04-16 17:32
Hi,
On 4/16/07, nobu@ruby-lang.org <nobu@ruby-lang.org> wrote:
Hi,
On 4/19/07, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:> Hi,>> At Wed, 18 Apr 2007 20:21:44 +0900,> Michal Suchanek wrote in [ruby-core:10960]:> > Yes. And this should also apply to extensions. The mkmf tests are now> > fine but the extension is linked with -L/sw/lib before -L../..>> Indeed.>>> Index: configure.in> ===================================================================> --- configure.in (revision 12191)> +++ configure.in (working copy)> @@ -1385,5 +1385,4 @@ if test "$enable_rpath" = yes; then> fi>> -LDFLAGS="-L. $LDFLAGS"> AC_SUBST(ARCHFILE)>This would break the previous fix so I did not even try to apply this ^
Hi,
[#10944] IRHG - "Three Stuffing" — Charles Thornton <ceo@...>
Can a japanese speaker give a translation
[#10947] backwards compatibility for 'raise Interrupt' — Ryan Davis <ryand-ruby@...>
** BEFORE:
Hi,
Hi,
[#10968] IRHG - Manuscript Hunt — Charles Thornton <ceo@...>
Does anyone know of a Text Copy (Not PDF) of this manuscript:
[#10981] ruby 1.9 crash on cygwin — "Anton Ivanov" <Anton.Ivanov@...>
Hi,
[#11003] miniruby loads extensions from already installed ruby — <noreply@...>
Bugs item #10303, was opened at 2007-04-23 10:44
Hi,
On 23/04/07, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
Hi,
On 26/04/07, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
Hi,
[#11012] Ruby 1.9: multiple splats on rvalues in parallel assignment — David Flanagan <david@...>
This has got to be a bug...
[#11025] gsub with backslash characters in replacement string — "Adam Bozanich" <adam.boz@...>
Hello, spotted this one the other day:
Hi,
On 4/26/07, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
On 4/26/07, Adam Bozanich <adam.boz@gmail.com> wrote:
On 4/26/07, Marte Raphael Y. Soliza <myrtactle@gmail.com > wrote:
[#11029] Proc#arity regression or bug in RDoc — Mauricio Fernandez <mfp@...>
On Thu, Apr 26, 2007 at 06:55:46PM +0900, Mauricio Fernandez wrote:
Re: Comparable module and values of <=> operator
On Tue, 3 Apr 2007, David Flanagan wrote:
> I agree that the current documentation and implementation are not
> inconsistent. Implicit in my question was a concern about efficiency. I have
[...]
Given it's importance in sorting, optimising comparison may not be
premature.
>
> A simple benchmark is included. It shows that it is about 25% faster to write
I've taken this code and walloped it with something blunt (my head?).
See below.
I was interested to see the results:
brains hgs 60 %> ruby comparisons.rb
Rehearsal --------------------------------------------
Fast 13.300000 0.010000 13.310000 ( 13.653813)
Slow 16.240000 0.000000 16.240000 ( 16.398890)
Dunno 14.260000 0.000000 14.260000 ( 14.678848)
TryThis 13.650000 0.000000 13.650000 ( 13.699857)
HowAbout 19.110000 0.010000 19.120000 ( 19.548156)
Maybe 17.660000 0.010000 17.670000 ( 18.079618)
---------------------------------- total: 94.250000sec
user system total real
Fast 13.520000 0.010000 13.530000 ( 21.544449)
Slow 15.920000 0.000000 15.920000 ( 16.322397)
Dunno 14.160000 0.000000 14.160000 ( 14.276026)
TryThis 13.680000 0.000000 13.680000 ( 14.103555)
HowAbout 19.220000 0.000000 19.220000 ( 19.557289)
Maybe 17.670000 0.000000 17.670000 ( 17.727069)
brains hgs 61 %>
These suggest that implementing <=> just with <=> is about as
quick as one can get. I think a sgn function implemented in
C would be good, though. If only so we could test that approach.
>
> ------------------------------------------------
> Here are the benchmark results on my aging Linux system:
>
> Rehearsal ----------------------------------------
> Fast 4.390000 0.000000 4.390000 ( 4.403584)
> Slow 5.640000 0.020000 5.660000 ( 5.657363)
> ------------------------------ total: 10.050000sec
>
> user system total real
> Fast 4.020000 0.000000 4.020000 ( 4.025188)
> Slow 5.500000 0.000000 5.500000 ( 5.503963)
>
My machine is beginning to look seriously old.
>
>
Hugh
class Slow
def initialize(x)
@x = x
end
def value
@x
end
def <=>(other)
y = other.value
if @x < y
-1
elsif @x > y
1
else
0
end
end
end
class Fast
def initialize(x)
@x = x
end
def value
@x
end
def <=>(other)
other.value - @x
end
end
class Dunno < Fast
def <=>(other)
y = other.value
y <=> @x
end
end
class TryThis < Fast
def <=>(other)
other.value <=> @x
end
end
class HowAbout < Fast
def <=>(other)
result = other.value - @x
return -1 if result < 0
return 0 if result.zero?
return 1
end
end
class Maybe < Fast
def <=>(other)
result = other.value - @x
return result <=> 0
end
end
require 'benchmark'
include Benchmark
bmbm(2) do |x|
# Need this here or the second time round they'll be sorted.
f = []
s = []
d = []
t = []
h = []
m = []
100000.times do
r = rand(100000)
f << Fast.new(r)
s << Slow.new(r)
d << Dunno.new(r)
t << TryThis.new(r)
h << HowAbout.new(r)
m << Maybe.new(r)
end
x.report("Fast") { f.sort }
x.report("Slow") { s.sort }
x.report("Dunno") { d.sort }
x.report("TryThis") { t.sort }
x.report("HowAbout") { h.sort }
x.report("Maybe") { m.sort }
end