Skip to content

v0.19.46

Compare
Choose a tag to compare
@fonsp fonsp released this 16 Aug 08:28

Try this release in your browser! (Available 30 minutes after the release)

Binder logo

Generate your own binder links using pluto-on-binder.glitch.me!

Comment

This is the fastest version of Pluto ever! This release optimises the overhead of Pluto: the extra time it takes to run a cell (on top of the time that your codes takes). You mostly notice this overhead for large notebooks (>100 cells), and when using @bind.

The overhead in Pluto 0.19.46, compared to the previous version, is:

  • 2x lower on a notebook with 100 cells
  • 5x lower on a notebook with 200 cells
  • 40x lower on a notebook with 500 cells

This means that notebooks with >500 cells are super snappy again! A notebook with 500 cells can do a reactive run in 20ms, this used to take 1 second.

I also tested some old Pluto versions. The overhead in Pluto 0.19.46 is 1.6x lower than any previous Pluto version from the past 2 years.

Performance improvements

  • Speedup large notebooks: fix cache miss in notebook_to_js (#2973) (@fonsp)
  • Optimize deep_enough_copy for faster notebook updates (#2974) (@fonsp)
  • Speedup large notebooks: cache cell dependencies in notebook_to_js (#2976) (@fonsp)
  • Backend performance: delete stale connections (#2977) (@fonsp)
  • Performance: state update throttle rework (#2979) (@fonsp)
  • Performance: skip background status sync throttle during reactive run (#2981) (@fonsp)
  • Properly cache some useEffects (#2995) (@fonsp)
  • Substantial slowdown (>x10) opening large notebooks starting from version 0.19.37 (#2958)
  • Performance: throttled status update loop impacts performance on large notebooks (#2978)

New features

  • Add support for custom name in @progress (ProgressLogging.jl) (#2966) (@disberd)

Accessibility improvements

  • Keyboard navigation for interactive array viewer (#2996) (@fonsp)

Fixes

  • Pkg complete_remote_package Julia 1.11 compat (#2975) (@fonsp)
  • Fix state out of sync issue caused by race condition (#2989) (@fonsp)
  • Fix macroexpand on Julia 1.11 (#3000) (@fonsp)
  • Too many intermediate bond values (#1891) (#2992) (@fonsp)
  • Infinite stalls on bonds when computer is very fast (#2557)
  • All cells appear as running when executing the notebook the first time (#2755)
  • Open button doesn't work on Windows (#2762)
  • Don't clear main menu file picker on blur (#2990) (@fonsp)
  • IOContext not properly set for stdout, disables ANSI colors (#2823) (#2824) (@danielwe, @ReubenJ)
  • Cell running forever (#2904)
  • Warning in terminal with Base.Threads.@threads and Plots.@gif and Plots.@Animate macros on Julia 1.11 (#2907)
  • BitIntegers does not work in Julia 1.11 (#2984)
  • @bind inside table always renders in "Safe Preview" mode (#2994)

Internal changes

Diff since v0.19.45