ffi-yajl 0.0.3-universal-java → 0.0.4-universal-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. checksums.yaml +4 -4
  2. data/ext/ffi_yajl/ext/encoder/encoder.c +1 -1
  3. data/ext/libyajl2/vendored/.gitignore +3 -0
  4. data/ext/libyajl2/vendored/BUILDING +23 -0
  5. data/ext/libyajl2/vendored/BUILDING.win32 +27 -0
  6. data/ext/libyajl2/vendored/CMakeLists.txt +79 -0
  7. data/ext/libyajl2/vendored/COPYING +13 -0
  8. data/ext/libyajl2/vendored/ChangeLog +175 -0
  9. data/ext/libyajl2/vendored/README +74 -0
  10. data/ext/libyajl2/vendored/TODO +9 -0
  11. data/ext/libyajl2/vendored/YAJLDoc.cmake +26 -0
  12. data/ext/libyajl2/vendored/configure +79 -0
  13. data/ext/libyajl2/vendored/example/CMakeLists.txt +23 -0
  14. data/ext/libyajl2/vendored/example/README.md +7 -0
  15. data/ext/libyajl2/vendored/example/parse_config.c +69 -0
  16. data/ext/libyajl2/vendored/example/sample.config +101 -0
  17. data/ext/libyajl2/vendored/perf/CMakeLists.txt +23 -0
  18. data/ext/libyajl2/vendored/perf/documents.c +1418 -0
  19. data/ext/libyajl2/vendored/perf/documents.h +28 -0
  20. data/ext/libyajl2/vendored/perf/perftest.c +134 -0
  21. data/ext/libyajl2/vendored/reformatter/CMakeLists.txt +39 -0
  22. data/ext/libyajl2/vendored/reformatter/json_reformat.c +194 -0
  23. data/ext/libyajl2/vendored/src/CMakeLists.txt +86 -0
  24. data/ext/libyajl2/vendored/src/YAJL.dxy +1258 -0
  25. data/ext/libyajl2/vendored/src/api/yajl_common.h +75 -0
  26. data/ext/libyajl2/vendored/src/api/yajl_gen.h +157 -0
  27. data/ext/libyajl2/vendored/src/api/yajl_parse.h +226 -0
  28. data/ext/libyajl2/vendored/src/api/yajl_tree.h +185 -0
  29. data/ext/libyajl2/vendored/src/api/yajl_version.h.cmake +23 -0
  30. data/ext/libyajl2/vendored/src/yajl +33 -0
  31. data/ext/libyajl2/vendored/src/yajl.c +175 -0
  32. data/ext/libyajl2/vendored/src/yajl.pc.cmake +9 -0
  33. data/ext/libyajl2/vendored/src/yajl_alloc.c +52 -0
  34. data/ext/libyajl2/vendored/src/yajl_alloc.h +34 -0
  35. data/ext/libyajl2/vendored/src/yajl_buf.c +103 -0
  36. data/ext/libyajl2/vendored/src/yajl_buf.h +57 -0
  37. data/ext/libyajl2/vendored/src/yajl_bytestack.h +69 -0
  38. data/ext/libyajl2/vendored/src/yajl_encode.c +220 -0
  39. data/ext/libyajl2/vendored/src/yajl_encode.h +34 -0
  40. data/ext/libyajl2/vendored/src/yajl_gen.c +354 -0
  41. data/ext/libyajl2/vendored/src/yajl_lex.c +763 -0
  42. data/ext/libyajl2/vendored/src/yajl_lex.h +117 -0
  43. data/ext/libyajl2/vendored/src/yajl_parser.c +498 -0
  44. data/ext/libyajl2/vendored/src/yajl_parser.h +78 -0
  45. data/ext/libyajl2/vendored/src/yajl_tree.c +503 -0
  46. data/ext/libyajl2/vendored/src/yajl_version.c +7 -0
  47. data/ext/libyajl2/vendored/test/CMakeLists.txt +23 -0
  48. data/ext/libyajl2/vendored/test/cases/ac_difficult_json_c_test_case_with_comments.json +1 -0
  49. data/ext/libyajl2/vendored/test/cases/ac_difficult_json_c_test_case_with_comments.json.gold +36 -0
  50. data/ext/libyajl2/vendored/test/cases/ac_simple_with_comments.json +11 -0
  51. data/ext/libyajl2/vendored/test/cases/ac_simple_with_comments.json.gold +9 -0
  52. data/ext/libyajl2/vendored/test/cases/ag_false_then_garbage.json +1 -0
  53. data/ext/libyajl2/vendored/test/cases/ag_false_then_garbage.json.gold +2 -0
  54. data/ext/libyajl2/vendored/test/cases/ag_null_then_garbage.json +1 -0
  55. data/ext/libyajl2/vendored/test/cases/ag_null_then_garbage.json.gold +2 -0
  56. data/ext/libyajl2/vendored/test/cases/ag_true_then_garbage.json +1 -0
  57. data/ext/libyajl2/vendored/test/cases/ag_true_then_garbage.json.gold +2 -0
  58. data/ext/libyajl2/vendored/test/cases/am_eof.json +1 -0
  59. data/ext/libyajl2/vendored/test/cases/am_eof.json.gold +4 -0
  60. data/ext/libyajl2/vendored/test/cases/am_integers.json +1 -0
  61. data/ext/libyajl2/vendored/test/cases/am_integers.json.gold +3 -0
  62. data/ext/libyajl2/vendored/test/cases/am_multiple.json +3 -0
  63. data/ext/libyajl2/vendored/test/cases/am_multiple.json.gold +5 -0
  64. data/ext/libyajl2/vendored/test/cases/am_stuff.json +7 -0
  65. data/ext/libyajl2/vendored/test/cases/am_stuff.json.gold +14 -0
  66. data/ext/libyajl2/vendored/test/cases/ap_array_open.json +1 -0
  67. data/ext/libyajl2/vendored/test/cases/ap_array_open.json.gold +2 -0
  68. data/ext/libyajl2/vendored/test/cases/ap_eof_str.json +1 -0
  69. data/ext/libyajl2/vendored/test/cases/ap_eof_str.json.gold +1 -0
  70. data/ext/libyajl2/vendored/test/cases/ap_map_open.json +1 -0
  71. data/ext/libyajl2/vendored/test/cases/ap_map_open.json.gold +2 -0
  72. data/ext/libyajl2/vendored/test/cases/ap_partial_ok.json +1 -0
  73. data/ext/libyajl2/vendored/test/cases/ap_partial_ok.json.gold +4 -0
  74. data/ext/libyajl2/vendored/test/cases/array.json +6 -0
  75. data/ext/libyajl2/vendored/test/cases/array.json.gold +22 -0
  76. data/ext/libyajl2/vendored/test/cases/array_close.json +1 -0
  77. data/ext/libyajl2/vendored/test/cases/array_close.json.gold +2 -0
  78. data/ext/libyajl2/vendored/test/cases/bignums.json +1 -0
  79. data/ext/libyajl2/vendored/test/cases/bignums.json.gold +5 -0
  80. data/ext/libyajl2/vendored/test/cases/bogus_char.json +4 -0
  81. data/ext/libyajl2/vendored/test/cases/bogus_char.json.gold +10 -0
  82. data/ext/libyajl2/vendored/test/cases/codepoints_from_unicode_org.json +1 -0
  83. data/ext/libyajl2/vendored/test/cases/codepoints_from_unicode_org.json.gold +2 -0
  84. data/ext/libyajl2/vendored/test/cases/deep_arrays.json +1 -0
  85. data/ext/libyajl2/vendored/test/cases/deep_arrays.json.gold +2049 -0
  86. data/ext/libyajl2/vendored/test/cases/difficult_json_c_test_case.json +1 -0
  87. data/ext/libyajl2/vendored/test/cases/difficult_json_c_test_case.json.gold +36 -0
  88. data/ext/libyajl2/vendored/test/cases/doubles.json +1 -0
  89. data/ext/libyajl2/vendored/test/cases/doubles.json.gold +7 -0
  90. data/ext/libyajl2/vendored/test/cases/doubles_in_array.json +1 -0
  91. data/ext/libyajl2/vendored/test/cases/doubles_in_array.json.gold +8 -0
  92. data/ext/libyajl2/vendored/test/cases/empty_array.json +1 -0
  93. data/ext/libyajl2/vendored/test/cases/empty_array.json.gold +3 -0
  94. data/ext/libyajl2/vendored/test/cases/empty_string.json +1 -0
  95. data/ext/libyajl2/vendored/test/cases/empty_string.json.gold +2 -0
  96. data/ext/libyajl2/vendored/test/cases/escaped_bulgarian.json +4 -0
  97. data/ext/libyajl2/vendored/test/cases/escaped_bulgarian.json.gold +7 -0
  98. data/ext/libyajl2/vendored/test/cases/escaped_foobar.json +1 -0
  99. data/ext/libyajl2/vendored/test/cases/escaped_foobar.json.gold +2 -0
  100. data/ext/libyajl2/vendored/test/cases/false.json +1 -0
  101. data/ext/libyajl2/vendored/test/cases/false.json.gold +2 -0
  102. data/ext/libyajl2/vendored/test/cases/fg_false_then_garbage.json +1 -0
  103. data/ext/libyajl2/vendored/test/cases/fg_false_then_garbage.json.gold +3 -0
  104. data/ext/libyajl2/vendored/test/cases/fg_issue_7.json +1 -0
  105. data/ext/libyajl2/vendored/test/cases/fg_issue_7.json.gold +3 -0
  106. data/ext/libyajl2/vendored/test/cases/fg_null_then_garbage.json +1 -0
  107. data/ext/libyajl2/vendored/test/cases/fg_null_then_garbage.json.gold +3 -0
  108. data/ext/libyajl2/vendored/test/cases/fg_true_then_garbage.json +1 -0
  109. data/ext/libyajl2/vendored/test/cases/fg_true_then_garbage.json.gold +3 -0
  110. data/ext/libyajl2/vendored/test/cases/four_byte_utf8.json +2 -0
  111. data/ext/libyajl2/vendored/test/cases/four_byte_utf8.json.gold +5 -0
  112. data/ext/libyajl2/vendored/test/cases/high_overflow.json +1 -0
  113. data/ext/libyajl2/vendored/test/cases/high_overflow.json.gold +2 -0
  114. data/ext/libyajl2/vendored/test/cases/integers.json +3 -0
  115. data/ext/libyajl2/vendored/test/cases/integers.json.gold +14 -0
  116. data/ext/libyajl2/vendored/test/cases/invalid_utf8.json +1 -0
  117. data/ext/libyajl2/vendored/test/cases/invalid_utf8.json.gold +3 -0
  118. data/ext/libyajl2/vendored/test/cases/isolated_surrogate_marker.json +1 -0
  119. data/ext/libyajl2/vendored/test/cases/isolated_surrogate_marker.json.gold +2 -0
  120. data/ext/libyajl2/vendored/test/cases/leading_zero_in_number.json +1 -0
  121. data/ext/libyajl2/vendored/test/cases/leading_zero_in_number.json.gold +5 -0
  122. data/ext/libyajl2/vendored/test/cases/lonely_minus_sign.json +7 -0
  123. data/ext/libyajl2/vendored/test/cases/lonely_minus_sign.json.gold +9 -0
  124. data/ext/libyajl2/vendored/test/cases/lonely_number.json +1 -0
  125. data/ext/libyajl2/vendored/test/cases/lonely_number.json.gold +2 -0
  126. data/ext/libyajl2/vendored/test/cases/low_overflow.json +1 -0
  127. data/ext/libyajl2/vendored/test/cases/low_overflow.json.gold +2 -0
  128. data/ext/libyajl2/vendored/test/cases/map_close.json +1 -0
  129. data/ext/libyajl2/vendored/test/cases/map_close.json.gold +2 -0
  130. data/ext/libyajl2/vendored/test/cases/missing_integer_after_decimal_point.json +1 -0
  131. data/ext/libyajl2/vendored/test/cases/missing_integer_after_decimal_point.json.gold +2 -0
  132. data/ext/libyajl2/vendored/test/cases/missing_integer_after_exponent.json +1 -0
  133. data/ext/libyajl2/vendored/test/cases/missing_integer_after_exponent.json.gold +2 -0
  134. data/ext/libyajl2/vendored/test/cases/multiple.json +3 -0
  135. data/ext/libyajl2/vendored/test/cases/multiple.json.gold +4 -0
  136. data/ext/libyajl2/vendored/test/cases/non_utf8_char_in_string.json +1 -0
  137. data/ext/libyajl2/vendored/test/cases/non_utf8_char_in_string.json.gold +8 -0
  138. data/ext/libyajl2/vendored/test/cases/np_partial_bad.json +1 -0
  139. data/ext/libyajl2/vendored/test/cases/np_partial_bad.json.gold +5 -0
  140. data/ext/libyajl2/vendored/test/cases/null.json +1 -0
  141. data/ext/libyajl2/vendored/test/cases/null.json.gold +2 -0
  142. data/ext/libyajl2/vendored/test/cases/nulls_and_bools.json +5 -0
  143. data/ext/libyajl2/vendored/test/cases/nulls_and_bools.json.gold +9 -0
  144. data/ext/libyajl2/vendored/test/cases/simple.json +5 -0
  145. data/ext/libyajl2/vendored/test/cases/simple.json.gold +9 -0
  146. data/ext/libyajl2/vendored/test/cases/simple_with_comments.json +11 -0
  147. data/ext/libyajl2/vendored/test/cases/simple_with_comments.json.gold +5 -0
  148. data/ext/libyajl2/vendored/test/cases/string_invalid_escape.json +1 -0
  149. data/ext/libyajl2/vendored/test/cases/string_invalid_escape.json.gold +3 -0
  150. data/ext/libyajl2/vendored/test/cases/string_invalid_hex_char.json +1 -0
  151. data/ext/libyajl2/vendored/test/cases/string_invalid_hex_char.json.gold +2 -0
  152. data/ext/libyajl2/vendored/test/cases/string_with_escapes.json +3 -0
  153. data/ext/libyajl2/vendored/test/cases/string_with_escapes.json.gold +7 -0
  154. data/ext/libyajl2/vendored/test/cases/string_with_invalid_newline.json +2 -0
  155. data/ext/libyajl2/vendored/test/cases/string_with_invalid_newline.json.gold +2 -0
  156. data/ext/libyajl2/vendored/test/cases/three_byte_utf8.json +1 -0
  157. data/ext/libyajl2/vendored/test/cases/three_byte_utf8.json.gold +7 -0
  158. data/ext/libyajl2/vendored/test/cases/true.json +1 -0
  159. data/ext/libyajl2/vendored/test/cases/true.json.gold +2 -0
  160. data/ext/libyajl2/vendored/test/cases/unescaped_bulgarian.json +1 -0
  161. data/ext/libyajl2/vendored/test/cases/unescaped_bulgarian.json.gold +4 -0
  162. data/ext/libyajl2/vendored/test/cases/zerobyte.json +1 -0
  163. data/ext/libyajl2/vendored/test/cases/zerobyte.json.gold +0 -0
  164. data/ext/libyajl2/vendored/test/run_tests.sh +94 -0
  165. data/ext/libyajl2/vendored/test/yajl_test.c +281 -0
  166. data/ext/libyajl2/vendored/verify/CMakeLists.txt +39 -0
  167. data/ext/libyajl2/vendored/verify/json_verify.c +116 -0
  168. data/lib/ffi_yajl/version.rb +1 -1
  169. data/lib/libyajl.so +0 -0
  170. data/lib/libyajl.so.2 +0 -0
  171. data/lib/libyajl.so.2.0.5 +0 -0
  172. data/lib/libyajl_s.a +0 -0
  173. data/spec/ffi_yajl/encoder_spec.rb +6 -0
  174. metadata +171 -10
  175. data/ext/ffi_yajl/ext/encoder/encoder.bundle +0 -0
  176. data/ext/ffi_yajl/ext/encoder/encoder.o +0 -0
  177. data/ext/ffi_yajl/ext/parser/parser.bundle +0 -0
  178. data/ext/ffi_yajl/ext/parser/parser.o +0 -0
  179. data/ext/libyajl2/mkmf.log +0 -63
  180. data/lib/libyajl.2.0.1.dylib +0 -0
  181. data/lib/libyajl.2.dylib +0 -0
  182. data/lib/libyajl.dylib +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: daf6de7794be628881f188aedebb67c615815e37
