github.com/elves/elvish@v0.15.0/website/blog/0.9-release-notes.md (about) 1 Version 0.9 has been released to coincide with the official publication of the 2 Elvish website, which will be hosting all release notes in the future. 3 4 This version is released slightly more than a month after 0.8. Despite the short 5 interval, there are some interesting additions and changes. 6 7 # Breaking Changes 8 9 - Lists have become immutable. 10 11 Support for assigning individual list elements has been temporarily removed. 12 For instance, the following is no longer possible: 13 14 ```elvish 15 li = [lorem ipsum foo bar] 16 li[1] = not-ipsum 17 ``` 18 19 You need to use this for now: 20 21 ```elvish 22 li = [(explode $li[:1]) not-ipsum (explode $li[2:])] 23 ``` 24 25 Element assignment will be reintroduced as a syntax sugar, after the 26 conversion to persistent data structure is finished. 27 28 Assignments to map elements are not affected. 29 30 - The `true` and `false` builtin commands have been removed. They have been 31 equivalent to `put $true` and `put $false` for a while. 32 33 - The default keybinding for last command mode has been changed from <span 34 class="key">Alt-,</span> to <span class="key">Alt-1</span>. 35 36 - The "bang mode" is now known as "last command mode". 37 38 - The `le:` module (for accessing the Elvish editor) has been renamed to 39 `edit:`. You can do a simple substitution `s/le:/edit:/g` to fix your 40 `rc.elv`. 41 42 - The 3 listing modes -- location mode, history listing mode and last command 43 mode -- are being merged into one generic listing mode. 44 45 Most of their builtins have been merged: for instance, they use to come with 46 their own builtins for changing focused candidate, `le:loc:up`, 47 `le:histlist:up` and `le:bang:up`. These have been merged into simply 48 `edit:listing:up`, that operates on whichever listing mode is active. 49 50 A new binding table, `$edit:binding[listing]` has also been introduced. 51 Bindings put there will be available in all 3 listing modes, with bindings 52 in their own tables (`$edit:binding[loc]`, `$edit:binding[histlist]` and 53 `$edit:binding[lastcmd]`) having higher precedence. 54 55 - The readline-style binding module has been renamed from 56 `embedded:readline-binding` to just `readline-binding`. Future embedded 57 modules will no longer have an `embedded:` prefix either. 58 59 # Notable Fixes and Enhancements 60 61 - This release has seen more progress towards breaking up the huge, untested 62 [edit](https://github.com/elves/elvish/tree/master/edit) package. For 63 instance, the syntax highlighter and command history helpers now live in 64 their own packages, and have better test coverages. 65 66 - An experimental web interface has been added. It can be used by supplying 67 the `-web` flag when running Elvish, i.e. `elvish -web`. The default port is 68 3171, which is [a way](https://en.wikipedia.org/wiki/Leet) to write "ELVI". 69 An alternative port can be specified using `-port`, e.g. 70 `elvish -web -port 2333`. 71 72 - Per-session command history has been reintroduced 73 ([#355](https://github.com/elves/elvish/issues/355)). 74 75 - Elvish now forks a daemon for mediating access to the database. This is to 76 prepare for the switch to a pure Go database and removing the current C 77 dependency on SQLite. A new `daemon:` module has been introduced. 78 79 - A new `edit:complex-candidate` builtin has been introduced to construct 80 complex candidates from completers. 81 82 - A new `re:` module, containing regular expression utilities, has been 83 introduced. 84 85 # Known Issues 86 87 The daemon implementation has a known issue of some intermediate process not 88 being reaped correctly and there is an outstanding 89 [pull request](https://github.com/elves/elvish/pull/373/) for it. In the worst 90 case, this will leave 2 processes hanging in the system.