[Ecls-list] ECL behavior on some array related code
Jeronimo Pellegrini
jpn at aleph0.info
Tue May 18 01:07:45 UTC 2010
Hi,
I have checked out the most recent development sources of ECL from
git (the latest changeset I have is
69399234506b8a4ecf540effe70bc1a5b86f34cc, "Missing definition for
CHARACTER-DESIGNATOR."
So -- I ran the Spartns [0] test suite with ECL and all tests pass;
then I ran the (silly/pseudo) benchmarks and, well, the good part
is that for most benchmarks (except one) ECL is more than twice
faster than what it used to be one year ago! :-)
But there's also a problem:
The benchmarks will run nicely on all sparse vector/matrix
representation functions, but will crash on the dense array
benchmark.
The funny thing is:
- With (safety 2) (debug 0) (speed 3), it won't crash. And it will
not signal any errors either. The program just runs until the end
normally;
- With ((safety 0) or (safety 1)) and (debug 0) (speed 3), it crashes
with an "access to an invalid or protected memory address.";
- The code runs with (safety 0) (debug 0) (speed 3) on all other
supported Common Lisps (everyone except Corman and maybe a few others)
What is somewhat suspicious is that it doesn't signal any errors
or warnings with (safety 2) but crashes with (safety 1) and below.
Here's what happens:
Plain array (SET)
Detected access to an invalid or protected memory address.
Available restarts:
1. (RESTART-TOPLEVEL) Go back to Top-Level REPL.
Broken at SI:BYTECODES. [Evaluation of: (RUN-ARRAY-SET)] In: #<process SI:TOP-LEVEL 0000000000743f60>.
File: #P"/home/jeronimo/work/mono/info.aleph0.lisp.spartn/benchmark.lisp" (Position #NIL)
SPARTNS>>
The code for the benchmark is on the Spartns site [0]. I usually run
it like this:
(progn
(load "spartns-packages.lisp")
(load "utils.lisp")
(load "spartns.lisp")
(load "benchmark.lisp"))
One other curious thing is that ECL got slower on one single benchmark:
accessing sparse vectores represented as "index/value" pairs, doing
binary search (it's the "CVECTOR GET/SET" benchmark). ECL used to take
77 seconds there, now it's over 130. (But it is tremendously faster on
all other benchmarks).
J.
[0] http://aleph0.info/spartns/
More information about the ecl-devel
mailing list