4
- data.tar.gz: 6e97fbc2c9949ad9cda706001f91284ac5bb9a71
3
+ metadata.gz: 67e75912c79cafa9bed3a60c659d21266331fd17
4
+ data.tar.gz: 1fb80de6152c07fb97e1b93f6f794b23b9d6c944
5
5
  SHA512:
6
- metadata.gz: 9b54009176b09579945529773a556f0a81830586bcd54c012f6fbf6dd8b6b36bb13587178b1bcf0291e168b5390e2a937b47bcb938d9a783dd672739238c22cf
7
- data.tar.gz: d7ea87b526f45207613503615900929be5b2fedb90a3582f3461d3e67e82e78fe9b3880bbb39475eebdddf0303a44c029581ee2235de164e8cbe3c3aba410646
6
+ metadata.gz: 68f96d3cf4f6e3b56b07bf8ed718b82450e415063ee186f1bd06dffd7efb4f7dcc273ee3028c0c84395610d40e884c6e2f805e23c74195171d490a7caa3cb06c
7
+ data.tar.gz: 494151a58c48d8eafd3cadecf77a9dfeaed70cf7fe651599a313b6418df151cb7ebaafab6209eb64504d3a9dc0e32ba29e5930e4f90581d0765e24f470e5cf03
@@ -163,7 +163,7 @@ static VALUE rb_cFixnum_ffi_yajl(VALUE self, VALUE rb_yajl_gen, VALUE state) {
163
163
  );
