The Lisp diaries, issue 2

Developing cl-test

I am currently developing my own test framework for common lisp applications, called cl-test. I hope to add some value beyond just because I can and being a bad case of NIH.

The actual rationale for cl-test should probably go into a blog article of its own, some time in the mid term future. For the moment, current code is at Gitlab, here. Assert based tests and organization into test suites already works.

An emacs interface for cl-test.

There is an emacs interface for cl-test — similar to slite — called cl-test-el. Here is an example for its status display (into an emacs buffer) during testing (sorry no real screenshot):

Logterm (/tmp/tmp.C8SAKqPolf/logterm.fifo)

Selected: (:BOGUS)
Start:    2023-07-17T00:32:58.353676+02:00
End:      2023-07-17T00:33:07.364328+02:00
Results:  #passed=3 #failed=2 #errors=0 #skipped=1

  (in-package :de.m-e-leypold.cl-test/tests)

✓ [PASSED]   bogus-one
- [SKIPPED]  bogus-two
⨯ [FAILED]   bogus-three
⨯ [FAILED]   bogus-four
  [      ]   bogus-five
  [      ]   bogus-six

A colored style option will be available in future. cl-test-el is also available on Gitlab: here.

Test driving eight Common Lisp implementations

I'm currently running eight Lisp implementations on my main workstation — sbcl, ecl, clasp, ccl, cmucl, clisp, abcl, mkcl — and regression testing my Common Lisp software against all of them.

How to get all of these running in a similar way against the same repositories should also be blog article some time in the near future (especially the initialization files I use).

Unashamedly I'm also confessing that I'm driving tests and releases by shell scripts and GNU Make files. I don't see much merit in reinventing the wheel and the way "integration" to the development and release environment is done on a Unix, is simply shell and make. Also, in case people have not noticed it yet, but the language of variable expansion in GNU Make is an odd dialect of Lisp.

How I do this can be seen in cl-test in the subdirectory .ben where the (generic) make files live.

Problems loading named-readtables with mkcl

When running the "load test" (in the sense of "can it be loaded") of cl-test against the eight lisp implementations, I found that mkcl has a problem loading named-readtables.

I created two issued for this:

Frankly the whole thing is a bit of a riddle: The error message says something along the lines of Too many arguments passed to SET-MACRO-CHARACTER, but the flagged form looks OK and passes exactly four parameters and the implementation in mkcl, as far as I can make out in the C source is also expecting two required and two optional parameters as required by the standard.

We will see what comes out of it.

Comments

Due to legal pitfalls in Europe there is no comment section in this blog at the moment (sorry), but you can discuss this article or comment on its content ⮕ here on Mastodon.