]> granicus.if.org Git - gc/log
gc
13 years agoUpdate TODO file.
Ivan Maidanski [Mon, 12 Sep 2011 11:30:23 +0000 (15:30 +0400)]
Update TODO file.

13 years agoDo not define internal GC_parse_map_entry() unless used.
Ivan Maidanski [Sun, 11 Sep 2011 14:53:50 +0000 (18:53 +0400)]
Do not define internal GC_parse_map_entry() unless used.

* include/private/gc_priv.h (GC_parse_map_entry): Declare only if
DYNAMIC_LOADING.
* os_dep.c (GC_parse_map_entry): Define only if DYNAMIC_LOADING or
REDIRECT_MALLOC, or IA64, or INCLUDE_LINUX_THREAD_DESCR.

13 years agoAdd TODO item.
Ivan Maidanski [Sun, 11 Sep 2011 14:07:12 +0000 (18:07 +0400)]
Add TODO item.

13 years agoUpdate TODO.
Ivan Maidanski [Fri, 9 Sep 2011 11:10:54 +0000 (15:10 +0400)]
Update TODO.

13 years agoUpdate TODO file.
Ivan Maidanski [Thu, 8 Sep 2011 11:48:20 +0000 (15:48 +0400)]
Update TODO file.

13 years agoBump libatomic_ops version to 7.3alpha1 (next major release development).
Ivan Maidanski [Thu, 8 Sep 2011 11:47:25 +0000 (15:47 +0400)]
Bump libatomic_ops version to 7.3alpha1 (next major release development).

* README: Change version to 7.3alpha1.
* configure.ac (AC_INIT): Likewise.
* include/gc_version.h (GC_TMP_VERSION_MINOR, GC_TMP_ALPHA_VERSION):
Likewise.

13 years agoAdd TODO item.
Ivan Maidanski [Thu, 8 Sep 2011 10:24:19 +0000 (14:24 +0400)]
Add TODO item.

13 years agoResolve "comparison of signed and unsigned values" compiler warnings.
Ivan Maidanski [Thu, 8 Sep 2011 10:17:26 +0000 (14:17 +0400)]
Resolve "comparison of signed and unsigned values" compiler warnings.

* cord/cordprnt.c (CORD_vsprintf): Cast "prec" and "width" local
variables to size_t.
* dyn_load.c (GC_register_dynamic_libraries_dl_iterate_phdr): Change
type of "i" local variable to int.
* pthread_support.c (start_mark_threads): Likewise.
* os_dep.c (GC_repeat_read): Change type of "num_read" to size_t.
* os_dep.c (GC_get_maps): Change type of "result" local variable from
int to ssize_t; cast "result" to size_t in comparison.
* pthread_support.c (GC_remove_all_threads_but_me): Cast "result" to
int.
* pthread_support.c (GC_wait_for_gc_completion): Change type of
"old_gc_no" local variable to word.
* pthread_support.c (GC_lock): Change type of "i" local variable to
unsigned.
* tests/staticrootstest.c (main): Cast sizeof() value to int in
comparisons.

13 years agoOutput extra GCC warnings.
Ivan Maidanski [Thu, 8 Sep 2011 09:54:17 +0000 (13:54 +0400)]
Output extra GCC warnings.

* configure.ac (CFLAGS): Add -Wall -Wextra -Wno-unused-parameter
options (only if GCC).

13 years agoUpdate TODO.
Ivan Maidanski [Thu, 8 Sep 2011 07:51:53 +0000 (11:51 +0400)]
Update TODO.

13 years agoHOTFIX: Always reset fault handler in GC_find_limit_with_bound on exit.
Ivan Maidanski [Wed, 7 Sep 2011 14:00:38 +0000 (18:00 +0400)]
HOTFIX: Always reset fault handler in GC_find_limit_with_bound on exit.

* os_dep.c (GC_find_limit_with_bound): Inside loop, set result local
volatile variable and do break instead of return (this also suppresses
compiler warning about the potential clobbering of "bound" variable
by setjmp).

13 years agoUpdate TODO.
Ivan Maidanski [Wed, 7 Sep 2011 13:36:48 +0000 (17:36 +0400)]
Update TODO.

13 years agoHOTFIX: Remove locking in API GC_get_bytes_since_gc and friends.
Ivan Maidanski [Wed, 7 Sep 2011 13:35:22 +0000 (17:35 +0400)]
HOTFIX: Remove locking in API GC_get_bytes_since_gc and friends.
Add GC_get_heap_usage_safe() to API as a thread-safe alternative to
GC_get_bytes_since_gc and friends.
Remove newly-added lock-free GC_get_heap_size_inner and
GC_get_free_bytes_inner from API.

* include/gc.h (GC_get_heap_size, GC_get_free_bytes,
GC_get_unmapped_bytes, GC_get_bytes_since_gc, GC_get_total_bytes):
Refine comment.
* include/gc.h (GC_HAVE_GET_HEAP_USAGE_SAFE): New macro.
* include/gc.h (GC_get_heap_usage_safe): New API function.
* misc.c (GC_get_heap_usage_safe): Likewise.
* include/gc_mark.h (GC_get_heap_size_inner, GC_get_free_bytes_inner):
Remove API function.
* misc.c (GC_get_heap_size_inner, GC_get_free_bytes_inner): Likewise.
* misc.c (GC_get_heap_size): Add comment.
* misc.c (GC_get_heap_size, GC_get_free_bytes, GC_get_unmapped_bytes,
GC_get_bytes_since_gc, GC_get_total_bytes): Remove locking.
* misc.c (GC_get_unmapped_bytes): Do not test USE_MUNMAP (not needed
after locking removal).
* misc.c (GC_get_bytes_since_gc, GC_get_total_bytes): Cast result to
size_t.

13 years agoRefine API GC setters and getter comments regarding locking.
Ivan Maidanski [Tue, 6 Sep 2011 14:25:04 +0000 (18:25 +0400)]
Refine API GC setters and getter comments regarding locking.

* include/gc_mark.h (GC_set_start_callback): Refine comment (the
function acquires the GC lock).
* include/gc.h (GC_set_all_interior_pointers, GC_set_stop_func,
GC_get_stack_base): Likewise.
* include/gc.h (GC_get_version, GC_get_gc_no, GC_get_parallel,
GC_set_find_leak, GC_get_all_interior_pointers,
GC_get_dont_precollect, GC_get_pages_executable, GC_set_max_heap_size,
GC_set_force_unmap_on_gcollect): Refine comment (the function is
lock-free).

13 years agoAdd TODO (and FIXME) items.
Ivan Maidanski [Thu, 1 Sep 2011 18:28:07 +0000 (22:28 +0400)]
Add TODO (and FIXME) items.

13 years agoRemove resolved FIXME in tests.am script.
Ivan Maidanski [Wed, 31 Aug 2011 16:07:31 +0000 (20:07 +0400)]
Remove resolved FIXME in tests.am script.
(The stated FIXME no longer in force.)

* tests/tests.am: Remove ancient FIXME about trace_test that it does
not work on MacOS X.

13 years agoFIX: MinGW/MingwCE: Use CreateThread in initsecondarythread test and
Ivan Maidanski [Wed, 31 Aug 2011 15:01:42 +0000 (19:01 +0400)]
FIX: MinGW/MingwCE: Use CreateThread in initsecondarythread test and
thread_leak_test.

* tests/initsecondarythread.c: Include windows.h instead of pthread.h
unless GC_PTHREADS.
* tests/thread_leak_test.c: Likewise.
* tests/initsecondarythread.c (thread): Use WINAPI and set return
type to DWORD unless GC_PTHREADS.
* tests/thread_leak_test.c (test): Likewise.
* tests/initsecondarythread.c (main): Use HANDLE, CreateThread and
WaitForSingleObject instead of pthread_t, pthread_create and
pthread_join, respectively, unless GC_PTHREADS.
* tests/thread_leak_test.c (main): Likewise.

13 years agoCheck pthread_create/join result in initsecondarythread test.
Ivan Maidanski [Wed, 31 Aug 2011 10:19:34 +0000 (14:19 +0400)]
Check pthread_create/join result in initsecondarythread test.

