This release brings many new filters, adapts a few existing filters to behave more like in original jq, and squashes a few bugs.
New filters
My personal highlight for this release is the new repl
filter. It allows you to capture the current input and run different filters interactively.
Apart from this, a few new filters from upstream jq are now available in jaq. Thanks to @dnelson-1901 and @wader for contributing!
- Implement
repl
filter by @01mf02 in #303 - Implement more time-related functions by @dnelson-1901 in #283
- Add
@urid
format by @wader in #290 - Implement
bsearch
by @01mf02 in #299
Behaviour changes
This release changes the behaviour of the recursion operator ..
in updates: Previously, this operator could easily cause infinite loops if the right-hand side of an update with ..
would produce a value that could be iterated over, such as an array or an object. With this release, this is now avoided, by performing ..
updates from the leafs to the root instead of from the root to the leafs.
- New update semantics for
..
(recursion) by @01mf02 in #285 - Convert inputs of
join
to strings by @01mf02 in #302
Bugs fixed
- Correctly handle labels inside of native function arguments by @01mf02 in #301
- Allow negation directly after a binary operator by @01mf02 in #298
- Ensure no file handles remain open during in-place persist by @fgimian in #300
Miscellaneous
- Implement
try
-catch
withoutlabel $x | ...
by @01mf02 in #297 - Make
Debug
formatload::parse::Def
like a tuple by @01mf02 in #291
New Contributors
- @dnelson-1901 made their first contribution in #283
- @fgimian made their first contribution in #300
Full Changelog: v2.2.0...v2.3.0