dotemacs

My Emacs configuration
git clone git://git.entf.net/dotemacs
Log | Files | Refs | LICENSE

NEWS.md (10198B)


      1 # Dash NEWS -- history of user-visible changes
      2 
      3 Copyright (C) 2012-2021 Free Software Foundation, Inc.
      4 
      5 See the end of the file for license conditions.
      6 
      7 ## Change log
      8 
      9 ### From 2.19.0 to 2.19.1
     10 
     11 #### Fixes
     12 
     13 - Fixed a regression from `2.18` in `-is-suffix-p` which led to false
     14   negatives when parts of the suffix appeared multiple times in the
     15   list being searched (Bennett Rennier, #384).
     16 
     17 ### From 2.18.1 to 2.19.0
     18 
     19 #### Fixes
     20 
     21 - Reverted a breaking change introduced in `2.18.0` that caused the
     22   threading macro `-->` to be indented differently from `->` and `->>`
     23   (#375).
     24 - Added and fixed Edebug specifications for many Dash macros (Philipp
     25   Stephani, #380, #381).
     26 
     27 #### New features
     28 
     29 - The combinators `-on`, `-flip`, `-not`, `-andfn`, and `-orfn` now
     30   return variadic functions that take any number of arguments (#308).
     31 - New combinator `-rotate-args` similar to `-flip`, but for arbitrary
     32   arglist rotations (suggested by @vapniks, #72).
     33 - New function `-every` and its anaphoric macro counterpart `--every`.
     34   They are like the existing `-every-p` and `--every-p`, respectively,
     35   but return the last non-`nil` result instead of just `t`.
     36 - New macro `--partition-after-pred` which affords
     37   `-partition-after-pred` better performance (Per Weijnitz, #362).
     38 
     39 ### From 2.18.0 to 2.18.1
     40 
     41 - Fixed a regression from `2.17` as well as a long-standing bug in
     42   `--iterate`, which evaluated its arguments one too many times.  This
     43   in turn could lead to errors in `-flatten-n` when it tried
     44   flattening certain structures too far (#373).
     45 
     46 ### From 2.17 to 2.18
     47 
     48 This release absorbs the now obsolete `dash-functional` version
     49 `1.3.0` into `dash`, and brings the very old version of `dash` on GNU
     50 ELPA up to date.
     51 
     52 Package maintainers should replace all uses of `dash-functional`,
     53 which will eventually be deleted, with `dash` version `2.18.0`.  For
     54 more information on this, see:
     55 https://github.com/magnars/dash.el/wiki/Obsoletion-of-dash-functional.el
     56 
     57 - New function `-iota` for generating arithmetic sequences
     58   (@holomorph, #215).
     59 
     60 - Calling `-list` with more than one argument is now deprecated.
     61 
     62 - `-lambda` now accepts an empty argument list.
     63 
     64 - New anaphoric macros `--reductions-from`, `--reductions`,
     65   `--reductions-r-from`, and `--reductions-r` corresponding to the
     66   analogous non-anaphoric functions.
     67 
     68 - `-doto` threading now works as with `->`.
     69 
     70 - New buffer-local minor mode `dash-fontify-mode` and globalized
     71   counterpart `global-dash-fontify-mode` for fontifying special Dash
     72   variables such as `it`, `it-index`, `acc`, etc.  The minor mode also
     73   fontifies calls to Dash macros in older Emacs versions which did not
     74   dynamically detect macro calls.
     75 
     76   This obsoletes the user option `dash-enable-fontlock` and the
     77   function `dash-enable-font-lock`, which is now an alias of
     78   `global-dash-fontify-mode`.
     79 
     80 - New command `dash-register-info-lookup` for integration with `C-h S`
     81   (`info-lookup-symbol`).  This command allows Dash symbols to be
     82   looked up in the Dash manual just like Elisp symbols are looked up
     83   in the Elisp manual.  The command can be called directly when
     84   needed, or automatically from your `user-init-file`.  For example:
     85 
     86   ```el
     87   (with-eval-after-load 'info-look
     88     (dash-register-info-lookup))
     89   ```
     90 
     91 - Dash is now listed under the standard [Customization
     92   groups](https://gnu.org/software/emacs/manual/html_node/emacs/Customization-Groups.html)
     93   and [Finder
     94   keywords](https://gnu.org/software/emacs/manual/html_node/emacs/Package-Keywords.html)
     95   `extensions` and `lisp`.
     96 
     97 - The Dash manual is now licensed under the GNU Free Documentation
     98   License version 1.3.
     99 
    100 - Various other bug fix, performance, byte-compilation, and
    101   documentation improvements.
    102 
    103 ### From 2.16 to 2.17
    104 
    105 - Sped up `-uniq` by using hash-tables when possible (@cireu, #305).
    106 - Fixed `-inits` to be non-destructive (@SwiftLawnGnome, #313).
    107 - Fixed indent rules for `-some->` and family (@wbolster, #321).
    108 - Added `-zip-lists` which always returns a list of proper lists, even for two
    109   input lists (see issue #135).
    110 
    111 ### From 2.15 to 2.16
    112 
    113 - Added `--doto`, anaphoric version of `-doto` (#282).
    114 - Aliased `-cons-pair-p` to `-cons-pair?` (#288).
    115 - Generalized `-rotate` for `|N|` greater than the length of the list (@leungbk,
    116   #290).
    117 - Added a mechanism to extend destructuring with custom matchers (@yyoncho,
    118   #277).
    119 
    120 ### From 2.14 to 2.15
    121 
    122 This release brings new destructuring features, some new control flow
    123 functions and performance optimizations.
    124 
    125 - Added `-setq` with destructuring binding support similar to the `-let` family
    126   (#116).
    127 - Added smarter key destructuring in `-let` and friends where variables are
    128   auto-derived from keys (#111).
    129 - Allowed `-let` bindings without a source value form (#256).
    130 - Added `-each-r` and `-each-r-while` (@doublep, #159).
    131 - Added `-common-suffix` (@basil-conto, #263).
    132 - Improved performance of folds (`-reduce` and friends) (@basil-conto, #264).
    133 
    134 ### From 2.13 to 2.14
    135 
    136 This release retired Emacs 23 support.
    137 
    138 - Added Edebug support for threading macros (@Wilfred).
    139 - Added `-unzip`.
    140 - Added support for `-first-item` and `-last-item` as [place
    141   forms](https://gnu.org/software/emacs/manual/html_node/elisp/Generalized-Variables.html).
    142 - Added `-powerset` and `-permutations` (@holomorph).
    143 - Added `-as->` for threading a named variable (@zck).
    144 - Added `-partition-after-pred`, `-partition-before-pred`,
    145   `-partition-after-item`, and `-partition-before-item` (@zck).
    146 - Fixed a bug in `-any-p` and friends testing for `null` on lists containing
    147   `nil` (#239).
    148 - Fixed infinite loop bug in `-zip` and `-interleave` when called with empty
    149   input.
    150 - Added `-second-item` through `-fifth-item` as alternatives to `nth`
    151   (@Wilfred).
    152 - Added `-tails` and `-inits`.
    153 - Added `-running-sum` and `-running-product`.
    154 - Added the `-reductions[-r][-from]` family of functions (like `-reduce` but
    155   collecting intermediate results).
    156 - Added `-common-prefix` (@basil-conto).
    157 
    158 ### From 2.12 to 2.13
    159 
    160 - `-let` now supports `&alist` destructuring.
    161 - Various performance improvements.
    162 - `-zip` might change in a future release to always return a list of proper
    163   lists.  Added `-zip-pair` for users who explicitly want the old behavior.
    164 - Enabled lexical binding in `dash.el` for Emacs versions 24 or newer (#130).
    165 - Added `-select-column` and `-select-columns`.
    166 - Fixed `-map-last` and `--remove-last` to be non-destructive (#158).
    167 - Added `-each-indexed` and `--each-indexed`.
    168 - Added `-take-last` and `-drop-last`.
    169 - Added the `-doto` macro.
    170 - `-cut <>` is now treated as a function, consistent with [SRFI
    171   26](https://srfi.schemers.org/srfi-26/srfi-26.html) (#185).
    172 
    173 ### From 2.11 to 2.12
    174 
    175 - Added GNU ELPA support (Phillip Lord).
    176 - Added `-some->`, `-some->>`, and `-some-->` macros (Cam Saul).
    177 - `-is-suffix?` is now non-destructive.
    178 - Faster hash table implementation for `-union`.
    179 - Improvements to docstrings and examples.
    180 
    181 ### From 2.10 to 2.11
    182 
    183 - Lots of clean up w.r.t. byte compilation, debug macros, and tests.
    184 
    185 ### From 2.9 to 2.10
    186 
    187 - Added `-let` destructuring to `-if-let` and `-when-let` (Fredrik Bergroth).
    188 
    189 ### From 2.8 to 2.9
    190 
    191 - Added `-let`, `-let*`, and `-lambda` with destructuring.
    192 - Added `-tree-seq` and `-tree-map-nodes`.
    193 - Added `-non-nil`.
    194 - Added `-fix`.
    195 - Added `-fixfn` (`dash-functional` version `1.2`).
    196 - Added `-copy` (Wilfred Hughes).
    197 
    198 ### From 2.7 to 2.8
    199 
    200 - Added `-butlast`.
    201 
    202 ### From 2.6 to 2.7
    203 
    204 - `-zip` now supports more than two lists (Steve Lamb).
    205 - Added `-cycle`, `-pad`, `-annotate`, and `-zip-fill` (Steve Lamb).
    206 - Added `-table`, `-table-flat` (finite Cartesian product).
    207 - Added `-flatten-n`.
    208 - `-slice` now supports a "step" argument.
    209 - Added functional combinators `-iteratefn` and `-prodfn`.
    210 - Added `-replace`, `-splice`, and `-splice-list` which generalize `-replace-at`
    211   and `-insert-at`.
    212 - Added `-compose`, `-iteratefn`, and `-prodfn` (`dash-functional` version
    213   `1.1`).
    214 
    215 ### From 2.5 to 2.6
    216 
    217 - Added `-is-prefix-p`, `-is-suffix-p`, and `-is-infix-p` (Matus Goljer).
    218 - Added `-iterate` and `-unfold` (Matus Goljer).
    219 - Added `-split-on` and `-split-when` (Matus Goljer).
    220 - Added `-find-last-index` (Matus Goljer).
    221 - Added `-list` (Johan Andersson).
    222 
    223 ### From 2.4 to 2.5
    224 
    225 - Added `-same-items?` (Johan Andersson).
    226 - Various bugfixes.
    227 
    228 ### From 2.3 to 2.4
    229 
    230 - Added `-snoc` (Matus Goljer).
    231 - Added `-replace-at`, `-update-at`, `-remove-at`, and `-remove-at-indices`
    232   (Matus Goljer).
    233 
    234 ### From 2.2 to 2.3
    235 
    236 - Added tree operations (Matus Goljer).
    237 - Made Font Lock optional.
    238 
    239 ### From 2.1 to 2.2
    240 
    241 - Added `-compose` (Christina Whyte).
    242 
    243 ### From 2.0 to 2.1
    244 
    245 - Added indexing operations (Matus Goljer).
    246 
    247 ### From 1.8 to 2.0
    248 
    249 - Split out `dash-functional.el` (Matus Goljer).
    250 - Added `-andfn`, `-orfn`, `-not`, `-cut`, `-const`, `-flip`, and `-on` (Matus
    251   Goljer).
    252 - Fixed `-min`, `-max`, `-min-by`, and `-max-by` (Matus Goljer).
    253 
    254 ### From 1.7 to 1.8
    255 
    256 - Added `-first-item` and `-last-item` (Wilfred Hughes).
    257 
    258 ### From 1.6 to 1.7
    259 
    260 - Added `-rotate` (Matus Goljer).
    261 
    262 ### From 1.5 to 1.6
    263 
    264 - Added `-min`, `-max`, `-min-by`, and `-max-by` (Johan Andersson).
    265 
    266 ### From 1.4 to 1.5
    267 
    268 - Added `-sum` and `-product` (Johan Andersson).
    269 
    270 ### From 1.3 to 1.4
    271 
    272 - Added `-sort`.
    273 - Added `-reduce-r` (Matus Goljer).
    274 - Added `-reduce-r-from` (Matus Goljer).
    275 
    276 ### From 1.2 to 1.3
    277 
    278 - Added `-partition-in-steps`.
    279 - Added `-partition-all-in-steps`.
    280 
    281 ### From 1.1 to 1.2
    282 
    283 - Added `-last` (Matus Goljer).
    284 - Added `-insert-at` (Emanuel Evans).
    285 - Added `-when-let` and `-if-let` (Emanuel Evans).
    286 - Added `-when-let*` and `-if-let*` (Emanuel Evans).
    287 - Various bugfixes.
    288 
    289 ## License
    290 
    291 This program is free software: you can redistribute it and/or modify
    292 it under the terms of the GNU General Public License as published by
    293 the Free Software Foundation, either version 3 of the License, or
    294 (at your option) any later version.
    295 
    296 This program is distributed in the hope that it will be useful,
    297 but WITHOUT ANY WARRANTY; without even the implied warranty of
    298 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    299 GNU General Public License for more details.
    300 
    301 You should have received a copy of the GNU General Public License
    302 along with this program.  If not, see <https://www.gnu.org/licenses/>.