Log message:
shells/elvish: update to 0.18.0
v0.18.0
-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 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.
v0.17.0
Breaking changes
-Attempting to assign to a read-only variable (e.g. set nil = x) is now a
compile-time error rather than an exception.
Deprecated features - Deprecated features will be removed in 0.18.0.
The following deprecated features trigger a warning whenever the code is parsed
or compiled, even if it is not executed:
-The dir-history command is deprecated. Use store:dirs instead.
-The legacy assignment form is deprecated. Depending on whether the left-hand
variable already exists or not, use var or set instead. Use the upgrader to
migrate scripts.
-The lambda syntax that declares arguments and options within [] before { has
been deprecated. The new syntax now declares arguments and options within a
pair of |, after {. Use the upgrader to migrate scripts. See (#664).
-Use of the special namespace local: is deprecated.
-If you are using local: to reference variables (e.g. echo $local:x),
local: is never necessary in the first place since Elvish always resolves
local variables first, so just remove it.
-If you are using local: when assigning variables (e.g. local:x = foo),
local: makes sure that a new variable is created; use the var special
command instead.
-Use of the special namespace up: is deprecated.
-If you are using up: to access a non-shadowed variable in an outer scope,
up: is not necessary; just remove it.
-If you are using up: to access a shadowed variable in an outer scope, rename
the variables to have different names.
-Use of a leading empty namespace in a variable name (e.g. $:x) is deprecated.
Since $:x is always equivalent to $x anyway, just remove the : prefix.
Notable new features
New features in the language:
-A new special command pragma. The only supported pragma now is unknown
command; using pragma unknown command = disallow turns off the default
behavior of treating unknown commands as external commands.
-A new special command coalesce.
New features in the interactive editor:
-Editor modes now form a stack, instead of being mutually exclusive.
For example, it is now possible to start a minibuf mode within a completion
mode, and vice versa.
New features in the standard library:
-The store: module now exposes all functionalities of Elvish’s persistent store.
-New compare command to compare numbers, strings, and lists (#1347), in a
consistent way as the order builtin.
-The range command now supports counting down.
Performance improvements:
-The overhead of executing pipelines consisting of a single form (i.e. a simple
command with no pipes) has been reduced. A code chunk containing just nop
command now executes 4 times as fast as before. Thanks to kolbycrouch for
suggesting this optimization!
For changes between 0.16.1 and 0.17.0 check https://elv.sh/blog/
|