ASDF components are brittle for backwards compatibility
Robert Goldman
rpgoldman at sift.info
Thu Apr 29 16:51:10 UTC 2021
On 29 Apr 2021, at 11:42, Stelian Ionescu wrote:
> How can ASDF or a developer determine that the unknown property
> doesn't change the semantics of the DEFSYSTEM, and therefore
> discarding it would have an effect that's contrary to the author's
> intention ?
>
> ASDF has no syntactic distinction between properties that affect the
> compilation process and mere annotations like author, licence, etc...
You can safely assume that the unknown property doesn't change the
semantics, because if it does, then the system must require a particular
version of ASDF.
In other words, this does not introduce a failure mode that isn't
already present. If there's a `:use-apple-clang` property introduced in
ASDF 29.7 and you didn't put some requirement for ASDF >= 29.7 then your
system is busted whether the user discards and continues or not -- the
library developer has erred, and nothing about this new extensibility
makes the problem worse.
But it *does* make it possible to extend ASDF *in safe ways* without
compromising backwards compatibility.
Note the "in safe ways" -- if we added new properties that change the
semantics, we must do something to protect people using older versions.
The proposed capability wouldn't change that one way or another. It just
makes it possible to extend metadata without excessive pain.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20210429/90289f2d/attachment.html>
More information about the asdf-devel
mailing list