1.3
This release makes jaq a lot lazier. In particular, several core filters, such as debug
, are now evaluated as late as possible #131, and filters passed to path expressions are now also executed lazily #150. That means that many filters which did not terminate before now terminate!
Backwards-compatible additions
Thanks go especially to @kklingenberg for implementing several new functionalities!
- Support for recursive object merging via
a * b
by @kklingenberg #130 - Add
env
filter and$ENV
variables by @kklingenberg #128 - Extend path syntax to support paths like
.a.[]
#145 group_by
terminates as soon as there is an error #129
Breaking Changes
- The
last(f)
filter now returns no output instead ofnull
whenf
yields no output. This is to make it consistent withfirst(f)
, which has the same behaviour. 51d3f51 - Rename
--compact
to--compact-output
to match jq #148 to_entries
andpaths
now return objects without sorting keys, like jq 484dd27
Eliminated bugs
- Calling jaq without a filter now correctly executes the identity filter #147
- Calling jaq with an empty filter (
''
) now yields an error message instead of crashing, thanks to a newariadne
release --- thanks to @zesterer! - Processing long sequences with
foreach
used to crash with a stack overflow at the end, for example when executingforeach limit(1000000; repeat(1)) as $x (0; .+$x)
. This is now not longer the case. 854d22c
Full Changelog: v1.2.0...v1.3.0