...
 
Commits (2)
......@@ -21,17 +21,30 @@ CLISP works
Clozure works
CMUCL works (tested the 32bit binary on a 64bit platform; passes all tests)
Corman ?
ECL works (version from git. Debian's 16.1.2 is much worse in benchmarks)
GCL works - git checkout (passes all tests -- however, it seems to break during benchmarks)
ECL works (version from git. Debian's 16.1.2 is much works in benchmarks)
GCL works - git checkout (passes all tests -- however, benchmarks need tuning)
LispWorks ?
Mankai fails 18 Spartns tests (but no spartns-utils tests)
Mankai works
SBCL works
XCL probably works (latest version did pass all tests, but I can't currently compile XCL)
```
* I could not test Corman Common Lisp, as I do not have Windows installed.
* Spartns seems to work on GCL checked out from git, but needs tuning in
order to run the benchmarks
order to run the benchmarks. If it fails as this:
```
Signalled by PROGN.
Condition in PROGN [or a callee]: INTERNAL-SIMPLE-ERROR: The assertion v && (unsigned long)(v+sz)<MAX_CODE_ADDRESS
on line 1035 of alloc.c in function alloc_code_space
failed: Success
```
then some tuning may be necessary (`GCL_MEM_MULTIPLE`, `GCL_GC_PAGE_THRESH`, `GCL_GC_ALLOC_MIN`,
`GCL_GC_PAGE_MAX`, `GCL_MULTIPROCESS_MEMORY_POOL`), and it is still possible to allocate clde
block space inside the program, setting the variable `*code-block-reserve*` (see the beginning
of file `benchmark.lisp`).
Workarounds:
......
......@@ -10,7 +10,7 @@ Features:
* Represents mappings from one dimension onto another using any scheme you want (there are three built-in schemes: array, hash and compressed-vector, but you can roll your own and plug it);
* Flexible: works with any data type;
* Heavily optimized: traversing the tensor can be extremely fast (in one specific situation -- traversing the tensor -- it was 10 times faster than a naive implementation in C++);
* Fairly portable: works with ABCL, ACL, Clisp, Clozure, CMUCL, ECL, GCL, SBCL and XCL.
* Fairly portable: works with ABCL, ACL, Clisp, Clozure, CMUCL, ECL, GCL, SBCL, MKCL and XCL.
* Spartns is never released without going through regression tests (if a platform breaks and can't be supported, it will be clear in the release announcement);
* ASDF installable (thanks Slobodan Blazeski!);
* Easy to use, with introductory documentation (not only on-line);
......@@ -49,19 +49,19 @@ representation scheemes and also between Common Lisp implementations).
```
SBCL GCL CCL64 Clisp ABCL ECL Allegro
-----------------------------------------------------------------------
ARRAY GET 0.02 2.75 0.14 1.34 0.76 0.97 x
ARRAY SET 0.08 0.00 0.26 2.88 1.37 0.27 x
CVECTOR GET 1.99 1.79 14.27 177.98 22.87 17.32 6.77
CVECTOR SET 2.04 7.48 14.45 175.47 24.53 19.10 5.49
TR-CVECTOR-GET 0.14 19.04 0.35 10.55 7.33 7.44 76.12
TR-CVECTOR-SET 0.19 11.86 0.33 17.59 7.89 7.57 75.68
HASH-GET 0.76 4.59 4.85 14.49 5.30 2.54 x
HASH-SET 2.01 4.69 6.32 13.09 6.15 1.78 x
TR-HASH-GET 0.04 4.90 5.97 8.11 4.74 2.19 x
TR-HASH-SET 1.85 4.80 7.07 7.92 5.43 2.41 x
------------------------------------------------------------------------
SBCL GCL CCL64 Clisp ABCL ECL MKCL Allegro
-------------------------------------------------------------------------------
ARRAY GET 0.02 2.75 0.14 1.34 0.76 0.97 0.85 x
ARRAY SET 0.08 0.00 0.26 2.88 1.37 0.27 1.78 x
CVECTOR GET 1.99 1.79 14.27 177.98 22.87 17.32 14.68 6.77
CVECTOR SET 2.04 7.48 14.45 175.47 24.53 19.10 14.48 5.49
TR-CVECTOR-GET 0.14 19.04 0.35 10.55 7.33 7.44 4.41 76.12
TR-CVECTOR-SET 0.19 11.86 0.33 17.59 7.89 7.57 3.32 75.68
HASH-GET 0.76 4.59 4.85 14.49 5.30 2.54 2.22 x
HASH-SET 2.01 4.69 6.32 13.09 6.15 1.78 4.49 x
TR-HASH-GET 0.04 4.90 5.97 8.11 4.74 2.19 2.71 x
TR-HASH-SET 1.85 4.80 7.07 7.92 5.43 2.41 3.75 x
-------------------------------------------------------------------------------
C++ STL GET 2.01
C++ STL SET 1.96
```
......