]> git.cworth.org Git - vogl/blob - src/extlib/loki/CHANGES
Initial vogl checkin
[vogl] / src / extlib / loki / CHANGES
1 _____________________________________
2
3 Version 0.1.7
4 January 2009
5 _____________________________________
6
7 General:
8     - Fixed makefiles for GNU/kFreeBSD, GNU/hurd. (lf)
9     - Fixed build errors with gcc 4.3 pre-release. (lf)
10     - Fixed compiler error that occurs when using 64 bit pointers. (rs)
11     - Added support for Code::Blocks and MSVC 9. (rs, pk)
12     - Added more unit tests (rs)
13     - Several other bug fixes (rs, pk)
14
15 Checker:
16     - Added for this release. (rs)
17     - Added test project. (rs)
18
19 CheckReturn:
20     - Added for this release. (rs, pk)
21     - Added test project. (rs + pk)
22
23 flex_string:
24     - Fixed bugs in several functions and storage policies. (aa, rs, jfg)
25
26 LevelMutex:
27     - Added for this release. (rs)
28     - Added unit tests for LevelMutex. (rs)
29
30 SafeBits:
31     - Added for this release. (rs, fp)
32     - Added unit tests for SafeBits. (rs, fp)
33
34 SmartPtr:
35     - Fixed double-delete race condition. (rs)
36
37 StrongPtr:
38     - Fixed destructor so cleanup is only done once. (rs)
39     - Fixed test by using class level locking. (lf)
40
41 Threads:
42     - Add possibility to enable recursive mutex support for pthread (pk)
43     - Added more atomic functions.  (rs)
44
45 Type Traits:
46     - Added 64 bit support. (cg)
47
48 CVS commits by:
49         Andrei Alexandrescu (aa)
50         Guillaume Chatelet (cg)
51         Lukas Fittl (lf)
52         Peter Kümmel (pk)
53         Rich Sposato (rs)
54
55 Contributions by:
56         Andrei Alexandrescu (aa)
57         Jean-Francois Bastien (jfb)
58         Guillaume Chatelet (cg)
59         Lukas Fittl (lf)
60         Fedor Pikus (fp)
61         Peter Kümmel (pk)
62         Rich Sposato (rs)
63
64 _____________________________________
65
66 Version 0.1.6
67 February 25, 2007
68 _____________________________________
69
70 General:
71     - CacheFactory added by Guillaume Chatelet
72     - Factory documentation improved by Guillaume Chatelet
73     - migrated to subversion (pk)
74     - Mac linker errors fixed (lf)
75     - Makefiles can now be called from sub directories (lf)
76     - Makefiles know includes and recompile if they are changed (linux, macosx) (lf)
77     - Build all tests except SingletonDll with the static library (linux, macosx) (lf)
78     - use standard conforming naming, SUN's compiler needs it (pk)
79     - add Loki:: to LOKI_ macros
80     - several bug fixes.
81
82 AbstractFactory:
83     - remove injected friends. (thanks to Sigoure Benoit, pk)
84    
85 AssocVector:
86     - remove injected friends. (thanks to Sigoure Benoit, pk)
87     
88 LockingPtr:
89     - constructor added which gets a std::pair of pointers 
90       to the object and the mutex (pk)
91     
92 Pimpl:
93     - ImplT/PimplT/RimplT renamed to a more readable version: ImplOf (pk)
94
95 Register:
96     - also produce a informative LOKI_CHECK_CLASS_IN_LIST error message with GCC (pk)
97
98 SafeFormat:
99     - add writing to ostream, by Tom Browder (pk)
100     - add unsigned long version for Windows, (Thanks to ShenLei, pk)
101     
102 Sequence:
103     - Also compiles with Aix
104     - switched to recursive implementation
105     
106 Singleton
107     - example: move instantiation to the source file 
108       fixes linker error with gcc 4.0.1 on the mac, 
109       (Thanks to Idar Tollefsen and Sam Miller, pk)
110     - 64 bit linker error fixed (lf)
111
112 SmallObj:
113     - compiler errors on SUN fixed (pk)    
114     - more documentation (rs)
115     - more tests (rs)
116     - AIX fixed, (thanks to Dieter Rosch, pk)
117   
118 StrongPtr:
119     - Added typedef so LockableTwoRefCounts uses thread-safe allocator. (rs)
120     - AIX fixed, (thanks to Dieter Rosch, pk)
121     - linker error when using threads fixed (pk)
122   
123 Threads:
124     - reentrance support added to the pthread mutex (Thanks to Shen Lei, pk)
125       
126
127 CVS commits by Guillaume Chatelet (gc), Lukas Fittl (lf), Peter Kümmel (pk), Rich Sposato (rs)
128       
129
130 _____________________________________
131
132 Version 0.1.5
133 June 19, 2006
134 _____________________________________
135
136 General:
137     - operator== added to Functor, initiated by Eric Beyeler (pk)
138     - new Strong/Weak smart pointer added. (rs)
139     - loki.spec (Thanks to Regis Desgroppes and Andreas Scherer, pk)
140     - build shared lib also on mac osx (Thanks to Sam Miller, lf)
141     - added MinGW .dev files for the library (rs)
142     - some makefile improvements (Thanks to Sam Miller, lf)
143     - adding an XCode build project (kx)
144     
145     
146 flex_string:
147     - compare bug fixed in flex_string_shell.h (Thanks to David A. Capello, pk)
148     
149 Function:
150     - test is doesn't need boost any more (pk)
151     - wrong default parameter fixed (pk)
152     
153 OrderedStatic:
154     - undef all min/max macros (Thanks to Shen Lei, pk)
155     
156 Singleton:
157     - Singleton<> moved into correct namespace (Thanks to Sam Miller, pk)
158     
159 SmartPtr:
160     - patch for RedHat 9: undefined uintptr_t (Thanks to Regis Desgroppes, pk)
161     - more tests (rs)
162     - bugs 1452805 and 1451835 fixed (rs)
163     - addded HeapStorage policy as mentioned in Feature Request 1441024 (rs)
164     - added MinGW test project for SmartPtr (rs)
165     
166
167 CVS commits by Rich Sposato (rs), Lukas Fittl (lf),
168 Christopher Knox (kx), and Peter Kümmel (pk)
169
170
171
172 _____________________________________
173
174 Version 0.1.4
175 March 8, 2006
176 _____________________________________
177
178 General:
179     - helper templates for Pimpl/Rimpl implementations added (pk)
180     - improved Makefiles (lf)
181     - improved make.msvc.bat files (pk)
182     - cvs LOG keywords added (rs)
183     - removed old c style casts (lf)
184     - more warning enabled on gcc (lf)
185     - new header added: ConstPolicy.h (rs,pk)
186     - new header added: RefToValue.h (rs,pk)
187     - standard RPM specification file for integrated installation 
188       on OpenSUSE Linux added (Thanks to Andreas Scherer, pk)
189     - using Loki as shared library is now possible (pk,lf)
190     - Register.h added (pk)
191     
192     
193 Function:
194     - guard including (pk)
195     - test stsic functions (pk)
196     - test LOKI_FUNCTOR_IS_NOT_A_SMALLOBJECT  (pk)
197     
198 Functor:
199     - Added explicit call to base copy-constructor (rs)  
200     - Changed base class from SmallObject to SmallValueObject. (Thanks to Sam Miller, rs)
201     - add possibility to disable inheritance from SmallValueObject: LOKI_FUNCTOR_IS_NOT_A_SMALLOBJECT (pk)
202     
203 ScopeGuard:
204     - naming conflict with SmartPtr removed (rs,pk)
205     - ByRef moved to RefByVale (rs,pk)
206   
207 Singleton:
208     - support of allocators with a standard interface added (Thanks to Miguel A. Figueroa-Villanueva, pk)
209     - convenience template Singleton added for shared libraries (Thanks to Marcus Lindblom, pk)
210     - example added which shows how to use Singletons with shared libraries added (Thanks to Marcus Lindblom, pk)
211
212 SmartPtr:
213     - supports propagating constness by additional policy (rs,pk)
214     - ArrayStorage policy added (Thanks to Sam Miller, pk)
215     - fix in RefCounted for Mac OSX gcc 4.0.0 (Thanks to Sam Miller, pk)
216     - RefCounted ported to 64 bit (pk)
217     - add mutex policy (pk)
218     - new test code (rs)
219     - RecjectNullStrict const member function added (Thanks to Sam Miller, pk)
220     - Moved a monolithic RefLinkedBase class from header file to new source file. (rs)
221     - ByRef moved to RefToVale (rs,pk)
222     - Fixed bug 1425890.  Last SmartPtr in linked chain NULLs its prev & next
223       pointers to prevent infinite recursion.  Added asserts. (rs)
224     - Bug fix: infinite recursion in SmartPtr destructor (rs)
225     
226 LockingPtr:
227     - wrong return types fixed (rs)
228     - add mutex policy (rs,pk)
229     - supports now propagating constness (pk,rs)
230     - macro switch LOKI_DEFAULT_CONSTNESS added for propagating constness (pk)
231     - multi threaded example added 
232     
233 SafeFormat:
234     - definition moved to src/SafeFormat.cpp, it's now part of the library
235     
236 Singleton:
237     - add mutex policy (pk)
238
239 SmallObj:
240     - add mutex policy (pk)
241     - Added check for memory leak inside destructor. (Thanks to Kwak Jae Hyuk, rs)
242
243 Threads:
244     - Mutex added (rs,pk)
245     - use Loki::Mutex instead of win32/posix mutexes in threading classes (rs,pk)
246
247
248 CVS commits by Rich Sposato (rs), Lukas Fittl (lf)
249 and Peter Kümmel (pk)
250
251
252
253 _____________________________________
254
255 Version 0.1.3
256 January 9, 2006
257 _____________________________________
258
259 General:
260     - LockPtr added (rs)
261     - ScopeGuard added (pk,rs)
262     - improved Makefiles (lf,pk)
263     - several gcc fixes and removed warnings by Lukas Fittl (lf)
264     - tested on 64-bit Linux (pk)
265     - MS Visual C++ 2005 project files added (pk)
266     - now also the ms toolkit 2003 generates a library (pk)
267
268 OrderedStatic:
269     - point operator added (pk)
270
271 SafeFormat:
272     - moved into namespace Loki (pk)
273     - 64 bit problems fixed (Thanks to Zak Kipling)
274     - ported to 64-bit Windows, not tested (pk)
275     - Printf/SPrintfing of std::strings added (pk)
276     - all warnings removed gcc and msvc (pk)
277     - use snprintf for "%p"
278     - test program: speed comparison added (pk)
279
280 SmallObject:
281     - added functions to check for memory corruption (rs)
282     - more fine tuning (rs)
283     - warnings removed (pk)
284     
285 TypeTraits:
286     - bug 1388477 fixed (pk)
287     
288 flex_string:
289     - fixed compare bug by updating (Thanks to Justin Matthews, pk)
290     - fixed seg faults on Linux and Windows (pk)
291     - improved error reporting of the test program (pk)
292     
293 SmartPtr:
294     - make object level locking possible (Thanks to Ryan Smith, pk)
295     
296 BindFirst:
297     - store Functor arguments by value (bug 1383566) (pk)
298     
299 Visitor:
300     - add support for visiting constant member functions (pk)
301     - example added (pk)
302     
303 ScopeGuard:
304     - example added (pk)
305     
306     
307 CVS commits by Rich Sposato (rs), Lukas Fittl (lf)
308 and Peter Kümmel (pk)
309
310
311 _____________________________________
312
313 Version 0.1.2
314 November 16, 2005
315 _____________________________________
316
317 General:
318     - changes to compile under Linux (Thanks to David Lawrence, pk)
319     - more doxygen documentation, modules added (rs, pk)
320
321 SmartPtr:
322     - three year old bugs 626407 and 541846 fixed: 
323       Assertion with SmartPtr<T, LinkedRef> (pk)
324       SmartPtr and COMRefCounted (Thanks to James Mclaren, pk)
325
326 Typelists:
327     - it's now possible to completely disable the 
328       LOKI_TYPELIST_  macros (pk)
329     - marco definitions moved to a separate file (pk)
330
331 Factory:
332     - Factory now protects its private data (pk)
333     - new method to get the keys: 
334       std::vector<IdType> RegisteredIds() (pk)
335     
336 Functor:
337     - TR1 methods added: empty() and clear() (pk)
338     
339 Function:
340     - boost/TR1 like Function template with 
341       improved member function pointer usage (pk)
342     - tested with boost's function_test.cpp 
343
344 Sequence:
345     - small change in usage: use e.g. Functor<void,Seq<bool &> > 
346       instead of Functor<void,Seq<bool &>::Type > 
347
348 SmallObjects:
349     - comparison of new/malloc/std::allocator/boost::object_pool (rs, pk)
350     - #undef LOKI_SMALL_OBJECT_USE_NEW_ARRAY when using a ms compiler (pk)
351     - new lifetimes in namespace LongevityLifetime to manage dependencies: 
352       DieAsSmallObjectParent and DieAsSmallObjectClient (pk)
353     - no memory leaks when using SmallObjects (pk)
354     - new default lifetime is DieAsSmallObjectParent (pk)
355
356 Threads:
357     - threads on POSIX systems (Thanks to Ilya Volvovski ,pk)
358     - small regression test program (pk)
359
360 Singleton:
361     - new lifetime: FollowIntoDeath (pk)
362     - new namespace LongevityLifetime with lifetimes DieLast, DieFirst,
363       DieDirectlyBeforeLast, and function SingletonFixedLongevity (pk)
364     - new implementation for SetLongevity (pk)
365     - example programs (pk)
366     
367     
368 CVS commits by Rich Sposato (rs) and Peter Kümmel (pk)
369
370
371
372 _____________________________________
373
374 Version 0.1.1
375 October 17, 2005
376 _____________________________________
377
378 Singleton: 
379     - wrong ordered longevity fixed (Thanks to Kwak Jae Hyuk, pk)
380     - less warnings with msvc (Thanks to  John Bates, pk)
381     - new policy, DeletableSingleton, from Curtis Krauskopf, 
382       see also CUJ article 'Creating Dynamic Singletons & the Loki Library',(pk)
383     
384 AssocVector:
385     - hinted insert does now preserve ordering (Thanks to Christopher Twigg, pk)
386     - additional 'hinted insert' test for Regression test by Christopher Twigg (pk)
387     - fix name look up (Thanks to Markus Werle, pk)
388
389 SmallObj:
390      - several improvements (rs)
391      - more documentation (rs)
392      - improved SmallBench (rs, pk)
393
394 Longevity:
395     - example added (pk)
396     - additional example similar to that of the book, by Curtis Krauskopf (pk)
397     
398 OrderedStatic:
399     - a proposal to solve the 'static initialization ordered fiasco' problem (pk)
400
401 Sequence:
402     - a proposal to replace the LOKI_TYPELIST_XX macros with a template implementation (pk)
403     - e.g.: LOKI_TYPELIST_1(int) becomes Seq<int>::Type 
404       inspired by the functional language OPAL (pk)
405             
406             
407 CVS commits by Rich Sposato (rs) and Peter Kümmel (pk)
408
409
410
411 _____________________________________
412
413 Version 0.1.0
414 September 29, 2005
415 _____________________________________
416
417 General:
418     - version numbering started 
419     - new directory structure 
420     - Andrei's yasli, flex_string, and SafePrint added  (pk)
421     - all macros now in the LOKI "namespace", e.g.: 
422       TYPLELIST_1 -> LOKI_TYPELIST_1  (rs, pk)
423     - Makefiles added: tested with gcc 3.4 (mingw, cygwin),
424       msvc 8.0, and the toolkit  (pk)
425     - added some documentation (rs)
426     - several bug fixes (pk)
427     - added a cvs-list to sourceforge where you can see all changes (pk)
428     
429 SmallObjects:
430     - new implementation (rs)
431     
432 Factory:
433     - works now with parameters (pk)
434     - regression test added (Thanks to Kalle Rutanen, pk)
435     
436 TypeTraits: 
437     - isMemberPointer, isFunction added (Thanks to Kalle Rutanen, pk)
438     - regression test added (Thanks to Kalle Rutanen, pk)
439     
440 Threading: 
441     - new macros for better thread support (win32):
442       LOKI_CLASS_LEVEL_THREADING and LOKI_OBJECT_LEVEL_THREADING (pk)
443
444
445 CVS commits by Rich Sposato (rs) and Peter Kümmel (pk)
446