* tests/initsecondarythread.c (GC_NO_THREAD_REDIRECTS): Add comment.
* tests/initsecondarythread.c: Include stdio.h.
* tests/initsecondarythread.c (thread): Cast result of malloc to void;
return arg parameter instead of NULL (to suppress compiler warnings).
* tests/initsecondarythread.c (main): Define "code" local variable;
store result of pthread_create and pthread_join to "code" variable;
exit application with an error code (with the corresponding error
message) if pthread_create or pthread_join fails.

13 years agoAdd info that getcontext() resets FPE mask no longer on Linux/x86_64.
Ivan Maidanski [Wed, 31 Aug 2011 04:13:17 +0000 (08:13 +0400)]
Add info that getcontext() resets FPE mask no longer on Linux/x86_64.

* include/private/gcconfig.h (GETCONTEXT_FPU_EXCMASK_BUG): Add FIXME
that this is no longer needed with the recent GLibC.

13 years agoUpdate AUTHORS file - now it lists most contributors.
Ivan Maidanski [Thu, 25 Aug 2011 15:42:06 +0000 (19:42 +0400)]
Update AUTHORS file - now it lists most contributors.

13 years agoMove information about the authors and their emails from the source
Ivan Maidanski [Thu, 25 Aug 2011 08:42:13 +0000 (12:42 +0400)]
Move information about the authors and their emails from the source
files to AUTHORS file. (This information could also be observed
via "git log" or by looking into the original version of a file.)

* doc/README.DGUX386: Remove original-author and modified-by
information (as well as email and time-stamp) from the file.
* doc/README.Mac: Ditto.
* doc/README.amiga: Ditto.
* doc/README.cords: Ditto.
* doc/README.darwin: Ditto.
* doc/README.dj: Ditto.
* doc/README.ews4800: Ditto.
* doc/README.win32: Ditto.
* doc/barrett_diagram: Ditto.
* include/private/gcconfig.h: Ditto.
* tests/initsecondarythread.c: Ditto.
* AUTHORS: Add authors information (with emails).
* doc/README.Mac: Remove non Lattin-1 characters.
* README: Update email to  sending bugs information.
* doc/README.Mac: Expand all tabs to spaces; remove trailing spaces
at EOLn.
* doc/README.amiga: Ditto.
* doc/barrett_diagram: Ditto.

13 years agoMove asm machine-dependent files to "src" folder.
Ivan Maidanski [Thu, 25 Aug 2011 08:11:42 +0000 (12:11 +0400)]
Move asm machine-dependent files to "src" folder.

* .gitignore: Add entries from "src" folder; add auto-generated files
by CMake; allow a suffix for "libatomic_ops" folder.
* Makefile.direct (SRCS, mach_dep.o): Move sparc_mach_dep.S,
sparc_sunos4_mach_dep.s, sparc_netbsd_mach_dep.s,
ia64_save_regs_in_stack.s to "src" directory.
* Makefile.dj (SRCS): Ditto.
* configure.ac (machdep): Move sparc_mach_dep.lo,
sparc_netbsd_mach_dep.lo, ia64_save_regs_in_stack.lo to "src" folder.
* PCR-Makefile (mach_dep.o): Remove "if_mach" statement for MIPS.
* PCR-Makefile (if_mach, if_not_there): Remove rules.
* gc.mak (CPP_PROJ): Prefix libatomic_ops folder with "./".

13 years agoMove build tools sources from "extra" to "tools" folder.
Ivan Maidanski [Thu, 25 Aug 2011 06:21:19 +0000 (10:21 +0400)]
Move build tools sources from "extra" to "tools" folder.

* EMX_MAKEFILE (setjmp_test): Move setjmp_t.c to "tools" folder.
* Makefile.am (EXTRA_DIST): Move add_gc_prefix.c, gcname.c,
if_mach.c, if_not_there.c, setjmp_t.c  and threadlibs.c to "tools"
folder.
* Makefile.direct (SRCS, OTHER_FILES, if_mach, threadlibs,
if_not_there, setjmp_test, add_gc_prefix, gcname): Ditto.
* Makefile.dj (SRCS, OTHER_FILES, if_mach, threadlibs, if_not_there,
setjmp_test, add_gc_prefix): Ditto.
* PCR-Makefile (if_mach, if_not_there): Ditto.
* SMakefile.amiga (setjmp_t): Ditto.
* doc/simple_example.html: Change folder name for threadlibs.c file.
* EMX_MAKEFILE: Remove trailing spaces at EOLn.
* SMakefile.amiga: Ditto.

13 years agoRemove information about the authors from the source files.
Ivan Maidanski [Wed, 24 Aug 2011 20:16:06 +0000 (00:16 +0400)]
Remove information about the authors from the source files.
(This information could be observed via "git log" or by looking into
the original version of a file.)

* Makefile.am: Remove original-author and modified-by information
(as well as a time-stamp) from the file header.
* configure.ac: Ditto.
* cord/cordbscs.c: Ditto.
* cord/cordprnt.c: Ditto.
* cord/cordxtra.c: Ditto.
* cord/de.c: Ditto.
* cord/de_cmds.h: Ditto.
* cord/de_win.h: Ditto.
* doc/README.arm.cross: Ditto.
* doc/doc.am: Ditto.
* dyn_load.c: Ditto.
* gc_cpp.cc: Ditto.
* gc_dlopen.c: Ditto.
* include/cord.h: Ditto.
* include/include.am: Ditto.
* include/private/cord_pos.h: Ditto.
* include/private/gc_hdrs.h: Ditto.
* include/weakpointer.h: Ditto.
* m4/gc_set_version.m4: Ditto.
* tests/test_cpp.cc: Ditto.
* cord/cordprnt.c: Fix a typo in a comment.
* AUTHORS: Add authors.
* cord/cordprnt.c: Expand all tabs to spaces; remove trailing spaces
at EOLn.
* cord/de.c: Ditto.
* cord/de_cmds.h: Ditto.
* cord/de_win.c: Ditto.
* cord/de_win.h: Ditto.
* doc/README.arm.cross: Ditto.
* include/private/cord_pos.h: Ditto.
* include/weakpointer.h: Ditto.
* m4/gc_set_version.m4: Ditto.

13 years agoRemove binary icon file for de_win.
Ivan Maidanski [Wed, 24 Aug 2011 10:17:55 +0000 (14:17 +0400)]
Remove binary icon file for de_win.

* cord/de_win.ICO: Remove.
* cord/de_win.RC (ABOUTBOX): Comment out ICON usage.
* cord/de_win.RC (DE ICON): Comment out.
* Makefile.direct (CORD_SRCS): Remove de_win.RC; wrap long line.
* Makefile.dj (CORD_SRCS): Ditto.
* Makefile.dj (OTHER_FILES): Remove missing old SCoptions.amiga
and cord/SMakefile.amiga files.
* cord/cord.am (EXTRA_DIST): Remove de_win.RC.
* cord/cord.am: Expand all tabs to spaces.

13 years agoRemove binary project file for old Macintosh.
Ivan Maidanski [Wed, 24 Aug 2011 09:57:34 +0000 (13:57 +0400)]
Remove binary project file for old Macintosh.

* MacProjects.sit.hqx: Remove.
* Makefile.am (EXTRA_DIST): Remove MacProjects.sit.hqx.
* Makefile.direct (OTHER_FILES): Ditto.
* Makefile.dj (OTHER_FILES): Ditto.

13 years agoRemove obsolete unused asm files for ALPHA, SGI, ULTRIX, RS6000.
Ivan Maidanski [Wed, 24 Aug 2011 09:50:46 +0000 (13:50 +0400)]
Remove obsolete unused asm files for ALPHA, SGI, ULTRIX, RS6000.

* alpha_mach_dep.S: Ditto.
* mips_sgi_mach_dep.s: Ditto.
* mips_ultrix_mach_dep.s: Ditto.
* rs6000_mach_dep.s: Ditto.
* Makefile.am (EXTRA_libgc_la_SOURCES): Remove alpha_mach_dep.S,
mips_sgi_mach_dep.s, mips_ultrix_mach_dep.s and rs6000_mach_dep.s.
* Makefile.direct (SRCS): Ditto.
* Makefile.dj (SRCS): Ditto.
* Makefile.direct (mach_dep.o): Remove mips_sgi_mach_dep.s,
mips_ultrix_mach_dep.s, rs6000_mach_dep.s from the dependencies.
* Makefile.dj (mach_dep.o): Ditto.
* Makefile.dj (mach_dep.o): Remove all "if_mach" statements (since
the target is x86).
* PCR-Makefile (mach_dep.o): Remove rs6000_mach_dep.s from the
dependencies; remove all "if_mach" statements except for MIPS.

