ecl/src/gc
2010-10-03 10:21:28 +02:00
..
cord Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
doc Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
include Changed header so that we can use GC_arrays from ECL. 2010-02-01 23:56:21 +01:00
libatomic_ops-1.2 Remove some more trash files that got in from gc-7.1 2009-04-03 19:50:03 +02:00
Mac_files Version 6.1 of the garbage collector imported. 2002-09-20 09:37:43 +00:00
tests Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
acinclude.m4 Preliminary support for POSIX threads. 2003-11-18 11:23:07 +00:00
aclocal.m4 Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
add_gc_prefix.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
allchblk.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
alloc.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
alpha_mach_dep.S Version 6.7 of Boehm-Weiser garbage collector (Mostly for Darwin/x86 port) 2006-06-17 15:58:20 +00:00
AmigaOS.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
backgraph.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
BCC_MAKEFILE Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
bdw-gc.pc Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
bdw-gc.pc.in Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
blacklst.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
callprocs Initial revision 2001-06-26 17:14:44 +00:00
ChangeLog Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
checksums.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
compile Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
config.guess Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
config.sub Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
configure Fix configure not picking up win32 threads on MinGW 2010-10-03 10:21:28 +02:00
configure.ac Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
configure.host Imported version 6.3 of the garbage collector 2004-10-29 10:27:18 +00:00
configure_atomic_ops.sh Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
darwin_stop_world.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
dbg_mlc.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
depcomp Version 6.1 of the garbage collector imported. 2002-09-20 09:37:43 +00:00
digimars.mak Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
dyn_load.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
EMX_MAKEFILE Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
finalize.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
gc.mak Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
gc_cpp.cc Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
gc_cpp.cpp Incorporate version 6.0 of the Boehm-Weiser garbage collector 2001-08-19 18:04:30 +00:00
gc_dlopen.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
gcj_mlc.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
gcname.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
headers.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
hpux_test_and_clear.s Initial revision 2001-06-26 17:14:44 +00:00
ia64_save_regs_in_stack.s Version 6.1 of the garbage collector imported. 2002-09-20 09:37:43 +00:00
if_mach.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
if_not_there.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
install-sh Version 6.1 of the garbage collector imported. 2002-09-20 09:37:43 +00:00
libtool.m4 Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
ltmain.sh Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
mach_dep.c Change needed for OS X 10.6 Leopard: ucontext.h is deprecated and produces an error. 2009-09-29 17:04:11 +02:00
MacOS.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
MacProjects.sit.hqx Initial revision 2001-06-26 17:14:44 +00:00
Makefile.am Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
Makefile.direct Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
Makefile.dj Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
Makefile.DLLs Initial revision 2001-06-26 17:14:44 +00:00
Makefile.in Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
malloc.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
mallocx.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
mark.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
mark_rts.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
mips_sgi_mach_dep.s Preliminary support for POSIX threads. 2003-11-18 11:23:07 +00:00
mips_ultrix_mach_dep.s Initial revision 2001-06-26 17:14:44 +00:00
misc.c Fixes related to the new version of garbage collector and the Windows port. 2009-04-03 19:09:33 +02:00
missing Version 6.1 of the garbage collector imported. 2002-09-20 09:37:43 +00:00
mkinstalldirs Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
msvc_dbg.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
new_hblk.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
NT_MAKEFILE Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
NT_STATIC_THREADS_MAKEFILE Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
NT_THREADS_MAKEFILE Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
NT_X64_STATIC_THREADS_MAKEFILE Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
NT_X64_THREADS_MAKEFILE Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
obj_map.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
OS2_MAKEFILE Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
os_dep.c Stack overflows now jump to the outermost toplevel. 2009-09-25 17:45:34 +02:00
PCR-Makefile Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
pcr_interface.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
pthread_stop_world.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
pthread_support.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
ptr_chck.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
README.QUICK Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
real_malloc.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
reclaim.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
rs6000_mach_dep.s Version 6.1 of the garbage collector imported. 2002-09-20 09:37:43 +00:00
setjmp_t.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
SMakefile.amiga Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
sparc_mach_dep.S Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
sparc_netbsd_mach_dep.s Incorporate version 6.0 of the Boehm-Weiser garbage collector 2001-08-19 18:04:30 +00:00
sparc_sunos4_mach_dep.s Initial revision 2001-06-26 17:14:44 +00:00
specific.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
stubborn.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
thread_local_alloc.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
threadlibs.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
typd_mlc.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
WCC_MAKEFILE Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00
win32_threads.c Upgraded Boehm-Weiser garbage collector to version 7.1 2009-04-03 18:01:00 +02:00

Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
Copyright (c) 1991-1995 by Xerox Corporation.  All rights reserved.
Copyright (c) 1996-1999 by Silicon Graphics.  All rights reserved.
Copyright (c) 1999-2001 by Hewlett-Packard. All rights reserved.

THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.

Permission is hereby granted to use or copy this program
for any purpose,  provided the above notices are retained on all copies.
Permission to modify the code and to distribute modified code is granted,
provided the above notices are retained, and a notice that the code was
modified is included with the above copyright notice.

A few files have other copyright holders. A few of the files needed
to use the GNU-style build procedure come with a modified GPL license
that appears not to significantly restrict use of the collector, though
use of those files for a purpose other than building the collector may
require the resulting code to be covered by the GPL.

For more details and the names of other contributors, see the
doc/README* files and include/gc.h.  This file describes typical use of
the collector on a machine that is already supported.

For the version number, see doc/README or version.h.

INSTALLATION:
Under UN*X, Linux:
Alternative 1 (the old way): type "make test" in this directory.
	Link against gc.a.  With the most recent GC distributions
	you may have to copy Makefile.direct to Makefile first.

Alternative 2 (the new way): type
	"./configure --prefix=<dir>; make; make check; make install".
	Link against <dir>/lib/libgc.a or <dir>/lib/libgc.so.
	See README.autoconf for details

Under Windows 95, 98, Me, NT, or 2000:
copy the appropriate makefile to MAKEFILE, read it, and type "nmake test".
(Under Windows, this assumes you have Microsoft command-line tools
installed, and suitably configured.)
Read the machine specific README in the doc directory if one exists.

If you need thread support, you will need to follow the special
platform-dependent instructions (win32), or define GC_THREADS
as described in Makefile (Makefile.direct), or possibly use
--enable-threads=posix when running the configure script.

If you wish to use the cord (structured string) library with the stand-alone
Makefile.direct, type "make cords", after copying to "Makefile".
(This requires an ANSI C compiler.  You may
need to redefine CC in the Makefile. The CORD_printf implementation in
cordprnt.c is known to be less than perfectly portable.  The rest of the
package should still work.)

If you wish to use the collector from C++, type "make c++", or use
--enable-cplusplus with the configure script.   With Makefile.direct,
hese add further files to gc.a and to the include subdirectory.  With the
alternat build process,this generates libgccpp.
See cord/cord.h and include/gc_cpp.h.

TYPICAL USE:
Include "gc.h" from the include subdirectory.  Link against the
appropriate library ("gc.a" under UN*X).  Replace calls to malloc
by calls to GC_MALLOC, and calls to realloc by calls to GC_REALLOC.
If the object is known to never contain pointers, use GC_MALLOC_ATOMIC
instead of GC_MALLOC.

Define GC_DEBUG before including gc.h for additional checking.

More documentation on the collector interface can be found at
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcinterface.html,
in doc/README and other files in the doc directory, and in include/gc.h .

WARNINGS:

Do not store the only pointer to an object in memory allocated
with system malloc, since the collector usually does not scan
memory allocated in this way.

Use with threads may be supported on your system, but requires the
collector to be built with thread support.  See Makefile.  The collector
does not guarantee to scan thread-local storage (e.g. of the kind
accessed with pthread_getspecific()).  The collector does scan
thread stacks though, so generally the best solution is to ensure that
any pointers stored in thread-local storage are also stored on the
thread's stack for the duration of their lifetime.