- 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 anlp
orll
nickname 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 ofkill-tasks
in the REPL for example. Second,end-kernel
is likely to be forgotten, resulting in a kernel that is not garbage collected. Third, even if we properly abstract this pattern by writing awith-temp-kernel
macro that callsend-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*)) ...)
. - A
with-temp-kernel
macro 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.
Status update
This entry was posted in Uncategorized. Bookmark the permalink.