13 years agoRemove references to old missing gc_alloc.h and gc_local_alloc.h files.
Ivan Maidanski [Wed, 24 Aug 2011 09:36:53 +0000 (13:36 +0400)]
Remove references to old missing gc_alloc.h and gc_local_alloc.h files.
Remove unused HPUX GC_test_and_clear implementation.

* hpux_test_and_clear.s: Remove.
* Makefile.am (EXTRA_DIST): Remove hpux_test_and_clear.s.
* Makefile.direct (SRCS): Ditto.
* Makefile.dj (SRCS): Ditto.
* Makefile.dj (SRCS): Remove missing gcc_support.c,
include/gc_alloc.h, include/gc_local_alloc.h.
* doc/gcdescr.html: Remove information about gc_local_alloc.h.
* doc/gcinterface.html: Ditto.
* doc/scale.html: Ditto.
* doc/gcinterface.html: Remove information about gc_alloc.h.
* tests/test_cpp.cc: Don't include missing old gc_alloc.h (include
new_gc_alloc.h instead); don't test __GNUC__.
* tests/test_cpp.cc (main): Use gc_alloc class instead of alloc (don't
test __GNUC__).
* windows-untested/vc60/gc.dsp (SOURCE): Don't include missing
gc_alloc.h, gc_local_alloc.h.
* windows-untested/vc60/libgc.dsp (SOURCE): Ditto.
* windows-untested/vc70/gc.vcproj (Header Files): Ditto.
* windows-untested/vc70/libgc.vcproj (Header Files): Ditto.
* windows-untested/vc71/gc.vcproj (Header Files): Ditto.
* windows-untested/vc71/libgc.vcproj (Header Files): Ditto.

13 years agoMove README and README.contributors to the project base directory.
Ivan Maidanski [Tue, 23 Aug 2011 11:37:15 +0000 (15:37 +0400)]
Move README and README.contributors to the project base directory.
Rename README.contributors to AUTHORS.

* doc/README: Move to the base folder.
* doc/README.contributors: Ditto.
* doc/README.contributors: Rename to AUTHORS.
* Makefile.direct (DOC_FILES): Rename doc/README to README;
rename doc/README.contributors to AUTHORS.
* Makefile.dj (OTHER_FILES): Ditto.
* README.QUICK: Ditto.
* doc/doc.am (dist_pkgdata_DATA): Ditto.
* include/gc_version.h: Ditto.
* Makefile.dj (OTHER_FILES): Wrap long lines.
* README.QUICK: Fix gc_version.h name.
* doc/doc.am (dist_pkgdata_DATA): Sort entries alphabetically.
* doc/doc.am: Expand all tabs to spaces.

13 years agoRemove the ancient non-integrated patches from README.DGUX386 file.
Ivan Maidanski [Mon, 22 Aug 2011 19:12:14 +0000 (23:12 +0400)]
Remove the ancient non-integrated patches from README.DGUX386 file.

* doc/README.DGUX386: Fix a typo.
* doc/README.DGUX386: Remove patches for ltconfig and ltmain.sh;
add a note about the removal (the patches could be viewed via
"git diff" for this commit).

13 years agoRemove gc_amiga_redirects.h (included internally) from public headers.
Ivan Maidanski [Mon, 22 Aug 2011 11:49:57 +0000 (15:49 +0400)]
Remove gc_amiga_redirects.h (included internally) from public headers.

* Makefile.direct (SRCS): Remove gc_amiga_redirects.h.
* include/include.am (pkginclude_HEADERS): Ditto.
* windows-untested/vc60/gc.dsp (SOURCE): Ditto.
* windows-untested/vc60/libgc.dsp (SOURCE): Ditto.
* windows-untested/vc70/gc.vcproj (Header Files): Ditto.
* windows-untested/vc70/libgc.vcproj (Header Files): Ditto.
* windows-untested/vc71/gc.vcproj (Header Files): Ditto.
* windows-untested/vc71/libgc.vcproj (Header Files): Ditto.
* include/gc.h: Insert the contents of gc_amiga_redirects.h instead
of including it (only if _AMIGA and not GC_AMIGA_MAKINGLIB).
* include/gc.h (GC_amiga_realloc, GC_amiga_set_toany): Remove
"extern" keyword.
* include/gc.h (GC_amiga_allocwrapper_do): Add GC_CALL to the function
argument.
* include/gc.h (GC_amiga_realloc, GC_amiga_set_toany,
GC_amiga_allocwrapper_do): Remove identifiers for arguments from the
declaration.

13 years agoMerge branch 'master' of github.com:ivmai/bdwgc
Ivan Maidanski [Sun, 21 Aug 2011 07:58:44 +0000 (11:58 +0400)]
Merge branch 'master' of github.com:ivmai/bdwgc

13 years agoResolve "comparison of signed and unsigned values" compiler warnings.
Ivan Maidanski [Sun, 21 Aug 2011 07:45:57 +0000 (11:45 +0400)]
Resolve "comparison of signed and unsigned values" compiler warnings.

* allchblk.c (GC_allochblk_nth): Cast MAX_BLACK_LIST_ALLOC and
HBLKSIZE to signed_word.
* mallocx.c (GC_generic_malloc_many): Cast my_bytes_allocd to word.
* mark.c (GC_do_local_mark): Cast the result of local_top minus
local_mark_stack to word (since is non-negative).
* misc.c (GC_base): Declare sz as unsigned word.
* misc.c (GC_enable_incremental): Cast bytes_written to size_t in
comparison to len.
* obj_map.c (GC_initialize_offsets): Declare 'i' as unsigned.
* os_dep.c (GC_or_pages): Ditto.
* typd_mlc.c (GC_init_explicit_typing): Ditto.
* ptr_chck.c (GC_is_visible): Cast the result of p minus base to word.
* typd_mlc.c (GC_make_descriptor): Cast last_set_bit to word (since
non-negative) when compared to BITMAP_BITS.

13 years ago/cygdrive/c/temp/log
Ivan Maidanski [Sun, 21 Aug 2011 07:45:57 +0000 (11:45 +0400)]
/cygdrive/c/temp/log

13 years agoIn .gitignore, remove trailing slash for libatomic_ops directory
Ivan Maidanski [Fri, 19 Aug 2011 07:36:43 +0000 (11:36 +0400)]
In .gitignore, remove trailing slash for libatomic_ops directory
(otherwise libatomic_ops is not ignored if it is a symbolic link).

13 years agoMerge pull request #2 from paurkedal/t/build-aug-14
Ivan Maidanski [Mon, 15 Aug 2011 08:50:22 +0000 (01:50 -0700)]
Merge pull request #2 from paurkedal/t/build-aug-14

Use pkg-config to pick up libatomic_ops, etc.

13 years agoUse pkg-config to pick up libatomic_ops, etc.
Petter Urkedal [Sun, 14 Aug 2011 10:57:27 +0000 (12:57 +0200)]
Use pkg-config to pick up libatomic_ops, etc.

* configure.ac: Remove checks for ar and ranlib.
* configure.ac: Replace AC_CHECK_HEADER with PKG_CHECK_MODULES when
checking for libatomic_ops.  The macro sets the appropriate flags, so
simplify accordingly.
* Makefile.am, configure.ac: Set ATOMIC_OPS_CFLAGS in configure.ac
instead of conditionally doing it in Makefile.am, to be more consistent
with the pkg-config case.
* configure.ac: Fix a typo and some phrases.

13 years agoIgnore libatomic_ops folder by Git.
Ivan Maidanski [Sun, 14 Aug 2011 07:05:39 +0000 (11:05 +0400)]
Ignore libatomic_ops folder by Git.

13 years agoMerge pull request #1 from paurkedal/t/ao-detect
Ivan Maidanski [Fri, 12 Aug 2011 08:37:34 +0000 (01:37 -0700)]
Merge pull request #1 from paurkedal/t/ao-detect

Adjust after removal of libatomic_ops from the source tree.

13 years agoAdjust after removal of libatomic_ops from the source tree.
Petter Urkedal [Thu, 11 Aug 2011 20:04:06 +0000 (22:04 +0200)]
Adjust after removal of libatomic_ops from the source tree.

