jansson 2.0.1
[jansson.git] / CHANGES
1 Version 2.0.1
2 =============
3
4 Released 2011-03-31
5
6 * Bug fixes:
7
8   - Replace a few `malloc()` and `free()` calls with their
9     counterparts that support custom memory management.
10
11   - Fix object key hashing in json_unpack() strict checking mode.
12
13   - Fix the parentheses in JANSSON_VERSION_HEX macro.
14
15   - Fix `json_object_size()` return value.
16
17   - Fix a few compilation issues.
18
19 * Portability:
20
21   - Enhance portability of `va_copy()`.
22
23   - Test framework portability enhancements.
24
25 * Documentation:
26
27   - Distribute ``doc/upgrading.rst`` with the source tarball.
28
29   - Build documentation in strict mode in ``make distcheck``.
30
31
32 Version 2.0
33 ===========
34
35 Released 2011-02-28
36
37 This release is backwards incompatible with the 1.x release series.
38 See the chapter "Upgrading from older versions" in documentation for
39 details.
40
41 * Backwards incompatible changes:
42
43   - Unify unsigned integer usage in the API: All occurences of
44     unsigned int and unsigned long have been replaced with size_t.
45
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.
49
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()`.
53
54   - For future needs, add a flags parameter to all decoding functions
55     `json_loadf()`, `json_loads()` and `json_load_file()`.
56
57 * New features
58
59   - `json_pack()`, `json_pack_ex()`, `json_vpack_ex()`: Create JSON
60     values based on a format string.
61
62   - `json_unpack()`, `json_unpack_ex()`, `json_vunpack_ex()`: Simple
63     value extraction and validation functionality based on a format
64     string.
65
66   - Add column, position and source fields to the ``json_error_t``
67     struct.
68
69   - Enhance error reporting in the decoder.
70
71   - ``JANSSON_VERSION`` et al.: Preprocessor constants that define the
72     library version.
73
74   - `json_set_alloc_funcs()`: Set custom memory allocation functions.
75
76 * Fix many portability issues, especially on Windows.
77
78 * Configuration
79
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.
85
86   - Add a section to documentation describing how to build Jansson on
87     Windows.
88
89   - Documentation now requires Sphinx 1.0 or newer.
90
91
92 Version 1.3
93 ===========
94
95 Released 2010-06-13
96
97 * New functions:
98
99   - `json_object_iter_set()`, `json_object_iter_set_new()`: Change
100     object contents while iterating over it.
101
102   - `json_object_iter_at()`: Return an iterator that points to a
103     specific object item.
104
105 * New encoding flags:
106
107   - ``JSON_PRESERVE_ORDER``: Preserve the insertion order of object
108     keys.
109
110 * Bug fixes:
111
112   - Fix an error that occured when an array or object was first
113     encoded as empty, then populated with some data, and then
114     re-encoded
115
116   - Fix the situation like above, but when the first encoding resulted
117     in an error
118
119 * Documentation:
120
121   - Clarify the documentation on reference stealing, providing an
122     example usage pattern
123
124
125 Version 1.2.1
126 =============
127
128 Released 2010-04-03
129
130 * Bug fixes:
131
132   - Fix reference counting on ``true``, ``false`` and ``null``
133   - Estimate real number underflows in decoder with 0.0 instead of
134     issuing an error
135
136 * Portability:
137
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``)
141
142 * Tests:
143
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
148
149 * Documentation:
150
151   - Don't remove ``changes.rst`` in ``make clean``
152   - Add a chapter on RFC conformance
153
154
155 Version 1.2
156 ===========
157
158 Released 2010-01-21
159
160 * New functions:
161
162   - `json_equal()`: Test whether two JSON values are equal
163   - `json_copy()` and `json_deep_copy()`: Make shallow and deep copies
164     of JSON values
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()`
169
170 * New encoding flags:
171
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
175     whitespace stripped
176
177 * Bug fixes:
178
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)
185
186 * Other changes:
187
188   - Convert ``CHANGES`` (this file) to reStructured text and add it to
189     HTML documentation
190   - The test system has been refactored. Python is no longer required
191     to run the tests.
192   - Documentation can now be built by invoking ``make html``
193   - Support for pkg-config
194
195
196 Version 1.1.3
197 =============
198
199 Released 2009-12-18
200
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``
204
205
206 Version 1.1.2
207 =============
208
209 Released 2009-11-08
210
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
214   digit after it
215 * Remove an unneeded include of ``stdint.h`` in ``jansson.h``
216
217
218 Version 1.1.1
219 =============
220
221 Released 2009-10-26
222
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``
226
227
228 Version 1.1
229 ===========
230
231 Released 2009-10-20
232
233 * API additions and improvements:
234
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
239
240 * Enhance documentation
241
242   - Add getting started guide and tutorial
243   - Fix some typos
244   - General clarifications and cleanup
245
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
253
254
255 Version 1.0.4
256 =============
257
258 Released 2009-10-11
259
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
263
264
265 Version 1.0.3
266 =============
267
268 Released 2009-09-14
269
270 * Check for integer and real overflows and underflows in decoder
271 * Use the Python json module for tests, or simplejson if the json
272   module is not found
273 * Distribute changelog (this file)
274
275
276 Version 1.0.2
277 =============
278
279 Released 2009-09-08
280
281 * Handle EOF correctly in decoder
282
283
284 Version 1.0.1
285 =============
286
287 Released 2009-09-04
288
289 * Fixed broken `json_is_boolean()`
290
291
292 Version 1.0
293 ===========
294
295 Released 2009-08-25
296
297 * Initial release