On Apr 16, 2004, at 9:29 AM, Leopold Toetsch wrote:


With all current optimizations[1] I now have these timings:

$ ./bench -b=^oo[234f]
Numbers are relative to the first one. (lower is better)
        p-j-Oc  perl-th perl    python  ruby
oo2     100%    182%    152%    90%     132%
oo3     100%    276%    256%    333%    383%
oo4     100%    137%    128%    171%    292%
oofib   100%    303%    261%    157%    161%

Looks cool!


BTW, I'm failing a bunch of tests now (Mac OS X); not sure if it's related:

Failed Test Stat Wstat Total Fail Failed List of Failed
------------------------------------------------------------------------ -------
t/op/gc.t 1 256 13 1 7.69% 11
t/pmc/dumper.t 13 3328 13 13 100.00% 1-13
t/pmc/object-meths.t 1 256 19 1 5.26% 9
t/pmc/objects.t 7 1792 37 7 18.92% 23-26 28 35-36


The gc test is failing with:

t/op/gc.................NOK 11# Failed test (t/op/gc.t at line 219)
# got: 'get_pmc_keyed_str() not implemented in class 'RetContinuation''
# expected: 'hello
# hello
# '
# '(cd . && ./parrot -b --gc-debug /tmp/gc_11.pasm)' failed with exit code 2


and all of the dumper ones look like double-frees:

t/pmc/dumper............NOK 7# Failed test (t/pmc/dumper.t at line 359)
# got: '*** malloc[9416]: Deallocation of a pointer not malloced: 0x200ee30; This could be a double free(), or free() called with the middle of an allocated block


I'll poke a bit and see if I can figure out what's going on.

- constant strings e.g. "BUILD" get a precomputed hash value from c2str.pl

This isn't checked in yet, right? (Didn't see c2str.pl anywhere.)


- use of _S("BUILD") and _S("CONSTRUCT") in objects.c

Mac OS X doesn't like the _S()--it seems it may already be defined to something. How about something clearer (and less likely to conflict) instead, like STRING_LITERAL()?


JEff



Reply via email to