Skip to content
Snippets Groups Projects
  1. Sep 09, 2005
  2. Mar 26, 2004
    • emarsden's avatar
      · 10b760ea
      emarsden authored
       - add a SIMPLE-STREAM-ERROR class, and use it when signaling errors from
         fd-streams DO-OUTPUT (noted by Matthew Danish)
      
       - fix bug in fd-stream error handling (patch from Ole Rohne)
      10b760ea
  3. Oct 26, 2003
  4. Oct 24, 2003
    • toy's avatar
      Add support for catching heap overflows, similar to the control stack · 3e309c44
      toy authored
      overflow checking.  Enable with :heap-overflow-check.  We reserve some
      number of pages on the heap.  When the heap reaches the reserved
      pages, an overflow warning is signalled.  The reserved pages are set
      0.  This allows some additional allocation to happen during debugging,
      if necessary.  If another overflow happens, we throw to top-level.
      
      Sparc only right now.
      
      	* lisp/sparc-assem.S (_do_dynamic_space_overflow_error): New
      	function to handle a heap overflow error.
      	(_do_dynamic_space_overflow_warning): New function to handle heap
      	overflow warning.
      
      	* lisp/sparc-arch.c (sigill_handler): Handle the two new traps
      	caused by heap overflows.
      
      	* lisp/interrupt.c (interrupt_handle_space_overflow): New function
      	to handle interrupt caused by heap space overflows.
      
      	* lisp/gencgc.c (handle_heap_overflow): New function to handle
      	heap overflows.
      	(gc_alloc_new_region): Use handle_heap_overflow.
      	(gc_alloc_large): Use handle_heap_overflow
      
      	* compiler/sparc/parms.lisp (static-symbols): Add new static
      	symbols for heap overflow checking:
      	dynamic-space-overflow-error-hit and
      	dynamic-space-overflow-warning-hit.
      
      	* compiler/generic/new-genesis.lisp (finish-symbols): Initialize
      	the new dynamic-space-overflow-error-hit and
      	dynamic-space-overflow-warning-hit static symbols.
      
      	* code/lispinit.lisp (:heap-overflow-check): Add
      	heap-overflow-check to *runtime-features*, if necessary.
      	("reserved_heap_pages"): Access to alien variable for heap
      	overflow.
      	(*reserved-heap-pages*): Default number of heap pages to reserve
      	for heap overflow.
      	(%top-level): Set reserved-heap-pages to the default.
      
      	* code/interr.lisp (dynamic-space-overflow-warning-hit): Add
      	function to handle heap overflow warnings.
      	(dynamic-space-overflow-error-hit): Add function to handle heap
      	overflow error.
      
      	* code/error.lisp (heap-overflow): Add new condition type for heap
      	overflow
      3e309c44
  5. Jul 20, 2003
    • gerd's avatar
      The debugger computes active restarts in a dynamic environment · b662ca74
      gerd authored
      	that can be different from the dynamic environment at the point
      	where the user chooses one of the computed restarts.  Effect: The
      	debugger offers a restart, but complains that it isn't active
      	when the restart is chosen.
      
      	* src/code/error.lisp (%invoke-restart-interactively): New function.
      	(invoke-restart-interactively): Use it.
      	* src/code/debug.lisp (make-restart-commands): Use it.
      b662ca74
  6. May 03, 2003
  7. Apr 30, 2003
  8. 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
  9. Apr 18, 2003
    • gerd's avatar
      Make condition readers/writers generic functions, as required by · 897b08d2
      gerd authored
      	ANSI.  Detected by Paul Dietz' ANSI test suite.
      
      	* src/tools/worldcom.lisp: Set
      	conditions::*make-condition-accessor-methods* to nil.
      
      	* src/tools/pclcom.lisp: Convert condition accessor gfs back
      	to normal functions.
      
      	* src/code/error.lisp (*make-condition-accessor-methods*)
      	(*early-condition-accessors*): New variables.
      	(make-early-condition-accessors-generic)
      	(make-condition-accessor): New functions.
      	(%define-condition): Use make-condition-accessor.
      	(define-condition): Define methods if
      	*make-condition-accessor-methods*.
      
      	* src/pcl/fixup.lisp (toplevel): Call
      	conditions::make-early-condition-accessors-generic.
      897b08d2
  10. Apr 17, 2003
  11. Apr 16, 2003
  12. Apr 13, 2003
    • gerd's avatar
      Fix CONDITION-x-SLOTS* ANSI test failures. · cdb3a46f
      gerd authored
      	* src-types/code/error.lisp (condition-reader-function): Loop over
      	actual initargs first because these determine how slots are
      	initialized.
      	(compute-effective-slots): Don't duplicate slots of the class
      	whose effective slots are computed.
      cdb3a46f
  13. Mar 23, 2003
    • gerd's avatar
      Optional control stack checking. This is controlled by the · 670d643f
      gerd authored
      	feature :stack-checking because it's not implemented for other
      	systems/architectures yet.  It is currently known to work on
      	FreeBSD 4.8-RC/x86 and Debian 2.2.20/x86.
      
      	* bootfiles/18e/boot3.lisp: New boot file, well, only a
      	description of the boot procedure since no boot file is needed.
      
      	* lisp/x86-validate.h (SIGNAL_STACK_START, SIGNAL_STACK_SIZE)
      	[__FreeBSD__, __linux__]: New defines.
      	(CONTROL_STACK_SIZE) {__FreeBSD__, __linux__]:
      	Adjust for signal stack.
      
      	* lisp/validate.c (validate) [RED_ZONE_HIT]: Call
      	os_guard_control_stack.  Some cleanup.
      
      	* lisp/os.h (BOTH_ZONES, YELLOW_ZONE, RED_ZONE): New enums.
      	Add function prototypes.
      
      	* lisp/interrupt.c (interrupt_install_low_level_handler)
      	[RED_ZONE_HIT]: Deliver protection violations on a dedicated
      	signal stack.
      
      	* lisp/os-common.c (os_stack_grows_down_1, os_stack_grows_down):
      	New functions.
      	(guard_zones, control_stack_zone, os_guard_control_stack)
      	(os_control_stack_overflow) [RED_ZONE_HIT]: New functions.
      	(os_control_stack_overflow) [!RED_ZONE_HIT]: Dummy function.
      
      	* lisp/Linux-os.c (sigsegv_handler) [RED_ZONE_HIT]: Handle control
      	stack overflows.
      
      	* lisp/FreeBSD-os.c: General cleansing.
      	(sigbus_handler) [RED_ZONE_HIT]: Handle control stack overflows.
      
      	* lisp/FreeBSD-os.h (PROTECTION_VIOLATION_SIGNAL): New define.
      
      	* lisp/Linux-os.h (PROTECTION_VIOLATION_SIGNAL): New define.
      
      	* compiler/x86/system.lisp (lisp::%scrub-control-stack): Change
      	defknown from sys:scrub-control-stack.
      	(%scrub-control-stack): Rename VOP.
      
      	* code/lispinit.lisp (os-guard-control-stack) [#+stack-checking]:
      	Define alien os_guard_control_stack.
      	(%scrub-control-stack) [#+x86]: New function.
      	(scrub-control-stack) [#+x86]: Call %scrub-control-stack,
      	call os-guard-control-stack if #+stack-checking.
      
      	* code/interr.lisp (yellow-zone-hit,
      	red-zone-hit) [#+stack-checking]: New functions.
      
      	* code/error.lisp (stack-overflow) [#+stack-checking]: New
      	condition.
      
      	* compiler/generic/new-genesis.lisp (finish-symbols)
      	[#+stack-checking]: Add symbols for control stack checking.
      
      	* compiler/x86/parms.lisp (static-symbols): Likewise.
      670d643f
  14. Mar 22, 2003
    • gerd's avatar
      * bootfiles/18e/boot[12].lisp: Bootstrap files for the lisp:class · a1e3ed93
      gerd authored
      = pcl:class part.  To get it booted from 18e, cross-compile using
      boot1.lisp as bootstrap.lisp in pmai's build scripts, then do a
      normal compile with boot2.lisp as bootstrap.lisp with the
      resulting Lisp.
      
      * code/byte-interp.lisp, code/defstruct.lisp, code/describe.lisp:
      * code/error.lisp, code/exports.lisp, code/hash-new.lisp:
      * code/hash.lisp, code/macros.lisp, code/misc.lisp:
      * code/package.lisp, code/pred.lisp, code/sharpm.lisp, code/type.lisp:
      * compiler/dump.lisp, compiler/fndb.lisp, compiler/globaldb.lisp:
      * compiler/proclaim.lisp, compiler/typetran.lisp, compiler/xref.lisp:
      * compiler/generic/primtype.lisp, compiler/generic/vm-type.lisp:
      Changes for to use kernel::class etc.
      
      * code/class.lisp (toplevel): Shadow class, built-in-class etc.
      (class): Give it conc-name %class-.
      (toplevel) [#+bootstrap-lisp-class=pcl-class]: Define old accessors.
      (everywhere): Use new class accessors.
      
      * compiler/generic/vm-fndb.lisp (%make-instance): Change from
      unsafe to flushable and movable.
      
      * code/ntrace.lisp (expand-trace, untrace): Changes for method
      tracing.
      
      * code/profile.lisp (profile, profile-all, unprofile): Method
      profiling.
      
      * pcl/*.text, pcl/bench.lisp, pcl/extensions.lisp:
      * pcl/fast-init.lisp, pcl/precom1.lisp, pcl/precom4.lisp:
      * pcl/structure-class.lisp, pcl/user-instances.lisp:
      Removed.
      
      * tools/pclcom.lisp: Changes for my PCL and lisp:class =
      pcl::class.
      a1e3ed93
  15. Feb 15, 2003
    • pmai's avatar
      Entomotomy Bug: condition-reporting-not-via-print-object · 45a93f8d
      pmai authored
      This change causes condition printing (generally) and condition reporting
      (in particular) to go via print-object, once PCL is loaded, as required
      by ANSI.  Note that the :report option of define-condition still goes
      through the old non-print-object mechanism (which is allowed by ANSI),
      but that this mechanism is now invoked via a default method of print-object
      specialized on condition.  Hence user-defined methods on print-object
      are now effective, instead of being bypassed through the old mechanism.
      45a93f8d
  16. Aug 23, 2002
  17. Aug 22, 2002
    • pmai's avatar
      Removed outdated warnings about :writer/:accessor possibly not being · 0c623206
      pmai authored
      ANSI CL.  Also removed several other warnings which were mostly bogus
      with the existance of writers (the "no :initarg/:initform" warning).
      And finally also removed the "no :reader" warning, since it is really
      the perogative of the user to do what he wants, and issuing full
      warnings is non-conforming to boot.
      0c623206
  18. Jul 25, 2002
    • toy's avatar
      From Eric Marsden: · 08bc8f16
      toy authored
        * the PARSE-INTEGER function should signal an error of type
          PARSE-ERROR when the substring argument is not a valid
          representation of an integer.
      08bc8f16
  19. Feb 01, 2002
  20. Apr 19, 2001
  21. Jan 09, 2001
  22. Oct 25, 2000
  23. Aug 08, 2000
  24. Aug 06, 2000
    • dtc's avatar
      o Add the new function order-layout-inherits to correctly order the · 9793164a
      dtc authored
        layouts within the layout-inherits vector. This ensures that
        the compiler can generate inline type tests for hierarchical classes.
      
      o Modify the definition of the stream class to be hierarchical.
      
      o Have the condition classes correctly order their layout-inherits
        so that the hierarchical condition class is placed at it specified depth.
      
      o Enhance the compiler instance typep transform to generate inline
        type tests for hierarchical classes, not just for structures.
      9793164a
  25. Jul 11, 2000
  26. Jan 09, 1999
  27. Dec 19, 1998
  28. Aug 14, 1998
  29. Jul 19, 1998
  30. Jul 16, 1998
  31. Jul 14, 1998
    • pw's avatar
      This revision merges in many of the fixes for ANSI condition types · 42efe00d
      pw authored
      in various calls to ERROR. Those easily handled by using new condition
      types simple-file-error and simple-program-error are included.
      
      The only functional change here is that the function CHARACTER no longer
      accepts an integer argument so as to be ANSI compliant. This may
      break some code.
      42efe00d
  32. Jul 13, 1998
    • pw's avatar
      Backout a previous hack of adding format-{control|arguments} protocol · 06be8c9a
      pw authored
      to serious-condition. Instead, have new internal condition types
      simple-package-error, simple-file-error and simple-program-error
      which inherit from simple-condition and respective error condition,
      thus picking up the format protocol from simple-condition.
      
      Noted a probable bug in that the CPL for conditions is not sorted
      which results in the found report method being dependent
      on the order of super-classes specified in the call to define-condition.
      06be8c9a
  33. Apr 20, 1998
    • pw's avatar
      This revision alters the condition type hierarchy to be in compliance · 4a42e17c
      pw authored
      with the ANSI spec. A default report method is attached to the
      serious-condition class and many of the uses of (error "string" arg..)
      in filesys.lisp and package.lisp were changed to use, for example,
      (error 'file-error :format-control "string" :format-arguments (list stuff))
      The end result is no obvious change to what the user sees, and enables
      one to establish a handler to catch the particular error type as
      mentioned in the "Exceptional Situations:" section of the CLHS
      write-ups. There probably are still some places where the error
      types need to be fixed.
      
      Also, a bug in with-package-iterator which caused failure with
      a null package-use-list was fixed, and some file functions (like
      truename and probe-file) now disallow a wild pathname.
      4a42e17c
  34. Feb 05, 1997
  35. Jan 18, 1997
  36. Oct 31, 1994
  37. Aug 21, 1994
  38. Feb 11, 1994
  39. Nov 23, 1993
Loading