[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] Build machinery -- an overview
From: |
Gabriel Dos Reis |
Subject: |
[Axiom-developer] Build machinery -- an overview |
Date: |
Sun, 1 Jul 2007 03:13:13 -0500 (CDT) |
Hi,
This is a general overview of the build system. This message contains
no code -- I'm discussing general view, ideas, ideals.
If you don't need a simple working, easily build-able, easily
install-able Axiom for yesterday, then delete this message now.
* Better integration to existing environments
The build system in trunk isolates itself from existing environments.
This is not good for porting Axiom to other platforms yesterday or today.
We should not ignore Make. It is not the best possible build tool
one can imagine. But it is the best almost universally available
build tool we have today. We must make a good use of Make, now. This
requires that, for example, tools we built should return meaningful
exit status.
* Modularize, generalize, abstract -- don't over abstract
The current build system uses long list of special cases, and
duplication of logic. That approach cannot scale. Following
Doug McIlroy [1], we should aim for portability by:
+ modularization
+ generalization
Autoconf has well thought out, widely tested, proven technology to
subsume many of the special casings and guesses found in current
build system. To master the recalcitrant residue, build-improvements
uses "specializations (freezing certain parameter values)". This
is accomplished by the Ershovian specializer `configure'. Concretely,
build-improvements instantiate the actual Makefiles at configure-time.
* Automate as much as possible
We should take advantage of tools to systematically carry out
repetitive tasks, ensuring integrity. Build-improvements improved
Boot to help systematize checking of Boot code dependencies, and generating
type information for Lisp systems that care about proclamation.
[1] http://www.haskell.org/pipermail/hugs-users/2006-January/000621.html
-- Gaby
- [Axiom-developer] Build machinery -- an overview,
Gabriel Dos Reis <=