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