/[cmucl]/src/lisp/gencgc.c
ViewVC logotype

Log of /src/lisp/gencgc.c

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (annotate)
Links to snapshot-2005-02: (view) (annotate)
Sticky Tag:

Revision 1.62 - (view) (annotate) - [select for diffs]
Tue Jul 27 22:03:53 2004 UTC (9 years, 8 months ago) by cwang
Branch: MAIN
CVS Tags: snapshot-2004-08, snapshot-2004-09, snapshot-2004-10, snapshot-2004-11, snapshot-2004-12, snapshot-2005-01, snapshot-2005-02
Changes since 1.61: +3 -2 lines
Diff to previous 1.61
Get rid of fastcopy16 which is only used in cgc.c
Get rid of i586_bzero but it may be a good optimization

Revision 1.61 - (view) (annotate) - [select for diffs]
Sat Jul 24 03:52:45 2004 UTC (9 years, 8 months ago) by rtoy
Branch: MAIN
Changes since 1.60: +2 -6 lines
Diff to previous 1.60
After almost 1 year of gencgc on sparc without encountering a gc
assertion, let's disable gc assertions on sparc now.

Revision 1.60 - (view) (annotate) - [select for diffs]
Tue Jul 20 22:38:26 2004 UTC (9 years, 8 months ago) by cwang
Branch: MAIN
Changes since 1.59: +5 -5 lines
Diff to previous 1.59
make amd64 the same as x86

Revision 1.59 - (view) (annotate) - [select for diffs]
Mon Jul 12 23:44:07 2004 UTC (9 years, 9 months ago) by pmai
Branch: MAIN
Changes since 1.58: +3 -3 lines
Diff to previous 1.58
Finish conversion from hardcoded sigcontext to os_context_t, as initiated
by the commit of the NetBSD support, and needed by the upcoming merge of
the OS X/Darwin port.

Revision 1.58 - (view) (annotate) - [select for diffs]
Thu Jul 8 03:31:15 2004 UTC (9 years, 9 months ago) by rtoy
Branch: MAIN
CVS Tags: prm-before-macosx-merge-tag
Changes since 1.57: +5 -3 lines
Diff to previous 1.57
More compiler warning fixes:

* gencgc.c:
  o fixup up fprintf warnings
  o generation_bytes_allocated() defined only when GC_ASSERTIONS is
    #defined.
* x86-arch.c: fixup printf warnings.

Revision 1.57 - (view) (annotate) - [select for diffs]
Wed Jul 7 20:31:06 2004 UTC (9 years, 9 months ago) by rtoy
Branch: MAIN
Changes since 1.56: +24 -3 lines
Diff to previous 1.56
Fix more compiler warnings:

* 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.

Revision 1.56 - (view) (annotate) - [select for diffs]
Wed Jul 7 15:03:11 2004 UTC (9 years, 9 months ago) by rtoy
Branch: MAIN
Changes since 1.55: +1 -8 lines
Diff to previous 1.55
Changes from Robert Swindells to support NetBSD.

Revision 1.55 - (view) (annotate) - [select for diffs]
Wed May 19 22:20:49 2004 UTC (9 years, 10 months ago) by cwang
Branch: MAIN
CVS Tags: snapshot-2004-06, snapshot-2004-07
Changes since 1.54: +204 -379 lines
Diff to previous 1.54
amd64 changes

Revision 1.54 - (view) (annotate) - [select for diffs]
Tue May 18 22:59:08 2004 UTC (9 years, 11 months ago) by cwang
Branch: MAIN
Changes since 1.53: +5 -5 lines
Diff to previous 1.53
typos

Revision 1.53 - (view) (annotate) - [select for diffs]
Tue May 11 14:36:10 2004 UTC (9 years, 11 months ago) by rtoy
Branch: MAIN
CVS Tags: amd64-merge-start
Changes since 1.52: +4 -7 lines
Diff to previous 1.52
From Lynn Quam:

	adds the mark_bit slot to weak-pointers and eliminates the
	n-squared performance problem with scav_weak_pointer.

Revision 1.52 - (view) (annotate) - [select for diffs]
Thu May 6 09:49:50 2004 UTC (9 years, 11 months ago) by emarsden
Branch: MAIN
Changes since 1.51: +2 -3 lines
Diff to previous 1.51
  - fix syntax for C multiline strings

