From f1176c4815cd628ae443b5c4b0e1841588369776 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Sun, 3 Jan 1999 12:40:24 +0000 Subject: [PATCH] New version identification scheme. The version numbers are now exported by Python.h. Also rolled back the API version change -- it's back to 1007! --- Include/Python.h | 1 + Include/modsupport.h | 8 +++-- Include/patchlevel.h | 69 +++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 74 insertions(+), 4 deletions(-) diff --git a/Include/Python.h b/Include/Python.h index 9b72d0f8d06..2762bd9afb1 100644 --- a/Include/Python.h +++ b/Include/Python.h @@ -35,6 +35,7 @@ PERFORMANCE OF THIS SOFTWARE. /* Include nearly all Python header files */ +#include "patchlevel.h" #include "config.h" /* config.h may or may not define DL_IMPORT */ diff --git a/Include/modsupport.h b/Include/modsupport.h index f0967504d90..a90b279c536 100644 --- a/Include/modsupport.h +++ b/Include/modsupport.h @@ -61,8 +61,8 @@ extern DL_IMPORT(PyObject *) Py_BuildValue(); extern DL_IMPORT(int) PyArg_VaParse Py_PROTO((PyObject *, char *, va_list)); extern DL_IMPORT(PyObject *) Py_VaBuildValue Py_PROTO((char *, va_list)); -#define PYTHON_API_VERSION 1008 -#define PYTHON_API_STRING "1008" +#define PYTHON_API_VERSION 1007 +#define PYTHON_API_STRING "1007" /* The API version is maintained (independently from the Python version) so we can detect mismatches between the interpreter and dynamically loaded modules. These are diagnosticised by an error message but @@ -76,7 +76,9 @@ extern DL_IMPORT(PyObject *) Py_VaBuildValue Py_PROTO((char *, va_list)); Please add a line or two to the top of this log for each API version change: - 3-Dec-1998 GvR 1008 Python 1.5.2 + 3-Jan-1999 GvR 1007 Decided to change back! (Don't reuse 1008!) + + 3-Dec-1998 GvR 1008 Python 1.5.2b1 18-Jan-1997 GvR 1007 string interning and other speedups diff --git a/Include/patchlevel.h b/Include/patchlevel.h index b6c7acc8f94..d0c394f323c 100644 --- a/Include/patchlevel.h +++ b/Include/patchlevel.h @@ -1 +1,68 @@ -#define PATCHLEVEL "1.5.2b1" +/*********************************************************** +Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam, +The Netherlands. + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the names of Stichting Mathematisch +Centrum or CWI or Corporation for National Research Initiatives or +CNRI not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. + +While CWI is the initial source for this software, a modified version +is made available by the Corporation for National Research Initiatives +(CNRI) at the Internet address ftp://ftp.python.org. + +STICHTING MATHEMATISCH CENTRUM AND CNRI DISCLAIM ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH +CENTRUM OR CNRI BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL +DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR +PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + +******************************************************************/ + +/* Newfangled version identification scheme. + + This scheme was added in Python 1.5.2b2; before that time, only PATCHLEVEL + was available. To test for presence of the scheme, test for + defined(PY_MAJOR_VERSION). + + When the major or minor version changes, the VERSION variable in + configure.in must also be changed. + + There is also (independent) API version information in modsupport.h. +*/ + +/* Values for PY_RELEASE_LEVEL */ +#define PY_RELEASE_LEVEL_ALPHA 0xA +#define PY_RELEASE_LEVEL_BETA 0xB +#define PY_RELEASE_LEVEL_FINAL 0xF /* Serial should be 0 here */ + +/* Version parsed out into numeric values */ +#define PY_MAJOR_VERSION 1 +#define PY_MINOR_VERSION 5 +#define PY_MICRO_VERSION 2 +#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_BETA +#define PY_RELEASE_SERIAL 2 + +/* Version as a string */ +#define PY_VERSION "1.5.2b2" + +/* Historic */ +#define PATCHLEVEL "1.5.2b2" + +/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. + Use this for numeric comparisons, e.g. #if PY_VERSION_HEX >= ... */ +#define PY_VERSION_HEX ((PY_MAJOR_VERSION << 24) | \ + (PY_MINOR_VERSION << 16) | \ + (PY_MICRO_VERSION << 8) | \ + (PY_RELEASE_LEVEL << 4) | \ + (PY_RELEASE_SERIAL << 0))