Skip to content
Snippets Groups Projects
  1. Jun 06, 2003
    • gerd's avatar
      Various problems with TYPE-OF found by Paul Dietz. · f847c099
      gerd authored
      	* src/pcl/methods.lisp (setf class-name) <before>: New method
      	setting the kernel class' name.
      
      	* src/code/pred.lisp (type-of): Don't return list function types.
      	Return boolean for t, (integer n n) for integers, keyword for
      	keywords, standard-char for standard characters.  Return
      	the CLOS class for classes not having a proper name.
      f847c099
  2. Jun 05, 2003
  3. Jun 02, 2003
    • emarsden's avatar
      Change to the compiler's error/note reporting: · d9603d83
      emarsden authored
         - an extra optional argument to COMPILER-NOTIFICATION makes it
           possible to pass text describing the error/note to
           *COMPILER-NOTIFICATION-FUNCTION*.
      
         - functions for *COMPILER-NOTIFICATION-FUNCTION* have an extra
           second argument which describes the error/note
      
         - modify the eval-server functionality in Hemlock in consequence
      
      This backwards-incompatible change makes the
      *COMPILER-NOTIFICATION-FUNCTION* facility considerably more useful,
      since the description of the error (which was previously not passed to
      the notification-function) is very useful when reporting an error.
      
      
      Compile-time effect of DEFCONSTANT: instead of discarding the
      documentation string, add it to the info database.
      d9603d83
    • emarsden's avatar
      Progress towards finer-grained package locks: · 90f30d51
      emarsden authored
         - LOAD binds *ENABLE-PACKAGE-LOCKED-ERRORS*, so loading a file that
           sets that variable only has an effect while loading
      
         - the WITHOUT-PACKAGE-LOCKS needs an EVAL-WHEN (noted by Lynn Quamm
           on cmucl-imp)
      90f30d51
    • toy's avatar
      file-length returns two values instead of one, as required. Bug and · 3fcef2cb
      toy authored
      solution from Wolfhard Buss.
      3fcef2cb
  4. Jun 01, 2003
  5. May 29, 2003
    • toy's avatar
      Add control-stack checking for Sparc. Based on work from SBCL. · 72f0aa1e
      toy authored
      	* lisp/sunos-os.h (PROTECTION_VIOLATION_SIGNAL): Define it for
      	stack-checking.
      
      	* lisp/solaris-os.c (segv_handler): Add stack-checking support for
      	Solaris.
      
      	* lisp/os.h (os_control_stack_overflow): Give a type name to the
      	zone enums (mostly for the debugger).
      
      	* lisp/os-common.c (guard_zones): Add stack-checking support for
      	Solaris.
      	(os_control_stack_overflow): Add stack-checking support for
      	Solaris.
      
      	* lisp/interrupt.c (build_fake_control_stack_frame): New function
      	for building a stack frame without the foreign call stuff.  Used
      	for stack checking.
      	(interrupt_install_low_level_handler): Only need to install
      	alternate signal stack for x86.
      
      	* lispinit.lisp:
      	(scrub-control-stack): Rename to %scrub-control-stack to match x86
      	version so control stack guard is done.
      
      	* parms.lisp (static-symbols): Added new static symbols for
      	control stack checking.
      72f0aa1e
    • gerd's avatar
      Building with cgc. · f824769e
      gerd authored
      	* src/lisp/Config.FreeBSD (NM): Use linux-nm.
      
      	* src/code/gc.lisp: Use bytes_allocated for cgc because
      	get_bytes_allocated_{lower,higher} is only implemented for
      	gencgc.
      f824769e
  6. May 28, 2003
  7. 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
  8. May 24, 2003
  9. 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
  10. 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
  11. May 19, 2003
  12. 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
  13. 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
  14. May 14, 2003
  15. 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
  16. 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
  17. May 11, 2003
  18. May 09, 2003
  19. 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
  20. May 06, 2003
  21. May 05, 2003
Loading