Salutations \o
IJulia.jl has been around forever, but v1.30 was just been released and it’s quite a big one so I felt it deserves an announcement post.
The main change in this version is that the internals have been completely refactored to allow:
- Full tests of the eventloop for the first time.
- A precompilation workload to improve TTFX.
With luck you may notice a slight improvement to kernel TTFX with the precompile workload, and with some inference improvements we made to make precompilation more effective. While there is no breaking change to the public API it’s possible that some packages depend on internals and will break (e.g. please use ProgressMeter.jl 1.11). For this reason please look out for any strange behaviour of IJulia or other packages running in IJulia since it may be a bug caused by all the refactoring.
And lots of credit goes to everyone who helped out with the refactor, particularly @stevengj, @Mason, and @halleysfifthinc
If you haven’t kept up to date with IJulia recently you might want to check out the changelog to see what’s changed. Some notable improvements in previous versions from this year are:
- A deadlock was fixed that would cause the IJulia kernel to hang when shutting down (v1.28.1).
- IJulia doesn’t hardcode a path in the kernel files now so it’s possible to use whatever IJulia version is installed in a notebook environment instead of the global environment (v1.28.0).
- IJulia kernels previously weren’t shut down properly when exiting
notebook()
orjupyterlab()
, now they are (v1.29.0). notebook()
andjupyterlab()
now support passingverbose=true
to show the command output, and passing arguments to their underlying command (v1.29.0).