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,
\x
followed by two hexadecimal digits and\
followed by three octal digits now encode an individual byte, rather than a codepoint. -
Using a lone
try
withoutexcept
orfinally
is 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 newtmp
command instead (e.g.tmp a = foo; echo $a
). -
The clause to catch exceptions in the
try
special command is now spelt withcatch
; the old keywordexcept
is 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
tmp
special command for doing temporary assignments. -
A new
defer
command to schedule a function to be run when the current closure finishes execution. -
A new
call
command to call a command, using a list for and a map for options. -
A new
$unix:rlimits
variable allows manipulation of resource limits.