Merge branch '2.3'
[profile/ivi/jansson.git] / CHANGES
1 Version 2.4 (in development)
2 ============================
3
4 Released 2012-XX-XX
5
6 * New features:
7
8   - Add `json_boolean()` macro that returns the JSON true or false
9     value based on its argument (#86).
10
11   - Add `json_load_callback()` that calls a callback function
12     repeatedly to read the JSON input (#57).
13
14   - Add JSON_ESCAPE_SLASH encoding flag to escape all occurences of
15     ``/`` with ``\/``.
16
17 * Build:
18
19   - Jansson now builds on Windows with Visual Studio 2010, and
20     includes solution and project files in ``win32/vs2010/``
21     directory.
22
23   - Fix build warnings (#77, #78).
24
25 * Documentation:
26
27   - Fix typos (#73, #84).
28
29
30 Version 2.3.1
31 =============
32
33 Released 2012-04-20
34
35 * Build issues:
36
37   - Only use ``long long`` if ``strtoll()`` is also available.
38
39 * Documentation:
40
41   - Fix the names of library version constants in documentation. (#52)
42
43   - Change the tutorial to use GitHub API v3. (#65)
44
45 * Tests:
46
47   - Make some tests locale independent. (#51)
48
49   - Distribute the library exports test in the tarball.
50
51   - Make test run on shells that don't support the ``export FOO=bar``
52     syntax.
53
54
55 Version 2.3
56 ===========
57
58 Released 2012-01-27
59
60 * New features:
61
62   - `json_unpack()` and friends: Add support for optional object keys
63     with the ``{s?o}`` syntax.
64
65   - Add `json_object_update_existing()` and
66     `json_object_update_missing()`, for updating only existing keys or
67     only adding missing keys to an object. (#37)
68
69   - Add `json_object_foreach()` for more convenient iteration over
70     objects. (#45, #46)
71
72   - When decoding JSON, write the number of bytes that were read from
73     input to ``error.position`` also on success. This is handy with
74     ``JSON_DISABLE_EOF_CHECK``.
75
76   - Add support for decoding any JSON value, not just arrays or
77     objects. The support is enabled with the new ``JSON_DECODE_ANY``
78     flag. Patch by Andrea Marchesini. (#4)
79
80 * Bug fixes
81
82   - Avoid problems with object's serial number growing too big. (#40,
83     #41)
84
85   - Decoding functions now return NULL if the first argument is NULL.
86     Patch by Andrea Marchesini.
87
88   - Include ``jansson_config.h.win32`` in the distribution tarball.
89
90   - Remove ``+`` and leading zeros from exponents in the encoder.
91     (#39)
92
93   - Make Jansson build and work on MinGW. (#39, #38)
94
95 * Documentation
96
97   - Note that the same JSON values must not be encoded in parallel by
98     separate threads. (#42)
99
100   - Document MinGW support.
101
102
103 Version 2.2.1
104 =============
105
106 Released 2011-10-06
107
108 * Bug fixes:
109
110   - Fix real number encoding and decoding under non-C locales. (#32)
111
112   - Fix identifier decoding under non-UTF-8 locales. (#35)
113
114   - `json_load_file()`: Open the input file in binary mode for maximum
115     compatiblity.
116
117 * Documentation:
118
119   - Clarify the lifecycle of the result of the ``s`` fromat of
120     `json_unpack()`. (#31)
121
122   - Add some portability info. (#36)
123
124   - Little clarifications here and there.
125
126 * Other:
127
128   - Some style fixes, issues detected by static analyzers.
129
130
131 Version 2.2
132 ===========
133
134 Released 2011-09-03
135
136 * New features:
137
138   - `json_dump_callback()`: Pass the encoder output to a callback
139     function in chunks.
140
141 * Bug fixes:
142
143   - `json_string_set()`: Check that target is a string and value is
144     not NULL.
145
146 * Other:
147
148   - Documentation typo fixes and clarifications.
149
150
151 Version 2.1
152 ===========
153
154 Released 2011-06-10
155
156 * New features:
157
158   - `json_loadb()`: Decode a string with a given size, useful if the
159     string is not null terminated.
160
161   - Add ``JSON_ENCODE_ANY`` encoding flag to allow encoding any JSON
162     value. By default, only arrays and objects can be encoded. (#19)
163
164   - Add ``JSON_REJECT_DUPLICATES`` decoding flag to issue a decoding
165     error if any JSON object in the input contins duplicate keys. (#3)
166
167   - Add ``JSON_DISABLE_EOF_CHECK`` decoding flag to stop decoding after a
168     valid JSON input. This allows other data after the JSON data.
169
170 * Bug fixes:
171
172   - Fix an additional memory leak when memory allocation fails in
173     `json_object_set()` and friends.
174
175   - Clear errno before calling `strtod()` for better portability. (#27)
176
177 * Building:
178
179   - Avoid set-but-not-used warning/error in a test. (#20)
180
181 * Other:
182
183   - Minor clarifications to documentation.
184
185
186 Version 2.0.1
187 =============
188
189 Released 2011-03-31
190
191 * Bug fixes:
192
193   - Replace a few `malloc()` and `free()` calls with their
194     counterparts that support custom memory management.
195
196   - Fix object key hashing in json_unpack() strict checking mode.
197
198   - Fix the parentheses in ``JANSSON_VERSION_HEX`` macro.
199
200   - Fix `json_object_size()` return value.
201
202   - Fix a few compilation issues.
203
204 * Portability:
205
206   - Enhance portability of `va_copy()`.
207
208   - Test framework portability enhancements.
209
210 * Documentation:
211
212   - Distribute ``doc/upgrading.rst`` with the source tarball.
213
214   - Build documentation in strict mode in ``make distcheck``.
215
216
217 Version 2.0
218 ===========
219
220 Released 2011-02-28
221
222 This release is backwards incompatible with the 1.x release series.
223 See the chapter "Upgrading from older versions" in documentation for
224 details.
225
226 * Backwards incompatible changes:
227
228   - Unify unsigned integer usage in the API: All occurences of
229     unsigned int and unsigned long have been replaced with size_t.
230
231   - Change JSON integer's underlying type to the widest signed integer
232     type available, i.e. long long if it's supported, otherwise long.
233     Add a typedef json_int_t that defines the type.
234
235   - Change the maximum indentation depth to 31 spaces in encoder. This
236     frees up bits from the flags parameter of encoding functions
237     `json_dumpf()`, `json_dumps()` and `json_dump_file()`.
238
239   - For future needs, add a flags parameter to all decoding functions
240     `json_loadf()`, `json_loads()` and `json_load_file()`.
241
242 * New features
243
244   - `json_pack()`, `json_pack_ex()`, `json_vpack_ex()`: Create JSON
245     values based on a format string.
246
247   - `json_unpack()`, `json_unpack_ex()`, `json_vunpack_ex()`: Simple
248     value extraction and validation functionality based on a format
249     string.
250
251   - Add column, position and source fields to the ``json_error_t``
252     struct.
253
254   - Enhance error reporting in the decoder.
255
256   - ``JANSSON_VERSION`` et al.: Preprocessor constants that define the
257     library version.
258
259   - `json_set_alloc_funcs()`: Set custom memory allocation functions.
260
261 * Fix many portability issues, especially on Windows.
262
263 * Configuration
264
265   - Add file ``jansson_config.h`` that contains site specific
266     configuration. It's created automatically by the configure script,
267     or can be created by hand if the configure script cannot be used.
268     The file ``jansson_config.h.win32`` can be used without
269     modifications on Windows systems.
270
271   - Add a section to documentation describing how to build Jansson on
272     Windows.
273
274   - Documentation now requires Sphinx 1.0 or newer.
275
276
277 Version 1.3
278 ===========
279
280 Released 2010-06-13
281
282 * New functions:
283
284   - `json_object_iter_set()`, `json_object_iter_set_new()`: Change
285     object contents while iterating over it.
286
287   - `json_object_iter_at()`: Return an iterator that points to a
288     specific object item.
289
290 * New encoding flags:
291
292   - ``JSON_PRESERVE_ORDER``: Preserve the insertion order of object
293     keys.
294
295 * Bug fixes:
296
297   - Fix an error that occured when an array or object was first
298     encoded as empty, then populated with some data, and then
299     re-encoded
300
301   - Fix the situation like above, but when the first encoding resulted
302     in an error
303
304 * Documentation:
305
306   - Clarify the documentation on reference stealing, providing an
307     example usage pattern
308
309
310 Version 1.2.1
311 =============
312
313 Released 2010-04-03
314
315 * Bug fixes:
316
317   - Fix reference counting on ``true``, ``false`` and ``null``
318   - Estimate real number underflows in decoder with 0.0 instead of
319     issuing an error
320
321 * Portability:
322
323   - Make ``int32_t`` available on all systems
324   - Support compilers that don't have the ``inline`` keyword
325   - Require Autoconf 2.60 (for ``int32_t``)
326
327 * Tests:
328
329   - Print test names correctly when ``VERBOSE=1``
330   - ``test/suites/api``: Fail when a test fails
331   - Enhance tests for iterators
332   - Enhance tests for decoding texts that contain null bytes
333
334 * Documentation:
335
336   - Don't remove ``changes.rst`` in ``make clean``
337   - Add a chapter on RFC conformance
338
339
340 Version 1.2
341 ===========
342
343 Released 2010-01-21
344
345 * New functions:
346
347   - `json_equal()`: Test whether two JSON values are equal
348   - `json_copy()` and `json_deep_copy()`: Make shallow and deep copies
349     of JSON values
350   - Add a version of all functions taking a string argument that
351     doesn't check for valid UTF-8: `json_string_nocheck()`,
352     `json_string_set_nocheck()`, `json_object_set_nocheck()`,
353     `json_object_set_new_nocheck()`
354
355 * New encoding flags:
356
357   - ``JSON_SORT_KEYS``: Sort objects by key
358   - ``JSON_ENSURE_ASCII``: Escape all non-ASCII Unicode characters
359   - ``JSON_COMPACT``: Use a compact representation with all unneeded
360     whitespace stripped
361
362 * Bug fixes:
363
364   - Revise and unify whitespace usage in encoder: Add spaces between
365     array and object items, never append newline to output.
366   - Remove const qualifier from the ``json_t`` parameter in
367     `json_string_set()`, `json_integer_set()` and `json_real_set`.
368   - Use ``int32_t`` internally for representing Unicode code points
369     (int is not enough on all platforms)
370
371 * Other changes:
372
373   - Convert ``CHANGES`` (this file) to reStructured text and add it to
374     HTML documentation
375   - The test system has been refactored. Python is no longer required
376     to run the tests.
377   - Documentation can now be built by invoking ``make html``
378   - Support for pkg-config
379
380
381 Version 1.1.3
382 =============
383
384 Released 2009-12-18
385
386 * Encode reals correctly, so that first encoding and then decoding a
387   real always produces the same value
388 * Don't export private symbols in ``libjansson.so``
389
390
391 Version 1.1.2
392 =============
393
394 Released 2009-11-08
395
396 * Fix a bug where an error message was not produced if the input file
397   could not be opened in `json_load_file()`
398 * Fix an assertion failure in decoder caused by a minus sign without a
399   digit after it
400 * Remove an unneeded include of ``stdint.h`` in ``jansson.h``
401
402
403 Version 1.1.1
404 =============
405
406 Released 2009-10-26
407
408 * All documentation files were not distributed with v1.1; build
409   documentation in make distcheck to prevent this in the future
410 * Fix v1.1 release date in ``CHANGES``
411
412
413 Version 1.1
414 ===========
415
416 Released 2009-10-20
417
418 * API additions and improvements:
419
420   - Extend array and object APIs
421   - Add functions to modify integer, real and string values
422   - Improve argument validation
423   - Use unsigned int instead of ``uint32_t`` for encoding flags
424
425 * Enhance documentation
426
427   - Add getting started guide and tutorial
428   - Fix some typos
429   - General clarifications and cleanup
430
431 * Check for integer and real overflows and underflows in decoder
432 * Make singleton values thread-safe (``true``, ``false`` and ``null``)
433 * Enhance circular reference handling
434 * Don't define ``-std=c99`` in ``AM_CFLAGS``
435 * Add C++ guards to ``jansson.h``
436 * Minor performance and portability improvements
437 * Expand test coverage
438
439
440 Version 1.0.4
441 =============
442
443 Released 2009-10-11
444
445 * Relax Autoconf version requirement to 2.59
446 * Make Jansson compile on platforms where plain ``char`` is unsigned
447 * Fix API tests for object
448
449
450 Version 1.0.3
451 =============
452
453 Released 2009-09-14
454
455 * Check for integer and real overflows and underflows in decoder
456 * Use the Python json module for tests, or simplejson if the json
457   module is not found
458 * Distribute changelog (this file)
459
460
461 Version 1.0.2
462 =============
463
464 Released 2009-09-08
465
466 * Handle EOF correctly in decoder
467
468
469 Version 1.0.1
470 =============
471
472 Released 2009-09-04
473
474 * Fixed broken `json_is_boolean()`
475
476
477 Version 1.0
478 ===========
479
480 Released 2009-08-25
481
482 * Initial release