Revision 1.51 - (view) (annotate) - [select for diffs]
Mon May 3 14:17:20 2004 UTC (9 years, 11 months ago) by rtoy
Branch: MAIN
Changes since 1.50: +6 -4 lines
Diff to previous 1.50
Clean up printing of generation info to handle the larger heaps we
have now.

Revision 1.50 - (view) (annotate) - [select for diffs]
Fri Jan 9 23:05:32 2004 UTC (10 years, 3 months ago) by toy
Branch: MAIN
CVS Tags: mod-arith-base, release-19a, release-19a-base, release-19a-pre1, release-19a-pre2, release-19a-pre3, snapshot-2004-04, snapshot-2004-05
Branch point for: mod-arith-branch, release-19a-branch
Changes since 1.49: +14 -21 lines
Diff to previous 1.49
Remove some unused code that we don't need anymore.

Revision 1.49 - (view) (annotate) - [select for diffs]
Fri Jan 9 15:14:57 2004 UTC (10 years, 3 months ago) by toy
Branch: MAIN
Changes since 1.48: +12 -1 lines
Diff to previous 1.48
Add comment from Douglas about what DIRECT_SCAV means.

Revision 1.48 - (view) (annotate) - [select for diffs]
Fri Jan 9 15:10:52 2004 UTC (10 years, 3 months ago) by toy
Branch: MAIN
Changes since 1.47: +2 -2 lines
Diff to previous 1.47
Oops.  It's i386, not x86.

Revision 1.47 - (view) (annotate) - [select for diffs]
Fri Jan 9 05:07:39 2004 UTC (10 years, 3 months ago) by toy
Branch: MAIN
Changes since 1.46: +83 -28 lines
Diff to previous 1.46
Update to sparc gencgc so that alloc-tn holds the
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.

Revision 1.46 - (view) (annotate) - [select for diffs]
Fri Oct 24 02:57:00 2003 UTC (10 years, 5 months ago) by toy
Branch: MAIN
CVS Tags: snapshot-2003-11, snapshot-2003-12
Changes since 1.45: +56 -25 lines
Diff to previous 1.45
Add support for catching heap overflows, similar to the control stack
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

Revision 1.45 - (view) (annotate) - [select for diffs]
Thu Oct 16 16:18:03 2003 UTC (10 years, 6 months ago) by toy
Branch: MAIN
Changes since 1.44: +2 -2 lines
Diff to previous 1.44
Zap out any bits for pseudo-atomic stuff when getting the
alloc-pointer.

Revision 1.44 - (view) (annotate) - [select for diffs]
Mon Oct 13 21:56:55 2003 UTC (10 years, 6 months ago) by toy
Branch: MAIN
Changes since 1.43: +4 -4 lines
Diff to previous 1.43
It's lowtag_Mask, not lowtagMask.

Revision 1.43 - (view) (annotate) - [select for diffs]
Mon Oct 13 20:42:56 2003 UTC (10 years, 6 months ago) by toy
Branch: MAIN
Changes since 1.42: +23 -23 lines
Diff to previous 1.42
Convert a few more void* to char*.  Add a few casts as needed to get
rid of some compiler warnings.

Revision 1.42 - (view) (annotate) - [select for diffs]
Mon Oct 13 19:01:36 2003 UTC (10 years, 6 months ago) by toy
Branch: MAIN
Changes since 1.41: +25 -21 lines
Diff to previous 1.41
Changes so this will compile under Sun C:

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.

Revision 1.41 - (view) (annotate) - [select for diffs]
Thu Oct 9 19:04:28 2003 UTC (10 years, 6 months ago) by toy
Branch: MAIN
Changes since 1.40: +10 -9 lines
Diff to previous 1.40
Use the new constants lowtagMask, pseudo_atomic_Value, and
pseudo_atomic_InterruptedValue instead of the bare 7's, 4's, and 3's
and 1's in the code.

Revision 1.40 - (view) (annotate) - [select for diffs]
Wed Oct 8 16:49:34 2003 UTC (10 years, 6 months ago) by toy
Branch: MAIN
Changes since 1.39: +50 -33 lines
Diff to previous 1.39
o The Sparc port was not correctly scavenging the interrupt handlers.
  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.

Revision 1.39 - (view) (annotate) - [select for diffs]
Mon Sep 29 16:29:03 2003 UTC (10 years, 6 months ago) by toy
Branch: MAIN
CVS Tags: snapshot-2003-10
Changes since 1.38: +18 -3 lines
Diff to previous 1.38
It's ok for stack references to come from stack objects, because that
can happen when we scavenge the control stack on non-x86.

