Hello, On Thu, Nov 13, 2008 at 01:29:57PM +0100, Jens Vollinga wrote:
What do the other developers think about a major release?
I'd like to finish multivariate modular GCD (as in: ``although it's far from optimal, it actually works and gives correct result''), but I'm afraid it would take a while, say, 3 months. The problem is quite involved on its own, and (most importantly) I have almost no free time :(. On the other hand, I don't want to hold the release for so long time. So, if you are ready to release right now, I'm OK with it.
What time would be welcome? Maybe there are some pending new features or just items on a private todo list that should be finished first?
I've got several small patches which fix library versioning and simplify build scripts. Could you please apply them? From: Alexei Sheplyakov <varg@theor.jinr.ru> Subject: [PATCH] Fix GiNaC library version information. The libtool naming scheme cannot guarantee that on all systems, the numbering is consecutive. It only guarantees that it is increasing. This doesn't matter, though: there is not incurred cost for numbers that are omitted, except for shrinking the available space of leftover numbers. Not something we need to worry about yet. ;-) On the other hand, tricks which we were using to make version numbers consecutive on GNU/Linux break versioning on other OSes. --- configure.ac | 37 +++++++++++++++++++++---------------- 1 files changed, 21 insertions(+), 16 deletions(-) diff --git a/configure.ac b/configure.ac index fff79dd..78d7f2a 100644 --- a/configure.ac +++ b/configure.ac @@ -1,22 +1,30 @@ dnl Process this file with autoconf to produce a configure script. -dnl GiNaC library version information. -dnl -dnl Making releases: -dnl ginac_micro_version += 1; -dnl ginac_interface_age += 1; -dnl ginac_binary_age += 1; -dnl if any functions have been added, set ginac_interface_age to 0. -dnl if backwards compatibility has been broken, -dnl set ginac_binary_age and ginac_interface_age to 0. - +dnl GiNaC version number m4_define([ginac_major_version], [1]) m4_define([ginac_minor_version], [5]) m4_define([ginac_micro_version], [0]) m4_define([ginac_version], [ginac_major_version.ginac_minor_version.ginac_micro_version]) m4_define([ginac_release], [ginac_major_version.ginac_minor_version]) -m4_define([ginac_interface_age], [0]) -m4_define([ginac_binary_age], [0]) + +dnl GiNaC library version information. It has very little to do with GiNaC +dnl version number. In particular, library version is OS dependent. +dnl +dnl When making releases, do +dnl 1. Increment ginac_lt_revision +dnl 2. If any interfaces have been added, removed, or changed since the last +dnl release, increment ginac_lt_current and set ginac_lt_revision to 0. +dnl 3. If any interfaces have been removed since the last release, set +dnl ginac_lt_age to 0. +dnl +dnl Please note: the libtool naming scheme cannot guarantee that on all +dnl systems, the numbering is consecutive. It only guarantees that it is +dnl increasing. This doesn't matter, though: there is not incurred cost +dnl for numbers that are omitted, except for shrinking the available space +dnl of leftover numbers. Not something we need to worry about yet. ;-) +m4_define([ginac_lt_current], [0]) +m4_define([ginac_lt_age], [0]) +m4_define([ginac_lt_revision], [0]) AC_INIT([GiNaC], ginac_version, [<ginac-list@ginac.de>]) AC_PREREQ(2.59) @@ -55,10 +63,7 @@ AC_DEFINE_UNQUOTED(ARCHIVE_VERSION, $ARCHIVE_VERSION, [Current GiNaC archive fil AC_DEFINE_UNQUOTED(ARCHIVE_AGE, $ARCHIVE_AGE, [GiNaC archive file version age]) dnl libtool versioning -m4_define([lt_revision], [ginac_interface_age]) -m4_define([lt_current], [m4_eval(ginac_micro_version - ginac_interface_age)]) -m4_define([lt_age], [m4_eval(ginac_binary_age - ginac_interface_age)]) -LT_VERSION_INFO="lt_current:lt_revision:lt_age" +LT_VERSION_INFO="ginac_lt_current:ginac_lt_revision:ginac_lt_age" LT_RELEASE="ginac_release" AC_SUBST(LT_VERSION_INFO) -- 1.5.6.5 From: Alexei Sheplyakov <varg@theor.jinr.ru> Subject: [PATCH] [build] Simplify generation of ginac/version.h --- configure.ac | 14 ++++---------- ginac/version.h.in | 12 ++++++++---- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/configure.ac b/configure.ac index 78d7f2a..2c2c8e9 100644 --- a/configure.ac +++ b/configure.ac @@ -30,20 +30,15 @@ AC_INIT([GiNaC], ginac_version, [<ginac-list@ginac.de>]) AC_PREREQ(2.59) AC_CONFIG_SRCDIR(ginac/basic.cpp) AC_CONFIG_AUX_DIR([config]) -AC_CONFIG_HEADERS([config/config.h]) +AC_CONFIG_HEADERS([config/config.h ginac/version.h]) AC_CONFIG_MACRO_DIR([m4]) dnl This defines PACKAGE and VERSION. AM_INIT_AUTOMAKE([gnu 1.7 dist-bzip2]) dnl Process GiNaC version information -GINACLIB_MAJOR_VERSION=ginac_major_version -GINACLIB_MINOR_VERSION=ginac_minor_version -GINACLIB_MICRO_VERSION=ginac_micro_version -GINACLIB_VERSION=ginac_version -AC_SUBST(GINACLIB_MAJOR_VERSION) -AC_SUBST(GINACLIB_MINOR_VERSION) -AC_SUBST(GINACLIB_MICRO_VERSION) -AC_SUBST(GINACLIB_VERSION) +AC_DEFINE([GINACLIB_MAJOR_VERSION], ginac_major_version, [Major version of GiNaC]) +AC_DEFINE([GINACLIB_MINOR_VERSION], ginac_minor_version, [Minor version of GiNaC]) +AC_DEFINE([GINACLIB_MICRO_VERSION], ginac_minor_version, [Micro version of GiNaC]) dnl GiNaC archive file version information. dnl @@ -134,7 +129,6 @@ Makefile GiNaC.spec ginac.pc ginac/Makefile -ginac/version.h check/Makefile ginsh/Makefile ginsh/ginsh.1 diff --git a/ginac/version.h.in b/ginac/version.h.in index da42751..a8a7175 100644 --- a/ginac/version.h.in +++ b/ginac/version.h.in @@ -23,10 +23,14 @@ #ifndef __GINAC_VERSION_H__ #define __GINAC_VERSION_H__ -/* Major, minor, and micro version number of the GiNaC library. */ -#define GINACLIB_MAJOR_VERSION @GINACLIB_MAJOR_VERSION@ -#define GINACLIB_MINOR_VERSION @GINACLIB_MINOR_VERSION@ -#define GINACLIB_MICRO_VERSION @GINACLIB_MICRO_VERSION@ +/* Major version of GiNaC */ +#undef GINACLIB_MAJOR_VERSION + +/* Minor version of GiNaC */ +#undef GINACLIB_MINOR_VERSION + +/* Micro version of GiNaC */ +#undef GINACLIB_MICRO_VERSION namespace GiNaC { -- 1.5.6.5 Best regards, Alexei -- All science is either physics or stamp collecting.