Skip to content
Snippets Groups Projects
  1. May 28, 2003
    • gerd's avatar
      Structure slot names can be any symbol. Found by Paul Dietz. · 3bbc7259
      gerd authored
      	* src/pcl/std-class.lisp (*allow-funny-slot-names*): Renamed
      	from *allow-keyword-slot-names*.
      
      	* src/pcl/methods.lisp (legal-slot-name-p): Allow any symbol
      	if *allow-funny-slot-names* is true.
      	(shared-initialize): Print the value of the :slot-name initarg.
      
      	* src/code/defstruct.lisp (parse-1-dsd): Treat nil as symbol
      	when used as a slot name.
      3bbc7259
  2. May 26, 2003
    • gerd's avatar
      Fix code signaling type-errors which did not have :datum and/or · 98ee6882
      gerd authored
      	:expected-type, which lead to the conditions which were not
      	displayable because the corresponding condition slots are
      	not bound.
      
      	* src/code/seq.lisp (coerce):
      	* src/code/list.lisp (nreconc):
      	* src/code/interr.lisp (invalid-array-index-error):
      	* src/code/bignum.lisp (bignum-to-float):
      	* src/code/byte-interp.lisp (%byte-car, %byte-cdr): Fix
      	type-errors to include :datum and/or :expected-type.
      
      	Add &more handling to the byte-compiler and -interpreter.
      	Reported by Paul Werkowski on cmucl-imp.
      
      	* src/compiler/byte-comp.lisp (make-xep-for): Handle &more.
      
      	* src/code/byte-interp.lisp (hairy-byte-function): Change
      	type of rest-arg-p slot.
      	(invoke-xep): Handle &more.
      98ee6882
    • gerd's avatar
      * src/code/foreign.lisp (load-object-file): Print more · b61912ba
      gerd authored
      	informative error messages.  From Lynn Quam, on cmucl-imp.
      b61912ba
  3. May 24, 2003
  4. May 23, 2003
    • gerd's avatar
    • gerd's avatar
      Add fwrappers. Rewrite TRACE and PROFILE to use fwrappers. · 5f74af19
      gerd authored
      	To bootstrap, use boot12.lisp with pmai's scripts.
      
      	* src/bootfiles/18e/boot12.lisp: New file.
      
      	* src/tools/worldload.lisp, src/tools/worldcom.lisp:
      	* src/tools/worldbuild.lisp: Add code:fwrappers.
      
      	* src/docs/cmu-user/extensions.tex (Function Wrappers):
      	New section.
      
      	* src/code/fwrappers.lisp: New file.
      
      	* src-fw/pcl/defs.lisp (gdefinition): Don't check for profiled
      	functions.
      
      	* src-fw/code/exports.lisp: Add walker and fwrappers.
      
      	* src-fw/code/fdefinition.lisp (fdefn-init): Set
      	*valid-function-names* to nil.
      	(encapsulation): Structure removed.
      	(do-encapsulations, encapsulation, last-encapsulation)
      	(push-encapsulation, encapsulate, unencapsulate, encapsulated-p):
      	Removed.  There is a compatibility layer in fwrappers.lisp.
      	(fdefinition, %set-fdefinition): Rewritten.
      
      	* src/code/profile.lisp: Remove #+cmu and #-cmu.
      	("PROFILE"): Use fwrappers.
      	(*profile-info*): Removed.
      	(profile-info): Redefined.
      	(*existing-encapsulations*): Removed.
      	(reset-profile-info, profile-info-profiling-values): New functions.
      	(make-profile-encapsulation): Removed.
      	(profile): New function name syntax.
      	(make-profile-fwrapper-name, make-profile-fwrapper): New functions.
      	(def-profile-fwrapper): Precompute some fwrappers.
      	(ensure-profile-fwrapper, find-profile-fwrapper, pi-or-lose):
      	New functions.
      	(profile-1-function): Rewritten.
      	(unprofile-1-function): Ditto.
      	(re-profile-redefined-function): New function.
      	(toplevel): Push it on *setf-fdefinition-hook*.
      
      	* src/code/ntrace.lisp (trace-call): Removed.
      	(trace-fwrapper): New fwrapper.
      	(trace-1): Use fwrap instead of encapsulate.
      	(untrace-1): Use funwrap instead of unencapsulate.
      5f74af19
    • gerd's avatar
      Add fwrappers. Rewrite TRACE and PROFILE to use fwrappers. · e9211546
      gerd authored
      	To bootstrap, use boot12.lisp with pmai's scripts.
      
      	* src/bootfiles/18e/boot12.lisp: New file.
      
      	* src/tools/worldload.lisp, src/tools/worldcom.lisp:
      	* src/tools/worldbuild.lisp: Add code:fwrappers.
      
      	* src/docs/cmu-user/extensions.tex (Function Wrappers):
      	New section.
      
      	* src/code/fwrappers.lisp: New file.
      
      	* src-fw/pcl/defs.lisp (gdefinition): Don't check for profiled
      	functions.
      
      	* src-fw/code/exports.lisp: Add walker and fwrappers.
      
      	* src-fw/code/fdefinition.lisp (fdefn-init): Set
      	*valid-function-names* to nil.
      	(encapsulation): Structure removed.
      	(do-encapsulations, encapsulation, last-encapsulation)
      	(push-encapsulation, encapsulate, unencapsulate, encapsulated-p):
      	Removed.  There is a compatibility layer in fwrappers.lisp.
      	(fdefinition, %set-fdefinition): Rewritten.
      
      	* src/code/profile.lisp: Remove #+cmu and #-cmu.
      	("PROFILE"): Use fwrappers.
      	(*profile-info*): Removed.
      	(profile-info): Redefined.
      	(*existing-encapsulations*): Removed.
      	(reset-profile-info, profile-info-profiling-values): New functions.
      	(make-profile-encapsulation): Removed.
      	(profile): New function name syntax.
      	(make-profile-fwrapper-name, make-profile-fwrapper): New functions.
      	(def-profile-fwrapper): Precompute some fwrappers.
      	(ensure-profile-fwrapper, find-profile-fwrapper, pi-or-lose):
      	New functions.
      	(profile-1-function): Rewritten.
      	(unprofile-1-function): Ditto.
      	(re-profile-redefined-function): New function.
      	(toplevel): Push it on *setf-fdefinition-hook*.
      
      	* src/code/ntrace.lisp (trace-call): Removed.
      	(trace-fwrapper): New fwrapper.
      	(trace-1): Use fwrap instead of encapsulate.
      	(untrace-1): Use funwrap instead of unencapsulate.
      e9211546
  5. May 20, 2003
    • gerd's avatar
      Move PCL's declaration identifiers SLOTS, AUTO-COMPILE, · e10b73e5
      gerd authored
      	NOT-AUTO-COMPILE to EXT.  To bootstrap, using pmai's scripts, copy
      	boot11.lisp to target:bootstrap.lisp and build.
      
      	* src/bootfiles/18e/boot11.lisp: New file.
      
      	* src/code/exports.lisp ("EXTENSIONS"): Export slots,
      	auto-compile, no-auto-compile.
      
      	* src/pcl/info.lisp: Don't export slots, auto-compile,
      	not-auto-compile.
      
      	* src/docs/cmu-user/extensions.tex: Declaration identifiers
      	moved from pcl: to ext:.
      e10b73e5
    • gerd's avatar
      Store user-specified slot names in DEFSTRUCT-SLOT-DESCRIPTIONs, · 20254db5
      gerd authored
      	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.
      20254db5
  6. May 19, 2003
  7. May 17, 2003
    • gerd's avatar
      Replace ENCAPSULATION-INFO with a funcallable structure · 85f76d5e
      gerd authored
      	ENCAPSULATION, making it possible to write more efficient
      	encapsulations than currently possible.
      
      	* src/code/fdefinition.lisp (fdefn-or-lose): New function.
      	(%coerce-to-function): Use it.
      	(encapsulation): Funcallable structure replacing encapsulation-info.
      	(print-encapsulation-info): Removed.
      	(do-encapsulations): New macro.
      	(encapsulation): Replaces function encapsulation-info.
      	(last-encapsulation, push-encapsulation): New functions.
      	(encapsulate, unencapsulate, encapsulated-p, fdefinition):
      	Rewritten.
      85f76d5e
  8. May 15, 2003
    • toy's avatar
      o Remove unneeded ALIEN package prefix. · 100a3e66
      toy authored
      o Add support for doc-strings and declarations for callback
        functions.  The declarations apply to the entire callback function,
        not just to the body.
      o Remove an unneeded sap+ when returning the value from the callback.
      100a3e66
    • gerd's avatar
      Let TRACE and PROFILE ignore package locks. · e58c5048
      gerd authored
      	* src/code/ntrace.lisp (trace-1, untrace-1): Use
      	without-package-locks.
      
      	* src/code/profile.lisp (make-profile-encapsulation)
      	(unprofile-1-function): Use without-package-locks.
      	(compute-time-overhead): Don't use without-package-locks.
      e58c5048
    • gerd's avatar
      Functions used in the implementation of TRACE can be traced using · d517659e
      gerd authored
      	encapsulation.  Use encapsulation for functions from a given list
      	of packages to automate this.
      
      	* src/code/ntrace.lisp (*trace-encapsulate-package-names*): New
      	variable.
      	(trace-call): Temporarily restore the unencapsulated definition of
      	the function.
      	(encapsulate-by-package-p): New function.
      	(trace-1): Use it.
      
      	* src/code/exports.lisp ("DEBUG"): Export
      	*trace-encapsulate-package-names*.
      
      	* src/docs/cmu-user/debugger.tex (section{Function Tracing}):
      	Add *trace-encapsulate-package-names*.
      d517659e
  9. May 14, 2003
  10. May 13, 2003
    • emarsden's avatar
      · 3f35f24b
      emarsden authored
      Build cleanups:
      
         - disable package locks in tools/setup.lisp, so that things
           can be redefined while rebuilding CMUCL
      
         - add forward-references for a number of functions that are
           referenced before they are loaded during the CMUCL build process
           (for instance CLOS-related functions that are used in the CMUCL
           core). This gets rid of a lot of compiler warnings while
           building.
      
         - export %CLASS-NAME from kernel package
      3f35f24b
  11. May 12, 2003
    • gerd's avatar
      * src/code/defstruct.lisp (defstruct): Handle uninterned · 52eecc9b
      gerd authored
      	struct names.
      52eecc9b
    • gerd's avatar
      * src/code/tty-inspect.lisp (describe-standard-object-parts): Use · 16427ca3
      gerd authored
      	pcl:: prefixes instead of mop:
      16427ca3
    • emarsden's avatar
      · 807d6f0f
      emarsden authored
      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
      807d6f0f
    • gerd's avatar
      Inspect CLOS instances. · 5c12720e
      gerd authored
      	* src/code/tty-inspect.lisp (describe-parts): Handle
      	standard-object.
      	(describe-standard-object-parts): New function.
      5c12720e
  12. May 11, 2003
  13. May 09, 2003
  14. May 08, 2003
    • gerd's avatar
      Fix problems with THE detected by Paul Dietz' tests. This also · 2e8488e0
      gerd authored
      	fixes the problem that CMUCL generated RETURN-MULTIPLE without a
      	good reason.
      
      	* src/compiler/checkgen.lisp (values-types-asserted): Use
      	coerce-to-values again.  Add fixme comments and #+nil code for
      	known problems; these aren't new problem, though.
      
      	* src/code/type.lisp (coerce-to-values): Don't add &rest t,
      	which is the business of THE.
      	(values) <type translator>: Disallow &key and &allow-other-keys.
      
      	* src/compiler/ir1tran.lisp (the) <IR1 translator>: Add &rest t
      	where appropriate, or-in null type into required types, for
      	missing values.
      2e8488e0
  15. May 06, 2003
  16. May 05, 2003
  17. May 04, 2003
  18. May 03, 2003
  19. May 01, 2003
  20. Apr 30, 2003
  21. Apr 29, 2003
    • emarsden's avatar
      · 2048dc3a
      emarsden authored
      Make SIMPLE-PARSE-ERROR subclass PARSE-ERROR (fixes bug in PARSE-INTEGER
      reported to cmucl-help by Johannes Grødem).
      2048dc3a
Loading