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)).