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