Hugs' build system
Sven Panne
sven.panne at aedion.de
Sun Feb 25 07:46:26 EST 2007
FYI: While trying to fix some issues with Hugs, I came to the conclusion that
Hugs' build system as it stands today is a bit arcane and might need some
improvements. The general strategy will be to make things more similar to GHC
and nhc98:
* I think we should abandon version names like "Sep2006" and go for the
usual numerical even/odd numbering scheme. This more consistent with the rest
of the world and makes it easier for tools to determine e.g. which version is
newer. I am not sure if we have ever released a numerical version, so I
propose to call the current version 0.9 (odd, because it is a developer
version) and bump it to 1.0 for the next release.
* make and rpmbuild are used the wrong way round for most automated build
systems, i.e. one should be able to use rpmbuild to build an rpm, and not
make. Furthermore, configure should determine the version number, not make. I
propose to use a similar version numbering as GHC, i.e. major.minor.date for
snapshots and simply major.minor for releases, including the current way of
e.g. saying 'RELEASE=YES rpmbuild hugs98.spec" to build a release.
* The current way of checking out things, tar-ing it up, unpacking
into /tmp and building there is very annoying and I fail to see a good reason
for this. Let's do it like GHC/nhc98 and use a darcs-all script to check
out/update all things, so one can e.g. easily copy the whole source tree
around and get a usable, version controlled build tree without any need for
network access. While doing this, we can make it very explicit what
are "core" packages and which are "extra" ones by simply listing them in
separate files (and not bury this deep inside the Makefile).
* I think that Hugs should finally be moved to darcs instead of CVS, the
current mix of version control systems is a bit obscure and we need darcs for
the libraries, anyway. I have no former experience in doing this conversion,
but I think others on this list have, so I'd prefer not doing this for myself
(or at least get some hint/tricks/... from others who have done it before).
I don't know exactly how WinHugs is currently being built, but I guess that
there are no fundamental reasons why the above changes could seriously break
WinHugs development. Otherwise: Neil, please yell! :-)
Cheers,
S.
More information about the Cvs-hugs
mailing list