github.com/kolbycrouch/elvish@v0.14.1-0.20210614162631-215b9ac1c423/0.16.0-release-notes.md (about)

     1  This is the draft release notes for 0.16.0. It is scheduled to be released on
     2  2020-07-01.
     3  
     4  # Breaking changes
     5  
     6  -   The `builtin:` namespace, useful for referring to builtin variables and
     7      commmands explicitly, now requires `use builtin` before use, consistent with
     8      other standard library modules.
     9  
    10  -   As a side effect of support for a integer numbers, contexts that require
    11      integers no longer accept floating point numbers with a zero fraction part
    12      (e.g. `$li[1.0]` is now illegal; `$li[1]` is required).
    13  
    14  -   The following commands are now replaced by `edit:close-mode`:
    15      `edit:close-listing`, `edit:completion:close`, `edit:history:close`,
    16      `edit:listing:close`.
    17  
    18  -   The `edit:histlist:toggle-case-sensitivity` command has been removed.
    19      Instead, the history listing mode now applies smart-case matching by
    20      default.
    21  
    22  -   Declaring a variable with a `~` suffix, without an explicit initial value,
    23      now initializes its value to the builtin `nop` function rather than `$nil`
    24      ([#1248](https://b.elv.sh/1248)).
    25  
    26  # Deprecated features
    27  
    28  Deprecated features will be removed in 0.17.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  -   The `fopen` and `fclose` commands are deprecated. Use `file:open` and
    34      `file:close` instead.
    35  
    36  -   The `prclose` and `pwclose` commands are deprecated. Use `file:close`
    37      instead.
    38  
    39  # Notable bugfixes
    40  
    41  -   Iterating over certain list slices no longer crash Elvish
    42      ([#1287](https://b.elv.sh/1287)).
    43  
    44  -   Globbing no longer crashes when there are files whose names contain invalid
    45      UTF-8 sequences ([#1220](https://b.elv.sh/1220)).
    46  
    47  -   The `path:is-dir` and `path:is-regular` commands default behavior no longer
    48      follows a final symlink as advertised in the original documentation. A
    49      `&follow-symlink` option has been added to get the old, undocumented,
    50      behavior since it can be useful and avoids the need to use
    51      `path:eval-symlinks` to transform the path in common use cases.
    52  
    53  *   Evaluating `~username` no longer appends a slash
    54      ([#1246](https://b.elv.sh/1246)).
    55  
    56  # Notable new features
    57  
    58  New features in the language:
    59  
    60  -   Elvish's number type has been extended with support for arbitrary-precision
    61      integers and rationals. Many numerical commands in the builtin module and
    62      the `math:` module have been extended with support for them.
    63  
    64  New features in the standard library:
    65  
    66  -   A new `file:` module contains utilities for manipulating files.
    67  
    68  -   Commands for creating temporary files and directories, `path:temp-file` and
    69      `path:temp-dir` ([#1255](https://b.elv.sh/1255)).
    70  
    71  -   New options to the `edit:command-history` command: `&dedup`,
    72      `&newest-first`, and `&cmd-only` ([#1053](https://b.elv.sh/1053)).
    73  
    74  New features in the interactive editor:
    75  
    76  -   The editor now supports setting global bindings via `$edit:global-binding`.
    77      Global bindings are consulted for keys not present in mode-specific
    78      bindings.
    79  
    80  -   A new `edit:clear` builtin to clear the screen has been added.
    81  
    82  -   The editor now uses a DSL for filtering items in completion, history
    83      listing, location and navigation modes.
    84  
    85  -   A new `edit:after-command` hook that is invoked after each interactive
    86      command line is run.
    87  
    88  -   A new `edit:command-duration` variable that is the number of seconds to
    89      execute the most recent interactive command line.