http://open-source-security-software.net/project/jq/releases.atomRecent releases for jq2023-10-03T20:38:35.447708+00:00python-feedgenjq jq-1.5rc1jq jq-1.5rc12015-01-01T02:54:01+00:00Salient new features since 1.4:
- regexp support (using Oniguruma)
- an online streaming parser
Included is the ability to control reading of inputs from the jq
program, using the new `input` and `inputs` builtins.
Finally we can write:
jq -n 'reduce inputs as $i ( ... )' # reduce online!
to reduce inputs without slurping them first. This works with
streaming too.
- try/catch, for catching and handling errors (this makes for a dynamic non-local exit system)
- a lexical non-local exit system
Using try/catch to break out of control structures was not a good
thing. A lexical mechanism is.
You can now say
label $foo | ..... | break $foo
where the break causes control to return to the label $foo, which
then produces `empty` (backtracks). There's named and anonymous
labels.
- tail call optimization (TCO), which allows efficient recursion in jq
- a variety of new control structure builtins (e.g., `while(cond; exp)`, `repeat(exp)`, `until(cond; next)`)
- an enhanced form of `reduce`: `foreach exp as $name (init_exp; update_exp; extract_exp)`
- a proper module system
import "foo/bar" as bar; # import foo/bar.jq's defs into a bar::\* namespace
- the ability to read module data files
import "foo/bar" as $bar; # read foo/bar.json, bind to $bar::bar
- `--argjson var '<JSON text>'`
Using --arg var <number> bit me too many times :)
- `--in-place` / `-i` for in-place editing of files
- support for application/json-seq.
- a variety of new utility functions, many being community contributions
- a variety of performance enhancements (e.g., constant folding)
- `def($a): ...;` is now allowed as an equivalent of `def(a): a as $a | ...;`
Lastly, don't forget the wiki! It has a lot of new content since 1.4, much of it contributed by the community.
2015-01-01T02:54:01+00:00jq jq-1.5rc2jq jq-1.5rc22015-07-27T04:14:01+00:00Thanks to the 20+ developers who have sent us PRs since 1.4, and the many contributors to issues and the wiki. We're nearing a 1.5 release, finally.
Salient new features since 1.4:
- regexp support (using Oniguruma)!
- a proper module system
`import "foo/bar" as bar; # import foo/bar.jq's defs into a bar::* namespace`
and
`include "foo/bar"; # import foo/bar.jq's defs into the top-level`
- destructuring syntax (`. as [$first, $second, {$foo, $bar}] | ...`)
- math functions
- an online streaming parser
- minimal I/O builtions (`inputs`, `debug`)
One can now write:
`jq -n 'reduce inputs as $i ( ... )'`
to reduce inputs in an online way without having to slurp them first! This works with streaming too.
- try/catch, for catching and handling errors (this makes for a dynamic non-local exit system)
- a lexical non-local exit system
One can now say
`label $foo | ..... | break $foo`
where the break causes control to return to the label $foo, which
then produces `empty` (backtracks). There's named and anonymous
labels.
- tail call optimization (TCO), which allows efficient recursion in jq
- a variety of new control structure builtins (e.g., `while(cond; exp)`, `repeat(exp)`, `until(cond; next)`), many of which internally use TCO
- an enhanced form of `reduce`: `foreach exp as $name (init_exp; update_exp; extract_exp)`
- the ability to read module data files
`import "foo/bar" as $bar; # read foo/bar.json, bind to $bar::bar`
- `--argjson var '<JSON text>'`
Using --arg var <number> bit me too many times :)
- `--slurpfile var "filename"`
Replaces the `--argfile` form (which is now deprecated but remains for backward compatibility).
- support for application/json-seq (RFC7464)
- a large variety of new utility functions, many being community contributions (e.g., `bsearch`, for binary searching arrays)
- datetime functions
- a variety of performance enhancements
- `def($a): ...;` is now allowed as an equivalent of `def(a): a as $a | ...;`
- test and build improvements, including gcov support
Lastly, don't forget the wiki! The wiki has a lot of new content since 1.4, much of it contributed by the community.
2015-07-27T04:14:01+00:00jq jq-1.4jq jq-1.42015-08-08T05:00:03+00:00The manual for jq 1.4 can be found at https://stedolan.github.io/jq/manual/v1.4/
2015-08-08T05:00:03+00:00jq jq-1.3jq jq-1.32015-08-08T05:03:24+00:00The manual for jq 1.3 can be found at https://stedolan.github.io/jq/manual/v1.3/
2015-08-08T05:03:24+00:00jq jq-1.2jq jq-1.22015-08-08T05:04:02+00:00jq 1.2
2015-08-08T05:04:02+00:00jq jq-1.0jq jq-1.02015-08-08T05:04:15+00:00jq 1.0
2015-08-08T05:04:15+00:00jq jq-1.1jq jq-1.12015-08-08T05:04:24+00:00jq 1.1
2015-08-08T05:04:24+00:00jq jq-1.5jq jq-1.52015-08-16T06:39:17+00:00Thanks to the 20+ developers who have sent us PRs since 1.4, and the many contributors to issues and the wiki.
The manual for jq 1.5 can be found at https://stedolan.github.io/jq/manual/v1.5/
Salient new features since 1.4:
- regexp support (using Oniguruma)!
- a proper module system
`import "foo/bar" as bar; # import foo/bar.jq's defs into a bar::* namespace`
and
`include "foo/bar"; # import foo/bar.jq's defs into the top-level`
- destructuring syntax (`. as [$first, $second, {$foo, $bar}] | ...`)
- math functions
- an online streaming parser
- minimal I/O builtions (`inputs`, `debug`)
One can now write:
`jq -n 'reduce inputs as $i ( ... )'`
to reduce inputs in an online way without having to slurp them first! This works with streaming too.
- try/catch, for catching and handling errors (this makes for a dynamic non-local exit system)
- a lexical non-local exit system
One can now say
`label $foo | ..... | break $foo`
where the break causes control to return to the label $foo, which
then produces `empty` (backtracks). There's named and anonymous
labels.
- tail call optimization (TCO), which allows efficient recursion in jq
- a variety of new control structure builtins (e.g., `while(cond; exp)`, `repeat(exp)`, `until(cond; next)`), many of which internally use TCO
- an enhanced form of `reduce`: `foreach exp as $name (init_exp; update_exp; extract_exp)`
- the ability to read module data files
`import "foo/bar" as $bar; # read foo/bar.json, bind to $bar::bar`
- `--argjson var '<JSON text>'`
Using --arg var <number> bit me too many times :)
- `--slurpfile var "filename"`
Replaces the `--argfile` form (which is now deprecated but remains for backward compatibility).
- support for application/json-seq (RFC7464)
- a large variety of new utility functions, many being community contributions (e.g., `bsearch`, for binary searching arrays)
- datetime functions
- a variety of performance enhancements
- `def($a): ...;` is now allowed as an equivalent of `def(a): a as $a | ...;`
- test and build improvements, including gcov support
Lastly, don't forget the wiki! The wiki has a lot of new content since 1.4, much of it contributed by the community.
2015-08-16T06:39:17+00:00jq jq-1.6jq jq-1.62018-11-02T01:54:23+00:00## New in this release since 1.5:
- Destructuring Alternation
- New Builtins:
- `builtins/0`
- `stderr/0`
- `halt/0, halt_error/1`
- `isempty/1`
- `walk/1`
- `utf8bytelength/1`
- `localtime/0, strflocaltime/1`
- SQL-style builtins
- and more!
- Add support for ASAN and UBSAN
- Make it easier to use jq with shebangs (8f6f28c)
- Add `$ENV` builtin variable to access environment
- Add `JQ_COLORS` env var for configuring the output colors
## Bug fixes:
- Calling `jq` without a program argument now always assumes `.` for the program, regardless of stdin/stdout. (5fe0536)
- Make sorting stable regardless of qsort. (7835a72)
- Adds a local oniguruma submodule and the `./configure --with-oniguruma=builtin` option to make it easier to build with oniguruma support on systems where you can't install system-level libraries. (c6374b6 and 02bad4b)
- And much more!
2018-11-02T01:54:23+00:00