github.com/elves/elvish@v0.15.0/website/blog/0.14.0-release-notes.md (about) 1 Version 0.14.0 has been released on 2020-07-05, 6 months after 0.13, 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 - The `type` field of the value written by `src` have been removed. 10 11 - The `all` command no longer preserves byte inputs as is; instead it turns 12 them into values, one each line. It also accepts an optional list argument, 13 consistent with other value-taking commands. 14 15 - Output captures now strip trailing carriage returns from each line, 16 effectively making `\r\n` accepted as a line separator 17 ([#970](https://b.elv.sh/970)). 18 19 - Map-like values written by the `dir-history` and `re:find` functions can no 20 longer be assoc'ed. 21 22 # Deprecated features 23 24 Elvish now has a deprecation mechanism to give advance notice for breaking 25 changes. Deprecated features trigger warnings, and will be removed in the next 26 release. 27 28 The following deprecated features trigger a warning whenever the code is parsed 29 or compiled, even if it is not executed: 30 31 - The `explode` command is now deprecated. Use `all` instead. 32 33 - The `joins`, `replaces` and `splits` commands are now deprecated. Use 34 `str:join`, `str:replace` and `str:split` instead. 35 36 - The `^` command is now deprecated. Use `math:pow` instead. 37 38 - The `-time` command has been promoted to `time`. The `-time` command is now 39 a deprecated alias for `time`. 40 41 - Using `\` for line continuation is now deprecated. Use `^` instead. 42 43 The following deprecated features trigger a warning when the code is evaluated: 44 45 - The `&display-suffix` option of the `edit:complex-candidate` is now 46 deprecated. Use the `&display` option instead. 47 48 The following deprecated features, unfortunately, do not trigger any warnings: 49 50 - The `path` field of the value returned by `src` is now deprecated. Use the 51 `name` field instead. 52 53 # Notable new features 54 55 New features in the language: 56 57 - Exceptions can now be introspected by accessing their fields 58 ([#208](https://b.elv.sh/208)). 59 60 - Two new wildcard modifiers, `type:dir` and `type:regular` are added, which 61 restricts the wildcard pattern to only match directories or regular files, 62 respectively. 63 64 - The printing of floating-point numbers has been tweaked to feel much more 65 natural ([#811](https://b.elv.sh/811)). 66 67 - Scripts may now use relative `use` to import modules outside 68 `~/.elvish/lib`. 69 70 - Dynamic strings may now be used as command as long as they contain slashes 71 ([#764](https://b.elv.sh/764)). 72 73 - Elvish now supports CRLF line endings in source files 74 ([#918](https://b.elv.sh/918)). 75 76 - Comments are now allowed anywhere newlines serve as separators, notably 77 inside list and map literals ([#924](https://b.elv.sh/924)). 78 79 - The `^` character can now be used for line continuation. 80 81 New features in the standard library: 82 83 - A new `order` command for sorting values has been introduced 84 [#651](https://b.elv.sh/651). 85 86 - A new `platform:` module has been introduced. 87 88 - A new `unix:` module has been introduced. 89 90 - A new `math:` module has been introduced. 91 92 - The `fail` command now takes an argument of any type. In particular, if the 93 argument is an exception, it rethrows the exception 94 ([#941](https://b.elv.sh/941)). 95 96 - A new `show` command has been added, which is currently useful for printing 97 the stack trace of an exception to the terminal. 98 99 - A new `make-map` command creates a map from a sequence of pairs 100 ([#943](https://b.elv.sh/943)). 101 102 - A new `read-line` command can be used to read a single line from the byte 103 input ([#975](https://b.elv.sh/975)). 104 105 - The `-time` command has been promoted to `time`, and it now accepts an 106 `&on-end` callback to specify how to save the duration of the execution 107 ([#295](https://b.elv.sh/295)). 108 109 - A new `one` command has been added. 110 111 - A new `read-upto` command can now be added to read byte inputs up to a 112 delimiter ([#831](https://b.elv.sh/831)). 113 114 New features in the interactive editor: 115 116 - When a callback of the interactive editor throws an exception, the exception 117 is now saved in a `$edit:exceptions` variable for closer examination 118 ([#945](https://b.elv.sh/945)). 119 120 - A new alternative abbreviation mechanism, "small word abbreviation", is now 121 available and configurable via `$edit:small-word-abbr`. 122 123 - The ratios of the column widths in navigation mode can now be configured 124 with `$edit:navigation:width-ratio` ([#464](https://b.elv.sh/464)) 125 126 - A new `$edit:add-cmd-filters` variable is now available for controlling 127 whether a command is added to the history. 128 129 The default value of this variable filters out commands that start with a 130 space. 131 132 - The `edit:complex-candidate` now supports a `&display` option to specify the 133 full display text. 134 135 Other improvements: 136 137 - Elvish now uses `$XDG_RUNTIME_DIR` to keep runtime files if possible. 138 139 - Elvish now increments the `$SHLVL` environment variable 140 ([#834](https://b.elv.sh/834)). 141 142 # Notable bugfixes 143 144 - Invalid option names or values passed to builtin functions now correctly 145 trigger an exception, instead of being silently ignored 146 ([#958](https://b.elv.sh/958)). 147 148 - Elvish no longer crashes when redirecting to a high FD 149 ([#788](https://b.elv.sh/788)). 150 151 - Indexing access to nonexistent variables now correctly triggers a 152 compilation error ([#889](https://b.elv.sh/889)). 153 154 - The interactive REPL no longer highlights complex commands as red 155 ([#881](https://b.elv.sh/881)). 156 157 - Glob patterns after `~username` now evaluate correctly 158 ([#793](https://b.elv.sh/793)). 159 160 - On Windows, tab completions for directories no longer add superfluous quotes 161 backslashes ([#897](https://b.elv.sh/897)). 162 163 - The `edit:move-dot-left-small-word` command has been fixed to actually move 164 by a small word instead of a word. 165 166 - A lot of race conditions have been fixed ([#73](https://b.elv.sh), 167 [#754](https://b.elv.sh/754)).