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

**URL:** <https://discourse.julialang.org/t/are-julia-internals-documented-in-depth-somewhere-or-we-need-to-read-source-code/43379>\
**Category:** Internals & Design\
**Created:** [July 20, 2020, 2:55pm UTC](https://discourse.julialang.org/t/are-julia-internals-documented-in-depth-somewhere-or-we-need-to-read-source-code/43379 "2020-07-20T14:55:09Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![KZiemian](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kziemian/32/9020_2.png) [@KZiemian](https://discourse.julialang.org/u/KZiemian)\
**Post date:** [July 20, 2020, 2:55pm UTC](https://discourse.julialang.org/t/are-julia-internals-documented-in-depth-somewhere-or-we-need-to-read-source-code/43379/1 "2020-07-20T14:55:10Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [July 20, 2020, 3:01pm UTC](https://discourse.julialang.org/t/are-julia-internals-documented-in-depth-somewhere-or-we-need-to-read-source-code/43379/2 "2020-07-20T15:01:15Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![dpsanders](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dpsanders/32/3573_2.png) [@dpsanders](https://discourse.julialang.org/u/dpsanders)\
**Post date:** [July 20, 2020, 5:52pm UTC](https://discourse.julialang.org/t/are-julia-internals-documented-in-depth-somewhere-or-we-need-to-read-source-code/43379/3 "2020-07-20T17:52:57Z")

</div>

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

> **[Get started with Julia](https://julialang.org/learning/)**
>
> The official website for the Julia Language. Julia is a language that is fast, dynamic, easy to use, and open source. Click here to learn more.

---

<div class="post-metadata">

**Author:** ![KZiemian](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kziemian/32/9020_2.png) [@KZiemian](https://discourse.julialang.org/u/KZiemian)\
**Post date:** [July 20, 2020, 11:04pm UTC](https://discourse.julialang.org/t/are-julia-internals-documented-in-depth-somewhere-or-we-need-to-read-source-code/43379/4 "2020-07-20T23:04:31Z")

</div>

> [@Tamas\_Papp](#):
>
> Regarding teaching materials: are you teaching a course on the internals of Julia?

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.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [July 21, 2020, 5:57am UTC](https://discourse.julialang.org/t/are-julia-internals-documented-in-depth-somewhere-or-we-need-to-read-source-code/43379/5 "2020-07-21T05:57:48Z")

</div>

> [@KZiemian](#):
>
> and other irrational numbers. Such information can make real world difference in my case

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](https://docs.julialang.org/en/v1/manual/constructors/#Case-Study:-Rational-1) 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.
