This month in Julia world - 2024-07

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 and find the timestamps for a given talk yourself. The schedule of all talks is on pretalx.

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

Dustbin of History:

  • An interesting discussion 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):

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 and Moshi.jl. 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. Implemented here if you would like to avoid the slackhole.
  • A slack discussion 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 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
  • zotero Slack
  • print vs show vs show with MIME – how to properly pretty-print in Julia.
  • JuliaCon talk: Infiltrator.jl - No-Overhead Breakpoints in Julia
  • JuliaCon talk: Train a Llama(2) in Julia!
  • JuliaCon talk: What’s next for Transducers.jl?
  • JuliaCon talk: Updates and Advances in CUDA.jl and oneAPI.jl
  • JuliaCon talk: Applications of Distributed Task Parallelism

Notes from other ecosystems:

Soapboxes (blogs/talks):

  • Consider subscribing to the French community newsletter (much of the shared materials are in English).
  • Consider subscribing to the community calendar 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.

Sundry:

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. Some of it might survive by the time of posting.

81 Likes

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

7 Likes

s/ nearly//

8 Likes