Revision 1.38 - (view) (annotate) - [select for diffs]
Tue Sep 16 11:13:46 2003 UTC (10 years, 7 months ago) by gerd
Branch: MAIN
Changes since 1.37: +124 -51 lines
Diff to previous 1.37
	* src/lisp/gencgc.c (GC_ASSERTIONS): New define for activating GC
	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.

Revision 1.37 - (view) (annotate) - [select for diffs]
Mon Sep 15 16:41:12 2003 UTC (10 years, 7 months ago) by toy
Branch: MAIN
Changes since 1.36: +7 -2 lines
Diff to previous 1.36
Don't blindly set current_dynamic_space_free_pointer in the
set_alloc_pointer macor.  Instead, carefully merge the value with any
pseudo-atomic bits that might have been set.

Revision 1.36 - (view) (annotate) - [select for diffs]
Mon Sep 15 14:28:18 2003 UTC (10 years, 7 months ago) by gerd
Branch: MAIN
Changes since 1.35: +18 -7 lines
Diff to previous 1.35
	* src/lisp/gencgc.c (alloc_pseudo_atomic): Wrap alloc in
	pseudo-atomic only if not already in a pseudo-atomic section.

Revision 1.35 - (view) (annotate) - [select for diffs]
Sat Sep 13 14:21:30 2003 UTC (10 years, 7 months ago) by gerd
Branch: MAIN
Changes since 1.34: +91 -138 lines
Diff to previous 1.34
	* src/lisp/alloc.c (alloc) [GENCGC]: Define as alloc_pseudo_atomic.

	* 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.

Revision 1.34 - (view) (annotate) - [select for diffs]
Wed Aug 27 16:00:35 2003 UTC (10 years, 7 months ago) by toy
Branch: MAIN
CVS Tags: lisp-executable-base
Branch point for: lisp-executable
Changes since 1.33: +7 -7 lines
Diff to previous 1.33
Remove the fprintf's where the hash table invariant wasn't true during
scavenging.  It appears to be true before and after GC.

Revision 1.33 - (view) (annotate) - [select for diffs]
Fri Aug 22 13:20:03 2003 UTC (10 years, 7 months ago) by toy
Branch: MAIN
CVS Tags: sparc_gencgc_merge
Changes since 1.32: +354 -62 lines
Diff to previous 1.32
Merge sparc_gencgc_branch that adds support for gencgc for Solaris.

Revision 1.32 - (view) (annotate) - [select for diffs]
Thu Mar 27 12:42:10 2003 UTC (11 years ago) by gerd
Branch: MAIN
CVS Tags: dynamic-extent-base, remove_negative_zero_not_zero, sparc_gencgc
Branch point for: dynamic-extent, sparc_gencgc_branch
Changes since 1.31: +468 -422 lines
Diff to previous 1.31
	* code/hash-new.lisp (make-hash-table): Put warning about
	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.

Revision 1.31 - (view) (annotate) - [select for diffs]
Wed Feb 12 20:52:37 2003 UTC (11 years, 2 months ago) by emarsden
Branch: MAIN
CVS Tags: cold-pcl-base, release-18e, release-18e-base, release-18e-pre1, release-18e-pre2
Branch point for: cold-pcl, release-18e-branch
Changes since 1.30: +9 -1 lines
Diff to previous 1.30
Add a more informative error message to the stuff that is printed to the
terminal when gencgc exhausts dynamic space.

Revision 1.30 - (view) (annotate) - [select for diffs]
Wed Jan 29 21:28:27 2003 UTC (11 years, 2 months ago) by cracauer
Branch: MAIN
Changes since 1.29: +1 -6 lines
Diff to previous 1.29
Remove a #ifdef ITA which sneaked in with the profiler changes.  No
functional change for normal builds.

Revision 1.29 - (view) (annotate) - [select for diffs]
Wed Jan 29 02:23:49 2003 UTC (11 years, 2 months ago) by toy
Branch: MAIN
Changes since 1.28: +2 -2 lines
Diff to previous 1.28
Export print_generation_stats.

Revision 1.28 - (view) (annotate) - [select for diffs]
Tue Nov 5 22:45:48 2002 UTC (11 years, 5 months ago) by cracauer
Branch: MAIN
Changes since 1.27: +108 -5 lines
Diff to previous 1.27
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.

