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.
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
finallyis now forbidden; this does not do anything useful and is almost certainly an incorrect attempt to suppress an exception.
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 new
tmpcommand instead (e.g.
tmp a = foo; echo $a).
The clause to catch exceptions in the
tryspecial command is now spelt with
catch; the old keyword
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
Notable new features
Elvish now ships a builtin language server that can be started with
flag:module for parsing command-line flags.
tmpspecial command for doing temporary assignments.
defercommand to schedule a function to be run when the current closure finishes execution.
callcommand to call a command, using a list for and a map for options.
$unix:rlimitsvariable allows manipulation of resource limits.