aboutsummaryrefslogtreecommitdiff
path: root/src/propspec.lisp
Commit message (Collapse)AuthorAge
* IN-CONSFIG: use &restSean Whitton2022-04-02
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* rename DEFINE-PRINT-OBJECT-FOR-STRUCTLIKE & REINIT-STRUCTLIKESean Whitton2022-03-12
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* PROPSPEC class definition: refactor to avoid unneeded HANDLER-CASESean Whitton2021-12-13
| | | | | Suggested-by: Yehouda Harpaz <yeh@lispworks.com> Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* IN-CONSFIG: don't accept NIL as argumentSean Whitton2021-12-13
| | | | | | | | | | | | | If *CONSFIG* is NIL because the user called (in-consfig nil), then initialising a propspec without any supplied list of ASDF systems will still result in a NO-CONSFIG warning, the text of which suggests calling IN-CONSFIG. For now, avoid that situation by disallowing (in-consfig nil). If the user doesn't want to use the *CONSFIG* feature, it is probably best if they muffle the warning or explicitly supply a list of ASDF systems in each piece of code that initialises propspecs, rather than declaring (in-consfig nil). Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* signal a warning, not an error, when *CONSFIG* is not setSean Whitton2021-12-03
| | | | | | | | | *CONSFIG* is meant to be an optional feature, and this should make it easier to write code which doesn't use it. For example, code running in an IMAGE-DUMPED image might use (deploy-these :local ...) to build a propspec, but *PACKAGE* is likely to be COMMON-LISP-USER, not the user's consfig. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* add dep on Anaphora and use APROG1, ALET & AAND in various placesSean Whitton2021-09-08
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* MAKE-PROPSPEC: propagate *CONSFIG* even when propspec expression nilSean Whitton2021-07-06
| | | | | | | | | | | | | | | Previously, MAKE-PROPSPEC would store nil for the SYSTEMS slot in the case where the PROPSPEC argument was nil. The idea behind this was that if there are no properties to apply, then there is no need to load any ASDF systems. However, the SYSTEMS slot is how a HOST value containing the propspec records the systems required not just to apply its properties, but also what's required to instantiate all of its hostattrs. For example, when some of these hostattrs are CLOS objects, the classes of those objects must be loaded. So don't set SYSTEMS to nil just because the propspec expression is nil. Also see edbba484918f6de83680a5b29e561fba981e05e9. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* MAP-PROPSPEC-PROPAPPS: trivial-macroexpand-all -> agnostic-lizardSean Whitton2021-06-04
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* factor out ENSURE-HOST & call it in hostattrs accessorsSean Whitton2021-05-30
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* APPEND-PROPSPECS: don't unconditionally combine with SILENT-SEQPROPSSean Whitton2021-05-29
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* define APPEND-PROPSPECS for null argumentsSean Whitton2021-05-29
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* add & use PROPAPP macroSean Whitton2021-05-06
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* avoid quoting self-evaluating forms when reconstructing propspecsSean Whitton2021-04-16
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* include error when reporting INVALID-OR-AMBIGUOUS-PROPSPECSean Whitton2021-04-16
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* use ~S not ~A in reporting INVALID-OR-AMBIGUOUS-PROPSPECSean Whitton2021-04-16
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* define & use DEFINE-PRINT-OBJECT-FOR-STRUCTLIKESean Whitton2021-04-16
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* untabifySean Whitton2021-03-22
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* move combinators to their own file to avoid dependency loopSean Whitton2021-03-22
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* APPEND-PROPSPECS: better handle case where one side of union is nilSean Whitton2021-03-21
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* when skipping failed changes, print the errorSean Whitton2021-03-21
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* add facility for more regular progress and debug printingSean Whitton2021-03-21
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* fix docstrings in DEFINE-FUNCTION-PROPERTY-COMBINATORSean Whitton2021-03-21
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* add and export WITH-PRESERVE-HOSTATTRSSean Whitton2021-03-20
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* add and use :CONSFIGURATOR named readtableSean Whitton2021-03-20
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* don't try to call COMPLEMENT on nilSean Whitton2021-03-19
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* run :HOSTATTRS subroutines even when unapplyingSean Whitton2021-03-19
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* implement unapplying SEQPROPS, ESEQPROPS, SILENT-SEQPROPSSean Whitton2021-03-19
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* drop some pointless & incorrect :CHECK subroutinesSean Whitton2021-03-19
| | | | | | | | Pointless because there is no point in running a check that PROPAPPAPPLY/PROPAPPUNAPPLY is just going to run again. Incorrect because always returning nil means unapplying the property will never happen. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* reindentSean Whitton2021-03-19
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* factor out WITH-SKIP-FAILED-CHANGESSean Whitton2021-03-19
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* pull MAKE-PROPSPEC out of PROPS & set SYSTEMS from *HOST*Sean Whitton2021-03-19
| | | | | | | | We want a property application specification expression to be what goes into DEFPROPSPEC because then we can set the systems slot based on the host to which the property is applied, rather than looking at *CONSFIG*. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* pass function property combinator name to GENSYMSean Whitton2021-03-19
| | | | | | Makes debugging output more useful. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* make unpreprocessed propspecs printableSean Whitton2021-03-19
| | | | | | | They can appear in what we need to send to the remote Lisp, in :ORIG-ARGS entries for DEFPROPSPEC properties. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* attempt to reintroduce ON-CHANGESean Whitton2021-03-18
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* update symbol nameSean Whitton2021-03-18
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* add OS:HOST-TYPECASESean Whitton2021-03-18
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* use a keyword symbol for :RETPROP fletSean Whitton2021-03-18
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* tidy up signalling INAPPLICABLE-PROPERTY and FAILED-CHANGESean Whitton2021-03-18
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* record which symbols are properties at compile timeSean Whitton2021-03-18
| | | | | | This is for the sake of PROPS. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* add WITH-REQUIREMENTSSean Whitton2021-03-16
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* rename some symbols to avoid using names defined by CL packageSean Whitton2021-03-16
| | | | | | The point of using non-keywords here is to avoid clashes with other packages. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* add OS:TYPECASESean Whitton2021-03-15
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* don't ever try to load ASDF systemsSean Whitton2021-03-15
| | | | | | | | | | Preprocessing a propspec will catch undefined properties and property combinators, and we only eval preprocessed propspecs, so there is no point in doing this anymore. We still need the list of ASDF systems to know what to upload. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* MAP-PROPSPEC-PROPAPPS: handle more possible expansion failuresSean Whitton2021-03-15
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* call :PREPROCESS and :HOSTATTRS subroutines laterSean Whitton2021-03-15
| | | | | | | Avoids us trying to eval propspecs at DEFHOST time, which can get us into ASDF loading loops. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* MAP-PROPSPEC-PROPAPPS: expand docstringSean Whitton2021-03-15
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* MAP-PROPSPEC-PROPAPPS: check for ambiguous propspecsSean Whitton2021-03-15
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* rename *REMOTE-LISP* to *SUPPRESS-LOADING-SYSTEMS*Sean Whitton2021-03-15
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* attempt to implement revised propspecs specSean Whitton2021-03-15
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* move MACROEXPAND-ALL to utils.lispSean Whitton2021-03-11
| | | | | | Pure code motion. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>