Skip to content
Snippets Groups Projects
  1. May 19, 2003
  2. 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
  3. 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
  4. May 14, 2003
  5. 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
  6. 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
  7. May 11, 2003
  8. May 09, 2003
  9. 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
  10. May 06, 2003
  11. May 05, 2003
  12. May 04, 2003
  13. May 03, 2003
  14. May 01, 2003
  15. Apr 30, 2003
  16. 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
  17. Apr 27, 2003
    • toy's avatar
      Remove all stuff relating to :negative-zero-is-not-zero which enabled · a26fba41
      toy authored
      the non-ANSI feature of making -0 and +0 different in
      type-specifiers.  Internal code still assumes this in various places,
      however.  Since our type system is much smarter now than when this was
      written (and handles type unions and member types much better),
      perhaps we should clean this up?
      a26fba41
  18. Apr 26, 2003
    • gerd's avatar
      CLASS-04.[2345], CONDITION-27-READER-IS-GENERIC, compiled. Avoid · ce55ee05
      gerd authored
      	constant-folding tests for generic-functionness.  Fix intersection
      	of function types and generic-function.
      
      	* src/code/type.lisp (type-intersection2): Handle intersection
      	of FUNCTION-TYPEs with non-FUNCTION-TYPEs, like generic-function.
      
      	* src/compiler/typetran.lisp (ir1-transform-type-predicate)
      	(typep): Handle generic-function type tests differently.
      
      	* src/code/class.lisp (class) <:complex-subtypep-arg1>:
      	New type method for function = (function * *).
      ce55ee05
  19. Apr 24, 2003
  20. Apr 23, 2003
    • gerd's avatar
      Final fix for -0d0/0d0 and member types from Christophe · f6fdc008
      gerd authored
      	Rhodes.
      
      	* src/code/type.lisp (member-type): Add :constructor.
      	(make-member-type): New function.
      	(not) <type translator>: Treat member types specially.
      f6fdc008
    • gerd's avatar
      Make the type system more forgiving wrt to unknown types. · 23f8e9ce
      gerd authored
      	Temporary fix for -0d0/0d0 and member types.
      
      	* src/code/type.lisp (reparse-unknown-type): New function.
      	(type-union2, type-intersection2): Use it.
      	(hierarchical-intersection2, hierarchical-union2): Moved to
      	typedef.lisp.
      	(member): Temporary fix for -0d0/0d0 problem; Christophe Rhodes is
      	working on the real fix.
      
      	* src/code/typedefs.lisp (type-class): Use hierachical-union2
      	and hierachical-intersection2 as inits for slots simple-union
      	and simple-intersection, like SBCL does.
      	(hierarchical-intersection2, hierarchical-union2): Moved
      	here from type.lisp.
      23f8e9ce
  21. Apr 22, 2003
  22. Apr 21, 2003
  23. Apr 19, 2003
    • gerd's avatar
      Add destructuring support to &REST, &BODY, &WHOLE. Detected · 1ca1159c
      gerd authored
      	by Paul Dietz' ANSI tests.
      
      	* src/code/defmacro.lisp (parse-defmacro-lambda-list): Add
      	&parse-body, replacing &body (<body> <decls> <doc>).  Add
      	destructuring support to &rest, &body, &whole.
      
      	* src/code/eval.lisp (lambda-list-keywords): Add &parse-body.
      
      	* src/code/exports.lisp ("EXTENSIONS"): Export &parse-body.
      
      	* src/hemlock/table.lisp (do-words, with-folded-string):
      	* src/hemlock/macros.lisp (with-pop-up-display):
      	* src/compiler/macros.lisp (deftransform):
      	* src/compiler/ir1tran.lisp (symbol-macrolet, let, locally)
      	(let*, flet, labels) <ir1-translator>:
      	* src/code/package.lisp (do-symbols, do-external-symbols)
      	(do-all-symbols):
      	* src/code/macros.lisp (defun, prog, prog*, with-open-file)
      	(with-open-stream, with-input-from-string)
      	(with-output-to-string, do, do*):
      	* src/code/mach.lisp (gr-bind):
      	* src/code/extensions.lisp (do-anonymous, do-hash, defun-cached):
      	Use &parse-body instead of &body.
      1ca1159c
    • toy's avatar
      32677b40
Loading