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. [here] 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]. [slite] [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: • [github.com/melisgl/named-readtables/issues/30] • [github.com/jcbeaudoin/MKCL/issues/13] 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. [mkcl] [named-readtables] [github.com/melisgl/named-readtables/issues/30] [github.com/jcbeaudoin/MKCL/issues/13] 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]. [here on Mastodon]