What's new in libjson 7.6.0
Mar 24, 2012
- Optimized the comment extractor in preparser
- Optimized the comment extractor in worker
- Fixed JSONWorker::RemoveWhiteSpaceAndComments still throwing
- Merged white space stripper code
- Specialized white space stripper code when memory is no issue
- Unified white space stripping method signatures
- Replaced many c_str calls with data calls
- Removed extra string copy in validation
- Added JSON_NUMBER_TYPE option
- Upgraded to mempool++ 1.2
- Pulled base64 code into libbase64++ 1.1
- Fixed internally escaped strings being written in rare cases
New in libjson 7.5.1 (Mar 24, 2012)
- Fixed bug where FindNextRelevant can go outside string bounds
New in libjson 7.5.0 (Mar 24, 2012)
- Optimized writing engine to use a buffer, about 6x faster on average
- Fixed a method declaration that broke the compile in gcc 4.6.1
- Added complete in depth unit test infrastructure to test individual functions better
- Fixed compile bugs with JSON_STRICT option
- Fixed various bugs where strange number formats would be read wrong
- Fixed inconsistencies with number parsers
- Added tests for JSON_STRICT
- Fixed accident where JSON_LIBRARY was off
- Make one of most common methods template based when size doesn’t matter
- Added some extra caches to speed up big writes
- Removed throw from JSONWorker to allow no exceptions
- Fixed possible stack overflow problem with streams )
- Added the JSON_SECURITY_MAX_STREAM_OBJECTS option
- Added optional parameters to writes for buffer size
- Removed unused method in writer
- Put in place infrastructure for shared strings (not implemented yet)
- Fixed bug where assert for negative allocations wasn’t getting called
New in libjson 7.4.1 (Mar 24, 2012)
- Fixed accident where JSON_MEMORY_CALLBACKS was turned on
- Added libjson::to_std_string and libjson::to_std_wstring methods
- Added libjson::to_json_string method
New in libjson 7.4.0 (Mar 24, 2012)
- Added mempool++ inside of the libjson code for nodes, internal nodes, and stl
- Tests with memory pooling run about 30% faster
- Added JSON_MEMORY_POOL option
New in libjson 7.3.4 (Sep 2, 2011)
- Fixed bug where with JSON_NULL_MEMORY option could null out children
- Explicitly defined std namespace for memory functions
New in libjson 7.3.3 (Sep 2, 2011)
- Fixed problem with as_int being limited to long
New in libjson 7.3.2 (Sep 2, 2011)
- Made library fail compilation if JSON_NO_EXCEPTIONS and JSON_SAFE on
New in libjson 7.3.1 (Sep 2, 2011)
New in libjson 7.3.0 (Sep 2, 2011)
- Moved all globals to one place
- Globals now allocated only when needed by using singletons
- Fixed some incorrect error reporting
- Moved most repeated strings in global strings
- Fixed bug with base64 not null terminating (bug #3370505)
- Put hotspots in allocator
- Made allocator VC++ capable
- Fixed bug in preparser with escaped strings
- Fixed bug in writer where unparsed dumps may have intermediate values
- Added error detection in streams
- Added option to have streams use themselves as identifiers
- Added a state to streams
- Test Suite now shows the maximum amount of heap used at once
New in libjson 7.2.0 (Sep 2, 2011)
- Changed the default options to make library bigger by default
- Added the JSON_CASTABLE option
- Added the JSON_SECURITY_MAX_NEST_LEVEL option
- Added the JSON_SECURITY_MAX_STRING_LENGTH option
- Fixed a bug where json_encode64 would not produce a correct string
- Added a 2nd parameter to the stream callbacks
- Made all dynamic allocations do through callbacks (even STL)
- Made writer more memory efficient
- Fixed unicode verification bug
- Added a secondary parser (preprocessor swaps them)
- Fixed some implicit conversions between unicod
New in libjson 7.1.1 (Sep 2, 2011)
- Fixed an implicit conversion between unicode and ascii
- Removed some compiler warnings from VC++
- Added checks for LONG_LONG_MAX and LLONG_MAX
New in libjson 7.1.0 (Sep 2, 2011)
- Added the ARRAY_SIZE_ON_ONE_LINE option
- Added JSON_INT_TYPE option
- Fixed bug in validation in unicode mode
- Fixed bug where huge numbers wouldn’t be translated correctly
- Fixed a bug where precision was lost in base 64 unicode encoding
- Make number parsing safer for unicode
- Fixed the long long and long double variants not being declared
- Added the -> operator to iterators
- Added casts from iterators to const_iterators
- Added casts from reverse_iterators to reverse_const_iterators
- Added comparison ability between iterators and const_iterators
- Added comparison ability between reverse_iterators and reverse_const_iterators
- Made write and write_formatted const
New in libjson 7.0.1 (Feb 19, 2011)
- fiexd a bug in the makefile
New in libjson 7.0.0 (Feb 19, 2011)
- Added JSON_STRICT option
- Made checking of numeric values more precise
- Expanded some test macros
- Replaced some implicit initializations with explicit ones
- Replaced FromOctal with one big conversion
- Made number converters more explicit
- Removed // comments from C interface
- Added exception specification
- Added various GCC-specific optimizations
- Made a few methods __attribute__ ((pure))
- Made a few fields __attribute__ ((packed)) with JSON_LESS_MEMORY
- Packed data even tighter in JSON_LESS_MEMORY mode
- Added hot and cold spots depending on options
- Added compile-time branch prediction
- Added various VC++-specific optimizations
- Packed data even tighter in JSON_LESS_MEMORY mode
- Made _ftoa not a template function
- Changed JSON_WRITER option to JSON_WRITE_PRIORITY
- Added JSON_READ_PRIORITY
- Added __LIBJSON_MAJOR__
- Added __LIBJSON_MINOR__
- Added __LIBJSON_PATCH__
- Added __LIBJSON_VERSION__
- With JSON_LESS_MEMORY on, number conversion buffers are on the heap
- Number to string conversions much faster now
- String to number in JSON_STRICT mode really fast
- Sped up string manipulation
- Allowed reserve with JSON_LESS_MEMORY again
- Added NDEBUG to release build options
- Rewrote how validation is done
- Made entire reading engine much faster in most cases
- Constants can now be case-insensitive
- Added JSON_OCTAL option
- Added JSONStreams
- Added JSON_EXPOSE_BASE64 option
- Nodes that arenʼt containers use considerably less memory
- Fixed a bug where mutexes wouldnʼt propagate during a copy
- Added JSON_NO_EXCEPTIONS option
- Added JSON_DEPRECATED_FUNCTIONSs option
- Replaced makefile
New in libjson 6.2.3 (Feb 19, 2011)
- Any unsupported escape character is put in as-is
- Removed escaping of vertical tabs when writing
New in libjson 6.2.2 (Feb 19, 2011)
- Fix bug where single quotes got escaped
New in libjson 6.2.1 (Nov 24, 2010)
- Fix a few documentation slips
- Fixed bug in All Test Suite options
- Defined as_int and as_float for strings
- reserve now is a noop when JSON_LESS_MEMORY is on
- Added JSON_BOOL_TYPE option for the C interface
New in libjson 6.2.0 (Nov 19, 2010)
- Fix problem with escaping names sometimes
- Added JSON_ESCAPE_WRITES option to make escaping special chars optional
- Added JSON_STRING_HEADER option to drop in custom string classes
- Added JSON_NO_C_CONSTS option
- Memory enhancements throughout
- Added Salvor HardinÊŒs fix for missing snprintf in VC++
- Added C++ example in the Getting Started folder
New in libjson 6.1.2 (Nov 11, 2010)
- Fixed bug where unicode wasnʼt writing escaped UTF correctly
- Added JSON_TEXT macro to the documentation
New in libjson 6.1.1 (Nov 10, 2010)
- Fixed bug with consecutive surrogate pairs not being read correctly
- Changed license to FreeBSD
New in libjson 6.1.0 (Nov 10, 2010)
- Made buffers for converting numbers to strings solved at compile time
- Minor performance tweaks throughout
- Better examples thanks to Chris Larsen
- Fixed a few mistakes in documentation
New in libjson 6.0 (Sep 13, 2010)
- Completely new design, much faster and more elegant
New in libjson 5.2.2 (Aug 20, 2010)
- Added safety catch for mismatched quotes
New in libjson 5.2.1 (Aug 6, 2010)
New in libjson 5.1 (Jul 7, 2010)
- New custom container for children
- JSON_LESS_MEMORY option
New in libjson 4.3 (Jun 17, 2010)
New in libjson 4.1 (May 6, 2010)
- Full unicode support
- Better documentation