ANN: Julia "lite" branch available

546 views
Skip to first unread message

Scott Jones

unread,
Jan 21, 2016, 9:02:50 PM1/21/16
to julia-users
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


Scott Jones

unread,
Jan 29, 2016, 8:03:14 PM1/29/16
to julia-users
I've updated the branch again (after a tracking down and working around an issue introduced with #13412),
had to get that great jb/function PR in!
All unit tests pass.

Jeff Bezanson

unread,
Jan 29, 2016, 11:02:33 PM1/29/16
to julia...@googlegroups.com
This is interesting, and a good starting point for refactoring our
large Base library. Any fun statistics, e.g. build time and system
image size for the minimal version?

cdm

unread,
Jan 30, 2016, 1:14:12 AM1/30/16
to julia-users

Scott Jones

unread,
Jan 30, 2016, 2:17:32 PM1/30/16
to julia-users
Thanks for your interest!
I had to rerun everything since so much has been changing in base (yeah #13412!) recently, but now I've got some new numbers.
(Remember, this still isn't as "lite" as I think it can be made and still be a very useful system)

Julia Version 0.5.0-dev+9834
Commit 7f205e5 (2016-01-30 03:20 UTC)
Platform Info:
  System: Darwin (x86_64-apple-darwin15.4.0)
  CPU: Intel(R) Core(TM) i7-4980HQ CPU @ 2.80GHz
 

✔ /j/julia-lite [spj/lite|✔]
Built doing:
git clone https://github.com/ScottPJones/julia julia-lite ; git checkout spj/lite ; cd julia-lite ; time make
real 28m58.903s
user 26m5.807s
sys 2m11.073s
usr directory -> 167 MB
maxrss() right after start: 113.6 MB
-rw-r--r--  1 scott  staff  23541200 Jan 30 00:07 sys.o

make clean ; make ->

real 5m9.700s

user 5m3.185s

sys 0m4.809s 
 
✔ /j/julia-full [master|✔] 
Built doing:
git clone https://github.com/ScottPJones/julia julia-full ; cd julia-full ; time make
real 44m17.359s
user 72m7.969s
sys 10m52.074s 
usr directory -> 272.4 MB
maxrss() right after start: 189 MB
-rw-r--r--  1 scott  staff  37088452 Jan 30 00:56 sys.o

make clean -> make

real 5m43.646s

user 5m39.142s

sys 0m4.167s 

After a make clean, the full build was about 11% slower, most of the time was actually spent building LLVM on the "Lite" system, and LLVM + all of the big libraries such as BLAS, LAPACK, etc. took most all of the time for a normal build.

Scott Jones

unread,
Jan 30, 2016, 2:17:32 PM1/30/16
to julia-users
Thank you also for your interest!  Pixie also looks interesting, with the (limited - only 1st two arguments, for math operators) polymorphic dispatch, and JITing,
although I think my interest in new Lisps has been caught recently by: 
This looks like it would give Gerrald Sussman what he was pestering Jeff for, after his thesis defense last year 🤓

(There are really too darn many interesting things popping up these days - it's really hard to be able to sleep!)
Thanks for pointing Pixie out!
Reply all
Reply to author
Forward
0 new messages