configure.ac: Since we no longer bundle libatomic_ops, we must check for
the sub-directory before using it, in case we didn't find an installed
version.
Makefile.am: Don't include libatomic_ops in the distribution.

13 years agoSupport multi-threading for RTEMS target.
Jie Liu [Tue, 9 Aug 2011 19:30:20 +0000 (23:30 +0400)]
Support multi-threading for RTEMS target.

* configure.ac: Add GC_RTEMS_PTHREADS AH_TEMPLATE and configure
for rtems.
* os_dep.c: Add GC_get_stack_base if GC_RTEMS_PTHREADS for rtems.
* pthread_stop_world.c (GC_stop_init): Add ifdef SA_RESTART.
* pthread_stop_world.c (GC_stop_init): Use sigprocmask for rtems
when defined GC_RTEMS_PTHREADS.
* pthread_support.c: Exclude sys/mman.h for rtems.
* pthread_support.c (GC_thr_init): Set default GC_nprocs (1) for
rtems.
* include/gc_config_macros.h: Define GC_RTEMS_PTHREADS for rtems
pthread and define GC_NO_DLOPEN for rtems.
* include/private/gc_locks.h: Define USE_PTHREAD_LOCKS for rtems.
* include/private/gcconfig.h: Use rtems_get_stack_bottom()
for InitStackBottom; and use SIGUSR1 for SIG_SUSPEND, SIGUSR2
for SIG_THR_RESTART on rtems.
* include/private/thread_local_alloc.h: Use USE_PTHREAD_SPECIFIC
for rtems.
* tests/test.c (Init): Use exit(0) for rtems instead of return.

13 years agoRemove auto-generated files and add them to .gitignore.
Petter Urkedal [Tue, 9 Aug 2011 18:57:48 +0000 (22:57 +0400)]
Remove auto-generated files and add them to .gitignore.

* .gitignore: Add files generated by autoreconf -vif.
* Makefile.in, aclocal.m4, compile, config.guess, config.sub,
configure, depcomp, include/private/config.h.in, install-sh,
ltmain.sh, m4/libtool.m4, m4/ltoptions.m4, m4/ltsugar.m4,
m4/ltversion.m4, m4/lt~obsolete.m4, missing, mkinstalldirs: Remove.

13 years agoRetire ChangeLog in favor of Git commit log; merge with README.changes;
Ivan Maidanski [Tue, 9 Aug 2011 18:34:42 +0000 (22:34 +0400)]
Retire ChangeLog in favor of Git commit log; merge with README.changes;
add TODO file.

* ChangeLog: add note; append the contents of doc/README.changes.
* doc/README.changes: remove.
* Makefile.direct (DOC_FILES): Remove doc/README.changes.
* doc/doc.am (dist_pkgdata_DATA): Ditto.
* doc/README.contributors: Replace doc/README.changes with ChangeLog.
* Makefile.am (EXTRA_DIST): Add TODO.
* Makefile.direct (DOC_FILES): Ditto.
* Makefile.dj (OTHER_FILES): Ditto.
* Makefile.in: Regenerate.

13 years agoReplace .cvsignore files with a project-wide .gitignore file.
Ivan Maidanski [Tue, 9 Aug 2011 17:47:42 +0000 (21:47 +0400)]
Replace .cvsignore files with a project-wide .gitignore file.

* .cvsignore: Replace with .gitignore.
* include/private/.cvsignore: Remove.

13 years ago2011-07-26 Ivan Maidanski <ivmai@mail.ru>
ivmai [Tue, 26 Jul 2011 08:03:09 +0000 (08:03 +0000)]
2011-07-26  Ivan Maidanski <ivmai@mail.ru>

* tests/realloc_test.c: New file.
* tests/tests.am (TESTS, check_PROGRAMS): Add realloc_test.
* .cvsignore: Add realloc_test.
* configure: Regenerate.
* Makefile.in: Ditto.

13 years ago2011-07-14 Ivan Maidanski <ivmai@mail.ru>
ivmai [Thu, 14 Jul 2011 17:20:58 +0000 (17:20 +0000)]
2011-07-14  Ivan Maidanski <ivmai@mail.ru>

* .cvsignore: Add more auto-generated files.

13 years ago2011-07-14 Ivan Maidanski <ivmai@mail.ru>
ivmai [Thu, 14 Jul 2011 13:43:13 +0000 (13:43 +0000)]
2011-07-14  Ivan Maidanski <ivmai@mail.ru>

* new_hblk.c (GC_build_fl): Adjust "h" local variable cast type
when setting obj_link (to prevent compiler warning); reformat the
comment.
* tests/test.c (reverse_test_inner): Use proper type when touching
"b" and "c" local variables (to prevent compiler warning).

13 years ago2011-07-05 Ivan Maidanski <ivmai@mail.ru>
ivmai [Tue, 5 Jul 2011 17:53:24 +0000 (17:53 +0000)]
2011-07-05  Ivan Maidanski <ivmai@mail.ru>

* misc.c (GC_init): Use HOTTER_THAN (instead of STACK_GROWS_DOWN)
for GC_stackbottom assertion.
* os_dep.c (GC_enclosing_mapping): Define only if IA64 or
INCLUDE_LINUX_THREAD_DESCR; make GC_INNER.
* pthread_support.c (GC_enclosing_mapping): Declare (only if
INCLUDE_LINUX_THREAD_DESCR).
* os_dep.c (GC_get_main_stack_base): Don't call pthread_getattr_np
if REDIRECT_MALLOC as the former is observed to call redirected
malloc (while GC is not initialized yet) on some Linux platforms.
* include/private/gc_priv.h (MAX_HEAP_SECTS): Don't use a smaller
value for SMALL_CONFIG if USE_PROC_FOR_LIBRARIES defined.

13 years ago2011-07-05 Ivan Maidanski <ivmai@mail.ru>
ivmai [Tue, 5 Jul 2011 16:35:22 +0000 (16:35 +0000)]
2011-07-05  Ivan Maidanski <ivmai@mail.ru>

* malloc.c (GC_init_lib_bounds): Call GC_init (to ensure GC is
initialized before doing GC_text_mapping).
* misc.c (GC_init): Add a check for GC_init recursion in case of
malloc is redirected (abort with the corresponding message).
* pthread.c (GC_thr_init): Place GC_add_roots_inner call into
"else" branch to prevent "local variable might be uninitialized"
compiler warning; add comment.

13 years ago2011-07-05 Ivan Maidanski <ivmai@mail.ru>
ivmai [Tue, 5 Jul 2011 13:50:08 +0000 (13:50 +0000)]
2011-07-05  Ivan Maidanski <ivmai@mail.ru>

* dyn_load.c (GC_register_dynamic_libraries): Remove duplicate
call of GC_FirstDLOpenedLinkMap (twice).
* dyn_load.c (GC_register_main_static_data): Add comment.
* cord/cordbscs.c (CORD_riter): Check for empty string passed (do
not call CORD_riter4 if CORD_len() returned zero).
* cord/cordbscs.c (CORD_init_min_len): Replace the K&R-style
function definition with the ANSI C one.
* cord/cordbscs.c: Expand all tabs to spaces; remove
trailing spaces at EOLn.
* tests/threadkey_test.c (on_thread_exit_inner): Check
GC_pthread_create() result.

13 years ago2011-07-04 Ivan Maidanski <ivmai@mail.ru>
ivmai [Mon, 4 Jul 2011 14:56:09 +0000 (14:56 +0000)]
2011-07-04  Ivan Maidanski <ivmai@mail.ru>

* include/private/gcconfig.h (etext): Don't define if unused
(NetBSD).
* include/private/gcconfig.h (GC_data_start, DATASTART): Define
for NetBSD/amd64 if ELF.
* include/private/gcconfig.h (SEARCH_FOR_DATA_START): Don't define
for NetBSD/amd64 if ELF.

13 years ago2011-07-04 Ivan Maidanski <ivmai@mail.ru> (mostly really Andy Wingo)
ivmai [Mon, 4 Jul 2011 13:29:55 +0000 (13:29 +0000)]
2011-07-04  Ivan Maidanski <ivmai@mail.ru> (mostly really Andy Wingo)

