This month in Julia world - 2023-10

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.

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

Core Julia Repos:

  • Precompile files (i.e. the cache files containing the compiled machine code, usually stored in a hidden .julia folder, and which are the recent solution to the TTFX problem) are now relocatable. This is a prerequisite for future endeavors like distributing precompiled files so that users do not need to compile installed libraries themselves.
  • There has been work for a while to support alternative Garbage Collectors in Julia. An official interface for hooking up such alternatives is now in a draft state.
  • libffi is a library that lets you call functions “compiled by someone else” in runtime, without needing a compiler/linker. It is particularly useful for interpreters that might want to call into a C library without access to a compiler. This draft PR explores using libffi in compiler-less sessions of the Julia interpreter for ccall support.
  • AnnotatedStrings is now merged!!! It was a grueling endeavor, but thanks to @tecosaur we now have support for wonderfully richly formatted strings in base julia (in the terminal and beyond).
  • Julia is transitioning to LLVM 16. The last step is still pending. Relatedly, LLVM 16 is now being build and made available in Yggdrasil, Julia’s repository of compiled external packages.
  • An interesting new optimization in the compiler which might be a good spot for newbies to learn more about how optimizations are written in Julia itself. This new one simplifies try-catch blocks if it can prove that no exceptions can be triggered.

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

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.
  • There is an irregular “Julia Gender Inclusive Community Hour”, frequently with very interesting technical presentations. Consider clicking “watching” on these Discourse threads for future announcements.

Sundry:

  • Ousterhout’s dichotomy is a useful to know principle that Julia proves to be a fallacy. It distinguishes scripting languages from systems languages, i.e. another name for the two-language problem.

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.

113 Likes

As always, an awesome update on Julia again. Thank you!

4 Likes