- Jul 12, 2004
-
-
pmai authored
by the commit of the NetBSD support, and needed by the upcoming merge of the OS X/Darwin port.
-
- Jul 08, 2004
-
-
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.
-
- Jul 07, 2004
-
-
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.
-
rtoy authored
-
- May 19, 2004
-
-
cwang authored
-
- May 18, 2004
-
-
cwang authored
-
- May 11, 2004
-
-
rtoy authored
adds the mark_bit slot to weak-pointers and eliminates the n-squared performance problem with scav_weak_pointer.
-
- May 06, 2004
-
-
emarsden authored
- fix syntax for C multiline strings
-
- May 03, 2004
-
-
rtoy authored
have now.
-
- Jan 09, 2004
-
-
toy authored
-
toy authored
-
toy authored
-
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.
-
- Oct 24, 2003
-
-
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
-
- Oct 16, 2003
-
-
toy authored
alloc-pointer.
-
- Oct 13, 2003
-
-
toy authored
-
toy authored
rid of some compiler warnings.
-
toy authored
o Convert some void* objects to char* objects so we don't try to do pointer arithmetic on void* objects. o Change scavenge to take void* instead of lispobj*. Cast appropriately in the body. o Change uses of scavenge to match the new definition.
-
- Oct 09, 2003
-
-
toy authored
pseudo_atomic_InterruptedValue instead of the bare 7's, 4's, and 3's and 1's in the code.
-
- Oct 08, 2003
-
-
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.
-
- Sep 29, 2003
-
-
toy authored
can happen when we scavenge the control stack on non-x86.
-
- Sep 16, 2003
-
-
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.
-
- Sep 15, 2003
- Sep 13, 2003
-
-
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.
-
- Aug 27, 2003
-
-
toy authored
scavenging. It appears to be true before and after GC.
-
- Aug 22, 2003
-
-
toy authored
-
- Mar 27, 2003
-
-
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.
-
- Feb 12, 2003
-
-
emarsden authored
terminal when gencgc exhausts dynamic space.
-
- Jan 29, 2003
- Nov 05, 2002
-
-
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.
-
- Aug 27, 2002
-
-
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.
-
- Jan 28, 2002
-
-
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.
-
- Dec 06, 2001
-
-
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.
-
- Oct 27, 2000
-
-
dtc authored
-
- Oct 24, 2000
-
-
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.
-
- Oct 21, 2000
-
-
dtc authored
than zero, simplifying the trigger test.
-
- Sep 05, 2000
-
-
dtc authored
-
- Aug 27, 2000
-
-
dtc authored
-