[NonGNU ELPA] Loopy version 0.16.1
ELPA update <[email protected]> Fri, 26 Jun 2026 05:07:14 -0400
| Newsgroups | gmane.emacs.sources |
|---|---|
| Message-ID | <[email protected]> |
Version 0.16.1 of package Loopy has just been released in NonGNU ELPA.
You can now find it in M-x list-packages RET.
Loopy describes itself as:
===============
A looping macro
===============
More at https://elpa.nongnu.org/nongnu/loopy.html
## Summary:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LOOPY: A LOOPING AND ITERATION MACRO
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[file:https://elpa.nongnu.org/nongnu/loopy.svg]
[file:https://elpa.nongnu.org/nongnu-devel/loopy.svg]
[file:https://melpa.org/packages/loopy-badge.svg]
[file:https://stable.melpa.org/packages/loopy-badge.svg]
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
`loopy' is a macro meant for iterating and looping. It is similar in
usage to [`cl-loop'] but uses symbolic expressions rather than keywords.
For most use cases, `loopy' should be a nice substitute for `cl-loop'
and complementary to the features provided by the [Seq] and [CL]
libraries and Emacs's regular looping and mapping features.
## Recent NEWS:
# CHANGELOG
This document describes the user-facing changes to Loopy.
For Loopy Dash, see <https://codeberg.org/okamsn/loopy-dash>.
## 0.16.1
- Silence byte-compilation warnings regarding the absence of the
`declare` properties `ftype` and `important-return-value` on older
versions of Emacs ([#284]). These warnings were created by
adding those properties in [#274].
[#274]: https://codeberg.org/okamsn/loopy/pulls/274
[#284]: https://codeberg.org/okamsn/loopy/pulls/284
## 0.16.0
### New Features
- Add the `no-loop` flag ([#265]). This stops the looping macros from creating
the `while`-loop and causes an error to be signalled when used with features
that only make sense with the `while`-loop, such as iteration commands. The
intended use is wrapping macros don't need the default `while`-loop but would
still like access to other features, such as accumulation commands.
### Bug Fixes
- When destructuring for accumulation commands, don't assume that `pcase` binds
the final variable to a value already stored in a temporary variable ([#251]).
More specifically, keep the same order returned by `pcase` for the binding of
those final variables.
- `while` and `until` now correctly work when aliased ([#267]).
- `cycle` now signals an error when trying to destructure ([#272], [#279]).
### Breaking Changes
- Using accumulation commands with different initial values for the same
variable now signals an error instead of a warning ([#169], [#254]).
- Aliases made obsolete in version 0.14.0 of this package have been removed (see
release notes for that version below) ([#256]). They can still be added
manually to `loopy-parsers`.
- Passing multiple conditions to `while` and `until` now signals a warning
([#267]). To be consistent with `never` and `always`, in the future, the
`while` and `until` commands will only accept a single condition. To keep the
old behavior, wrap multiple conditions in `and`.
[#169]: https://codeberg.org/okamsn/loopy/issues/169
[#254]: https://codeberg.org/okamsn/loopy/pulls/254
[#251]: https://codeberg.org/okamsn/loopy/pulls/251
[#256]: https://codeberg.org/okamsn/loopy/pulls/256
[#265]: https://codeberg.org/okamsn/loopy/pulls/265
[#267]: https://codeberg.org/okamsn/loopy/pulls/267
[#272]: https://codeberg.org/okamsn/loopy/issues/272
[#279]: https://codeberg.org/okamsn/loopy/pulls/279
## 0.15.0
### New Features
- Add the `override` special macro argument, which can be used to override
select global settings for the current macro expansion ([#243], [#231]). This
can help to avoid name collisions from package authors (separate authors of
separate packages) wanting to use the same command name for different purposes
with their respective package.
### Bug Fixes
- `when` and `unless` now correctly work when aliased ([#234], [#240]).
- Fix variable scoping when using `set` with `at` ([#241]).
### Breaking Changes
- Loopy now requires at least Emacs version 28.1, increased from version 27.1
([#446]). This allows us to remove workarounds for missing features/fixes.
- `set` now warns when it is not given a value ([#229]). Currently, `(set VAR)`
binds `VAR` to `nil`, but since this form is indistinguishable from a mistake,
and since `nil` is a short word to write, this behavior is deprecated.
- Some variables were combined to simplify the code internally and make it
easier to add local overrides in the future, which will make code which custom
commands more portable.
- `loopy-command-parsers` and `loopy-aliases` are both deprecated in favor of
the newly added `loopy-parsers` ([#237]). The new user option is a hash
table which maps symbols to parsing functions. There is no longer a
separate mapping of aliases to original names. However, `loopy-defalias`
will continue to work.
- `loopy-iter-bare-special-marco-arguments` and `loopy-iter-bare-commands` are
both deprecated in favor of the newly added `loopy-iter-bare-names` ([#242],
...
...