2.0 beta
Pre-releaseThe highlight of this release likely is the comeback of foreach/3
840aa77. I removed this in jaq 0.9.0 because I was not able to implement foreach/2
and foreach/3
without duplicating lots of code. In the meantime, however, I found a nice way to implement all of foreach/3
, foreach/2
, and reduce/2
using the same code.
As a consequence, this release removes for/2
f44a224. The addition of foreach/3
would have made it logical to also add for/3
, but unfortunately, for/3
can only be implemented in a quite awkward way. Because for/2
was a jaq-only experiment anyway, it felt better to remove it. This change also increases compatibility with jq, because it allows using for
as function name in both jq and jaq.
This release now short-circuits on errors in try ... catch ...
c83749a. Previously, try f catch g
would run g
for all errors produced by f
, whereas now, it stops after the first error.
As a result of this, jaq now terminates for all examples in the jq manual, meaning that jaq --run-tests man.test
runs the whole test suite generated from the manual without "getting stuck". (jaq passes 187 out of 227 tests in the current man.test
.)
New functions
Smaller changes
- Expand
~
and$ORIGIN
at the start of search paths c3f9259 - Correct printing of UTF-8 encoded characters in strings #209
- More consistent date formatting #214
- Omit clones in
.[f] |= g
for higher performance 0eaa0f0 - Custom value types now must implement
Default
ad74938 - Change name format of released binaries #211
New Contributors
Full Changelog: v2.0.0-alpha.1...v2.0.0-beta