Re: ASDF components are brittle for backwards compatibility

2021-04-29 Thread Eric Timmons
"Robert Goldman" writes: > 2. Add a new `defsystem` parsing error class that is > `unknown-component-property`, raise it when an unknown property is > encountered and allow the user to continue, discarding the initarg and > accompanying value. How practical is this one actually? The initarg

Re: ASDF components are brittle for backwards compatibility

2021-04-29 Thread Robert Goldman
On 29 Apr 2021, at 19:42, Stelian Ionescu wrote: On Thu, 2021-04-29 at 18:58 -0500, Robert Goldman wrote: On 29 Apr 2021, at 13:38, Marco Antoniotti wrote: Robert, it was you who suggested to use it if I remember correctly. How would it be different from what you just proposed? My

Re: ASDF components are brittle for backwards compatibility

2021-04-29 Thread Stelian Ionescu
On Thu, 2021-04-29 at 18:58 -0500, Robert Goldman wrote: > On 29 Apr 2021, at 13:38, Marco Antoniotti wrote: > > > Robert, it was you who suggested to use it if I remember correctly. > > > > How would it be different from what you just proposed? > > My suggestion to use the `:properties` slot

Re: ASDF components are brittle for backwards compatibility

2021-04-29 Thread Robert Goldman
On 29 Apr 2021, at 13:38, Marco Antoniotti wrote: Robert, it was you who suggested to use it if I remember correctly. How would it be different from what you just proposed? My suggestion to use the `:properties` slot was not a good one. Looking at the code, this slot is clearly marked as

Re: ASDF components are brittle for backwards compatibility

2021-04-29 Thread Marco Antoniotti
Robert, it was you who suggested to use it if I remember correctly. How would it be different from what you just proposed? Marco On Thu, Apr 29, 2021 at 8:07 PM Robert Goldman wrote: > That slot *is* there, but it is specifically noted as being for ASDF 2 > compatibility only, and not to be

Re: ASDF components are brittle for backwards compatibility

2021-04-29 Thread Robert Goldman
That slot *is* there, but it is specifically noted as being for ASDF 2 compatibility only, and not to be used. So you are using this at your own risk. Having a `:plist` slot might be a good addition, as well (i.e., both of my 2 proposed solutions) as something lighter weight than my second

Re: ASDF components are brittle for backwards compatibility

2021-04-29 Thread Marco Antoniotti
Hi Robert Isn't the :properties slot already there? I just used it (a month ago) to add an ASDF DOCUMENT op to HELambdaP. Worked like a charm once I got the hang of it and it seals the general ASDF machinery from random stuff. Marco On Thu, Apr 29, 2021 at 6:13 PM Robert Goldman wrote: >

Re: ASDF components are brittle for backwards compatibility

2021-04-29 Thread Stelian Ionescu
> 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

Re: ASDF components are brittle for backwards compatibility

2021-04-29 Thread Robert Goldman
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

Re: ASDF components are brittle for backwards compatibility

2021-04-29 Thread Stelian Ionescu
> ASDF checks to make sure all of the initargs are defined when parsing a > `defsystem`. This is good for catching errors, but is terrible for > extensibility. This means that any attempt to add additional metadata will be > backwards incompatible. > I can think of two ways to fix this: >

ASDF components are brittle for backwards compatibility

2021-04-29 Thread Robert Goldman
ASDF checks to make sure all of the initargs are defined when parsing a `defsystem`. This is good for catching errors, but is terrible for extensibility. This means that any attempt to add additional metadata will be backwards incompatible. I can think of two ways to fix this: 1. Add a