I haven’t been around quite that long, but here are a few interesting points to look at:
- the first 10-20 commits: basic parser
- beginning of codegen: https://github.com/JuliaLang/julia/commit/17f383fec059f
- beginning of dlopen / ccall support: https://github.com/JuliaLang/julia/commit/18f456233b280f
- beginning of ast translation to C: https://github.com/JuliaLang/julia/commit/89247a6bf2eeb
- beginning of interpreter: https://github.com/JuliaLang/julia/commit/6c2b43c2b3e2986b
You can get a nice view of the earliest history by running git log --follow FILE
(and then shift-G to go to the end).
That said, don’t spend too much time looking at the history. It is an interesting idea as a way to get a handle on small pieces, but much of the code has changed.
A few other comments:
- read the dev docs!
- watch Jeff’s internals talk from 2014. There have been other related talks at JuliaCon since then.
- if you don’t have any compiler background, from personal experience I can recommend not trying to learn compiler theory by osmosis. I wish I had read Appel much sooner than I did. There are many interesting compilations of free resources you will come across on stackexchange/hacker news/etc., and I had read some of those – but frankly there is no substitute for a good book.
- don’t try to learn Lisp/Scheme using flisp. Racket is close enough to be transferrable, but has a more user-friendly environment and many more resources.
(FYI: in the future, please don’t @
-blast people with general questions. It’s kind of bad form)