Skip to content

@wtlangford wtlangford released this Nov 2, 2018 · 128 commits to master since this release

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!
Assets 9
Aug 18, 2018
Restore JV_PRINT_COLOUR as an alias
JV_PRINT_COLOUR was part of the public libjq headers and was removed as
part of 2d05b54. While JV_PRINT_COLOR is definitely the preferred
spelling this side of the pond, we shouldn't just remove otherwise
exposed enum values.
Dec 11, 2017
Update AUTHORS

@nicowilliams nicowilliams released this Aug 16, 2015 · 404 commits to master since this release

Thanks 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 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.

Assets 10
Pre-release

@nicowilliams nicowilliams released this Jul 27, 2015 · 407 commits to master since this release

Thanks 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 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.

Assets 9
Pre-release

@nicowilliams nicowilliams released this Jan 1, 2015 · 580 commits to master since this release

Salient 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 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.

Assets 7

@dtolnay dtolnay released this Aug 8, 2015 · 800 commits to master since this release

The manual for jq 1.4 can be found at https://stedolan.github.io/jq/manual/v1.4/

Assets 11

@dtolnay dtolnay released this Aug 8, 2015 · 1020 commits to master since this release

The manual for jq 1.3 can be found at https://stedolan.github.io/jq/manual/v1.3/

Assets 8

@dtolnay dtolnay released this Aug 8, 2015 · 1131 commits to master since this release

jq 1.2

Assets 2

@dtolnay dtolnay released this Aug 8, 2015 · 1202 commits to master since this release

jq 1.1

Assets 2
You can’t perform that action at this time.