8 - Replace a few `malloc()` and `free()` calls with their
9 counterparts that support custom memory management.
11 - Fix object key hashing in json_unpack() strict checking mode.
13 - Fix the parentheses in JANSSON_VERSION_HEX macro.
15 - Fix `json_object_size()` return value.
17 - Fix a few compilation issues.
21 - Enhance portability of `va_copy()`.
23 - Test framework portability enhancements.
27 - Distribute ``doc/upgrading.rst`` with the source tarball.
29 - Build documentation in strict mode in ``make distcheck``.
37 This release is backwards incompatible with the 1.x release series.
38 See the chapter "Upgrading from older versions" in documentation for
41 * Backwards incompatible changes:
43 - Unify unsigned integer usage in the API: All occurences of
44 unsigned int and unsigned long have been replaced with size_t.
46 - Change JSON integer's underlying type to the widest signed integer
47 type available, i.e. long long if it's supported, otherwise long.
48 Add a typedef json_int_t that defines the type.
50 - Change the maximum indentation depth to 31 spaces in encoder. This
51 frees up bits from the flags parameter of encoding functions
52 `json_dumpf()`, `json_dumps()` and `json_dump_file()`.
54 - For future needs, add a flags parameter to all decoding functions
55 `json_loadf()`, `json_loads()` and `json_load_file()`.
59 - `json_pack()`, `json_pack_ex()`, `json_vpack_ex()`: Create JSON
60 values based on a format string.
62 - `json_unpack()`, `json_unpack_ex()`, `json_vunpack_ex()`: Simple
63 value extraction and validation functionality based on a format
66 - Add column, position and source fields to the ``json_error_t``
69 - Enhance error reporting in the decoder.
71 - ``JANSSON_VERSION`` et al.: Preprocessor constants that define the
74 - `json_set_alloc_funcs()`: Set custom memory allocation functions.
76 * Fix many portability issues, especially on Windows.
80 - Add file ``jansson_config.h`` that contains site specific
81 configuration. It's created automatically by the configure script,
82 or can be created by hand if the configure script cannot be used.
83 The file ``jansson_config.h.win32`` can be used without
84 modifications on Windows systems.
86 - Add a section to documentation describing how to build Jansson on
89 - Documentation now requires Sphinx 1.0 or newer.
99 - `json_object_iter_set()`, `json_object_iter_set_new()`: Change
100 object contents while iterating over it.
102 - `json_object_iter_at()`: Return an iterator that points to a
103 specific object item.
105 * New encoding flags:
107 - ``JSON_PRESERVE_ORDER``: Preserve the insertion order of object
112 - Fix an error that occured when an array or object was first
113 encoded as empty, then populated with some data, and then
116 - Fix the situation like above, but when the first encoding resulted
121 - Clarify the documentation on reference stealing, providing an
122 example usage pattern
132 - Fix reference counting on ``true``, ``false`` and ``null``
133 - Estimate real number underflows in decoder with 0.0 instead of
138 - Make ``int32_t`` available on all systems
139 - Support compilers that don't have the ``inline`` keyword
140 - Require Autoconf 2.60 (for ``int32_t``)
144 - Print test names correctly when ``VERBOSE=1``
145 - ``test/suites/api``: Fail when a test fails
146 - Enhance tests for iterators
147 - Enhance tests for decoding texts that contain null bytes
151 - Don't remove ``changes.rst`` in ``make clean``
152 - Add a chapter on RFC conformance
162 - `json_equal()`: Test whether two JSON values are equal
163 - `json_copy()` and `json_deep_copy()`: Make shallow and deep copies
165 - Add a version of all functions taking a string argument that
166 doesn't check for valid UTF-8: `json_string_nocheck()`,
167 `json_string_set_nocheck()`, `json_object_set_nocheck()`,
168 `json_object_set_new_nocheck()`
170 * New encoding flags:
172 - ``JSON_SORT_KEYS``: Sort objects by key
173 - ``JSON_ENSURE_ASCII``: Escape all non-ASCII Unicode characters
174 - ``JSON_COMPACT``: Use a compact representation with all unneeded
179 - Revise and unify whitespace usage in encoder: Add spaces between
180 array and object items, never append newline to output.
181 - Remove const qualifier from the ``json_t`` parameter in
182 `json_string_set()`, `json_integer_set()` and `json_real_set`.
183 - Use ``int32_t`` internally for representing Unicode code points
184 (int is not enough on all platforms)
188 - Convert ``CHANGES`` (this file) to reStructured text and add it to
190 - The test system has been refactored. Python is no longer required
192 - Documentation can now be built by invoking ``make html``
193 - Support for pkg-config
201 * Encode reals correctly, so that first encoding and then decoding a
202 real always produces the same value
203 * Don't export private symbols in ``libjansson.so``
211 * Fix a bug where an error message was not produced if the input file
212 could not be opened in `json_load_file()`
213 * Fix an assertion failure in decoder caused by a minus sign without a
215 * Remove an unneeded include of ``stdint.h`` in ``jansson.h``
223 * All documentation files were not distributed with v1.1; build
224 documentation in make distcheck to prevent this in the future
225 * Fix v1.1 release date in ``CHANGES``
233 * API additions and improvements:
235 - Extend array and object APIs
236 - Add functions to modify integer, real and string values
237 - Improve argument validation
238 - Use unsigned int instead of ``uint32_t`` for encoding flags
240 * Enhance documentation
242 - Add getting started guide and tutorial
244 - General clarifications and cleanup
246 * Check for integer and real overflows and underflows in decoder
247 * Make singleton values thread-safe (``true``, ``false`` and ``null``)
248 * Enhance circular reference handling
249 * Don't define ``-std=c99`` in ``AM_CFLAGS``
250 * Add C++ guards to ``jansson.h``
251 * Minor performance and portability improvements
252 * Expand test coverage
260 * Relax Autoconf version requirement to 2.59
261 * Make Jansson compile on platforms where plain ``char`` is unsigned
262 * Fix API tests for object
270 * Check for integer and real overflows and underflows in decoder
271 * Use the Python json module for tests, or simplejson if the json
273 * Distribute changelog (this file)
281 * Handle EOF correctly in decoder
289 * Fixed broken `json_is_boolean()`