- The latest CLISP and ECL appear close to passing all tests, and may indeed pass on some platforms.
- I am not aware of any outstanding CL implementation bugs affecting lparallel besides those reported in CLISP and ECL. I am also not aware of any bugs in lparallel itself.
- If you happen to be using bignums on 32-bit x86 CCL 1.8 or earlier, you should get latest from the CCL repository and build a new image.
- lparallel does not seem complex enough to warrant a mailing list, yet some things may not be entirely simple either. Feel free to ask questions or offer feedback on this thread, or send me email.
- I plan to remove some old deprecated aliases in version 2.0 (they are not shown in the documentation here). Now is the time to suggest incompatible changes, before the 2.0 bump.
- I have been hesitant to add a nickname to the lparallel package. The separation of the lparallel API into a handful of packages was meant to encourage people to use a subset of the API, e.g.
(:use :lparallel.cognate). However some people always write package-qualified symbols, and for them an
llnickname would be convenient. I am not exactly against this, but it does entail a bit of peril in the form of increased likelihood of conflict.
- I have noticed this pattern being used:
(let ((*kernel* (make-kernel ...))) ...). This is not recommended for three reasons. First, it makes the kernel object inaccessible to other (non-worker) threads, preventing the use of
kill-tasksin the REPL for example. Second,
end-kernelis likely to be forgotten, resulting in a kernel that is not garbage collected. Third, even if we properly abstract this pattern by writing a
with-temp-kernelmacro that calls
end-kernel, such a macro lends itself to suboptimal code because multiple uses of it would defeat the benefits of a thread pool. These issues are avoided by calling
(setf *kernel* ...)or by binding to an existing kernel, for example
(let ((*kernel* *io-kernel*)) ...).
with-temp-kernelmacro may still be convenient in non-critical cases such as testing, yet I hesitate to include it in the lparallel API for the reasons mentioned above.