github.com/elves/elvish@v0.15.0/website/blog/0.15.0-release-notes.md (about) 1 Version 0.15.0 has been released on 2021-01-24, 6 months after 0.14.0, bringing 2 many new features and bugfixes. 3 4 As usual, [prebuilt binaries](https://elv.sh/get) are offered for most common 5 platforms. 6 7 # Breaking changes 8 9 - Builtin functions and subnamespaces of `edit:` are now read-only. 10 11 - Introspection for rest arguments has changed: 12 13 - The rest argument is now contained in the `arg-names` field of a 14 closure. 15 16 - The `rest-arg` field now contains the index of the rest argument, 17 instead of the name. 18 19 - The `-source` command now runs in a temporary namespace and can no longer 20 affect the local scope of its caller. 21 22 - Key modifiers are no longer case insensitive. For example, `Alt` is still 23 recognized but `alt` is not. This makes key modifier parsing consistent with 24 key names. See [#1163](https://b.elv.sh/1163). 25 26 # Deprecated features 27 28 Deprecated features will be removed in 0.16.0. 29 30 The following deprecated features trigger a warning whenever the code is parsed 31 or compiled, even if it is not executed: 32 33 - Using the syntax of temporary assignment (`var=value`) for non-temporary 34 assignment is now deprecated. The syntax is still valid for temporary 35 assignment. For example, using `foo=bar` as a standalone command is 36 deprecated, but using it as part of command, like `foo=bar ls`, is not 37 deprecated. 38 39 - The `chr` command is now deprecated. Use `str:from-codepoints` instead. 40 41 - The `ord` command is now deprecated. Use `str:to-codepoints` instead. 42 43 - The `has-prefix` command is now deprecated. Use `str:has-prefix` instead. 44 45 - The `has-suffix` command is now deprecated. Use `str:has-suffix` instead. 46 47 - The `-source` command is now deprecated. Use `eval` instead. 48 49 - The undocumented `esleep` command is now deprecated. Use `sleep` instead. 50 51 - The `eval-symlinks` command is deprecated. Use `path:eval-symlinks` instead. 52 53 - The `path-abs` command is deprecated. Use `path:abs` instead. 54 55 - The `path-base` command is deprecated. Use `path:base` instead. 56 57 - The `path-clean` command is deprecated. Use `path:clean` instead. 58 59 - The `path-dir` command is deprecated. Use `path:dir` instead. 60 61 - The `path-ext` command is deprecated. Use `path:ext` instead. 62 63 - The `-is-dir` command is deprecated. Use `path:is-dir` instead. 64 65 The following deprecated features trigger a warning when the code is evaluated: 66 67 - Using `:` in slice indices is deprecated. Use `..` instead. 68 69 - The mechanism of assigning to `$-exports-` in `rc.elv` to export variables 70 to the REPL namespace is deprecated. Use `edit:add-vars` instead. 71 72 # Notable new features 73 74 New features in the language: 75 76 - A new `var` special command can be used to explicitly declare variables, and 77 optionally assign them initial values. 78 79 - A new `set` special command can be used to set the values of variables or 80 elements. 81 82 - Slice indices can now use `..` for left-closed, right-open ranges, and `..=` 83 for closed ranges. 84 85 - Rest variables and rest arguments are no longer restricted to the last 86 variable. 87 88 - Variables containing any character can now be assigned and used by quoting 89 their name, for example `'name!' = foo; put $'name!'`. 90 91 New features in the standard library: 92 93 - A new `eval` command supports evaluating a dynamic piece of code in a 94 restricted namespace. 95 96 - A new `sleep` command. 97 98 - A new `path:` module has been introduced for manipulating and testing 99 filesystem paths. 100 101 - A new `deprecate` command. 102 103 New features in the interactive editor: 104 105 - The new commands `edit:add-var` and `edit:add-vars` provide an API for 106 manipulating the REPL's namespace from anywhere. 107 108 - SGR escape sequences written from the prompt callback are now supported. 109 110 New features in the main program: 111 112 - When using `-compileonly` to check Elvish sources that contain parse errors, 113 Elvish will still try to compile the source code and print out compilation 114 errors. 115 116 # Notable bugfixes 117 118 - Using large lists that contain `$nil` no longer crashes Elvish.