A monthly newsletter, mostly on Julia internals: a biased, incomplete, editorialized list, with contributions from the community. Subscribe by email on Discourse.
Wonderful learning materials on how to become a Julia compiler hacker (especially the first comment by ToucheSir). discourse
Some musings on support for Interfaces in Julia by Keno, Valentin (of AVR fame), Rafael, and Mark. slack/general
Escape analysis and its potential future use in minimizing allocations briefly discussed. slack/general
Discussion on current options for a trait system in Julia and potential future work (under an ASML job posting on the topic). slack/jobs
Keno discusses the many problems with the --check-bounds flag in julia and first steps in dealing with these issues. github
A long discussion on how to properly define “public” API in a more standardized way. Valentin Sukera wrote a very detailed proposal that generated many downstream ideas. There is no consensus yet, but many fruitful nearterm steps that volunteers can undertake were brought up. github (and a related discussion on discourse and related ideas in this PR)
A discussion on the potential for a stable public API for the effects system in the compiler. slack (and a related discussion on github)
More discussion of SumTypes.jl (and Unityper.jl, and Expronicon.jl) as tools for avoiding boxing and dynamic dispatch when having large unions or arrays of disparate types. (see also: abstract data types, union splitting) zulip
[merged] Claire’s absolutely heroic work on merging the new parser continues is finished (for a certain definition of the word “finished”)!
[draft] For a while now Julia multithreading tasks can switch between different threads (providing for dynamic scheduling), but this also has led to folks having races in their code due to naive thread-local storage setups that are not safe anymore. There is some work on documenting this and providing a best practices guide (blog draft), as well as new neater API.
[dispersed] A lot of small incremental improvements to the garbage collector by doggedly persistent folks. 1, 2, 3, 4, 5
[docs] Documenting the Julia JIT (for the first time?).
Before the recent amazing improvements to TTFX (precompilation caching thanks to pkgimages in Julia 1.9), a lot of work went into potential faster/incremental compilation of sysimages. See Keno’s and Petr’s and Jameson’s work. That work had to be abandoned because of the clashing pkgimage changes, but it might one day be revived. Context: Pkgimages make loading time (i.e. using SomePackage) a bit slower, but make time-to-first-X (a.k.a. TTFX, i.e. the first call to SomePackage.somefunction()) instant. Sysimages make both instant, but are very slow to compile and they set your environment in stone (need recompilation on each Pkg add/update).
For a while there has been a desire to have more detailed “provenance tracking” for low level generated code, i.e. knowing what source code it comes from. With the improvements brought by JuliaSyntax, maybe this can be tackled soon.
A great set of auto differentiation lecture notes including both theory and Julia ecosystem examples. slack
A new, very fast and polished Hidden Markov Chain package. discourse
An alternative to Unitful.jl which is much easier to keep type-stable (units are not encoded in the type). discourse
OpenCV.jl is now maintained by JuliaImages. slack/image-processing
JuliaFolds is maintained again (as JuliaFolds2) and in need of more helpers. zulip
SimJulia is maintained again (under the JuliaDynamics org), renamed to ConcurrentSim. ResumableFunctions is also maintained once again (under the same org).
Jacob Zelko has kicked off monthly JuliaHealth community organization meetings
JuliaCon 2023 is approaching (in July, in person and online). The JuMP-Dev conference and the SciML conference happen concurrently with it.
Chris’s SciML / Digiwell seminar talk “The Continuing Advancements of Scientific Machine Learning (SciML)”
Wonderful little video intro/tutorial by Jacobus on latency in Julia (great for newcomers). discourse or youtube
A blog post on “Modern Julia workflows” is being considered, prompted partially by the video above, currently in a very early draft stage.
JuliaHub is hiring an EDA core system & compiler engineer and a Senior Cloud Engineer.
ASML is hiring an intern to work on trait systems for Julia.
A Pluto Notebook Competition is running the next few weeks, for the best, most engaging example of a Pluto notebook project.
Put changelogs in your package’s documentation! slack thread
You can engage in the discussion of this newsletter on Discourse