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.