Skip to content
Snippets Groups Projects
  1. Jul 12, 2004
  2. Jul 08, 2004
    • rtoy's avatar
      More compiler warning fixes: · 06354d92
      rtoy authored
      * gencgc.c:
        o fixup up fprintf warnings
        o generation_bytes_allocated() defined only when GC_ASSERTIONS is
          #defined.
      * x86-arch.c: fixup printf warnings.
      06354d92
  3. Jul 07, 2004
    • rtoy's avatar
      Fix more compiler warnings: · 5a1bf534
      rtoy authored
      * alloc.c:  Include gencgc.h to get declaration of alloc().
      * gencgc.c:
        o Include string.h for memset.
        o Initialize some vars that gcc complains might be uninitialized
          (but they're not).
        o scav_fdefn isn't used on sparc, so comment it out.
        o valid_dynamic_space_pointer, maybe_adjust_large_object, and
          preserve_pointer are only used on x86, so comment #ifdef them for
          i386.
      * os-common.c:
        o Fix a few printf warnings.
        o Cast args to bcopy.
      5a1bf534
    • rtoy's avatar
      Changes from Robert Swindells to support NetBSD. · 5d2cd5df
      rtoy authored
      5d2cd5df
  4. May 19, 2004
  5. May 18, 2004
    • cwang's avatar
      typos · d54d3cbf
      cwang authored
      d54d3cbf
  6. May 11, 2004
    • rtoy's avatar
      From Lynn Quam: · 836299e0
      rtoy authored
      	adds the mark_bit slot to weak-pointers and eliminates the
      	n-squared performance problem with scav_weak_pointer.
      836299e0
  7. May 06, 2004
    • emarsden's avatar
      · 0a73e5ab
      emarsden authored
        - fix syntax for C multiline strings
      0a73e5ab
  8. May 03, 2004
  9. Jan 09, 2004
    • toy's avatar
      Remove some unused code that we don't need anymore. · feaa7104
      toy authored
      feaa7104
    • toy's avatar
      0b4f3884
    • toy's avatar
      Oops. It's i386, not x86. · 9b81f8e5
      toy authored
      9b81f8e5
    • toy's avatar
      Update to sparc gencgc so that alloc-tn holds the · 723055bb
      toy authored
      current-region-free-pointer.
      
      Cross compile may be needed, but I'm not sure.  I only used
      cross-compiling to do this change.
      
      sparc/macros.lisp:
      o Update the allocation macro appropriately for alloc-tn holding the
        current-region-free-pointer.
      
      lisp/gencgc.c:
      o Define macros for setting and getting *current-region-free-oointer*
        and *current-region-end-addr* so sparc can use alloc-tn.
        *current-region-free-pointer* isn't used anymore, but is still a
        static symbol.  It's been replaced by alloc-tn.
      o On sparc, set_alloc_pointer doesn't need to do anything anymore.
      o Don't need to call update_dynamic_space_free_pointer anymore.
      o The assertion that *current-region-free-pointer* is a fixnum is no
        longer valid on sparc because that is alloc-tn which contains the
        pseudo-atomic bits.
      
      lisp/sparc-arch.c:
      o The allocation trap instruction is now preceeded by a SUB
        instruction.  Handle that correctly.  Keep support for the OR
        instruction for now, but should be removed.
      o Set alloc-tn from current_dynamic_space_free_pointer.
      723055bb
  10. 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
  11. Oct 16, 2003
  12. Oct 13, 2003
  13. Oct 09, 2003
  14. 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
  15. Sep 29, 2003
  16. Sep 16, 2003
    • gerd's avatar
      * src/lisp/gencgc.c (GC_ASSERTIONS): New define for activating GC · c197af2f
      gerd authored
      	assertions.  Define it for sparc.
      	(invalid_stack_start, invalid_stack_end) [GC_ASSERTIONS]: New
      	variables.
      	(garbage_collect_generation) [GC_ASSERTIONS]: Set them.
      	(check_escaped_stack_object) [GC_ASSERTIONS]: New function.
      	(scavenge) [GC_ASSERTIONS]: Call it.
      c197af2f
  17. Sep 15, 2003
  18. 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
  19. Aug 27, 2003
  20. Aug 22, 2003
  21. 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
  22. Feb 12, 2003
  23. Jan 29, 2003
    • cracauer's avatar
      · de993639
      cracauer authored
      Remove a #ifdef ITA which sneaked in with the profiler changes.  No
      functional change for normal builds.
      de993639
    • toy's avatar
      Export print_generation_stats. · c551f431
      toy authored
      c551f431
  24. Nov 05, 2002
    • cracauer's avatar
      · 65f0bdc0
      cracauer authored
      Make (time ...) and the profiler do precise measuring of space
      allocation.  It will also not overflow or bomb out when consing
      amounts cross most-positive fixnum.
      
      The new profiler also has an interface to plug in your own print
      function (also dictates sorting or results).
      
      This is written on gencgc/x86 but tests indicated the fallsbacks for
      other platforms work.
      
      The dfixnum package included here is sketchy.
      65f0bdc0
  25. 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
  26. Jan 28, 2002
    • pmai's avatar
      Added specialised port to NetBSD (1.5.2) on x86. Since the code-base · b39b25d0
      pmai authored
      was already cleaned up with the OpenBSD port, this doesn't require
      massive changes.
      
      Since current NetBSD is ELF-based by default, we don't make use of the
      ELF feature, or in other words:  The presence of the NetBSD feature
      implies ELF, since there is no support for non-ELF NetBSD.
      
      The page-protection feature of the generational GC had to be turned
      off, because currently NetBSD 1.5.2 doesn't provide access to the
      faulting memory address in SIGSEGV signal-handlers on the x86
      platform.
      
      The memory is validated/mmapped in 64MB chunks in os-validate, in
      order to circumvent a restriction on NetBSD, that prevented me from
      mmapping 128MB or more apiece.  It has been pointed out to me that
      this may be caused by the default ulimit on data segment sizes, which
      seems kind of strange, but might be true.  In any case the current
      approach works OK, and doesn't require root interaction, so is
      probably the better approach.
      b39b25d0
  27. Dec 06, 2001
    • pmai's avatar
      Added specialised port to OpenBSD (2.9). Many parts of the original · 195461c1
      pmai authored
      code which were previously conditionalized on :FreeBSD, are now
      conditionalized on :BSD instead, with the :BSD feature now implying a
      4.4BSD(lite2) derived OS.  This should make future BSD-ports easier.
      FreeBSD and OpenBSD are differentiated by having either :FreeBSD or
      :OpenBSD on the features list.
      
      Currently the OpenBSD port does not have working ELF support, because
      OpenBSD 2.9 is still non-ELF by default.  So don't put ELF on the
      features list when building for OpenBSD, or fix the code to work
      correctly in this case instead.
      195461c1
  28. Oct 27, 2000
  29. Oct 24, 2000
    • dtc's avatar
      o Add the command line switch -dynamic-space-size for setting the size · a7070998
      dtc authored
        of the dynamic space. DYNAMIC_SPACE_SIZE now defines the maximum
        size, and when defined DEFAULT_DYNAMIC_SPACE_SIZE gives the default.
      
      o Increase the maximum dynamic space size for Linux x86 to 1.625GB,
        with the default remaining at 512MB.
      
      o Define the default dynamic space size for FreeBSD x86 to also be 512MB,
        with a maximum of 2GB.
      a7070998
  30. Oct 21, 2000
  31. Sep 05, 2000
  32. Aug 27, 2000
Loading