[asdf-devel] API changes into ASDF 3

Faré fahree at gmail.com
Thu Jan 31 19:37:29 UTC 2013


Dear all,

is anyone of you using any of these functions from ASDF, ASDF-UTILS or
XCVB-DRIVER ?
I've removed them and here are the alternatives I am using.
Since previous code didn't have any numbered release API,
I will only provide compatibility trampolines if there is a declared user base.

These symbols are gone since ASDF 2.26 and corresponding ASDF-UTILS,
and here are the alternatives:
orf => latest-stamp-f (compares timestamp, not just booleans)
aif, it => if-let (compatible with alexandria)
remove-keys => remove-plist-keys (compare with EQL, not STRING=)
remove-keyword => remove-plist-key (more consistent and descriptive name)
split-pathnames* => split-native-pathnames-string (naming makes clear
it's native-namestrings, not namestrings)
ensure-pathname-absolute => ensure-absolute-pathname (API much
enhanced with different error behavior)
resolve-relative-location-component => resolve-relative-location
resolve-absolute-location-component => resolve-absolute-location

Backward-compatible wrappers are already provided for the below
deprecated functions with known users:
coerce-pathname => parse-unix-namestring
component-name-to-pathname-components =>
split-unix-namestring-directory-components
compile-file-keeping-object => compile-file*

>From XCVB-DRIVER and ASDF-CONDITION-CONTROL, these have been renamed
as they moved to ASDF/DRIVER:
run-program/ => run-program
with-controlled-compiler-conditions => with-muffled-compiler-conditions
with-controlled-loader-conditions => with-muffled-loader-conditions
with-xcvb-compilation-unit => with-saved-deferred-warnings
eval-string => eval-input
bork => handle-fatal-condition
*debugging* => *lisp-interaction*

For ASDF itself, these interfaces have been removed, and here are
their replacements.
:if-component-dep-fails => :if-feature
:do-first => :in-order-to (:do-first wouldn't actually work in ASDF 1;
:in-order-to does the right thing in ASDF 3 for both previous
:in-order-to and previous :do-first).
make-sub-operation => find-operation
asdf-binary-locations configuration =>
enable-asdf-binary-locations-compatibility (ABL worked with ASDF 1;
this compatibility layer exists since ASDF 2 and still supported,
actually enhanced, with ASDF 3)

These ASDF internals have compatibility wrappers, but are deprecated:
run-shell-command => asdf/driver:run-program (used by many clients)
load-sysdef => load-asd (used by slime)
make-temporary-package => (find-package :asdf-user) (used by slime)
operation-error => define your own error class
compile-error => compile-file-error
compile-failed => compile-failed-error, compile-failed-warning
compile-warned => compile-warned-error, compile-warned-warning
operation-on-warnings => *compile-file-warnings-behaviour*
operation-on-failure => *compile-file-failure-behaviour*
system-definition-pathname => system-source-directory,
system-relative-pathname (since ASDF 2)
component-property => no replacement yet, working on it.
make-instance 'some-op => either just 'some-op or (make-operation
'some-op) (make-instance operation still works for now but is
deprecated)

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Skill without imagination is craftsmanship.
Imagination without skill is contemporary art. — Tom Stoppard




More information about the asdf-devel mailing list