6 This release is backwards incompatible with the 1.x release series.
7 See the chapter "Upgrading from older versions" in documentation for
10 * Backwards incompatible changes:
12 - Unify unsigned integer usage in the API: All occurences of
13 unsigned int and unsigned long have been replaced with size_t.
15 - Change JSON integer's underlying type to the widest signed integer
16 type available, i.e. long long if it's supported, otherwise long.
17 Add a typedef json_int_t that defines the type.
19 - Change the maximum indentation depth to 31 spaces in encoder. This
20 frees up bits from the flags parameter of encoding functions
21 `json_dumpf()`, `json_dumps()` and `json_dump_file()`.
23 - For future needs, add a flags parameter to all decoding functions
24 `json_loadf()`, `json_loads()` and `json_load_file()`.
28 - `json_pack()`, `json_pack_ex()`, `json_vpack_ex()`: Create JSON
29 values based on a format string.
31 - `json_unpack()`, `json_unpack_ex()`, `json_vunpack_ex()`: Simple
32 value extraction and validation functionality based on a format
35 - Add column, position and source fields to the ``json_error_t``
38 - Enhance error reporting in the decoder.
40 - ``JANSSON_VERSION`` et al.: Preprocessor constants that define the
43 - `json_set_alloc_funcs()`: Set custom memory allocation functions.
45 * Fix many portability issues, especially on Windows.
49 - Add file ``jansson_config.h`` that contains site specific
50 configuration. It's created automatically by the configure script,
51 or can be created by hand if the configure script cannot be used.
52 The file ``jansson_config.h.win32`` can be used without
53 modifications on Windows systems.
55 - Add a section to documentation describing how to build Jansson on
58 - Documentation now requires Sphinx 1.0 or newer.
68 - `json_object_iter_set()`, `json_object_iter_set_new()`: Change
69 object contents while iterating over it.
71 - `json_object_iter_at()`: Return an iterator that points to a
76 - ``JSON_PRESERVE_ORDER``: Preserve the insertion order of object
81 - Fix an error that occured when an array or object was first
82 encoded as empty, then populated with some data, and then
85 - Fix the situation like above, but when the first encoding resulted
90 - Clarify the documentation on reference stealing, providing an
101 - Fix reference counting on ``true``, ``false`` and ``null``
102 - Estimate real number underflows in decoder with 0.0 instead of
107 - Make ``int32_t`` available on all systems
108 - Support compilers that don't have the ``inline`` keyword
109 - Require Autoconf 2.60 (for ``int32_t``)
113 - Print test names correctly when ``VERBOSE=1``
114 - ``test/suites/api``: Fail when a test fails
115 - Enhance tests for iterators
116 - Enhance tests for decoding texts that contain null bytes
120 - Don't remove ``changes.rst`` in ``make clean``
121 - Add a chapter on RFC conformance
131 - `json_equal()`: Test whether two JSON values are equal
132 - `json_copy()` and `json_deep_copy()`: Make shallow and deep copies
134 - Add a version of all functions taking a string argument that
135 doesn't check for valid UTF-8: `json_string_nocheck()`,
136 `json_string_set_nocheck()`, `json_object_set_nocheck()`,
137 `json_object_set_new_nocheck()`
139 * New encoding flags:
141 - ``JSON_SORT_KEYS``: Sort objects by key
142 - ``JSON_ENSURE_ASCII``: Escape all non-ASCII Unicode characters
143 - ``JSON_COMPACT``: Use a compact representation with all unneeded
148 - Revise and unify whitespace usage in encoder: Add spaces between
149 array and object items, never append newline to output.
150 - Remove const qualifier from the ``json_t`` parameter in
151 `json_string_set()`, `json_integer_set()` and `json_real_set`.
152 - Use ``int32_t`` internally for representing Unicode code points
153 (int is not enough on all platforms)
157 - Convert ``CHANGES`` (this file) to reStructured text and add it to
159 - The test system has been refactored. Python is no longer required
161 - Documentation can now be built by invoking ``make html``
162 - Support for pkg-config
170 * Encode reals correctly, so that first encoding and then decoding a
171 real always produces the same value
172 * Don't export private symbols in ``libjansson.so``
180 * Fix a bug where an error message was not produced if the input file
181 could not be opened in `json_load_file()`
182 * Fix an assertion failure in decoder caused by a minus sign without a
184 * Remove an unneeded include of ``stdint.h`` in ``jansson.h``
192 * All documentation files were not distributed with v1.1; build
193 documentation in make distcheck to prevent this in the future
194 * Fix v1.1 release date in ``CHANGES``
202 * API additions and improvements:
204 - Extend array and object APIs
205 - Add functions to modify integer, real and string values
206 - Improve argument validation
207 - Use unsigned int instead of ``uint32_t`` for encoding flags
209 * Enhance documentation
211 - Add getting started guide and tutorial
213 - General clarifications and cleanup
215 * Check for integer and real overflows and underflows in decoder
216 * Make singleton values thread-safe (``true``, ``false`` and ``null``)
217 * Enhance circular reference handling
218 * Don't define ``-std=c99`` in ``AM_CFLAGS``
219 * Add C++ guards to ``jansson.h``
220 * Minor performance and portability improvements
221 * Expand test coverage
229 * Relax Autoconf version requirement to 2.59
230 * Make Jansson compile on platforms where plain ``char`` is unsigned
231 * Fix API tests for object
239 * Check for integer and real overflows and underflows in decoder
240 * Use the Python json module for tests, or simplejson if the json
242 * Distribute changelog (this file)
250 * Handle EOF correctly in decoder
258 * Fixed broken `json_is_boolean()`