]> granicus.if.org Git - jq/log
jq
9 years agoLook for jq/main.jq for imports
Nicolas Williams [Sat, 3 Jan 2015 01:16:43 +0000 (19:16 -0600)]
Look for jq/main.jq for imports

9 years agoAdd comments to tests/run
Nicolas Williams [Sat, 3 Jan 2015 01:15:57 +0000 (19:15 -0600)]
Add comments to tests/run

9 years agoFix tests/run in from-tar-ball case
Nicolas Williams [Sat, 3 Jan 2015 01:15:11 +0000 (19:15 -0600)]
Fix tests/run in from-tar-ball case

Drop useless use of scripts/version

9 years agoAdd static build instructions (fix #294)
Nicolas Williams [Thu, 1 Jan 2015 22:26:55 +0000 (16:26 -0600)]
Add static build instructions (fix #294)

9 years agoFix warning in util.c jq-1.5rc1
Nicolas Williams [Thu, 1 Jan 2015 21:15:10 +0000 (15:15 -0600)]
Fix warning in util.c

9 years agoInclude missing EXTRA_DIST items; fix #661
Nicolas Williams [Thu, 1 Jan 2015 21:14:49 +0000 (15:14 -0600)]
Include missing EXTRA_DIST items; fix #661

9 years agoAdd mkstemp() for mingw build
Nicolas Williams [Thu, 1 Jan 2015 09:14:55 +0000 (03:14 -0600)]
Add mkstemp() for mingw build

9 years agoFix memleak introduced run-tests enhancement
Nicolas Williams [Thu, 1 Jan 2015 08:12:08 +0000 (02:12 -0600)]
Fix memleak introduced run-tests enhancement

9 years agoAdd more missing test files
Nicolas Williams [Thu, 1 Jan 2015 07:49:40 +0000 (01:49 -0600)]
Add more missing test files

9 years agoAdd missing test file
Nicolas Williams [Thu, 1 Jan 2015 07:39:50 +0000 (01:39 -0600)]
Add missing test file

9 years agoMove some module tests into all.test
Nicolas Williams [Thu, 1 Jan 2015 01:21:45 +0000 (19:21 -0600)]
Move some module tests into all.test

9 years agoFurther module system revamp (fix #659)
Nicolas Williams [Tue, 30 Dec 2014 19:13:30 +0000 (13:13 -0600)]
Further module system revamp (fix #659)

To import a module now use:

    # Import module.jq file:
    import "relative/path/to/module" as foo;

    # Use the module's defs as foo::<def-name>

To import a JSON file:

    # Read file.json:
    import "relative/path/to/file" as $foo;
    #
    # Use as $foo::foo

Using `-L` now drops the builtin library path and appends the requested
path to the empty array (or the result of an earlier `-L`).

Support for the `$JQ_LIBRARY_PATH` environment variable has been
removed.

9 years agoAdd `label $name | EXP`; fix `break`
Nicolas Williams [Sun, 28 Dec 2014 06:32:06 +0000 (00:32 -0600)]
Add `label $name | EXP`; fix `break`

This is to fix the problem where `break` is dynamic, not lexical.

With this it should be possible to do this sort of thing:

    label $break | inputs | if ... then $break|error else . end

This is a backwards-incompatible change for master, but the previous
`break` hadn't shipped yet.

Still needed:

 - testing

9 years agoRemove string indexing by string (fix #454)
Nicolas Williams [Tue, 30 Dec 2014 17:17:58 +0000 (11:17 -0600)]
Remove string indexing by string (fix #454)

This turns out to have been a bad idea:

    "foo"|.["o"]

it interacts badly with `path()`.

See #454 for the gory details.

9 years agoFix parser leak (fuzzing)
Nicolas Williams [Tue, 30 Dec 2014 17:28:15 +0000 (11:28 -0600)]
Fix parser leak (fuzzing)

9 years agoFix lineno counting in jq_test.c
Nicolas Williams [Tue, 30 Dec 2014 17:27:56 +0000 (11:27 -0600)]
Fix lineno counting in jq_test.c

9 years agoAdd support for testing erroneous programs
Nicolas Williams [Tue, 30 Dec 2014 07:04:12 +0000 (01:04 -0600)]
Add support for testing erroneous programs

This will allow moving tests of some tests from tests/run to
tests/all.test.  It will also be useful for more extensive testing of
language features where we want nice error messages, or errors at all,
to be produced, particularly language features where the errors arise at
compile-, codegen-, or link-time rather than parse-time.

This does not check for run-time errors though -- those we can already
check for with try/catch.

    $ jq --run-tests
    %%FAIL
    break
    jq: error: break used outside labeled control structure
    ^D
    1 of 1 tests passed (0 malformed)
    $

9 years agoMake --run-tests more informative
Nicolas Williams [Tue, 30 Dec 2014 16:44:36 +0000 (10:44 -0600)]
Make --run-tests more informative

Print the line number and program text on the same output line where a
failure is reported, for all failures that were already reported on
lines starting with '***'.  This makes poring over test logs with
failures much easier.

9 years agoAllow resetting of jq err callback
Nicolas Williams [Tue, 30 Dec 2014 07:02:56 +0000 (01:02 -0600)]
Allow resetting of jq err callback

This will be useful for the upcoming test-erroneous-programs improvement
to --run-tests, so we can switch between the default error reporting
method (print to stderr) to a method internal to --run-tests, and back.

The idea is that when testing programs that are expected to compile (and
link), it'd be nice if errors continue going to stderr, while when
testing programs that must fail to compile (or link), the error has to
be captured so it can be compared to the error expected by the test.

9 years agoFix streaming bug (fuzzing)
Nicolas Williams [Tue, 30 Dec 2014 07:33:45 +0000 (01:33 -0600)]
Fix streaming bug (fuzzing)

10 years agotranspose/0 for possibly jagged matrices
pkoppstein [Mon, 6 Oct 2014 23:31:08 +0000 (19:31 -0400)]
transpose/0 for possibly jagged matrices

10 years agobsearch(x) (binary search): builtin.c (tested), with documentation and test case...
pkoppstein [Tue, 7 Oct 2014 13:43:11 +0000 (09:43 -0400)]
bsearch(x) (binary search): builtin.c (tested), with documentation and test case. Always yields an integer (even if input is unsorted); returns (-1 - ix) if x is not in input array.

10 years agoascii_upcase/0 and ascii_downcase/0
pkoppstein [Tue, 7 Oct 2014 02:51:13 +0000 (22:51 -0400)]
ascii_upcase/0 and ascii_downcase/0

10 years agoAdd `debug` builtin
Nicolas Williams [Sat, 27 Dec 2014 23:15:56 +0000 (17:15 -0600)]
Add `debug` builtin

And refactor setup of jv dump flags.

10 years agoDon't force C API users to set input cb
Nicolas Williams [Sat, 27 Dec 2014 22:51:39 +0000 (16:51 -0600)]
Don't force C API users to set input cb

10 years agoMake jq --run-tests show test line numbers
Nicolas Williams [Sat, 27 Dec 2014 05:39:05 +0000 (23:39 -0600)]
Make jq --run-tests show test line numbers

10 years agoFix uninitialized struct field
Nicolas Williams [Sun, 28 Dec 2014 00:09:28 +0000 (18:09 -0600)]
Fix uninitialized struct field

10 years agoStreaming parser torture tests
Nicolas Williams [Sat, 27 Dec 2014 03:28:31 +0000 (21:28 -0600)]
Streaming parser torture tests

10 years agoFuzz JSON parser
Nicolas Williams [Sat, 27 Dec 2014 01:31:47 +0000 (19:31 -0600)]
Fuzz JSON parser

10 years agoBetter quoting in tests/run
Nicolas Williams [Sat, 27 Dec 2014 01:31:17 +0000 (19:31 -0600)]
Better quoting in tests/run

10 years agoAdd Streaming parser (--stream)
Nicolas Williams [Tue, 23 Dec 2014 05:06:27 +0000 (23:06 -0600)]
Add Streaming parser (--stream)

Streaming means that outputs are produced as soon as possible.  With the
`foreach` syntax one can write programs which reduce portions of the
streaming parse of a large input (reduce into proper JSON values, for
example), and discard the rest, processing incrementally.

This:

    $ jq -c --stream .

should produce the same output as this:

    $ jq -c '. as $dot | path(..) as $p | $dot | getpath($p) | [$p,.]'

The output of `jq --stream .` should be a sequence of`[[<path>],<leaf>]`
and `[[<path>]]` values.  The latter indicate that the array/object at
that path ended.

Scalars and empty arrays and objects are leaf values for this purpose.

For example, a truncated input produces a path as soon as possible, then
later the error:

    $ printf '[0,\n'|./jq -c --stream .
    [[0],0]
    parse error: Unfinished JSON term at EOF at line 3, column 0
    $

10 years agoAllow C-coded functions to `empty`
Nicolas Williams [Fri, 26 Dec 2014 20:37:38 +0000 (14:37 -0600)]
Allow C-coded functions to `empty`

Just return a jv_invalid() without a message.

10 years agoAdd BLOCK_8() macro
Nicolas Williams [Fri, 26 Dec 2014 09:31:54 +0000 (03:31 -0600)]
Add BLOCK_8() macro

10 years agoFix `foreach` non-progation of errors
Nicolas Williams [Fri, 26 Dec 2014 09:31:01 +0000 (03:31 -0600)]
Fix `foreach` non-progation of errors

Errors were being re-propagated as "break".

Also add `error/0` builtin, which made this fix easier.

10 years agoAllow zero-length buffers in jv_parser_set_buf()
Nicolas Williams [Sat, 27 Dec 2014 00:29:56 +0000 (18:29 -0600)]
Allow zero-length buffers in jv_parser_set_buf()

If the caller is at EOF and has no more bytes to feed the parser, how is
the parser to be told about the EOF condition?  A small fix to allow
zero-length buffers in jv_parser_set_buf() fixes this problem (it also
makes it easier to deal with async I/O: feed the parser whatever is
available, including nothing).

10 years agoFix in and inside
Nicolas Williams [Sat, 27 Dec 2014 04:49:32 +0000 (22:49 -0600)]
Fix in and inside

10 years agoMerge pull request #624 from Janrain-Colin/patch-1
Nico Williams [Sat, 27 Dec 2014 04:14:17 +0000 (22:14 -0600)]
Merge pull request #624 from Janrain-Colin/patch-1

Doc correction

10 years agoMerge pull request #366 from slapresta/inversed-contains
Nico Williams [Sat, 27 Dec 2014 04:00:41 +0000 (22:00 -0600)]
Merge pull request #366 from slapresta/inversed-contains

Added `in` command

10 years agoMerge pull request #628 from slapresta/map-on-objects
Nico Williams [Sat, 27 Dec 2014 03:50:11 +0000 (21:50 -0600)]
Merge pull request #628 from slapresta/map-on-objects

Modify map\1 so that it works on objects

10 years agoFix infinite loop in read_more() (fix #656)
Nicolas Williams [Wed, 24 Dec 2014 22:48:39 +0000 (16:48 -0600)]
Fix infinite loop in read_more() (fix #656)

10 years agoFix EOF handling; fix #656
Nicolas Williams [Wed, 24 Dec 2014 22:07:36 +0000 (16:07 -0600)]
Fix EOF handling; fix #656

10 years agoMerge pull request #651 from eiiches/fix-examples
Nico Williams [Wed, 24 Dec 2014 17:29:29 +0000 (11:29 -0600)]
Merge pull request #651 from eiiches/fix-examples

Fix several errors in the manual

10 years agoAdd @tsv; fix #645
Nicolas Williams [Wed, 24 Dec 2014 17:18:53 +0000 (11:18 -0600)]
Add @tsv; fix #645

10 years agoMerge pull request #653 from msabramo/patch-1
Nico Williams [Wed, 24 Dec 2014 17:20:47 +0000 (11:20 -0600)]
Merge pull request #653 from msabramo/patch-1

.travis.yml: Set sudo false; use containers

10 years agoModule search revamp for pkg managers
Nicolas Williams [Mon, 24 Nov 2014 23:58:34 +0000 (17:58 -0600)]
Module search revamp for pkg managers

The search path listed in an import directive can now be an array.  The
top-level search path is appended.  Null and empty strings in the path
terminate any search.  The "." in "." and "./*" is replaced with the
directory containing the file doing the import (for command-line
programs this is the current directory, though that may be a bad idea).

No version numbers or anything of the sort are gratuitously added to the
search paths.

All this makes external package managers possible by allowing
dependencies to be installed local to dependents.

10 years agoFix bug caused by 8ca07a0
Nicolas Williams [Wed, 24 Dec 2014 08:24:53 +0000 (02:24 -0600)]
Fix bug caused by 8ca07a0

10 years agoFix #348: reject unescaped control chars
Nicolas Williams [Wed, 24 Dec 2014 06:01:43 +0000 (00:01 -0600)]
Fix #348: reject unescaped control chars

10 years agoMerge pull request #601 from slapresta/redefine-any-all
Nico Williams [Wed, 24 Dec 2014 05:37:25 +0000 (23:37 -0600)]
Merge pull request #601 from slapresta/redefine-any-all

Define {any,all}/0,1 in terms of {any,all}/2

10 years agoUse __attribute__ __printf__ with GCC
Nicolas Williams [Wed, 24 Dec 2014 03:52:03 +0000 (21:52 -0600)]
Use __attribute__ __printf__ with GCC

10 years agoMake `values` faster (fix #652)
Nicolas Williams [Wed, 24 Dec 2014 05:22:43 +0000 (23:22 -0600)]
Make `values` faster (fix #652)

10 years agoFix #649
Nicolas Williams [Wed, 24 Dec 2014 00:15:56 +0000 (18:15 -0600)]
Fix #649

10 years ago.travis.yml: Set sudo false; use containers 653/head
Marc Abramowitz [Tue, 23 Dec 2014 05:37:23 +0000 (21:37 -0800)]
.travis.yml: Set sudo false; use containers

This is the way to enable Travis's fancy new containers, which should result in faster builds.

10 years agoDefine `map_values` 628/head
Santiago Lapresta [Mon, 22 Dec 2014 22:05:35 +0000 (23:05 +0100)]
Define `map_values`

10 years ago`in` is now `inside`, added `in` as inverse of `has` 366/head
Santiago Lapresta [Wed, 21 May 2014 21:28:27 +0000 (23:28 +0200)]
`in` is now `inside`, added `in` as inverse of `has`

10 years agoAdded `in` command
Santiago Lapresta [Tue, 20 May 2014 14:54:50 +0000 (16:54 +0200)]
Added `in` command

10 years agoFix examples in manual 651/head
Eiichi Sato [Sat, 20 Dec 2014 18:22:38 +0000 (03:22 +0900)]
Fix examples in manual

10 years agoFix indents in manual.yml
Eiichi Sato [Sat, 20 Dec 2014 18:16:32 +0000 (03:16 +0900)]
Fix indents in manual.yml

10 years agoHTML-escape jq programs in manual
Eiichi Sato [Sat, 20 Dec 2014 17:20:28 +0000 (02:20 +0900)]
HTML-escape jq programs in manual

10 years agoFix examples in manual
Eiichi Sato [Sat, 20 Dec 2014 16:45:50 +0000 (01:45 +0900)]
Fix examples in manual

10 years agoMerge pull request #611 from StevenMaude/tutorial-typo-fixes
Nico Williams [Fri, 12 Dec 2014 23:46:17 +0000 (17:46 -0600)]
Merge pull request #611 from StevenMaude/tutorial-typo-fixes

Fix typos in tutorial

10 years agoMerge pull request #616 from ianmiell/ianmiell_requirements
Nico Williams [Fri, 12 Dec 2014 23:45:17 +0000 (17:45 -0600)]
Merge pull request #616 from ianmiell/ianmiell_requirements

Requirements made slightly more complete

10 years agoAdd until(cond; next); fix #639
Nicolas Williams [Fri, 12 Dec 2014 23:35:59 +0000 (17:35 -0600)]
Add until(cond; next); fix #639

10 years agoFix #647, but caused by 89791a0
Nicolas Williams [Fri, 12 Dec 2014 22:58:23 +0000 (16:58 -0600)]
Fix #647, but caused by 89791a0

10 years agoAdd --argjson, fix #648
Nicolas Williams [Fri, 12 Dec 2014 22:40:07 +0000 (16:40 -0600)]
Add --argjson, fix #648

10 years agoMerge pull request #642 from Janrain-Colin/patch-3
Nico Williams [Fri, 12 Dec 2014 22:03:18 +0000 (16:03 -0600)]
Merge pull request #642 from Janrain-Colin/patch-3

fix typo in manual

10 years agofix typo in manual 642/head
Colin von Heuring [Sun, 7 Dec 2014 00:27:43 +0000 (16:27 -0800)]
fix typo in manual

10 years agoFix refcount leak, fix #618
Nicolas Williams [Sat, 29 Nov 2014 21:24:43 +0000 (15:24 -0600)]
Fix refcount leak, fix #618

10 years agoSTOREV/LOADV* should also print refcnts
Nicolas Williams [Sat, 29 Nov 2014 02:52:08 +0000 (20:52 -0600)]
STOREV/LOADV* should also print refcnts

10 years agoEnable printing of stack val refcnts
Nicolas Williams [Sat, 29 Nov 2014 01:35:29 +0000 (19:35 -0600)]
Enable printing of stack val refcnts

10 years agoPrint stack value refcounts when tracing (#636)
Nicolas Williams [Sat, 29 Nov 2014 00:56:06 +0000 (18:56 -0600)]
Print stack value refcounts when tracing (#636)

10 years agoDoc correction 624/head
Colin von Heuring [Sun, 23 Nov 2014 19:37:50 +0000 (11:37 -0800)]
Doc correction

10 years agoFix #600. Add regression test
William Langford [Thu, 13 Nov 2014 01:46:34 +0000 (20:46 -0500)]
Fix #600.  Add regression test

10 years agoRequirements made slightly more complete: cf https://github.com/ianmiell/shutit/blob... 616/head
Ian Miell [Tue, 11 Nov 2014 23:02:31 +0000 (23:02 +0000)]
Requirements made slightly more complete: cf https://github.com/ianmiell/shutit/blob/master/library/jq/jq.py

10 years agoFix typos in tutorial 611/head
Steven Maude [Wed, 5 Nov 2014 10:47:37 +0000 (10:47 +0000)]
Fix typos in tutorial

parrent > parent, url > URL

10 years agoDefine {any,all}/2 independently from {any,all}/0 601/head
Santiago Lapresta [Tue, 21 Oct 2014 11:00:38 +0000 (13:00 +0200)]
Define {any,all}/2 independently from {any,all}/0

10 years agoDefine {any,all}/{0,1} in terms of {any,all}/2
Santiago Lapresta [Mon, 20 Oct 2014 16:16:03 +0000 (18:16 +0200)]
Define {any,all}/{0,1} in terms of {any,all}/2

10 years agoAdd support for JSON sequence MIME type
Nicolas Williams [Sat, 11 Oct 2014 03:19:38 +0000 (22:19 -0500)]
Add support for JSON sequence MIME type

Per draft-ietf-json-text-sequence-07 (which soon will be published as an
RFC).

10 years agoProperly call onig_error_code_to_str
William Langford [Tue, 7 Oct 2014 01:48:17 +0000 (21:48 -0400)]
Properly call onig_error_code_to_str

Fix #585

10 years agofix sub (#586); add gsub/3; add transpose/0.
pkoppstein [Mon, 6 Oct 2014 18:37:57 +0000 (14:37 -0400)]
fix sub (#586); add gsub/3; add transpose/0.

Signed-off-by: William Langford <wlangfor@gmail.com>
10 years agoRestore `split/1`; don't use regexp (fix #576)
Nicolas Williams [Fri, 3 Oct 2014 22:52:11 +0000 (17:52 -0500)]
Restore `split/1`; don't use regexp (fix #576)

10 years agoUpdate docs about sort/group/min/max/unique
Nicolas Williams [Fri, 3 Oct 2014 22:56:39 +0000 (17:56 -0500)]
Update docs about sort/group/min/max/unique

10 years agofrom-entries should work with EC2 (fix #592)
Nicolas Williams [Fri, 3 Oct 2014 22:35:01 +0000 (17:35 -0500)]
from-entries should work with EC2 (fix #592)

10 years agoRemove sort/1 and group/1
Nicolas Williams [Fri, 3 Oct 2014 22:14:30 +0000 (17:14 -0500)]
Remove sort/1 and group/1

Reserve these for sorting with jq-coded comparators.

10 years agoto_entries should not sort keys (fix #561)
Nicolas Williams [Wed, 1 Oct 2014 02:49:37 +0000 (21:49 -0500)]
to_entries should not sort keys (fix #561)

10 years agoProperly handle when objects cannot be folded
William Langford [Tue, 23 Sep 2014 00:11:07 +0000 (20:11 -0400)]
Properly handle when objects cannot be folded

Fix #579.

10 years agoDrop the jq version directory from search path
Nicolas Williams [Sat, 30 Aug 2014 05:58:24 +0000 (00:58 -0500)]
Drop the jq version directory from search path

10 years agoNever close stdin; allow multiple `-` arguments
Nicolas Williams [Sat, 30 Aug 2014 05:28:41 +0000 (00:28 -0500)]
Never close stdin; allow multiple `-` arguments

10 years agoHandle invalid inputs in argument files (fix #562)
Nicolas Williams [Sat, 30 Aug 2014 05:27:26 +0000 (00:27 -0500)]
Handle invalid inputs in argument files (fix #562)

10 years agoProperly handle incomplete json when input is file
William Langford [Fri, 29 Aug 2014 01:51:33 +0000 (21:51 -0400)]
Properly handle incomplete json when input is file

Fix #562

10 years agoC-coded builtins should not assert (fix #553)
Nicolas Williams [Thu, 21 Aug 2014 05:04:38 +0000 (00:04 -0500)]
C-coded builtins should not assert (fix #553)

10 years agoQuiet warning about freopen() of stdout
Nicolas Williams [Thu, 21 Aug 2014 01:49:30 +0000 (20:49 -0500)]
Quiet warning about freopen() of stdout

10 years agoDrop "any/" in module search; use 1.x-master
Nicolas Williams [Thu, 21 Aug 2014 01:48:48 +0000 (20:48 -0500)]
Drop "any/" in module search; use 1.x-master

10 years agoBSD sed lacks -r; fix #551
Nicolas Williams [Thu, 14 Aug 2014 08:31:25 +0000 (03:31 -0500)]
BSD sed lacks -r; fix #551

10 years agoDocument module system
Nicolas Williams [Tue, 12 Aug 2014 05:51:51 +0000 (00:51 -0500)]
Document module system

    Fix #511.

10 years agoAdd `module` directive, `modulemeta` builtin
Nicolas Williams [Sun, 10 Aug 2014 21:52:03 +0000 (16:52 -0500)]
Add `module` directive, `modulemeta` builtin

    Fix #425.

10 years agoAdd JV_OBJECT() macro
Nicolas Williams [Thu, 14 Aug 2014 08:03:59 +0000 (03:03 -0500)]
Add JV_OBJECT() macro

10 years agoAdd JV_ARRAY() macro
Nicolas Williams [Thu, 14 Aug 2014 08:07:20 +0000 (03:07 -0500)]
Add JV_ARRAY() macro

10 years agoAdd jq_report_error() function; use it
Nicolas Williams [Mon, 11 Aug 2014 22:25:09 +0000 (17:25 -0500)]
Add jq_report_error() function; use it

    Put a stop to fprintf(stderr, ...) where we shouldn't.

10 years agoFix #549
Nicolas Williams [Mon, 11 Aug 2014 19:58:01 +0000 (14:58 -0500)]
Fix #549

10 years agoConstant fold objects
Nicolas Williams [Sun, 10 Aug 2014 01:47:03 +0000 (20:47 -0500)]
Constant fold objects