* configure.ac (GC_THREADS): Refine the comment.
* configure.ac (GC_WIN32_PTHREADS): Add template.
* configure.ac (cygwin, win32): Define GC_WIN32_THREADS instead of
GC_THREADS.
* configure.ac (pthreads): Add mingw target (GC_WIN32_PTHREADS).
* configure: Regenerate.
* include/private/config.h.in: Ditto.
* include/private/gc_locks.h (GC_WIN32_PTHREADS): Remove nested
test for the macro; add comment.

13 years ago2011-07-01 Ivan Maidanski <ivmai@mail.ru>
ivmai [Fri, 1 Jul 2011 09:53:44 +0000 (09:53 +0000)]
2011-07-01  Ivan Maidanski <ivmai@mail.ru>

* win32_threads.c (CHECK_LOOKUP_MY_THREAD): New macro definition.
* win32_threads.c (GC_reset_finalizer_nested,
GC_check_finalizer_nested, GC_unregister_my_thread,
GC_do_blocking_inner, GC_call_with_gc_active, GC_init_parallel):
Insert CHECK_LOOKUP_MY_THREAD before dereferencing thread
descriptor pointer (to instruct a LINT-like tool that it is ok to
dereference the pointer).
* win32_threads.c (GC_get_next_stack): Assert plast_stack_min is
non-NULL if current_min is not ADDR_LIMIT (for a LINT-like tool).
* win32_threads.c (GC_init_parallel): Define and use "me" local
variable.
* cord/cordtest.c (test_basics): Test CORD_substr() result is
non-NULL.
* cord/cordtest.c (test_extras): Test fopen() result is non-NULL.
* cord/cordtest.c (test_basics, test_extras, test_printf, main):
Replace the K&R-style function definition with the ANSI C one.
* cord/cordtest.c: Expand all tabs to spaces; remove
trailing spaces at EOLn.
* include/private/gc_priv.h (ABORT): Define as abort() when
checking the code with a LINT-like tool (Win32 only).
* tests/test.c (FAIL): Ditto.
* tests/test.c (CHECH_GCLIB_VERSION): New macro (to check that the
version of libgc.so used at runtime matches that at compile time).
* tests/test.c (GC_COND_INIT): Use CHECH_GCLIB_VERSION.
* tests/test.c (CHECK_OUT_OF_MEMORY): New macro (to test malloc
result for out of memory).
* tests/test.c (cons, small_cons, small_cons_uncollectable,
gcj_cons, reverse_test_inner, mktree, alloc8bytes, typed_test,
run_one_test): Use CHECK_OUT_OF_MEMORY.

13 years ago2011-06-30 Ivan Maidanski <ivmai@mail.ru>
ivmai [Thu, 30 Jun 2011 15:43:44 +0000 (15:43 +0000)]
2011-06-30  Ivan Maidanski <ivmai@mail.ru>

* dyn_load.c (GC_register_map_entries): Remove "count" local
variable as unused.
* gc_dlopen.c (disable_gc_for_dlopen): Define only if not
USE_PROC_FOR_LIBRARIES.
* malloc.c (calloc): Add parentheses around '&&' operator.
* mark.c (GC_noop_sink): New global variable (instead of a static
local variable inside GC_noop1).
* mark.c (GC_noop1): Use GC_noop_sink variable (to prevent
"variable set but not used" compiler warning).
* include/private/gcconfig.h (USE_PROC_FOR_LIBRARIES): Define only
if undefined yet.
* tests/smash_test.c (main): Don't dereference "p" local variable
if it is NULL.
* tests/staticrootslib.c (main): Ditto.

13 years ago2011-06-30 Ivan Maidanski <ivmai@mail.ru>
ivmai [Thu, 30 Jun 2011 15:29:25 +0000 (15:29 +0000)]
2011-06-30  Ivan Maidanski <ivmai@mail.ru>

* pthread_support.c (GC_segment_is_thread_stack): Replace '&'
operator with '&&' one in conditional expressions.
* specific.c (remove_specific): Dereference "entry" local variable
only if it is non-NULL.
* include/gc.h (GC_NEW): Refine the comment (about the returned
value).

13 years ago2011-06-15 Ivan Maidanski <ivmai@mail.ru>
ivmai [Wed, 15 Jun 2011 11:41:29 +0000 (11:41 +0000)]
2011-06-15  Ivan Maidanski <ivmai@mail.ru>

* include/gc_version.h, configure.ac, doc/README: Change to
version 7.2alpha7.
* configure: Regenerate.

13 years ago2011-06-14 Ivan Maidanski <ivmai@mail.ru> gc7_2alpha6
ivmai [Tue, 14 Jun 2011 13:28:26 +0000 (13:28 +0000)]
2011-06-14  Ivan Maidanski  <ivmai@mail.ru>

* configure_atomic_ops.sh: Remove.

13 years ago2011-06-14 Ivan Maidanski <ivmai@mail.ru>
ivmai [Tue, 14 Jun 2011 13:25:24 +0000 (13:25 +0000)]
2011-06-14  Ivan Maidanski  <ivmai@mail.ru>

* configure_atomic_ops.sh: Remove.
* Makefile.direct (dist gc.tar): Remove configure_atomic_ops.sh.
* Makefile.am (EXTRA_DIST): Add autogen.sh.
* Makefile.in: Regenerate.
* configure: Ditto.

13 years ago2011-06-14 Ivan Maidanski <ivmai@mail.ru>
ivmai [Tue, 14 Jun 2011 12:34:54 +0000 (12:34 +0000)]
2011-06-14  Ivan Maidanski  <ivmai@mail.ru>

* include/gc_version.h, configure.ac, doc/README: Change to
version 7.2alpha6.
* configure: Regenerate.

13 years ago2011-05-31 Ivan Maidanski <ivmai@mail.ru>
ivmai [Tue, 31 May 2011 17:22:01 +0000 (17:22 +0000)]
2011-05-31  Ivan Maidanski  <ivmai@mail.ru>

* NT_STATIC_THREADS_MAKEFILE (.cpp.obj): Remove duplicate .cpp
filename passed.
* NT_X64_THREADS_MAKEFILE (.cpp.obj): Use lowercase file
extension.
* NT_X64_STATIC_THREADS_MAKEFILE (.cpp.obj): Ditto.
* NT_MAKEFILE (.cpp.obj): Ditto.

13 years ago2011-05-31 Ivan Maidanski <ivmai@mail.ru>
ivmai [Tue, 31 May 2011 15:27:11 +0000 (15:27 +0000)]
2011-05-31  Ivan Maidanski  <ivmai@mail.ru>

* alloc.c (GC_add_current_malloc_heap, GC_build_back_graph,
GC_traverse_back_graph): Move prototype to gc_priv.h.
* checksums.c (GC_page_was_ever_dirty): Ditto.
* dbg_mlc.c (GC_default_print_heap_obj_proc): Ditto.
* dyn_load.c (GC_parse_map_entry, GC_get_maps,
GC_segment_is_thread_stack, GC_roots_present, GC_is_heap_base,
GC_get_next_stack): Ditto.
* finalize.c (GC_reset_finalizer_nested,
GC_check_finalizer_nested): Ditto.
* gcj_mlc.c (GC_start_debugging, GC_store_debug_info): Ditto.
* malloc.c (GC_extend_size_map, GC_text_mapping): Ditto.
* mark_rts.c (GC_mark_thread_local_free_lists): Ditto.
* misc.c (GC_register_main_static_data, GC_init_win32,
GC_setpagesize, GC_init_linux_data_start,
GC_set_and_save_fault_handler, GC_init_dyld, GC_init_netbsd_elf,
GC_initialize_offsets, GC_bl_init, GC_do_blocking_inner,
GC_bl_init_no_interiors): Ditto.
* os_dep.c (GC_greatest_stack_base_below, GC_push_all_stacks):
Ditto.
* reclaim.c (GC_check_leaked): Ditto.
* win32_threads.c (GC_gww_dirty_init): Ditto.
* darwin_stop_world.c (GC_is_mach_marker, GC_mprotect_stop,
GC_mprotect_resume): Move prototype to darwin_stop_world.h.
* pthread_support.c (GC_FindTopOfStack): Ditto.
* dyn_load.c (GC_cond_add_roots): Merge adjacent definitions.
* mark.c (GC_page_was_ever_dirty): Remove (as already declared).
* mark_rts.c (GC_roots_present): Change return type to void
pointer (to match the prototype); return NULL instead of FALSE.
* mark_rts.c (GC_add_roots_inner): Cast GC_roots_present() result.
* os_dep.c (NEED_PROC_MAPS): Move definition to gcconfig.h.
* os_dep.c (GC_write_fault_handler): Make STATIC.
* os_dep.c (GC_set_write_fault_handler): New function (only if
GC_WIN32_THREADS).
* pthread_start.c (GC_start_rtn_prepare_thread,
GC_thread_exit_proc): Move prototype to pthread_support.h.
* pthread_support.c (GC_nacl_initialize_gc_thread,
GC_nacl_shutdown_gc_thread, GC_unblock_gc_signals):
Ditto.
* pthread_support.c (GC_stop_init): Move prototype to
pthread_stop_world.h.
* thread_local_alloc.c (GC_check_tls_for): Reformat comment.
* win32_threads.c (GC_write_fault_handler): Remove prototype.
* win32_threads.c (GC_register_my_thread_inner): Call
GC_set_write_fault_handler instead of SetUnhandledExceptionFilter
(only if MPROTECT_VDB).
* doc/README.win32: Add information about DMC.
* include/private/gc_priv.h (GC_set_write_fault_handler): New
prototype (only if GC_WIN32_THREADS and MPROTECT_VDB).

