You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
583 lines
14 KiB
583 lines
14 KiB
Version 2.6 |
|
=========== |
|
|
|
Released 2014-02-11 |
|
|
|
* Security: |
|
|
|
- CVE-2013-6401: The hash function used by the hashtable |
|
implementation has been changed, and is automatically seeded with |
|
random data when the first JSON object is created. This prevents |
|
an attacker from causing large JSON objects with specially crafted |
|
keys perform poorly. |
|
|
|
* New features: |
|
|
|
- `json_object_seed()`: Set the seed value of the hash function. |
|
|
|
* Bug fixes: |
|
|
|
- Include CMake specific files in the release tarball. |
|
|
|
* Documentation: |
|
|
|
- Fix tutorial source to send a User-Agent header, which is now |
|
required by the GitHub API. |
|
|
|
- Set all memory to zero in secure_free() example. |
|
|
|
|
|
Version 2.5 |
|
=========== |
|
|
|
Released 2013-09-19 |
|
|
|
* New features: |
|
|
|
- `json_pack()` and friends: Add format specifiers ``s#``, ``+`` and |
|
``+#``. |
|
|
|
- Add ``JSON_DECODE_INT_AS_REAL`` decoding flag to treat all numbers |
|
as real in the decoder (#123). |
|
|
|
- Add `json_array_foreach()`, paralleling `json_object_foreach()` |
|
(#118). |
|
|
|
* Bug fixes: |
|
|
|
- `json_dumps()` and friends: Don't crash if json is *NULL* and |
|
``JSON_ENCODE_ANY`` is set. |
|
|
|
- Fix a theoretical integer overflow in `jsonp_strdup()`. |
|
|
|
- Fix `l_isxdigit()` macro (#97). |
|
|
|
- Fix an off-by-one error in `json_array_remove()`. |
|
|
|
* Build: |
|
|
|
- Support CMake in addition to GNU Autotools (#106, #107, #112, |
|
#115, #120, #127). |
|
|
|
- Support building for Android (#109). |
|
|
|
- Don't use ``-Werror`` by default. |
|
|
|
- Support building and testing with VPATH (#93). |
|
|
|
- Fix compilation when ``NDEBUG`` is defined (#128) |
|
|
|
* Tests: |
|
|
|
- Fix a refleak in ``test/bin/json_process.c``. |
|
|
|
* Documentation: |
|
|
|
- Clarify the return value of `json_load_callback_t`. |
|
|
|
- Document how to circumvent problems with separate heaps on Windows. |
|
|
|
- Fix memory leaks and warnings in ``github_commits.c``. |
|
|
|
- Use `json_decref()` properly in tutorial. |
|
|
|
* Other: |
|
|
|
- Make it possible to forward declare ``struct json_t``. |
|
|
|
|
|
Version 2.4 |
|
=========== |
|
|
|
Released 2012-09-23 |
|
|
|
* New features: |
|
|
|
- Add `json_boolean()` macro that returns the JSON true or false |
|
value based on its argument (#86). |
|
|
|
- Add `json_load_callback()` that calls a callback function |
|
repeatedly to read the JSON input (#57). |
|
|
|
- Add JSON_ESCAPE_SLASH encoding flag to escape all occurences of |
|
``/`` with ``\/``. |
|
|
|
* Bug fixes: |
|
|
|
- Check for and reject NaN and Inf values for reals. Encoding these |
|
values resulted in invalid JSON. |
|
|
|
- Fix `json_real_set()` to return -1 on error. |
|
|
|
* Build: |
|
|
|
- Jansson now builds on Windows with Visual Studio 2010, and |
|
includes solution and project files in ``win32/vs2010/`` |
|
directory. |
|
|
|
- Fix build warnings (#77, #78). |
|
|
|
- Add ``-no-undefined`` to LDFLAGS (#90). |
|
|
|
* Tests: |
|
|
|
- Fix the symbol exports test on Linux/PPC64 (#88). |
|
|
|
* Documentation: |
|
|
|
- Fix typos (#73, #84). |
|
|
|
|
|
Version 2.3.1 |
|
============= |
|
|
|
Released 2012-04-20 |
|
|
|
* Build issues: |
|
|
|
- Only use ``long long`` if ``strtoll()`` is also available. |
|
|
|
* Documentation: |
|
|
|
- Fix the names of library version constants in documentation. (#52) |
|
|
|
- Change the tutorial to use GitHub API v3. (#65) |
|
|
|
* Tests: |
|
|
|
- Make some tests locale independent. (#51) |
|
|
|
- Distribute the library exports test in the tarball. |
|
|
|
- Make test run on shells that don't support the ``export FOO=bar`` |
|
syntax. |
|
|
|
|
|
Version 2.3 |
|
=========== |
|
|
|
Released 2012-01-27 |
|
|
|
* New features: |
|
|
|
- `json_unpack()` and friends: Add support for optional object keys |
|
with the ``{s?o}`` syntax. |
|
|
|
- Add `json_object_update_existing()` and |
|
`json_object_update_missing()`, for updating only existing keys or |
|
only adding missing keys to an object. (#37) |
|
|
|
- Add `json_object_foreach()` for more convenient iteration over |
|
objects. (#45, #46) |
|
|
|
- When decoding JSON, write the number of bytes that were read from |
|
input to ``error.position`` also on success. This is handy with |
|
``JSON_DISABLE_EOF_CHECK``. |
|
|
|
- Add support for decoding any JSON value, not just arrays or |
|
objects. The support is enabled with the new ``JSON_DECODE_ANY`` |
|
flag. Patch by Andrea Marchesini. (#4) |
|
|
|
* Bug fixes |
|
|
|
- Avoid problems with object's serial number growing too big. (#40, |
|
#41) |
|
|
|
- Decoding functions now return NULL if the first argument is NULL. |
|
Patch by Andrea Marchesini. |
|
|
|
- Include ``jansson_config.h.win32`` in the distribution tarball. |
|
|
|
- Remove ``+`` and leading zeros from exponents in the encoder. |
|
(#39) |
|
|
|
- Make Jansson build and work on MinGW. (#39, #38) |
|
|
|
* Documentation |
|
|
|
- Note that the same JSON values must not be encoded in parallel by |
|
separate threads. (#42) |
|
|
|
- Document MinGW support. |
|
|
|
|
|
Version 2.2.1 |
|
============= |
|
|
|
Released 2011-10-06 |
|
|
|
* Bug fixes: |
|
|
|
- Fix real number encoding and decoding under non-C locales. (#32) |
|
|
|
- Fix identifier decoding under non-UTF-8 locales. (#35) |
|
|
|
- `json_load_file()`: Open the input file in binary mode for maximum |
|
compatiblity. |
|
|
|
* Documentation: |
|
|
|
- Clarify the lifecycle of the result of the ``s`` fromat of |
|
`json_unpack()`. (#31) |
|
|
|
- Add some portability info. (#36) |
|
|
|
- Little clarifications here and there. |
|
|
|
* Other: |
|
|
|
- Some style fixes, issues detected by static analyzers. |
|
|
|
|
|
Version 2.2 |
|
=========== |
|
|
|
Released 2011-09-03 |
|
|
|
* New features: |
|
|
|
- `json_dump_callback()`: Pass the encoder output to a callback |
|
function in chunks. |
|
|
|
* Bug fixes: |
|
|
|
- `json_string_set()`: Check that target is a string and value is |
|
not NULL. |
|
|
|
* Other: |
|
|
|
- Documentation typo fixes and clarifications. |
|
|
|
|
|
Version 2.1 |
|
=========== |
|
|
|
Released 2011-06-10 |
|
|
|
* New features: |
|
|
|
- `json_loadb()`: Decode a string with a given size, useful if the |
|
string is not null terminated. |
|
|
|
- Add ``JSON_ENCODE_ANY`` encoding flag to allow encoding any JSON |
|
value. By default, only arrays and objects can be encoded. (#19) |
|
|
|
- Add ``JSON_REJECT_DUPLICATES`` decoding flag to issue a decoding |
|
error if any JSON object in the input contins duplicate keys. (#3) |
|
|
|
- Add ``JSON_DISABLE_EOF_CHECK`` decoding flag to stop decoding after a |
|
valid JSON input. This allows other data after the JSON data. |
|
|
|
* Bug fixes: |
|
|
|
- Fix an additional memory leak when memory allocation fails in |
|
`json_object_set()` and friends. |
|
|
|
- Clear errno before calling `strtod()` for better portability. (#27) |
|
|
|
* Building: |
|
|
|
- Avoid set-but-not-used warning/error in a test. (#20) |
|
|
|
* Other: |
|
|
|
- Minor clarifications to documentation. |
|
|
|
|
|
Version 2.0.1 |
|
============= |
|
|
|
Released 2011-03-31 |
|
|
|
* Bug fixes: |
|
|
|
- Replace a few `malloc()` and `free()` calls with their |
|
counterparts that support custom memory management. |
|
|
|
- Fix object key hashing in json_unpack() strict checking mode. |
|
|
|
- Fix the parentheses in ``JANSSON_VERSION_HEX`` macro. |
|
|
|
- Fix `json_object_size()` return value. |
|
|
|
- Fix a few compilation issues. |
|
|
|
* Portability: |
|
|
|
- Enhance portability of `va_copy()`. |
|
|
|
- Test framework portability enhancements. |
|
|
|
* Documentation: |
|
|
|
- Distribute ``doc/upgrading.rst`` with the source tarball. |
|
|
|
- Build documentation in strict mode in ``make distcheck``. |
|
|
|
|
|
Version 2.0 |
|
=========== |
|
|
|
Released 2011-02-28 |
|
|
|
This release is backwards incompatible with the 1.x release series. |
|
See the chapter "Upgrading from older versions" in documentation for |
|
details. |
|
|
|
* Backwards incompatible changes: |
|
|
|
- Unify unsigned integer usage in the API: All occurences of |
|
unsigned int and unsigned long have been replaced with size_t. |
|
|
|
- Change JSON integer's underlying type to the widest signed integer |
|
type available, i.e. long long if it's supported, otherwise long. |
|
Add a typedef json_int_t that defines the type. |
|
|
|
- Change the maximum indentation depth to 31 spaces in encoder. This |
|
frees up bits from the flags parameter of encoding functions |
|
`json_dumpf()`, `json_dumps()` and `json_dump_file()`. |
|
|
|
- For future needs, add a flags parameter to all decoding functions |
|
`json_loadf()`, `json_loads()` and `json_load_file()`. |
|
|
|
* New features |
|
|
|
- `json_pack()`, `json_pack_ex()`, `json_vpack_ex()`: Create JSON |
|
values based on a format string. |
|
|
|
- `json_unpack()`, `json_unpack_ex()`, `json_vunpack_ex()`: Simple |
|
value extraction and validation functionality based on a format |
|
string. |
|
|
|
- Add column, position and source fields to the ``json_error_t`` |
|
struct. |
|
|
|
- Enhance error reporting in the decoder. |
|
|
|
- ``JANSSON_VERSION`` et al.: Preprocessor constants that define the |
|
library version. |
|
|
|
- `json_set_alloc_funcs()`: Set custom memory allocation functions. |
|
|
|
* Fix many portability issues, especially on Windows. |
|
|
|
* Configuration |
|
|
|
- Add file ``jansson_config.h`` that contains site specific |
|
configuration. It's created automatically by the configure script, |
|
or can be created by hand if the configure script cannot be used. |
|
The file ``jansson_config.h.win32`` can be used without |
|
modifications on Windows systems. |
|
|
|
- Add a section to documentation describing how to build Jansson on |
|
Windows. |
|
|
|
- Documentation now requires Sphinx 1.0 or newer. |
|
|
|
|
|
Version 1.3 |
|
=========== |
|
|
|
Released 2010-06-13 |
|
|
|
* New functions: |
|
|
|
- `json_object_iter_set()`, `json_object_iter_set_new()`: Change |
|
object contents while iterating over it. |
|
|
|
- `json_object_iter_at()`: Return an iterator that points to a |
|
specific object item. |
|
|
|
* New encoding flags: |
|
|
|
- ``JSON_PRESERVE_ORDER``: Preserve the insertion order of object |
|
keys. |
|
|
|
* Bug fixes: |
|
|
|
- Fix an error that occured when an array or object was first |
|
encoded as empty, then populated with some data, and then |
|
re-encoded |
|
|
|
- Fix the situation like above, but when the first encoding resulted |
|
in an error |
|
|
|
* Documentation: |
|
|
|
- Clarify the documentation on reference stealing, providing an |
|
example usage pattern |
|
|
|
|
|
Version 1.2.1 |
|
============= |
|
|
|
Released 2010-04-03 |
|
|
|
* Bug fixes: |
|
|
|
- Fix reference counting on ``true``, ``false`` and ``null`` |
|
- Estimate real number underflows in decoder with 0.0 instead of |
|
issuing an error |
|
|
|
* Portability: |
|
|
|
- Make ``int32_t`` available on all systems |
|
- Support compilers that don't have the ``inline`` keyword |
|
- Require Autoconf 2.60 (for ``int32_t``) |
|
|
|
* Tests: |
|
|
|
- Print test names correctly when ``VERBOSE=1`` |
|
- ``test/suites/api``: Fail when a test fails |
|
- Enhance tests for iterators |
|
- Enhance tests for decoding texts that contain null bytes |
|
|
|
* Documentation: |
|
|
|
- Don't remove ``changes.rst`` in ``make clean`` |
|
- Add a chapter on RFC conformance |
|
|
|
|
|
Version 1.2 |
|
=========== |
|
|
|
Released 2010-01-21 |
|
|
|
* New functions: |
|
|
|
- `json_equal()`: Test whether two JSON values are equal |
|
- `json_copy()` and `json_deep_copy()`: Make shallow and deep copies |
|
of JSON values |
|
- Add a version of all functions taking a string argument that |
|
doesn't check for valid UTF-8: `json_string_nocheck()`, |
|
`json_string_set_nocheck()`, `json_object_set_nocheck()`, |
|
`json_object_set_new_nocheck()` |
|
|
|
* New encoding flags: |
|
|
|
- ``JSON_SORT_KEYS``: Sort objects by key |
|
- ``JSON_ENSURE_ASCII``: Escape all non-ASCII Unicode characters |
|
- ``JSON_COMPACT``: Use a compact representation with all unneeded |
|
whitespace stripped |
|
|
|
* Bug fixes: |
|
|
|
- Revise and unify whitespace usage in encoder: Add spaces between |
|
array and object items, never append newline to output. |
|
- Remove const qualifier from the ``json_t`` parameter in |
|
`json_string_set()`, `json_integer_set()` and `json_real_set`. |
|
- Use ``int32_t`` internally for representing Unicode code points |
|
(int is not enough on all platforms) |
|
|
|
* Other changes: |
|
|
|
- Convert ``CHANGES`` (this file) to reStructured text and add it to |
|
HTML documentation |
|
- The test system has been refactored. Python is no longer required |
|
to run the tests. |
|
- Documentation can now be built by invoking ``make html`` |
|
- Support for pkg-config |
|
|
|
|
|
Version 1.1.3 |
|
============= |
|
|
|
Released 2009-12-18 |
|
|
|
* Encode reals correctly, so that first encoding and then decoding a |
|
real always produces the same value |
|
* Don't export private symbols in ``libjansson.so`` |
|
|
|
|
|
Version 1.1.2 |
|
============= |
|
|
|
Released 2009-11-08 |
|
|
|
* Fix a bug where an error message was not produced if the input file |
|
could not be opened in `json_load_file()` |
|
* Fix an assertion failure in decoder caused by a minus sign without a |
|
digit after it |
|
* Remove an unneeded include of ``stdint.h`` in ``jansson.h`` |
|
|
|
|
|
Version 1.1.1 |
|
============= |
|
|
|
Released 2009-10-26 |
|
|
|
* All documentation files were not distributed with v1.1; build |
|
documentation in make distcheck to prevent this in the future |
|
* Fix v1.1 release date in ``CHANGES`` |
|
|
|
|
|
Version 1.1 |
|
=========== |
|
|
|
Released 2009-10-20 |
|
|
|
* API additions and improvements: |
|
|
|
- Extend array and object APIs |
|
- Add functions to modify integer, real and string values |
|
- Improve argument validation |
|
- Use unsigned int instead of ``uint32_t`` for encoding flags |
|
|
|
* Enhance documentation |
|
|
|
- Add getting started guide and tutorial |
|
- Fix some typos |
|
- General clarifications and cleanup |
|
|
|
* Check for integer and real overflows and underflows in decoder |
|
* Make singleton values thread-safe (``true``, ``false`` and ``null``) |
|
* Enhance circular reference handling |
|
* Don't define ``-std=c99`` in ``AM_CFLAGS`` |
|
* Add C++ guards to ``jansson.h`` |
|
* Minor performance and portability improvements |
|
* Expand test coverage |
|
|
|
|
|
Version 1.0.4 |
|
============= |
|
|
|
Released 2009-10-11 |
|
|
|
* Relax Autoconf version requirement to 2.59 |
|
* Make Jansson compile on platforms where plain ``char`` is unsigned |
|
* Fix API tests for object |
|
|
|
|
|
Version 1.0.3 |
|
============= |
|
|
|
Released 2009-09-14 |
|
|
|
* Check for integer and real overflows and underflows in decoder |
|
* Use the Python json module for tests, or simplejson if the json |
|
module is not found |
|
* Distribute changelog (this file) |
|
|
|
|
|
Version 1.0.2 |
|
============= |
|
|
|
Released 2009-09-08 |
|
|
|
* Handle EOF correctly in decoder |
|
|
|
|
|
Version 1.0.1 |
|
============= |
|
|
|
Released 2009-09-04 |
|
|
|
* Fixed broken `json_is_boolean()` |
|
|
|
|
|
Version 1.0 |
|
=========== |
|
|
|
Released 2009-08-25 |
|
|
|
* Initial release
|
|
|