[#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
I agree that the current documentation and implementation are not
inconsistent. Implicit in my question was a concern about efficiency.
I have been assuming that being allowed to write <=> methods that return
any number less than zero or any number greater than zero is more
efficient than having to include the extra code to "clamp" those values
to -1 and +1.
A simple benchmark is included. It shows that it is about 25% faster to
write a "loose" <=> method than a "strict" <=> method. (But only if the
loose <=> method returns an Integer. If it returns a Float, then the
loose method is actually slower.)
Anyway, it is this efficiency issue that is at the root of my question.
Given that Ruby's documentation is not always really detailed, I
wondered if the docs are really definitive here. If it is actually
legal to write a loose <=> method, it would be nice to know that!
David
Benchmark code follows:
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
f = []
s = []
100000.times do
x = rand(100000)
f << Fast.new(x)
s << Slow.new(x)
end
require 'benchmark'
include Benchmark
bmbm(2) do |x|
x.report("Fast") { f.sort }
x.report("Slow") { s.sort }
end
------------------------------------------------
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)
Marte Raphael Y. Soliza wrote:
> I think there's nothing wrong with the implementation and documentation.
> True, an erronous implementation of <=> will still work if this is the
> implementation, but if we use exact comparisons such as == -1,
> trichotomy might be broken. For example, if two comparable objects of
> the same class, say a and b, are compared, and a is neither less than,
> equal, nor greater than b, then what is the relationship of a to b? This
> will give us a hint that the implementation of <=> is incorrect, and
> that's good, but I believe it's better (and safer) to have a fallback.
> If we throw an error that results from <=> returning a value other than
> -1, 0, and 1, then it might have an impact to efficiency especially in
> sorting huge array of values because we added an overhead of checking if
> the value returned is correct.
>
> On 4/1/07, *David Flanagan* <david@davidflanagan.com
> <mailto:david@davidflanagan.com>> wrote:
>
> Replying to my own post...
>
> Let me add that the existing numeric <=> operators all do appear to
> strictly return -1, 0, or +1. That is, they don't simply return y-x to
> compute a value less than, equal to, or greater than zero. This would
> argue that the current documentation of Comparable is correct, but that
> the implementation is written so that it works even for broken <=>
> operators.
>
> Anyway, I should say that it was probably presumptuous of me to assume
> that the documentation is incorrect. Everything I've seen in writing
> says that <=> must return -1,0, or +1. The implementation in compar.c
> makes it appear that this is not the case, however. I was not able to
> find any discussion of the return value of <=> in the ruby-talk
> archives...
>
>
>
> --
> "Life is unfair... but beautiful."
> Scarlette Krimson