CL-MW 0.3 Released!
I had given a talk at the TC Lispers group in Minneapolis, MN on March 5th, 2012 about the reasoning behind and some of the internal design of CL-MW. For those interested, here are the slides of the presentation.
Out of the wonderful conversation with the attendees, I gathered a small list of improvements to CL-MW which I would be implementing in the future. These improvements include such things as: a macro (gotten from the expansion of mw-task-algorithm) which names a function available in its body which submits tasks with a specific task policy, adding a control connection to the master process so you can asynchronously add in new work or retrieve results with another process, what the master algorithm checkpoint API might look like, separating out the asynchronous I/O packet buffer layer I built on top of IOLib into its own library, etc.
I've released CL-MW version 0.3 which implements the first of these improvements. Now you can say:
;; First, define a simple task algorithm (define-mw-task-algorithm (foo) (+ foo 10)) ;; later in the code: ... (mw-with-task-policy-for-foo (add-foo :retry nil) ;; add a bunch of tasks, but don't retry them if they fail. (mapc #'add-foo '(1 2 3 4 5))) ... ;; and then you just get the results back asynchronously in the master's loop.
CL-MW is quicklisp installable so try it out and see what you think!
End of Line.