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.