Nicolas Williams
436941d48b
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.
2014-06-30 23:41:20 -05:00
Nicolas Williams
1204e328df
Add much commentary about CALL_JQ and call frames
2014-06-30 19:40:56 -05:00
Nicolas Williams
3e1baf5916
Get "Try Online" button working ( fix #440 )
2014-06-24 00:39:00 -05:00
Nicolas Williams
beb0d081bb
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.
2014-06-23 19:59:00 -05:00
Nicolas Williams
4b7c701fdd
Tail call optimization ( close #437 )
2014-06-22 00:24:02 -05:00
Nicolas Williams
233e32208c
Fix option stacking bug
2014-06-21 18:01:00 -05:00
Nicolas Williams
63e31c2a35
Remove stray fprintf() from last commit
2014-06-20 23:29:53 -05:00
Nicolas Williams
f9349becab
Allow stacking of short options ( fix #346 )
2014-06-20 23:26:54 -05:00
Nicolas Williams
ff5cf0abc7
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.
2014-06-18 21:11:06 -05:00
Nicolas Williams
5d9d1b1020
Partial revamp of scripts/crosscompile
...
Fix #430 .
2014-06-18 16:29:37 -05:00
Nicolas Williams
8725d9fa3e
Minor style cleanup in main.c
2014-06-17 19:04:55 -05:00
Nicolas Williams
9ae2d66d21
Remove remnants of --online-input option
2014-06-17 19:02:23 -05:00
Nicolas Williams
0c762925b2
Add -j / --join-output option, similar to -r
...
Fix #215 .
2014-06-17 18:59:35 -05:00
Nicolas Williams
cf7895876b
Rebuild jq.1.prebuilt
2014-06-17 18:17:50 -05:00
Nicolas Williams
f902d5fae6
Remove trailing whitespace from manual.yml
2014-06-17 18:17:50 -05:00
Nicolas Williams
98e3ebc378
Use new style in manual for defs with args
2014-06-17 18:17:50 -05:00
Nicolas Williams
7ee3b724d1
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.
2014-06-17 17:00:23 -05:00
Nicolas Williams
e151a300d0
Fix #266 ; make help message more useful
2014-06-17 16:47:12 -05:00
Nicolas Williams
f58f771660
Fix #280 : from_entries of [] is null, should be {}
2014-06-16 22:40:44 -05:00
Nicolas Williams
ea63d5d3c2
No args default w/ tty stdout, not tty stdin #220
2014-06-16 22:34:50 -05:00
Nicolas Williams
ea0ffe24f8
Don't declare environ on WIN32
2014-06-16 22:34:37 -05:00
Nicolas Williams
f741074267
Remove download 1.3 button; reposition try online
2014-06-16 17:01:09 -05:00
Nicolas Williams
de5952d67e
Add ChangeLog and NEWS files
2014-06-16 15:29:48 -05:00
Nicolas Williams
a03f4802ef
Add missing contributors to AUTHORS
2014-06-16 15:29:31 -05:00
Nicolas Williams
778ba9f7ab
Update AUTHORS
2014-06-16 13:25:50 -05:00
Nicolas Williams
676e0ce38e
Fix Win64 jq.exe link on main page
2014-06-16 11:13:55 -05:00
Nicolas Williams
088a42fc53
Allow multiple functions with different arities
2014-06-16 00:05:30 -05:00
Nicolas Williams
63dbac28ad
Fix typo; rename jq.1-prebuit to jq.1.prebuilt
2014-06-13 19:04:06 -05:00
Nicolas Williams
e9a1de47b4
Add env builtin
2014-06-13 17:51:41 -05:00
Nicolas Williams
d14fca0cc6
Document the lambda nature of function args #391
2014-06-13 17:22:43 -05:00
Nicolas Williams
bb83813f51
Automatically update jq.1.prebuilt
2014-06-13 17:22:17 -05:00
Nicolas Williams
8225d4e0c5
Add jqplay link to the site
2014-06-13 17:21:56 -05:00
Nicolas Williams
73bd347fcf
Add links to Solaris 11+ executables
2014-06-12 19:26:05 -05:00
Nicolas Williams
c9dbe090c5
Include links to 1.3 executables in gh-pages
2014-06-12 17:30:30 -05:00
Nicolas Williams
61cc0d4fb1
Make a better jq.1 when Ruby deps missing
2014-06-12 17:30:09 -05:00
Nico Williams
15c4a7f95f
Merge pull request #400 from kdeme/master
...
Heuristic IEEE754 endianness autoconf detection
Use AC_C_BIGENDIAN, though it's not really the correct approach. Autoconf ought to have provided a test specifically for IEEE754 endianness, since it can differ from integer/pointer endianness!
2014-06-12 15:55:41 -05:00
Nicolas Williams
e73951f3d1
Add lib.h to dist file list
2014-06-09 18:58:46 -05:00
Nicolas Williams
fdf843c08b
Make the note about shell quoting appear on site
2014-06-09 17:43:17 -05:00
Nicolas Williams
cf145ec65e
Add note about cmd.exe quoting
2014-06-09 10:22:55 -05:00
Nicolas Williams
4889844d0c
Building docs fails on powerpc ( #349 )
...
Thanks @shym!!
2014-06-09 09:39:02 -05:00
Nicolas Williams
dc7857c585
Update site news
2014-06-08 20:45:06 -05:00
Nicolas Williams
d65dbf89c9
Also fix configure.ac to use git describe --tags
2014-06-08 19:36:06 -05:00
Nicolas Williams
ed2b3e26fb
Fix scripts/version: use git describe --tags ...
...
After tagging as 1.4 scripts/version was still producing jq-1.3-....
2014-06-08 19:31:21 -05:00
Nicolas Williams
46436bd870
Add test of indices with short input
2014-06-08 02:27:27 -05:00
Nicolas Williams
1dbe9317bc
Add indices(s), improve index(s), rindex(s)
...
Now these deal with arrays as input and `s` being an array or a scalar.
2014-06-08 02:01:44 -05:00
Nicolas Williams
ef4f3a54fe
Improve index and rindex examples
2014-06-08 02:01:21 -05:00
Nicolas Williams
9af03c2562
Remove reference to getpath from docs
2014-06-08 01:35:03 -05:00
Nicolas Williams
c10e5f4e73
Document index and rindex ( #389 )
2014-06-08 00:00:17 -05:00
Nicolas Williams
6856ab8a69
String * number should be commutative
2014-06-07 21:43:30 -05:00
Nicolas Williams
8212750fe9
Add cross-compilation notes to README
...
A detailed set of instruction as to how to setup a cross-compilation
environment for OS X and Win32/64 would be nice.
2014-06-04 18:36:30 -05:00
Nicolas Williams
35b6b949e3
Add -j option to scripts/crosscompile
2014-06-04 18:36:30 -05:00
Nicolas Williams
d1ea3ab89d
Add flags argument to jv_parser_new()
...
For extensibility. We might add streaming parser options, even binary
JSON encoding options.
2014-06-04 18:35:30 -05:00
Nicolas Williams
ae625d0de7
Revert "Add -I / --online-input for huge top-level arrays"
...
This reverts commit 77936a594d .
There are too many odd bugs in this mode, and it turns out to be a bad
idea anyways. Instead, in the future a better option will be to pursue
alternative parsers, such as:
- streaming parser that outputs only when a new leaf value is added or
an array/object is opened/closed; options here include whether to
include a path in each output;
- parsers for binary JSON encodings (there's a variety of them).
Then one might run jq with a streaming parser and use `reduce` to
coalesce inputs from some depth down (instead of from one level down as
the reverted commit had intended).
Besides, a fully streaming parser is desirable in some cases, therefore
we should have such a thing as an option.
I've explored modifying the current parser to support a streaming
option, but it only makes the code very difficult to follow, which is
one reason that alternate parsers makes sense. At any rate, this is all
for the future. For now there's no streaming of individual texts, just
text sequences.
2014-06-04 18:15:58 -05:00
Nicolas Williams
5fb82d1018
Fix tests failures on Windows
...
And Solaris 8 and 9 too, no doubt. The problem was that non-standard
vsnprintf()s that return -1 when the buffer is too small were not
properly supported.
2014-06-02 00:56:01 -05:00
Nicolas Williams
f9d1b94496
Update .gitignore and config/.gitignore
2014-06-01 22:32:53 -05:00
Nico Williams
854ff5643a
Merge pull request #367 from slapresta/del-docs
...
Documented `del` command
2014-05-20 22:11:01 -05:00
Nico Williams
d46f5d29fa
Merge pull request #360 from slapresta/275-unique-by
...
unique_by(.foo) function
2014-05-12 00:30:55 -05:00
Nicolas Williams
022a418894
Make pthread tls configurable for Mingw build
...
For the Mingw build we don't want to pull in the pthread DLL just
because we can autodetect pthread support. That would make the jq.exe
binary not self-contained.
2014-04-17 20:17:06 -05:00
Nicolas Williams
d056668f4f
Add autoconf checks for pthreads; fix #340
2014-04-16 18:42:36 -05:00
Nico Williams
917334d18a
Merge pull request #332 from jingweno/master
...
Add link to jq playground
2014-03-20 23:47:40 -05:00
Nico Williams
6f0a9521e1
Merge pull request #176 from pearkes/new-tutorial
...
Docs: Update the tutorial to use GitHub's API
2014-03-13 00:57:54 -05:00
Nicolas Williams
aee5c3ecb0
Fix for #303 in the sources
2014-03-13 00:57:33 -05:00
Nico Williams
da0d575649
Merge pull request #278 from polyester/master
...
work with newer versions of automake
2014-03-13 00:52:58 -05:00
Nicolas Williams
74d2216da2
Test arrays and friend filters
2014-03-13 00:29:53 -05:00
Nicolas Williams
769314a8a2
Document scalars
2014-03-13 00:29:53 -05:00
Nicolas Williams
831be04027
Also add scalars
2014-03-13 00:29:53 -05:00
Nicolas Williams
1a1adf73e8
Document arrays, objects, ...
2014-03-13 00:29:53 -05:00
Nicolas Williams
4402c6d806
One more recursive merge test
2014-03-12 23:44:21 -05:00
Nicolas Williams
219bb9ecb7
Make libm tests more portable
2014-03-06 21:38:10 -06:00
Nico Williams
88fd2ee4f2
Merge pull request #310 from arodland/master
...
Make jq --raw-output --unbuffered work
2014-03-03 13:46:38 -06:00
Nicolas Williams
15faf9dc3b
Add cbrt (cube root)
2014-02-21 10:51:16 -06:00
Nicolas Williams
59302fd208
Add missing trig functions and barebones test
2014-02-21 10:49:21 -06:00
Nicolas Williams
24202d1ecf
Remove non-standard exp10()
2014-02-21 10:49:10 -06:00
Nicolas Williams
fe29d3d3fa
Add ?, .[]?, and .. operators
...
Make XPath-like `//a/b` recursive structure traversal easier in jq,
which then becomes:
..|.a?.b?
The `?` operator suppresses errors about . not being an array or object.
The `..` operator is equivalent to calling the new `recurse_down`
built-in, which in turn is equivalent to
recurse(.[]?)
Note that `..a` is not supported; neither is `...a`. That could be add
added, but it doesn't seem worth the trouble of saving the need to type
a '|'.
2014-02-20 15:33:07 -06:00
Nico Williams
3d33412e9a
Merge pull request #300 from lcd047/master
...
Fix building of the manual
2014-02-19 11:21:04 -06:00
Nico Williams
b23fae9ee3
Merge pull request #296 from slapresta/all-any
...
Added `all` and `any` builtins
2014-02-16 22:45:49 -06:00
Nicolas Williams
1fa55a3fae
Fix cut-n-paste in leaf_paths; doc and test 'em
2014-02-05 23:14:05 -06:00
Nicolas Williams
a45c937f80
#285 add and builtins
2014-02-05 15:23:32 -06:00
Nicolas Williams
106fdf5114
Fix #201 ; check that bison accepts --warnings
2014-01-01 23:10:00 -06:00
Nicolas Williams
99f170adc3
Fix version for make dist on master
...
- Re-remove VERSION file and all traces of it
- Pass a decent version indicator to AC_INIT (using git describe)
When we tag 1.4 this will produce 1.4 as the version string when
building on the HEAD of that tag.
2013-12-31 17:19:40 -06:00
Nicolas Williams
e12d0ffd1e
Document --version
2013-12-26 18:48:51 -06:00
Nicolas Williams
a71138a43a
Add jv_dumpf() and jv_show()
...
jv_dumpf() takes a FILE *.
jv_show() is intended for use in debuggers, so it dumps the jv to stderr
and it does not jv_free() the jv, so it's safe to
"call jv_show(some_jv, -1)" in a debugger. If flags == -1 then the jv
will be shown pretty-printed and in color.
2013-12-26 18:40:34 -06:00
Nicolas Williams
cb976b9a50
Document .foo.bar in manual
2013-12-26 18:25:31 -06:00
Nicolas Williams
060eb39bf9
Document exit numbers
2013-12-26 12:54:07 -06:00
Nicolas Williams
ab363e9e50
Normalize errors for -e
2013-12-26 12:54:03 -06:00
Nicolas Williams
41a8ae7557
Fix doc typos (.[foo] wanted to be .["foo"])
2013-12-25 17:09:27 -06:00
Nicolas Williams
1956abbedf
Add note to jq.1 about shell quoting
2013-12-25 17:05:32 -06:00
Nicolas Williams
0966230ba8
Fix memmem() error
2013-12-17 08:40:03 -06:00
Nicolas Williams
474386a1d9
Complete more-arity feature not complete
...
And test
2013-12-11 14:14:26 -06:00
Nicolas Williams
3a1dab5396
Fix double-free typo in print_error()
2013-12-06 23:25:06 -06:00
Nicolas Williams
dac081e183
Fix manual.yml
2013-12-06 11:58:55 -06:00
Nicolas Williams
3ba7c97b2a
Add self to AUTHORS
2013-12-04 18:21:42 -06:00
Nicolas Williams
54635000c5
Conditionally #define _GNU_SOURCE in compile.c
2013-12-04 18:21:42 -06:00
Nicolas Williams
426edff09c
Add tests for string index by string and builtins
2013-12-04 18:21:42 -06:00
Nicolas Williams
b37ce20c2a
Add index and rindex builtins
2013-12-04 18:21:42 -06:00
Nicolas Williams
cac14a531d
Add index strings by string; return string indexes
...
% jq '.[","]'
"a,bc,def,ghij,klmno"
[1,4,8,13]
%
2013-12-04 18:21:42 -06:00
Nicolas Williams
ae7a042876
Make length return abs value of numeric inputs
2013-12-04 18:21:42 -06:00
Nicolas Williams
eb165459aa
Add callback interface for errors
...
Printing to stderr is not the right answer for a library.
2013-12-04 18:21:41 -06:00
Nicolas Williams
04bc2ef7cf
Add jv_string_vfmt()
2013-12-04 18:21:41 -06:00
Nicolas Williams
09104ce531
Document ltrimstr and rtrimstr
2013-12-04 18:21:41 -06:00