Version 0.18.0 has been released on 2022-03-20, 4 months after 0.17.0, bringing new features and bugfixes.
As usual, prebuilt binaries are offered for most common platforms.
Breaking changes
-
All features deprecated in 0.17.0 have been removed.
-
Within double quotes,
\xfollowed by two hexadecimal digits and\followed by three octal digits now encode an individual byte, rather than a codepoint. -
Using a lone
trywithoutexceptorfinallyis now forbidden; this does not do anything useful and is almost certainly an incorrect attempt to suppress an exception.
Deprecated features
Deprecated features will be removed in 0.19.0.
The following deprecated features trigger a warning whenever the code is parsed or compiled, even if it is not executed:
-
The legacy temporary assignment syntax (e.g.
a=foo echo $a) is deprecated. Use the newtmpcommand instead (e.g.tmp a = foo; echo $a). -
The clause to catch exceptions in the
tryspecial command is now spelt withcatch; the old keywordexceptis deprecated.
Notable bugfixes
-
The output longer than terminal width is now shown fully on Windows Terminal.
-
Changing directories in the navigation mode now correctly runs hooks and updates
$E:PWD.
Notable new features
-
Elvish now ships a builtin language server that can be started with
elvish -lsp. -
A new
flag:module for parsing command-line flags. -
A new
tmpspecial command for doing temporary assignments. -
A new
defercommand to schedule a function to be run when the current closure finishes execution. -
A new
callcommand to call a command, using a list for and a map for options. -
A new
$unix:rlimitsvariable allows manipulation of resource limits.