-
- Downloads
Add package locks. Bootfile boot8.lisp allows this to build without a cross-compile (or just select the CLOBBER-IT restart). - two extra PACKAGE-LOCK and PACKAGE-DEFINITION-LOCK slots added to the package structure. These can be modified using the EXT:PACKAGE-LOCK and EXT:PACKAGE-DEFINITION-LOCK accessors. - macro EXT:WITHOUT-PACKAGE-LOCKS that evaluates forms with all package locks disabled (this is done by binding the global variable CL::*ENABLE-PACKAGE-LOCKED-ERRORS*) - new PACKAGE-LOCKED-ERROR condition - in SETF-FDEFINITION-HOOK and in the DEFMACRO, DEFSTRUCT, DEFTYPE and DEFCLASS defining forms, check whether the definition would modify a package whose definition-lock is enabled, and signal a package-locked-error condition with restarts that allow you to unlock the package or ignore the lock - in EXPORT, UNEXPORT etc check whether the target package is guarded by a package-lock, and signal an error - disable package locks when loading a subsystem - disable package locks in certain areas of PCL and in the MAKE-LOAD-FORM support of the compiler, where code is generated inside system packages at runtime
Showing
- bootfiles/18e/boot8.lisp 41 additions, 0 deletionsbootfiles/18e/boot8.lisp
- code/defstruct.lisp 14 additions, 2 deletionscode/defstruct.lisp
- code/exports.lisp 7 additions, 2 deletionscode/exports.lisp
- code/macros.lisp 32 additions, 4 deletionscode/macros.lisp
- code/module.lisp 3 additions, 2 deletionscode/module.lisp
- code/package.lisp 163 additions, 43 deletionscode/package.lisp
- compiler/main.lisp 13 additions, 9 deletionscompiler/main.lisp
- pcl/braid.lisp 10 additions, 9 deletionspcl/braid.lisp
- pcl/cache.lisp 5 additions, 3 deletionspcl/cache.lisp
- pcl/ctor.lisp 10 additions, 7 deletionspcl/ctor.lisp
- pcl/defclass.lisp 3 additions, 2 deletionspcl/defclass.lisp
- pcl/low.lisp 16 additions, 15 deletionspcl/low.lisp
Loading
Please register or sign in to comment