Elvish 0.18.0 release notes

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 without except or finally 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 new tmp command instead (e.g. tmp a = foo; echo $a).

  • The clause to catch exceptions in the try special command is now spelt with catch; the old keyword except 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.