Go to file
2015-08-02 11:17:46 -05:00
doc Added license information. 2015-07-02 13:29:16 -05:00
examples Added ECL feature expressions. 2015-07-17 06:16:07 -05:00
src Band-aid for issue #61. 2015-08-02 11:17:46 -05:00
test Band-aid for issue #61. 2015-08-02 11:17:46 -05:00
.gitignore more cleanup 2015-07-01 23:01:28 +01:00
COPYING Added license information. 2015-07-02 13:29:16 -05:00
kenzo-test.asd Extracted tests from macros.lisp. 2015-07-29 01:42:15 -05:00
kenzo.asd Added a simple abbreviation resolver. 2015-07-12 13:46:15 -05:00
package.lisp SBCL wasn't happy with the treatment of *PRINT-LEVEL* and *PRINT-LENGTH*. 2015-07-29 21:22:53 -05:00
README.md Update README.md 2015-07-13 19:58:23 -05:00
run-kenzo-test.lisp Another batch of CL-SPACE-EFHM tests extracted. 2015-07-20 20:13:04 -05:00

Welcome to Kenzo

GPLv3 Logo

According to the title of its handbook, Kenzo is a "Symbolic Software for Effective Homology Computation" and its main audience might be students and researchers in algebraic topology. It is also a remarkable piece of LISP code, albeit in need of a little touch-up.

This repository contains a repackaged version of the Kenzo program by Francis Sergeraert and collaborators. The original version of the program can be found at http://www-fourier.ujf-grenoble.fr/~sergerar/Kenzo/ . This version aims to update its infrastructure by providing the following:

  1. A simple regression test suite based on FiveAM
  2. Support for the great freely available Lisp compilers out there, including CCL, [ECL] (https://common-lisp.net/project/ecl/), SBCL, etc.
  3. Installation via the Quicklisp library manager

Items 1 and 2 are well underway. Item 3 is pending after Francis Sergeraert kindly agreed to license the software under GPLv3.

!!! WARNING !!!

This is work in progress and there are several issues. The entire code now compiles fine w/ CCL, ECL, SBCL, but that's just the first step. There are plenty of examples in publications and scattered throughout the source. Many work (most?), some don't. Let's get to work! ...

Getting up and running

Here are two simple methods to get going: plain ASDF and Quicklisp.

Plain ASDF

To load Kenzo as provided by this repo, make sure ASDF knowns where to find the source, e.g. by creating a link to this directory at

  ~/.local/share/common-lisp/source/

Then in your Lisp (e.g., in ECL) type

(require :asdf)
(require :kenzo)

Quicklisp

I'm a big fan and supporter of Quicklisp, and use it for all my local projects. Assuming you've installed Quicklisp in C:\home\quicklisp or /home/joeuser/quicklisp, your local projects directory will be C:\home\quicklisp\local-projects or /home/joeuser/quicklisp/local-projects.

Making Kenzo quickload-able is a piece of cake:

  1. Clone the Kenzo repository into your local projects directory, i.e., C:\home\quicklisp\local-projects\kenzo or /home/joeuser/quicklisp/local-projects/kenzo.
  2. Tell Quicklisp about Kenzo by adding the following two lines to the system-index.txt file in the local projects directory:
  kenzo\kenzo.asd
  kenzo\kenzo-test.asd

Verify that you're good to go by loading and running the Kenzo test suite. For example, in an sbcl prompt (I've tested this with SBCL 1.2.13 on Debian and Windows) you should see something like this:

* (ql:quickload :kenzo-test)
To load "kenzo-test":
  Load 1 ASDF system:
    kenzo-test
; Loading "kenzo-test"
.
(:KENZO-TEST)
* (fiveam:run!)

Running test suite KENZO
 Running test F-CMPR ..........
 Running test L-CMPR ..........
 Running test S-CMPR .....
 ...
 Running test CDELTA
---done---
 Did 642 checks.
    Pass: 642 (100%)
    Skip: 0 ( 0%)
    Fail: 0 ( 0%)

Similarly, you'd load Kenzo via (ql:quickload :kenzo).

GPLv3 Logo