Releases: magnars/dash.el
2.20.0
Deprecations
- Calling
-zipwith two arguments now emits a warning. This long-discouraged calling convention remains supported, but the caller is now referred to the equivalent-zip-pairinstead (Stefan Monnier, #400). - Calling
-zip-pairwith less than or more than two arguments is now deprecated, and can be replaced with the equivalent call to-zip-listsinstead.
Fixes
-
Fixed a regression from
2.18in-takethat caused it to prematurely signal an error on improper lists (#393). -
The function
-padcan now be called with zero lists as arguments. -
The functions
-union,-intersection, and-differencenow return proper sets, without duplicate elements (#397). -
The functions
-same-items?and-permutationsnow work on multisets (lists with duplicate elements) (#390, #397, #399).For example:
(-same-items? '(1 1 2 3) '(3 1 2)) ; => t (-permutations '(1 1 2)) ; => '((1 1 2) (1 2 1) (2 1 1))
-
Several functions which are documented as returning a fresh, mutable object (such as a copy of one of their arguments) are no longer marked as
pure. Pure functions called with constant arguments are evaluated during byte-compilation; the resulting value is an immutable constant, and thus unsafe to modify destructively. The functions in question are:-clone,-cons*,-drop-last,-interleave,-interpose,-iota,-non-nil,-repeat,-slice,-snoc,-split-at,-take,-take-last.
New features
- The function
-contains?now returns the matching tail of the list instead of justt, similarly tomember(#397). - New function
-frequenciesthat takes a list and counts how many times each distinct element occurs in it (suggested by @ebpa, #209, #214, #399). - New functions
-zip-lists-filland-unzip-listswhich are better-behaved versions of-zip-filland-unzip, respectively (#400).
2.19.1
2.19.0
Fixes
- Reverted a breaking change introduced in
2.18.0that caused the threading macro-->to be indented differently from->and->>(#375). - Added and fixed Edebug specifications for many Dash macros (Philipp Stephani, #380, #381).
New features
- The combinators
-on,-flip,-not,-andfn, and-orfnnow return variadic functions that take any number of arguments (#308). - New combinator
-rotate-argssimilar to-flip, but for arbitrary arglist rotations (suggested by @vapniks, #72). - New function
-everyand its anaphoric macro counterpart--every. They are like the existing-every-pand--every-p, respectively, but return the last non-nilresult instead of justt. - New macro
--partition-after-predwhich affords-partition-after-predbetter performance (Per Weijnitz, #362).
2.18.1
2.18.0
This release absorbs the now obsolete dash-functional version 1.3.0 into dash, and brings the very old version of dash on GNU ELPA up to date.
Package maintainers should replace all uses of dash-functional, which will eventually be deleted, with dash version 2.18.0. For more information on this, see: https://github.com/magnars/dash.el/wiki/Obsoletion-of-dash-functional.el
-
New function
-iotafor generating arithmetic sequences (@holomorph, #215). -
Calling
-listwith more than one argument is now deprecated. -
-lambdanow accepts an empty argument list. -
New anaphoric macros
--reductions-from,--reductions,--reductions-r-from, and--reductions-rcorresponding to the analogous non-anaphoric functions. -
-dotothreading now works as with->. -
New buffer-local minor mode
dash-fontify-modeand globalized counterpartglobal-dash-fontify-modefor fontifying special Dash variables such asit,it-index,acc, etc. The minor mode also fontifies calls to Dash macros in older Emacs versions which did not dynamically detect macro calls.This obsoletes the user option
dash-enable-fontlockand the functiondash-enable-font-lock, which is now an alias ofglobal-dash-fontify-mode. -
New command
dash-register-info-lookupfor integration withC-h S(info-lookup-symbol). This command allows Dash symbols to be looked up in the Dash manual just like Elisp symbols are looked up in the Elisp manual. The command can be called directly when needed, or automatically from youruser-init-file. For example:(with-eval-after-load 'info-look (dash-register-info-lookup))
-
Dash is now listed under the standard Customization groups and Finder keywords
extensionsandlisp. -
The Dash manual is now licensed under the GNU Free Documentation License version 1.3.
-
Various other bug fix, performance, byte-compilation, and documentation improvements.