Store user-specified slot names in DEFSTRUCT-SLOT-DESCRIPTIONs,
which is necessary for conforming SLOT-EXISTS-P and MAKE-LOAD-FORM-SAVING-SLOTS. To bootstrap, using pmai's build scripts: 1. Copy boot10.lisp to target:bootstrap.lisp and do a full build. Choose the CLOBBER-IT restart when asked (for an unknown reason, it doesn't work to do this programatically.) 2. Leave the bootstrap file where it is and do a full build with the Lisp produced in step 1. 3. Remove the bootstrap file and do another full build. * src/bootfiles/18e/boot10.lisp: New file. * src-dsd/code/defstruct.lisp (defstruct-slot-description): Rename slot %name to name. (dsd-%name): New function. (dsd-name): Function removed. (parse-1-dsd): Set dsd-name to the slot symbol. * src-dsd/pcl/std-class.lisp (*allow-keyword-slot-names*): New variable. (initialize-internal-slot-functions) <around structure-effective-slot-definition>: New method binding *allow-keyword-slot-names* to true. * src-dsd/pcl/methods.lisp (legal-slot-name-p): Allow keywords if *allow-keyword-slot-names* is true.
Showing
- bootfiles/18e/boot10.lisp 102 additions, 0 deletionsbootfiles/18e/boot10.lisp
- code/defstruct.lisp 26 additions, 36 deletionscode/defstruct.lisp
- general-info/release-19a.txt 1 addition, 0 deletionsgeneral-info/release-19a.txt
- pcl/methods.lisp 11 additions, 5 deletionspcl/methods.lisp
- pcl/std-class.lisp 8 additions, 1 deletionpcl/std-class.lisp
Loading
Please register or sign in to comment