Imported Upstream version 2.4.1
[platform/upstream/libsigc++.git] / NEWS
1 2.4.1 (stable):
2
3 * A slot's functor is destroyed when an empty slot is assigned to the slot.
4   (Kjell Ahlstedt) Bug #738602 (James Lin)
5 * test_disconnect_during_emit tests that the slot is really disconnected
6   during signal emission.
7   (Kjell Ahlstedt)
8
9 2.4.0 (stable):
10
11 Note: API/ABI is the same as in release 2.3.2. Compared to stable
12 releases 2.2.x, the API has been broken regarding visit_each() functions.
13 See the NEWS entry for libsigc++ 2.3.2.
14
15 * Fix the test_lambda test case for MS Visual C++ 2013 and other
16   C++11-compliant compilers.
17   (Kjell Ahlstedt) Bug #734368 (Ryan Beasley)
18 * Add a missing #include in limit_reference.h.
19   (Kjell Ahlstedt)
20 * Documentation:
21   - Use doxygen-extra.css from the mm-common package.
22     Requires mm-common 0.9.7 when configured to use maintainer-mode.
23     (Kjell Ahlstedt)
24
25 2.3.2 (unstable):
26
27 Note: The implementation of bug #724496 breaks API for some users,
28 but it does not break ABI.
29 Only users who have added their own visit_each() overloads are affected by
30 the API break. Their programs will still compile, but there will be run-time
31 errors, if they rely on auto-disconnection of slots.
32 Updated instructions for users who implement their own adaptors are found
33 in the description of sigc::adapts<>. 
34
35 * Replace visit_each() overloads by struct visitor<>.
36   Add the test_visit_each test case.
37   (Ryan Beasley, Kjell Ahlstedt) Bug #724496
38 * signal_impl::notify(): Don't delete signal_impl during erase().
39   (Kjell Ahlstedt) Bug #564005 (Alexander Shaduri)
40 * Fix 'make check' with clang++ 3.4 and --enable-warnings=fatal
41   (Kjell Ahlstedt) Bug #724496 (Ryan Beasley)
42 * Fix test_cpp11_lambda for gcc 4.8
43   (Kjell Ahlstedt)
44 * Speed up disconnection of slots.
45   (Kjell Ahlstedt) Bug #167714 (Neal E. Coombes)
46 * Auto-generate the ChangeLog from the git log for 'make dist'.
47   (José Alburquerque)
48 * Don't use __file__ in the FIREWALL m4 macro.
49   (Kjell Ahlstedt) Bug #699168 (John Ralls)
50 * Add the track_obj() adaptor and test_track_obj test case.
51   Deprecate libsigc++ lambdas, sigc::group() and sigc::var().
52   Use C++11 lambda expressions instead.
53   (Kjell Ahlstedt) Bug #672555
54 * Documentation:
55   - Emphasize that signals are reference counted.
56     (Kjell Ahlstedt) Bug #611941 (Jonathon Jongsma)
57   - Mention std::function<> and std::bind() where appropriate.
58     (Kjell Ahlstedt, Chris Vine)
59   - Use DOXYGEN_SHOULD_SKIP_THIS consistently to exclude internal
60     functions from the reference documentation.
61     (Kjell Ahlstedt)
62 * Windows:
63   - Enable C++11 lambda expressions with MS Visual Studio 2012 and later
64     (Ryan Beasley) Bug #733752
65   - Update MSVC_Net2010
66     (Kjell Ahlstedt) Bug #724496 (Ryan Beasley)
67
68 2.3.1 (unstable):
69
70 * signal_base: Add blocked(), block(), unblock().
71   (Kjell Ahlstedt) Bug #153780
72
73 2.2.11 (stable):
74
75 * Fix comma operator in libsigc++ lambda expressions.
76   Andris Pavenis) Bug #342911
77 * Added SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE.
78   This allows most uses of libsigc++'s lambda expressions to be 
79   replaced by standard C++11 lambda expressions.
80   (Kjell Ahlstedt) Bug #672555.
81   Thanks to Chow Loong Jin, who posted similar code on libsigc-list.
82 * Use std::size_t and std::ptrdiff_t instead
83   (Kjell Ahlstedt)
84 * Fix 'make check' with gcc 4.7.
85   (Kjell Ahlstedt)
86 * Enable test_lambda in 'make check'.
87   (Kjell Ahlstedt) Bug #669128.
88
89
90 2.2.10:
91
92 * slot_rep: Avoid access to deleted object in notify(),
93         and test case.
94         (Kjell Ahlstedt ) Bug #564005 (Alexander Shaduri)
95 * Mention visit_each() in the documentation of sigc::adapts.
96   (Thomas Rydzynski)
97         
98 2.2.9:
99
100 * trackable: Avoid calling the same callback function twice, fixing some
101         memory corruption.
102         (Kjell Ahlstedt) Bug #589202
103 * Minor documentation corrections.
104   (David King)
105 * Fix the build with GCC 4.6
106         (Kalev Lember)
107 * Windows build fixes for MSVC++ .Net 2005 and 2010
108   (Armin Burgmeier)
109
110 2.2.8:
111
112 Nothing interesting. Just a small change for library.gnome.org.
113
114 2.2.7:
115
116 * Documentation:
117   - Added main page text with doxygen.
118   (David King, Murray Cumming)
119   - Fix the functors Doxygen group.
120   (David King)
121   - Tutorial: Removed outdated marshallers section that had no working example.
122   (Murray Cumming) Bug #417924 (Michael Ekstrand)
123
124 2.2.6:
125
126 * Slight documentation changes.
127   (Murray Cumming) Bug #614741 (Armin Burgmeier)
128
129 2.2.5:
130
131 * Accumulators: Allow return types that are different to the signal's.
132   (Krzysztof Kosiński)
133 * Documentation:
134   - Disable collaboration graphs in documentation
135   - Use non-blurry font for graph labels.
136   (Daniel Elstner)
137   - sigc::hide() correction: It always only hides one signal argument.
138   (Michael Hasselmann)
139 * Fix the MSVC++ build.
140   (Armin Burgmeier)
141
142 2.2.4.2 (stable):
143
144 * Namespace sigc is now documented, in order to make large chunks of the
145   reference reappear.  (Daniel Elstner)
146 * The shipped reference documentation has been regenerated using Doxygen
147   1.6.1, so that the document type is now XHTML 1.0.  (Daniel Elstner)
148 * The shipped Devhelp file has been generated with a newer version of the
149   XSLT script in mm-common, so that documentation groups no longer appear
150   as namespace prefixes in the keyword list.  (Daniel Elstner)
151
152 2.2.4.1 (stable):
153
154 * Reenable the per-class hierarchy graphs in the reference documentation.
155   (Daniel Elstner)
156 * Drop the custom HTML header and footer, and use the shared doxygen.css
157   file from mm-common. (Daniel Elstner)
158
159 2.2.4 (stable):
160
161 * New build system based on mm-common. The mm-common module is now
162   required for building from the git repository, but not for builds
163   of release archives. (Daniel Elstner)
164 * The public reference documentation is now hosted on library.gnome.org.
165   (Frédéric Péters, Daniel Elstner)
166
167 2.2.3 (stable):
168
169 * Windows:
170   - Added project files (and property sheets) for
171   MSVC++ 2005 and 2008.
172   (Armin Burgmeier)
173   - Removed unnecessary dependency on afxrefs.h, so it builds
174   with MSVC++ Express editions.
175   (Cedric Gustin)
176
177 2.2.2 (stable):
178
179 * Added an include of functors/slot.h that was mistakenly removed
180   during the 2.1 series.
181   (Deng Xiyue) Bug #521418.
182
183 2.2.1 (stable):
184
185 * Really fix the build with Sun CC.
186   (Elaine Xiong. Bug #302098)
187
188 2.2.0 (stable):
189
190 * Build fixes when using gcc 4.3 pre-releases.
191   (Ryan Hill, Vladimir Marek)
192
193 2.1.1 (unstable):
194
195 WARNING: This is an unstable release and should not yet be
196 packaged by distributions unless libsigc++ 2.0.x does not
197 build for some reason (Please report such bugs).
198
199 * Removed the SigC:: namespace and other compatibility API,
200   to fix the build with some versions of some compilers,
201   such as the SUN Forte C++ CC compiler.
202   See bug #302098, for instance
203   (Murray Cumming)
204 * sigc::signal<>:
205   - Added Added typedefs for
206   value_type, reference, and pointer, so that these
207   iterators are more like standard C++ iterators, so they can
208   be used with standard C++ algorithms.
209   (Michael Elkstrand) (Bug #417926).
210   - Added emit_reverse().
211   (John Profic)
212
213 2.0.17:
214
215 * slot::disconnect(): Make this work.
216   sigc::connection::disconnect() already worked.
217   (James Lin, Murray Cumming)
218 * visit_each compilation problem fixed.
219   (Philipp Berndt)
220
221 2.0.16:
222
223 * Fixed build for SUN Forte C++ 5.5
224 * Fixed build for MSVC++ 7.1
225 * Fixed crash when using --no-inline with g++.
226
227 2.0.15:
228
229 * g++ 3.2 (and Mac OS X g++ 3.3) build fix.
230   (Paul Pogonyshev)
231 * Compose: Fix slot lifetime regression introduced in
232   2.0.9. (Philip Langdale)
233 * tests: Small ISO C++ correctness fix (Marek Rouchal)
234 * Don't specify unused function parameter names.
235   (Andris Pavenis)
236
237 2.0.14:
238
239 * SUN Forte 5.7 build fix for ambiguity when using
240   inner template class. However, you still need the
241   patch in bug #302098 to finish the build.
242
243 2.0.13:
244
245 * signal_emit::emit(): Ensure the correct order of
246   destruction of the member variables, to avoid a leak.
247   (Andreas Ames, bug #306249)
248 * Allow recursive signal emission again.
249   (Neal E. Coombes, bug #303896)
250 * SUN Forte CC 5.5 build fixes:
251   - test_compatibility minor fix.
252   - visit_each() template specializations:
253   Mention the bool I_derives_trackable template type,
254   (Friedemann Kleint, bug #305647)
255  - Check for the non-standard SUN reverse_iterator,
256   and use alternative code if necessary.
257   (Murray Cumming)
258
259 2.0.12:
260
261 * Fixes crashes when using virtual inheritance, particularly
262   with bound by-reference parameters, caused by casting
263   from derived to base when the derived destructor has run.
264   (Régis Duchesne)
265   This might affect non-g++ compilers, so do tell us about
266   any problems.
267
268 2.0.11:
269
270 * Build fixes for SUN Forte, Tru64
271   (Murray Cumming), and MSVC++ (Cedric Gustin).
272
273 2.0.10:
274
275 * tests: Include <new> to avoid unresolved symbols on Tru64.
276   (Tim Mooney)
277 * When signal handlers are connected made during an emit
278   of the same signal, prevent them from being called in the
279   same emit, to prevent infinite loops.
280   (Neal E. Coombes)
281 * Performance improvement in a corner case.
282   (Neal E. Coombes).
283
284 2.0.9:
285
286 * sigc::bind() now works with the AIX and Tru64 compilers.
287   See the comments in sigc++/visit_each.h: visit_each_type()
288   if you have compilation problems.
289   (Murray Cumming)
290 * sigc::var() is now documented. (Roger Ferrer Ibáñez)
291
292 2.0.8:
293
294 * Maybe avoid (incorrect) warning with g++ 3.3.5.
295   (Murray Cumming)
296 * Fix namespace ambiguity when using multiple
297   major versions of libsigc++. (Liza Klerck)
298
299 2.0.7:
300
301 * Now builds with the following compilers, in addition to
302 the existing GNU g++, SUN Forte CC 5.5, MSVC++ .Net 2003,
303 and Intel compilers:
304 - IBM AIX xlC v7
305 - Tru64 C++ V6.5-042
306 - IRIX MIPSpro 7.4.2m
307   (Older versions of all these compilers might also work.)
308   (Murray Cumming, www.thewrittenword.com)
309 * MSVC++ .Net 2003 build improvements.
310   (Cedric Gustin, Timothy M. Shead)
311 * Replace C-style casts with reinterpret_cast<> and
312   static_cast<>. (e97_far at e.kth.se).
313 * Documentation: Added manual, based on the manual in
314   libsigc++ 1.2, but updated for the new API.
315   (Murray Cumming)
316
317
318 2.0.6:
319
320 * Fixed a memory leak in sigc::slot.
321 * Fixed compilation for gcc-3.4.
322 * Fixed compilation for Intel C++ compiler (upgraded libtool).
323 * Fixed project files for MSVC .Net (Timothy M. Shead).
324 * Fixed segfaults when compiled with MSVC .Net 2003 (moved
325   all calls to new and delete into non-inline library code).
326 * In the compatibility module use correct bound_mem_functor
327   variants for const (volatile) methods when creating a slot.
328 * Minor documentation fix.
329 * Resolved bugs: #152327 #148744 #152323 #151404 #153143
330
331 2.0.5:
332
333 * Distribute pregenerated configuration header for MSVC .Net.
334
335 2.0.4:
336
337 * Fixed warnings and compiler errors in the test cases.
338 * Added a new test case (Murray Cumming).
339 * Fixed 'hello_world' example.
340 * Don't test optional features that fail with the Sun FORTE.
341 * Fixes for the Sun FORTE to compile out-of-the-box
342   (Damien Carbery, Murray Cumming, Martin Schulze).
343 * Fixes for MSVC to build a DLL out-of-the-box (James Lin).
344 * Improved compiler specific configuration during 'configure'.
345 * Added rmp description file libsigc++-2.0.spec (Eric Bourque).
346 * Minor documentation improvements (Murray Cumming).
347 * Resolved bugs: #147311 #147313 #147391 #144846 #145541
348
349 2.0.3:
350
351 * Fix segfault on emission of unconnected signal.
352 * Test emission of unconnected signals in the test case.
353 * Suppress compiler warning at dynamic_cast<>-test for good.
354   (Help from Christof Petig and Timothy M. Shead.)
355
356 2.0.2:
357
358 * Suppress compiler warning in compatibility module at
359   dynamic_cast<>-test (fix suggested by Timothy M. Shead).
360 * If a custom accumulator is specified invoke it on signal
361   emission even if the signal's slot list is empty. (This used
362   to be the case in libsigc++-1.2 as pointed out by Timothy.)
363
364 2.0.1:
365
366 * Fixed serious bug in reference counting in sigc::signal_base::impl().
367 * Fixed SigC::Object-derivation check in SigC::slot() compatibility module.
368 * Fixed compilation on Apple gcc 3.3 (assisted by Spundun Bhatt).
369 * Fixed configure check for gcc 3.4 (Murray Cumming).
370
371 2.0.0:
372
373 * Implemented sigc::connection::blocked() (Murray Cumming).
374 * Added the scripts directory to the make dist target (Murray Cumming).
375 * Added more documentation (Martin Schulze).
376
377 1.9.16:
378
379 * Fixed compiler warning in sigc::connection (Alexander Nedotsukov, Murray Cumming).
380 * Fixed examples and made them part of the regular build (Murray Cumming).
381 * Added header sigc++config.h for configure time checks (Murray Cumming).
382 * Added configure time checks to determine the correct syntax
383   for explicit template method specializations (Murray Cumming).
384 * Removed code using partial specializations of overloaded template methods
385   from test cases. SUN Forte doesn't support this feature (Martin Schulze).
386 * Fixed compilation for gcc 3.4 (Murray Cumming).
387
388 1.9.15:
389
390 API additions:
391 * Add numbered slot# templates.
392 * Allow for methods of the object's base types to be passed into sigc::mem_fun().
393
394 Other fixes and cleanups:
395 * Make is_base_and_derived template compatible with the SUN Forte.
396 * Non-template code moved from .m4 macro source to .h/.cc files (Murray Cumming).
397 * Implementation moved to .cc files (Murray Cumming).
398 * More fixes for the SUN Forte. Make some more ctors explicit.
399
400 1.9.14:
401
402 * Added sigc::slot_base::operator bool() (Murray Cumming).
403 * Build docs directory by default (Murray Cumming).
404 * Fixed minor doxygen issues (Murray Cumming).
405 * Fixed compiler warning in signal.h (Murray Cumming).
406
407 1.9.13:
408
409 * Fixed passing references through sigc::slot (Reported by Jeff Franks).
410 * Enabled binding of objects to method slots through sigc::bind().
411 * Reworked sigc::bind() API: Made the template argument for the
412   parameter position zero-based and optional. Added overloads for
413   binding of up to 7 arguments at a time when no position is specified.
414 * Reworked sigc::hide() API: Made the template argument for the
415   parameter position zero-based and optional.
416 * Fixed compilation problems with MSVC .Net 2003 (Roel Vanhout).
417 * Distribute MSVC .Net 2003 project files in the tarballs.
418 * Improved and extended documentation.
419 * Minor cleanups.
420
421 1.9.12:
422
423 * Added adaptor retype(). With this final API addition all adaptors
424   are in place that are available in libsigc++-1.2.
425 * Added negation lambda operator. Use STL names for lambda actions.
426 * Remove formerly disabled support for gcc extension typeof().
427 * Added project files for MS Visual Studio .Net 2003. (Roel Vanhout)
428 * Make libsigc++2 compile with .Net 2003. (Roel Vanhout, Martin Schulze)
429 * Build shared version of libsigc++2 by default. (Cedric Gustin)
430 * Add support for win32 platform. (Cedric Gustin)
431 * Install .m4 files. (requested by Ron Steinke)
432 * Cleaned up functors.
433 * Restructured and completed documentation of the core library parts.
434
435 1.9.11:
436
437 API Additions and important bug fixes:
438 * Compatibility module completed. libsigc++-1.2 filenames are preserved.
439 * Fixed critical bug in auto-disconnection: don't defer detaching
440   of a slot from all referred trackables during signal emission.
441 * Reduced size of slots significantly.
442 * Fixed support for sigc::ref() in adaptors.
443 * Fixed sigc::visit_each(): only hit targets that are passed by
444   reference; pass bound members in bound_member_functor by reference.
445 * Add lambda actions sigc::{reinterpret,static,dynamic}_cast_
446   to support explicit parameter conversion.
447 * Add adaptors sigc::retype_return<>() and sigc::hide_return().
448
449 Minor fixes:
450 * Fixed return type deduction for bind<0>.
451   libsigc++-1.9.11 should compile with gcc-3.3.
452 * Fixed copy constructor and operator=() of slot template.
453 * Fixed a compiler warning in signal_emit#<>::emit().
454 * Improved test case.
455
456 1.9.10:
457
458 * Fix compiler issues with gcc-3.3.2 (patch from Jeff Franks).
459 * Remove compiler check for the gcc extension typeof().
460 * Simplify bind_functor templates.
461 * Move definition of struct nil into functor_trait.h.
462
463 1.9.9:
464
465 * Add a constructor to sigc::connection that takes a slot_base&
466   to support user defined slot lists like they are used in gtkmm.
467 * Fix compiler issues with gcc-3.3.2 (reported by Jeff Franks).
468
469 1.9.8:
470
471 * Add compatibility module that defines namespace SigC.
472   namespace SigC should be API compatible to libsigc++-1.2.
473   Currently only the core parts of the library are supported.
474   Adaptors are still to follow.
475 * Fix connection::operator=(). Include connection.h in sigc++.h.
476 * Get rid of namespace functor.
477 * Rename dependency to destroy_notify_callback.
478 * Rename trackable::clear() to trackable::notify_callbacks().
479 * Move slot_base, signal_base, slot_iterator[_buf], slot_list
480   out of namespace internal. They are public API.
481 * Add reference counter to signal_impl enabling signals
482   to share the underlying information.
483 * Add convenience function signal#::make_slot().
484 * Get rid of one-letter-parameter-names.
485 * Get rid of "using namespace ..." in the test cases.
486 * Add lambda operators subscript ([]) and assign (=).
487 * Fix is_base_and_derived<> for const types.
488 * New and updated documentation.
489 * Add previous announces to file NEWS.
490
491 1.9.7:
492
493 * Added sigc++/sigc++.h. (Murray Cumming)
494 * Added member_method example. (Murray Cumming)
495 * Renamed closure to slot.
496 * Fixed issues with gcc-3.3. (Adreas Rottmann)
497 * Removed unnecessary void specializations.
498 * Made adaptors' operator()() (overload with no arguments) return a value.
499 * Made visit_each() support adaptors.
500 * Overhauled return type deduction to make it work without typeof().
501 * Added convinience macros SIGC_FUNCTORS_HAVE_RESULT_TYPE and
502 SIGC_FUNCTOR_TRAIT(T_functor, T_result) to make return type deduction system
503 support 3rd-party funtors.
504 * Changed syntax of group adaptor from "[functor] % grp([lambdas])" to "group
505 ([functor], [lambdas])".
506 * Made many fixes to lambda functionality.
507 * Added var() and constant() lambda creators.
508 * Added many lambda operators.
509 * Added ref() which creates a reference wrapper to enable storage of
510 references in bind and group adaptors.
511 * Expanded test suite.
512 * Added documentation. (Corrections by Murray Cumming)
513
514 1.9.6:
515
516 * First public release of the unstable 2.0 generation.
517   libsigc++ 2.0 uses modern C++ mechanisms to achieve a highly
518   flexible, yet typesafe callback system. It supports all features of
519   libsigc++ 1.2 and improves upon it by:
520   - No need to specify the number of arguments in signal definitions.
521   - Connection of any compatible (=implicitly convertable) functor
522    to a signal.
523   - Implicit type conversions of parameters during signal emission.
524   - Lambda adaptor for complete restructuring of functor parameter
525    lists in one line (subject to changes).
526   - Signal has a fully featured stl style list interface.
527   - A convinient accumulator API (replacing the old marshaller API).
528   - Removal of unnecessary memory management functionality.
529   - Lightweight class "trackable" for use as base class of your
530    class hierarchy replaces class "Object".