libjson Changelog

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)

  • Fixed makefile

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)

  • Fixed a bug

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)

  • Added makefiles

New in libjson 4.1 (May 6, 2010)

  • Full unicode support
  • Better documentation