tests: added pre-value whitespace tests
[luajson.git] / docs / ReleaseNotes-0.10.txt
blobca678c970eb1675acad7dfa2ad4e850016821203
1 luajson v0.10 Release Notes
2 ===========================
4 User Visible Changes
5 --------------------
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.
18 New decoder features:
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
27 New encoder features:
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 ----------------------
38 0.11
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)
45 1.0 beta
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
51 Updates since 0.9.1
52 ===================
54 Emil Renner Berthing (1):
55         decoder:
56                 Added proper utf8 decoding of strings
57 Thomas Harning Jr (38):
58         -ungrouped-
59                 Merge branch '0.9-rockspec'
60         base:
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
64         decode-util:
65                 during a table merge, if a nil is located, skip it
66         decoder/test:
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
74         decoder/tests:
75                 adds support for single-quoted strings w/ expected escape-handling
76                 support unicode whitespaces as whitespace around values
77         decoder:
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
88         encoder/decoder:
89                 added support for 'undefined' value
90         encoder/test:
91                 exposed and test string preprocessing option
92         encoder:
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
101         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