]>
granicus.if.org Git - jq/log
Nicolas Williams [Sat, 9 Aug 2014 00:31:11 +0000 (19:31 -0500)]
Make regexp builtins and range/3 use #524 too
Nicolas Williams [Sat, 9 Aug 2014 00:23:46 +0000 (19:23 -0500)]
Use `def f($a): ...;` syntax for builtins
Nicolas Williams [Fri, 8 Aug 2014 23:00:47 +0000 (18:00 -0500)]
Add `def f($arg):` syntax (fix #524)
Nicolas Williams [Fri, 8 Aug 2014 23:00:01 +0000 (18:00 -0500)]
Fix tests for #432
Nicolas Williams [Fri, 8 Aug 2014 22:46:47 +0000 (17:46 -0500)]
Fix docs YAML (introduced in #432)
pkoppstein [Fri, 1 Aug 2014 00:32:44 +0000 (20:32 -0400)]
regex filters (#432): scan, splits, split, sub, gsub
Nicolas Williams [Wed, 6 Aug 2014 22:50:28 +0000 (17:50 -0500)]
Better error msg for bad shell quoting (fix #538)
William Langford [Tue, 5 Aug 2014 03:54:30 +0000 (23:54 -0400)]
Actually check version for bison.
Clean up oniguruma checks.
William Langford [Tue, 5 Aug 2014 17:41:59 +0000 (13:41 -0400)]
Merge pull request #532 from wtlangford/top-removal
Remove duplicate TOP insertions, drop unused defs.
Nicolas Williams [Tue, 5 Aug 2014 06:14:23 +0000 (01:14 -0500)]
Document TCO a bit more
Nicolas Williams [Tue, 5 Aug 2014 06:14:04 +0000 (01:14 -0500)]
Fix docs (missing backquotes)
William Langford [Tue, 5 Aug 2014 04:50:21 +0000 (00:50 -0400)]
Merge pull request #523 from eproxus/patch-1
Add example of selecting object with keys
William Langford [Tue, 5 Aug 2014 04:46:10 +0000 (00:46 -0400)]
Remove duplicate TOP insertions, drop unused defs.
pkoppstein [Sun, 3 Aug 2014 23:49:02 +0000 (19:49 -0400)]
Apply TCO to recurse/1, add recurse/2; tweak docs
Signed-off-by: Nicolas Williams <nico@cryptonector.com>
Adam Lindberg [Fri, 1 Aug 2014 10:13:35 +0000 (12:13 +0200)]
Add example of selecting object with keys
It is not very straight forward how to select objects by their attributes from an array. This example provides the basic use case of how to select some objects based key values.
Nicolas Williams [Fri, 1 Aug 2014 05:20:30 +0000 (00:20 -0500)]
Some builtins are unnecessarily special (fix #521)
Nicolas Williams [Wed, 30 Jul 2014 18:19:46 +0000 (13:19 -0500)]
Correct @wtlangford's address
Nicolas Williams [Wed, 30 Jul 2014 18:02:34 +0000 (13:02 -0500)]
Add @wtlangford to the AUTHORS list
pkoppstein [Sat, 19 Jul 2014 05:08:38 +0000 (01:08 -0400)]
Add capture; document regular expression filters
Fix #493.
Nicolas Williams [Mon, 28 Jul 2014 18:18:58 +0000 (13:18 -0500)]
Add `first`, `nth`, `last` (fix #510)
William Langford [Wed, 23 Jul 2014 07:33:04 +0000 (03:33 -0400)]
Fixing crash when a library's dependency could not be loaded.
Signed-off-by: Nicolas Williams <nico@cryptonector.com>
Nicolas Williams [Sun, 27 Jul 2014 22:33:22 +0000 (17:33 -0500)]
Fold constants (fix #504)
Nicolas Williams [Sun, 27 Jul 2014 22:41:40 +0000 (17:41 -0500)]
Fix #499, #500
William Langford [Tue, 22 Jul 2014 00:08:42 +0000 (20:08 -0400)]
Changing color codes to fix #495
Nicolas Williams [Wed, 23 Jul 2014 03:49:30 +0000 (22:49 -0500)]
Do fix remaining bison warning (fix #433)
Nicolas Williams [Wed, 23 Jul 2014 03:44:52 +0000 (22:44 -0500)]
Rename jq_memmem() to _jq_memmem()
William Langford [Wed, 9 Jul 2014 04:55:20 +0000 (00:55 -0400)]
Added library system with -l, -L, and JQ_LIBRARY_PATH
Created util.[ch] to hold common utilities.
Nicolas Williams [Sun, 20 Jul 2014 05:11:23 +0000 (00:11 -0500)]
Add -i option to edit files in place (fix #105)
Nicolas Williams [Sun, 20 Jul 2014 05:04:24 +0000 (00:04 -0500)]
Add -n to short usage msg; fix --arg msg
Nicolas Williams [Mon, 14 Jul 2014 20:39:43 +0000 (15:39 -0500)]
Fix bison empty rule warnings (#433, partial fix)
Nicolas Williams [Mon, 14 Jul 2014 20:38:58 +0000 (15:38 -0500)]
Fix #484, try/catch syntax has conflicts
Nico Williams [Mon, 14 Jul 2014 14:16:01 +0000 (09:16 -0500)]
Merge pull request #483 from else/master
jq 1.4 is in Debian
Simon Elsbrock [Mon, 14 Jul 2014 09:24:47 +0000 (11:24 +0200)]
jq 1.4 is in Debian
jq 1.4 is in Debian, please see https://tracker.debian.org/pkg/jq
Nico Williams [Mon, 14 Jul 2014 00:01:57 +0000 (19:01 -0500)]
Merge pull request #482 from mbruggmann/manual-fixes
Fix manual example for `endswith`.
Nicolas Williams [Mon, 14 Jul 2014 00:00:37 +0000 (19:00 -0500)]
Add regression test for #479
Nicolas Williams [Sun, 13 Jul 2014 23:36:27 +0000 (18:36 -0500)]
Lib defs don't bind to each other; fix #479 again
Marc Bruggmann [Sun, 13 Jul 2014 17:01:45 +0000 (19:01 +0200)]
Fix manual example for `endswith`.
Nicolas Williams [Sun, 13 Jul 2014 07:04:27 +0000 (02:04 -0500)]
Revert "Library defs don't bind to each other; fix #479"
This reverts commit
6b6e3f42627f360cbbad2287968b2a209ab43593 . It was
the wrong fix.
Nicolas Williams [Sat, 12 Jul 2014 23:37:23 +0000 (18:37 -0500)]
Library defs don't bind to each other; fix #479
Nicolas Williams [Fri, 11 Jul 2014 00:20:58 +0000 (19:20 -0500)]
Fix #478 assertion failure
Nico Williams [Wed, 9 Jul 2014 15:09:28 +0000 (10:09 -0500)]
Merge pull request #475 from qqshfox/patch-1
Fix examples for `del` in manual
Hanfei Shen [Wed, 9 Jul 2014 08:31:25 +0000 (16:31 +0800)]
Fix examples for `del` in manual
Zhiming Wang [Wed, 9 Jul 2014 03:32:00 +0000 (20:32 -0700)]
Fix invalid YAML in manual.yml
Grave accent "`" is a reserved indicator in YAML per
http://www.yaml.org/spec/1.2/spec.html#id2774228, so it can't start a
plain scalar. This commit applies quoting to titles beginning with
grave accents.
Signed-off-by: Nicolas Williams <nico@cryptonector.com>
Zhiming Wang [Wed, 9 Jul 2014 03:55:50 +0000 (20:55 -0700)]
Add tests/all.trs to .gitignore
tests/all.trs is auto generated during make check.
Signed-off-by: Nicolas Williams <nico@cryptonector.com>
Nicolas Williams [Wed, 9 Jul 2014 06:05:06 +0000 (01:05 -0500)]
Better document `path()`'s power; also `|=`
Nicolas Williams [Wed, 9 Jul 2014 05:43:06 +0000 (00:43 -0500)]
Add `foreach EXP as $var (INIT; UPDATE)` form
Nicolas Williams [Wed, 9 Jul 2014 05:39:25 +0000 (00:39 -0500)]
Make `while()` handle `break`
Nicolas Williams [Tue, 8 Jul 2014 03:49:46 +0000 (22:49 -0500)]
Make C-coded built-ins take `jq_state *` argument
Nicolas Williams [Tue, 8 Jul 2014 03:26:53 +0000 (22:26 -0500)]
`error(x)` should not `tostring` its arg; fix #466
Nicolas Williams [Tue, 8 Jul 2014 03:26:07 +0000 (22:26 -0500)]
`limit` should use `break`
Nicolas Williams [Tue, 8 Jul 2014 03:25:34 +0000 (22:25 -0500)]
Make `any/2` and `all/2` efficient using `foreach`
Nicolas Williams [Mon, 23 Dec 2013 23:13:19 +0000 (17:13 -0600)]
exec_stack.h was not using jv_mem_realloc()
Nicolas Williams [Tue, 24 Dec 2013 18:24:14 +0000 (12:24 -0600)]
jv_invalid() shouldn't allocate
jv_invalid() should behave like jv_invalid_with_msg(jv_null()), and
neither should allocate memory, because neither ought to need to.
Nicolas Williams [Wed, 1 Jan 2014 05:25:20 +0000 (23:25 -0600)]
jv_show() should be able to display invalid values
Nicolas Williams [Mon, 7 Jul 2014 23:48:13 +0000 (18:48 -0500)]
Add `break` builtin for `foreach`
Nicolas Williams [Mon, 7 Jul 2014 22:22:53 +0000 (17:22 -0500)]
Explain `foreach`'s powers a bit more
Nicolas Williams [Mon, 7 Jul 2014 22:13:51 +0000 (17:13 -0500)]
Document `path(path_expression)` builtin
Nicolas Williams [Mon, 7 Jul 2014 22:13:48 +0000 (17:13 -0500)]
Add missing backtick in manual
Nicolas Williams [Mon, 7 Jul 2014 21:52:23 +0000 (16:52 -0500)]
$var["foo"]=1 can't work as expected; doc fix #236
Nicolas Williams [Mon, 7 Jul 2014 21:03:32 +0000 (16:03 -0500)]
Better check for lib has only functions (fix #138)
Nicolas Williams [Mon, 7 Jul 2014 01:08:06 +0000 (20:08 -0500)]
Add `any/N` and `all/N` x N in (1, 2) (fix #455)
Contributed by @pkoppstein.
Nicolas Williams [Sun, 6 Jul 2014 08:24:29 +0000 (03:24 -0500)]
Add `foreach` and `limit`
William Langford [Fri, 4 Jul 2014 16:08:47 +0000 (12:08 -0400)]
Add support for negative indices for .[]; fix #462
Signed-off-by: Nicolas Williams <nico@cryptonector.com>
Nicolas Williams [Sun, 6 Jul 2014 05:11:55 +0000 (00:11 -0500)]
Add general `?` operator
Nicolas Williams [Sun, 6 Jul 2014 01:54:42 +0000 (20:54 -0500)]
Add `try EXP catch EXP`
Nicolas Williams [Sun, 6 Jul 2014 05:26:22 +0000 (00:26 -0500)]
Document `error/1`
Nicolas Williams [Thu, 3 Jul 2014 02:45:49 +0000 (21:45 -0500)]
Add `while(cond; update)` (fix #314)
Nicolas Williams [Thu, 3 Jul 2014 02:22:53 +0000 (21:22 -0500)]
Add `range(init;upto;by)` (fix #317)
Nicolas Williams [Wed, 2 Jul 2014 07:18:10 +0000 (02:18 -0500)]
Multi-arity needs better errors (fix #438)
Nicolas Williams [Wed, 2 Jul 2014 04:32:44 +0000 (23:32 -0500)]
Descrive generators, range() with by to manual
Nicolas Williams [Wed, 2 Jul 2014 04:32:40 +0000 (23:32 -0500)]
Fix typo in manual
William Langford [Tue, 1 Jul 2014 17:17:48 +0000 (13:17 -0400)]
Fixed base64 issue with UTF-8 strings
Signed-off-by: Nicolas Williams <nico@cryptonector.com>
Nicolas Williams [Wed, 2 Jul 2014 03:49:25 +0000 (22:49 -0500)]
Teach disassembler about TAIL_CALL_JQ
Nicolas Williams [Wed, 2 Jul 2014 03:40:40 +0000 (22:40 -0500)]
Fix off-by-one in TCO
Now we have the ability to define a generator in jq:
def for(cond; update):
def _for:
if cond then ., (update | _for) else . end;
_for;
for(. < 10; . + 1) # generates numbers between `.` and 10
Running this by hand with --debug-dump-disasm (with a fix for that
coming up next) we can see that the call to _for is optimized:
_for:0:
0000 DUP
0001 CALL_JQ cond:0^1
0005 JUMP_F 0022
0007 POP
0008 FORK 0012
0010 JUMP 0020
0012 CALL_JQ update:1^1
0016 TAIL_CALL_JQ _for:0^1
0020 JUMP 0023
0022 POP
0023 RET
And timing this with 1000, 10000, 100000 iterations shows that
indeed we must be applying TCO; otherwise, without TCO, this gets
very slow very quickly.
Nicolas Williams [Tue, 1 Jul 2014 04:41:20 +0000 (23:41 -0500)]
TCO to the max!
Close #446.
Currently tested by disassembling and tracing various recursive jq
programs by hand under valgrind. An improved test framework that
can test for errors and specific bytecode patterns is in
development.
William Langford [Wed, 25 Jun 2014 07:13:17 +0000 (03:13 -0400)]
Added cross-compilation script to build libjq for iOS.
Signed-off-by: Nicolas Williams <nico@cryptonector.com>
Zhiming Wang [Mon, 30 Jun 2014 02:48:01 +0000 (19:48 -0700)]
Let @uri produce uppercase hexadecimal digits...
instead of lowercase ones.
According to RFC 3986,
The uppercase hexadecimal digits 'A' through 'F' are equivalent to
the lowercase digits 'a' through 'f', respectively. If two URIs
differ only in the case of hexadecimal digits used in percent-encoded
octets, they are equivalent. For consistency, URI producers and
normalizers should use uppercase hexadecimal digits for all percent-
encodings.
See https://github.com/stedolan/jq/issues/451 for details.
Test suite and manual are also updated to reflect this change.
Signed-off-by: Nicolas Williams <nico@cryptonector.com>
Nicolas Williams [Tue, 1 Jul 2014 00:40:56 +0000 (19:40 -0500)]
Add much commentary about CALL_JQ and call frames
Nicolas Williams [Tue, 24 Jun 2014 05:39:00 +0000 (00:39 -0500)]
Get "Try Online" button working (fix #440)
Nicolas Williams [Tue, 24 Jun 2014 00:59:00 +0000 (19:59 -0500)]
Improve TCO
Instead of checking for self-recursion check that the thing we're
calling is a function and not a closure, therefore the new frame will
have the same env as the current frame.
Nicolas Williams [Sun, 22 Jun 2014 05:24:02 +0000 (00:24 -0500)]
Tail call optimization (close #437)
Nicolas Williams [Sat, 21 Jun 2014 23:01:00 +0000 (18:01 -0500)]
Fix option stacking bug
Nicolas Williams [Sat, 21 Jun 2014 04:29:53 +0000 (23:29 -0500)]
Remove stray fprintf() from last commit
Nicolas Williams [Sat, 21 Jun 2014 04:26:54 +0000 (23:26 -0500)]
Allow stacking of short options (fix #346)
Nicolas Williams [Thu, 19 Jun 2014 02:11:06 +0000 (21:11 -0500)]
Remove extra free of testmode
I added a jv_free() too many while rebasing @wtlangford's contribution.
It could only be triggered by calling `_match_impl` directly.
William Langford [Wed, 18 Jun 2014 23:49:38 +0000 (19:49 -0400)]
Added regex support as per issue #164.
jq now depends on oniguruma for regex support.
Modified configure.ac accordingly.
Added valgrind suppression file for oniguruma to prevent one-time and bounded
leaks from causing tests to fail.
Signed-off-by: Nicolas Williams <nico@cryptonector.com>
Nicolas Williams [Wed, 18 Jun 2014 21:29:37 +0000 (16:29 -0500)]
Partial revamp of `scripts/crosscompile`
Fix #430.
Nicolas Williams [Wed, 18 Jun 2014 00:04:55 +0000 (19:04 -0500)]
Minor style cleanup in main.c
Nicolas Williams [Wed, 18 Jun 2014 00:02:23 +0000 (19:02 -0500)]
Remove remnants of `--online-input` option
Nicolas Williams [Tue, 17 Jun 2014 23:59:35 +0000 (18:59 -0500)]
Add `-j` / `--join-output` option, similar to `-r`
Fix #215.
David Haguenauer [Thu, 20 Mar 2014 20:31:09 +0000 (21:31 +0100)]
Fixed typo.
Signed-off-by: Nicolas Williams <nico@cryptonector.com>
Nicolas Williams [Tue, 17 Jun 2014 23:13:35 +0000 (18:13 -0500)]
Rebuild jq.1.prebuilt
Nicolas Williams [Tue, 17 Jun 2014 23:13:14 +0000 (18:13 -0500)]
Remove trailing whitespace from manual.yml
Nicolas Williams [Tue, 17 Jun 2014 23:11:31 +0000 (18:11 -0500)]
Use new style in manual for defs with args
Santiago Lapresta [Tue, 17 Jun 2014 22:15:22 +0000 (00:15 +0200)]
Simplified standard library
Close #426.
Signed-off-by: Nicolas Williams <nico@cryptonector.com>
Nicolas Williams [Tue, 17 Jun 2014 22:00:23 +0000 (17:00 -0500)]
Fix #419, improve Cannot index message (sortof)
jv_get() doesn't know if it's being called in the context of a jq
program or not, so it can't produce a very useful error message when the
types of the to-be-indexed value and the key don't agree. For now,
including the key (when it is a short string) in the error message is as
significant an improvement as is easy to make.
Nicolas Williams [Tue, 17 Jun 2014 21:47:12 +0000 (16:47 -0500)]
Fix #266; make help message more useful
Nicolas Williams [Tue, 17 Jun 2014 03:40:44 +0000 (22:40 -0500)]
Fix #280: from_entries of [] is null, should be {}
Nicolas Williams [Tue, 17 Jun 2014 02:28:30 +0000 (21:28 -0500)]
No args default w/ tty stdout, not tty stdin #220
Nicolas Williams [Tue, 17 Jun 2014 03:33:24 +0000 (22:33 -0500)]
Don't declare environ on WIN32