Revision 1.27 - (view) (annotate) - [select for diffs]
Tue Aug 27 22:18:31 2002 UTC (11 years, 7 months ago) by moore
Branch: MAIN
CVS Tags: LINKAGE_TABLE, UNICODE-BASE
Branch point for: UNICODE-BRANCH
Changes since 1.26: +80 -26 lines
Diff to previous 1.26
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.

Revision 1.26 - (view) (annotate) - [select for diffs]
Mon Jan 28 20:19:39 2002 UTC (12 years, 2 months ago) by pmai
Branch: MAIN
CVS Tags: PRE_LINKAGE_TABLE
Changes since 1.25: +10 -3 lines
Diff to previous 1.25
Added specialised port to NetBSD (1.5.2) on x86.  Since the code-base
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.

Revision 1.25 - (view) (annotate) - [select for diffs]
Thu Dec 6 19:15:44 2001 UTC (12 years, 4 months ago) by pmai
Branch: MAIN
Changes since 1.24: +3 -3 lines
Diff to previous 1.24
Added specialised port to OpenBSD (2.9).  Many parts of the original
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.

Revision 1.24 - (view) (annotate) - [select for diffs]
Fri Oct 27 19:25:55 2000 UTC (13 years, 5 months ago) by dtc
Branch: MAIN
Changes since 1.23: +6 -5 lines
Diff to previous 1.23
Cleanup compiler warnings.

Revision 1.23 - (view) (annotate) - [select for diffs]
Tue Oct 24 13:32:31 2000 UTC (13 years, 5 months ago) by dtc
Branch: MAIN
Changes since 1.22: +40 -24 lines
Diff to previous 1.22
o Add the command line switch -dynamic-space-size for setting the size
  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.

Revision 1.22 - (view) (annotate) - [select for diffs]
Sat Oct 21 12:50:42 2000 UTC (13 years, 5 months ago) by dtc
Branch: MAIN
Changes since 1.21: +9 -7 lines
Diff to previous 1.21
Use the value 0xffffffff to represent auto_gc_trigger disabled rather
than zero, simplifying the trigger test.

