added broadcast-task — executes a given task inside each worker added kernel-worker-index — determine if the current thread is a worker thread, and if so, obtain its assigned index
added the ability to bind multiple values in plet, e.g. (plet ((x 1) ((y z) (values 2 3))) (+ x y z)) ;=> 6 added slet — serial/non-parallel let with the same syntax as plet for binding multipl...
added a :timeout option to try-pop-queue and try-receive-result; this requires the latest version of bordeaux-threads (lparallel will still run with older versions of bordeaux-threads as long as ...
lfarm is a distributed version of lparallel which replaces worker threads with remote processes. For example lfarm:pmap will subdivide the input sequence(s), send the parts to remote machines for...
plet now exploits type declarations defpun*, defpun/type*, and psort* are now deprecated — instead use the unstarred versions and pass :use-caller t to make-kernel parallel compilation is now s...
make-queue and make-channel now accept a :fixed-capacity argument for limiting the number of elements stored make-queue now accepts an :initial-contents argument passing a single argument to make...
exported types: kernel, channel, ptree added ptree-computed-p — query the computed state of a ptree node make-kernel now aborts cleanly when a worker fails to initialize, e.g. when make-thread ...
added readers kernel-name and kernel-context added restart kill-errors to workers — removes debugger popups attempting to submit a task to an ended kernel now signals an error suicidal calls to...
Below is another example of Concurrent Hello World. The macros receive and run are just 9 lines each, given below the fold. (defpackage :example (:use :cl :node)) (in-package :example) (defun hel...
The major version bump is for some incompatible changes, though they are unlikely to cause trouble. keyword arguments to psort besides :key have been replaced with a single :granularity argument;...