Removed libglademm.
[ardour.git] / libs / sigc++2 / ChangeLog
1 2.0.17:
2
3 2005-12-20  Murray Cumming  <murrayc@murrayc.com>
4
5         * sigc++/macros/signal.h.m4: Make all operator--() methods 
6         return by reference, like the operator++() methods. 
7         Bug #304402 from John Profic.
8
9 This is the libsigc-2-0 branch, for maintenance of libsigc++ 2.0.
10 API/ABI-compatible API-addition happens in the HEAD branch.
11
12 2005-12-01  Murray Cumming <murrayc@murrayc.com>
13
14         * sigc++/functors/slot_base.cc: 
15         slot_base::disconnect(): Set call_ to 0, 
16         to invalidate the slot, even if parent_ is 0. 
17         I think parent_ is, for instance, a signal, but 
18         disconnect should still work on a slot that is not 
19         connected to a signal, because a slot can be invoked 
20         directly.
21         Fixes bug #311057 from James Lin.
22
23 2005-12-01  Murray Cumming <murrayc@murrayc.com>
24
25         * tests/Makefile.am:
26         * tests/test_slot_disconnect.cc: Added test 
27         case from bug #311057.
28
29 2005-11-16  Philipp Berndt  <philipp.berndt@gmx.net>
30
31         * sigc++/adaptors/macros/exception_catch.h.m4: Make member
32         exception_catch_functor<T_functor, T_catcher, void>::catcher_
33         public so that it can be accessed by visit_each()
34         (bug fixed for generalization on 2004-11-06)
35
36 2.0.16:
37
38 2005-08-01  Neal E. Coombes  <nealc@trdlnk.com>
39
40         * sigc++/signal_base.h: Updated the documentation for temp_slot_list
41         as requested in bug #303896.
42
43 2005-08-01  Murray Cumming  <murrayc@murrayc.com>
44
45         * sigc++/adaptors/hide.h.m4: Added missing 
46         ) in call to sun_forte_workaround(), fixing
47         build on SUN Forte 5.5. Bug #312020.
48
49 2005-08-19  Bruno Martinez <brunom@fing.edu.uy>
50
51         * sigc++/type_traits.h: Renamed
52         ::sigc::is_base_and_derived::internal to 
53         ::sigc::is_base_and_derived::internal_class
54         in order to avoid conflict with
55         namespace internal. 
56
57 2005-07-13  Murray Cumming  <murrayc@murrayc.com>
58
59         * docs/manual/libsigc_manual.xml: Correct mentions of 
60         1.2 stuff instead of 2.0. Patch in bug #310213 from 
61         pebble.org.uk.  
62
63 2005-07-13  Murray Cumming  <murrayc@murrayc.com>
64
65         * docs/manual/libsigc_manual.xml: Fixed typo 
66         found by Antonio Coralles.
67
68 2005-07-09  Murray Cumming  <murrayc@murrayc.com>
69
70         * sigc++/macros/signal.h.m4: Did the same (see 
71         last commit) for slot_const_iterator and 
72         slot_iterator_buf.
73
74 2005-07-09  Murray Cumming  <murrayc@murrayc.com>
75
76         * sigc++/macros/signal.h.m4: slot_iterator:
77         operator--() now returns value, not reference, like 
78         operator++() already did. This caused crashes when 
79         using --no-inline with g++. Bug #308651 by 
80         Michael Andres.
81
82 2.0.15:
83
84 2005-07-04  Philip Langdale  <plangdale@vmware.com>
85
86         * sigc++/adaptors/macros/compose.h.m4: Add a setter typedef to 
87         compose*_functor and use it instead of the (incorrect) getter 
88         typedef in the compose* specialization of visit_each<>().
89         This corrects the lifetime management of slots created with 
90         compose(). Bug #308433.
91
92 2005-06-13  Marek Rouchal  <marek.rouchal@infineon.com>
93
94         * tests/test_deduce_result_type.cc: Specify int return type 
95         for main(), to be more ISO C++ compliant. Bug #307478.
96
97 2005-06-11  Andris Pavenis <pavenis@latnet.lv>
98
99         * sigc++/adaptors/lambda/macros/base.h.m4:
100         * sigc++/adaptors/lambda/macros/select.h.m4
101         * sigc++/adaptors/macros/hide.h.m4: Specify only a type (not a
102         parameter name) for unused member function parameters
103
104 2005-06-12  Paul Pogonyshev  <pogonyshev@gmx.net>
105
106         * configure.ac: 
107         * scripts/cxx.m4: 
108         * sigc++config.h.in: Add test for whether the compiler allows
109         referencing to member functions of the class/structure being
110         declared from a definition of a static member variable.
111         Supposedly a generic solution for GCC 3.2 compilation problems.
112
113         * sigc++/type_traits.h: Define SIGC_WRAP_IS_BASE_CLASS_ based on
114         results of the above test.
115         (struct is_base_and_derived): Wrap up is_base_class_() functions
116         in an internal class if SIGC_WRAP_IS_BASE_CLASS_ is defined.
117
118 2005-06-10  Murray Cumming  <murrayc@murrayc.com>
119
120         * sigc++/adaptors/macros/bind.h.m4:
121         * sigc++/functors/macros/slot.h.m4:
122         * sigc++/macros/signal.h.m4: Use CALL_SIZE instead of 
123         hard-coded 7s and 6s.
124
125 2.0.14:
126
127 2005-06-10  Murray Cumming  <murrayc@murrayc.com>
128
129         * sigc++/visit_each.h: Make the 
130         limit_derived_target::with_type inner class an outer class, 
131         to satisfy the SUN CC 5.7 compiler, though I think it is a 
132         compiler bug. Bug #302098 has the test case.
133
134 2.0.13:
135
136 2005-06-07  Murray Cumming <murrayc@murrayc.com>
137
138         * tests/test_compatibility.cc: Specify the actual class when 
139         using test_int(), instead of the derived class, to fix the build 
140         on SUN Forte CC 5.5. Patch from Friedemann Kleint in 
141         Bug #305647
142
143 2005-06-07  Murray Cumming <murrayc@murrayc.com>
144
145         * sigc++/macros/signal.h.m4: signal_emit::emit(): Use scope to 
146         ensure a certain order of destruction of the member variables, to 
147         avoid a leak on MSVC++. Patch by Andreas Ames in Bug #306249.
148
149 2005-06-07  Murray Cumming <murrayc@murrayc.com>
150
151         * sigc++/macros/signal.h.m4: Added comments about commenting-out
152         SIGC_TYPEDEF_REDEFINE_ALLOWED when using SUN Forte CC 5.7, 
153         because I can not seem to create a test for it.
154
155 2005-06-07  Murray Cumming <murrayc@murrayc.com>
156
157         * configure.ac:
158         * scripts/cxx_std.m4:
159         * sigc++/macros/signal.h.m4:
160         * sigc++config.h.in: Added check for 
161         the non-standard SUN Forte reverse_iterator<>,
162         and used it. This is based on the same stuff in 
163         gtkmm.
164
165 2005-06-07  Murray Cumming <murrayc@murrayc.com>
166
167         * sigc++/visit_each.h: limit_derived_target(): Just some whitespace 
168         changes.
169
170 2005-05-16  Neal E. Coombes  <nealc@trdlnk.com>
171         
172         * sigc++/signal_base.h:  Modified temp_slot_list to be a temporary view
173         into a slot list.  Instead of emptying the original it now simply tacks
174         a placeholder to the end of the original.  It then uses this as it's
175         'end' iterator.  This should allow for conscious recursiveness, as well
176         as inserting a slot to any position in the slot list during emittion.
177         See bug #303896.
178
179 2005-06-04  Friedemann Kleint <kleint@bifab.de>
180
181         * sigc++/macros/limit_reference.h.m4: 
182         visit_each() template specializations: 
183         Mention the bool I_derives_trackable 
184         template type, to fix the build on Solaris 
185         Forte 5.5.
186
187 2.0.12:
188
189 2005-05-06  Régis Duchesne <hpreg@vmware.com>
190
191         * sigc++/macros/limit_reference.h.m4 (added):
192         * sigc++/Makefile.am:
193         New class that just stores a reference, and makes sure that if the
194         reference derives from trackable, then the trackable reference will be
195         used instead of the derived reference in visit_each().
196         * sigc++/functors/macros/mem_fun.h.m4: Better fix for bug #169225 by
197         Régis Duchesne and Christian Hammond, based on the new limit_reference
198         class.
199         * sigc++/adaptors/bound_argument.h (added): New class (built upon the
200         new limit_reference class) that handles all 3 kinds of bound arguments:
201         by value, by reference, and by constant reference. References are
202         unwrapped in the bound_argument's constructor.
203         * sigc++/adaptors/macros/bind.h.m4: Fix for bug #302327 by Régis
204         Duchesne. Bound arguments now need to know whether they are passed by
205         reference or not. So bind() now builds bind_functor instances using
206         'reference_wrapper<Foo>' types, instead of 'Foo &' types. The
207         bind_functor code is modified to compensate.
208         * sigc++/adaptors/macros/bind_return.h.m4: Similar fix for a similar
209         bug (unfiled) with bound return arguments.
210         * sigc++/reference_wrapper.h:
211         * sigc++/type_traits.h:
212         The reference_wrapper class is only used in bound_argument.h. Put
213         correct but unused code under #if 0.
214         * sigc++/adaptors/lambda/base.h: This file needs reference_wrapper.h,
215         but was incorrectly relying on type_traits.h to include it.
216         * tests/Makefile.am:
217         * tests/test_virtualbase_delete.cc (deleted):
218         * tests/test_virtualbase_delete_ref_param.cc (deleted):
219         * tests/test_limit_reference.cc (added):
220         Replaced test_virtualbase_delete*.cc with a simpler
221         test_limit_reference.cc which checks for all 3 aspects of the same bug
222         in one file.
223         * tests/test_bind_ref.cc: Slots must use 'Foo &' types. We were lucky
224         this broken usage worked before this change. The change in
225         type_traits.h made this bug obvious, by preventing the code to compile.
226         * tests/test_bind_return.cc: After my change, bind() and bind_return()
227         must use 'reference_wrapper<Foo>' types.
228         * tests/test_custom.cc: Made this test a no-op (so it does not perturb
229         'make check' on released versions of the library) and made it a
230         template ready to be modified by hackers.
231
232 2005-05-01  Murray Cumming <murrayc@murrayc.com>
233
234         * sigc++/functors/slot_base.cc: 
235         slot_base::slot_base(src): If the source 
236         slot_base has a null rep->call_, meaning that the 
237         slot is invalid, just return a default-constructed 
238         slot, to prevent the crash shown in 
239         tests/tests_copy_invalid_slot.cc. Bug #302515 by 
240         Régis Duchesne.
241
242 2005-05-01  Murray Cumming <murrayc@murrayc.com>
243
244         * sigc++/functors/macros/mem_fun.h.m4: bound_*<>: 
245         Add a new is_base_and_derived<sigc::trackable> 
246         parameter to the template and thereby provide a 
247         specialization for T_Obj types that derive from 
248         sigc::trackable. This prevents a crash when casting 
249         from the derived type to sigc::trackable after the 
250         derived destructor has run. This cast can sometimes 
251         fail when using multiple inheritance, at least with 
252         g++. Bug #169225 by Régis Duchesne and Christian 
253         Hammond.
254         * sigc++/type_traits.h: Add documenation for 
255         the internal is_base_and_derived<> template, which 
256         allows us to specialize other templates for certain 
257         template types.
258
259 2005-04-28  Murray Cumming <murrayc@murrayc.com>
260
261         * sigc++/type_traits.h: Added comments for users of 
262         g++ 3.2.
263
264 2005-04-28  Murray Cumming <murrayc@murrayc.com>
265
266         * tests/Makefile.am:
267         * tests/test_virtualbase_delete.cc: Added 
268         simplified test case from bug #169225. We have a patch 
269         to make this succeed but I am not ready to commit it 
270         just yet.
271
272 2005-04-27  Murray Cumming <murrayc@murrayc.com>
273
274         * tests/Makefile.am:
275         * tests/test_custom.cc:
276         Added a place to put extra test code, so I don't have 
277         to keep installing my crazy libsigc++ versions.
278
279 2005-04-27  Murray Cumming <murrayc@murrayc.com>
280
281         * sigc++/visit_each.h: Revert back to the non-explicit 
282         template call, because we can not specify the 
283         template specialization so easily, because the 
284         specializations have different numbers of types.
285         * tests/Makefile/am:
286         * tests/test_bind_ref.cc: Add a simple test only for 
287         sigc::ref disconnection.
288
289 2005-04-26  Murray Cumming <murrayc@murrayc.com>
290
291         * sigc++/visit_each.h: Use the explicit template 
292         specialization, needed for Tru64 and AIX compilers. 
293         This causes a crash in some uses of sigc::ref() 
294         (when using g++ 3.3.4 or 3.3.5 , but not with 3.4) but 
295         seems to fix a crash in some uses of multiple inheritance 
296         (bug #169225).
297         * tests/test_bind.cc: Comment out the crashing (not with 
298         g++ 3.4) use of sigc::ref() with an explanatory comment.
299         
300 2.0.11:
301
302 2005-03-09  Cedric Gustin <cedric.gustin@swing.be>
303
304         * Makefile.am: Moved MSVC_Net2003 directory to SUBDIRS.
305         * MSVC_Net2003/Makefile.am: Added blank.cpp to EXTRA_DIST.
306         * MSVC_Net2003/libsigc++2_msvcNet2003.sln: Removed
307         test_accumulated and test_lambda projects as the tests are
308         disabled in the standard, configure-based build.
309         * MSVC_Net2003/MSVC_Net2003/libsigc++2_msvcNet2003.vcproj:
310         Generate a PDB file in the Debug target.
311
312 2005-03-05  Murray Cumming  <murrayc@murrayc.com>
313
314         * docs/website/stable.html: Mention actual supported compilers.
315         * docs/website/docs.html: Removed broken examples links. Change 
316         reference link to the reference overview page.
317
318 2005-02-23  Murray Cumming  <murrayc@murrayc.com>
319
320         * sigc++/functors/slot_base.h: Make slot_base::operator=() public, to 
321         fix the build with SUN Forte C++ 5.5 and Tru64.
322
323 2.0.10:
324
325 2005-02-20  Murray Cumming  <murrayc@murrayc.com>
326
327         * tests/test_slot.cc, test_disconnect.cc: #included <new> to avoid 
328         an unresolved symbol error with the Tru64 compiler. Solution found by 
329         Tim Mooney in bug #161503.
330
331 2005-02-20  Martin Schulze  <mschulze@cvs.gnome.org>
332
333         * sigc++/signal_base.h: Add some documentation.
334
335 2005-02-20  Martin Schulze  <mschulze@cvs.gnome.org>
336
337         * sigc++/signal_base.cc: Reset deferred_ flag to false in
338         signal_impl::sweep() (Neal E. Coombes). Partly fixes bug #167714.
339
340 2005-02-11  Martin Schulze  <mschulze@cvs.gnome.org>
341
342         * docs/manual/Makefile.am: Set the correct group in post-html.
343
344 2005-02-11  Murray Cumming  <murrayc@murrayc.com>
345
346         * docs/website/doc.shtml: Fix typo in url for reference docs. Found by 
347         James Lin.
348
349 2005-02-06  Murray Cumming  <murrayc@murrayc.com>
350
351         * sigc++/signal_base.h: temp_slot_list::begin(), end(): Actually 
352         return the iterators.
353
354 2005-02-03  Neal E. Coombes <nealc@trdlnk.com>
355
356         * sigc++/signal_base.h: Add temp_slot_list struct to facilitate
357         allowing new connections to a signal during an emittion without
358         affecting that emittion.
359         * sigc++/macros/signal.h.m4: Use the new struct temp_slot_list to
360         prevent connections made during an emittion from being called in the
361         same emittion (which has the potential of causing things like
362         infinite loops).  This guarantees an emittion will be finite, as well
363         as maintaining any order of emittion guarantees that may have already
364         been in place.
365         
366 2.0.9:
367
368 2005-02-02  Murray Cumming  <murrayc@murrayc.com>
369
370         * sigc++/visit_each.h: visit_each_type(): Reverted the change, so that 
371         we do not specify the template types ot visit_each<>(), because it 
372         crashes on g++ 3.3.4 (but not g++ 3.4.2). Added a comment telling users 
373         of AIX (and maybe IRIX MipsPro and Tru64) to use the alternative version 
374         if they have compilation problems.
375
376 2005-02-01  Murray Cumming  <murrayc@murrayc.com>
377
378         * sigc++/adapators/macros/base.h.m4: Add sigc::var<>() documentation, 
379         from Roger Ferrer Ibáñez in bug #149483.
380
381 2005-02-01  Murray Cumming  <murrayc@murrayc.com>
382
383         * sigc++/adaptors/macros/compose.h.m4: In the template specializations 
384         of visit_each(): As before, specify the specific other template 
385         specializations of visit_each that we use. Needed by AIX.
386         * tests/Makefile.am: Reenabled most tests, because AIX can now 
387         build them.
388
389 2005-02-01  Murray Cumming  <murrayc@murrayc.com>
390
391         * sigc++/visit_each.h: visit_each_type(): Specify the specific 
392         template specialization of visit_each<>() to use. The AIX compiler, 
393         and possibly the Tru64 compiler, need this extra hint.
394
395 2005-02-01  Murray Cumming  <murrayc@murrayc.com>
396
397         * bind.h.m4: Define bind_functor::operator() inline because the AIX 
398         compiler/linker sometimes fails to find it when it is defined 
399         outside of the class.
400
401 2.0.8:
402
403 2005-01-30  Murray Cumming  <murrayc@murrayc.com>
404
405         * sigc++/type_traits.h: is_base_and_derived: Added 
406         avoid_gcc3_warning_(), to avoid an incorrect warning when using 
407         g++ 3.3.5
408
409 2005-01-28  Liza Klerck   <liza@trdlnk.com>
410
411         * sigc++/functors/macros/mem_fun.h.m4: Add a sigc:: namespace 
412         prefix to the nested use of visit_each(), to avoid ambiguity when 
413         using 2 versions of the libsigc++ API inside different namespace.
414         
415 2005-01-27  Murray Cumming  <murrayc@murrayc.com>
416
417         * sigc++/adaptors/macros/adaptor_trait.h.m4: Add a sigc:: namespace 
418         prefix to the nested use of visit_each(), to avoid ambiguity when 
419         using 2 versions of the libsigc++ API inside different namespace, 
420         which is not very advisable anyway. Bug #165222 from 
421         liza at trdlnk.com.
422
423 2.0.7:
424
425 2005-01-24  Cedric Gustin <cedric.gustin@swing.be>
426
427         * sigc++config.h.in : Moved the SIGC_USING_STD macro definition
428         out of the SIGC_CONFIGURE section. We also need it for MSVC.
429         * MSVC_Net2003/.cvsignore : Added .def and .aps files
430         * MSVC_Net2003/Makefile.am: Rewrote rule for local copy of
431         sigc++config.h (required for 'make distcheck').
432         * MSVC_Net2003/libsigc++2_msvcNet2003.sln: Added test_retype and
433         test_disconnect_during_emit tests.
434         * MSVC_Net2003/tests/test_disconnect_during_emit/*,
435         MSVC_Net2003/tests/test_retype/*: Initial commit.
436
437 2005-01-21  Murray Cumming  <murrayc@murrayc.com>
438
439         * tests/: Disabled the test_accumulator, test_bind, and test_compose 
440         tests, and part of test_mem_fun because the AIX xlC compiler can not 
441         build them, but it can still do most things, including the examples.
442         See the comments in tests/Makefile.am.
443
444 2005-01-21  Murray Cumming  <murrayc@murrayc.com>
445
446         * sigc++/adaptors/bind.h.m4: non-member operator()(): Specify the 
447         extra nil arguments in the templated class name prefix. Oddly, the 
448         AIX xlC compiler says that the type of the first parameter does not 
449         match the template if you don't do this.
450
451 2005-01-21  Murray Cumming  <murrayc@murrayc.com>
452
453         * sigc++/type_traits.h: is_base_and_derived struct: Move the 
454         is_base_class_() functions out of the inner class, because the AIX 
455         xlC compiler does not like that - see the comments in the code.
456         * sigc++/adaptors/bind.h.m4: Add the extra nil template types to 
457         the template specializations, as in slot and signal.
458         
459 2005-01-21  Murray Cumming  <murrayc@murrayc.com>
460
461         * sigc++/functors/macros/slot.h.m4, sigc++/macros/signal.h.m4: 
462         slot and signal template specialization for 
463         various numbers of template args: In the class slot line, specify 
464         all the remaining template types as null, instead of expecting the 
465         compiler to guess them in itself. This partly fixes the build on 
466         AIX with the xlC compiler. Bug #164685.
467
468 2005-01-19  Murray Cumming  <murrayc@murrayc.com>
469
470         * sigc++/type_traits: struct is_base_and_derived: Make the test inner 
471         struct a friend, so that it can use the big inner struct. This is 
472         required by the Tru64 compiler.
473         * sigc++/adaptors/lambda/base.h: Put the unwrap_lambda_value() 
474         definitions at the top, because Tru64 (understandably) needs them to 
475         be declared before use.
476
477 2005-01-19  Murray Cumming  <murrayc@murrayc.com>
478
479         * scripts/: Added cxx_std.m4, with a test copied from 
480         glibmm/scripts/cxx_std.m4 to check if the compiler has the std:: 
481         namespace.
482         * sigcconfig.h: #undef the new #define and add SIGC_USING_STD(), 
483         like GLIBMM_USING_STD, to put stuff in the std:: namespace when it 
484         is not there already,
485         * configure.in: Used the new test.
486         * tests/*: Uses SIG_USING_STD() for every std:: thing that we use.
487         This is needed by the Tru64 and HP-UX compilers when using their 
488         defaults.
489
490 2005-01-19  Murray Cumming  <murrayc@murrayc.com>
491
492         * configure.in: AC_INIT(): Provide the extra tarball name parameter, 
493         so that it does not create a libsigc--- tarball.
494
495 2005-01-19  Murray Cumming  <murrayc@murrayc.com>
496
497         * configure.in: AC_INIT(): Use libsigc++ instead of sigc++, attempting 
498         to get the correct tarball name.
499
500 2005-01-18  Murray Cumming  <murrayc@murrayc.com>
501
502         * configure.in: Used the autoconf 2.93 and AM_INIT_AUTOMAKE() 
503         technique to specify ustar format for the tarball, to prevent files 
504         with long file names from appearing at the top of the tarball. 
505         Based on the same fix in gtkmm 2.6.
506
507 2005-01-18  Murray Cumming  <murrayc@murrayc.com>
508
509         * sigc++/functors/macros/slot_h.m4: Specify the base class when 
510         using the rep_ member variable. This stops the HP-UX aCC compiler 
511         from saying that a Nonstatic member  is referenced in a nested class, 
512         local class or static member initializer. Bug #150719.
513
514 2005-01-18  Murray Cumming  <murrayc@murrayc.com>
515
516         * Bug #159597 - patch from e97_far at e.kth.se to replace C-style 
517         casts with reinterpret_cast<> and static_cast<> to avoid warnings.
518
519 2005-01-17  Murray Cumming  <murrayc@murrayc.com>
520
521         * docs/manual/Makefile.am: Specifying html/index.html instead of 
522         just the html directory as a target seems to fix distcheck problems.
523         I can also now confirm that the install works on solaris, when using 
524         gmake, though not when using make.
525
526 2005-01-17  Murray Cumming  <murrayc@murrayc.com>
527
528         * MSVC_Net2004/Makefile.am: Add built files to DISTCLEANFILES to fix 
529         the distcheck.
530         * docs/reference/Makefile.am, manual/Makefile.am: Specify $srcdir in 
531         paths, to fix distcheck of the manual, and maybe fix install problems 
532         on Solaris.
533
534 2005-01-11  Murray Cumming  <murrayc@murrayc.com>
535
536         * docs/website/stable.html: Updated the text about binary packages.
537         * docs/website/docs.html: Link to the 2.0 documentation instead of the 
538         1.2 documentation.
539
540 2004-12-17  GregSchussman  <schussman@slac.stanford.edu>
541  
542         * glossary.shtml: Clean up punctuation, make definitions complete
543         sentences, and add clarifications for certain definitions according to
544         what Murray Cumming's suggestions and answers to my questions.
545         Bug #161580.
546
547 2005-01-11  Murray Cumming  <murrayc@murrayc.com>
548
549         * docs/: Added manual, copied from the libsigc++-1.2 cvs module, 
550         and updated it for the new 2.0 API.
551
552 2005-01-11  Murray Cumming  <murrayc@murrayc.com>
553
554         * docs/: Added website, copied from the libsigc++-1.2 cvs module.
555         We will use it from here from now on.
556
557 2004-12-11  Cedric Gustin <cedric.gustin@swing.be>
558
559         * configure.ac : parse version tags at configure time (for
560         sigc-2.0.rc).
561         * MSVC_Net2003/sigc-2.0.rc.in : New resource file.
562         * MSVC_Net2003/Makefile.am: include sigc-2.0.rc in distribution.
563
564 2004-12-08  Cedric Gustin <cedric.gustin@swing.be>
565
566         * MSVC_Net2003/Makefile.am: get sigc++config.h from $(top_builddir)
567         instead of $(top_srcdir).
568
569 2004-12-08  Cedric Gustin <cedric.gustin@swing.be>
570
571         * MSVC_Net2003/*/*.vcproj: Renamed libsigc++ target to
572         sigc-2.0d.dll (Debug) and sigc-2.0.dll (Release). Added
573         $(SolutionDir) and $(SolutionDir)\.. to "Additional Include
574         Directories" in tests projects.
575         * sigc++config.h.in: Rewrote dllexport/dllimport macros for
576         MSVC, for better consistency with glibmm/gtkmm.
577         * MSVC_Net2003/Makefile.am: copy sigc++config.h from $(top_srcdir)
578         at build time.
579
580 2004-11-27  Murray Cumming  <murrayc@murrayc.com>
581
582         * configure.in: Revert the AC_PROG_LIBTOOL change, so that this builds
583         with actually released libtool versions, and in jhbuild, so that it 
584         gets testing.
585
586 2004-11-06  Martin Schulze  <mschulze@cvs.gnome.org>
587
588         * sigc++/adaptors/macros/exception_catch.h.m4: Make catcher_ member
589         public so that it can be accessed by visit_each() (bug reported on
590         ml by Philip Langdale <plangdale@vmware.com>).
591
592 2004-10-24  Martin Schulze  <mschulze@cvs.gnome.org>
593
594         * MSVC_Net2003/*/*.vcproj: Link with the "multithreaded DLL" runtime
595         libraries and enable RTTI for the MSVC build
596         (patch from Timothy M. Shead <tshead@k-3d.com>).
597         * MSVC_Net2003/*/.cvsignore: Hide generated build files from cvs
598         (patch from Timothy M. Shead <tshead@k-3d.com>).
599
600 2.0.6:
601
602 2004-10-12  Martin Schulze  <mschulze@cvs.gnome.org>
603
604         * MSVC_Net2003/*/*.vcproj, MSVC_Net2003/blank.cpp: Fix project files
605         to compile out-of-the-box and add dummy file so that .cc files get
606         recognized as c++ code files (patch from Timothy M. Shead).
607
608 2004-10-10  Martin Schulze <mschulze@cvs.gnome.org>
609
610         * sigc++/signal_base.{h,cc}, sigc++/functors/slot_base.{h,cc},
611         sigc++/functors/macros/slot.h.m4: If SIGC_NEW_DELETE_IN_LIBRARY_ONLY
612         is defined, implement signal_base::operator new/delete and
613         slot_rep::operator new/delete (suggested by Timothy M. Shead).
614         Remove old work-around from 2004-10-02 since it didn't work.
615
616 2004-10-07  Martin Schulze <mschulze@cvs.gnome.org>
617
618         * configure.ac: Update for libtool 1.5a (with support for Intel C++).
619         * MSVC_Net2003/sigc++config.h: Remove bogus '#define'
620         (reported by Timothy M. Shead <tshead@k-3d.com>).
621
622 2004-10-02  Martin Schulze <mschulze@cvs.gnome.org>
623
624         * configure.ac: Bump version number to 2.0.6.
625         * NEWS: Add ChangeLog summary for version 2.0.6.
626
627 2004-10-02  Martin Schulze <mschulze@cvs.gnome.org>
628
629         * sigc++/functors/slot_base.{h,cc}, sigc++/functors/macros/slot.h.m4:
630         Rename (typed_)slot_rep::detach to (typed_)slot_rep::destroy.
631         Call the dtor of the functor stored in typed_slot_rep from destroy().
632         A cleaner solution would be to add an additional "virtual" function
633         that calls 'delete' or a real virtual dtor. However, this would be
634         less efficient and might break the ABI. (Fixes #152323.)
635
636 2004-10-02  Martin Schulze <mschulze@cvs.gnome.org>
637
638         * sigc++config.h.in, MSVC_Net2003/sigc++config.h,
639         sigc++/signal_base.cc, sigc++/functors/slot_base.{h,cc},
640         sigc++/functors/macros/slot.h.m4: Define and use new macro
641         SIGC_NEW_DELETE_IN_LIBRARY_ONLY to ABI-compatibly move
642         all calls to new and delete into non-inline library code.
643
644 2004-09-26  Martin Schulze <mschulze@cvs.gnome.org>
645
646         * sigc++/adaptors/lambda/macros/group.h.m4: Add a missing
647         template keyword in the definition of deduce_result_type::type
648         (hopefully fixes #152327).
649
650 2004-09-26  Martin Schulze <mschulze@cvs.gnome.org>
651
652         * sigc++/macros/object_slot.h.m4: Use correct bound_mem_functor
653         variants for const (volatile) methods (fixes #148744).
654
655 2004-09-01  Martin Schulze <mschulze@cvs.gnome.org>
656
657         * docs/index.html: Correct link to lambda module.
658
659 2004-09-01  Martin Schulze <mschulze@cvs.gnome.org>
660
661         * README: Update compatibility section.
662
663 2.0.5:
664
665 2004-09-01  Martin Schulze <mschulze@cvs.gnome.org>
666
667         * MSVC_Net2003/Makefile.am: Add sigc++config.h to EXTRA_DIST.
668         * configure.ac: Bump version number to 2.0.5.
669         * NEWS: Add ChangeLog summary for version 2.0.5.
670
671 2.0.4:
672
673 2004-08-21  Martin Schulze <mschulze@cvs.gnome.org>
674
675         * tests/test_lambda.cc: Use sigc::var("\n") instead of sigc::ref("\n").
676         Comment out the affected lines, nevertheless.
677         Sun FORTE and Compaq C++ can handle neither sigc::ref("\n") nor
678         sigc::var("\n"). I see more chances fixing sigc::var("\n").
679         * sigc++/adaptors/lambda/macros/base.h.m4: Add a comment about a
680         possible work around for sigc::var("\n") compiler problems.
681         * tests/test_compatibility.cc: Remove a 'const' keyword that prevents
682         the test case from compiling with the Sun FORTE.
683         * tests/test_trackable.cc: Remove a 'virtual' keyword and an unused
684         variable to avoid compiler warnings.
685         * NEWS: Add ChangeLog summary for version 2.0.4.
686
687 2004-08-03  Martin Schulze <mschulze@cvs.gnome.org>
688
689         * scripts/cxx.m4, sigc++config.h.in, configure.ac,
690         sigc++/adaptors/lambda/macros/operator.h.m4, tests/test_lambda.cc:
691         Rollback change from 2004-07-15: configure check
692         SIGC_OPERATOR_OVERLOAD_AMBIGUITY is not needed - the overload
693         ambiguity doesn't occur if the lambda operators take all arguments
694         as const reference.
695         * configure.ac: Bump version number to 2.0.4.
696
697 2004-08-03  James Lin <slimjimmy@mail.com>
698
699         * Added SIGC_API qualifier to all externally-visible non-template 
700         classes/structs.
701         * Added #include <sigc++config.h> to the files that use SIGC_API.
702         * Added empty SIGC_API definition to sigc++config.h.in for non-MSVC
703         compilers.  I'm not sure if this is the right place to put this
704         (probably not).
705         * Added MSVC-specific sigc++config.h to the MSVC project directory.
706         (The comment in it probably should be edited.)
707         * Changed MSVC project settings to output a multi-threaded DLL, set 
708         the include paths to work (hopefully) out-of-the-box.  Disabled
709         precompiled headers, since they just complicate things and 
710         shouldn't be necessary for such a relatively project.
711
712 2004-08-01  Martin Schulze <mschulze@cvs.gnome.org>
713
714         * sigc++/type_traits.h: Remove type_trait<>::instance()
715         (was unimplemented and unused; caused problems with the MSVC).
716
717 2004-07-23  Martin Schulze <mschulze@cvs.gnome.org>
718
719         * Makefile.am: Fix typo concerning distribution of libsigc++-2.0.spec.
720         * AUTHORS: Mention our contributors for platforms Sun FORTE and Intel C++.
721
722 2004-07-15  Martin Schulze <mschulze@cvs.gnome.org>
723
724         * *.h.m4: Don't call operator()() in sun_forte_workaround(); rather copy
725         operator()(). Calling operator()() makes a copy of the arguments causing
726         wrong results if an argument type is a reference. Hopefully fixes #147311.
727
728 2004-07-15  Martin Schulze <mschulze@cvs.gnome.org>
729
730         * tests/test_lambda.cc: Break "std::cout << [expr] << a << std::endl;"
731         into "std::cout << [expr]; std::cout << a << std::endl;".
732         I hope this fixes #147313 where the right values for "[expr]" but wrong
733         values for "a" were written to std::cout for some compiler with optimizations
734         turned off.
735
736 2004-07-15  Martin Schulze <mschulze@cvs.gnome.org>
737
738         * sigc++/adaptors/lambda/macros/operator.h.m4: Correct return type deduction
739         of lambda expressions in lambda_operator*::operator()(). Might be related to
740         bug #147313.
741         * sigc++/adaptors/lambda/macros/group.h.m4: Use m4 macro _P_().
742
743 2004-07-15  Martin Schulze <mschulze@cvs.gnome.org>
744
745         * scripts/cxx.m4, sigc++config.h.in, configure.ac,
746         sigc++/adaptors/lambda/macros/operator.h.m4, tests/test_lambda.cc:
747         Add configure check SIGC_OPERATOR_OVERLOAD_AMBIGUITY for a SUN FORTE
748         compiler problem (bug #147391). Use it to decide whether the lambda
749         action operators may be overloaded (not doing so restricts the API slightly).
750         * sigc++/adaptors/lambda/macros/operator.h.m4: Add some doxygen comments
751         and remove attic code.
752         * sigc++/adaptors/lambda/macros/base.h.m4:
753         Add templates unwrap_lambda_type and unwrap_lambda_value() to support
754         the non-overloaded lambda action operators. Also add some doxygen comments
755         and remove attic code.
756         * sigc++/adaptors/lambda/macros/group.h.m4: Fix a bug that resulted in
757         gargabe values being passed on to the functor contained in the group adaptor
758         (partly fixes #147313).
759
760 2004-07-11  Martin Schulze <mschulze@cvs.gnome.org>
761
762         * scripts/cxx.m4, sigc++config.h.in, configure.ac, *.h.m4:
763         Split SIGC_CXX_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
764         into SIGC_CXX_GCC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
765         and SIGC_CXX_MSVC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD.
766         Remove LIBSIGC_TEMPLATE_PREFIX. Add template keyword to
767         SIGC_WORKAROUND_OPERATOR_PARENTHESES depending on the configure checks.
768         Should fix the compiler problems with MSVC.
769
770 2004-07-11  Martin Schulze <mschulze@cvs.gnome.org>
771
772         * examples/hello_world.cc: Use sigc::ptr_fun instead of std::ptr_fun.
773         (fixes bug #144846)
774
775 2004-07-11  Eric Bourque <ericb@computer.org>
776
777         * libsigc++-2.0.spec.in: new file
778         * configure.ac : patched generate spec file
779         * .cvsignore: ignore generated file (Martin Schulze)
780         * Makefile.am: distribute spec file (Martin Schulze)
781
782 2004-07-11  Murray Cumming  <murrayc@murrayc.com>
783
784         * sigc++/connection.cc: Added some comments.
785         * sigc++/trackable.cc: operator=(): Check for self-asignment, though I 
786         do not know of any actual bug that this fixes. Added some comments.
787         * sigc++/trackable.h Added some doxygen documentation.
788
789 2004-07-09  Murray Cumming  <murrayc@murrayc.com>
790
791         * tests/: Added test_disconnect_during_emit.cc, to prove that this 
792         works.
793
794 2004-07-08  Murray Cumming  <murrayc@murrayc.com>
795
796         * tests/test_retype_return.cc: foo::operator(int): return a 
797         value. The SUN Forte 5.5 compiler complains about this, as it should.
798
799 2004-07-08  Murray Cumming  <murrayc@murrayc.com>
800
801         * sigc++/macros/signal.h.m4: class signal*: Rename the slot_list 
802         typedef to slot_list_type, because there is already a template class 
803         called slot_type. SUN Forte 5.5 seems to complain about this and I am 
804         not surprised. The old typdef is still there for backwards 
805         compatibility, except when building with SUN Forte.
806
807 2004-07-07  Murray Cumming  <murrayc@murrayc.com>
808
809         * scripts/cxx.m4: SIGC_CXX_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD():
810         Don't define the SIGC_TEMPLATE_SPECIALIZATOIN_OPERATOR_OVERLOAD C 
811         macro at all if the test fails. This might fix the build on SUN Forte.
812         * sigc++/functors/macros/mem_fun.h.m4: Default constructor: Initialize 
813         the func_ptr_ member variable. I have no evidence that this solves any 
814         problems, but it worried me.
815         * sigc++/functors/slot_base.h: operator bool(): Correct documentation, 
816         to use @code instead of <code>
817         * sigc++/macros/signal.h.m4: Remove the documentation for the 
818         parameters named first and last, because they do not exist.
819
820 2004-05-31  Martin Schulze  <mschulze@cvs.gnome.org>
821
822         * autogen.sh: Add '--force'-flag to the 'libtoolize'-command (bug #143425).
823
824 2.0.3:
825
826 2004-05-30  Martin Schulze  <mschulze@cvs.gnome.org>
827
828         * configure.ac: Bump version number to 2.0.3.
829         * NEWS: Add ChangeLog summary for version 2.0.3.
830         * sigc++/macros/signal.h.m4: Fix segfault on emission of unconnected signal.
831         * tests/test_signal.cc, tests/test_accumulated.cc: Emit unconnected signal.
832         * sigc++/macros/object_slot.h.m4: Suppress compiler warning at
833         dynamic_cast<>-test (tested by Christof Petig/Timothy M. Shead).
834
835 2.0.2:
836
837 2004-05-22  Martin Schulze  <mschulze@cvs.gnome.org>
838
839         * configure.ac: Bump version number to 2.0.2.
840         * NEWS: Add ChangeLog summary for version 2.0.2.
841
842 2004-05-20  Martin Schulze  <mschulze@cvs.gnome.org>
843
844         * sigc++/macros/signal.h.m4: If a custom accumulator is specified
845         invoke it on signal emission even if the signal's slot list is empty.
846         (This used to be the case in libsigc++-1.2 as pointed out by Timothy.)
847
848 2004-05-20  Martin Schulze  <mschulze@cvs.gnome.org>
849
850         * sigc++/macros/object_slot.h.m4: Suppress compiler warning at
851         dynamic_cast<>-test (suggested by Timothy M. Shead).
852
853 2004-05-01  Martin Schulze  <mschulze@cvs.gnome.org>
854
855         * README: Updated for libsigc++-2.0.
856
857 2.0.1:
858
859 2004-04-27  Martin Schulze  <mschulze@cvs.gnome.org>
860
861         * configure.ac: Bump version number to 2.0.1.
862         * NEWS: Add ChangeLog summary for version 2.0.1.
863         * sigc++/adaptors/lambda/macros/base.h.m4: Fixed documentation.
864         * sigc++/adaptors/macros/bind.h.m4: Hide work-arounds from doxygen.
865         * scripts/cxx.m4, sigc++config.h.in, configure.ac,
866         sigc++/adaptors/macros/bind.h.m4: Removed configure     check. It
867         showed that the Apple gcc can also compile the sophisticated version
868         of the work-around.
869
870 2004-04-26  Martin Schulze  <mschulze@cvs.gnome.org>
871
872         * sigc++/macros/object_slot.h.m4: Modified test for SigC::Object
873         inheritance so that it also works if SigC::Object is virtual base.
874         (Fixes bug 141094 reported by Jonathan Brandmeyer)
875
876 2004-04-26  Martin Schulze  <mschulze@cvs.gnome.org>
877
878         * scripts/cxx.m4: Updated the configure check. It would probably
879         have succeeded on the Apple.
880
881 2004-04-26  Martin Schulze  <mschulze@cvs.gnome.org>
882
883         * sigc++/adaptors/macros/bind.h.m4: Add work-arounds for
884         bind<-1>::deduce_result_type compilation error on Apple gcc 3.3.
885         * scripts/cxx.m4, sigc++config.h.in, configure.ac: Add configure
886         check for the compilation error above.
887         * sigc++/adaptors/lambda/macros/operator.h.m4: Replace _A with
888         _Aa. _A is a reserved keyword on Apple gcc 3.3 (Spundun Bhatt).
889         (fixes bug #10444 reported by Spundun Bhatt)
890
891 2004-04-19  Martin Schulze  <mschulze@cvs.gnome.org>
892
893   * sigc++/signal_base.cc: Fixed serious bug in signal_base::impl():
894   Only reference a newly created object (initial reference).
895   (This fixes bug #140269 reported by Andris.)
896
897 2004-04-19  Murray Cumming  <murrayc@murrayc.com>
898
899         * scripts/cxx.m4: Updated the operator() template check, because it
900         failed with gcc 3.4 (from cvs). Apparently the template keyword can
901         only be used from another template.
902
903 2.0.0:
904
905 2004-04-06  Martin Schulze  <mschulze@cvs.gnome.org>
906
907         * configure.ac: Bump version number to 2.0.0.
908         * NEWS: Add ChangeLog summary for version 2.0.0.
909         * TODO, AUTHORS: Bring up to date.
910         * sigc++-2.0.pc.in, Makefile.am: 1.9 -> 2.0
911         * Added more documentation.
912
913 2004-04-10  Murray Cumming  <murrayc@murrayc.com>
914
915         * sigc++/connection.[h|cc]: Implement blocked() to avoid undefined 
916         symbol linker error.
917
918 2004-04-08  Murray Cumming  <murrayc@murrayc.com>
919
920         * dist the scripts directory.
921
922 1.9.16:
923
924 2004-04-06  Martin Schulze  <teebaum@cvs.gnome.org>
925
926         * configure.ac: Bump version number to 1.9.16.
927         * NEWS: Add ChangeLog summary for version 1.9.16.
928
929 2004-04-02  Murray Cumming  <murrayc@murrayc.com>
930
931         * sigc++/connection.cc: Make block() and unblock() always return a 
932         value, to fix compiler warnings. Patch from bug #138620 by
933         Alexander Nedotsukov.
934
935 2004-04-02  Murray Cumming  <murrayc@murrayc.com>
936
937         * Fix the compile of examples/member_method.cc. Bug #131701 from 
938         Kirill Smelkov. I also made the examples build as part of the regular
939         build.
940
941 2004-04-02  Murray Cumming  <murrayc@murrayc.com>
942
943         * sigc++config.h.m4: Remove every undef apart from the one we need, to
944         avoid clashes, because we #include this in a public header.
945
946 2004-03-25  Murray Cumming  <murrayc@murrayc.com>
947
948         * scripts/cxx.m4, configure.in, sigc++config.h.in: Rename the 
949         template_keyword check to template_specialization, because the problem
950         is with or without the keyword.
951         * sigc++/adaptors/macros/adaptor_trait.h.m4: Define 
952         SIGC_WORKAROUND_OPERATOR_PARENTHESES, which calls either operator() or 
953         sun_forte_workaround() depending on the result of the compiler test.
954         * many .m4 files: Add sun_forte_workaround methods that call the 
955         operator() methods. Put them in #ifdefs so that only SUN Forte C++ 
956         sees them.
957
958 2004-03-22  Murray Cumming  <murrayc@murrayc.com>
959
960         * Makefile.am, sigc++/Makfile.am: Fix the sigc++config.h.in disting,
961         to fix make distcheck.
962
963 2004-03-21  Murray Cumming  <murrayc@murrayc.com>
964
965         * Rename config.h.in to sigc++config.h.in so that gtkmm does not 
966         include some other config.h at strange times - fixes a problem in
967         the gtkmm demos. This should really be in the sigc++ directory, but
968         that seems to add that as an include path, which causes the STL
969         headers to include sigc++/signal.h instead of some STL signal.h header.
970
971 2004-03-20  Murray Cumming  <murrayc@murrayc.com>
972
973         * Makefile.am: Install the config.h platform-specific header.
974         * sigc++-2.0.pc.in: Report the include path for config.h
975
976 2004-03-20  Murray Cumming  <murrayc@murrayc.com>
977
978         * Added config.h.in, using autoheader, from which config.h will be 
979         generated, so we can detect compiler features.
980         * configure.ac: Added AC_CONFIG_HEADER(config.h) to generate config.h
981         from config.h.in.
982         * scripts/cxx.m4: Added this directory and file, with a 
983         SIGC_CXX_TEMPLATE_KEYWORD_OPERATOR_OVERLOAD macro that defines 
984         the SIGC_TEMPLATE_KEYWORD_OPERATOR_OVERLOAD C macro.
985         * autogen.sh: Added -I scripts to the aclocal call, so that it finds
986         the m4 macro for configure.ac.
987         * sigc++/adapators/macros/adaptor_trait.h.m4: Include config.h and
988         use SIGC_TEMPLATE_KEYOWRD_OPERATOR_OVERLOAD.
989
990 2004-03-18  Martin Schulze  <mschulze@cvs.gnome.org>
991
992   * tests/test_mem_fun.cc, tests/test_ptr_fun.cc: Don't test
993   making functors from overloaded methods with partial template
994   specialization. Not portable among different compilers (SUN FORTE).
995   * adaptors/macros/apdaptor_trait.h.m4: Only gcc seems to use the
996   notation A.template operator()<...>(...) => adapt preprocessor check
997   for #define LIBSIGC_TEMPLATE_PREFIX. TODO: replace with configure check.
998
999 2004-03-13  Murray Cumming  <murrayc@murrayc.com>
1000
1001         * g++ 3.4 (pre-release) build fixes:
1002         * sigc++/macros/signal.h.m4: slot_iterator_buf::operator*():
1003         Use blocked() and empty() instead of non-existant blocked_and_empty().
1004         * sigc++/functors/macros/mem_fun.h.m4: memfun_functor*::operator()(): 
1005         Use this->func_ptr_ instead of just func_ptr_.
1006         * sigc++/adaptors/macros/deduce_result_type.h.m4: Use 
1007         T_functor::template deduce_result_type<> instead of just
1008         T_functor::deduce_result_type<>.
1009         * sigc++/adaptors/lambda/macros/base.h.m4, operator.h.m4, group.h.m4:: 
1010         Use template keyword again. operator[](): Use this->value_ instead of 
1011         just value_.
1012         * sigc++/adaptors/lambda/macros/bind/m4: Use template keyword, and 
1013         this-> again.
1014         * sigc++/adaptors/macros/compose.h.m4, hide.h.m4, bind_return.h.m4, 
1015         exception_catch.h.m4:
1016         rettype.h.m4, rettype_return.h.m4: Use template keyword,and this-> again
1017
1018 1.9.15:
1019
1020 2004-02-27  Martin Schulze  <teebaum@cvs.gnome.org>
1021
1022         * configure.ac: Bump version number to 1.9.15.
1023         * NEWS: Add ChangeLog summary for version 1.9.15.
1024
1025 2004-02-27  Martin Schulze  <teebaum@cvs.gnome.org>
1026
1027   * sigc++/functors/macros/slot.h.m4: Make the unnumbered slot templates'
1028   copy ctors use the copy ctors of the base class. Fixes bug #24698.
1029   * tests/test_slot.cc: Test copy ctor (Bryan Forbes).
1030
1031 2004-02-27  Martin Schulze  <teebaum@cvs.gnome.org>
1032
1033   * tests/type_functor_trait.cc: Bring it up-to-date (use sigc::ref).
1034   Make it work with the SUN Forte.
1035
1036 2004-02-24  Martin Schulze  <teebaum@cvs.gnome.org>
1037
1038   * sigc++/type_traits.h: Make is_base_and_derived<> work with the SUN Forte.
1039
1040 2004-02-19  Martin Schulze  <teebaum@cvs.gnome.org>
1041
1042   * sigc++/type_traits.h: Make is_base_and_derived<> platform independant.
1043   * sigc++/adaptors/lambda/macros/base.h.m4: Make lambda_core<> ctors
1044   explicit. Remove an unused ctor from lambda_core<T_type, true>.
1045
1046 2004-02-14  Martin Schulze  <teebaum@cvs.gnome.org>
1047
1048   * sigc++/functors/slot_base.h, sigc++/functors/macros/slot.h.m4:
1049   Move some documentation to slot_base.h.
1050   * sigc++/signal_base.h, sigc++/macros/signal.h.m4:
1051   Move some documentation to signal_base.h.
1052
1053   API addition:
1054   * sigc++/functors/macros/slot.h.m4: Add numbered slot# templates.
1055   Make unnumbered slot templates inherit from slot#.
1056
1057   API change:
1058   * sigc++/functors/macros/mem_fun.h.m4: Allow for methods of the object's
1059   base types to be passed into sigc::mem_fun(). (Used to be the case in
1060   libsigc++-1.2).
1061
1062 2004-02-13  Murray Cumming  <murrayc@usa.net>
1063
1064         * sigc++/functors/slot_base.[h|cc], sigc++/trackable.[h|cc]: Create 
1065         and use a typedef for the destroy_notify callback functions, to avoid
1066         confusion function pointer declaration syntax in the API.
1067
1068 2004-02-13  Murray Cumming  <murrayc@murrayc.com>
1069
1070         * Moved implementation to .cc files:
1071         * sigc++/functors/: Added slot_base.[h|cc] which contains non-template
1072         code that was previsouly in the generated functors/slot.h and 
1073         non-generated slot.cc files. All non-inline implementation is now in 
1074         the .cc file.
1075         * sigc++/functors/macros/slot.m4: Removed the code that has been moved
1076         to slot_base.[h|cc].
1077         * sigc++/: Added signal_base.[h|cc] which contains non-template code 
1078         that was previously in the generated signal.h and non-generated
1079         signal.cc file. All non-inline implementation is now in the .cc file.
1080         * sigc++/macros/signal.m4: Removed the code that ahs been moved to
1081         signal.cc
1082         * sigc++/connector.[h|cc]: method implementation moved to the .cc file.
1083
1084 1.9.14:
1085
1086 2004-02-13  Martin Schulze  <teebaum@cvs.gnome.org>
1087
1088         * configure.ac: Bump version number to 1.9.14.
1089         * NEWS: Add ChangeLog summary for version 1.9.14.
1090
1091 2004-02-09  Murray Cumming  <murrayc@usa.net>
1092
1093         * sigc++/functors/macros/slot.h.m4: slot_base: Added operator bool(), needed to
1094         check for a slot that is created with the default constructor. This was
1095         present in libsigc++ 1.2 also.
1096
1097 2004-02-06  Murray Cumming  <murrayc@usa.net>
1098
1099         * Makefile.am: Build the docs directory, by adding it to SUBDIRS.
1100         * docs/Doxyfile.in: Updated to be more glibmm-like.
1101         * Added some @deprecated doxygen bits.
1102         * sigc++/macros/signal.h.m4: Call base constructor from signal_base
1103         constructor - this is an error-as-warning when building gtkmm.
1104
1105 1.9.13:
1106
1107 2003-11-30  Martin Schulze  <teebaum@cvs.gnome.org>
1108
1109         * configure.ac: Bump version number to 1.9.13.
1110         * NEWS: Add ChangeLog summary for version 1.9.13.
1111         * Makefile.am, MSVC_Net2003/Makefile.am, configure.ac:
1112         Distribute MS .Net project files.
1113         * sigc++/adaptors/macros/[bind,hide].h.m4: Correct and add
1114         documentation. Make hide_functor ctor explicit.
1115
1116 2003-11-11  Martin Schulze  <teebaum@cvs.gnome.org>
1117
1118         * sigc++/adaptors/macros/[bind,hide].h.m4: Change to zero-based
1119         argument index in numbered bind() and hide() overload
1120         (Agreement on the mailing list).
1121         Support binding up to CALL_SIZE arguments with one bind adaptor.
1122         (Requested by joey yandle and others).
1123         Only support binding of multiple arguments in unnumberd overloads
1124         to keep the API simple (Requested by Murray Cumming).
1125         * tests/test_[bind,hide,functor_trait].cc, sigc++/bind.h:
1126         Reflect API changes in compatibility module and test cases.
1127
1128 2003-11-10  Martin Schulze  <teebaum@cvs.gnome.org>
1129
1130         * sigc++/adaptors/macros/[bind,hide].h.m4: Add unnumbered
1131         bind() and hide() overloads to make specifying the argument
1132         position optional (Proposed by Jeff Franks).
1133         * tests/test_[bind,hide].cc: Test unnumbered bind() and hide().
1134         * sigc++/adaptors/macros/adaptor_trait.h.m4:
1135         Change "#ifdef MSVC" to "#ifdef _MSC_VER" (Roel Vanhout).
1136
1137 2003-11-09  Martin Schulze  <teebaum@cvs.gnome.org>
1138
1139         * sigc++/functors/macros/slot.h.m4: Change functor type in
1140         typed_slot_rep to adaptor_trait::adaptor_type<T_functor>
1141         and use explicit function template instantiation in
1142         internal::slot_call::call_it(). Avoids copying of arguments
1143         in call_it() and enables binding of object instances
1144         to class methods through bind() (Reported by Jeff Franks).
1145         * tests/test_bind.cc: Test binding object instances to
1146         class methods through bind().
1147         * sigc++/adaptors/adaptors.h: Include retype[_result].h.
1148         * sigc++/adaptors/macros/adaptor_trait.h.m4:
1149         - Add documentation.
1150         - Mark some c-tors as explicit.
1151         - Remove ununsed operator T_functor&() from adaptor_functor.
1152         * sigc++/adaptors/macros/deduce_result_type.h.m4:
1153         Rewrite parts of the documentation.
1154         * sigc++/adaptors/macros/bind.h.m4: Add documentation.
1155         * sigc++/functors/macros/mem_fun.h.m4: Remove unnecessary
1156         explicit markers. Minor fixes to documentation.
1157         * sigc++/functors/macros/functor_trait.h.m4:
1158         Minor fixes to documentation.
1159
1160 1.9.12:
1161
1162 2003-11-04  Martin Schulze  <teebaum@cvs.gnome.org>
1163
1164         * configure.ac: Bump version number to 1.9.12.
1165         * NEWS: Add ChangeLog summary for version 1.9.12.
1166
1167 2003-11-03  Martin Schulze  <teebaum@cvs.gnome.org>
1168
1169         * sigc++/macros/signal.h.m4: Document accumulators.
1170         Move slot_iterator_buf into namespace internal. Since
1171         accumulators have the iterator type as a template argument
1172         there is no need to expose this very internal type.
1173         * sigc++/functors/macros/*.m4: Regroup documentation.
1174         Documentation of the core parts of the library should be
1175         complete by now.
1176
1177 2003-11-02  Martin Schulze  <teebaum@cvs.gnome.org>
1178
1179         * Improve documentation of the core parts of the library.
1180         * tests/test_ptr_fun.cc: Test ptr_fun() with static
1181         member functions.
1182
1183 2003-11-02  Martin Schulze  <teebaum@cvs.gnome.org>
1184
1185         * Move all .m4 files into new subdirectories
1186         sigc++/[...]/macros. Install the .m4 files on
1187         "make install" (Reported by Ron Steinke).
1188
1189 2003-11-01  Martin Schulze  <teebaum@cvs.gnome.org>
1190
1191         * sigc++/[class,method,object]_slot.h.m4: Include
1192         sigc++/functors/mem_fun.h (Reported by Ron Steinke).
1193
1194 2003-11-01  Martin Schulze  <teebaum@cvs.gnome.org>
1195
1196         * sigc++/adaptors/lambda/operator.h.m4: Add negation
1197         operator I have completely overlooked until now.
1198         * sigc++/tests/test_lambda.cc: Test negation operator.
1199
1200 2003-11-01  Martin Schulze  <teebaum@cvs.gnome.org>
1201
1202         * sigc++/[class_slot,method_slot,object_slot,hide].h.m4,
1203         sigc++/signal.h.m4, sigc++/functors/mem_fun.h.m4:
1204         - Use a shorter notation for ..._mem_function variants.
1205         - Change order of mem_funcotr<>'s template arguments to
1206         match std::mem_fun_t and to be more consistent with adaptors.
1207         - Use ::sigc::slot's implicit ctor in compatibility module.
1208         * sigc++/adaptors/lambda/operator.h.m4: Change some
1209         lambda action names to match action names in std.
1210
1211         API addition:
1212         * sigc++/adaptors/retype.h.m4: New file adding
1213         adaptor retype.
1214         * sigc++/Makefile.am: Build and distribute new file.
1215         * tests/test_retype.cc: New file testing adaptor retype.
1216         * MSVC_Net2003/tests/test_retype/test_reytype.vcproj,
1217         tests/Makefile.am: Build and distribute new test case.
1218
1219 2003-11-01  Martin Schulze  <teebaum@cvs.gnome.org>
1220
1221         * MSVC_Net2003: New directory containing project
1222         files for Visual Studio .Net 2003.
1223         Credits to Roel Vanhout <roel@riks.nl>!
1224
1225 2003-11-01  Martin Schulze  <teebaum@cvs.gnome.org>
1226
1227         * sigc++/retype.h.m4: Use LIBSIGC_TEMPLATE_PREFIX
1228         in explicit function template instantiations.
1229         * sigc++/type_traits.h: Add template specialization
1230         for arrays (T_type[N]) to disable non-working member
1231         type_trait<T_type[N]>::instance().
1232         * sigc++/visit_each.h: Remove more disturbing
1233         limit_derived_target<>::operator() overloads.
1234         (Should have noticed earlier that they are unnecessary.)
1235         * sigc++/adaptors/deduce_result_type.h.m4,
1236         sigc++/adaptors/lambda/operator.h.m4,
1237         sigc++/functors/functor_trait.h.m4,
1238         tests/test_[bind,compose,exception_catch,hide,lambda].cc:
1239         Completely removed support for typeof(). We don't need
1240         it any more and it is completely non-standard!
1241
1242 2003-10-30  Cedric Gustin <cedric.gustin@swing.be>
1243  
1244         * configure.ac: Added test of win32 platform. Commented
1245         out AM_DISABLE_SHARED (DLLs are shared libraries).
1246         * sigc++/Makefile.am: added a few LDFLAGS for win32
1247         DLLs.
1248
1249 2003-10-30  Martin Schulze  <teebaum@cvs.gnome.org>
1250
1251         * sigc++/signal.h.m4: Add SigC::Signal#<>::slot().
1252         * sigc++/slot.h.m4: Comment out make_slot() work-around.
1253         * sigc++/adaptors/bind.h.m4: Remove unnecessary brackets
1254         in template argument lists. They are confusing MSVC.
1255         * sigc++/adaptors/*.h.m4, sigc++/adaptors/lambda/*.h.m4:
1256         Use LIBSIGC_TEMPLATE_PREFIX in explicit function
1257         template instantiations.
1258         * sigc++/tests/test_*.cc:
1259         - Include <string> where std::string is used.
1260         - Use double instead of float.
1261
1262 2003-10-27  Martin Schulze  <teebaum@cvs.gnome.org>
1263
1264         * sigc++/retype.h.m4: Cleanup.
1265         * TODO: Bring it up to date.
1266
1267 1.9.11:
1268
1269 2003-10-26  Martin Schulze  <teebaum@cvs.gnome.org>
1270
1271         * configure.ac: Bump version number to 1.9.11.
1272         * NEWS: Add ChangeLog summary for version 1.9.11.
1273
1274 2003-10-26  Martin Schulze  <teebaum@cvs.gnome.org>
1275
1276         Compatiblity module:
1277         * sigc++/signal.h.m4: Move definition of compatiblity
1278         classes SigC::SignalN to here.
1279         * sigc++/connection.h:
1280         - Add connection::connected().
1281         - Add compatibility typedef SigC::Connection.
1282         * sigc++/bind.h, sigc++/bind_return.h,
1283         sigc++/class_slot.h.m4, sigc++/hide.h.m4,
1284         sigc++/method_slot.h.m4, sigc++/object.h,
1285         sigc++/object_slot.h.m4, sigc++/retype.h.m4,
1286         sigc++/retype_return.h sigc++/slot.h.m4,
1287         sigc++/compatibility.h:
1288         New files to complete compatibility module.
1289         Split content of compatibility.h.m4 among the new files.
1290         * sigc++/compatibility.h.m4: Removed.
1291         * Makefile.am: Build and distribute new files.
1292         * tests/test_compatibility.cc: Test new stuff.
1293
1294         Fixes:
1295         * sigc++/functors/slot.h.m4: Fix copy constructor and
1296         operator=() of slot template.
1297         * sigc++/adaptors/bind.h.m4: Fix deduce_result_type
1298         template specializations. bind<0>() probably compiles
1299         with gcc-3.3, now.
1300
1301 2003-10-26  Martin Schulze  <teebaum@cvs.gnome.org>
1302
1303         Fixes:
1304         * sigc++/functors/slot.{cc,h.m4}:
1305         - Fix notification process: don't defer detaching of a
1306         slot from all referred trackables during signal emission!
1307         - Size optimization: replace virtual functions from
1308         struct typed_slot_rep with function pointers in slot_rep
1309         (reduces size of a typical typed_slot_rep instantiation
1310         by 30% !!!).
1311         * tests/test_slot.cc: Test sigc::slot more thoroughly.
1312         * sigc++/functors/mem_fun.h.m4: Fix visit_each().
1313         * sigc++/adaptos/bind_return.h.m4: Add support for
1314         sigc::ref().
1315         * tests/test_bind_return.cc: Use sigc::ref().
1316         * sigc++/signal.h.m4: Avoid compiler warning about
1317         uninitialized variable r_ in emit().
1318         * sigc++/visit_each.h: Cleanup.
1319
1320         API additions:
1321         * sigc++/adpators/lambda/operators.h.m4: Add
1322         lambda actions sigc::{reinterpret,static,dynamic}_cast_
1323         to support explicit parameter conversion.
1324         * tests/test_lambda.cc: Test sigc::static_cast_.
1325         * sigc++/adaptors/retype_return.h.m4: New file adding
1326         adaptor retype_return (and hide_return).
1327         * sigc++/Makefile.am: Build and distribute new file.
1328         * tests/test_retype_return.cc: New file testing
1329         adaptor retype_return (and hide_return).
1330         * tests/Makefile.am: Build and distribute new test case.
1331
1332 2003-10-25  Martin Schulze  <teebaum@cvs.gnome.org>
1333
1334         * sigc++/visit_each.h: Remove disturbing
1335         limit_derived_target<>::operator() overloads.
1336         * sigc++/adaptors/bind.h.m4: Add support for sigc::ref().
1337         * tests/test_bind.cc: Test sigc::ref().
1338         * sigc++/adaptors/lambda/{operator,group,base}.h.m4:
1339         - Move support for sigc::ref() from lambda_core<> into
1340         lambda operator and lambda group creator functions.
1341         - Add missing visit_each() overload for lambda<> template.
1342         * tests/test_lambda.cc: Test auto-disconnection.
1343         TODO: Fix a strange bug that leads to "Bus error"
1344         during auto-disconnection.
1345
1346 1.9.10:
1347
1348 2003-10-23  Martin Schulze  <teebaum@cvs.gnome.org>
1349
1350         * configure.ac: Bump version number to 1.9.10.
1351         * NEWS: Add ChangeLog summary for version 1.9.10.
1352
1353 2003-10-23  Martin Schulze  <teebaum@cvs.gnome.org>
1354
1355         * sigc++/functors/{functor_trait,slot}.h.m4:
1356         Move definition of struct nil into functor_trait.h.
1357
1358 2003-10-23  Martin Schulze  <teebaum@cvs.gnome.org>
1359
1360         * configure.ac: Disable typeof() compiler checks.
1361         * sigc++/adaptors/bind.h.m4: Remove unnecessary
1362         deduce_result_type<> template specializations.
1363
1364 2003-10-20  Martin Schulze  <teebaum@cvs.gnome.org>
1365
1366         * sigc++/adaptors/compose.h.m4:
1367         Correct order of typedefs for good. (Patch from Jeff Franks.)
1368
1369 1.9.9:
1370
1371 2003-10-20  Martin Schulze  <teebaum@cvs.gnome.org>
1372
1373         * sigc++/connection.h: Add constructor that takes
1374         a sigc::slot_base& to support 3rd-party slot lists
1375         like they are used in glibmm/gtkmm.
1376         * sigc++/functors/slot.h.m4: Make sigc::slot::call_type public.
1377         (Fixes compile problems reported by Jeff Franks.)
1378         * sig++/type_traits.h: Don't use long long in
1379         sigc::is_base_and_derived.
1380         (Fixes compile problems reported by Jeff Franks.)
1381         * sigc++/adaptors/{bind,compose,hide,exception_catch}.h.m4:
1382         Correct order of typedefs. (Repoted by Jeff Franks.)
1383         * configure.ac: Bump version number to 1.9.9.
1384         * NEWS: Add ChangeLog summary for version 1.9.9.
1385
1386 1.9.8:
1387
1388 2003-10-19  Martin Schulze  <teebaum@cvs.gnome.org>
1389
1390         * sigc++/functors/slot.h.m4: Define doxygen group functors.
1391         * configure.ac: Bump version number to 1.9.8.
1392         * NEWS: Add ChangeLog summary for version 1.9.8.
1393
1394 2003-10-19  Martin Schulze  <teebaum@cvs.gnome.org>
1395
1396         * NEWS: Add announces of versions 1.9.6 and 1.9.7.
1397         * sigc++/compatibility.h.m4: New file. Defines namespace SigC.
1398         namespace SigC should be API compatible to libsigc++-1.2.
1399         * sigc++/Makefile.am: Build compatibility.h.
1400         * tests/test_compatibility.cc, tests/Makefile.am:
1401         Add test case for compatibility module.
1402         * docs/index.html: Change group names.
1403         * sigc++/sigc++.h: Include connection.h.
1404         * sigc++/connection.{cc,h}:
1405         - Rename dependency to destroy_notify_callback.
1406         - Change parameter name in set_slot() from d to data.
1407         - Fix operator=(): Add "return *this;"
1408         - Get rid of namespace functor.
1409         - Corrections in documentation.
1410         * sigc++/signal.{cc,h.m4}:
1411         - Add reference counter to signal_impl. Replaces "bool destroy_".
1412         - Move signal_base, slot_iterator[_buf], slot_list out of
1413         namespace internal. They are part of the public API.
1414         - Add convenience function signal#::make_slot().
1415         - Get rid of namespace functor.
1416         - Corrections in documentation.
1417         * sigc++/trackable.{cc,h}:
1418         - Rename dependency to destroy_notify_callback.
1419         - Rename trackable::clear() to trackable::notify_callbacks().
1420         - Corrections in documentation.
1421         * sigc++/type_traits.h: Add documentation.
1422         * sigc++/visit_each.h:
1423         - Get rid of namespace functor.
1424         - Add documentation.
1425         * sigc++/adaptors[/lambda]/*: Get rid of namespace functor.
1426         * sigc++/functors/{functor_trait.h,ptr_fun.h.m4,mem_fun.h.m4}:
1427         - Get rid of namespace functor.
1428         - Corrections in documentation / add documentation.
1429         * sigc++/functors/slot.{cc,h.m4}:
1430         - Move slot_base out of namespace internal. It's public API.
1431         - Get rid of one-letter-parameter-names.
1432         - Get rid of namespace functor.
1433         - Corrections in documentation.
1434         * tests/*.cc: Get rid of "using namespace ...".
1435
1436 2003-09-10  Martin Schulze  <teebaum@cvs.gnome.org>
1437
1438         * sigc++/adaptors/lambda/{base,operators}.h.m4:
1439         Add subscript ([]) and assign (=) operator. I think there are now
1440         enough operators available to make any future power user happy.
1441         The only one missing is the comma operator and if we added it
1442         the logical consequence would be to also add if(), switch(), do(),
1443         etc. lambda expressions which are really out of place in libsigc++.
1444         * sigc++/type_traits.h: Fix is_base_and_derived<> for const types.
1445         * tests/test_lambda.cc: Test new operators.
1446
1447 1.9.7:
1448
1449 2003-09-05  Martin Schulze  <teebaum@cvs.gnome.org>
1450
1451         * configure.ac: Bump version number to 1.9.7.
1452
1453 2003-09-03  Martin Schulze  <teebaum@cvs.gnome.org>
1454
1455         * sigc++/adaptors/lambda/operator.h.m4:
1456         - Restructure so that the size of the generated source file stays
1457         reasonable for 34 operators: There are only two lambda templates
1458         lambda_operator and lambda_operator_unary. The action is an additional
1459         template parameter. A small template lambda_action[_unary] is specialized
1460         for all actions.
1461         - Add most operators that boost::lambda supports. Missing operators are
1462         "=", "[]", "," and support for pointer arithmetic. I don't know if it's
1463         worth adding these. In libsigc++, the purpose of lambda operators is to
1464         provide some extra functionality for the group adaptor.
1465         * tests/test_lambda.cc:
1466         Test pre-increment, address and dereference operator.
1467
1468 2003-08-31  Martin Schulze  <teebaum@cvs.gnome.org>
1469
1470         * sigc++/reference_wrapper.h, sigc++/type_traits.h, sigc++/Makefile.am:
1471         New file reference_wrapper.h provides ref() to specify that adaptors/lambdas
1472         should take a reference to the object passed into ref() instead of a copy.
1473         * tests/test_lambda.cc:
1474         - Test group() with mem_fun().
1475         - Use ref() where lambdas should store references to objects.
1476         - Test var() and constant().
1477         * sigc++/adaptors/lambda/base.h.m4:
1478         - Support ref() in return type deduction.
1479         - Add var() and constant() which create lambdas for usage with lambda operators.
1480         * sigc++/adaptors/lambda/operator.h.m4:
1481         - Fix return type deduction.
1482         - Remove operator{+,-,*,...} overloads added on 2003-08-29. ref() is way cleaner.
1483         * sigc++/adaptors/lambda/group.h.m4,
1484         sigc++/adaptors/bind.h.m4, sigc++/adaptors/compose.h.m4,
1485         sigc++/adaptors/exception_catch.h.m4, sigc++/adaptors/hide.h.m4:
1486         Fix return type deduction.
1487
1488 2003-08-29  Martin Schulze  <teebaum@cvs.gnome.org>
1489
1490         * tests/test_lambda.cc: Add more tests.
1491         * sigc++/adaptors/lambda/select.h.m4, sigc++/adaptors/lambda/lambda.cc.m4:
1492         Make _1, _2, ... constant.
1493         * sigc++/adaptors/lambda/operator.h.m4:
1494         Add operator{+,-,*,...} overloads to distinguish between const and non-const objects.
1495         Store references to non-const objects rather than copies.
1496         This allows expressions like e.g. std::cout << _1.
1497         * sigc++/adaptors/lambda/base.h.m4, sigc++/adaptors/lambda/group.h.m4:
1498         Remove void specializations. Functors returning void are tested and work fine.
1499
1500 2003-08-27  Martin Schulze  <teebaum@cvs.gnome.org>
1501
1502         * tests/test_callof.cc, tests/test_deduce_result_type.cc:
1503         Rename, correct and improve this test case.
1504         * tests/Makefile.am: Build and run test_deduce_result_type
1505         instead of test_callof.
1506
1507 2003-08-27  Martin Schulze  <teebaum@cvs.gnome.org>
1508
1509         * Update TODO.
1510
1511 2003-08-27  Martin Schulze  <teebaum@cvs.gnome.org>
1512
1513         * sigc++/adaptors/hide.h.m4: Remove usage of callof_ignore_arg<>.
1514         * sigc++/callof.h.m4, sigc++/adaptors/deduce_result_type.h.m4,
1515         sigc++/functors/functor_trait.h.m4:
1516         Remove the first and move deduce_result_type templates from
1517         functor_trait.h.m4 into new file deduce_result_type.h.m4.
1518         * sigc++/Makefile.am, sigc++/sigc++.h, sigc++/adaptors/adaptor_trait.h.m4:
1519         Build and include sigc++/adaptors/deduce_result_type.h instead of callof.h.
1520         * sigc++/functors/slot.h.m4: Document struct nil.
1521
1522 2003-08-24  Martin Schulze  <teebaum@cvs.gnome.org>
1523
1524         * sigc++/functors/functor_trait.h.m4: Simplify usage of convenience
1525         macro SIGC_FUNCTORS_HAVE_RESULT_TYPE:
1526         namespace sigc{ namespace functor{ SIGC_FUNCTORS_HAVE_RESULT_TYPE }}
1527
1528 2003-08-24  Martin Schulze  <teebaum@cvs.gnome.org>
1529
1530         * sigc++/functors/functor_trait.h,m4, sigc++/adaptors[/lambda]/*.h.m4:
1531         Merge adaptor return type deduction and typeof() into
1532         sigc::functor::deduce_result_type. Use it for all adaptors.
1533         * tests/test_compose.cc: Only test multi-type get-functor if
1534         typeof() if supported.
1535
1536 2003-08-24  Martin Schulze  <teebaum@cvs.gnome.org>
1537
1538         * sigc++/adaptors[/lambda]/*.h.m4:
1539         - Remove unnecessary void specializations. In fact, only the one
1540         for sigc::functor::exception_catch<> is needed and I don't really
1541         understand why. For the lambda stuff the void specializatoins are
1542         just commented out at the moment.
1543         - Make typeof() optional. Surprisingly, I got the lambda stuff working
1544         without typeof()! The test suite doesn't catch all cases yet, so maybe
1545         some thing are still not working.
1546         TODO: Implement configure check.
1547         * tests/test_bind.cc, tests/test_compose.cc tests/test_exception_catch.cc,
1548         tests/test_hide.cc, tests/test_lambda.cc:
1549         Only test multiple functor return types if typeof() is supported.
1550
1551 2003-08-06  Martin Schulze  <teebaum@cvs.gnome.org>
1552
1553         * sigc++/trackable.{cc,h}: Add function trackable::clear().
1554
1555 2003-06-24  Andreas Rottmann  <rottmann@users.sourceforge.net>
1556
1557         * TODO: Minor tweaks.
1558
1559 2003-06-23  Andreas Rottmann  <rottmann@users.sourceforge.net>
1560
1561         * docs/reference/Doxyfile.in: Use these variables.
1562         * docs/reference/Makefile.am (html/index.html): Provide doxygen 
1563         with SRCDIR and TOP_SRCDIR environment variables.
1564         
1565         * sigc++/functors/slot.h.m4: Make slot::call_type typedef public;
1566         this fixes a g++ 3.3 error in signal.h.
1567
1568         * sigc++/signal.h.m4: Make the signal::accumulated class public;
1569         this fixes a g++ 3.3 error in test_accumulated.cc.
1570
1571 2003-06-15  Martin Schulze  <teebaum@cvs.gnome.org>
1572
1573         * sigc++/functor/slot.h.m4: Correct typing error in docs.
1574         * sigc++/functor/ptr_fun.h.m4: Document the whole thing.
1575
1576 2003-05-31  Murray Cumming  <murrayc@usa.net>
1577
1578         * Reference documentation: Rearranged the groups to make it all
1579         a bit more like the libsigc++ 1.2 reference documentation.
1580         Corrected some spelling and grammar too.
1581         This needs a lot of work. The text is very hard to read and it's
1582         generally not appropriate for a user of the code who doesn't
1583         care about the internals. But it's not impossible - our examples
1584         should show us what we need to say in the documentation.
1585         We probably need some more groups for the extra stuff, like we do
1586         in libsigc++ 1.2.
1587
1588 2003-05-29  Martin Schulze  <teebaum@cvs.gnome.org>
1589
1590         * sigc++/signal.h.m4: Fix documentation.
1591         * sigc++/connection.h, sigc++/functor/slot.h.m4:
1592         Document the whole thing.
1593
1594 2003-05-29  Martin Schulze  <teebaum@cvs.gnome.org>
1595
1596         * sigc++/signal.h.m4:
1597         - Remove bogus operator() from unnumbered signal<> and
1598           signal<>::accumulated templates.
1599         - Document the whole thing.
1600
1601         * docs/index.html: Fix some links.
1602
1603 2003-04-06  Martin Schulze  <MHL.Schulze@t-online.de>
1604
1605         * TODO, configure.ac, Makefile.am, docs/*:
1606         Add Doxygen framework.
1607
1608 2003-04-06  Martin Schulze  <MHL.Schulze@t-online.de>
1609
1610         * sigc++/callof.h.m4, sigc++/adaptors/*, tests/test_callof.cc:
1611         Move sigc::callof<> to sigc::functor::internal::callof<>.
1612
1613         * sigc++/functors/mem_fun.h.m4, tests/test_mem_fun.cc:
1614         Add new types [bound_][const_]volatile_mem_functor, visit_each()
1615         and mem_fun() overloads for volatile qualifier.
1616         Add ctor overloads in bound_*mem_functor and mem_fun() overloads
1617         that take reference instead of pointer.
1618
1619 2003-03-26  Martin Schulze  <MHL.Schulze@t-online.de>
1620
1621         * Change "closure" to "slot" throughout sigc++2 (file names,
1622         class names, member variables, documentation, etc.).
1623
1624 2003-03-26  Martin Schulze  <MHL.Schulze@t-online.de>
1625
1626         * TODO: Rewrite to reflect recent changes as well as recent discussions.
1627
1628 2003-03-24  Martin Schulze  <MHL.Schulze@t-online.de>
1629
1630         * sigc++/adaptors/bind_return.h.m4: Make the adaptor's data member
1631         public so that visit_each() can access it.
1632
1633         * sigc++/adaptors/lambda/*.h.m4: More fixes. Add a note about
1634         malfunctioning typeof() (probably compiler bug in gcc-3.2).
1635
1636         * tests/*.cc: Test references. Fix compose equivalent in test_lambda.
1637
1638 2003-03-24  Martin Schulze  <MHL.Schulze@t-online.de>
1639
1640         * sigc++/Makefile.am, sigc++/functors/functor_trait.h[.m4],
1641         sigc++/adaptors/adaptor_trait.h.m4: Move detection of function
1642         and member method pointers' return types from adaptor_trait into
1643         functor_trait. (We'll use functor_trait rather than adaptor_trait for
1644         our lambda stuff.) functor_trait.h needs to be generated from .m4 now.
1645
1646         * sigc++/functors/functor_trait.h.m4: Add convenience macros:
1647         - SIGC_FUNCTORS_HAVE_RESULT_TYPE indicates that the existance of
1648         T_functor::result_type should be assumed for all unknown functors.
1649         - SIGC_FUNCTOR_TRAIT(T_functor, T_result) explicitly specifies the
1650         result type of a functor.
1651         ("typename functor_trait<T_functor>::result_type") is used to
1652         determine the return type of our adaptors' operator()() overloads.
1653
1654         * sigc++/adaptors/[lambda/]*.h.m4: Various fixes in visit_each() and
1655         operator()() overloads to make these operator()() overloads usable.
1656         Most of them were just commented out before. Some adaptor types also
1657         have void specializations, now.
1658
1659         * sigc++/adaptors/lambda/group.h.m4: Change syntax from
1660         "[some_functor] % grp([args])" to "group([some_functor], [args])"
1661         like we agreed on the ml some time ago.
1662
1663         * sigc++/tests/test_[all adaptors].cc: Test stuff that didn't work
1664         before.
1665
1666 2003-03-22  Murray Cumming  <murrayc@usa.net>
1667
1668         * Added pgk-config file, from a mystery person in bug #108857
1669
1670 2003-03-22  Martin Schulze  <MHL.Schulze@t-online.de>
1671
1672         * tests/test_bind.cc: Test and show how to use functor_trait
1673         for user defined or 3rd-party functors so that a
1674         bind<0>([functor],[arg1])() call with no arguments can return a value.
1675
1676 2003-03-20  Martin Schulze  <MHL.Schulze@t-online.de>
1677
1678         * sigc++/callof.h.m4: Add explanations. Comment in / create templates
1679         callof_safe[#]. Unfortunately they don't work for functors with overloaded
1680         operator() so we don't use it for now. At least everything is documented.
1681
1682         * sigc++/functors/functor_trait.h, sigc++/functors/*.h.m4: Add back
1683         functor_base compiler hint. We're using it now in adaptor_functor<>.
1684
1685         * sigc++/adaptors/{adaptor_trait,bind}.h.m4: Make operator() overloads
1686         with no arguments return the result of the functor invocation.
1687         Fix multiple bind<0>().
1688         * tests/test_bind.cc: Test the stuff that's working now.
1689
1690 2003-03-16  Murray Cumming  <murrayc@usa.net>
1691
1692         * Added sigc++/sigc++.h, like in libsigc++ 1.2
1693         * examples: Added member_method example, which uses a class method
1694         and which demonstrates disconnection.
1695
1696 1.9.6:
1697
1698 2003-03-11  Andreas Rottmann  <rottmann@users.sourceforge.net>
1699
1700         * sigc++/Makefile.am: Use substitution references instead of
1701         $(patsubst). Is shorter and fixes the strange-dirs-in-dist-tarball
1702         bug.
1703
1704 2003-03-09  Martin Schulze  <MHL.Schulze@t-online.de>
1705
1706         * sigc++/connection.h: Add block() capability.
1707
1708 2003-03-09  Martin Schulze  <MHL.Schulze@t-online.de>
1709
1710         * sigc++/signal.{cc,h.m4}: Add flag signal_impl::destroy_
1711         and function signal_impl::destroy(). Use them to defer
1712         the destruction of the signal_impl object during signal
1713         emission.
1714
1715         * tests/test_disconnect.cc: Add tests for the connection
1716         class and for deleting signals during emission.
1717
1718 2003-03-09  Martin Schulze  <MHL.Schulze@t-online.de>
1719
1720         * sigc++/connection.{cc,h}, sigc++/Makefile.am:
1721         - New files that add a connection class. Objects of this
1722           class are constructed from closure list iterators and can
1723           be used to disconnect the refered closure. As opposed to
1724           iterators they stay valid beyond the lifetime of the closure.
1725
1726 2003-03-09  Martin Schulze  <MHL.Schulze@t-online.de>
1727
1728         * sigc++/functors/closure.{cc,h.m4}, sigc++/signal.cc:
1729         - Rename closure_{base,rep}::[set_]dependency_ -> [set_]parent_.
1730         - Make closure_rep inherit trackable. This allows for
1731           connection objects that stay valid beyond the life time
1732           of the refered closure.
1733         - Make some one-line-functions inline again.
1734
1735 2003-03-08  Martin Schulze  <MHL.Schulze@t-online.de>
1736
1737         * sigc++/trackable.cc: BUGFIX in trackable_dep_list::clear()
1738
1739 2003-03-08  Andreas Rottmann  <rottmann@users.sourceforge.net>
1740
1741         * sigc++/Makefile.am: Rewritten so we can build lambda cleanly.
1742         * sigc++/Makefile.am_fragment: Removed.
1743
1744         * sigc++/functors/Makfile.am: Removed.
1745         * sigc++/adaptors/Makefile.am: Removed.
1746         * sigc++/adaptors/lambda/Makefile.am: Removed.
1747         * configure.ac (AC_OUTPUT): Remove the above Makefiles.
1748
1749         * tests/Makefile.am: Re-included lambda test.
1750         
1751 2003-03-07  Martin Schulze  <MHL.Schulze@t-online.de>
1752
1753         * sigc++/signal.{cc,h.m4}:
1754         - signal_emit#<>: New templates replacing signal#<>::caller.
1755           The purpose of these templates is implementing the emit
1756           function and optimizing signal emission for the case that
1757           no accumulator is used via template specializations.
1758         - default_accumulator<>: Removed. The default for T_accumulator
1759           in signal#<> now is nil. An example how to use accumulators
1760           is available in tests/test_accumulator.cc.
1761         - signal_{base,impl}: Move the implementation of signal_base's
1762           interface to signal_impl. An object of this class is
1763           dynamically allocated when first connecting a closure to
1764           the signal. This drastically reduces the size of empty signals
1765           and allows for future addition of a reference counter to make
1766           it safe to delete a signal during emission.
1767         - Directly work on closure_rep during signal emission. This
1768           seems to be quicker than using the closure templates.
1769         - Document the classes. Restructure the header file a bit.
1770
1771         * sigc++/functors/closure.h.m4: Make closure_base::rep_ data
1772         member public, so that signal emission can directly work on it.
1773
1774         * tests/test_size.cc: Add an entry for signal_impl.
1775
1776 2003-03-07  Martin Schulze  <MHL.Schulze@t-online.de>
1777
1778         * sigc++/functors/closure.{cc,h.m4}:
1779         - closure_base: BUGFIXES in ~closure_base() and operator=().
1780         - Mark some functions with the inline keyword. This seems to
1781           help gcc 3.2 to optimize signal emission and (dis)connection.
1782         - Document the classes. Restructure the header file a bit.
1783
1784 2003-03-07  Martin Schulze  <MHL.Schulze@t-online.de>
1785
1786         * sigc++/trackable.{cc,h}: Make trackable allocate a
1787         trackable_dep_list object dynamically when adding the first
1788         dependency. (This reduces the size of objects, that are not
1789         refered by a closure by 4 bytes (50%) and increases the size
1790         of objects that are refered by a closure by 4 bytes (50%)
1791         on a 32 bit architecture => This reduces total memory use
1792         when >50% of the trackables are not refered by a closure.)
1793         Document the classes.
1794
1795 2003-03-05  Martin Schulze  <MHL.Schulze@t-online.de>
1796
1797         * tests/Makefile.am, tests/test_size.cc, tests/test_accumulated.cc:
1798         Add two test cases. test_size is showing the size of  public and
1799         internal structures. (Which apart from empty signals are smaller
1800         than the sizes of the equivalent libsigc++-1.2 structures.)
1801         test_accumulated is a test for the template signal<>::accumulated<>
1802         at the same time showing the use of accumulators in libsigc++2.
1803
1804         * Offtopic: My note about binary sizes from 2003-02-10 is wrong.
1805         Stripped libsigc++2 test binaries are about 8-10k in size.
1806
1807 2003-03-05  Martin Schulze  <MHL.Schulze@t-online.de>
1808
1809         * sigc++/visit_each.h: BUGFIX in template specialization
1810         limit_derive_target<T_Target*,T_action>::with_type<false,T_type>:
1811         Add non-const overloads for static void execute_() avoiding
1812         compile time errors.
1813
1814 2003-02-16  Martin Schulze  <MHL.Schulze@t-online.de>
1815
1816         * tests/Makefile.am, tests/test_disconnect.cc:
1817         Add testcase with a mixed connection & disconnection sequence.
1818
1819 2003-02-16  Martin Schulze  <MHL.Schulze@t-online.de>
1820
1821         * sigc++/signal.cc: Bugfix in signal_base::insert():
1822         Set notification function in the newly created copy of
1823         slot_ rather than in slot_ itself.
1824
1825 2003-02-10  Martin Schulze  <MHL.Schulze@t-online.de>
1826
1827         * sigc++/signal.h.m4: Comment in typedefs for iterator types in
1828         the signal#<> class template. Make signal#<>::connect() return an
1829         iterator for convenience.
1830         (Note that the first change increases the binary size of
1831         tests/test_signal from 201k to 204k, the second change to 206k.)
1832
1833 2003-01-23  Murray Cumming  <murrayc@usa.net>
1834
1835         * sigc++/adaptors/lambda is disable temporarily (not built and
1836         not distributed) because it gets built before its parent
1837         directory, but #includes generated sources in the parent directory.
1838
1839 2003-01-22  Murray Cumming  <murrayc@usa.net>
1840
1841         * Added Andreas Rottman's example.
1842
1843 2003-01-22  Murray Cumming  <murrayc@usa.net>
1844
1845         * Applied Andreas Rottman's make dist fixes.
1846
1847 2003-01-14  Murray Cumming  <murrayc@usa.net>
1848
1849         * Added whitespace to make the code more readable.
1850