13 years ago2011-05-31 Ivan Maidanski <ivmai@mail.ru>
ivmai [Tue, 31 May 2011 09:53:36 +0000 (09:53 +0000)]
2011-05-31  Ivan Maidanski  <ivmai@mail.ru>

* misc.c (vsnprintf): Redirect to vsprintf() if NO_VSNPRINTF.

13 years ago2011-05-31 Ivan Maidanski <ivmai@mail.ru>
ivmai [Tue, 31 May 2011 09:09:34 +0000 (09:09 +0000)]
2011-05-31  Ivan Maidanski  <ivmai@mail.ru>

* win32_threads.c (GC_unregister_my_thread): Use KNOWN_FINISHED()
instead of FINISHED macro.
* tests/test.c (check_heap_stats): Round up max_heap_sz value for
Win32 (same as for USE_MMAP).

13 years ago2011-05-31 Ivan Maidanski <ivmai@mail.ru>
ivmai [Tue, 31 May 2011 08:41:20 +0000 (08:41 +0000)]
2011-05-31  Ivan Maidanski  <ivmai@mail.ru>

* tests/test.c (check_heap_stats): Adjust printf format specifier
for max_heap_sz; cast max_heap_sz accordingly.

13 years ago2011-05-30 Ivan Maidanski <ivmai@mail.ru>
ivmai [Mon, 30 May 2011 17:26:59 +0000 (17:26 +0000)]
2011-05-30  Ivan Maidanski  <ivmai@mail.ru>

* doc/README.solaris2: Add note.

13 years ago2011-05-30 Ivan Maidanski <ivmai@mail.ru>
ivmai [Mon, 30 May 2011 13:37:49 +0000 (13:37 +0000)]
2011-05-30  Ivan Maidanski  <ivmai@mail.ru>

* configure.ac (SOLARIS25_PROC_VDB_BUG_FIXED): Don't define for
Solaris/x86 2.10+.
* configure: Regenerate.

13 years ago2011-05-23 Ivan Maidanski <ivmai@mail.ru>
ivmai [Mon, 23 May 2011 21:19:18 +0000 (21:19 +0000)]
2011-05-23  Ivan Maidanski  <ivmai@mail.ru>

* tests/threadkey_test.c (SKIP_THREADKEY_TEST): Skip the test if
defined; explicitly define for some targets.

13 years ago2011-05-23 Ivan Maidanski <ivmai@mail.ru>
ivmai [Mon, 23 May 2011 15:18:04 +0000 (15:18 +0000)]
2011-05-23  Ivan Maidanski  <ivmai@mail.ru>

* mark.c (GC_dirty): Add prototype (only if MANUAL_VDB).
* stubborn.c (GC_dirty): Ditto.
* include/private/gcconfig.h (GWW_VDB, MPROTECT_VDB, PCR_VDB,
        PROC_VDB): Undefine if MANUAL_VDB.
* include/private/gcconfig.h (DEFAULT_VDB): Don't define if
MANUAL_VDB.
* os_dep.c (async_set_pht_entry_from_index): Define for
MANUAL_VDB.
* os_dep.c (GC_read_dirty): Set GC_dirty_maintained only if
success; if ioctl() failed then just print warning instead of
aborting.

13 years ago2011-05-23 Ivan Maidanski <ivmai@mail.ru>
ivmai [Mon, 23 May 2011 13:42:56 +0000 (13:42 +0000)]
2011-05-23  Ivan Maidanski  <ivmai@mail.ru>

* include/private/gc_priv.h (GC_ASSERT): Use "%d" (instead of %ld)
for line number printing.

13 years ago2011-05-23 Ivan Maidanski <ivmai@mail.ru>
ivmai [Mon, 23 May 2011 09:51:11 +0000 (09:51 +0000)]
2011-05-23  Ivan Maidanski  <ivmai@mail.ru>

* os_dep.c (GC_read_dirty): Add debug logging if DEBUG_DIRTY_BITS
(for PROC_VDB only); print errors via GC_err_printf; rename "ps"
and "np" local variables to npages and pagesize, respectively;
remove "current_addr" local variable.
* os_dep.c: Refprmat comments.

13 years ago2011-05-22 Ivan Maidanski <ivmai@mail.ru>
ivmai [Sun, 22 May 2011 12:46:28 +0000 (12:46 +0000)]
2011-05-22  Ivan Maidanski  <ivmai@mail.ru>

* os_dep.c (GC_get_main_stack_base): Convert to GC_get_stack_base
for BeOS and OS/2; define HAVE_GET_STACK_BASE.
* os_dep.c (GET_MAIN_STACKBASE_SPECIAL): Define when a specific
GC_get_main_stack_base implementation is defined.
* os_dep.c (GC_get_main_stack_base): Define that based on
GC_get_stack_base() in a single place (only if
GET_MAIN_STACKBASE_SPECIAL is unset); check GC_get_stack_base()
result.

13 years ago2011-05-20 Ivan Maidanski <ivmai@mail.ru>
ivmai [Fri, 20 May 2011 15:09:18 +0000 (15:09 +0000)]
2011-05-20  Ivan Maidanski  <ivmai@mail.ru>

* mark.c (GC_push_selected): Remove "push_fn" argument (use
GC_push_all directly); update the documentation; reformat the
comment.
* mark.c (GC_push_conditional): Simplify the code (for better
readability).

13 years ago2011-05-20 Ivan Maidanski <ivmai@mail.ru>
ivmai [Fri, 20 May 2011 09:57:34 +0000 (09:57 +0000)]
2011-05-20  Ivan Maidanski  <ivmai@mail.ru>

* mark.c (alloc_mark_stack): Use FALSE/TRUE (instead of 0/1) for
boolean local variables.
* doc/README.macros (GC_PREFER_MPROTECT_VDB): Update.
* os_dep.c (GC_page_was_dirty, GC_page_was_ever_dirty,
GC_remove_protection): Define for GWW_VDB and PROC_VDB in a single
place.
* os_dep.c (GC_page_was_dirty, GC_page_was_ever_dirty): Compute
PHT_HASH(h) only once (store result to a local variable).

13 years ago2011-05-20 Ivan Maidanski <ivmai@mail.ru>
ivmai [Fri, 20 May 2011 07:53:38 +0000 (07:53 +0000)]
2011-05-20  Ivan Maidanski  <ivmai@mail.ru>

* doc/README.solaris2: Update.

13 years ago2011-05-19 Ivan Maidanski <ivmai@mail.ru> (really Jie Liu)
ivmai [Thu, 19 May 2011 07:50:49 +0000 (07:50 +0000)]
2011-05-19  Ivan Maidanski  <ivmai@mail.ru> (really Jie Liu)

* include/private/gcconfig.h (end, InitStackBottom): Declare
extern variable for RTEMS.
* include/private/gcconfig.h (DATASTART, DATAEND, STACKBOTTOM):
Update (for RTEMS).
* include/private/gcconfig.h (DATAEND): Fix a typo in the macro
name (for RTEMS).
* tests/test.c (CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER):
Replace with CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER (for RTEMS).