Revision 1.21 - (view) (annotate) - [select for diffs]
Tue Sep 5 08:51:51 2000 UTC (13 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.20: +3 -2 lines
Diff to previous 1.20
Minor source cleanups.

Revision 1.20 - (view) (annotate) - [select for diffs]
Sun Aug 27 14:45:41 2000 UTC (13 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.19: +16 -30 lines
Diff to previous 1.19
Misc source cleanup.

Revision 1.19 - (view) (annotate) - [select for diffs]
Thu Jun 22 12:55:19 2000 UTC (13 years, 9 months ago) by dtc
Branch: MAIN
Changes since 1.18: +3 -1 lines
Diff to previous 1.18
Flush a verbose debug message that occurred rarely during code fixups.

Revision 1.18 - (view) (annotate) - [select for diffs]
Wed Jan 19 18:09:16 2000 UTC (14 years, 3 months ago) by dtc
Branch: MAIN
Changes since 1.17: +1 -10 lines
Diff to previous 1.17
Flush references to zero_stack as this has been handled by
scrub-control-stack for some time.

Revision 1.17 - (view) (annotate) - [select for diffs]
Sun Jan 9 19:36:07 2000 UTC (14 years, 3 months ago) by dtc
Branch: MAIN
Changes since 1.16: +105 -105 lines
Diff to previous 1.16
Replace the PAGE_BYTES define with PAGE_SIZE, and use it where
appropriate rather than the constant 4096.

Remove uses of the variable last_used_page.

Revision 1.16 - (view) (annotate) - [select for diffs]
Thu Sep 16 15:25:18 1999 UTC (14 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.15: +3 -3 lines
Diff to previous 1.15
Portability fix for the signal masked check in alloc.

Revision 1.15 - (view) (annotate) - [select for diffs]
Wed Aug 25 14:25:06 1999 UTC (14 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.14: +287 -273 lines
Diff to previous 1.14
Improve the packing of information into the page table, reducing the
table size by 25%, and move to a fixed layout of the page flags to
better support future atomic operations for threaded code.

Revision 1.14 - (view) (annotate) - [select for diffs]
Sat Aug 21 18:03:25 1999 UTC (14 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.13: +2387 -2052 lines
Diff to previous 1.13
Source cleanup.

Revision 1.13 - (view) (annotate) - [select for diffs]
Sat Dec 19 16:32:56 1998 UTC (15 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.12: +5 -4 lines
Diff to previous 1.12
Few fixes for the page zero check in gc_free_heap; work around a gcc
problem, and limit the range of pages to be checked.

Revision 1.12 - (view) (annotate) - [select for diffs]
Wed Dec 16 12:38:05 1998 UTC (15 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.11: +2 -2 lines
Diff to previous 1.11
Fix a bug in the page zero checking code of gc_free_heap.

Revision 1.11 - (view) (annotate) - [select for diffs]
Sat Mar 21 07:45:51 1998 UTC (16 years, 1 month ago) by dtc
Branch: MAIN
Branch point for: RELENG_18
Changes since 1.10: +162 -1 lines
Diff to previous 1.10
Save and reset FP state during the execution of
print_generation_stats. This is necessary when this function is called
directly from the allocation routines on a failure and the FP state is
setup for Lisp.

Revision 1.10 - (view) (annotate) - [select for diffs]
Tue Mar 10 18:30:24 1998 UTC (16 years, 1 month ago) by dtc
Branch: MAIN
Changes since 1.9: +52 -3 lines
Diff to previous 1.9
Add verify_zero_fill to verify that the free memory is zero filled;
helping detect heap corruption. The check can be enabled during a heap
verify via gencgc_enable_verify_zero_fill, or it can be called from
lisp via the alien function gencgc_verify_zero_fill.

Revision 1.9 - (view) (annotate) - [select for diffs]
Wed Jan 14 10:40:58 1998 UTC (16 years, 3 months ago) by dtc
Branch: MAIN
Changes since 1.8: +3 -3 lines
Diff to previous 1.8
Make search_dynamic_space an external as it is need by purify.  Make
valid_dynamic_space_pointer a static local as a similarly name
function is used by purify.

Revision 1.8 - (view) (annotate) - [select for diffs]
Wed Dec 31 18:07:42 1997 UTC (16 years, 3 months ago) by dtc
Branch: MAIN
Changes since 1.7: +25 -9 lines
Diff to previous 1.7
Enhance scavenge_thread_stacks to only scavenge the live portion of
the saved stack vectors.

Revision 1.7 - (view) (annotate) - [select for diffs]
Thu Dec 25 09:33:48 1997 UTC (16 years, 3 months ago) by dtc
Branch: MAIN
Changes since 1.6: +11 -3 lines
Diff to previous 1.6
Take more care when scavenging the Lisp functions of the interrupt
handlers, taking care to avoid SIG_DFL, and SIG_IGN which is equal to
1 on FreeBSD and looks like a forwarding point which causes trouble.

Revision 1.6 - (view) (annotate) - [select for diffs]
Wed Dec 3 08:17:02 1997 UTC (16 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.5: +59 -62 lines
Diff to previous 1.5
Further cleanup of the interrupts masked check in alloc.

Cleanup the verbose messages, making them all dependent on the verbose
level, and disable them all by default.

Revision 1.5 - (view) (annotate) - [select for diffs]
Tue Dec 2 02:50:45 1997 UTC (16 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.4: +19 -20 lines
Diff to previous 1.4
Add some pointer coercions to reduce the number of compiler warnings.

Revision 1.4 - (view) (annotate) - [select for diffs]
Mon Dec 1 16:44:57 1997 UTC (16 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.3: +7 -2 lines
Diff to previous 1.3
Disable a test in alloc that tested that interrupts were disabled in
non-pseudo-atomic allocations, because this code has been debugged now
and the test may not have been very portable.

Revision 1.3 - (view) (annotate) - [select for diffs]
Sun Nov 30 05:08:29 1997 UTC (16 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.2: +73 -42 lines
Diff to previous 1.2
Improve the efficiency of gc_free_heap by having it assume free pages
are zero filled and not write protected which should be the case.

Make more of the consistency checks conditional and disable them all.

Revision 1.2 - (view) (annotate) - [select for diffs]
Sat Nov 29 20:32:41 1997 UTC (16 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.1: +2 -2 lines
Diff to previous 1.1
Comment out verbose message in maybe_adjust_large_object.

Revision 1.1 - (view) (annotate) - [select for diffs]
Tue Nov 25 17:59:18 1997 UTC (16 years, 4 months ago) by dtc
Branch: MAIN
Conservative generational garbage collection for the x86 port.

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

  ViewVC Help
Powered by ViewVC 1.1.5