Skip to content
Snippets Groups Projects
  1. Jul 07, 2007
  2. Jun 12, 2007
  3. Jan 01, 2007
  4. Nov 07, 2006
  5. May 30, 2006
  6. Sep 15, 2005
  7. Jan 13, 2005
  8. Mar 27, 2003
    • gerd's avatar
      * code/hash-new.lisp (make-hash-table): Put warning about · 9e89e4e5
      gerd authored
      	creating weak tables in #-gencgc.
      
      	* lisp/gencgc.c (gc_assert): Ensure macro expansion is always a C
      	statement.
      	(struct hash_table): New struct.
      	(HASH_TABLE_SIZE, EQ_HASH): New macros.
      	(weak_hash_tables): New variable.
      	(survives_gc, u32_vector, free_hash_entry, record_for_rehashing)
      	(scav_hash_entries, scav_weak_entries, scan_weak_tables)
      	(scav_hash_vector): New functions.
      	(scav_vector): Removed.
      	(scav_weak_pointer, trans_weak_pointer, scan_weak_pointers):
      	Cleaned up.
      	(gc_init_tables): Use scav_hash_vector instead of scav_vector.
      	(garbage_collect_generation): Call scan_weak_tables.
      	(everywhere): Add casts, change format strings, etc. to placate
      	the compiler.
      
      	* lisp/FreeBSD-os.h: Fix a function prototype.
      9e89e4e5
  9. 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
  10. Aug 27, 2002
    • moore's avatar
      · bf84be07
      moore authored
      On x86 FreeBSD and Linux, change the way foreign symbol addresses are resolved.
      They now go through a table -- effectively a new space in the core file.
      Function references are resolved lazily, data references are resolved on startup
      and when a .so is loaded.  The end result is that cores can be dumped that
      contain references to symbols in shared libraries.  Also, the dependence of the core on addresses in the Lisp runtime is broken.
      
      The linkage table feature is controlled by :linkage-table and LINKAGE_TABLE in C
      runtime.  Several foreign symbols are now Lisp static symbols, so a cross
      compile is required whether or not the new stuff is used.  I've checked in
      boot4-cross-foreign-linkage.lisp that builds the compiler for linkage table; do whatever you usually do for the non-linkage table case:)  Seriously, lets start
      a discussion on standardizing "cross compilation," not to mention the general
      build procedure.
      bf84be07
  11. Apr 12, 2000
  12. Nov 30, 1997
  13. Jan 21, 1997
Loading