blob: f69e5567fe2d4d9e69f1be0bc4848a625f231e84 [file] [log] [blame]
luajson v1.0 Release Notes
==========================
User Visible Changes
--------------------
This release marks the 1.0 release that has been in the works for quite some time.
One of the major release items is detailed documentation and a reasonably stable/
clean API. Some features have been eliminated since they were not effective or
used.
Features removed:
* Lax number handling... before this release, numbers with ugly definition were
permitted, such as leading zeroes, multiple negative signs, ...
* String post-processing... this feature was unused and appears to serve no
useful purpose. Removing it made unifying encoding/decoding options simpler
* Adds global pre-processing to handle arbitrary conversion of values during
encoding.
Changes:
* String escape codes updated to match what the JSON spec uses for encoding
Additions:
* Add optional \x00 character encoding to handle encoding single bytes
* Custom output stream functionality to create optimal output mechanisms
that can stream JSON output.
Plans for next release
----------------------
Currently there is nothing in the works for the next release. The project
is very open to outside suggestions and patches for enhanced functionality...
so please contribute.
Updates since 0.10
==================
Thomas Harning Jr (46):
-ungrouped-
Rockspec 0.10
moved lua sources into 'lua' to assist luarocks management
base:
makefiles learn high bzip2 and gzip compression
adds new rockspec for github
updated github rockspec to reference all of the files
Makefile learns split-apart checking
rockspec 0.10-2 update -- previous one had improper luaforge link
decoder/strings:
removed unused 'postProcess' option
removed unused 'null' decoder
remove catchall escape handler from default
applied minor cleanups
added error analysis for strings + generic bad-character utility
decoder/tests:
remove depth limiting support code, implementation, and tests
implemented non-defined call captures and updated tests to handle cases
removed lax number handling (leading zeroes, multiple negatives, and spaces between - and digits)
fixes ambiguous/invalid hex numbers with decimal/scientific format
decoder:
reorders replacements based on spec, adds 'x' escape
allow whitespace before strict object/array
generalizes decoding using grammar entries
docs:
preliminary documentation of options
created markdown documentation to be translated into manpage-style documentation
moves documentation to asciidoc
encoder/decoder/tests:
moves json.decode.util.merge => json.util.merge
call-generation/handling moved to json.util and unified
removes discrimination between calls with 1 and * arguments
encoder/decoder:
applied license headers to files missing them
encoder/tests:
move preprocessing to root to permit global pre-processor (ex: take special strings and base64-encode to call)
encoder:
add vertical tabulation character to the encoded set
adds \xXX encoding and customizable encoding set
adds custom output-encoder support while keeping default case optimal using templates
adds output-stream writer for encoding
consulted JSON specification and updated string definitions to match
note encoding > 7F with escapes is hazardous
properly capture expected range-of-characters to map
updates strict encoding to use correct calls check and ordering
correct language of disabled 'undefined' value
cleans up code and errors
removes extraneous 'defs' from the default options
tests:
adds \u and \x escape encoding/decoding test cases
test strict form of string decoding tests
updates strict string test to use strict encoder
regression-test uses test strict encoder in strict tests
adds strict encoder regression tests
report error cause during regressionTest encoding failures
added pre-value whitespace tests
updated tests to match new stricter default syntax