Just in general on this topic: build system has several distinct uses.

1. For ordinary users downloading the source.
The build has to work from scratch. Since everything has to
be built, we don't need to bother with dependency checking.

2. For ordinary users upgrading from source (GitHub).
Typically this should do some dependency checking to speed
up the build, but it isn't critical.

3. For developers working on Felix.
This is the most painful, since we want to rebuild only those things
we're interested in at the time. Even if some detail of some tool
changes due to an edit, whilst debugging our small area of Felix
we just don't care to rebuild everything.

The current build system has two phases: first we build using
fbuild/python and this also needs Ocaml for the compiler.

Then we rebuild everything, but this time using the Felix build
tools built using the previous step.

Generally this rebuild is enough for debugging and testing
as well as upgrading. however it can sometimes be overly
conservative and build too much, and it can also break
if build tools themselves become out of date: then you're trying
to build new build tools with the old build tools and it just
might not work. If a file is hard coded and you reorganise
the file layout, it won't work (even if you adjusted the build
tool sources).

There are various "escapes" that allow shortcutting the
rebuilding or backtracking further in the bootstrapping
process if something breaks. For example to run a new
version of a build tool you can just run "flx" on the source
instead of the old binary, but clearly this won't work if 
"flx" itself is the problem. In the worst case you have
to go back to the full bootstrapping process using fbuild/python.

I'm working to improve this (because I have a slow machine
and I have to live with 4 hour build/test cycles sometimes).
But of course its just one of hundreds of things that could
use more people working on them :)


--
john skaller
skal...@users.sourceforge.net
http://felix-lang.org




------------------------------------------------------------------------------
Android apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience.  Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to