Skip to content
Snippets Groups Projects
  1. Oct 24, 2003
    • toy's avatar
      Add support for x86 heap-overflow checking. · 10d10ac0
      toy authored
      	* x86-assem.S (multiple_value_return): Add new functions to handle
      	heap overflow warnings and errors.
      
      	* x86-arch.c (sigtrap_handler): Add cases for the two new heap
      	overflow traps.
      
      	* interrupt.c (interrupt_handle_space_overflow): Add support for
      	x86.
      
      	* parms.lisp (static-symbols): Add new static symbols for heap
      	overflow checking.  Add new trap types for heap overflow
      	checking.
      10d10ac0
    • 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
  2. Oct 16, 2003
  3. Oct 14, 2003
  4. Oct 13, 2003
  5. Oct 09, 2003
  6. Oct 08, 2003
    • toy's avatar
      o The Sparc port was not correctly scavenging the interrupt handlers. · 45de6763
      toy authored
        Use the same code as used for x86.
      o Clean up the code a bit, adding the functions
        scavenge_interrupt_handlers and scavenge_control_stack.  Move some
        printing noise into those functions.
      
      There are still bugs here that are exercised by Eric Marsden's
      cl-bench with cpu performance counter library.
      45de6763
  7. Oct 06, 2003
  8. Sep 29, 2003
  9. Sep 25, 2003
  10. Sep 22, 2003
  11. Sep 18, 2003
  12. Sep 16, 2003
  13. Sep 15, 2003
  14. Sep 13, 2003
    • gerd's avatar
      * src/lisp/alloc.c (alloc) [GENCGC]: Define as alloc_pseudo_atomic. · e31f8138
      gerd authored
      	* src/lisp/gencgc.c (set_pseudo_atomic_atomic)
      	(clr_pseudo_atomic_atomic) [i386]: Reverse the values assigned
      	to PSEUDO_ATOMIC_ATOMIC, remove semicolons.
      	(alloc_pseudo_atomic): New function wrapping alloc in a
      	pseudo-atomic section.
      	(alloc): Remove code for the non-PA case, rewrite the rest
      	to use a loop instead of goto.
      e31f8138
  15. Sep 04, 2003
  16. Aug 27, 2003
  17. Aug 22, 2003
  18. Aug 21, 2003
  19. Aug 20, 2003
  20. Aug 18, 2003
  21. Aug 15, 2003
  22. Aug 12, 2003
    • gerd's avatar
      Lisp executable support. From Fred Gilham. · 297cb596
      gerd authored
      	* src/lisp/validate.c (image_dynamic_space_size): New variable.
      	(validate): Allocate spaces differently if the core is part
      	of the executable.
      
      	* src/lisp/lisp.c (initial_function_addr): New variable.
      	(main): Use it for the initial function if appropriate.
      297cb596
Loading