90 lines
No EOL
6.2 KiB
HTML
90 lines
No EOL
6.2 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<title>CLiki: poiu</title>
|
|
<link rel="alternate" type="application/atom+xml" title="ATOM feed of edits to current article"
|
|
href="https://www.cliki.net/site/feed/article.atom?title=poiu">
|
|
<link rel="stylesheet" href="static/css/style.css">
|
|
<link rel="stylesheet" href="static/css/colorize.css">
|
|
</head>
|
|
|
|
<body>
|
|
<span class="hidden">CLiki - poiu</span>
|
|
<div id="content"><div id="content-area"><div id="article-title">poiu</div><div id="article">poiu is an <a href="asdf.html" class="category">asdf</a> extension that <a href="build.html" class="category">build</a>s in parallel.<p>To use it, just start your build scripts with
|
|
<pre>(require :asdf) (asdf:load-system :asdf) (asdf:load-system :poiu)</pre>
|
|
i.e. add the latter clause, for you should already have the former clauses
|
|
(and possibly some asdf configuration between the require and the first load-system).
|
|
Make sure that you're using a recent ASDF 3 together with a recent POIU.
|
|
POIU will modify the asdf::*default-plan-class* so subsequent calls to asdf:load-system
|
|
will implicitly use it.<p>You can find POIU on the <a href="QITAB.html" class="internal">QITAB</a> homepage:
|
|
<a href="http://common-lisp.net/project/qitab">http://common-lisp.net/project/qitab</a><p>POIU will notably compile each Lisp file in its own forked process,
|
|
in parallel with other operations (compilation or loading).
|
|
However, it will load FASLs serially as they become available.
|
|
In deterministic mode (the default), it will load files in a deterministic order
|
|
based on the state at the start of the build (usually, from clean).
|
|
If calling operate with :deterministic-p nil, it will load files opportunistically
|
|
in an order that depends on which compilation finishes first,
|
|
sacrificing determinism to a further parallel speed up.<p>POIU will only make a difference with respect to ASDF if the dependencies
|
|
are not serial (i.e. no difference for systems using :serial t everywhere).
|
|
You can however use Andreas Fuchs's <a href="ASDF-DEPENDENCY-GROVEL.html" class="internal">ASDF-DEPENDENCY-GROVEL</a> to autodetect
|
|
minimal dependencies from an ASDF system (or a set of multiple such).<p>POIU may speed up compilation by utilizing all CPUs of an SMP machine.
|
|
POIU may also reduce the memory pressure on the main (loading) process.
|
|
POIU will enforce separation between compile- and load- time environments,
|
|
helping you detect when :LOAD-TOPLEVEL is missing in EVAL-WHEN's
|
|
(as needed for incremental compilation even with vanilla ASDF).
|
|
POIU will also catch *some* missing dependencies as exist between the
|
|
files that it will happen to compile in parallel (but won't catch other
|
|
dependencies that may otherwise be missing from your system).<p>When a compilation fails in a parallel process, POIU will retry compiling
|
|
in the main (loading) process so you get the usual ASDF error behavior,
|
|
with a chance to debug the issue and restart the operation.<p>POIU was currently only made to work with <a href="SBCL.html" class="internal">SBCL</a>, <a href="CCL.html" class="internal">CCL</a>, <a href="CLISP.html" class="internal">CLISP</a> and <a href="Allegro.html" class="internal">Allegro</a>.
|
|
Porting to another Unix Lisp implementation that supports ASDF should not be difficult.<p>Warning to CCL users: you need to save a CCL image that doesn't start threads
|
|
at startup in order to use POIU (or anything that uses fork). Watch QITAB
|
|
for some package that does just that, single-threaded-ccl.<p>To use POIU, just load poiu.lisp after asdf.lisp is loaded, then use it with
|
|
(asdf:load-system :your-system)
|
|
as usual. The asdf::*default-plan-class* will have been modified to use POIU.
|
|
Once again, you may want to first use asdf-dependency-grovel to minimize
|
|
the dependencies in your system.<p>POIU was initially written for SBCL by Andreas Fuchs in 2006
|
|
as part of an experiment funded by ITA Software, Inc.
|
|
It was later modified by François-René Rideau,
|
|
who wrote the ports to CCL, CLISP, Allegro,
|
|
maintained POIU as ASDF became ASDF 2 and further evolved,
|
|
and completely rewrote it for ASDF 3.
|
|
The original copyright of ASDF (below) applies to POIU.</div></div>
|
|
<div id="footer" class="buttonbar"><ul><li><a href="poiu.html">Current version</a></li>
|
|
<li><a href="https://www.cliki.net/site/history?article=poiu">History</a></li>
|
|
<li><a href="https://www.cliki.net/site/backlinks?article=poiu">Backlinks</a></li><li><a href="https://www.cliki.net/site/edit-article?title=poiu&from-revision=3712660233">Edit</a></li><li><a href="https://www.cliki.net/site/edit-article?create=t">Create</a></li></ul></div>
|
|
</div>
|
|
<div id="header-buttons" class="buttonbar">
|
|
<ul>
|
|
<li><a href="https://www.cliki.net/">Home</a></li>
|
|
<li><a href="https://www.cliki.net/site/recent-changes">Recent Changes</a></li>
|
|
<li><a href="CLiki.html">About</a></li>
|
|
<li><a href="Text Formatting.html">Text Formatting</a></li>
|
|
<li><a href="https://www.cliki.net/site/tools">Tools</a></li>
|
|
</ul>
|
|
<div id="search">
|
|
<form action="https://www.cliki.net/site/search">
|
|
<label for="search_query" class="hidden">Search CLiki</label>
|
|
<input type="text" name="query" id="search_query" value="" />
|
|
<input type="submit" value="search" />
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div id="pageheader">
|
|
<div id="header">
|
|
<span id="logo">CLiki</span>
|
|
<span id="slogan">the common lisp wiki</span>
|
|
<div id="login"><form method="post" action="https://www.cliki.net/site/login">
|
|
<label for="login_name" class="hidden">Account name</label>
|
|
<input type="text" name="name" id="login_name" class="login_input" />
|
|
<label for= "login_password" class="hidden">Password</label>
|
|
<input type="password" name="password" id="login_password" class="login_input" />
|
|
<input type="submit" name="login" value="login" id="login_submit" /><br />
|
|
<div id="register"><a href="https://www.cliki.net/site/register">register</a></div>
|
|
<input type="submit" name="reset-pw" value="reset password" id="reset_pw" />
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body></html> |