-
Notifications
You must be signed in to change notification settings - Fork 41
/
CHANGELOG
330 lines (313 loc) Β· 14.2 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
19.5.0 - math: implemented hypot(x) function (Arin-Grigoras)
19.4.1 - file: zpl_file_read_contents now ignores folders.
19.4.0 - json: introduce support for ZPL_JSON_INDENT_STYLE_COMPACT output (rheatley-pervasid)
- fix SJSON value parse not detecting EOF correctly when analysing delimiter used.
example: "foo=123,bar=456" would produce 1 extra garbage field.
19.3.1 - adt: zpl_adt_parse_number exit early on false hex value assumption
19.3.0 - socket: new socket api cross-platform layer
19.2.0 - file: add macros for standard i/o wrappers (ZPL_STDIO_IN, ...)
19.1.1 - thread: return error values for POSIX calls
19.1.0 - parser: introduce a new URI parser module
19.0.4 - fix: zpl_buffer_copy_init missing macros (thanks Ed_ on Discord)
19.0.3 - fix: zpl_str_skip_literal reading before start of string (mbenniston)
19.0.2 - fixed ZPL_ISIZE_MIN and MAX for 32-bit architectures (mrossetti)
19.0.1 - Fixed zpl_array_fill ZPL_ASSERT off-by-one error
19.0.0 - Check all results of zpl_alloc() when using JSON parser/writer (rheatley-pervasid)
18.1.5 - set parent to parsed JSON nodes (fixed)
- fix zpl_json/csv_write_string off-by-one issue
18.1.4 - fix zpl_random_gen_isize/zpl_random_range_isize 32bit overflow
18.1.3 - set parent to parsed JSON nodes
18.1.2 - fix zpl sort procs
18.1.1 - updated table _clear method
18.1.0 - added table _clear method
18.0.4 - fix memory arena alignment & added tests
18.0.3 - fix emscripten support
18.0.2 - fix global-buffer-overflow in print module
- raise ZPL_PRINTF_MAXLEN to 64kb
18.0.1 - fix ADT parser wrongly assuming that an IP address is a real number
18.0.0 - removed coroutines module
- removed timer module
- rename zpl_adt_get -> zpl_adt_query
17.0.0 - ADT API changes
zpl_adt_inset_* -> zpl_adt_append_*
zpl_adt_node now holds a parent field, methods no longer require a pointer to the parent
methods are now documented
- add zpl_thread_init_nowait (gaopeng)
16.1.1 - fix scientific notation parsing
16.1.0 - introduce ZPL_PARSER_DISABLE_ANALYSIS that disables extra parsing capabilities to offer better raw performance
at a cost of lack of node metadata.
16.0.0 - introduce a new zpl_adt_query method for flexible data retrieval
"a/b/c" navigates through objects "a" and "b" to get to "c"
"arr/[foo=123]/bar" iterates over "arr" to find any object with param "foo" that matches the value "123", then gets its field called "bar"
"arr/3" retrieves the 4th element in "arr"
"arr/[apple]" retrieves the first element of value "apple" in "arr"
- fix memory leak when parsing a json array (gaopeng)
- add zpl_strntok (gaopeng)
- add zpl_semaphore_trywait (gaopeng)
15.0.3 - fix zpl_sign call in math failing to compile
on macos devices
15.0.2 - zpl_sign0 was introduced
15.0.1 - hashtable performance improvements
- zpl_sign(0) returns 0
15.0.0 - Rework zpl ring buffer
- various code improvements
14.1.7 - fix zpl_random_range_i64
- set thread's is_running before we start a thread
14.1.6 - remove windows.h dependency for header part
14.1.5 - fix array append_at
14.1.4 - Fix win32 missing CRITICAL_SECTION definition if
- ZPL_NO_WINDOWS_H is defined
14.1.0 - add hashtable map_mut method
14.0.1 - fix zpl_array_remove_at boundary bug
14.0.0 - heap memory allocator analysis
13.4.1 - adt optimizations
13.4.0 - new adt manipulation methods
13.3.3 - fix zpl_str_skip_literal bug
13.3.2 - escape strings in parser output
13.3.1 - number parsing improvements
13.3.0 - csv parse numbers
13.2.0 - hashtable _map function
13.1.5 - ZPL_DEBUG_TRAP for tcc
13.1.4 - potential csv ub fix
13.1.3 - tcc support improvements
13.1.2 - fix ast -> adt filename
13.1.1 - fix emscripten support
13.1.0 - abstract data tree naming update
13.0.0 - text parsers refactor
12.8.0 - zpl_opts improvements
12.7.0 - math improvements
12.6.2 - remove register usage (BeastLe9enD)
12.6.1 - improve tar null padding code
12.6.0 - introduce zpl_align_forward_u64/i64
12.5.1 - small type casting fixes
12.5.0 - add zpl_asprintf
12.4.0 - zpl_printf improvements
12.3.2 - allow zpl_path_dirlist to include symlinks, but don't enter them
12.3.1 - avoid symbolic link cycle in zpl_path_dirlist
12.3.0 - add TAR archiving support
12.2.1 - fix zpl_random_gen_f64
12.2.0 - Add zpl_array_fill and zpl_array_appendv_at
12.1.0 - Add rectangle partitioning
12.0.1 - Optimize zpl_strlen
12.0.0 - JSON API revamp + improvements
11.3.0 - JSON zpl_json_str_to_flt + cleanup
11.2.5 - fix small atomics typo
11.2.4 - JSON rewrite core parser
11.2.2 - JSON rewrite comment handling
11.2.1 - JSON zero-initialise node
11.2.0 - JSON API improvements
11.1.2 - Improve atomics
11.1.1 - Fix zpl_json_write_string providing incorrect length
11.1.0 - Introduce new ZPL_PICO distro
11.0.11 - remove stdatomic.h include
11.0.10 - get rid of c11 atomics lib
11.0.9 - stringlib uses ZPL_PRINTF_MAXLEN now
- zpl_printf family is now thread-safe
11.0.7 - Add ZPL_PRINTF_MAXLEN
11.0.6 - Fix zpl_printf left padding bug
11.0.4 - Disable ZPL_NO_MATH_H on TinyC
11.0.3 - Added support for TinyC compiler
11.0.2 - Fixes for Apple M1 chip
11.0.0 - New jobs system
- Rewrite the timer module
- zpl_ring rework
10.13.0 - Initial ARM threading support
10.12.1 - Fix missing zpL_alloc_str
10.12.0 - Add zpl_crc64
10.11.1 - Fix zpl_time_utc_ms on 32-bit OSes
10.11.0 - Added zpl_file_stream_buf
10.10.3 - Math type-punning fixes
10.10.1 - Fix memory writing issue + new write-only in-situ flag
10.10.0 - Implement memory streaming API
10.9.1 - Support ARMv6, ARMv7 and ARMv8-a builds
10.9.0 - Improve the time API
10.8.3 - zpl_file_close tempfile Windows fixes
10.8.2 - zpl_file_temp disallow some operations
10.8.1 - zpl_file_temp Windows fixes
10.8.0 - Implemented zpl_json_write_string
10.7.1 - Fix zpl_file_temp platform bug
10.7.0 - Add zpl_file_write_contents
10.6.6 - Fix type mismatch in Jobs system
10.6.0 - Remove event system
10.5.8 - Remove zpl__memcpy_4byte
10.5.7 - zpl_file_new is now OS-agnostic constructor
10.5.6 - Fix coroutine creation
10.5.5 - Jobs system uses zpl_f32 for priority setting
10.5.4 - zpl_buffer_free no longer takes the 2nd argument (allocator)
10.5.3 - Removed crc64 and annotated some hashing methods
10.5.2 - Don't expose ZPL types anymore
10.5.1 - Fixed zpl_rdtsc for Emscripten
10.5.0 - Changed casts to memcopy in random methods, added embed cmd
10.4.1 - Jobs system now enqueues jobs with def priority of 1.0
10.4.0 - [META] version bump
10.3.0 - Pool allocator now supports zpl_free_all
10.2.0 - [META] version bump
10.1.0 - Additional math methods (thanks to funZX and msmshazan)
10.0.15 - WIP Emscripten fixes
10.0.14 - FreeBSD support
10.0.13 - OpenBSD support
10.0.12 - Cygwin fixes
10.0.11 - Tweak module dependencies
10.0.10 - Fix zero-allocation regression in filesystem module
10.0.9 - Fix multi-compilation unit builds
10.0.8 - Fix zpl_printf "%0d" format specifier
10.0.4 - Flush tester output to fix ordering
10.0.3 - Fix ZPL_STATIC_ASSERT under MSVC
10.0.0 - Major overhaul of the library
9.8.10 - JSON fix array-based documents with objects
9.8.9 - JSON document structured as array now properly recognizes the root object as array.
9.8.8 - Fixed an incorrect parsing of empty array nodes.
9.8.7 - Improve FreeBSD support
9.8.6 - WIP: Handle inlined methods properly
9.8.5 - Fix incorrect usage of EOF and opts dependency on JSON5 module's methods
9.8.4 - Fix MSVC ZPL_NO_MATH_H code branch using incorrect methods internally
9.8.3 - Fix MinGW GCC related issue with zpl_printf %lld format
9.8.2 - Fix VS C4190 issue
9.8.1 - Fix several C++ type casting quirks
9.8.0 - Incorporated OpenGL into ZPL core as an optional module
9.7.0 - Added co-routine module
9.6.0 - Added process module for creation and manipulation
9.5.2 - zpl_printf family now prints (null) on NULL string arguments
9.5.1 - Fixed JSON5 real number export support + indentation fixes
9.5.0 - Added base64 encode/decode methods
9.4.10- Small enum style changes
9.4.9 - Remove #undef for cast and hard_cast (sorry)
9.4.8 - Fix quote-less JSON node name resolution
9.4.7 - Additional change to the code
9.4.6 - Fix issue where zpl_json_find would have false match on substrings
9.4.5 - Mistakes were made, fixed compilation errors
9.4.3 - Fix old API shenanigans
9.4.2 - Fix small API typos
9.4.1 - Reordered JSON5 constants to integrate better with conditions
9.4.0 - JSON5 API changes made to zpl_json_find
9.3.0 - Change how zpl uses basic types internally
9.2.0 - Directory listing was added. Check dirlist_api.c test for more info
9.1.1 - Fix WIN32_LEAN_AND_MEAN redefinition properly
9.1.0 - get_env rework and fixes
9.0.3 - Small fixes and removals
9.0.0 - New documentation format, removed deprecated code, changed styles
8.14.1 - Fix string library
8.14.0 - Added zpl_re_match_all
8.13.0 - Update system command API
8.12.6 - Fix warning in CLI options parser
8.12.5 - Support parametric options preceding positionals
8.12.4 - Fixed opts positionals ordering
8.12.3 - Fixed incorrect handling of flags preceding positionals
8.12.2 - JSON parsing remark added
8.12.1 - Fixed a lot of important stuff
8.12.0 - Added helper constructors for containers
8.11.2 - Fix bug in opts module
8.11.1 - Small code improvements
8.11.0 - Ported regex processor from https://github.com/gingerBill/gb/ and applied fixes on top of it
8.10.2 - Fix zpl_strtok
8.10.1 - Replace zpl_strchr by zpl_char_last_occurence
8.10.0 - Added zpl_strchr
8.9.0 - API improvements for JSON5 parser
8.8.4 - Add support for SJSON formatting http://bitsquid.blogspot.com/2009/10/simplified-json-notation.html
6.8.3 - JSON5 exp fix
6.8.2 - Bugfixes applied from gb
6.8.1 - Performance improvements for JSON5 parser
6.8.0 - zpl.h is now generated by build.py
6.7.0 - Several fixes and added switches
6.6.0 - Several significant changes made to the repository
6.5.0 - Ported platform layer from https://github.com/gingerBill/gb/
6.4.1 - Use zpl_strlen in zpl_strdup
6.4.0 - Deprecated zpl_buffer_free and added zpl_array_end, zpl_buffer_end
6.3.0 - Added zpl_strdup
6.2.1 - Remove math redundancies
6.2.0 - Integrated zpl_math.h into zpl.h
6.1.1 - Added direct.h include for win c++ dir methods
6.1.0 - Added zpl_path_mkdir, zpl_path_rmdir, and few new zplFileErrors
6.0.4 - More MSVC(++) satisfaction by fixing warnings
6.0.3 - Satisfy MSVC by fixing a warning
6.0.2 - Fixed warnings for json5 i64 printfs
6.0.1 - Fixed warnings for particual win compiler in dirlist method
6.0.0 - New build, include/ was renamed to code/
5.8.3 - Naming fixes
5.8.2 - Job system now supports prioritized tasks
5.8.1 - Renames zpl_pad to zpl_ring
5.8.0 - Added instantiated scratch pad (circular buffer)
5.7.2 - Added Windows support for zpl_path_dirlist
5.7.1 - Fixed few things in job system + macOS support for zpl_path_dirlist
5.7.0 - Added a job system (zpl_thread_pool)
5.6.5 - Fixes extra error cases for zpl_opts when input is:
- missing a value for an option,
- having an extra value for a flag (e.g. --enable-log shouldn't get a value.)
5.6.4 - Several tweaks to the zpl_opts API
5.6.3 - Added support for flags without values
5.6.2 - Improve error handling for zpl_opts
5.6.1 - Added support for strings with spaces in zpl_opts
5.6.0 - Added zpl_opts for CLI argument parsing
5.5.1 - Fixed time method for win
5.5.0 - Integrate JSON5 writer into the core
5.4.0 - Improved storage support for numbers in JSON5 parser
5.3.0 - Integrated zpl_json into ZPL
5.2.0 - Added zpl_string_sprintf
5.1.1 - Added zpl_system_command_nores for output-less execution
5.1.0 - Added event handler
5.0.4 - Fix alias for zpl_list
5.0.3 - Finalizing syntax changes
5.0.2 - Fix segfault when using zpl_stack_memory
5.0.1 - Small code improvements
5.0.0 - Project structure changes
4.7.2 - Got rid of size arg for zpl_str_split_lines
4.7.1 - Added an example
4.7.0 - Added zpl_path_dirlist
4.6.1 - zpl_memcopy x86 patch from upstream
4.6.0 - Added few string-related functions
4.5.9 - Error fixes
4.5.8 - Warning fixes
4.5.7 - Fixed timer loops. zpl_time* related functions work with seconds now
4.5.6 - Fixed zpl_time_now() for Windows and Linux
4.5.5 - Small cosmetic changes
4.5.4 - Fixed issue when zpl_list_add would break the links
- when adding a new item between nodes
4.5.3 - Fixed malformed enum values
4.5.1 - Fixed some warnings
4.5.0 - Added zpl_array_append_at
4.4.0 - Added zpl_array_back, zpl_array_front
4.3.0 - Added zpl_list
4.2.0 - Added zpl_system_command_str
4.1.2 - GG, fixed small compilation error
4.1.1 - Fixed possible security issue in zpl_system_command
4.1.0 - Added zpl_string_make_reserve and small fixes
4.0.2 - Warning fix for _LARGEFILE64_SOURCE
4.0.1 - include stdlib.h for getenv (temp)
4.0.0 - ARM support, coding style changes and various improvements
3.4.1 - zpl_memcopy now uses memcpy for ARM arch-family
3.4.0 - Removed obsolete code
3.3.4 - Added Travis CI config
3.3.3 - Small macro formatting changes + ZPL_SYSTEM_IOS
3.3.2 - Fixes for android arm
3.3.1 - Fixed some type cast warnings
3.3.0 - Added Android support
3.1.5 - Renamed userptr to user_data in timer
3.1.4 - Fix for zpl_buffer not allocating correctly
3.1.2 - Small fix in zpl_memcompare
3.1.1 - Added char* conversion for data field in zpl_array_header
3.1.0 - Added data field to zpl_array_header
3.0.7 - Added timer userptr as argument to callback
3.0.6 - Small changes
3.0.5 - Fixed compilation for emscripten
3.0.4 - Small fixes for tiny cpp warnings
3.0.3 - Small fixes for various cpp warnings and errors
3.0.2 - Fixed linux part, and removed trailing spaces
3.0.1 - Small bugfix in zpl_file_open
3.0.0 - Added several fixes and features
2.4.0 - Added remove to hash table
2.3.3 - Removed redundant code
2.3.2 - Eliminated extra warnings
2.3.1 - Warning hunt
2.3.0 - Added the ability to copy array/buffer and fixed bug in hash table.
2.2.1 - Used tmpfile() for Windows
2.2.0 - Added zpl_file_temp
2.1.1 - Very small fix (forgive me)
2.1.0 - Added the ability to resize bitstream
2.0.8 - Small adjustments
2.0.7 - MinGW related fixes
2.0.0 - New NPM based version
1.2.2 - Small fix
1.2.1 - Macro fixes
1.2.0 - Added zpl_async macro
1.1.0 - Added timer feature
1.0.0 - Initial version