1. 20 Dec, 2013 1 commit
  2. 24 Feb, 2013 1 commit
    • Raymond Toy's avatar
      Fix ticket:73 · 00844093
      Raymond Toy authored
      error.lisp::
      * Create two new conditions, one for modifying the readtable and one
        for the pprint dispatch table.
      
      exports.lisp::
      * Export the two new conditions.
      
      pprint.lisp::
      * Add check to SET-PPRINT-DISPATCH to disallow modifying the standard
        pprint dispatch table.
      * Allow PPRINT-INIT to modify the standard pprint dispatch table.
      
      print.lisp::
      * In WITH-STANDARD-IO-SYNTAX, don't copy a new dispatch table; bind
        *print-pprint-dispatch* to the standard table.
      
      reader.lisp::
      * Add check to disallow modifying the standard readtable.
      * Allow INIT-STD-LISP-READTABLE to modify the standard readtable.
      00844093
  3. 04 Nov, 2011 1 commit
  4. 15 Oct, 2011 1 commit
    • Raymond Toy's avatar
      Properly handle a denormal operand exception. This should get rid of · 7b6eb217
      Raymond Toy authored
      the occasional problem about SIGFPE's with no exceptions enabled.
      
      error.lisp:
      o Add floating-point-denormal-operand arithmetic error.
      
      exports.lisp:
      o Export the new arithmetic error type.
      
      float-trap.lisp:
      o Check the denormal trap bit and signal the appropriate error.
      
      release-20c.txt:
      o Update.
      7b6eb217
  5. 25 Sep, 2011 1 commit
  6. 20 Apr, 2010 1 commit
  7. 19 Apr, 2010 1 commit
  8. 19 Mar, 2010 1 commit
  9. 11 Jun, 2009 1 commit
  10. 21 Jan, 2009 1 commit
  11. 12 Nov, 2008 1 commit
  12. 03 Jan, 2006 1 commit
    • rtoy's avatar
      o Add new condition REFERENCE-CONDITION which is used to include · 04f6e86b
      rtoy authored
        reference information for other conditions.  This condition prints
        out a short message saying to look somewhere appropriate.
      o Use REFERENCE-CONDITION for the CONSTANT-MODIFIED condition.
      
      (Based on SBCL's REFERENCE-CONDITION.)
      
      This needs work to add more references.
      04f6e86b
  13. 21 Oct, 2005 1 commit
  14. 19 Oct, 2005 1 commit
    • rtoy's avatar
      Port SBCL'S support for detecting when destructive functions (such as · 31ddb605
      rtoy authored
      nreverse) modify constant args and for warning when the result of
      destructive functions is not used.
      
      Detecting modification of constant args is done by adding a new IR1
      transformation that checks that a function is not destructively
      modifying constants or literals.
      
      A new IR1 attribute, important-result, is used to determine if the
      result of a function should be used instead of discarded.  (Note:
      this means some functions are not detected.  This should probably be
      implemented as another transform so the compiler can detect those cases.)
      
      code/error.lisp:
      o Add new condition CONSTANT-MODIFIED.
      
      compiler/fndb.lisp:
      o Note destructive functions that should not modify constant args
      o Note destructive functions whose results should be used.
      
      compiler/ir1opt.lisp:
      o Add new function CHECK-IMPORTANT-RESULT to check if the result is
        used.
      o Update IR1-OPTIMIZE-COMBINATION to check if a function destructively
        modifies constant args or if the result of a destructive function is
        not used.
      
      compiler/knownfun.lisp:
      o Add new IR1 attribute, IMPORTANT-RESULT, to indicate that the result
        of a function should be used.
      o Add new FUNCTION-INFO slot, DESTROYED-CONSTANT-ARGS.  This holds a
        function for computing the constant or literal arguments which are
        destructively modified by the function.
      o Add support functions for DESTROYED-CONSTANT-ARGS functions.
      31ddb605
  15. 18 Oct, 2005 1 commit
  16. 14 Oct, 2005 1 commit
  17. 09 Sep, 2005 1 commit
  18. 26 Mar, 2004 1 commit
    • 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
  19. 26 Oct, 2003 1 commit
  20. 24 Oct, 2003 1 commit
    • 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
  21. 20 Jul, 2003 1 commit
    • 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
  22. 03 May, 2003 1 commit
  23. 30 Apr, 2003 1 commit
  24. 29 Apr, 2003 1 commit
    • 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
  25. 18 Apr, 2003 1 commit
    • 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
  26. 17 Apr, 2003 2 commits
  27. 16 Apr, 2003 1 commit
  28. 13 Apr, 2003 1 commit
    • 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
  29. 23 Mar, 2003 1 commit
    • 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
  30. 22 Mar, 2003 1 commit
    • 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
  31. 15 Feb, 2003 1 commit
    • 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
  32. 23 Aug, 2002 1 commit
  33. 22 Aug, 2002 1 commit
    • 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
  34. 25 Jul, 2002 1 commit
    • 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
  35. 01 Feb, 2002 1 commit
  36. 19 Apr, 2001 1 commit
  37. 09 Jan, 2001 1 commit
  38. 25 Oct, 2000 1 commit
  39. 08 Aug, 2000 1 commit