Merged with trunk R1705.
[ardour.git] / libs / sigc++2 / NEWS
1 *** libsigc++ 2.0:
2
3 libsigc++ implements a typesafe callback system for standard C++. It
4 allows you to define signals and to connect those signals to any
5 callback function, either global or a member function, regardless of
6 whether it is static or virtual.
7
8 libsigc++ is used by gtkmm to wrap the GTK+ signal system. It does not depend 
9 on GTK or gtkmm.
10
11 libsigc++ 2.0 uses modern C++ mechanisms to achieve a highly flexible,
12 yet typesafe callback system. It supports all features of libsigc++ 1.2
13 and improves upon it with a simpler and more powerful API.
14
15 This version of libsigc++ needs GNU g++ 3.2 or higher to compile.
16
17
18 *** ChangeLog summary:
19
20 2.0.6:
21
22 * Fixed a memory leak in sigc::slot.
23 * Fixed compilation for gcc-3.4.
24 * Fixed compilation for Intel C++ compiler (upgraded libtool).
25 * Fixed project files for MSVC .Net (Timothy M. Shead).
26 * Fixed segfaults when compiled with MSVC .Net 2003 (moved
27   all calls to new and delete into non-inline library code).
28 * In the compatibility module use correct bound_mem_functor
29   variants for const (volatile) methods when creating a slot.
30 * Minor documentation fix.
31 * Resolved bugs: #152327 #148744 #152323 #151404 #153143
32
33 2.0.5:
34
35 * Distribute pregenerated configuration header for MSVC .Net.
36
37 2.0.4:
38
39 * Fixed warnings and compiler errors in the test cases.
40 * Added a new test case (Murray Cumming).
41 * Fixed 'hello_world' example.
42 * Don't test optional features that fail with the Sun FORTE.
43 * Fixes for the Sun FORTE to compile out-of-the-box
44   (Damien Carbery, Murray Cumming, Martin Schulze).
45 * Fixes for MSVC to build a DLL out-of-the-box (James Lin).
46 * Improved compiler specific configuration during 'configure'.
47 * Added rmp description file libsigc++-2.0.spec (Eric Bourque).
48 * Minor documentation improvements (Murray Cumming).
49 * Resolved bugs: #147311 #147313 #147391 #144846 #145541
50
51 2.0.3:
52
53 * Fix segfault on emission of unconnected signal.
54 * Test emission of unconnected signals in the test case.
55 * Suppress compiler warning at dynamic_cast<>-test for good.
56   (Help from Christof Petig and Timothy M. Shead.)
57
58 2.0.2:
59
60 * Suppress compiler warning in compatibility module at
61   dynamic_cast<>-test (fix suggested by Timothy M. Shead).
62 * If a custom accumulator is specified invoke it on signal
63   emission even if the signal's slot list is empty. (This used
64   to be the case in libsigc++-1.2 as pointed out by Timothy.)
65
66 2.0.1:
67
68 * Fixed serious bug in reference counting in sigc::signal_base::impl().
69 * Fixed SigC::Object-derivation check in SigC::slot() compatibility module.
70 * Fixed compilation on Apple gcc 3.3 (assisted by Spundun Bhatt).
71 * Fixed configure check for gcc 3.4 (Murray Cumming).
72
73 2.0.0:
74
75 * Implemented sigc::connection::blocked() (Murray Cumming).
76 * Added the scripts directory to the make dist target (Murray Cumming).
77 * Added more documentation (Martin Schulze).
78
79 1.9.16:
80
81 * Fixed compiler warning in sigc::connection (Alexander Nedotsukov, Murray Cumming).
82 * Fixed examples and made them part of the regular build (Murray Cumming).
83 * Added header sigc++config.h for configure time checks (Murray Cumming).
84 * Added configure time checks to determine the correct syntax
85   for explicit template method specializations (Murray Cumming).
86 * Removed code using partial specializations of overloaded template methods
87   from test cases. SUN Forte doesn't support this feature (Martin Schulze).
88 * Fixed compilation for gcc 3.4 (Murray Cumming).
89
90 1.9.15:
91
92 API additions:
93 * Add numbered slot# templates.
94 * Allow for methods of the object's base types to be passed into sigc::mem_fun().
95
96 Other fixes and cleanups:
97 * Make is_base_and_derived template compatible with the SUN Forte.
98 * Non-template code moved from .m4 macro source to .h/.cc files (Murray Cumming).
99 * Implementation moved to .cc files (Murray Cumming).
100 * More fixes for the SUN Forte. Make some more ctors explicit.
101
102 1.9.14:
103
104 * Added sigc::slot_base::operator bool() (Murray Cumming).
105 * Build docs directory by default (Murray Cumming).
106 * Fixed minor doxygen issues (Murray Cumming).
107 * Fixed compiler warning in signal.h (Murray Cumming).
108
109 1.9.13:
110
111 * Fixed passing references through sigc::slot (Reported by Jeff Franks).
112 * Enabled binding of objects to method slots through sigc::bind().
113 * Reworked sigc::bind() API: Made the template argument for the
114   parameter position zero-based and optional. Added overloads for
115   binding of up to 7 arguments at a time when no position is specified.
116 * Reworked sigc::hide() API: Made the template argument for the
117   parameter position zero-based and optional.
118 * Fixed compilation problems with MSVC .Net 2003 (Roel Vanhout).
119 * Distribute MSVC .Net 2003 project files in the tarballs.
120 * Improved and extended documentation.
121 * Minor cleanups.
122
123 1.9.12:
124
125 * Added adaptor retype(). With this final API addition all adaptors
126   are in place that are available in libsigc++-1.2.
127 * Added negation lambda operator. Use STL names for lambda actions.
128 * Remove formerly disabled support for gcc extension typeof().
129 * Added project files for MS Visual Studio .Net 2003. (Roel Vanhout)
130 * Make libsigc++2 compile with .Net 2003. (Roel Vanhout, Martin Schulze)
131 * Build shared version of libsigc++2 by default. (Cedric Gustin)
132 * Add support for win32 platform. (Cedric Gustin)
133 * Install .m4 files. (requested by Ron Steinke)
134 * Cleaned up functors.
135 * Restructured and completed documentation of the core library parts.
136
137 1.9.11:
138
139 API Additions and important bug fixes:
140 * Compatibility module completed. libsigc++-1.2 filenames are preserved.
141 * Fixed critical bug in auto-disconnection: don't defer detaching
142   of a slot from all referred trackables during signal emission.
143 * Reduced size of slots significantly.
144 * Fixed support for sigc::ref() in adaptors.
145 * Fixed sigc::visit_each(): only hit targets that are passed by
146   reference; pass bound members in bound_member_functor by reference.
147 * Add lambda actions sigc::{reinterpret,static,dynamic}_cast_
148   to support explicit parameter conversion.
149 * Add adaptors sigc::retype_return<>() and sigc::hide_return().
150
151 Minor fixes:
152 * Fixed return type deduction for bind<0>.
153   libsigc++-1.9.11 should compile with gcc-3.3.
154 * Fixed copy constructor and operator=() of slot template.
155 * Fixed a compiler warning in signal_emit#<>::emit().
156 * Improved test case.
157
158 1.9.10:
159
160 * Fix compiler issues with gcc-3.3.2 (patch from Jeff Franks).
161 * Remove compiler check for the gcc extension typeof().
162 * Simplify bind_functor templates.
163 * Move definition of struct nil into functor_trait.h.
164
165 1.9.9:
166
167 * Add a constructor to sigc::connection that takes a slot_base&
168   to support user defined slot lists like they are used in gtkmm.
169 * Fix compiler issues with gcc-3.3.2 (reported by Jeff Franks).
170
171 1.9.8:
172
173 * Add compatibility module that defines namespace SigC.
174   namespace SigC should be API compatible to libsigc++-1.2.
175   Currently only the core parts of the library are supported.
176   Adaptors are still to follow.
177 * Fix connection::operator=(). Include connection.h in sigc++.h.
178 * Get rid of namespace functor.
179 * Rename dependency to destroy_notify_callback.
180 * Rename trackable::clear() to trackable::notify_callbacks().
181 * Move slot_base, signal_base, slot_iterator[_buf], slot_list
182   out of namespace internal. They are public API.
183 * Add reference counter to signal_impl enabling signals
184   to share the underlying information.
185 * Add convenience function signal#::make_slot().
186 * Get rid of one-letter-parameter-names.
187 * Get rid of "using namespace ..." in the test cases.
188 * Add lambda operators subscript ([]) and assign (=).
189 * Fix is_base_and_derived<> for const types.
190 * New and updated documentation.
191 * Add previous announces to file NEWS.
192
193 1.9.7:
194
195 * Added sigc++/sigc++.h. (Murray Cumming)
196 * Added member_method example. (Murray Cumming)
197 * Renamed closure to slot.
198 * Fixed issues with gcc-3.3. (Adreas Rottmann)
199 * Removed unnecessary void specializations.
200 * Made adaptors' operator()() (overload with no arguments) return a value.
201 * Made visit_each() support adaptors.
202 * Overhauled return type deduction to make it work without typeof().
203 * Added convinience macros SIGC_FUNCTORS_HAVE_RESULT_TYPE and 
204 SIGC_FUNCTOR_TRAIT(T_functor, T_result) to make return type deduction system 
205 support 3rd-party funtors.
206 * Changed syntax of group adaptor from "[functor] % grp([lambdas])" to "group
207 ([functor], [lambdas])".
208 * Made many fixes to lambda functionality.
209 * Added var() and constant() lambda creators.
210 * Added many lambda operators.
211 * Added ref() which creates a reference wrapper to enable storage of 
212 references in bind and group adaptors.
213 * Expanded test suite.
214 * Added documentation. (Corrections by Murray Cumming)
215
216 1.9.6:
217
218 * First public release of the unstable 2.0 generation.
219   libsigc++ 2.0 uses modern C++ mechanisms to achieve a highly
220   flexible, yet typesafe callback system. It supports all features of
221   libsigc++ 1.2 and improves upon it by:
222   - No need to specify the number of arguments in signal definitions.
223   - Connection of any compatible (=implicitly convertable) functor
224    to a signal.
225   - Implicit type conversions of parameters during signal emission.
226   - Lambda adaptor for complete restructuring of functor parameter
227    lists in one line (subject to changes).
228   - Signal has a fully featured stl style list interface.
229   - A convinient accumulator API (replacing the old marshaller API).
230   - Removal of unnecessary memory management functionality.
231   - Lightweight class "trackable" for use as base class of your
232    class hierarchy replaces class "Object".