# This month in Julia world - 2024-07

**URL:** https://discourse.julialang.org/t/this-month-in-julia-world-2024-07/117843
**Category:** Newsletter
**Created:** [August 5, 2024, 3:09pm UTC](https://discourse.julialang.org/t/this-month-in-julia-world-2024-07/117843 "2024-08-05T15:09:38Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Krastanov](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/krastanov/32/6817_2.png) [@Krastanov](https://discourse.julialang.org/u/Krastanov)
#### Post date: [August 5, 2024, 3:09pm UTC](https://discourse.julialang.org/t/this-month-in-julia-world-2024-07/117843/1 "2024-08-05T15:09:38Z")

</div>

A monthly newsletter, mostly on julia internals, digestible for casual observers. A biased, incomplete, editorialized list of what I found interesting this month, with contributions from the community.

JuliaCon2024 happened this month and some of the entries below refer to talks from the conference. Cleaned up recordings will be up on Julia’s Youtube channel in the next months, but for now you can look at the [unprocessed live recordings](https://www.youtube.com/@TheJuliaLanguage/streams) and find the timestamps for a given talk yourself. The schedule of all talks is on [pretalx](https://pretalx.com/juliacon2024/schedule).

“Internals” Fora and Core Repos (Slack/Zulip/Discourse/Github):

- Julia’s capabilities to produce small compiled binaries have progressed significantly. See this [PR](https://github.com/JuliaLang/julia/pull/55047), and [this talk](https://pretalx.com/juliacon2024/talk/FUTLND/) by Jeff and Gabriel at JuliaCon2024
- Julia has a lot of impressive SIMD-focused libraries. At the JuliaCon hackathon work started on support for [SIMD intrinsics in base Julia,](https://github.com/JuliaLang/julia/pull/55118) which can potentially help future work on the aforementioned libraries and more.
- Updating Julia to use LLVM 18 is [nearly merged](https://github.com/JuliaLang/julia/pull/54848).
- Many conversations on custom optimizations and compiler passes happened at JuliaCon. This [work on agressive recursive constant-propagation](https://github.com/JuliaLang/julia/issues/55100) is one example, mentioned on [slack](https://julialang.slack.com/archives/C67910KEH/p1720647189026709).
- People that compile Julia themselves, now have the option to run pretty aggressive optimizers (profile-guided, link-time, and the new [LLVM BOLT optimizer](https://github.com/JuliaLang/julia/pull/54107)). See the [NEWS](https://github.com/JuliaLang/julia/pull/55282/files) entries on the topic.
- Exciting work on the [`map` and `reduce` families of functions in Julia](https://github.com/JuliaLang/julia/pull/55318), addressing a ton of technical debt.
- JuliaCon talk: [The State of Julia](https://pretalx.com/juliacon2024/talk/3EZMQM/)
- JuliaCon talk: [Adventures in Julia IR: Plundering Core.Compiler](https://pretalx.com/juliacon2024/talk/D3H79J/)
- JuliaCon talk: [Compiler plugins and non-native execution caching](https://pretalx.com/juliacon2024/talk/D88XFU/)
- JuliaCon talk: [`Memory` in Julia](https://pretalx.com/juliacon2024/talk/CYJ7V7/)
- JuliaCon talk: [App support in Pkg](https://pretalx.com/juliacon2024/talk/UKX9BF/)
- JuliaCon talk: [ScopedValues – What are they good for](https://pretalx.com/juliacon2024/talk/FR8MVT/)
- JuliaCon talk: [The `public` keyword and how public APIs work in Julia](https://pretalx.com/juliacon2024/talk/KGQ8KL/)
- JuliaCon talk: [BinaryBuilder 2: Return of the Compilers](https://pretalx.com/juliacon2024/talk/EJVFMF/)
- JuliaCon talk: [Dude, where’s my code?](https://pretalx.com/juliacon2024/talk/HRRRET/) (about code provenance and lowering)
- JuliaCon talk: [Julia Compiler Secrets - Static Analysis](https://pretalx.com/juliacon2024/talk/UTGSDT/)
- JuliaCon talk: [Interfaces.jl: base and package interface tests for your objects](https://pretalx.com/juliacon2024/talk/GXWLAW/)
- JuliaCon talk: [Writing allocation-free Julia code with AllocCheck.jl](https://pretalx.com/juliacon2024/talk/EJXYNM/)

Dustbin of History:

- An [interesting discussion](https://github.com/JuliaLang/julia/issues/30845) on the differences between scalar indexing, non-scalar indexing, and broadcasting, and how there are still a few places where the Julia broadcasting and indexing APIs can evolve.

In search of contributors and new maintainers (specify novice/moderate/expert and internals/domain background necessary):

- The Center for Quantum Networks is running [many bounties and minigrants](https://github.com/QuantumSavory/.github/blob/main/BUG_BOUNTIES.md) on a variety of support packages for quantum information science.
- [SciML is running a large set of funded small projects](https://sciml.ai/small_grants/) – a great opportunity to contribute to the community and be paid for it.
- ChainRules, a foundational package to the Julia autodiff effort is looking for a [new primary maintainer](https://discourse.julialang.org/t/chainrules-project-looking-for-a-new-primary-maintainer/115636).

Ecosystem Fora, Maintenance, and Colab Promises (Slack/Zulip/Discourse/Github):

- The journey for Sum Types or ADTs and maybe pattern matching in Julia continues with [DynamicSumTypes.jl](https://discourse.julialang.org/t/ann-dynamicsumtypes-jl-v3/116741) and [Moshi.jl](https://discourse.julialang.org/t/ann-moshi-v0-3-the-next-gen-mlstyle-gadt-extensible-pattern-matching-and-more/117613). My read on these development is that DynamicSumTypes provides the simplest way to hook many pre-existing types into a simple sum type in order to avoid runtime dispatch. Such runtime dispatch is frequently the cause of severe slowdown when iterating over arrays containing elements of many diverse types (i.e. a large `Union{...}` type) as the compiler and type inference give up. Because of this I think of DynamicSumTypes as “union splitting on steroids”. Moshi is more of a first-principles deep dive into all of the compiler theory and type theory necessary to bring the full richness of a ADTs and pattern matching to julia, with a lot of introspection among the authors about what worked and did not work in previous attempts.
- A neat Makie recipe for labeled arrays (arrays in which different dimensions have descriptive metadata) was [shared on slack](https://julialang.slack.com/archives/C8RQUU2KH/p1720473337380729). Implemented [here](https://github.com/JuliaAPlavin/AxisKeysExtra.jl/blob/master/ext/MakieExt.jl) if you would like to avoid the slackhole.
- A [slack discussion](https://julialang.slack.com/archives/C6FGJ8REC/p1720688119964779) on how Julia’s BinaryBuilder and the Pkg.jl upcoming app support can be a full-fledged distro package manager, together with a mention of the pre-existing RunBinary.jl and ygg which can be used today for the same purpose.
- [Python.jl](https://pretalx.com/juliacon2024/talk/ZH3JN3/) is an unholy way to run a REPL that is both Python and Julia at the same time. For the naysayers, Python also has a [multiple dispatch library](https://pypi.org/project/multipledispatch/)
- zotero [Slack](https://julialang.slack.com/archives/C67910KEH/p1722333675465019)
- [`print` vs `show` vs `show` with MIME](https://discourse.julialang.org/t/print-vs-two-argument-show-repr-vs-three-argument-show-repr-with-mime-text-plain/117790) – how to properly pretty-print in Julia.
- JuliaCon talk: [Infiltrator.jl - No-Overhead Breakpoints in Julia](https://pretalx.com/juliacon2024/talk/STRAXA/)
- JuliaCon talk: [Train a Llama(2) in Julia!](https://pretalx.com/juliacon2024/talk/ZSHGHJ/)
- JuliaCon talk: [What’s next for Transducers.jl?](https://pretalx.com/juliacon2024/talk/FJMTXH/)
- JuliaCon talk: [Updates and Advances in CUDA.jl and oneAPI.jl](https://pretalx.com/juliacon2024/talk/GGQFJR/)
- JuliaCon talk: [Applications of Distributed Task Parallelism](https://pretalx.com/juliacon2024/talk/XJFGYJ/)

Notes from other ecosystems:

- A cute little RPG story game / set of tutorials to learn [how dangerous multithreading can be](https://deadlockempire.github.io/).

Soapboxes (blogs/talks):

- Consider subscribing to the [French community newsletter](https://pnavaro.github.io/NouvellesJulia/) (much of the shared materials are in English).
- Consider subscribing to the [community calendar](https://julialang.org/community/#events) to be informed of upcoming virtual meetings and talks.
- Consider attending the triage meetings of the julia core contributors (organized on slack) – being a fly on the wall can be a great way to learn the nitty-gritty details of current priorities and development work. These are organized on the triage channel in slack. [Minutes are kept](https://hackmd.io/@LilithHafner/HJaw__uMp).

Sundry:

- [JuliaDynamics is starting a monthly meetup](https://discourse.julialang.org/t/monthly-meetups-kickstart-juliadynamics-and-beyond/117359).

Please feel free to post below with your own interesting finds, or in-depth explanations, or questions about these developments.

If you would like to help with the draft for next month, please drop your **short** , **well formatted** , **linked** notes in [this shared document](https://docs.google.com/document/d/1Np1deH_W1o0EO7_tZkScveCLA0XiYg538ceUJs0bFpE/edit). Some of it might survive by the time of posting.

---

<div class="post-metadata">

### Author: ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)
#### Post date: [August 5, 2024, 3:30pm UTC](https://discourse.julialang.org/t/this-month-in-julia-world-2024-07/117843/2 "2024-08-05T15:30:01Z")

</div>



---

<div class="post-metadata">

### Author: ![viralbshah](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/viralbshah/32/54_2.png) [@viralbshah](https://discourse.julialang.org/u/viralbshah)
#### Post date: [August 5, 2024, 5:53pm UTC](https://discourse.julialang.org/t/this-month-in-julia-world-2024-07/117843/3 "2024-08-05T17:53:10Z")

</div>

I suppose there would be a lot of interest in the linked JuliaCon talks - but the videos are not yet available (should be shortly).

---

<div class="post-metadata">

### Author: ![nsajko](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nsajko/32/221187_2.png) [@nsajko](https://discourse.julialang.org/u/nsajko)
#### Post date: [August 5, 2024, 6:01pm UTC](https://discourse.julialang.org/t/this-month-in-julia-world-2024-07/117843/4 "2024-08-05T18:01:20Z")

</div>

> [@Krastanov](#):
>
> Updating Julia to use LLVM 18 is [nearly merged](https://github.com/JuliaLang/julia/pull/54848)

`s/ nearly//`