164
164
  } else {
165
165
  CHECK_STATUS(
166
- yajl_gen_integer(yajl_gen, NUM2INT(self))
166
+ yajl_gen_number(yajl_gen, cptr, len)
167
167
  );
168
168
  }
169
169
  return Qnil;
@@ -0,0 +1,3 @@
1
+ .DS_Store
2
+ Makefile
3
+ /build/
@@ -0,0 +1,23 @@
1
+ Short story (If you already have ruby and cmake):
2
+
3
+ ./configure && make install
4
+
5
+ When things go wrong:
6
+
7
+ attain CMake (http://www.cmake.org) and ruby (http://ruby-lang.org) and
8
+ try again.
9
+
10
+ OR, attain CMake and build by hand:
11
+
12
+ 1. mkdir build
13
+ 2. cd build
14
+ 3. cmake ..
15
+ 4. make
16
+ 5. build output left in yajl-X.Y.Z
17
+
18
+ NOTE: for 64-bit systems where lib64 is used you can pass the cmake
19
+ variable LIB_SUFFIX to cause installation into the system's 'lib64'
20
+ directory.
21
+
22
+ best,
23
+ lloyd
@@ -0,0 +1,27 @@
1
+ YAJL has been successfully built using Visual Studio 8. CMake, a
2
+ build file generator, is used to build the software. CMake supports
3
+ several different build environments, so you may either build YAJL
4
+ using the IDE via the following steps:
5
+
6
+ 1. acquire cmake (http://www.cmake.org)
7
+ 2. mkdir build
8
+ 3. cd build
9
+ 4. cmake ..
10
+ 5. devenv YetAnotherJSONParser.sln /project ALL_BUILD /build Release
11
+ 6. build output is left in build/yajl-X.Y.Z
12
+
13
+ Or you can build from the command line using nmake:
14
+
15
+ 1. Click Start > Programs > Microsoft Visual Studio > Visual Studio
16
+ Tools > Visual Studio Command Prompt -- for your version of Visual
17
+ Studio, which will open a command prompt. You may verify that the
18
+ compiler is in your path by typing "cl /?" at the prompt.
19
+ 2. cd C:\path\to\yajl\source\
20
+ 3. mkdir build
21
+ 4. cd build
22
+ 5. cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release ..
23
+ 6. nmake
24
+ 7. nmake install
25
+
26
+ Earlier versions of visual studio and other build generators haven't
27
+ been thoroughly tested, but should work without any major issues.
@@ -0,0 +1,79 @@
1
+ # Copyright (c) 2007-2011, Lloyd Hilaiel <lloyd@hilaiel.com>
2
+ #
3
+ # Permission to use, copy, modify, and/or distribute this software for any
4
+ # purpose with or without fee is hereby granted, provided that the above
5
+ # copyright notice and this permission notice appear in all copies.
6
+ #
7
+ # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8
+ # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9
+ # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10
+ # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11
+ # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12
+ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
13
+ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
14
+
15
+ CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
16
+
17
+ PROJECT(YetAnotherJSONParser C)
18
+
19
+ SET (YAJL_MAJOR 2)
20
+ SET (YAJL_MINOR 0)
21
+ SET (YAJL_MICRO 5)
22
+
23
+ SET (YAJL_DIST_NAME "yajl-${YAJL_MAJOR}.${YAJL_MINOR}.${YAJL_MICRO}")
24
+
25
+ IF (NOT CMAKE_BUILD_TYPE)
26
+ SET(CMAKE_BUILD_TYPE "Release")
27
+ ENDIF (NOT CMAKE_BUILD_TYPE)
28
+
29
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
30
+
31
+ IF (WIN32)
32
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4")
33
+ ADD_DEFINITIONS(-DWIN32)
34
+ SET(linkFlags "/PDB:NONE /INCREMENTAL:NO /OPT:NOREF /OPT:NOICF")
35
+ SET(CMAKE_EXE_LINKER_FLAGS "${linkFlags}"
36
+ CACHE STRING "YAJL linker flags" FORCE)
37
+ SET(CMAKE_EXE_LINKER_FLAGS_DEBUG ""
38
+ CACHE STRING "YAJL debug linker flags" FORCE)
39
+ SET(CMAKE_EXE_LINKER_FLAGS_RELEASE
40
+ CACHE STRING "YAJL release linker flags" FORCE)
41
+ SET(CMAKE_SHARED_LINKER_FLAGS "${linkFlags}"
42
+ CACHE STRING "YAJL shared linker flags" FORCE)
43
+ SET(CMAKE_MODULE_LINKER_FLAGS "${linkFlags}"
44
+ CACHE STRING "YAJL module linker flags" FORCE)
45
+
46
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4996 /wd4255 /wd4130 /wd4100 /wd4711")
47
+ SET(CMAKE_C_FLAGS_DEBUG "/D DEBUG /Od /Z7")
48
+ SET(CMAKE_C_FLAGS_RELEASE "/D NDEBUG /O2")
49
+ ELSE (WIN32)
50
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
51
+ IF(CMAKE_COMPILER_IS_GNUCC)
52
+ INCLUDE(CheckCCompilerFlag)
53
+ CHECK_C_COMPILER_FLAG(-fvisibility=hidden HAVE_GCC_VISIBILITY)
54
+ IF(HAVE_GCC_VISIBILITY)
55
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
56
+ ENDIF(HAVE_GCC_VISIBILITY)
57
+ ENDIF(CMAKE_COMPILER_IS_GNUCC)
58
+ SET(CMAKE_C_FLAGS
59
+ "${CMAKE_C_FLAGS} -std=c99 -pedantic -Wpointer-arith -Wno-format-y2k -Wstrict-prototypes -Wmissing-declarations -Wnested-externs -Wextra -Wundef -Wwrite-strings -Wold-style-definition -Wredundant-decls -Wno-unused-parameter -Wno-sign-compare -Wmissing-prototypes")
60
+
61
+ SET(CMAKE_C_FLAGS_DEBUG "-DDEBUG -g")
62
+ SET(CMAKE_C_FLAGS_RELEASE "-DNDEBUG -O2 -Wuninitialized")
63
+ ENDIF (WIN32)
64
+
65
+
66
+ ADD_SUBDIRECTORY(src)
67
+ ADD_SUBDIRECTORY(test)
68
+ ADD_SUBDIRECTORY(reformatter)
69
+ ADD_SUBDIRECTORY(verify)
70
+ ADD_SUBDIRECTORY(example)
71
+ ADD_SUBDIRECTORY(perf)
72
+
73
+ INCLUDE(YAJLDoc.cmake)
74
+
75
+ # a test target
76
+ ADD_CUSTOM_TARGET(test
77
+ ./run_tests.sh ${CMAKE_CURRENT_BINARY_DIR}/test/yajl_test
78
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test)
79
+
@@ -0,0 +1,13 @@
1
+ Copyright (c) 2007-2011, Lloyd Hilaiel <lloyd@hilaiel.com>
2
+
3
+ Permission to use, copy, modify, and/or distribute this software for any
4
+ purpose with or without fee is hereby granted, provided that the above
5
+ copyright notice and this permission notice appear in all copies.
6
+
7
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
13
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
@@ -0,0 +1,175 @@
1
+ 2.0.4
2
+ * @jcekstrom - additional checking in integer parsing
3
+ * @jcekstrom - fix a bug in yajl_tree that would cause valid json integersto fail to parse
4
+ * @plaguemorin - fix a memory leak in yajl_tree (error strings were being leaked)
5
+ * @7AC - reset errno
6
+ * @ConradIrwin - include flags to reformatter to allow toggling of escape solidus option
7
+
8
+ 2.0.3
9
+ * John Stamp generation of a pkgconfig file at build time.
10
+ * @robzuber bugfix in yajl_tree_get()
11
+ * @lloyd - fix for compilation on 64 bit windows
12
+
13
+ 2.0.2
14
+ * lth fix typos in yajl_tree.h macros YAJL_IS_INTEGER and YAJL_IS_DOUBLE,
15
+ contributed by Artem S Vybornov.
16
+ * lth add #ifdef __cplusplus wrappers to yajl_tree to allow proper
17
+ usage from many populer C++ compilers.
18
+
19
+ 2.0.1
20
+ * lth generator flag to allow client to specify they want
21
+ escaped solidi '/'. issue #28
22
+ * lth crash fix when yajl_parse() is never called. issue #27
23
+
24
+ 2.0.0
25
+ * lth YAJL is now ISC licensed: http://en.wikipedia.org/wiki/ISC_license
26
+ * lth 20-35% (osx and linux respectively) parsing performance
27
+ improvement attained by tweaking string scanning (idea: @michaelrhanson).
28
+ * Florian Forster & lth - yajl_tree interface introduced as a higher level
29
+ interface to the parser (eats JSON, poops a memory representation)
30
+ * lth require a C99 compiler
31
+ * lth integers are now represented with long long (64bit+) on all platforms.
32
+ * lth size_t now used throughout to represent buffer lengths, so you can
33
+ safely manage buffers greater than 4GB.
34
+ * gno semantic improvements to yajl's API regarding partial value parsing and
35
+ trailing garbage
36
+ * lth new configuration mechanism for yajl, see yajl_config() and
37
+ yajl_gen_config()
38
+ * gno more allocation checking in more places
39
+ * gno remove usage of strtol, replace with custom implementation that cares
40
+ not about your locale.
41
+ * lth yajl_parse_complete renamed to yajl_complete_parse.
42
+ * lth add a switch to validate utf8 strings as they are generated.
43
+ * lth tests are a lot quieter in their output.
44
+ * lth addition of a little in tree performance benchmark, `perftest` in
45
+ perf/perftest.c
46
+
47
+ 1.0.12
48
+ * Conrad Irwin - Parse null bytes correctly
49
+ * Mirek Rusin - fix LLVM warnings
50
+ * gno - Don't generate numbers for keys. closes #13
51
+ * lth - various win32 fixes, including build documentation improvements
52
+ * John Stamp - Don't export private symbols.
53
+ * John Stamp - Install yajl_version.h, not the template.
54
+ * John Stamp - Don't use -fPIC for static lib. Cmake will automatically add it for the shared.
55
+ * lth 0 fix paths embedded in dylib upon installation on osx. closes #11
56
+
57
+ 1.0.11
58
+ * lth remove -Wno-missing-field-initializers for greater gcc compat (3.4.6)
59
+
60
+ 1.0.10
61
+ * Brian Maher - yajl is now buildable without a c++ compiler present
62
+ * Brian Maher - fix header installation on OSX with cmake 2.8.0 installed
63
+ * lth & vitali - allow builder to specify alternate lib directory
64
+ for installation (i.e. lib64)
65
+ * Vitali Lovich - yajl version number now programatically accessible
66
+ * lth - prevent cmake from embedding rpaths in binaries. Static linking
67
+ makes this unneccesary.
68
+
69
+ 1.0.9
70
+ * lth - fix inverted logic causing yajl_gen_double() to always fail on
71
+ win32 (thanks to Fredrik Kihlander for the report)
72
+
73
+ 1.0.8
74
+ * Randall E. Barker - move dllexport defnitions so dlls with proper
75
+ exports can again be generated on windows
76
+ * lth - add yajl_get_bytes_consumed() which allows the client to
77
+ determine the offset as an error, as well as determine how
78
+ many bytes of an input buffer were consumed.
79
+ * lth - fixes to keep "error offset" up to date (like when the
80
+ client callback returns 0)
81
+ * Brian Maher - allow client to specify a printing function in
82
+ generation
83
+
84
+ 1.0.7
85
+ * lth fix win32 build (isinf and isnan)
86
+
87
+ 1.0.6
88
+ * lth fix several compiler warnings
89
+ * lth fix generation of invalid json from yajl_gen_double
90
+ (NaN is not JSON)
91
+ * jstamp support for combining short options in tools
92
+ * jstamp exit properly on errors from tools
93
+ * octo test success no longer depends on integer size
94
+ * max fix configure --prefix
95
+
96
+ 1.0.5
97
+ * lth several performance improvements related to function
98
+ inlinin'
99
+
100
+ 1.0.4
101
+ * lth fix broken utf8 validation for three & four byte represenations.
102
+ thanks to http://github.com/brianmario and
103
+ http://github.com/technoweenie
104
+
105
+ 1.0.3
106
+ * lth fix syntax error in cplusplus extern "C" statements for wider
107
+ compiler support
108
+
109
+ 1.0.2
110
+ * lth update doxygen documentation with new sample code, passing NULL
111
+ for allocation functions added in 1.0.0
112
+
113
+ 1.0.1
114
+ * lth resolve crash in json_reformatter due to incorrectly ordered
115
+ parameters.
116
+
117
+ 1.0.0
118
+ * lth add 'make install' rules, thaks to Andrei Soroker for the
119
+ contribution.
120
+ * lth client may override allocation routines at generator or parser
121
+ allocation time
122
+ * tjw add yajl_parse_complete routine to allow client to explicitly
123
+ specify end-of-input, solving the "lonely number" case, where
124
+ json text consists only of an element with no explicit syntactic
125
+ end.
126
+ * tjw many new test cases
127
+ * tjw cleanup of code for symmetry and ease of reading
128
+ * lth integration of patches from Robert Varga which cleanup
129
+ compilation warnings on 64 bit linux
130
+
131
+ 0.4.0
132
+ * lth buffer overflow bug in yajl_gen_double s/%lf/%g/ - thanks to
133
+ Eric Bergstrome
134
+ * lth yajl_number callback to allow passthrough of arbitrary precision
135
+ numbers to client. Thanks to Hatem Nassrat.
136
+ * lth yajl_integer now deals in long, instead of long long. This
137
+ combined with yajl_number improves compiler compatibility while
138
+ maintaining precision.
139
+ * lth better ./configure && make experience (still requires cmake and
140
+ ruby)
141
+ * lth fix handling of special characters hex 0F and 1F in yajl_encode
142
+ (thanks to Robert Geiger)
143
+ * lth allow leading zeros in exponents (thanks to Hatem Nassrat)
144
+
145
+ 0.3.0
146
+ * lth doxygen documentation (html & man) generated as part of the
147
+ build
148
+ * lth many documentation updates.
149
+ * lth fix to work with older versions of cmake (don't use LOOSE_LOOP
150
+ constructs)
151
+ * lth work around different behavior of freebsd 4 scanf. initialize
152
+ parameter to scanf to zero.
153
+ * lth all tests run 32x with ranging buffer sizes to stress stream
154
+ parsing
155
+ * lth yajl_test accepts -b option to allow read buffer size to be
156
+ set
157
+ * lth option to validate UTF8 added to parser (argument in
158
+ yajl_parser_cfg)
159
+ * lth fix buffer overrun when chunk ends inside \u escaped text
160
+ * lth support client cancelation
161
+
162
+ 0.2.2
163
+ * lth on windows build debug with C7 symbols and no pdb files.
164
+
165
+ 0.2.1
166
+ * fix yajl_reformat and yajl_verify to work on arbitrarily sized
167
+ inputs.
168
+ * fix win32 build break, clean up all errors and warnings.
169
+ * fix optimized build flags.
170
+
171
+ 0.2.0
172
+ * optionally support comments in input text
173
+
174
+ 0.1.0
175
+ * Initial release
@@ -0,0 +1,74 @@
1
+ **********************************************************************
2
+ This is YAJL 2. For the legacy version of YAJL see
3
+ https://github.com/lloyd/yajl/tree/1.x
4
+ **********************************************************************
5
+
6
+ Welcome to Yet Another JSON Library (YAJL)
7
+
8
+ ## Why does the world need another C library for parsing JSON?
9
+
10
+ Good question. In a review of current C JSON parsing libraries I was
11
+ unable to find one that satisfies my requirements. Those are,
12
+ 0. written in C
13
+ 1. portable
14
+ 2. robust -- as close to "crash proof" as possible
15
+ 3. data representation independent
16
+ 4. fast
17
+ 5. generates verbose, useful error messages including context of where
18
+ the error occurs in the input text.
19
+ 6. can parse JSON data off a stream, incrementally
20
+ 7. simple to use
21
+ 8. tiny
22
+
23
+ Numbers 3, 5, 6, and 7 were particularly hard to find, and were what
24
+ caused me to ultimately create YAJL. This document is a tour of some
25
+ of the more important aspects of YAJL.
26
+
27
+ ## YAJL is Free.
28
+
29
+ Permissive licensing means you can use it in open source and
30
+ commercial products alike without any fees. My request beyond the
31
+ licensing is that if you find bugs drop me a email, or better yet,
32
+ fork and fix.
33
+
34
+ Porting YAJL should be trivial, the implementation is ANSI C. If you
35
+ port to new systems I'd love to hear of it and integrate your patches.
36
+
37
+ ## YAJL is data representation independent.
38
+
39
+ BYODR! Many JSON libraries impose a structure based data representation
40
+ on you. This is a benefit in some cases and a drawback in others.
41
+ YAJL uses callbacks to remain agnostic of the in-memory representation.
42
+ So if you wish to build up an in-memory representation, you may do so
43
+ using YAJL, but you must bring the code that defines and populates the
44
+ in memory structure.
45
+
46
+ This also means that YAJL can be used by other (higher level) JSON
47
+ libraries if so desired.
48
+
49
+ ## YAJL supports stream parsing
50
+
51
+ This means you do not need to hold the whole JSON representation in
52
+ textual form in memory. This makes YAJL ideal for filtering projects,
53
+ where you're converting YAJL from one form to another (i.e. XML). The
54
+ included JSON pretty printer is an example of such a filter program.
55
+
56
+ ## YAJL is fast
57
+
58
+ Minimal memory copying is performed. YAJL, when possible, returns
59
+ pointers into the client provided text (i.e. for strings that have no
60
+ embedded escape chars, hopefully the common case). I've put a lot of
61
+ effort into profiling and tuning performance, but I have ignored a
62
+ couple possible performance improvements to keep the interface clean,
63
+ small, and flexible. My hope is that YAJL will perform comparably to
64
+ the fastest JSON parser out there.
65
+
66
+ YAJL should impose both minimal CPU and memory requirements on your
67
+ application.
68
+
69
+ ## YAJL is tiny.
70
+
71
+ Fat free. No whip.
72
+
73
+ enjoy,
74
+ Lloyd - July, 2007
@@ -0,0 +1,9 @@
1
+ * add a test for 0x1F bug
2
+ * numeric overflow in integers and double
3
+ * line and char offsets in the lexer and in error messages
4
+ * testing:
5
+ a. the permuter
6
+ b. some performance comparison against json_checker.
7
+ * investigate pull instead of push parsing
8
+ * Handle memory allocation failures gracefully
9
+ * cygwin/msys support on win32
@@ -0,0 +1,26 @@
1
+ FIND_PROGRAM(doxygenPath doxygen)
2
+
3
+ IF (doxygenPath)
4
+ SET (YAJL_VERSION ${YAJL_MAJOR}.${YAJL_MINOR}.${YAJL_MICRO})
5
+ SET(yajlDirName yajl-${YAJL_VERSION})
6
+ SET(docPath
7
+ "${CMAKE_CURRENT_BINARY_DIR}/${yajlDirName}/share/doc/${yajlDirName}")
8
+ MESSAGE("** using doxygen at: ${doxygenPath}")
9
+ MESSAGE("** documentation output to: ${docPath}")
10
+
11
+ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/src/YAJL.dxy
12
+ ${CMAKE_CURRENT_BINARY_DIR}/YAJL.dxy @ONLY)
13
+
14
+ FILE(MAKE_DIRECTORY "${docPath}")
15
+
16
+ ADD_CUSTOM_TARGET(doc
17
+ ${doxygenPath} YAJL.dxy
18
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
19
+
20
+ ELSE (doxygenPath)
21
+ MESSAGE("!! doxygen not found, not generating documentation")
22
+ ADD_CUSTOM_TARGET(
23
+ doc
24
+ echo doxygen not installed, not generating documentation
25
+ )
26
+ ENDIF (doxygenPath)