13 years ago2011-05-18 Ivan Maidanski <ivmai@mail.ru>
ivmai [Wed, 18 May 2011 09:46:36 +0000 (09:46 +0000)]
2011-05-18  Ivan Maidanski  <ivmai@mail.ru>

* include/private/gcconfig.h (MPROTECT_VDB): Enable for Solaris in
single-threaded environment.

13 years ago2011-05-18 Ivan Maidanski <ivmai@mail.ru>
ivmai [Wed, 18 May 2011 09:40:00 +0000 (09:40 +0000)]
2011-05-18  Ivan Maidanski  <ivmai@mail.ru>

* include/private/gcconfig.h (MPROTECT_VDB): Undefine if PROC_VDB.
* tests/test.c (NUMBER_ROUND_UP): New macro.
* tests/test.c (check_heap_stats): Round up total expected heap
size to the nearest 4 MiB bound.
* tests/test.c (check_heap_stats): Print the current and expected
heap sizes in case of failure.

13 years ago2011-05-18 Ivan Maidanski <ivmai@mail.ru>
ivmai [Wed, 18 May 2011 08:55:41 +0000 (08:55 +0000)]
2011-05-18  Ivan Maidanski  <ivmai@mail.ru>

* checksums.c (GC_check_blocks, GC_check_dirty): Do log printing
only if GC_print_stats; print errors using GC_err_printf.
* checksums.c (GC_check_blocks): Join adjacent printf() calls into
a single one.

13 years ago2011-05-17 Ivan Maidanski <ivmai@mail.ru>
ivmai [Tue, 17 May 2011 08:59:42 +0000 (08:59 +0000)]
2011-05-17  Ivan Maidanski  <ivmai@mail.ru>

* pthread_support.c (pthread_join): Add assertion (check thread is
finished).
* pthread_support.c (GC_register_my_thread): Don't detach the
thread if invoked from the thread destructor.
* win32_threads.c (GC_register_my_thread): Ditto.
* win32_threads.c (GC_unregister_my_thread): Don't delete the
thread (just set FINISHED) if the thread is not detached (only if
GC_PTHREADS); add assertion (check the thread is not finished).
* tests/threadkey_test.c (main): Join some created threads.

13 years ago2011-05-17 Ivan Maidanski <ivmai@mail.ru>
ivmai [Tue, 17 May 2011 06:45:30 +0000 (06:45 +0000)]
2011-05-17  Ivan Maidanski  <ivmai@mail.ru>

* pthread_support.c (GC_delete_gc_thread): Rename "gc_id" local
variable to "t".
* win32_threads.c (GC_delete_gc_thread): Ditto.
* pthread_support.c (pthread_join, pthread_detach,
pthread_cancel): Rename "thread_gc_id" local variable to "t".
* win32_threads.c (GC_pthread_detach): Ditto.
* win32_threads.c (GC_delete_gc_thread): Remove "gc_nvid" local
variable.
* win32_threads.c (GC_pthread_join): Rename "joinee" local
variable to "t".

13 years ago2011-05-16 Ivan Maidanski <ivmai@mail.ru>
ivmai [Mon, 16 May 2011 13:12:14 +0000 (13:12 +0000)]
2011-05-16  Ivan Maidanski  <ivmai@mail.ru>

* pthread_stop_world.c (pthread_sigmask): Undefine even if not
DEBUG_THREADS.
* pthread_stop_world.c (GC_unblock_gc_signals): New function (only
if GC_EXPLICIT_SIGNALS_UNBLOCK).
* pthread_support.c (GC_unblock_gc_signals): New prototype.
* pthread_support.c (GC_register_my_thread_inner,
GC_register_my_thread): Call GC_unblock_gc_signals (only if
GC_EXPLICIT_SIGNALS_UNBLOCK); add comment.
* include/private/gcconfig.h (GC_EXPLICIT_SIGNALS_UNBLOCK): New
macro.

13 years ago2011-05-16 Ivan Maidanski <ivmai@mail.ru>
ivmai [Mon, 16 May 2011 07:06:33 +0000 (07:06 +0000)]
2011-05-16  Ivan Maidanski  <ivmai@mail.ru>

* pthread_stop_world.c (GC_suspend_handler_inner): Remove "dummy",
"sig" local variables; rename my_thread local variable to "self".

13 years ago2011-05-13 Ivan Maidanski <ivmai@mail.ru>
ivmai [Fri, 13 May 2011 15:18:44 +0000 (15:18 +0000)]
2011-05-13  Ivan Maidanski  <ivmai@mail.ru>

* tests/threadkey_test.c (LIMIT): Use smaller value (don't create
more than 30 in parallel by default).

13 years ago2011-05-13 Ivan Maidanski <ivmai@mail.ru>
ivmai [Fri, 13 May 2011 15:05:20 +0000 (15:05 +0000)]
2011-05-13  Ivan Maidanski  <ivmai@mail.ru>

* tests/threadkey_test.c (key_once, main): Work around for Solaris
PTHREAD_ONCE_INIT.
* tests/threadkey_test.c (LIMIT): Use smaller value for Solaris.

13 years ago2011-05-13 Ivan Maidanski <ivmai@mail.ru>
ivmai [Fri, 13 May 2011 14:40:31 +0000 (14:40 +0000)]
2011-05-13  Ivan Maidanski  <ivmai@mail.ru>

* dyn_load.c (GC_FirstDLOpenedLinkMap): Remove unused "r" local
variable.
* pthread_support.c (GC_unregister_my_thread_inner): Revert back
GC_remove_specific invocation; add a comment.
* include/private/thread_local_alloc.h (GC_remove_specific):
Revert back.
* specific.c: Expand all tabs to spaces.
* specific.c (slow_getspecific): Cast qtid to AO_t.
* include/private/specific.h (quick_thread_id): Reformat comment.
* include/private/specific.h (key_create, setspecific,
remove_specific): Remove "extern" keyword.
* include/private/specific.h (getspecific): Change type of "qtid"
local variable to unsigned long.

13 years ago2011-05-11 Ivan Maidanski <ivmai@mail.ru>
ivmai [Wed, 11 May 2011 17:06:03 +0000 (17:06 +0000)]
2011-05-11  Ivan Maidanski  <ivmai@mail.ru>

* pthread_support.c (GC_check_tls): Fix "#endif" comment.
* include/gc.h (GC_REDIRECT_TO_LOCAL): Remove deprecated comment.
* include/private/thread_local_alloc.h (THREAD_LOCAL_ALLOC):
Remove redundant test of the macro.
* include/private/thread_local_alloc.h: Reformat the code.

13 years ago2011-05-11 Ivan Maidanski <ivmai@mail.ru>
ivmai [Wed, 11 May 2011 13:27:30 +0000 (13:27 +0000)]
2011-05-11  Ivan Maidanski  <ivmai@mail.ru>

* backgraph.c (add_edge): Recognize DEBUG_PRINT_BIG_N_EDGES macro.
* os_dep.c (GC_set_and_save_fault_handler): Recognize
SIGACTION_FLAGS_NODEFER_HACK macro.
* pthread_support.c (mark_mutex): Recognize GLIBC_2_1_MUTEX_HACK
macro.
* pthread_support.c (GC_acquire_mark_lock): Remove commented out
code.
* include/gc_inline.h (GC_MALLOC_WORDS, GC_MALLOC_ATOMIC_WORDS,
GC_CONS): Remove trailing space (before back-slash).
* include/private/gc_hdrs.h (GET_BI, GET_HDR_ADDR): Ditto.
* include/private/gc_pmark.h (PUSH_OBJ, PUSH_CONTENTS,
SET_MARK_BIT_EXIT_IF_SET, LONG_MULT, PUSH_CONTENTS_HDR,
GC_PUSH_ONE_STACK, GC_PUSH_ONE_HEAP): Ditto.
* include/private/thread_local_alloc.h (GC_key_create): Ditto.
* include/private/gc_priv.h (SUNOS5SIGS): Don't include
sys/siginfo.h on Linux.
* include/private/gcconfig.h: Reformat comments (and some code).
* include/private/gcconfig.h (FORCE_WRITE_PREFETCH): New macro
recognized, force PREFETCH_FOR_WRITE to be defined on x86.
* include/private/gcconfig.h (USE_HPUX_FIXED_STACKBOTTOM): New
macro recognized (for HP/UX).

