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