It turns out that some versions of SBCL (Steel Bank Common Lisp) implementation of Common Lisp come with multi-threading disabled by default. In particular, the SBCL 1.4 I had installed on my MacOS did not come with multi-threading enabled.
To check whether your installed version currently supports multiple threads, run:
(member :sb-thread *features*)
If you get NIL as a result, then multi-threading is disabled. How can one enable it?
In short, he needs to build SBCL from its source while indicating that the multi-threading feature is desired.
First, clone the source code using:
git clone https://github.com/sbcl/sbcl.git ~/Downloads/sbcl-source cd Downloads/sbcl-source/
sh make.sh --with-sb-thread
The build process should take 5-10 minutes and will produce a lot of output.
As the final step, run to install the newly built version (either anew or as an overwrite of the existing SBCL binary).
After that, start an SBCL REPL and run the command that checks whether multi-threading is enabled again. You should get something like this:
(:SB-THREAD :SB-THREAD :SB-UNICODE :SBCL :STACK-ALLOCATABLE-CLOSURES :STACK-ALLOCATABLE-FIXED-OBJECTS :STACK-ALLOCATABLE-LISTS :STACK-ALLOCATABLE-VECTORS :STACK-GROWS-DOWNWARD-NOT-UPWARD :SYMBOL-INFO-VOPS :UD2-BREAKPOINTS :UNBIND-N-VOP :UNDEFINED-FUN-RESTARTS :UNIX :UNWIND-TO-FRAME-AND-CALL-VOP :X86-64)