f3f9aa54a2
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/ |
||
---|---|---|
.. | ||
ast-ksh | ||
autojump | ||
bash | ||
bash-completion | ||
bash2 | ||
bash2-doc | ||
bosh | ||
dash | ||
eltclsh | ||
elvish | ||
es | ||
esh | ||
fish | ||
git-sh | ||
guile-gash | ||
heirloom-sh | ||
lshell | ||
mksh | ||
nologinmsg | ||
nushell | ||
oksh | ||
osh | ||
pbosh | ||
pdksh | ||
perlsh | ||
posh | ||
rc | ||
rssh | ||
scponly | ||
scsh | ||
shellcheck | ||
standalone-tcsh | ||
starship | ||
static-ast-ksh | ||
static-tcsh | ||
tcsh | ||
xonsh | ||
xsh | ||
zsh | ||
zsh-autosuggestions | ||
zsh-completions | ||
zsh-pure | ||
zsh-syntax-highlighting | ||
Makefile |