Skip to content

Releases: fonsp/Pluto.jl

v0.19.46

16 Aug 08:28
Compare
Choose a tag to compare

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

v0.19.45

16 Jul 10:07
Compare
Choose a tag to compare

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!

Fixes

  • Firefox stuck with 0.19.44 (#2959)

Diff since v0.19.44

v0.19.44

15 Jul 20:22
Compare
Choose a tag to compare

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!

New features

Fixes

  • autocomplete: defer string check to when completion is applied (#2946) (@Pangoraw)
  • Fix HTTP error messages: "Server never wrote a response" (#2734) (#2931) (@fonsp)
  • auto Pkg manager fails when using JULIA_DEPOT_PATH different from default ".julia" (#2586)

Internal changes

  • Support mixed use of _ and - in launch parameter HTML attributes (#2953) (@fonsp)
  • Bump braces, babel-jest and jest in /test/frontend (#2934) (@dependabot[bot])
  • Bump ws from 6.2.2 to 6.2.3 in /frontend-bundler (#2938) (@dependabot[bot])
  • fix compiler options test windows Julia 1.11 (#2956) (@fonsp)
  • Fix CI on macos Julia 1.6 (#2957) (@fonsp)

Diff since v0.19.43

v0.19.43

25 Jun 11:16
Compare
Choose a tag to compare

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!

New features

  • ⌨️ Keyboard shortcut for folding cell (#2922) (#2917) (@fonsp)
  • Add featured notebooks from plutojl.org/en/docs (#2927) (@fonsp)
  • 🐑 Better error message when package fails to load (#2925) (@fonsp)
  • Message "πŸ‘€ Reading hidden code" (#2920) (@fonsp)
  • Capture IO from Pkg.rm (#2924) (@fonsp)

Fixes

  • Julia 1.11 compat: Use Base.BufferStream for capturing Pkg IO (#2915) (@fonsp)
  • Julia 1.11 beta MemoryRef bounds violation (#2910)
  • Packages do not update (Safari) (#2918)

Internal changes

  • Bump follow-redirects from 1.15.0 to 1.15.6 in /frontend-bundler (#2851) (@dependabot[bot])
  • CI: upgrade some actions (#2923) (@DilumAluthge)
  • πŸ“ƒ WS message log for debugging (#2926) (@fonsp)
  • Bump braces from 3.0.2 to 3.0.3 in /frontend-bundler (#2937) (@dependabot[bot])
  • JS API: support metadata API in static preview (#2914)

Diff since v0.19.42

v0.19.42

08 May 09:10
Compare
Choose a tag to compare

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!

New features

  • Rework horizontal spacing code to better support embedded notebooks (#2903) (@fonsp)
  • Font sizing rework (#2896) (@fonsp)
  • Give "Loading more cells..." lots of vertical space so scroll restoration works better on Firefox (#2901) (@fonsp)

Performance improvements

  • Try to add already installed versions of packages with Pkg.PRESERVE_ALL_INSTALLED (#2902) (@fonsp)

Fixes

  • Disable fake CM on firefox to fix highlighting in PDF export (#2900) (@fonsp)
  • Fix disappearing frontmatter entries (#2909) (@fonsp)

Internal changes

  • Use ch CSS unit to simplify awesome_line_wrapping CM plugin (#2899) (@fonsp)
  • Bump ejs from 3.1.7 to 3.1.10 in /frontend-bundler (#2906) (@dependabot[bot])

Diff since v0.19.41

v0.19.41

15 Apr 09:46
Compare
Choose a tag to compare

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!

Big release! This release includes many improvements to autocomplete, which will soon be enabled automatically as you type! To preview this feature today, open a notebook, then press F12 to open the Firefox/Chrome dev tools, then Console, and then type PLUTO_TOGGLE_CM_AUTOCOMPLETE_ON_TYPE(true). πŸ™‹ Please let us know what you think! Is the autocomplete-on-type good enough to be enabled by default for everyone?

New features – autocomplete

  • Autocomplete 15x faster (#2857) (@fonsp)
  • Autocomplete: improve keyword argument completions (#2863) (@fonsp)
  • No autocomplete in do arguments and variable names (#2872) (@fonsp)
  • ⚑️ Autocomplete latex and emoji super fast (#2876) (@fonsp)
  • Autocomplete: stop at a keyword (#2877) (@fonsp)
  • Autocomplete improvements (#2843) (@fonsp)
  • Allow autocomplete in strings and comments with (#2892) (@fonsp)
  • Completion in function arguments doesn't work in julia 1.9 (#2629)
  • Autocomplete "Operators" wrong for package entries (#2865)
  • Don't show anon functions in autocomplete (#2866, #2870) (@fonsp)
  • Autocomplete: select completion with comma key (#2871)
  • Autocomplete: show exported fields first when listing everything (#2873)
  • Autocomplete: disable inside comments (#2879)

New features

  • ⚑️ AbstractPlutoDingetjes.Display.with_js_link to request calculations and data from Julia dynamically (#2726, #2780) (@fonsp)
  • Show task failures in red in Status tab (#2858) (@fonsp)
  • Add copy button for markdown code blocks (#2668, #2799) (@chayandatta)

Performance improvements

  • Faster page load: delay rendering codemirror until in view (#2885) (@fonsp)
  • Static HTML: faster page load by preloading statefile (#2887) (@fonsp)
  • Show progress bar earlier during load (#2889) (@fonsp)
  • Fix broken editor.js prefetch (#2890) (@fonsp)

Fixes – Julia compatibility

  • call _get_registries() in __init__ of PkgCompat.jl (#2815) (@j-fu)
  • PlutoRunner.jl use take!(::IOBuffer) instead of resize! (#2828) (@fonsp)
  • Fix method tables in Julia 1.12 (#2841) (@fonsp)
  • Fix similar docs search on Julia 1.11 (#2842) (@fonsp)
  • Fix misaligned line numbers + line wrapping in PDF output (#2848) (@fonsp)
  • Fix Julia 1.11 Pkg tests (#2860) (@fonsp)
  • Precompilation problem on 1.11 with complete_remote_package (#2810)
  • Method table test failures on Julia nightly (#2840)
  • ERROR: Failed to precompile Pluto on Julia Nightly version 1.12.0-DEV (#2847)
  • Cannot use Pluto with Julia 1.11 (alpha2) (#2854)

It is taking a lot of work to make Pluto compatible with the latest Julia releases... And tests are still failing on Julia 1.11, frustrating!

Fixes

Internal changes

  • Save HTML snapshots of all backend test notebooks (#2861) (@fonsp)
  • Disable Julia nightly tests (#2867) (@fonsp)
  • Update codemirror to latest versions (#2874) (@fonsp)

Diff since v0.19.40

v0.19.40

26 Feb 12:21
Compare
Choose a tag to compare

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!

Fixes

  • misplaced action button on 0.19.39 in Firefox and Safari (#2825)
  • Hide bottom row of pixels from export background when minimized (#2826) (@ctrekker)

Diff since v0.19.39

v0.19.39

21 Feb 10:18
Compare
Choose a tag to compare

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!

New: stack trace display!

image

New features

  • 🧾 Stack traces: code preview, URL, truncated, design (#2813) (@fonsp)
  • Add css for <details> / <summary> (#2814) (@genericallyterrible)
  • Stacktraces: shorter for macro expansion and @Kwargs in Julia 1.10 (#2812) (@fonsp)
  • Detect when MathJax 2 was loaded before Pluto tries to load MathJax 3 (#2803) (@fonsp)

Fixes

  • Fix EvaluationOptions docstring to reflect current behaviour (#2800) (@christiangnrd)
  • Fix horizontal overflow in tables on Firefox (#2805) (@fonsp)
  • fix(dialogs): backward compatible dialog usage (#2816) (@pankgeorg)
  • "Disable cell" has no effect (#2801)
  • Nightly tests: overload of Base function not recovered (#2806) (#2807) (@fonsp)
  • The "Notify when done" checkbox can't be checked (#2809)
  • Render diagnostics only for actual syntax error (#2819) (#2820) (@Pangoraw)

Internal changes

  • Move code to PlutoDependencyExplorer.jl repo (#2777) (@fonsp)

Diff since v0.19.38

v0.19.38

01 Feb 15:43
Compare
Choose a tag to compare

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!

Fixes

Internal changes

Diff since v0.19.37

v0.19.37

23 Jan 14:31
Compare
Choose a tag to compare

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!

Two new packages!

We just released two new packages! πŸŽ‰

Both packages are quite small and load fast, with minimal dependencies. The packages were part of Pluto's source code, but we decided to release them separately so that they can be used in other projects!

Learn more in the blog post.

New features

  • ⌨️ Keyboard shortcut Alt-Arrow to move cells (#2760) (@fonsp)
  • Enable Malt.jl by default on all systems (#2767) (@fonsp)
  • Make #id URLs work by setting the location.hash again after all cells are rendered (#2789) (@fonsp)
  • Secret function PLUTO_TOGGLE_CM_SPELLCHECK to enable spellchecking in codemirrors (#2788) (@fonsp)
  • Make cell context menu tab-friendly (#2759) (@fonsp)
  • πŸ—£οΈ Screen reader support for reactive output changes (#2757) (@fonsp)
  • Statefile download progress bar improvements (#2790) (@fonsp)
  • Warn when generating HTML with large baked statefile (#2783) (@fonsp)
  • Add heap size hint (#2774) (@kirill-kondrashov)

Performance improvements

  • Move precompile statements to PlutoRunner (#2778) (@Pangoraw)
  • ◐ Spin Pkg terminal spinners with CSS for performance (#2787) (@fonsp)

Fixes

  • Misc ARIA improvements (#2766) (@fonsp)
  • Make global progress bar hidden from screen readers (#2758) (@fonsp)

Internal changes

Diff since v0.19.36