Are Julia internals documented in depth somewhere or we need to read source code?

Recently I need to check some properties of functions from Julia Base that was not mentioned in documentation. In such situation I know that few possible way to find answer.

  1. Read blog post/watch JuliaCon talk about this subject. But, you don’t know if they exists.
  2. Post your problem on Julia Discourse.
  3. Figure it out by try-and-error method.
  4. Read source code.

Now I wonder, are Julia internals documented in depth outside source code? Or the only documentation is source code and commentaries in it?

Also, about point 1. Does anyone fill that many valuable Julia teaching materials are scattered across internet? Or I just don’t know where to look for?

The manual has a “Developer documentation” section about some internals, otherwise it is the source code.

Finding related PRs is usually helpful in uncovering motivation, see the “blame” feature on Github.

Asking here should be fine.

Regarding teaching materials: are you teaching a course on the internals of Julia?


Yes it does seem that some useful Julia teaching materials are a bit scattered.
But there is also an effort to list them at


Unfortunately, for such valuable curse someone much better than me is needed. This remarks was prompted by my recent discover of blog post about implementation of \pi in Julia and problem with finding analogous material about e = 2.7182\ldots and other irrational numbers. Such information can make real world difference in my case, so colleting such blog posts (if they exists) will be very hand.

1 Like

Are we still talking about teaching? FWIW, in an intro course I would

  1. either not focus on Irrational (just use π etc and accept that they work fine), or
  2. discuss the implementation of Irrational in detail (but note that Rational, already discussed in the manual, may be a much better example).

Again, there is nothing special about Irrational in Julia. Just reading the case study for rational should clarify what it takes to implement your own number type. I am not sure that Irrational warrants a separate explanation, it is mostly analogous.