silc_srealloc now allocates new block if reallocation fails.
[silc.git] / CHANGES.RUNTIME
1 Wed Jan  2 22:39:57 EET 2008  Pekka Riikonen <priikone@silcnet.org>
2
3         * Added silc_stack_[set|get]_global to set/get global per-thread
4           SilcStack.  Affected files are lib/silcutil/silcstack.[ch].
5
6         * Imported new improved free regex implementation.  Added (again)
7           support for SILC_REGEX_NOTBOL and SILC_REGEX_NOTEOLF flags.
8           Added also support for POSIX bounded repeat expression (a{n,m}) 
9           to make it more POSIX compliant.  Added SilcStack support to
10           the regex too.  Affected files are lib/silcutil/silcregex.[ch].
11
12         * Added silc_buffer_printf to lib/silcutil/silcbuffer.h.
13
14         * Changed silc_srealloc to allocate new memory block if reallocation
15           from stack fails, and to copy the old data to the new one.
16           Affected files are lib/silcutil/silcmemory.[ch].
17
18 Tue Jan  1 19:40:15 EET 2008  Pekka Riikonen <priikone@silcnet.org>
19
20         * Added SILC_REGEX_NOTBOL and SILC_REGEX_NOTEOL flags to
21           lib/silcutil/silcregex.[ch].
22
23 Tue Jan  1 18:00:47 EET 2008  Pekka Riikonen <priikone@silcnet.org>
24
25         * Added silc_regex and silc_regex_buffer, routines that provide
26           convenient use of regular expressions.  Affected files
27           are lib/silcutil/silcregex.[ch].  Deprecated the
28           silc_string_regex_match.  Affected files are
29           lib/silcutil/silcstrutil.[ch].
30
31         * Added SILC_STR_REGEX macro to SILC Buffer Format API.  It
32           provides powerful regular expression matching within the
33           SilcBuffer.  Combined with SILC Buffer Format API it can turn
34           the API into a Stream Editor (sed) and Awk like, providing
35           powerful ways to match and edit the buffer in myriad of ways.  
36           The SILC_STR_REGEX can also mimic the behavior of sed (match
37           and edit line by line).  Affected files are
38           lib/silcutil/silcbuffmt.[ch], silctypes.h.
39
40 Mon Dec 31 15:50:31 EET 2007  Pekka Riikonen <priikone@silcnet.org>
41
42         * Added SILC_STR_OFFSET_START and SILC_STR_OFFSET_END to
43           lib/silcutil/silcbuffmt.[ch].
44
45 Mon Dec 31 01:30:17 EET 2007  Pekka Riikonen <priikone@silcnet.org>
46
47         * Added SILC regular expression API to lib/silcutil/silcregex.[ch].
48
49 Sun Dec 30 14:35:33 EET 2007  Pekka Riikonen <priikone@silcnet.org>
50
51         * Implemented asynchronous events to SILC Scheduler.  Added
52           silc_schedule_task_add_event, silc_schedule_event_connect,
53           silc_schedule_event_dissconnect, silc_schedule_task_del_event
54           and silc_schedule_event_signal.  Affected files are
55           lib/silcutil/silcschedule.[ch], silcschedule_i.h.
56
57         * Added concept of child and parent scheduler to SILC Scheduler
58           API.  silc_schedule_init now takes optional parent argument.
59           Each child scheduler is still independent, only the event tasks
60           are shared among parent and children.  Affected files are
61           lib/silcutil/silcschedule.[ch].
62
63         * The SILC FSM real thread now adds the created SilcSchedule
64           as the thread's global scheduler.  Affected file is
65           lib/silcutil/silcfsm.[ch].
66
67         * Moved generic string and data hashing and comparison functions
68           from lib/silcutil/silcutil.[ch] to lib/silcutil/silchashtable.[ch]
69           as they are usable by the hash table.  Added case sensitive
70           and insensitive string hashing and comparison funtions.
71           Changed string and data hashing to use Bob Jenkin's one-at-a-time
72           hash function.
73         
74         * Moved SILC_PARAM_* types from silcbuffmt.h to silctypes.h
75           under a generic SilcParam type.  Affected files are
76           lib/silcutil/silcbuffmt.[ch] and lib/silcutil/silctypes.h.
77
78 Wed Dec 26 13:10:30 EET 2007  Pekka Riikonen <priikone@silcnet.org>
79
80         * Added silc_schedule_[set|get]_global to
81           lib/silcutil/silcschedule.[ch].
82
83         * Changed many APIs to call silc_schedule_get_global if provided
84           scheduler argument is NULL.
85
86 Tue Dec 25 18:44:27 EET 2007  Pekka Riikonen <priikone@silcnet.org>
87
88         * silc_stack_alloc now automatically aligns the requested
89           stack size.  Affected files are lib/silcutil/silcstack.[ch].
90
91 Tue Dec 25 13:53:07 EET 2007  Pekka Riikonen <priikone@silcnet.org>
92
93         * Added silc_getopt to lib/silcutil/silcgetopt.[ch].
94
95 Sat Dec 22 19:55:28 EET 2007  Pekka Riikonen <priikone@silcnet.org>
96
97         * Added SILC errno API to lib/silcutil/silcerrno.[ch].  Added
98           SilcResult, generic error code and return value type.  Added
99           global silc_errno that returns last error in that thread.
100
101         * Deprecated SilcSocketStreamStatus, SilcResult replaces it.
102           Backwards support remains.  Affected files are
103           lib/silcutil/silcsocketstream.[ch].
104
105         * Deprecated SilcNetStatus, SilcResult replaces it.  Backwards
106           support remains.  Affected files are lib/silcutil/silcnet.[ch].
107
108         * Added errno setting to almost all Runtime Tooolkit routines
109           in error conditions.
110
111 Sun Dec 16 16:18:04 EET 2007  Pekka Riikonen <priikone@silcnet.org>
112
113         * Added SILC Bit Operations API to lib/silcutil/silcbitops.[ch].
114
115 Sat Dec 15 19:59:53 EET 2007  Pekka Riikonen <priikone@silcnet.org>
116
117         * Added SILC Tls API for Thread-local storage in
118           lib/silcutil/silcthread.[ch].  Added all platform specific
119           implementations.  Added SilcTls structure to 
120           lib/silcutil/silcthread_i.h that is now in all threads' Tls.
121
122 Thu Dec 13 17:37:21 EET 2007  Pekka Riikonen <priikone@silcnet.org>
123
124         * Clear the locked flag before unlocking mutex, not after.
125           Affected files are lib/silcutil/unix/silcunixthread.c and
126           lib/silcutil/symbian/silcsymbianthread.c.
127
128         * Fixed thread pool locking dealing with thread stopping to
129           prevent deadlocks and crashes.  Affected file is 
130           lib/silcutil/silcthread.c.
131
132 Tue Nov  6 17:09:42 EET 2007  Pekka Riikonen <priikone@silcnet.org>
133
134         * Added '%@' formatting to silc_snprintf and variants.  It
135           can be used to render data and structures.  Affected files
136           are lib/silcutil/silcsnprintf.[ch].
137
138 Sat Oct 27 18:12:40 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
139
140         * Added silc_net_tcp_create_listener2.  Affected files are
141           lib/silcutil/silcnet.h and platform specific implementation.
142
143 Sat Sep  1 12:09:32 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
144
145         * Rewrote parts of the SILC Atomic API to not use volatile
146           members in structures but to handle the memory accesses
147           volatily, the right way to do it.  Affected file is
148           lib/silcutil/silcatomic.h.
149
150         * Added silc_timer_tick and silc_timer_synchronize functions
151           to SILC Timer API.  Affected files are 
152           lib/silcutil/silctimer.[ch] and silctimer_i.h.
153
154         * Use clock_gettime in place of gettimeofday, if it is
155           available.  Affected files are configure.ad and
156           lib/silcutil/unix/silcunixutil.c.
157
158         * Added silc_offsetof, silc_likely and silc_unlikely to public
159           API.  Added silc_attribute compiler specific definition.
160           Affected file is lib/silcutil/silctypes.h.
161
162         * Added silc_prefetch and silc_prefetch_block functions that
163           provide routines for prefetching data to CPU cache.  Affected
164           file is lib/silcutil/silctypes.h.
165
166         * Added --with-alignment for specifying default memory alignment
167           used in the compiled code.  Currently only SilcStack respects
168           this value.  Affected files are lib/configure.ad,
169           lib/silcutil/silcstack_i.h and includes/silc.h.in.
170
171 Tue Aug  7 21:00:00 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
172
173         * Fixed alignment issues on 64-bit CPUs.  Affected files are
174           lib/silcutil/silcschedule.c and unix/silcunixschedule.c.
175
176 Sat Aug  4 19:09:14 EEST 2007 Pekka Riikonen <priikone@silcnet.org>
177
178         * Added assembler optimized versions of SILC_[GET|PUT]XX_MSB
179           macros, and SILC_SWAB_XX macros.  Added new functions
180           silc_rol, silc_ror, silc_rol64 and silc_ror64, all of which
181           have assembler optimizations also.  Affected file is
182           lib/silcutil/silctypes.h.
183
184 Thu Jul 26 18:13:59 EEST 2007 Pekka Riikonen <priikone@silcnet.org>
185
186         * Changed thread pool call queues thread specific and changed
187           queues to be consumed in last-in-first-out order.  These
188           are optimizations to the thread pool.  Affected file is
189           lib/silcutil/silcthread.c.
190
191 Wed Jul 25 19:32:41 EEST 2007 Pekka Riikonen <priikone@silcnet.org>
192
193         * Added silc_mime_assembler_purge to lib/silcutil/silcmime.[ch]
194           to purge unfinished fragments from MIME assembler.
195
196 Sat Jul 21 14:47:28 EEST 2007 Pekka Riikonen <priikone@silcnet.org>
197
198         * Added silc_data2hex and silc_hex2data to
199           lib/silcutil/silcutil.[ch].
200
201 Thu Jul 19 17:07:02 EEST 2007 Pekka Riikonen <priikone@silcnet.org>
202
203         * Added silc_buffer_strchr to lib/silcutil/silcbuffer.h.
204
205 Tue Jul 17 20:10:41 EEST 2007 Pekka Riikonen <priikone@silcnet.org>
206
207         * Added silc_hexdump to lib/silcutil/silcutil.[ch].
208
209 Fri Jul 13 23:01:45 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
210
211         * Added SILC_GET32_X_MSB macro to lib/silcutil/silctypes.h.
212
213 Wed Jul 11 17:10:11 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
214
215         * Added SILC Timer API to lib/silcutil/silctimer.[ch],
216           silctimer_i.h, tests/test_silctimer.c.
217
218 Tue Jul 10 20:02:04 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
219
220         * Added queue entry free list to thread pool instead of
221           allocating new entry everytime new entry is needed.  Affected
222           file is lib/silcutil/silcthread.c.
223
224 Mon Jul  9 20:21:13 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
225
226         * Changed thread pool completion callback to SilcTaskCallback so
227           that it can be given directly to destination scheduler.
228           Affected files are lib/silcutil/silcthread.[ch].
229
230 Sun Jul  8 20:20:22 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
231
232         * Moved Base64 routines to lib/silcutil/silcbase64.[ch].  Added
233           SilcStack support to the API.
234
235         * Inherit the lock from parent in SilcStack child.  If child
236           doesn't find stack blocks, check from parent.  Added
237           silc_stack_purge.  Affected file is lib/silcutil/silcstack.c.
238
239 Wed Jul  4 20:20:05 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
240
241         * Unified the SILC_STR_FUNC callback.  Affected files are
242           lib/silcutil/silcbuffmt.[ch].
243
244         * Added SilcStack support to SILC File Util API.  Affected files
245           are lib/silcutil/silcfileutil.[ch].
246
247         * Added SilcStack support to SILC FD Stream API.  Affected files
248           are lib/silcutil/silcfdstream.[ch].
249
250         * Added SilcStack support to SILC Scheduler API.  The scheduler
251           now creates stack always.  It can be retrieved by
252           silc_schedule_get_stack.  Affected files are
253           lib/silcutil/silcschedule.[ch], silcschedule_i.h.
254
255         * Added SilcStack child creation and use multi-thread support.
256           Added OOM handler, silc_stack_set_oom_handler.  Affected
257           files are lib/silcutil/silcstack.[ch].
258
259 Tue Jul  3 22:45:56 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
260
261         * Added concept of child stacks to SilcStack, allowing to create
262           true memory pools using SilcStack.  It is now possible to
263           create childs from the parent, without consuming the parent's
264           memory.  The child's memory is returned back to parent when
265           it is freed.  Affected files are lib/silcutil/silcstack.[ch],
266           silcstack_i.h.
267
268 Tue Jul  3 18:17:54 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
269
270         * Added SILC DLL API for loading and using shared objects and
271           DLLs.  Affected files are lib/silcutil/sildll.[ch].  Added
272           also test program lib/silcutil/tests/test_silcdll.c.
273
274         * Added SILC Environment manipulation API to
275           lib/silcutil/silcenv.[ch] and test program to
276           lib/silcutil/tests/test_silcenv.c.
277
278         * Renamed silc_hash_table_replace to silc_hash_table_set.
279           Added SilcStack support to SilcHashTable.  Affected files are
280           lib/silcutil/silchashtable.[ch].
281
282         * Added SilcStack support to SilcDList.  Added new function
283           silc_dlist_sinit.  Affected file is lib/silcutil/silcdlist.h.
284
285 Mon Jul  2 21:07:34 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
286
287         * Removed unaligned memory allocation from SilcStack.  Moved
288           silc_stack_malloc and silc_stack_realloc to public API from
289           private API.  Added silc_stack_[set|get]_alignment that is
290           used to get/set memory alignment with SilcStack.  Affected
291           files are lib/silcutil/silcstack.[ch], silcstack_i.h.
292
293         * Added silc_sfree to lib/silcutil/silcmemory.[ch].
294
295         * Removed silc_smalloc_ua and silc_srealloc_ua.  Affected files
296           are lib/silcutil/silcmemory.[ch].
297
298 Mon Jul  2 17:13:51 EEST 2007  Pekka Riikonen <priikone@silcnet.org>
299
300         * Added SILC Thread Pool API to lib/silcutil/silcthread.[ch],
301           and test program in lib/silcutil/tests/test_silcthread.c.
302
303 -----------------------------------------------------------------------------
304
305 For older changes please see the CHANGES file from the CVS tree.