Stephen Dolan
a49402c53a
Combine the functionality of jq and jq_test
...
One binary is much simpler. ./jq --run-tests now runs the tests.
2013-05-05 22:59:53 +01:00
Stephen Dolan
47e015e946
Make a few constant globals actually const.
...
This means the .data and .bss sections are empty, a good thing
in a shared library (see #98 ).
2013-05-05 22:59:53 +01:00
Stephen Dolan
ab1a97472c
Merge pull request #109 from nicowilliams/no_mutable_globals-rebased
...
Remove globals/make jq_init/next/teardown() an API
2013-05-05 12:29:07 -07:00
Stephen Dolan
74df082283
Merge pull request #93 from shayel/master
...
Allow manpage to build
2013-05-05 12:13:36 -07:00
Stephen Dolan
925ec3751f
Fix negative number syntax. Add a unary '-' operator.
...
Closes #63 .
2013-01-03 12:53:23 +00:00
Stephen Dolan
c013b557a2
Change APPEND opcode to directly modify a variable.
...
Avoids a big O(n^2) loop in constructing arrays. Fixes #61 .
2013-01-03 12:51:33 +00:00
Stephen Dolan
fb84541e11
Clean up jv_object_foreach and add jv_array_foreach
2012-12-31 23:27:00 +00:00
Stephen Dolan
38fe6fc0cb
Ignore some more stuff.
2012-12-31 23:25:12 +00:00
Stephen Dolan
b3bad59dd7
Add the recurse function. See #37 .
2012-12-29 22:59:07 +00:00
Stephen Dolan
e0cda536f3
Make null + foo return foo, rather than an error.
...
This also allows 'add' to be implemented in jq rather than C.
2012-12-29 16:52:26 +00:00
Stephen Dolan
d5fdf70434
Refactor assignment.
...
New version is much more elegant and probably slower. Uses
library functions implemented in jq rather than dedicated opcodes.
2012-12-29 16:43:36 +00:00
Stephen Dolan
465a4ec565
Improvements to del(foo).
...
del(foo,bar) is now very different from del(foo),del(bar).
See #37 .
2012-12-29 16:13:06 +00:00
Stephen Dolan
3a5377e183
Fix a bug in URI-encoding of certain non-ASCII characters.
...
Oh how I hate C casting rules.
2012-12-29 01:37:22 +00:00
Stephen Dolan
79c9c418c6
Path manipulation (path/getpath/setpath/delpath) and docs.
...
del function should fix #37 .
2012-12-28 16:08:29 +00:00
Stephen Dolan
f1e23448e7
Support for two-argument functions.
...
Should probably support n args instead. This is a quick hack.
Also, ';' is a slightly ugly argument separator.
2012-12-28 15:07:27 +00:00
Stephen Dolan
417899f9a0
Fold operation (code/docs/test)
2012-12-28 15:05:34 +00:00
Stephen Dolan
9302b16247
Docs typos.
2012-12-28 14:23:28 +00:00
Stephen Dolan
89e26969ae
@foo syntax for encoding of strings into various formats.
...
Fixes part of #47 and #48 .
2012-12-28 01:23:09 +00:00
Stephen Dolan
52db8000c6
Fix an embarassing I/O bug.
...
Pulling some I/O out to a function meant that buf changed from
"char buf[4096]" to "char* buf", and "sizeof(buf)" got a lot
less interesting. The upshot of this is that jq read input eight
bytes at a time, which is not the fastest.
2012-12-27 01:57:09 +00:00
Stephen Dolan
d327772dfc
JSON parsing error messages now specify a location of the error.
...
Should help with #53 .
2012-12-27 01:56:23 +00:00
Stephen Dolan
cedda2084d
Sneaky valgrind trick to detect stack memory issues.
...
After something is popped from a stack, we overwrite the memory
with uninitialised data (if JQ_DEBUG is on). This means that
valgrind reports use-after-pop as an uninitialised memory error.
2012-12-24 17:11:18 +00:00
Stephen Dolan
0fed03f35a
Fix a bad memory leak when using --raw-output
2012-12-23 15:41:20 +00:00
Stephen Dolan
5578ec0f69
Give Windows builds a proper .exe suffix.
2012-12-20 15:12:14 +00:00
Stephen Dolan
a05904b226
Version 1.2!
2012-12-20 12:26:15 +00:00
Stephen Dolan
c181a9185a
Add a few lines to the bottom of the manpage.
2012-12-20 12:25:50 +00:00
Stephen Dolan
6a597b41a6
Update download page and build system to handle more platforms.
2012-12-20 12:17:56 +00:00
Stephen Dolan
c85d8d8b4e
Don't enable coloured output by default on Windows.
2012-12-20 12:16:22 +00:00
Stephen Dolan
dcdb996085
Merge pull request #50 from stesh/master
...
Add information about installing dev environment on OS X
2012-12-20 03:41:19 -08:00
Stephen Dolan
5968f54f55
Fix a bug in stack reallocation during deep recursion.
2012-12-18 17:36:24 +00:00
Stephen Dolan
8dca3ef10d
Print an error message and abort in out-of-memory situations.
...
Closes #43 .
Tested with:
ulimit -v 5000
./jq -n -c 'def f(x): x,f([x,x]); f(0)'
2012-12-18 17:01:23 +00:00
Stephen Dolan
04daafbde3
Add wrappers for malloc/realloc/free. See #43 .
2012-12-18 16:53:51 +00:00
Stephen Dolan
75421cbfe3
Add the ability to specify input files on the commandline.
...
See #21 .
2012-12-16 19:46:41 +00:00
Stephen Dolan
b0aa62f2b7
Improve manpage introduction, add examples to manpage.
...
Closes #19
2012-12-16 17:11:40 +00:00
Stephen Dolan
3ae8fb7371
Fix a bug uncovered by tests extracted from manual.
...
`null | length` should give 0, and now does.
2012-12-16 13:10:48 +00:00
Stephen Dolan
73c657cdc4
Lots of build system and docs improvements, including a manpage.
...
- Build binaries for multiple platforms
- Make a manpage out of the manual (see #19 )
- Extract more tests from the documentation
- Fix a few documentation bugs uncovered by above.
2012-12-16 13:06:03 +00:00
Stephen Dolan
2b48ee4a8f
Add a Gemfile to make building the documentation easier.
...
Use "bundle install" in the docs folder to install ruby dependencies.
2012-12-12 23:18:43 +00:00
Stephen Dolan
8ba2cef913
Delete autogenerated source from the repository.
...
This was a horrible hack to fix build issues on OS X some time
ago. There are better ways to fix build issues on OS X :)
See #49 .
2012-12-10 22:36:01 +00:00
Stephen Dolan
dcc93042d3
some words explaining struct inst a little
2012-12-10 22:35:33 +00:00
Stephen Dolan
34ff993059
error() function
2012-12-10 22:30:09 +00:00
Stephen Dolan
b660bd2be6
Fix Rack setup so that viewing documentation locally is less painful.
2012-12-10 22:25:11 +00:00
Stephen Dolan
84026f0513
Change order of evaluation for certain indexing operations.
...
'.foo[.bar]' used to parse like '.foo | .bar as $b | .[$b]',
now it parses like '.bar as $b | .foo | .[$b]'.
2012-12-07 00:28:11 +00:00
Stephen Dolan
c0a2f1ab47
Add min, max, min_by, max_by functions.
2012-12-04 22:45:03 +00:00
Stephen Dolan
616e8f9924
Refactor function argument passing into what it always should have been.
...
Most visible change is that error messages when a function is called
with the wrong number of arguments are much better.
2012-12-04 00:39:21 +00:00
Stephen Dolan
a88d53d2fd
Extend {foo} syntax to allow {"foo"} as well.
...
Useful when "foo" contains unusual characters. Should help with
the issues #7 , #38 , #40 , #42 .
2012-12-03 20:31:40 +00:00
Stephen Dolan
5f6a95c7b5
General cleanup - rename a few things, delete dead code.
2012-12-03 20:02:02 +00:00
Stephen Dolan
fadeb66365
Add a unique function.
2012-12-03 02:02:12 +00:00
Stephen Dolan
c8bbfed041
See, I told you colour was a bad idea! #11
...
Last commit broke the build, minor fix needed to testsuite.
2012-12-03 02:00:29 +00:00
Stephen Dolan
e9c7548b82
Oh alright then, if you insist.
...
Colo(u)red output for jq. Enabled by default if isatty(stdout).
Closes #11 .
2012-12-03 01:21:07 +00:00
Stephen Dolan
67f8ad9435
Ignore a UTF-8 BOM if one appears at the start of a JSON document.
...
Closes #45 .
2012-12-02 23:53:55 +00:00
Stephen Dolan
5b45184a1a
Make the -c output more compact. Closes #44 .
2012-12-02 23:24:07 +00:00
Stephen Dolan
11965aaa2e
sort_by and group_by functions, tests and docs.
2012-12-02 23:22:15 +00:00
Stephen Dolan
ed7f95a492
Demote "contains" to a built-in function rather than an operator.
2012-12-02 22:52:38 +00:00
Stephen Dolan
63d10433c9
Fix a horrible scoping/associativity bug.
...
`1 as $x | . | $x` didn't compile, as it was parsed as
(1 as $x | .) | $x
where `$x` is undefined, rather than as
1 as $x | (. | $x)
2012-12-02 22:22:08 +00:00
Stephen Dolan
ea9db414ed
Clean up implementation of builtin functions.
2012-12-02 22:12:08 +00:00
Stephen Dolan
b6f2fbbe62
Move all the includes one place to the left
2012-12-02 21:25:54 +00:00
Stephen Dolan
125e278502
Clean up calls to C functions, unify opcodes
2012-12-02 20:45:55 +00:00
Stephen Dolan
251f221b85
Refactor of function call codegen. Separate codegen for C and jq calls.
2012-12-02 20:45:06 +00:00
Stephen Dolan
9e743d517a
Sort function and more general comparison operators.
2012-11-30 20:27:16 +00:00
Stephen Dolan
2dad2bdd97
Merge remote-tracking branch 'origin/master'
2012-11-26 22:24:04 +00:00
Stephen Dolan
d56370f734
Move some higher-level JSON manipulation functions into jv_aux.{c,h}
2012-11-26 22:22:45 +00:00
Stephen Dolan
334a79b704
Define bytecoded builtins more concisely.
2012-11-26 18:53:47 +00:00
Stephen Dolan
4c65847568
Raise a proper error from the lexer on unmatched },),]
2012-11-26 01:40:35 +00:00
Stephen Dolan
4747f8681b
Transparent handling for CBV arguments to C functions.
...
C function arguments closures are inlined before the call.
2012-11-26 01:36:55 +00:00
Stephen Dolan
3e3fe51959
Clean up function creation API and epilogue generation.
2012-11-26 00:39:01 +00:00
Stephen Dolan
924aeda504
Add some preprocessor junk to make codegen cleaner.
2012-11-25 23:49:57 +00:00
Stephen Dolan
f19ba32fdd
Minor refactor of function call setup to allow for multiple arguments.
2012-11-25 23:07:43 +00:00
Stephen Dolan
0923c79fee
Merge pull request #36 from stroan/contains-operator
...
Implemented contains operator
2012-10-25 11:51:55 -07:00
Stephen Dolan
72691b4909
Fix a bug in string parsing. Closes #35
2012-10-25 00:13:39 +01:00
Stephen Dolan
033d9b2fd5
Merge pull request #34 from dgryski/master
...
Add != (not equal) to list of supported binops
2012-10-24 02:43:54 -07:00
Stephen Dolan
5a64a29774
Remove .gitignore from tarballs.
2012-10-23 21:58:50 +01:00
Stephen Dolan
8ad3b6f9b9
Merge pull request #22 from alexchamberlain/patch-1
...
Arch Packaging docs
2012-10-23 11:24:12 -07:00
Stephen Dolan
2a610da2d1
Allow the 'keys' function to take arrays.
2012-10-22 23:31:07 +01:00
Stephen Dolan
93f80b2726
I should probably document select and empty :) ( #29 , #5 )
2012-10-22 23:14:34 +01:00
Stephen Dolan
794d29a430
Docs fixes.
...
- Mention homebrew on download page (#25 )
- Document 'keys' and string interpolation
2012-10-22 22:56:56 +01:00
Stephen Dolan
3c8f5ea251
Merge pull request #14 from merriam/patch-2
...
Update docs/content/1.tutorial/default.yml
2012-10-22 14:31:04 -07:00
Stephen Dolan
c0f1c7dc1a
Delete a badly-thought-out bit of a Makefile.
2012-10-22 19:23:57 +01:00
Stephen Dolan
a737a67eda
updated autogenerated files
2012-10-22 19:18:35 +01:00
Stephen Dolan
48fb7c61b3
Support a -f option to load from a file, and # comments
...
This means '#!/usr/local/bin/jq -f' is now a sensible way
to start a file.
Closes #13
2012-10-22 19:18:30 +01:00
Stephen Dolan
f2601ab4f0
Fix logic for "slurp" option. Fixes #18
2012-10-22 18:55:56 +01:00
Stephen Dolan
2620e21dcc
Make the gen_utf8_tables script Python3 compatible ( #20 )
2012-10-22 18:47:52 +01:00
Stephen Dolan
c53e001973
Version number tracking.
2012-10-21 23:26:31 +01:00
Stephen Dolan
976e4ff711
Fix a mistake in the docs. Fixes #10
2012-10-21 22:16:23 +01:00
Stephen Dolan
6e64cdcbfc
Merge pull request #8 from maxme/master
...
add install and uninstall rules in Makefile
2012-10-21 12:23:22 -07:00
Stephen Dolan
73e479e171
Update website: binaries + version bump.
2012-10-21 20:16:26 +01:00
Stephen Dolan
95a0074edf
Check in a bunch of autogenerated files.
...
These seem not to build with the version of bison, etc. on OS X.
This is a hack for now, I'll fix the OS X build when I get access
to a mac.
2012-10-21 19:52:16 +01:00
Stephen Dolan
32e1b114df
Add a 'keys' function. Fixes #4 .
2012-10-20 00:26:37 +01:00
Stephen Dolan
afec2544f1
A string interpolation syntax that I don't hate. Also tests.
...
You can interpolate values into strings using \(this syntax), e.g.
"best \("str" + "ing") ever"
2012-10-20 00:09:20 +01:00
Stephen Dolan
6828ec9852
Merge pull request #6 from stroan/numeric-comparison-binops
...
Add <,>,<=,>= binops
2012-10-11 07:47:42 -07:00
Stephen Dolan
a2643cc0d5
Allow underscores in IDENT tokens. Fixes #3 .
...
IDENT syntax now includes ASCII letters and underscores, so
'.foo_bar' now works. Non-ASCII letters won't work in IDENT
tokens (it's impossible to tell which non-ascii characters are
"letters" without full unicode tables), so '.données' is still
a syntax error (the workaround is '.["données"]', since you can
put anything you like in a string).
2012-09-22 14:03:46 +01:00
Stephen Dolan
359d5f33bd
Add a bunch of commandline options for controlling I/O format.
...
Also docs for the above. Closes #1 .
2012-09-20 19:31:14 +01:00
Stephen Dolan
92ab193369
Make the <title>s of the doc pages less messy.
2012-09-19 01:15:49 +01:00
Stephen Dolan
fc57cf702c
No HTTPS for me, sadly.
2012-09-19 01:12:33 +01:00
Stephen Dolan
f51eca20f5
Fix some issues with relative URLs on Github Pages.
2012-09-19 01:10:47 +01:00
Stephen Dolan
9887cb57b2
Add a rake task to compile docs into static html.
2012-09-19 01:03:05 +01:00
Stephen Dolan
040604b7db
Use a theme from Bootswatch for docs.
2012-09-19 01:00:25 +01:00
Stephen Dolan
26c7132237
Ensure 'make tarball' creates the required directories.
2012-09-19 00:36:37 +01:00
Stephen Dolan
483f6f2134
Add some release stuff to Makefile.
2012-09-19 00:34:49 +01:00
Stephen Dolan
c463877e17
Add binaries and update download docs.
2012-09-19 00:08:02 +01:00
Stephen Dolan
71ab537ee9
Initialise some variables to keep gcc happy.
2012-09-18 23:46:23 +01:00
Stephen Dolan
134b062be7
Fix a parsing bug for \uXXXX escapes (some invalid escapes were accepted).
...
Found by gcc -O -Wall identifying a use of uninitialised variables.
2012-09-18 23:45:30 +01:00