Re[2]: GC v7.2e release and version numbering policy

Ivan Maidanski <ivmai-JGs/[email protected]>
Newsgroups gmane.comp.programming.garbage-collection.boehmgc
Message-ID <[email protected]>
 Hello Hans,

Yes, I applied the necessary changes to alloc.c, etc. (see attached diff).

I just sent 7.4.0 tarballs to  [email protected]

Tue, 12 Nov 2013, 1:01 UTC from "Boehm, Hans" <[email protected]>:
>Presumably we still have the option of using nonzero “micro” values for intermediate development releases if we want them labeled?
> 
>This would presumably imply some minor changes to GC_version in alloc.s, gc_version.h, etc.
> 
>Looks fine to me.
> 
>Hans
> 
>From: Ivan Maidanski [mailto:[email protected]]
>Sent: Sunday, November 10, 2013 8:31 AM
>To: Boehm, Hans
>Cc: [email protected]
>Subject: GC v7.2e release and version numbering policy
> 
>Hi Hans,
>
>1. I've prepared gc-7.2e.tar.gz and libatomic_ops-7.2e.tar.gz (I'll send to you privately in moment) - please do "make check" and put them to gc_source and linux/atomic_ops folder, respectively.
>
>2. I'm going to prepare tarballs for master branches but let's agree on the version numbers policy to avoid confusion with added 'b', 'c',... letters. As someone already mentioned on the ML, major.minor.micro could be a good alternative to major.minor[alpha<alpha>].
 I could describe it as:
>/* 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" number (most stable release has the */
>/* biggest "micro" value).                                              */
>
>In other words (similar to libatomic_ops:
>* gc-7.2 remains as-is (gc-7.2f, ...)
>* gc-7.3alpha3 is finalized to gc-7.4.0
>* if a bug will be fixed in gc-7.4.0 then version is changed to gc-7.4.1 when tarball is released (next set of bug fixes goes to gc-7.4.2, so on)
>* gc-7.4.0 -> gc-7.5.0 for development (only exists in repository)
>* gc-7.5.0 -> gc-7.6.0 on preparing a tarball
>
>The drawback of this scheme is that there is no alpha/beta releases, but OTOH the bigger "micro" value, the more stable release is.
>
>If no objections, I'll prepare gc-7.4.0 and libatomic_ops tarballs.
>Thank you
>
>Regards,
>Ivan
>_______________________________________________
>Gc mailing list
>[email protected]
>http://www.hpl.hp.com/hosted/linux/mail-archives/gc/


-- 
Иван Майданский

_______________________________________________
Gc mailing list
Gc-V9/[email protected]
http://www.hpl.hp.com/hosted/linux/mail-archives/gc/
bdwgc-4c4054f.diff (application/octet-stream, 12.2 KB)
commit 4c4054f156d264a2c657b7fee24c85e0142f9091
Author: Ivan Maidanski <[email protected]>
Date:   Sun Nov 17 13:40:36 2013 +0400

    Bump version to 7.4.0; change policy regarding version numbers
    
    * 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.

diff --git a/ChangeLog b/ChangeLog
index 5e9dfd7..24483ed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,5 @@
 
-== [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.
@@ -33,6 +33,7 @@
 * 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).
diff --git a/README.md b/README.md
index c87b7d1..cada89a 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 # 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).
diff --git a/alloc.c b/alloc.c
index c8623dc..b9039e0 100644
--- a/alloc.c
+++ b/alloc.c
@@ -99,13 +99,13 @@ char * const GC_copyright[] =
 /* 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 */
diff --git a/configure.ac b/configure.ac
index 031b129..2e9afca 100644
--- a/configure.ac
+++ b/configure.ac
@@ -12,8 +12,8 @@
 dnl Process this file with autoconf to produce configure.
 
 # Initialization
-AC_INIT(gc,7.3alpha3,[email protected])
-    ## version must conform to [0-9]+[.][0-9]+(alpha[0-9]+)?
+AC_INIT(gc,7.4.0,[email protected])
+    ## version must conform to [0-9]+[.][0-9]+[.][0-9]+
 AC_CONFIG_SRCDIR(gcj_mlc.c)
 AC_CONFIG_MACRO_DIR([m4])
 AC_CANONICAL_TARGET
diff --git a/doc/debugging.html b/doc/debugging.html
index 158e4fa..241875c 100644
--- a/doc/debugging.html
+++ b/doc/debugging.html
@@ -13,8 +13,7 @@ It applies both to debugging issues in client code that manifest themselves
 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,
diff --git a/doc/overview.html b/doc/overview.html
index 6754a3c..6ea9f2e 100644
--- a/doc/overview.html
+++ b/doc/overview.html
@@ -46,7 +46,7 @@ just prefer the simple collector interface.
 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>
@@ -60,8 +60,6 @@ in <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/">
 <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
diff --git a/include/gc.h b/include/gc.h
index a3a13b9..ca82fd1 100644
--- a/include/gc.h
+++ b/include/gc.h
@@ -67,7 +67,7 @@ typedef void * GC_PTR;  /* preserved only for backward compatibility    */
 #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 */
diff --git a/include/gc_version.h b/include/gc_version.h
index 38afc0f..5551f04 100644
--- a/include/gc_version.h
+++ b/include/gc_version.h
@@ -18,28 +18,30 @@
 /* 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
diff --git a/m4/gc_set_version.m4 b/m4/gc_set_version.m4
index e805a7a..465e4f0 100644
--- a/m4/gc_set_version.m4
+++ b/m4/gc_set_version.m4
@@ -9,26 +9,19 @@
 # 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'])
@@ -38,12 +31,10 @@ AC_DEFUN([GC_SET_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)
diff --git a/tests/test.c b/tests/test.c
index 12baa94..34c6307 100644
--- a/tests/test.c
+++ b/tests/test.c
@@ -116,14 +116,10 @@
 
 # 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); \
             }
diff --git a/tools/add_gc_prefix.c b/tools/add_gc_prefix.c
index 8369d68..60afa5f 100644
--- a/tools/add_gc_prefix.c
+++ b/tools/add_gc_prefix.c
@@ -1,21 +1,13 @@
 # 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);
 }
diff --git a/tools/gcname.c b/tools/gcname.c
index 74be553..b9f3364 100644
--- a/tools/gcname.c
+++ b/tools/gcname.c
@@ -1,17 +1,9 @@
 #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;
 }
diff --git a/windows-untested/gc.ver b/windows-untested/gc.ver
index e91c7b6..97920a2 100644
--- a/windows-untested/gc.ver
+++ b/windows-untested/gc.ver
@@ -3,11 +3,6 @@
 
 #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)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.