* ChangeLog: Update.
* README.md: Bump version.
* configure.ac (AC_INIT): Likewise.
* include/gc_version.h (GC_TMP_VERSION_MINOR): Likewise.
* alloc.c (GC_version, GC_get_version): Replace GC_TMP_ALPHA_VERSION
with GC_VERSION_MICRO.
* doc/debugging.html: Remove comment about "alpha" versions.
* doc/overview.html: Likewise.
* include/gc.h (GC_get_version): Update comment.
* include/gc_version.h (GC_NOT_ALPHA): Remove.
* include/gc_version.h (GC_TMP_ALPHA_VERSION): Replace with
GC_TMP_VERSION_MICRO; add comment about policy.
* m4/gc_set_version.m4 (GC_ALPHA_VERSION): Replace with
GC_VERSION_MICRO; update comments; adjust version format test.
* tests/test.c (GC_ALPHA_VERSION): Remove.
* tools/add_gc_prefix.c (GC_ALPHA_VERSION): Likewise.
* tools/gcname.c (GC_ALPHA_VERSION): Likewise.
* tests/test.c (CHECH_GCLIB_VERSION): Replace GC_ALPHA_VERSION with
GC_VERSION_MICRO.
* tools/add_gc_prefix.c (main): Replace "gc%d.%d[alpha%d]" print
format with "gc-%d.%d.%d" one.
* tools/gcname.c (main): Likewise.
* windows-untested/gc.ver (_BETA, GC_VERSION_MICRO): Remove.
-== [7.3alpha4] (development) ==
+== [7.4.0] 2013-11-17 ==
* Add 'bytes reclaimed' counters to public GC_prof_stats_s.
* Add AArch64 (64-bit ARM) target support.
* Better document GC_warn_proc in gc.h.
* Call GC_on_abort (with NULL argument) on exit(1).
* Call GC_stats/verbose_log_printf instead of GC_log_printf if print_stats.
+* Change policy regarding version numbers ("micro" part instead of "alpha").
* Changed C99-style designated init of GC_dl_hashtbl struct to use C89-style.
* Check GC_base result in GC_print_all_smashed_proc.
* Check that SIG_SUSPEND and SIG_THR_RESTART are different (Pthreads).
# Boehm-Demers-Weiser Garbage Collector
-This is version 7.3alpha3 of a conservative garbage collector for C and C++.
+This is version 7.4.0 of a conservative garbage collector for C and C++.
You might find a more recent version
[here](http://www.hpl.hp.com/personal/Hans_Boehm/gc).
/* gc.h, which is included by gc_priv.h. */
#ifndef GC_NO_VERSION_VAR
const unsigned GC_version = ((GC_VERSION_MAJOR << 16) |
- (GC_VERSION_MINOR << 8) | GC_TMP_ALPHA_VERSION);
+ (GC_VERSION_MINOR << 8) | GC_VERSION_MICRO);
#endif
GC_API unsigned GC_CALL GC_get_version(void)
{
return (GC_VERSION_MAJOR << 16) | (GC_VERSION_MINOR << 8) |
- GC_TMP_ALPHA_VERSION;
+ GC_VERSION_MICRO;
}
/* some more variables */
dnl Process this file with autoconf to produce configure.
# Initialization
-AC_INIT(gc,7.3alpha3,gc@linux.hpl.hp.com)
- ## version must conform to [0-9]+[.][0-9]+(alpha[0-9]+)?
+AC_INIT(gc,7.4.0,gc@linux.hpl.hp.com)
+ ## version must conform to [0-9]+[.][0-9]+[.][0-9]+
AC_CONFIG_SRCDIR(gcj_mlc.c)
AC_CONFIG_MACRO_DIR([m4])
AC_CANONICAL_TARGET
as collector misbehavior, and to debugging the collector itself.
<P>
If you suspect a bug in the collector itself, it is strongly recommended
-that you try the latest collector release, even if it is labelled as "alpha",
-before proceeding.
+that you try the latest collector release before proceeding.
<H2>Bus Errors and Segmentation Violations</h2>
<P>
If the fault occurred in GC_find_limit, or with incremental collection enabled,
For a more detailed description of the interface, see
<a href="gcinterface.html">here</a>.
</p><p>
-Alternatively, the garbage collector may be used as
+Alternatively, the garbage collector may be used as
a <a href="leak.html">leak detector</a>
for C or C++ programs, though that is not its primary goal.
</p><p>
<tt>gc_source/</tt></a>.
Later versions may contain additional features, platform support,
or bug fixes, but are likely to be less well tested.
-Note that versions containing the letters <tt>alpha</tt> are even less
-well tested than others, especially on non-HP platforms.
</p><p>
A slightly older version of the garbage collector is now also
included as part of the
#endif
/* Get the GC library version. The returned value is a constant in the */
-/* form: ((version_major<<16) | (version_minor<<8) | alpha_version). */
+/* form: ((version_major<<16) | (version_minor<<8) | version_micro). */
GC_API unsigned GC_CALL GC_get_version(void);
/* Public read-only variables */
/* This should never be included directly; it is included only from gc.h. */
#if defined(GC_H)
+/* The policy regarding version numbers: development code has odd */
+/* "minor" number (and "micro" part is 0); when development is finished */
+/* and a release is prepared, "minor" number is incremented (keeping */
+/* "micro" number still zero), whenever a defect is fixed a new release */
+/* is prepared incrementing "micro" part to odd value (the most stable */
+/* release has the biggest "micro" number). */
+
/* The version here should match that in configure/configure.ac */
/* Eventually this one may become unnecessary. For now we need */
/* it to keep the old-style build process working. */
#define GC_TMP_VERSION_MAJOR 7
-#define GC_TMP_VERSION_MINOR 3
-#define GC_TMP_ALPHA_VERSION 3 /* 7.3alpha3 */
-
-#ifndef GC_NOT_ALPHA
-# define GC_NOT_ALPHA 0xff
-#endif
+#define GC_TMP_VERSION_MINOR 4
+#define GC_TMP_VERSION_MICRO 0 /* 7.4.0 */
#ifdef GC_VERSION_MAJOR
# if GC_TMP_VERSION_MAJOR != GC_VERSION_MAJOR \
|| GC_TMP_VERSION_MINOR != GC_VERSION_MINOR \
- || defined(GC_ALPHA_VERSION) != (GC_TMP_ALPHA_VERSION != GC_NOT_ALPHA) \
- || (defined(GC_ALPHA_VERSION) && GC_TMP_ALPHA_VERSION != GC_ALPHA_VERSION)
-# error Inconsistent version info. Check README, include/gc_version.h and configure.ac.
+ || GC_TMP_VERSION_MICRO != GC_VERSION_MICRO
+# error Inconsistent version info. Check README.md, include/gc_version.h and configure.ac.
# endif
#else
# define GC_VERSION_MAJOR GC_TMP_VERSION_MAJOR
# define GC_VERSION_MINOR GC_TMP_VERSION_MINOR
-# define GC_ALPHA_VERSION GC_TMP_ALPHA_VERSION
+# define GC_VERSION_MICRO GC_TMP_VERSION_MICRO
#endif /* !GC_VERSION_MAJOR */
#endif
# modified is included with the above copyright notice.
# GC_SET_VERSION
-# sets and AC_DEFINEs GC_VERSION_MAJOR, GC_VERSION_MINOR and GC_ALPHA_VERSION
+# sets and AC_DEFINEs GC_VERSION_MAJOR, GC_VERSION_MINOR and GC_VERSION_MICRO
# based on the contents of PACKAGE_VERSION; PACKAGE_VERSION must conform to
-# [0-9]+[.][0-9]+(alpha[0.9]+)?
-# in lex syntax; if there is no alpha number, GC_ALPHA_VERSION is empty
+# [0-9]+[.][0-9]+[.][0-9]+
#
AC_DEFUN([GC_SET_VERSION], [
AC_MSG_CHECKING(GC version numbers)
GC_VERSION_MAJOR=`echo $PACKAGE_VERSION | sed 's/^\([[0-9]][[0-9]]*\)[[.]].*$/\1/g'`
GC_VERSION_MINOR=`echo $PACKAGE_VERSION | sed 's/^[[^.]]*[[.]]\([[0-9]][[0-9]]*\).*$/\1/g'`
- GC_ALPHA_VERSION=`echo $PACKAGE_VERSION | sed 's/^[[^.]]*[[.]][[0-9]]*//'`
-
- case "$GC_ALPHA_VERSION" in
- alpha*)
- GC_ALPHA_VERSION=`echo $GC_ALPHA_VERSION \
- | sed 's/alpha\([[0-9]][[0-9]]*\)/\1/'` ;;
- *) GC_ALPHA_MAJOR='' ;;
- esac
+ GC_VERSION_MICRO=`echo $PACKAGE_VERSION | sed 's/^[[^.]]*[[.]][[^.]]*[[.]]\([[0-9]][[0-9]]*\)$/\1/g'`
if test :$GC_VERSION_MAJOR: = :: \
- -o :$GC_VERSION_MINOR: = :: ;
+ -o :$GC_VERSION_MINOR: = :: \
+ -o :$GC_VERSION_MICRO: = :: ;
then
AC_MSG_RESULT(invalid)
AC_MSG_ERROR([nonconforming PACKAGE_VERSION='$PACKAGE_VERSION'])
[The major version number of this GC release.])
AC_DEFINE_UNQUOTED([GC_VERSION_MINOR], $GC_VERSION_MINOR,
[The minor version number of this GC release.])
- if test :$GC_ALPHA_VERSION: != :: ; then
- AC_DEFINE_UNQUOTED([GC_ALPHA_VERSION], $GC_ALPHA_VERSION,
- [The alpha version number, if applicable.])
- fi
+ AC_DEFINE_UNQUOTED([GC_VERSION_MICRO], $GC_VERSION_MICRO,
+ [The micro version number of this GC release.])
AC_MSG_RESULT(major=$GC_VERSION_MAJOR minor=$GC_VERSION_MINOR \
-${GC_ALPHA_VERSION:+alpha=}$GC_ALPHA_VERSION)
+ micro=$GC_VERSION_MICRO)
])
sinclude(libtool.m4)
# include <stdarg.h>
-#ifndef GC_ALPHA_VERSION
-# define GC_ALPHA_VERSION GC_TMP_ALPHA_VERSION
-#endif
-
#define CHECH_GCLIB_VERSION \
if (GC_get_version() != ((GC_VERSION_MAJOR<<16) \
| (GC_VERSION_MINOR<<8) \
- | GC_ALPHA_VERSION)) { \
+ | GC_VERSION_MICRO)) { \
GC_printf("libgc version mismatch\n"); \
exit(1); \
}
# include <stdio.h>
# include <gc.h>
-#ifndef GC_ALPHA_VERSION
-# define GC_ALPHA_VERSION GC_TMP_ALPHA_VERSION
-#endif
-
int main(int argc, char ** argv)
{
int i;
for (i = 1; i < argc; i++) {
- if (GC_ALPHA_VERSION == GC_NOT_ALPHA) {
- printf("gc%d.%d/%s ", GC_VERSION_MAJOR, GC_VERSION_MINOR, argv[i]);
- } else {
- printf("gc%d.%dalpha%d/%s ", GC_VERSION_MAJOR,
- GC_VERSION_MINOR, GC_ALPHA_VERSION, argv[i]);
- }
+ printf("gc-%d.%d.%d/%s ",
+ GC_VERSION_MAJOR, GC_VERSION_MINOR, GC_VERSION_MICRO, argv[i]);
}
return(0);
}
#include <stdio.h>
#include <gc.h>
-#ifndef GC_ALPHA_VERSION
-# define GC_ALPHA_VERSION GC_TMP_ALPHA_VERSION
-#endif
-
int main(void)
{
- if (GC_ALPHA_VERSION == GC_NOT_ALPHA) {
- printf("gc%d.%d", GC_VERSION_MAJOR, GC_VERSION_MINOR);
- } else {
- printf("gc%d.%dalpha%d", GC_VERSION_MAJOR,
- GC_VERSION_MINOR, GC_ALPHA_VERSION);
- }
+ printf("gc-%d.%d.%d",
+ GC_VERSION_MAJOR, GC_VERSION_MINOR, GC_VERSION_MICRO);
return 0;
}
#include "../include/../version.h"
-#if GC_ALPHA_VERSION != GC_NOT_ALPHA
-#define _BETA 1
-#endif
-
-#define GC_VERSION_MICRO GC_ALPHA_VERSION
#define GC_VERSION_REVISION 0
#define GC_VERSION ((GC_VERSION_MAJOR) * 100 + GC_VERSION_MINOR)