13 years ago2011-05-11 Ivan Maidanski <ivmai@mail.ru>
ivmai [Wed, 11 May 2011 09:12:35 +0000 (09:12 +0000)]
2011-05-11  Ivan Maidanski  <ivmai@mail.ru>

* os_dep.c (GC_gww_page_was_ever_dirty): Fix comment (for
GWW_VDB).
* os_dep.c (GC_dirty_init): Use memset() for GC_written_pages
resetting (for PROC_VDB).

13 years ago2011-05-11 Ivan Maidanski <ivmai@mail.ru> (mostly really Ludovic Courtes)
ivmai [Wed, 11 May 2011 07:41:49 +0000 (07:41 +0000)]
2011-05-11  Ivan Maidanski  <ivmai@mail.ru> (mostly really Ludovic Courtes)

* tests/threadkey_test.c: New file.
* .cvsignore (threadkey_test): Add.
* tests/tests.am (TESTS, check_PROGRAMS): Add 'threadkey_test'.
* tests/tests.am (threadkey_test_SOURCES, threadkey_test_LDADD):
New variable.
* Makefile.in: Regenerate.

13 years ago2011-05-11 Ivan Maidanski <ivmai@mail.ru>
ivmai [Wed, 11 May 2011 07:19:46 +0000 (07:19 +0000)]
2011-05-11  Ivan Maidanski  <ivmai@mail.ru>

* pthread_support.c (GC_unregister_my_thread_inner): Don't call
GC_remove_specific.
* include/private/thread_local_alloc.h (GC_remove_specific):
Remove (since it is empty for all targets).
* pthread_support.c (GC_record_stack_base): New inline function.
* win32_threads.c (GC_record_stack_base): Ditto.
* pthread_support.c (GC_register_my_thread_inner): Invoke
GC_record_stack_base.
* win32_threads.c (GC_register_my_thread_inner): Ditto.
* pthread_support.c (GC_register_my_thread): If thread is FINISHED
then call GC_record_stack_base, clear FINISHED, initialize
thread-local list and return success.
* win32_threads.c (GC_register_my_thread): Ditto.
* include/gc.h (GC_register_my_thread): Update documentation.
* include/private/thread_local_alloc.h (GC_thread_key): Ditto.

13 years ago2011-05-10 Ivan Maidanski <ivmai@mail.ru>
ivmai [Tue, 10 May 2011 15:39:29 +0000 (15:39 +0000)]
2011-05-10  Ivan Maidanski  <ivmai@mail.ru>

* thread_local_alloc.c (GC_malloc, GC_malloc_atomic): Join
adjacent "#ifdef".
* thread_local_alloc.c (GC_malloc_atomic): Call
GC_core_malloc_atomic (instead of GC_core_malloc).

13 years ago2011-05-10 Ivan Maidanski <ivmai@mail.ru>
ivmai [Tue, 10 May 2011 14:15:57 +0000 (14:15 +0000)]
2011-05-10  Ivan Maidanski  <ivmai@mail.ru>

* pthread_start.c (GC_start_rtn_prepare_thread): Change return
type to GC_thread.
* pthread_start.c (GC_inner_start_routine): Pass the current
thread descriptor to pthread_cleanup_push (same as in
win32_threads.c).
* pthread_stop_world.c (GC_push_all_stacks): Rename "me" local
variable to "self".
* win32_threads.c (GC_push_all_stacks): Ditto.
* pthread_stop_world.c (GC_suspend_all, GC_start_world): Rename
"my_thread" local variable to "self".
* pthread_support.c (GC_unregister_my_thread_inner): New static
function.
* pthread_support.c (GC_unregister_my_thread,
GC_thread_exit_proc): Use GC_unregister_my_thread_inner.
* win32_threads.c (GC_register_my_thread, GC_unregister_my_thread,
GC_do_blocking_inner): Rename "t" local variable to "thread_id".
* win32_threads.c (GC_wait_marker, GC_notify_all_marker): Rename
"id" local variable to "thread_id".

13 years ago2011-05-10 Ivan Maidanski <ivmai@mail.ru>
ivmai [Tue, 10 May 2011 12:53:40 +0000 (12:53 +0000)]
2011-05-10  Ivan Maidanski  <ivmai@mail.ru>

* pthread_support.c (GC_unregister_my_thread): Call pthread_self
only once.
* win32_threads.c (GC_pthread_start_inner): Ditto.
* pthread_support.c (GC_unregister_my_thread): Add debug output.
* win32_threads.c (GC_unregister_my_thread): Ditto.
* pthread_support.c (GC_register_my_thread,
GC_start_rtn_prepare_thread): Rename "my_pthread" local variable
to "self".

13 years ago2011-05-10 Ivan Maidanski <ivmai@mail.ru>
ivmai [Tue, 10 May 2011 11:07:12 +0000 (11:07 +0000)]
2011-05-10  Ivan Maidanski  <ivmai@mail.ru>

* include/gc.h (GC_HIDE_POINTER, GC_REVEAL_POINTER): Define
unconditionally (do not test GC_I_HIDE_POINTERS); update the
comment.
* include/gc.h (HIDE_POINTER, REVEAL_POINTER): Define as alias to
GC_HIDE/REVEAL_POINTER, respectively.
* include/private/gc_pmark.h (GC_I_HIDE_POINTERS): Do not define.
* include/private/gc_priv.h (GC_I_HIDE_POINTERS): Ditto.

13 years ago2011-05-10 Ivan Maidanski <ivmai@mail.ru>
ivmai [Tue, 10 May 2011 09:58:23 +0000 (09:58 +0000)]
2011-05-10  Ivan Maidanski  <ivmai@mail.ru>

* include/gc.h (GC_register_my_thread): Refine the comment.

13 years ago2011-05-08 Ivan Maidanski <ivmai@mail.ru>
ivmai [Sun, 8 May 2011 21:21:44 +0000 (21:21 +0000)]
2011-05-08  Ivan Maidanski  <ivmai@mail.ru>

* include/gc_inline.h (GC_MALLOC_WORDS, GC_CONS): Add missing
parentheses.
* include/gc_typed.h (GC_get_bit, GC_set_bit,
GC_CALLOC_EXPLICITLY_TYPED): Ditto.

13 years ago2011-05-07 Ivan Maidanski <ivmai@mail.ru>
ivmai [Sat, 7 May 2011 19:15:21 +0000 (19:15 +0000)]
2011-05-07  Ivan Maidanski  <ivmai@mail.ru>

* include/private/gcconfig.h (NO_GETCONTEXT): Add missing ')'.

13 years ago2011-05-07 Ivan Maidanski <ivmai@mail.ru> (really Thorsten Glaser)
ivmai [Sat, 7 May 2011 19:10:05 +0000 (19:10 +0000)]
2011-05-07  Ivan Maidanski  <ivmai@mail.ru> (really Thorsten Glaser)

* include/private/gcconfig.h (NO_GETCONTEXT): Do not use
getcontext(2) on m68k because it is not implemented there.

13 years ago2011-05-07 Ivan Maidanski <ivmai@mail.ru>
ivmai [Sat, 7 May 2011 19:04:25 +0000 (19:04 +0000)]
2011-05-07  Ivan Maidanski  <ivmai@mail.ru>

* alloc.c (GC_clear_a_few_frames): Use BZERO().
* mark_rts.c (GC_clear_roots, GC_rebuild_root_index): Ditto.
* reclaim.c (GC_start_reclaim): Ditto.
* blacklst.c (total_stack_black_listed): Remove "len" local
variable.
* dbg_mlc.c (GC_generate_random_valid_address): Replace "for"
statement with "do-while" one.
* dyn_load.c (GC_register_dynamic_libraries,
GC_register_dynlib_callback): Remove redundant parentheses.

13 years ago2011-05-06 Ivan Maidanski <ivmai@mail.ru>
ivmai [Fri, 6 May 2011 07:46:34 +0000 (07:46 +0000)]
2011-05-06  Ivan Maidanski  <ivmai@mail.ru>

* cord/cordxtra.c (CORD_from_file_lazy_inner): Suppress
"unused result" compiler warning for fread().
* cord/cordxtra.c: Expand all tabs to spaces.