diff: version number & release build process
Fergus Henderson
fjh at cs.mu.oz.au
Mon Jul 28 18:24:13 AEST 1997
Localize the definition of the version number into a single file.
Automate the building of releases, including daily "rotd"
(release-of-the-day) releases.
VERSION:
New file, defines the version number.
Also document the general scheme for assigning version numbers.
Mmake.common.in:
Add `include VERSION'.
Mmakefile:
bindist/Mmakefile:
configure.in:
Use the version number in VERSION rather than hard-coding it
in multiple places.
Mmakefile:
README:
.README.in:
INSTALL:
.INSTALL.in:
Change things so that README and INSTALL are automatically
generated from .README.in and .INSTALL.in respectively, using
the version number defined in VERSION.
BUGS:
Remove an unnecessary reference to the version number.
RELEASE_NOTES:
Change this file so that the version number is only mentioned
in one place. Bump the version number here to 0.7 in preparation
for the next release.
library/Mmakefile:
library/library.m:
library/library.m.in:
Change things so that library.m is automatically generated from
library.m.in using the version number in VERSION.
Also change it so that library__version says which architecture
it was configured for.
tools/test_mercury:
Override the version specified in the VERSION file in the CVS
repository with either `rotd-YYYY-MM-DD' or (when making a release)
with a specified $RELEASE_VERSION.
When running on murliboobo, if the version built passes all its
tests, copy it to the /pub/mercury/beta-releases directory on
ftp://turiel.cs.mu.oz.au.
compiler/notes/release_checklist.m:
Change the release checklist to say that you only need to
update the version number in VERSION rather than in 6 different
places. Also change the procedure for building the final
tar file to reflect the above changes to the `test_mercury' script.
cvs diff: Diffing .
cvs diff: .INSTALL.in is a new entry, no comparison available
cvs diff: .README.in is a new entry, no comparison available
Index: BUGS
===================================================================
RCS file: /home/staff/zs/imp/mercury/BUGS,v
retrieving revision 1.7
diff -u -r1.7 BUGS
--- BUGS 1997/07/27 16:34:33 1.7
+++ BUGS 1997/07/28 05:28:41
@@ -11,9 +11,16 @@
fully self-contained.
Below is a list of the known outstanding bugs.
-We'll try to record any other bugs that are discovered in 0.6
+We'll try to record any other bugs that are discovered
on our WWW page <http://www.cs.mu.oz.au/mercury>.
See also the LIMITATIONS file.
+
+Note: please do not be alarmed by the fact that this software has some bugs.
+ALL useful software has bugs. During the development of the Mercury
+implementation we have found bugs in gcc, as, ld, the dynamic loader,
+and even the OS kernel. We hope that by listing the known outstanding bugs
+here we are doing our users a service. It would be disappointing if
+anyone were to infer the wrong thing from it.
-----------------------------------------------------------------------------
Subject: bug report - Inf and NaN
cvs diff: INSTALL was removed, no comparison available
Index: Mmake.common.in
===================================================================
RCS file: /home/staff/zs/imp/mercury/Mmake.common.in,v
retrieving revision 1.21
diff -u -r1.21 Mmake.common.in
--- Mmake.common.in 1997/07/27 14:58:44 1.21
+++ Mmake.common.in 1997/07/28 08:13:11
@@ -17,6 +17,10 @@
#-----------------------------------------------------------------------------#
+include $(MERCURY_DIR)/VERSION
+
+#-----------------------------------------------------------------------------#
+
# Specify the locations for installing things.
# These directories can all be modified independantly.
# In particular, you might want to find a better place for the DVI and
Index: Mmakefile
===================================================================
RCS file: /home/staff/zs/imp/mercury/Mmakefile,v
retrieving revision 1.4
diff -u -r1.4 Mmakefile
--- Mmakefile 1997/07/27 14:58:45 1.4
+++ Mmakefile 1997/07/28 04:51:48
@@ -11,8 +11,6 @@
MERCURY_DIR=.
include Mmake.common
-VERSION=0.6
-
#-----------------------------------------------------------------------------#
SUBDIRS = scripts util boehm_gc runtime library compiler doc profiler
@@ -71,7 +69,7 @@
#-----------------------------------------------------------------------------#
.PHONY: all
-all: $(SUBDIRS)
+all: $(SUBDIRS) README INSTALL
.PHONY: scripts
scripts:
@@ -146,6 +144,12 @@
Mmake.common: Mmake.common.in config.status
./config.status
+README: .README.in VERSION
+ sed 's/@VERSION@/$(VERSION)/g' .README.in > README
+
+INSTALL: .INSTALL.in VERSION
+ sed 's/@VERSION@/$(VERSION)/g' .INSTALL.in > INSTALL
+
#-----------------------------------------------------------------------------#
# Generally you should do a `mmake realclean' before doing `mmake tar'.
@@ -189,6 +193,7 @@
mv mercury-$(VERSION) mercury \
)
+.PHONY: version
version:
@echo $(VERSION)
cvs diff: README was removed, no comparison available
Index: RELEASE_NOTES
===================================================================
RCS file: /home/staff/zs/imp/mercury/RELEASE_NOTES,v
retrieving revision 1.20
diff -u -r1.20 RELEASE_NOTES
--- RELEASE_NOTES 1997/07/26 17:38:44 1.20
+++ RELEASE_NOTES 1997/07/28 07:57:43
@@ -1,5 +1,5 @@
-We are pleased to announce the release of version 0.6 of the Mercury system.
+We are pleased to announce the release of version 0.7 of the Mercury system.
Mercury is a new general-purpose programming language, designed and
implemented by a small group of researchers at the University of
@@ -13,7 +13,7 @@
syntactic convenience of user-defined functions, smoothly integrating
logic and functional programming into a single paradigm.
-For a list of what's new in release 0.6, see the NEWS file.
+For a list of what's new in this release, see the NEWS file.
The main features of Mercury are:
cvs diff: VERSION is a new entry, no comparison available
Index: configure.in
===================================================================
RCS file: /home/staff/zs/imp/mercury/configure.in,v
retrieving revision 1.99
diff -u -r1.99 configure.in
--- configure.in 1997/07/27 14:58:47 1.99
+++ configure.in 1997/07/28 05:40:56
@@ -40,7 +40,8 @@
fi
#-----------------------------------------------------------------------------#
AC_CONFIG_HEADER(runtime/conf.h)
-AC_PREFIX_DEFAULT(/usr/local/mercury-0.6)
+. ./VERSION
+AC_PREFIX_DEFAULT(/usr/local/mercury-$VERSION)
AC_CANONICAL_HOST
FULLARCH="$host"
AC_SUBST(FULLARCH)
cvs diff: Diffing bindist
Index: bindist/Mmakefile
===================================================================
RCS file: /home/staff/zs/imp/mercury/bindist/Mmakefile,v
retrieving revision 1.3
diff -u -r1.3 Mmakefile
--- Mmakefile 1997/07/27 14:58:56 1.3
+++ Mmakefile 1997/07/28 04:53:34
@@ -10,7 +10,6 @@
MERCURY_DIR=..
include $(MERCURY_DIR)/Mmake.common
-VERSION=0.6
MERCURY_VERSION = mercury-$(VERSION).$(FULLARCH)
INSTALL_LIB_DIR = $(INSTALL_PREFIX)/lib
cvs diff: Diffing boehm_gc
cvs diff: Diffing boehm_gc/Mac_files
cvs diff: Diffing boehm_gc/cord
cvs diff: Diffing boehm_gc/cord/private
cvs diff: Diffing boehm_gc/include
cvs diff: Diffing boehm_gc/include/private
cvs diff: Diffing bytecode
cvs diff: Diffing compiler
cvs diff: Diffing compiler/notes
Index: compiler/notes/release_checklist.html
===================================================================
RCS file: /home/staff/zs/imp/mercury/compiler/notes/release_checklist.html,v
retrieving revision 1.1
diff -u -r1.1 release_checklist.html
--- release_checklist.html 1997/04/03 05:17:42 1.1
+++ release_checklist.html 1997/07/28 07:57:08
@@ -1,14 +1,9 @@
<html>
<head>
-<title>
- Mercury Coding Standard for the Mercury Project
-</title>
+<title>Mercury Coding Standard for the Mercury Project</title>
</head>
-<body
- bgcolor="#ffffff"
- text="#000000"
->
+<body bgcolor="#ffffff" text="#000000">
<hr>
<!-------------------------->
@@ -20,20 +15,26 @@
<!-------------------------->
<ol>
-<li> Update the version number in
- <ul>
- <li> README
- <li> INSTALL (various places)
- <li> Mmake
- <li> bindist/Mmake
- <li> configure.in
- <li> library/library.m
- </ul>
- and update the NEWS, RELEASE_NOTES, and HISTORY files.
- The RELEASE_NOTES file should include the contents of the NEWS file.
- The HISTORY file should include the NEWS files from previous releases.
+<li> Update the NEWS, RELEASE_NOTES, and HISTORY files.
+ Don't forget to update the version number in RELEASE_NOTES for major
+ releases.
+ The HISTORY file should include the NEWS files from previous releases.
+
+<li> Update the WWW documentation in the `www' directory,
+ but don't commit it to the main branch yet, because otherwise
+ it would be installed on the WWW pages overnight.
+
+<li> Use `cvs tag' to tag all the files with a `version-x_y_z' tag.
+
+<li> Edit the tools/test_mercury script in
+ /home/mercury/public/test_mercury/scripts/mercury:
+ set the RELEASE_VERSION and CHECKOUT_OPTS variables
+ as explained in the comments there.
-<li> Checkout a fresh copy, and do
+<li> Run tools/run_all_tests_from_cron on murlibobo.
+ (Or just wait 24 hours or so.) <p>
+
+ This should have the effect of checking out a fresh copy, and doing
<pre>
touch Mmake.params &&
@@ -47,30 +48,32 @@
<p>
- This step should be done automatically by tools/test_mercury every night,
- so you should be able to just grab the mercury-latest-stable.tar.gz
- file from /home/mercury/public/testing/test_dirs/murlibobo.
+ If it passes all the tests, it should put the resulting tar file in
+ /home/mercury/public/test_mercury/test_dirs/mercury-latest-stable and
+ ftp://turiel.cs.mu.oz.au/pub/mercury/beta-releases.
<li> Test it on lots of architectures. <br>
<p>
- Make sure you test that all the programs in the `samples' directory
- work.
+ Make sure you test all the programs in the `samples' and `extras'
+ directories.
<li> Build binary distributions for those architectures.
-<li> Copy the gzipped tar files to ~fjh/www_public/mercury, and
- to the turiel ftp site ftp://turiel.cs.mu.oz.au/pub/mercury.
+<li> Move the gzipped tar files from the /pub/mercury/beta-releases directory
+ to the main /pub/mercury directory on the turiel ftp site
+ ftp://turiel.cs.mu.oz.au/pub/mercury. <br>
Email kostis at cs.sunysb.edu (Konstantinos Sagonas) to tell him
to make copies of it on ftp://ftp.cs.sunysb.edu/pub/XSB/mercury
respectively. <br>
- The mirror on ftp://ftp.csd.uu.se/pub/Mercury is automated.
+ The mirror on ftp://ftp.csd.uu.se/pub/Mercury is supposedly automated.
<li> Email mercury-announce at cs.mu.oz.au and cross-post announcement to
comp.lang.misc, comp.lang.prolog, comp.lang.functional, comp.object.logic,
and for major releases also to comp.compilers and gnu.announce.
-<li> Update the Mercury WWW home page (/local/dept/www/mercury/mercury.html).
+<li> Update the Mercury WWW home page (/local/dept/www/mercury/mercury.html)
+ by commiting the changes you made earlier.
</ol>
cvs diff: Diffing doc
cvs diff: Diffing extras
cvs diff: Diffing extras/cgi
cvs diff: Diffing extras/complex_numbers
cvs diff: Diffing extras/complex_numbers/samples
cvs diff: Diffing extras/complex_numbers/tests
cvs diff: Diffing extras/graphics
cvs diff: Diffing extras/graphics/Togl-1.2
cvs diff: Diffing extras/graphics/samples
cvs diff: Diffing extras/graphics/samples/calc
cvs diff: Diffing extras/graphics/samples/maze
cvs diff: Diffing library
Index: library/Mmakefile
===================================================================
RCS file: /home/staff/zs/imp/mercury/library/Mmakefile,v
retrieving revision 1.9
diff -u -r1.9 Mmakefile
--- Mmakefile 1997/07/27 15:06:31 1.9
+++ Mmakefile 1997/07/28 04:48:18
@@ -106,6 +106,16 @@
#-----------------------------------------------------------------------------#
+library.m: library.m.in ../VERSION ../Mmake.common
+ sed -e 's/@VERSION@/$(VERSION)/g' \
+ -e 's/@FULLARCH@/$(FULLARCH)/' \
+ library.m.in > library.m
+
+library.dep : library.m
+library.depend : library.m
+
+#-----------------------------------------------------------------------------#
+
tags : $(MTAGS) $(library.ms)
$(MTAGS) $(library.ms)
cvs diff: library/library.m was removed, no comparison available
cvs diff: library/library.m.in is a new entry, no comparison available
cvs diff: Diffing lp_solve
cvs diff: Diffing lp_solve/lp_examples
cvs diff: Diffing profiler
cvs diff: Diffing runtime
cvs diff: Diffing runtime/machdeps
cvs diff: Diffing samples
cvs diff: Diffing samples/c_interface
cvs diff: Diffing samples/c_interface/c_calls_mercury
cvs diff: Diffing samples/c_interface/cplusplus_calls_mercury
cvs diff: Diffing samples/c_interface/mercury_calls_c
cvs diff: Diffing samples/c_interface/mercury_calls_cplusplus
cvs diff: Diffing samples/c_interface/simpler_c_calls_mercury
cvs diff: Diffing samples/c_interface/simpler_cplusplus_calls_mercury
cvs diff: Diffing samples/diff
cvs diff: Diffing scripts
cvs diff: Diffing tools
Index: tools/test_mercury
===================================================================
RCS file: /home/staff/zs/imp/mercury/tools/test_mercury,v
retrieving revision 1.48
diff -u -r1.48 test_mercury
--- test_mercury 1997/07/15 08:05:15 1.48
+++ test_mercury 1997/07/28 07:14:13
@@ -30,6 +30,19 @@
#-----------------------------------------------------------------------------#
+DATE=`date '+%Y-%m-%d'`
+
+RELEASE_VERSION=rotd-$DATE
+CHECKOUT_OPTS=-A
+
+# To build one of the official releases, uncomment the following two lines
+# which specify the release number and the cvs checkout option needed to
+# retrieve it.
+### RELEASE_VERSION=0.7
+### CHECKOUT_OPTS=-rversion-0_7
+
+#-----------------------------------------------------------------------------#
+
case $HOST in
# test things at different optimization levels...
murlibobo) OPTIMIZE=-O5 ;;
@@ -137,9 +150,14 @@
: checkout the sources and make sure the installation directory exists
cd $DIR || { false; exit 1; }
-cvs checkout mercury tests || { false; exit 1; }
+cvs checkout $CHECKOUT_OPTS mercury tests || { false; exit 1; }
[ -d $INSTALL_DIR ] || mkdir -p $INSTALL_DIR
+: update the VERSION file to specify the version we are building
+sed "s/VERSION=.*/VERSION=$RELEASE_VERSION/" \
+ mercury/VERSION > mercury/VERSION.new
+mv mercury/VERSION.new mercury/VERSION
+
: bootstrap the compiler up to stage 3 and check that the results match
MERCURY_COMPILER=$BOOTSTRAP_MERCURY_COMPILER
export MERCURY_COMPILER
@@ -268,8 +286,8 @@
version=`mmake version` &&
mmake MMAKEFLAGS='EXTRA_MCFLAGS="-O5 --opt-space" -j6' tar &&
cd .. &&
- rm -f mercury-latest-unstable.tar.gz &&
- mv mercury-$version.tar.gz mercury-latest-unstable.tar.gz
+ rm -f mercury-latest-unstable/* &&
+ mv mercury-$version.tar.gz mercury-latest-unstable
} || status=1
;;
esac
@@ -341,10 +359,14 @@
[ -d $TESTDIR/logs ] || mkdir -p $TESTDIR/logs
date >> $TESTDIR/logs/successful_tests.$HOST
case $HOST in murlibobo)
- cd $DIR &&
- rm -f mercury-latest-stable.tar.gz &&
- ln mercury-latest-unstable.tar.gz mercury-latest-stable.tar.gz
- ;;
+ cd $DIR &&
+ rm -f mercury-latest-stable/* &&
+ ln mercury-latest-unstable/mercury-$version.tar.gz \
+ mercury-latest-stable/mercury-$version.tar.gz &&
+ rm -f /home/tsa/ftp/pub/mercury/beta-releases/mercury-rotd-*.tar.gz
+ cp mercury-latest-stable/mercury-$version.tar.gz \
+ /home/tsa/ftp/pub/mercury/beta-releases
+ ;;
esac
echo "test_mercury exiting successfully at `date`" 1>&2
true
cvs diff: Diffing trial
cvs diff: Diffing util
--- README Mon Jul 28 18:20:48 1997
+++ .README.in Mon Jul 28 17:48:30 1997
@@ -1,5 +1,5 @@
This directory contains the source distribution for the University of Melbourne
-Mercury compiler, version 0.6.
+Mercury compiler, version @VERSION at .
The Mercury implementation is free software, but it is Copyright (C)
1994-1997 The University of Melbourne. It is distributed under the terms
@@ -30,10 +30,11 @@
The documentation sources are in the `doc' subdirectory. The installation
process will install INFO, HTML, and DVI versions in the locations specified
in the file Mmake.common - by default these locations are
-/usr/local/mercury-0.6/info, /usr/local/mercury-0.6/lib/mercury/html,
-and /usr/local/mercury-0.6/lib/mercury/doc respectively.
+/usr/local/mercury- at VERSION@/info,
+/usr/local/mercury- at VERSION@/lib/mercury/html,
+and /usr/local/mercury- at VERSION@/lib/mercury/doc respectively.
The installation process will also install Unix-style man pages -
-by default they will be installed in /usr/local/mercury-0.6/man/man1.
+by default they will be installed in /usr/local/mercury- at VERSION@/man/man1.
The files RELEASE_NOTES, NEWS, HISTORY, LIMITATIONS, and BUGS
also contain useful information. If you're interested in looking
at the source code, the file compiler/notes/compiler_design.html is
--- INSTALL Mon Jul 28 18:21:07 1997
+++ .INSTALL.in Mon Jul 28 14:12:19 1997
@@ -10,7 +10,7 @@
# Step 1. Run `configure'. (Just type `sh configure'.)
#
# By default, the files will be installed in the directory
-# /usr/local/mercury-0.6.
+# /usr/local/mercury- at VERSION@.
# If you want the files to be installed someplace else,
# use the `--prefix <directory>' option to `configure'.
#
@@ -31,12 +31,12 @@
# file `make_install.log'.
#
# Step 4. Check the permissions on the installed files.
-# Add /usr/local/mercury-0.6/bin to your PATH, and
-# add /usr/local/mercury-0.6/info to your INFOPATH.
+# Add /usr/local/mercury- at VERSION@/bin to your PATH, and
+# add /usr/local/mercury- at VERSION@/info to your INFOPATH.
# You can also add a WWW link to the Mercury documentation in
-# /usr/local/mercury-0.6/lib/mercury/html to your WWW home page,
+# /usr/local/mercury- at VERSION@/lib/mercury/html to your WWW home page,
# and you may want to print out a hard-copy of the documentation
-# from the DVI files in /usr/local/mercury-0.6/lib/mercury/doc.
+# from the DVI files in /usr/local/mercury- at VERSION@/lib/mercury/doc.
#
# Step 5. Run `make clean'.
#
@@ -98,7 +98,7 @@
# You may eventually want to uninstall this version of Mercury
# (to free up disk space so you can install the next version ;-).
# If you installed in the default location, you can simply
-# use `rm -rf /usr/local/mercury-0.6' to uninstall.
+# use `rm -rf /usr/local/mercury- at VERSION@' to uninstall.
# If you installed in a location such as `/usr/local' that also
# contains other files which you do not want removed, then
# run the command `make uninstall' in this directory.
--
Fergus Henderson <fjh at cs.mu.oz.au> | "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh> | of excellence is a lethal habit"
PGP: finger fjh at 128.250.37.3 | -- the last words of T. S. Garp.
More information about the developers
mailing list