Skip to content
Snippets Groups Projects
  1. 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
  2. May 28, 2003
  3. 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
  4. May 24, 2003
  5. 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
  6. 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
  7. May 19, 2003
  8. 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
  9. 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
  10. May 14, 2003
  11. 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
  12. 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
  13. May 11, 2003
  14. May 09, 2003
  15. 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
  16. May 06, 2003
  17. May 05, 2003
  18. May 04, 2003
  19. May 03, 2003
  20. May 01, 2003
  21. Apr 30, 2003
    • gerd's avatar
      Compile-time checking of calls to FORMAT. · c6e55e56
      gerd authored
      	* src/code/format.lisp (min/max-format-arguments-count)
      	(min/max-format-args, min/max-conditional-args): New functions.
      
      	* src/compiler/srctran.lisp (check-format-args): New function.
      	(format): New transformer for simple-string format control
      	and (<= speed space), checking number of args.
      	(format) <transforms>: Use min/max-format-arguments-count.
      
      	* src/code/package.lisp (unintern): Add missing args to format.
      
      	* src/compiler/disassem.lisp (maybe-note-associated-storage-ref):
      	Remove extraneous format arg.
      c6e55e56
Loading