Nico Williams
fab2048648
Merge pull request #653 from msabramo/patch-1
...
.travis.yml: Set sudo false; use containers
2014-12-24 11:20:47 -06:00
Nicolas Williams
56ae88d9d5
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.
2014-12-24 02:31:51 -06:00
Nicolas Williams
1cdcff1c01
Fix bug caused by 8ca07a0
2014-12-24 02:25:11 -06:00
Nicolas Williams
8ca07a08c3
Fix #348 : reject unescaped control chars
2014-12-24 00:01:43 -06:00
Nico Williams
2775b90b20
Merge pull request #601 from slapresta/redefine-any-all
...
Define {any,all}/0,1 in terms of {any,all}/2
2014-12-23 23:37:25 -06:00
Nicolas Williams
ae312bd7fe
Use __attribute__ __printf__ with GCC
2014-12-23 23:22:57 -06:00
Nicolas Williams
9017b83d4e
Make values faster ( fix #652 )
2014-12-23 23:22:57 -06:00
Nicolas Williams
02cf1831e9
Fix #649
2014-12-23 18:16:21 -06:00
Nico Williams
54a0470c42
Merge pull request #611 from StevenMaude/tutorial-typo-fixes
...
Fix typos in tutorial
2014-12-12 17:46:17 -06:00
Nico Williams
3dd790c408
Merge pull request #616 from ianmiell/ianmiell_requirements
...
Requirements made slightly more complete
2014-12-12 17:45:17 -06:00
Nicolas Williams
be11b2768f
Add until(cond; next); fix #639
2014-12-12 17:35:59 -06:00
Nicolas Williams
2075bec60f
Fix #647 , but caused by 89791a0
2014-12-12 17:05:16 -06:00
Nicolas Williams
44c2382402
Add --argjson, fix #648
2014-12-12 16:40:07 -06:00
Nico Williams
fd041c2064
Merge pull request #642 from Janrain-Colin/patch-3
...
fix typo in manual
2014-12-12 16:03:18 -06:00
Nicolas Williams
7243989c52
Fix refcount leak, fix #618
2014-11-29 15:24:43 -06:00
Nicolas Williams
46613af64c
STOREV/LOADV* should also print refcnts
2014-11-28 20:52:22 -06:00
Nicolas Williams
79000644c6
Enable printing of stack val refcnts
2014-11-28 19:35:29 -06:00
Nicolas Williams
b349e7d9a8
Print stack value refcounts when tracing ( #636 )
2014-11-28 19:26:41 -06:00
Nicolas Williams
89791a000b
Add support for JSON sequence MIME type
...
Per draft-ietf-json-text-sequence-07 (which soon will be published as an
RFC).
2014-10-12 08:44:40 -05:00
Nicolas Williams
1796a716ea
Restore split/1; don't use regexp ( fix #576 )
2014-10-03 17:58:45 -05:00
Nicolas Williams
07d8d5c5ef
Update docs about sort/group/min/max/unique
2014-10-03 17:58:44 -05:00
Nicolas Williams
0b29b44cab
from-entries should work with EC2 ( fix #592 )
2014-10-03 17:47:13 -05:00
Nicolas Williams
a0a350f468
Remove sort/1 and group/1
...
Reserve these for sorting with jq-coded comparators.
2014-10-03 17:47:13 -05:00
Nicolas Williams
4a57b84db0
to_entries should not sort keys ( fix #561 )
2014-09-30 21:52:30 -05:00
Nicolas Williams
456bafa82f
Drop the jq version directory from search path
2014-08-30 00:58:24 -05:00
Nicolas Williams
7a8e3c759e
Never close stdin; allow multiple - arguments
2014-08-30 00:40:03 -05:00
Nicolas Williams
b70bea8d34
Handle invalid inputs in argument files ( fix #562 )
2014-08-30 00:40:03 -05:00
Nicolas Williams
9bd55487ea
C-coded builtins should not assert ( fix #553 )
2014-08-21 00:12:29 -05:00
Nicolas Williams
23e2e2eab3
Quiet warning about freopen() of stdout
2014-08-20 20:49:30 -05:00
Nicolas Williams
8d2d5e37e5
Drop "any/" in module search; use 1.x-master
2014-08-20 20:48:48 -05:00
Nicolas Williams
287e2c96ed
BSD sed lacks -r; fix #551
2014-08-14 03:31:25 -05:00
Nicolas Williams
f8d9478517
Document module system
...
Fix #511 .
2014-08-14 03:26:28 -05:00
Nicolas Williams
1ba8c2cfa6
Add module directive, modulemeta builtin
...
Fix #425 .
2014-08-14 03:26:26 -05:00
Nicolas Williams
d654724fef
Add JV_OBJECT() macro
2014-08-14 03:21:38 -05:00
Nicolas Williams
3375089013
Add JV_ARRAY() macro
2014-08-14 03:21:38 -05:00
Nicolas Williams
9f13afa20f
Add jq_report_error() function; use it
...
Put a stop to fprintf(stderr, ...) where we shouldn't.
2014-08-14 03:21:35 -05:00
Nicolas Williams
908c10928b
Fix #549
2014-08-11 14:58:44 -05:00
Nicolas Williams
c321c3b86b
Constant fold objects
2014-08-09 20:47:03 -05:00
Nicolas Williams
f87521183f
Fold constant arrays
2014-08-09 20:27:08 -05:00
Nicolas Williams
8a561120c4
More constant folding: null, true, and false
...
A step towards doing constant folding for arrays and objects.
2014-08-09 19:15:50 -05:00
Nicolas Williams
20ca21cb0d
Out of bounds negative array indices should raise
2014-08-09 19:15:50 -05:00
Nicolas Williams
2d1a75f550
.foo[-1] = ... trips assertion (fix #490 )
2014-08-09 13:10:41 -05:00
Nicolas Williams
8cddb7c681
Allow any number of jq-coded function arguments
2014-08-09 12:42:39 -05:00
Nicolas Williams
4249bbf0d5
Make nwise private
2014-08-08 19:36:43 -05:00
Nicolas Williams
8a57c27e92
Make regexp builtins and range/3 use #524 too
2014-08-08 19:31:11 -05:00
Nicolas Williams
8706b6b16a
Use def f($a): ...; syntax for builtins
2014-08-08 19:23:46 -05:00
Nicolas Williams
32c08d48f3
Add def f($arg): syntax ( fix #524 )
2014-08-08 19:16:01 -05:00
Nicolas Williams
fc52e78ed4
Fix tests for #432
2014-08-08 18:17:58 -05:00
Nicolas Williams
eb12f0358e
Fix docs YAML (introduced in #432 )
2014-08-08 18:01:42 -05:00
Nicolas Williams
0d437e25de
Better error msg for bad shell quoting ( fix #538 )
2014-08-06 17:51:53 -05:00
Nicolas Williams
2159f9f5e0
Document TCO a bit more
2014-08-05 01:15:33 -05:00
Nicolas Williams
2518b3a34f
Fix docs (missing backquotes)
2014-08-05 01:15:33 -05:00
Nicolas Williams
a2f99d43c3
Some builtins are unnecessarily special ( fix #521 )
2014-08-01 00:20:30 -05:00
Nicolas Williams
a7878a8d1a
Correct @wtlangford's address
2014-07-30 13:19:46 -05:00
Nicolas Williams
c73ad74be0
Add @wtlangford to the AUTHORS list
2014-07-30 13:02:34 -05:00
Nicolas Williams
e1b20b48f0
Add first, nth, last ( fix #510 )
2014-07-28 13:18:58 -05:00
Nicolas Williams
2e2538ccb8
Fold constants ( fix #504 )
2014-07-27 17:48:49 -05:00
Nicolas Williams
ae27178352
Fix #499 , #500
2014-07-27 17:41:40 -05:00
Nicolas Williams
10f5a3448d
Do fix remaining bison warning ( fix #433 )
2014-07-22 22:51:11 -05:00
Nicolas Williams
50b85c2911
Rename jq_memmem() to _jq_memmem()
2014-07-22 22:51:11 -05:00
Nicolas Williams
01fc8168e9
Add -i option to edit files in place ( fix #105 )
2014-07-20 00:11:23 -05:00
Nicolas Williams
3362fb3406
Add -n to short usage msg; fix --arg msg
2014-07-20 00:04:24 -05:00
Nicolas Williams
8c3d503d54
Fix bison empty rule warnings ( #433 , partial fix)
2014-07-14 16:41:48 -05:00
Nicolas Williams
2bb9fc5dda
Fix #484 , try/catch syntax has conflicts
2014-07-14 16:41:48 -05:00
Nico Williams
ea3e947b50
Merge pull request #483 from else/master
...
jq 1.4 is in Debian
2014-07-14 09:16:01 -05:00
Nico Williams
918ada06dc
Merge pull request #482 from mbruggmann/manual-fixes
...
Fix manual example for `endswith`.
2014-07-13 19:01:57 -05:00
Nicolas Williams
cb2737a433
Add regression test for #479
2014-07-13 19:00:37 -05:00
Nicolas Williams
c38e5b1b2c
Lib defs don't bind to each other; fix #479 again
2014-07-13 18:36:27 -05:00
Nicolas Williams
cadf8c3cb0
Revert "Library defs don't bind to each other; fix #479 "
...
This reverts commit 6b6e3f4262 . It was
the wrong fix.
2014-07-13 02:04:27 -05:00
Nicolas Williams
6b6e3f4262
Library defs don't bind to each other; fix #479
2014-07-12 18:38:55 -05:00
Nicolas Williams
6e88d419ba
Fix #478 assertion failure
2014-07-10 19:23:02 -05:00
Nico Williams
ab4bf05300
Merge pull request #475 from qqshfox/patch-1
...
Fix examples for `del` in manual
2014-07-09 10:09:28 -05:00
Nicolas Williams
666aeda82c
Better document path()'s power; also |=
2014-07-09 01:05:06 -05:00
Nicolas Williams
5be80b81eb
Add foreach EXP as $var (INIT; UPDATE) form
2014-07-09 00:43:06 -05:00
Nicolas Williams
10477fc2d4
Make while() handle break
2014-07-09 00:39:25 -05:00
Nicolas Williams
d8672e1b2a
Make C-coded built-ins take jq_state * argument
2014-07-07 23:37:42 -05:00
Nicolas Williams
a68958e5dc
error(x) should not tostring its arg; fix #466
2014-07-07 22:26:53 -05:00
Nicolas Williams
824f7df404
limit should use break
2014-07-07 22:26:07 -05:00
Nicolas Williams
4bcff40828
Make any/2 and all/2 efficient using foreach
2014-07-07 22:25:34 -05:00
Nicolas Williams
80a9937e48
exec_stack.h was not using jv_mem_realloc()
2014-07-07 19:33:19 -05:00
Nicolas Williams
b963ebaf1d
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.
2014-07-07 19:33:18 -05:00
Nicolas Williams
eb45372414
jv_show() should be able to display invalid values
2014-07-07 19:33:18 -05:00
Nicolas Williams
539dccae90
Add break builtin for foreach
2014-07-07 19:33:17 -05:00
Nicolas Williams
6458910ba3
Explain foreach's powers a bit more
2014-07-07 17:22:53 -05:00
Nicolas Williams
ef9b591215
Document path(path_expression) builtin
2014-07-07 17:13:51 -05:00
Nicolas Williams
f845808813
Add missing backtick in manual
2014-07-07 17:13:48 -05:00
Nicolas Williams
25719b5596
$var["foo"]=1 can't work as expected; doc fix #236
2014-07-07 16:56:14 -05:00
Nicolas Williams
8780bc0b8e
Better check for lib has only functions ( fix #138 )
2014-07-07 16:03:32 -05:00
Nicolas Williams
821cd31e67
Add any/N and all/N x N in (1, 2) ( fix #455 )
...
Contributed by @pkoppstein.
2014-07-06 20:08:06 -05:00
Nicolas Williams
5a863bf010
Add foreach and limit
2014-07-06 19:40:05 -05:00
Nicolas Williams
7d3a44a1e2
Add general ? operator
2014-07-06 01:29:43 -05:00
Nicolas Williams
7fce34292e
Add try EXP catch EXP
2014-07-06 01:29:42 -05:00
Nicolas Williams
9113282c27
Document error/1
2014-07-06 00:27:05 -05:00
Nicolas Williams
78a8419428
Add while(cond; update) ( fix #314 )
2014-07-02 22:05:33 -05:00
Nicolas Williams
ff9a61ead2
Add range(init;upto;by) ( fix #317 )
2014-07-02 22:05:33 -05:00
Nicolas Williams
3a647d3e47
Multi-arity needs better errors ( fix #438 )
2014-07-02 02:18:10 -05:00
Nicolas Williams
1f17ef3623
Descrive generators, range() with by to manual
2014-07-01 23:32:44 -05:00
Nicolas Williams
a6030ab374
Fix typo in manual
2014-07-01 23:32:40 -05:00
Nicolas Williams
ba1acbe961
Teach disassembler about TAIL_CALL_JQ
2014-07-01 22:49:25 -05:00
Nicolas Williams
9deee38dc8
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.
2014-07-01 22:40:40 -05:00