poiu 1.31

Faré fahree at gmail.com
Sun Oct 9 23:00:08 UTC 2016


I was considering merging POIU into ASDF, or at least part of it:
https://gitlab.common-lisp.net/qitab/poiu

The part that I am really interested in merging is the plan that
completely and correctly models the action graph based on an explicit
graph (duh). This would be a prelude to allowing more meaningful
queries on the build plan, but also hopefully to allowing better
support for operate-in-operate as necessary for defsystem-depends-on
and such.

I just split poiu into multiple files, and added some docstrings, to
get an idea of which part takes how much. These implement the
aforementioned action graph (wc output), where queue would go to uiop
(it could be stripped down a bit), and action-graph in asdf (with some
more commenting needed):
 123   591  4609 queue.lisp
 186   764  8360 action-graph.lisp

The parallelizing implementation (currently only for allegro, clisp,
clozure, sbcl and only on unix) is this big (the first two files would
go to uiop; the last part is the asdf-specific code and needs more
commenting):
 219   977  8972 fork.lisp
 180   714  8362 background-process.lisp
 145   533  6714 poiu.lisp

This would have been a lot in the times of ASDF1 when ASDF was < 1000
loc (and then, the original POIU was even larger, for it needed to
patch ASDF that was lacking suitable interfaces). But it's not that
much now that ASDF is >12.5kloc. We've grown a lot, yet much slower
than Moore's Law.

So, should I import the first part of POIU? All of it? Is there
anything bad about compiling in a fork, when available?

Actually, I'm thinking the forking part should probably be left in an
extension, since it won't be used in SLIME anyway, because SLIME uses
threads, which invalidates the forking ability of POIU.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Any sufficiently advanced misquotation is indistinguishable
from an original statement. — John McCarthy, misquoted



More information about the asdf-devel mailing list