ASDF 3.3 is released
rpgoldman at sift.net
Sat Oct 7 20:54:45 UTC 2017
Today we release ASDF 3.3. The most substantial change is to the build
planning process, which has been reformed by François-René Rideau so
that DEFSYSTEM-DEPENDS-ON now behaves correctly. There are a number of
other improvements, and we are indebted to Daniel Kochmanski, Rommel
Martinez, and Chun Tian for contributions. Thanks again to Anton
Vodonosov and Dave Cooper for support in testing, and new thanks to
Martti Halminen, Jens K. Loewe, and Jason Miller.
I would like to dedicate this ASDF release to the late Elias Pipping.
On a technical level, Elias made great improvements in some of the most
challenging ASDF internals, notably the RUN-PROGRAM component of UIOP, a
place where implementations are not constrained by the language
specification, diverge radically from each other, and are poorly
documented. On a personal level, Elias was very supportive to me as
ASDF maintainer, and while I was going through an illness. He did all
these things despite being gravely ill with the cancer that eventually
killed him. He will be greatly missed, Z'chrono L'vracha.
We urge implementations that are currently bundling previous versions of
ASDF to adopt 3.3.0 at their earliest convenience. The improvements
offered in this release will substantially improved the reliability and
predictability of ASDF use. Details on bugfixes can be found at
https://launchpad.net/asdf and in the discussions in merged branches of
Here is the changelog entry for 3.3:
cl-asdf (2:3.3.0-1) unstable; urgency=low
* Build-plan: Extensively revised the build plan process so that
:DEFSYSTEM-DEPENDS-ON would work correctly, even when depended on
change (which didn't work before). See our ELS demonstration about
"Delivering Common Lisp Applications with ASDF 3.3"
< https://github.com/fare/asdf2017 >
* Internals: to support the above, many ASDF internals have changed.
ASDF now has the notion of multiple build phases to a common build
(which generalizes the previous build cache). ASDF considers
loading a .asd
file as an operation DEFINE-OP, and tracks as dependencies files
during in :LOAD-FILE-FORM statements, etc. Some code has moved to
files or among old files, and between packages. Actions are now
uniformly represented as a CONS of an OPERATION and a COMPONENT,
in some cases previously only the class of the operation was
preserved. Forcing is constrained to be uniform across all phases
top level ASDF operation invocation. Fixed the protocol for
resetting systems being (re)defined, allowing subclasses to define
default slot values. Remove *LOAD-SYSTEM-OPERATION*, as the current
maintainer of ECL, for which it was originally designed, decided
that it could never be made to work properly, after all.
* ASDF&UIOP: Tweak dependencies between ASDF and UIOP. To avoid
circularity, asdf.asd with no longer causes uiop.asd to be loaded.
A standalone UIOP won't be loaded at all unless it's strictly more
* Tests: tests for new capabilities and bugs. Test backtraces can be
* Documentation: a number of improvements and clarifications.
* Feature: a new feature :asdf3.3
* ECL: restored the deprecated function MAKE-BUILD, removed in 3.2.0,
in a way that works on top of supported APIs (we still recommend
to these supported APIs). Also stop using the deprecated
* Deprecation: starting to emit STYLE-WARNINGs for deprecated
functions. Will gradually escalate to true WARNINGs and then
-- Robert P. Goldman <rpgoldman at sift.net> Sun, 20 August 2017
More information about the armedbear-devel