You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thank you for reporting this.
I noticed this as well, but while fixing it noticed what I thought was a bug in Emacs, then ran out of time. I'll have a look again now.
Functions that guarantee a fresh return value should not be pure,
since their return value is likely to be mutated destructively:
https://bugs.gnu.org/64127
* NEWS.md (2.20.0): List affected functions.
* dash.el (-non-nil, -cons*, -snoc, -slice, -take, -take-last)
(-drop-last, -split-at, -interpose, -interleave, -repeat, -iota)
(-clone): No longer mark as pure.
* dev/examples.el (-powerset): Avoid mutating constant.
Fixes#405.
Turns out it was my misunderstanding of what marking a function as pure implies: since pure function calls with constant arguments are evaluated at compile time, it is no longer safe to mutate their return value in the general case.
After 96eaba0 is committed, Build fails with recent master branch of Emacs as following.
The failure doesn't happen with Emacs 28.2
The text was updated successfully, but these errors were encountered: