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.
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.
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.
21 - Use doxygen-extra.css from the mm-common package.
22 Requires mm-common 0.9.7 when configured to use maintainer-mode.
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<>.
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
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'.
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
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.
63 - Enable C++11 lambda expressions with MS Visual Studio 2012 and later
64 (Ryan Beasley) Bug #733752
66 (Kjell Ahlstedt) Bug #724496 (Ryan Beasley)
70 * signal_base: Add blocked(), block(), unblock().
71 (Kjell Ahlstedt) Bug #153780
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
84 * Fix 'make check' with gcc 4.7.
86 * Enable test_lambda in 'make check'.
87 (Kjell Ahlstedt) Bug #669128.
92 * slot_rep: Avoid access to deleted object in notify(),
94 (Kjell Ahlstedt ) Bug #564005 (Alexander Shaduri)
95 * Mention visit_each() in the documentation of sigc::adapts.
100 * trackable: Avoid calling the same callback function twice, fixing some
102 (Kjell Ahlstedt) Bug #589202
103 * Minor documentation corrections.
105 * Fix the build with GCC 4.6
107 * Windows build fixes for MSVC++ .Net 2005 and 2010
112 Nothing interesting. Just a small change for library.gnome.org.
117 - Added main page text with doxygen.
118 (David King, Murray Cumming)
119 - Fix the functors Doxygen group.
121 - Tutorial: Removed outdated marshallers section that had no working example.
122 (Murray Cumming) Bug #417924 (Michael Ekstrand)
126 * Slight documentation changes.
127 (Murray Cumming) Bug #614741 (Armin Burgmeier)
131 * Accumulators: Allow return types that are different to the signal's.
134 - Disable collaboration graphs in documentation
135 - Use non-blurry font for graph labels.
137 - sigc::hide() correction: It always only hides one signal argument.
139 * Fix the MSVC++ build.
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)
154 * Reenable the per-class hierarchy graphs in the reference documentation.
156 * Drop the custom HTML header and footer, and use the shared doxygen.css
157 file from mm-common. (Daniel Elstner)
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)
170 - Added project files (and property sheets) for
171 MSVC++ 2005 and 2008.
173 - Removed unnecessary dependency on afxrefs.h, so it builds
174 with MSVC++ Express editions.
179 * Added an include of functors/slot.h that was mistakenly removed
180 during the 2.1 series.
181 (Deng Xiyue) Bug #521418.
185 * Really fix the build with Sun CC.
186 (Elaine Xiong. Bug #302098)
190 * Build fixes when using gcc 4.3 pre-releases.
191 (Ryan Hill, Vladimir Marek)
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).
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
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().
215 * slot::disconnect(): Make this work.
216 sigc::connection::disconnect() already worked.
217 (James Lin, Murray Cumming)
218 * visit_each compilation problem fixed.
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++.
229 * g++ 3.2 (and Mac OS X g++ 3.3) build fix.
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.
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.
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.
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.
265 This might affect non-g++ compilers, so do tell us about
270 * Build fixes for SUN Forte, Tru64
271 (Murray Cumming), and MSVC++ (Cedric Gustin).
275 * tests: Include <new> to avoid unresolved symbols on Tru64.
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.
281 * Performance improvement in a corner case.
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.
290 * sigc::var() is now documented. (Roger Ferrer Ibáñez)
294 * Maybe avoid (incorrect) warning with g++ 3.3.5.
296 * Fix namespace ambiguity when using multiple
297 major versions of libsigc++. (Liza Klerck)
301 * Now builds with the following compilers, in addition to
302 the existing GNU g++, SUN Forte CC 5.5, MSVC++ .Net 2003,
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.
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
333 * Distribute pregenerated configuration header for MSVC .Net.
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
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.)
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.)
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).
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).
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).
391 * Add numbered slot# templates.
392 * Allow for methods of the object's base types to be passed into sigc::mem_fun().
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.
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).
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.
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.
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().
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.
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.
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).
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.
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)
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
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".