Which paper(s) to read on Julia design?

I want to get a bit more insight into the design of Julia, including details on the language itself, compiler, code generation, etc. I’m not looking for all the gory details, but just enough to understand better what goes on under the hood and some of the design considerations. I started reading “Julia: A Fast Dynamic Language for Technical Computing” from 2012 and it contain lots of very interesting stuff, but I also see quite a few more recent papers. Is starting at the 2012 one a good option, or is there a lot in there that has been changed or superseded? And any recommendations from the newer ones which highlight important changes since then?

Edit: after the 2012 paper quickly read Julia: A Fresh Approach to Numerical Computing (2015) as it was a bit numerically heave. So far I only scanned Julia: dynamism and performance reconciled by design (2018) and Fast Flexible Function Dispatch in Julia (2018) but those looks pretty interesting as well, will read them tomorrow.

2 Likes

One source you should definitely check out is the blog at The Julia Language Blog. This has a mix of things, but some of them are pretty in depth explanation of internals.
Extensible broadcast fusion
and More Dots: Syntactic Loop Fusion in Julia are two good examples.

2 Likes

Right, I know about the blog and the articles there appear to be quite deeply focused on a single topic and so the opposite of what I’m looking for. But the ones you link can help me get up to speed on broadcasting, of which I know nothing so far.

I had a good time reading Jeff Bezanson’s phd thesis:

My I suggest some posts? (the threads are very interesting in general)

6 Likes

I recommend this one:
http://janvitek.org/pubs/oopsla18b.pdf

My favorites are Julia Subtyping and World Age Optimization. Granted they address only very specific parts of the design, but the in-depth analysis really showcases the considerations and intricacies that go into the language.

1 Like