1 luajson v0.10 Release Notes
2 ===========================
6 This release changes the system quite a bit from previous versions in
7 that there is more configurability. There still is quite a bit of strong
8 defaulting to make it accept more data formats and encode such that the
9 most strict decoder *should* decode it.
11 It is now possible to obtain wrapped-up encoders and decoders with options
12 "compiled" in. With decoders this is particularly bound-up (LPEG patterns),
13 encoders take advantage of this with less closure-count.
15 Extended features of newer LPEG versions can also be used as they are
16 available, either via function detection or version # parsing.
20 * Single-quoted strings
21 * Function-call decoding
22 * Generic string management
23 * String post-processing option
24 * UTF-16 -> UTF-8 code decoding for "\uXXXX" from Emil Renner Berthing by default (not req)
25 * Handle extended UTF-8 spacing characters and BOF for inter-element spacing
29 * Function-call encoding
30 * String pre-processing option
31 * Fully modular encoding system
32 * Encoding with similar option system as decoding
35 Plans for next release
36 ----------------------
40 * UTF-8 encoding/decoding validation (currently decoding only supported)
41 * Optional \xXX encoding
42 * JSON encoding with fully 'strict' options
43 * Generic output mechanism (ropes, IO, etc)
47 * Full API documentation
48 * Stable encoder/decoder option-apis. Final 1.0 release will maintain
49 that all options used in code will be future-proof, at least until 2.0
54 Emil Renner Berthing (1):
56 Added proper utf8 decoding of strings
57 Thomas Harning Jr (38):
59 Merge branch '0.9-rockspec'
61 Setup 0.9.1 rockspec with md5 of luaforge release
62 added luarocks module to check out luajson from git (requires git patch)
63 Preparing for next release pre-emptively
65 during a table merge, if a nil is located, skip it
67 Added preliminary function-call handling
68 Require name is string and func is function
69 Support both patterns and strings as function name specifiers
70 function calls receive as first argument the name used
71 added support for multiple arguments to functions
72 Moved function-call decoder to separate module
73 added string post-processing utility
75 adds support for single-quoted strings w/ expected escape-handling
76 support unicode whitespaces as whitespace around values
78 Fully modularized strings/number/calls data-types
79 Refactored boolean/null/undefined out into the 'others' module
80 Provide workaround for missing lpeg.type in lpeg 0.6, 0.7, ...
81 More stabilization of string decoder configuration as well as hooking unicode-handling in
82 optimized 'number' option-defaulting
83 unified configuration system into a fast-cached Tokend which only permits card-readng ops (writing in seprate referece...)
84 Fixed return assertion to prevent 'Invalid JSON data' from being returned as second result
85 Added simple LPEG version parser "x.y.z.." => x.y
86 Added support for LPEG 0.9 accumulator replacement (fold) which may be faster
87 string.char => string_char for optimization in utf8 decoder
89 added support for 'undefined' value
91 exposed and test string preprocessing option
93 add string preprocessor handler (for encoding->utf8 mgmt)
94 Break apart the encoder into distinct modules + add call encoding
95 split out number encoder into own file to mirror decoder
96 added applicable configuration options from the decoder to the number encoder
97 enhanced configuration support to match the decoder's optionset where appropriate
98 added 'initialObject' check to assert that the root object is in fact an object/array
99 mirrored decoder's getDecoder => getEncoder setup
100 performed full modularization of the encoder + added function-encode tests
102 Removed package.path alteration since 'make check' handles that as well as luarocks
103 applied configuration optimizations take advantage of the encoder optimizations and simplifications from the decoders
104 added UTF-16 => UTF-8 encoder test
105 extends UTF tests with boundary tests and test # for break detect