This is still a WIP, and can definitely use some more work in 1) testing on other platforms 2) better disentangling of documentation 3) advice on how better to accomplish it's goals. 4) testing with different subsets of functionality turned on (I've tested just with BUILD_FULL disabled ("lite" version), or enabled (same as master) so far.
This branch (spj/lite in ScottPJones repository, https://github.com/ScottPJones/julia/tree/spj/lite) by default will build a "lite" version of Julia, and by putting override BUILD_xxx = 1 lines in Make.user, different functionality can be built back in (such as BigInt, BigFloat, LinAlg, Float16, Mmap, Threads, ...). See Make.inc for the full list. I've also made it so that all unit tests pass (that don't use disabled functionality). (the hard part there was that testing can be spread all over the place, esp. for BigInt, BigFloat, Complex, and Rational types). It will also not build libraries such as arpack, lapack, openblas, fftw, suitesparse, mpfr, gmp, depending on what BUILD_* options have been set. This is only a first step, the real goal is to be able to have a minimal useful core, that can have the other parts easily added, in such a way that they still appear to have been defined completely in Base. One place where I think this can be very useful is for building minimal versions of Julia to run on things like the Raspberry Pi. -Scott