Hi all,
Juno 0.12 is out !
Since we have tons of bugfixes and improvements for this release, here I’m going to pick some of the key highlights, but we hope you will like all the improvements and features added
Release notes
New features
- Juno is now able to debug toplevel code, i.e. you don’t need type
Juno.@enter
in REPL anymore ! (Atom.jl#269, atom-julia-client#683, atom-ink#255, atom-ink#256)- You can use
Julia Debug: Run File (Block, Cell)
andJulia Debug: Step Through File (Block, Cell)
commands (or corresponding menus) for debugging whole.jl
file, selected code block, or even a Weave code cell, etc. - (showcase) Debugging toplevel code demo:
- You can use
- QoL improvements on profiler (Atom.jl#244, Juno.jl#463, atom-julia-client#672, atom-ink#247 – we internally use FlameGraphs.jl, thanks @tim.holy for suggesting this collaboration !):
- Lines where dynamic dispatch or garbage collection happened are specially colored (yellow and red, respectively) so that we can find performance pitfalls more easily
- Prunes stacktraces that relate to Juno’s internal tasks by default
- Fixed incorrect inline highlight lengths
- Keyword option control for
@profiler
macro - (showcase) New profiler look example:
- Provides smoother ways to run/debug a file from tree-view. You can use
Julia Client: Run File
,Julia Debug: Run File
andJulia Debug: Run File
commands and the corresponding menus within tree-view (atom-julia-client#684)- (showcase) New tree-view menus look:
- Additional formatting options for JuliaFormatter.jl can be specified via
Julia Options ⟶ Formating Options
config setting (atom-julia-client#682, Atom.jl#259) - Added the
Julia Options ⟶ Format the current editor when saving
config option (atom-julia-client#677) - Code cells are highlighted, and cell detection logic gets improved (atom-julia-client#674, atom-julia-client#675)
- If you don’t like this, head for
UI Options ⟶ Highlight Cells
setting
- If you don’t like this, head for
- The new command
Julia Client: Activate Enviroment In Parent Folder
(orJuno ⟶ Enviroment ⟶ Enviroment in Parent Folder
menu) automatically searches aProject.toml
file up from the current file’s directory and then activate it if exist (Atom.jl#241, atom-julia-client#670) - A terminal instance can be started from the current editor directory via
Julia Client: New Terminal From Current Folder
command (orJuno ⟶ New Terminal ⟶ Current File's Folder
menu) (atom-julia-client#657)
Improvements
- Juno’s REPL and terminal now use WebGL renderer for xtermjs by default, which should bring us a vast improvement for rendering-performance (atom-ink#242, atom-julia-client#660)
- LOTS of improvements around static analysis features (used for
Julia Client: Open Outline Pane
,Julia Client: Goto Symbol
or clicking a name in the workspace view, etc.)- Modules are more correctly detected (Atom.jl#215)
- More memory efficient symbols cache (Atom.jl#219)
- Escape possible danger with recursive
include
loops (Atom.jl#256) - Update to the latest version of CSTParser.jl (Atom.jl#262)
- Show local binding verbatim in completions (Atom.jl#275)
- … and much more (atom-julia-client#643, Atom.jl#205, Atom.jl#206, Atom.jl#208, atom-julia-client#651, Atom.jl#220, Atom.jl#221, Atom.jl#268, Atom.jl#272, Atom.jl#273)
- Performance improvements around Juno’s GUI rendering:
- Improved result animation (atom-ink#244)
- Fixed idle CPU usage with plot open (atom-ink#248)
- Improved mouse clicking behavior on inline results (atom-ink#239)
- Now clicking an inline result with middle-mouse button will clear it
- Fixed text selecting
- Auto completion feature gets enhanced sooooo much:
- General performance improvements (Atom.jl#234)
- Method completions now infer their return types using the current input argument types (Atom.jl#276)
- Lazy return type inference and result caching (Atom.jl#278)
- (showcase) Moar return type inference example:
- Start to support more extensive precompilations (using SnoopCompile.jl), which hopefully gives better first-time invocation speed for various features (Atom.jl#270, Juno.jl#476 – thanks @Amin_Yahyaabadi for taking the initiative on this !)
- Better documentation search (DocSeeker.jl#17, Atom.jl#232, DocSeeker.jl#19)
- Clicking links in a REPL/terminal now needs
ctrl/cmd
modifier as in-editor symbol jump and prevents “random clicking on terminal” from opening a file (atom-ink#251, atom-julia-client#678)- If you don’t like this change, you can restore the previous behavior by turning off the
Julia Client > Terminal Options > Ctrl/Cmd modifier for link activation
config setting:
- If you don’t like this change, you can restore the previous behavior by turning off the
Bugfixes
- Cover edge cases in code block finding logic (atom-julia-client#661)
- Fixed issues around menus (atom-julia-client#671)
- Debug prompt now can accept multi-line expression (Atom.jl#273)
- Fixed focusing behavior with mouse hovering on inline results (atom-ink#245)
Installation
Atom packages
Important : To fully update Atom packages, you need to restart all the previous Atom processes
Install the latest versions of julia-client
and ink
packages:
Close all the Atom windows and type the following command into your terminal:
apm update
If that also doesn’t work (or if you want to only update Juno packages), try the commands below instead:
apm uninstall ink
apm uninstall julia-client
apm install ink
apm install julia-client
Julia packages
Execute the following in a Julia prompt:
pkg> up Atom Juno
Versions
Important : This release requires Atom 1.39, 1.40.1, or higher.
As always, make sure all Julia and Atom packages are up-to-date.
Julia packages:
- Atom.jl version: 0.12.8
- Juno.jl version: 0.8.1
Atom packages:
- julia-client version: 0.12.3
- ink version: 0.12.3
That’s all, thanks !