diff options
Diffstat (limited to 'libs/sigc++2/ChangeLog')
-rw-r--r-- | libs/sigc++2/ChangeLog | 1249 |
1 files changed, 1249 insertions, 0 deletions
diff --git a/libs/sigc++2/ChangeLog b/libs/sigc++2/ChangeLog new file mode 100644 index 0000000000..8e02aef058 --- /dev/null +++ b/libs/sigc++2/ChangeLog @@ -0,0 +1,1249 @@ +2004-10-12 Martin Schulze <mschulze@cvs.gnome.org> + + * MSVC_Net2003/*/*.vcproj, MSVC_Net2003/blank.cpp: Fix project files + to compile out-of-the-box and add dummy file so that .cc files get + recognized as c++ code files (patch from Timothy M. Shead). + +2004-10-10 Martin Schulze <mschulze@cvs.gnome.org> + + * sigc++/signal_base.{h,cc}, sigc++/functors/slot_base.{h,cc}, + sigc++/functors/macros/slot.h.m4: If SIGC_NEW_DELETE_IN_LIBRARY_ONLY + is defined, implement signal_base::operator new/delete and + slot_rep::operator new/delete (suggested by Timothy M. Shead). + Remove old work-around from 2004-10-02 since it didn't work. + +2004-10-07 Martin Schulze <mschulze@cvs.gnome.org> + + * configure.ac: Update for libtool 1.5a (with support for Intel C++). + * MSVC_Net2003/sigc++config.h: Remove bogus '#define' + (reported by Timothy M. Shead <tshead@k-3d.com>). + +2004-10-02 Martin Schulze <mschulze@cvs.gnome.org> + + * configure.ac: Bump version number to 2.0.6. + * NEWS: Add ChangeLog summary for version 2.0.6. + +2004-10-02 Martin Schulze <mschulze@cvs.gnome.org> + + * sigc++/functors/slot_base.{h,cc}, sigc++/functors/macros/slot.h.m4: + Rename (typed_)slot_rep::detach to (typed_)slot_rep::destroy. + Call the dtor of the functor stored in typed_slot_rep from destroy(). + A cleaner solution would be to add an additional "virtual" function + that calls 'delete' or a real virtual dtor. However, this would be + less efficient and might break the ABI. (Fixes #152323.) + +2004-10-02 Martin Schulze <mschulze@cvs.gnome.org> + + * sigc++config.h.in, MSVC_Net2003/sigc++config.h, + sigc++/signal_base.cc, sigc++/functors/slot_base.{h,cc}, + sigc++/functors/macros/slot.h.m4: Define and use new macro + SIGC_NEW_DELETE_IN_LIBRARY_ONLY to ABI-compatibly move + all calls to new and delete into non-inline library code. + +2004-09-26 Martin Schulze <mschulze@cvs.gnome.org> + + * sigc++/adaptors/lambda/macros/group.h.m4: Add a missing + template keyword in the definition of deduce_result_type::type + (hopefully fixes #152327). + +2004-09-26 Martin Schulze <mschulze@cvs.gnome.org> + + * sigc++/macros/object_slot.h.m4: Use correct bound_mem_functor + variants for const (volatile) methods (fixes #148744). + +2004-09-01 Martin Schulze <mschulze@cvs.gnome.org> + + * docs/index.html: Correct link to lambda module. + +2004-09-01 Martin Schulze <mschulze@cvs.gnome.org> + + * README: Update compatibility section. + +2.0.5: + +2004-09-01 Martin Schulze <mschulze@cvs.gnome.org> + + * MSVC_Net2003/Makefile.am: Add sigc++config.h to EXTRA_DIST. + * configure.ac: Bump version number to 2.0.5. + * NEWS: Add ChangeLog summary for version 2.0.5. + +2.0.4: + +2004-08-21 Martin Schulze <mschulze@cvs.gnome.org> + + * tests/test_lambda.cc: Use sigc::var("\n") instead of sigc::ref("\n"). + Comment out the affected lines, nevertheless. + Sun FORTE and Compaq C++ can handle neither sigc::ref("\n") nor + sigc::var("\n"). I see more chances fixing sigc::var("\n"). + * sigc++/adaptors/lambda/macros/base.h.m4: Add a comment about a + possible work around for sigc::var("\n") compiler problems. + * tests/test_compatibility.cc: Remove a 'const' keyword that prevents + the test case from compiling with the Sun FORTE. + * tests/test_trackable.cc: Remove a 'virtual' keyword and an unused + variable to avoid compiler warnings. + * NEWS: Add ChangeLog summary for version 2.0.4. + +2004-08-03 Martin Schulze <mschulze@cvs.gnome.org> + + * scripts/cxx.m4, sigc++config.h.in, configure.ac, + sigc++/adaptors/lambda/macros/operator.h.m4, tests/test_lambda.cc: + Rollback change from 2004-07-15: configure check + SIGC_OPERATOR_OVERLOAD_AMBIGUITY is not needed - the overload + ambiguity doesn't occur if the lambda operators take all arguments + as const reference. + * configure.ac: Bump version number to 2.0.4. + +2004-08-03 James Lin <slimjimmy@mail.com> + + * Added SIGC_API qualifier to all externally-visible non-template + classes/structs. + * Added #include <sigc++config.h> to the files that use SIGC_API. + * Added empty SIGC_API definition to sigc++config.h.in for non-MSVC + compilers. I'm not sure if this is the right place to put this + (probably not). + * Added MSVC-specific sigc++config.h to the MSVC project directory. + (The comment in it probably should be edited.) + * Changed MSVC project settings to output a multi-threaded DLL, set + the include paths to work (hopefully) out-of-the-box. Disabled + precompiled headers, since they just complicate things and + shouldn't be necessary for such a relatively project. + +2004-08-01 Martin Schulze <mschulze@cvs.gnome.org> + + * sigc++/type_traits.h: Remove type_trait<>::instance() + (was unimplemented and unused; caused problems with the MSVC). + +2004-07-23 Martin Schulze <mschulze@cvs.gnome.org> + + * Makefile.am: Fix typo concerning distribution of libsigc++-2.0.spec. + * AUTHORS: Mention our contributors for platforms Sun FORTE and Intel C++. + +2004-07-15 Martin Schulze <mschulze@cvs.gnome.org> + + * *.h.m4: Don't call operator()() in sun_forte_workaround(); rather copy + operator()(). Calling operator()() makes a copy of the arguments causing + wrong results if an argument type is a reference. Hopefully fixes #147311. + +2004-07-15 Martin Schulze <mschulze@cvs.gnome.org> + + * tests/test_lambda.cc: Break "std::cout << [expr] << a << std::endl;" + into "std::cout << [expr]; std::cout << a << std::endl;". + I hope this fixes #147313 where the right values for "[expr]" but wrong + values for "a" were written to std::cout for some compiler with optimizations + turned off. + +2004-07-15 Martin Schulze <mschulze@cvs.gnome.org> + + * sigc++/adaptors/lambda/macros/operator.h.m4: Correct return type deduction + of lambda expressions in lambda_operator*::operator()(). Might be related to + bug #147313. + * sigc++/adaptors/lambda/macros/group.h.m4: Use m4 macro _P_(). + +2004-07-15 Martin Schulze <mschulze@cvs.gnome.org> + + * scripts/cxx.m4, sigc++config.h.in, configure.ac, + sigc++/adaptors/lambda/macros/operator.h.m4, tests/test_lambda.cc: + Add configure check SIGC_OPERATOR_OVERLOAD_AMBIGUITY for a SUN FORTE + compiler problem (bug #147391). Use it to decide whether the lambda + action operators may be overloaded (not doing so restricts the API slightly). + * sigc++/adaptors/lambda/macros/operator.h.m4: Add some doxygen comments + and remove attic code. + * sigc++/adaptors/lambda/macros/base.h.m4: + Add templates unwrap_lambda_type and unwrap_lambda_value() to support + the non-overloaded lambda action operators. Also add some doxygen comments + and remove attic code. + * sigc++/adaptors/lambda/macros/group.h.m4: Fix a bug that resulted in + gargabe values being passed on to the functor contained in the group adaptor + (partly fixes #147313). + +2004-07-11 Martin Schulze <mschulze@cvs.gnome.org> + + * scripts/cxx.m4, sigc++config.h.in, configure.ac, *.h.m4: + Split SIGC_CXX_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD + into SIGC_CXX_GCC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD + and SIGC_CXX_MSVC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD. + Remove LIBSIGC_TEMPLATE_PREFIX. Add template keyword to + SIGC_WORKAROUND_OPERATOR_PARENTHESES depending on the configure checks. + Should fix the compiler problems with MSVC. + +2004-07-11 Martin Schulze <mschulze@cvs.gnome.org> + + * examples/hello_world.cc: Use sigc::ptr_fun instead of std::ptr_fun. + (fixes bug #144846) + +2004-07-11 Eric Bourque <ericb@computer.org> + + * libsigc++-2.0.spec.in: new file + * configure.ac : patched generate spec file + * .cvsignore: ignore generated file (Martin Schulze) + * Makefile.am: distribute spec file (Martin Schulze) + +2004-07-11 Murray Cumming <murrayc@murrayc.com> + + * sigc++/connection.cc: Added some comments. + * sigc++/trackable.cc: operator=(): Check for self-asignment, though I + do not know of any actual bug that this fixes. Added some comments. + * sigc++/trackable.h Added some doxygen documentation. + +2004-07-09 Murray Cumming <murrayc@murrayc.com> + + * tests/: Added test_disconnect_during_emit.cc, to prove that this + works. + +2004-07-08 Murray Cumming <murrayc@murrayc.com> + + * tests/test_retype_return.cc: foo::operator(int): return a + value. The SUN Forte 5.5 compiler complains about this, as it should. + +2004-07-08 Murray Cumming <murrayc@murrayc.com> + + * sigc++/macros/signal.h.m4: class signal*: Rename the slot_list + typedef to slot_list_type, because there is already a template class + called slot_type. SUN Forte 5.5 seems to complain about this and I am + not surprised. The old typdef is still there for backwards + compatibility, except when building with SUN Forte. + +2004-07-07 Murray Cumming <murrayc@murrayc.com> + + * scripts/cxx.m4: SIGC_CXX_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD(): + Don't define the SIGC_TEMPLATE_SPECIALIZATOIN_OPERATOR_OVERLOAD C + macro at all if the test fails. This might fix the build on SUN Forte. + * sigc++/functors/macros/mem_fun.h.m4: Default constructor: Initialize + the func_ptr_ member variable. I have no evidence that this solves any + problems, but it worried me. + * sigc++/functors/slot_base.h: operator bool(): Correct documentation, + to use @code instead of <code> + * sigc++/macros/signal.h.m4: Remove the documentation for the + parameters named first and last, because they do not exist. + +2004-05-31 Martin Schulze <mschulze@cvs.gnome.org> + + * autogen.sh: Add '--force'-flag to the 'libtoolize'-command (bug #143425). + +2.0.3: + +2004-05-30 Martin Schulze <mschulze@cvs.gnome.org> + + * configure.ac: Bump version number to 2.0.3. + * NEWS: Add ChangeLog summary for version 2.0.3. + * sigc++/macros/signal.h.m4: Fix segfault on emission of unconnected signal. + * tests/test_signal.cc, tests/test_accumulated.cc: Emit unconnected signal. + * sigc++/macros/object_slot.h.m4: Suppress compiler warning at + dynamic_cast<>-test (tested by Christof Petig/Timothy M. Shead). + +2.0.2: + +2004-05-22 Martin Schulze <mschulze@cvs.gnome.org> + + * configure.ac: Bump version number to 2.0.2. + * NEWS: Add ChangeLog summary for version 2.0.2. + +2004-05-20 Martin Schulze <mschulze@cvs.gnome.org> + + * sigc++/macros/signal.h.m4: If a custom accumulator is specified + invoke it on signal emission even if the signal's slot list is empty. + (This used to be the case in libsigc++-1.2 as pointed out by Timothy.) + +2004-05-20 Martin Schulze <mschulze@cvs.gnome.org> + + * sigc++/macros/object_slot.h.m4: Suppress compiler warning at + dynamic_cast<>-test (suggested by Timothy M. Shead). + +2004-05-01 Martin Schulze <mschulze@cvs.gnome.org> + + * README: Updated for libsigc++-2.0. + +2.0.1: + +2004-04-27 Martin Schulze <mschulze@cvs.gnome.org> + + * configure.ac: Bump version number to 2.0.1. + * NEWS: Add ChangeLog summary for version 2.0.1. + * sigc++/adaptors/lambda/macros/base.h.m4: Fixed documentation. + * sigc++/adaptors/macros/bind.h.m4: Hide work-arounds from doxygen. + * scripts/cxx.m4, sigc++config.h.in, configure.ac, + sigc++/adaptors/macros/bind.h.m4: Removed configure check. It + showed that the Apple gcc can also compile the sophisticated version + of the work-around. + +2004-04-26 Martin Schulze <mschulze@cvs.gnome.org> + + * sigc++/macros/object_slot.h.m4: Modified test for SigC::Object + inheritance so that it also works if SigC::Object is virtual base. + (Fixes bug 141094 reported by Jonathan Brandmeyer) + +2004-04-26 Martin Schulze <mschulze@cvs.gnome.org> + + * scripts/cxx.m4: Updated the configure check. It would probably + have succeeded on the Apple. + +2004-04-26 Martin Schulze <mschulze@cvs.gnome.org> + + * sigc++/adaptors/macros/bind.h.m4: Add work-arounds for + bind<-1>::deduce_result_type compilation error on Apple gcc 3.3. + * scripts/cxx.m4, sigc++config.h.in, configure.ac: Add configure + check for the compilation error above. + * sigc++/adaptors/lambda/macros/operator.h.m4: Replace _A with + _Aa. _A is a reserved keyword on Apple gcc 3.3 (Spundun Bhatt). + (fixes bug #10444 reported by Spundun Bhatt) + +2004-04-19 Martin Schulze <mschulze@cvs.gnome.org> + + * sigc++/signal_base.cc: Fixed serious bug in signal_base::impl(): + Only reference a newly created object (initial reference). + (This fixes bug #140269 reported by Andris.) + +2004-04-19 Murray Cumming <murrayc@murrayc.com> + + * scripts/cxx.m4: Updated the operator() template check, because it + failed with gcc 3.4 (from cvs). Apparently the template keyword can + only be used from another template. + +2.0.0: + +2004-04-06 Martin Schulze <mschulze@cvs.gnome.org> + + * configure.ac: Bump version number to 2.0.0. + * NEWS: Add ChangeLog summary for version 2.0.0. + * TODO, AUTHORS: Bring up to date. + * sigc++-2.0.pc.in, Makefile.am: 1.9 -> 2.0 + * Added more documentation. + +2004-04-10 Murray Cumming <murrayc@murrayc.com> + + * sigc++/connection.[h|cc]: Implement blocked() to avoid undefined + symbol linker error. + +2004-04-08 Murray Cumming <murrayc@murrayc.com> + + * dist the scripts directory. + +1.9.16: + +2004-04-06 Martin Schulze <teebaum@cvs.gnome.org> + + * configure.ac: Bump version number to 1.9.16. + * NEWS: Add ChangeLog summary for version 1.9.16. + +2004-04-02 Murray Cumming <murrayc@murrayc.com> + + * sigc++/connection.cc: Make block() and unblock() always return a + value, to fix compiler warnings. Patch from bug #138620 by + Alexander Nedotsukov. + +2004-04-02 Murray Cumming <murrayc@murrayc.com> + + * Fix the compile of examples/member_method.cc. Bug #131701 from + Kirill Smelkov. I also made the examples build as part of the regular + build. + +2004-04-02 Murray Cumming <murrayc@murrayc.com> + + * sigc++config.h.m4: Remove every undef apart from the one we need, to + avoid clashes, because we #include this in a public header. + +2004-03-25 Murray Cumming <murrayc@murrayc.com> + + * scripts/cxx.m4, configure.in, sigc++config.h.in: Rename the + template_keyword check to template_specialization, because the problem + is with or without the keyword. + * sigc++/adaptors/macros/adaptor_trait.h.m4: Define + SIGC_WORKAROUND_OPERATOR_PARENTHESES, which calls either operator() or + sun_forte_workaround() depending on the result of the compiler test. + * many .m4 files: Add sun_forte_workaround methods that call the + operator() methods. Put them in #ifdefs so that only SUN Forte C++ + sees them. + +2004-03-22 Murray Cumming <murrayc@murrayc.com> + + * Makefile.am, sigc++/Makfile.am: Fix the sigc++config.h.in disting, + to fix make distcheck. + +2004-03-21 Murray Cumming <murrayc@murrayc.com> + + * Rename config.h.in to sigc++config.h.in so that gtkmm does not + include some other config.h at strange times - fixes a problem in + the gtkmm demos. This should really be in the sigc++ directory, but + that seems to add that as an include path, which causes the STL + headers to include sigc++/signal.h instead of some STL signal.h header. + +2004-03-20 Murray Cumming <murrayc@murrayc.com> + + * Makefile.am: Install the config.h platform-specific header. + * sigc++-2.0.pc.in: Report the include path for config.h + +2004-03-20 Murray Cumming <murrayc@murrayc.com> + + * Added config.h.in, using autoheader, from which config.h will be + generated, so we can detect compiler features. + * configure.ac: Added AC_CONFIG_HEADER(config.h) to generate config.h + from config.h.in. + * scripts/cxx.m4: Added this directory and file, with a + SIGC_CXX_TEMPLATE_KEYWORD_OPERATOR_OVERLOAD macro that defines + the SIGC_TEMPLATE_KEYWORD_OPERATOR_OVERLOAD C macro. + * autogen.sh: Added -I scripts to the aclocal call, so that it finds + the m4 macro for configure.ac. + * sigc++/adapators/macros/adaptor_trait.h.m4: Include config.h and + use SIGC_TEMPLATE_KEYOWRD_OPERATOR_OVERLOAD. + +2004-03-18 Martin Schulze <mschulze@cvs.gnome.org> + + * tests/test_mem_fun.cc, tests/test_ptr_fun.cc: Don't test + making functors from overloaded methods with partial template + specialization. Not portable among different compilers (SUN FORTE). + * adaptors/macros/apdaptor_trait.h.m4: Only gcc seems to use the + notation A.template operator()<...>(...) => adapt preprocessor check + for #define LIBSIGC_TEMPLATE_PREFIX. TODO: replace with configure check. + +2004-03-13 Murray Cumming <murrayc@murrayc.com> + + * g++ 3.4 (pre-release) build fixes: + * sigc++/macros/signal.h.m4: slot_iterator_buf::operator*(): + Use blocked() and empty() instead of non-existant blocked_and_empty(). + * sigc++/functors/macros/mem_fun.h.m4: memfun_functor*::operator()(): + Use this->func_ptr_ instead of just func_ptr_. + * sigc++/adaptors/macros/deduce_result_type.h.m4: Use + T_functor::template deduce_result_type<> instead of just + T_functor::deduce_result_type<>. + * sigc++/adaptors/lambda/macros/base.h.m4, operator.h.m4, group.h.m4:: + Use template keyword again. operator[](): Use this->value_ instead of + just value_. + * sigc++/adaptors/lambda/macros/bind/m4: Use template keyword, and + this-> again. + * sigc++/adaptors/macros/compose.h.m4, hide.h.m4, bind_return.h.m4, + exception_catch.h.m4: + rettype.h.m4, rettype_return.h.m4: Use template keyword,and this-> again + +1.9.15: + +2004-02-27 Martin Schulze <teebaum@cvs.gnome.org> + + * configure.ac: Bump version number to 1.9.15. + * NEWS: Add ChangeLog summary for version 1.9.15. + +2004-02-27 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/functors/macros/slot.h.m4: Make the unnumbered slot templates' + copy ctors use the copy ctors of the base class. Fixes bug #24698. + * tests/test_slot.cc: Test copy ctor (Bryan Forbes). + +2004-02-27 Martin Schulze <teebaum@cvs.gnome.org> + + * tests/type_functor_trait.cc: Bring it up-to-date (use sigc::ref). + Make it work with the SUN Forte. + +2004-02-24 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/type_traits.h: Make is_base_and_derived<> work with the SUN Forte. + +2004-02-19 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/type_traits.h: Make is_base_and_derived<> platform independant. + * sigc++/adaptors/lambda/macros/base.h.m4: Make lambda_core<> ctors + explicit. Remove an unused ctor from lambda_core<T_type, true>. + +2004-02-14 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/functors/slot_base.h, sigc++/functors/macros/slot.h.m4: + Move some documentation to slot_base.h. + * sigc++/signal_base.h, sigc++/macros/signal.h.m4: + Move some documentation to signal_base.h. + + API addition: + * sigc++/functors/macros/slot.h.m4: Add numbered slot# templates. + Make unnumbered slot templates inherit from slot#. + + API change: + * sigc++/functors/macros/mem_fun.h.m4: Allow for methods of the object's + base types to be passed into sigc::mem_fun(). (Used to be the case in + libsigc++-1.2). + +2004-02-13 Murray Cumming <murrayc@usa.net> + + * sigc++/functors/slot_base.[h|cc], sigc++/trackable.[h|cc]: Create + and use a typedef for the destroy_notify callback functions, to avoid + confusion function pointer declaration syntax in the API. + +2004-02-13 Murray Cumming <murrayc@murrayc.com> + + * Moved implementation to .cc files: + * sigc++/functors/: Added slot_base.[h|cc] which contains non-template + code that was previsouly in the generated functors/slot.h and + non-generated slot.cc files. All non-inline implementation is now in + the .cc file. + * sigc++/functors/macros/slot.m4: Removed the code that has been moved + to slot_base.[h|cc]. + * sigc++/: Added signal_base.[h|cc] which contains non-template code + that was previously in the generated signal.h and non-generated + signal.cc file. All non-inline implementation is now in the .cc file. + * sigc++/macros/signal.m4: Removed the code that ahs been moved to + signal.cc + * sigc++/connector.[h|cc]: method implementation moved to the .cc file. + +1.9.14: + +2004-02-13 Martin Schulze <teebaum@cvs.gnome.org> + + * configure.ac: Bump version number to 1.9.14. + * NEWS: Add ChangeLog summary for version 1.9.14. + +2004-02-09 Murray Cumming <murrayc@usa.net> + + * sigc++/functors/macros/slot.h.m4: slot_base: Added operator bool(), needed to + check for a slot that is created with the default constructor. This was + present in libsigc++ 1.2 also. + +2004-02-06 Murray Cumming <murrayc@usa.net> + + * Makefile.am: Build the docs directory, by adding it to SUBDIRS. + * docs/Doxyfile.in: Updated to be more glibmm-like. + * Added some @deprecated doxygen bits. + * sigc++/macros/signal.h.m4: Call base constructor from signal_base + constructor - this is an error-as-warning when building gtkmm. + +1.9.13: + +2003-11-30 Martin Schulze <teebaum@cvs.gnome.org> + + * configure.ac: Bump version number to 1.9.13. + * NEWS: Add ChangeLog summary for version 1.9.13. + * Makefile.am, MSVC_Net2003/Makefile.am, configure.ac: + Distribute MS .Net project files. + * sigc++/adaptors/macros/[bind,hide].h.m4: Correct and add + documentation. Make hide_functor ctor explicit. + +2003-11-11 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/adaptors/macros/[bind,hide].h.m4: Change to zero-based + argument index in numbered bind() and hide() overload + (Agreement on the mailing list). + Support binding up to CALL_SIZE arguments with one bind adaptor. + (Requested by joey yandle and others). + Only support binding of multiple arguments in unnumberd overloads + to keep the API simple (Requested by Murray Cumming). + * tests/test_[bind,hide,functor_trait].cc, sigc++/bind.h: + Reflect API changes in compatibility module and test cases. + +2003-11-10 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/adaptors/macros/[bind,hide].h.m4: Add unnumbered + bind() and hide() overloads to make specifying the argument + position optional (Proposed by Jeff Franks). + * tests/test_[bind,hide].cc: Test unnumbered bind() and hide(). + * sigc++/adaptors/macros/adaptor_trait.h.m4: + Change "#ifdef MSVC" to "#ifdef _MSC_VER" (Roel Vanhout). + +2003-11-09 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/functors/macros/slot.h.m4: Change functor type in + typed_slot_rep to adaptor_trait::adaptor_type<T_functor> + and use explicit function template instantiation in + internal::slot_call::call_it(). Avoids copying of arguments + in call_it() and enables binding of object instances + to class methods through bind() (Reported by Jeff Franks). + * tests/test_bind.cc: Test binding object instances to + class methods through bind(). + * sigc++/adaptors/adaptors.h: Include retype[_result].h. + * sigc++/adaptors/macros/adaptor_trait.h.m4: + - Add documentation. + - Mark some c-tors as explicit. + - Remove ununsed operator T_functor&() from adaptor_functor. + * sigc++/adaptors/macros/deduce_result_type.h.m4: + Rewrite parts of the documentation. + * sigc++/adaptors/macros/bind.h.m4: Add documentation. + * sigc++/functors/macros/mem_fun.h.m4: Remove unnecessary + explicit markers. Minor fixes to documentation. + * sigc++/functors/macros/functor_trait.h.m4: + Minor fixes to documentation. + +1.9.12: + +2003-11-04 Martin Schulze <teebaum@cvs.gnome.org> + + * configure.ac: Bump version number to 1.9.12. + * NEWS: Add ChangeLog summary for version 1.9.12. + +2003-11-03 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/macros/signal.h.m4: Document accumulators. + Move slot_iterator_buf into namespace internal. Since + accumulators have the iterator type as a template argument + there is no need to expose this very internal type. + * sigc++/functors/macros/*.m4: Regroup documentation. + Documentation of the core parts of the library should be + complete by now. + +2003-11-02 Martin Schulze <teebaum@cvs.gnome.org> + + * Improve documentation of the core parts of the library. + * tests/test_ptr_fun.cc: Test ptr_fun() with static + member functions. + +2003-11-02 Martin Schulze <teebaum@cvs.gnome.org> + + * Move all .m4 files into new subdirectories + sigc++/[...]/macros. Install the .m4 files on + "make install" (Reported by Ron Steinke). + +2003-11-01 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/[class,method,object]_slot.h.m4: Include + sigc++/functors/mem_fun.h (Reported by Ron Steinke). + +2003-11-01 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/adaptors/lambda/operator.h.m4: Add negation + operator I have completely overlooked until now. + * sigc++/tests/test_lambda.cc: Test negation operator. + +2003-11-01 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/[class_slot,method_slot,object_slot,hide].h.m4, + sigc++/signal.h.m4, sigc++/functors/mem_fun.h.m4: + - Use a shorter notation for ..._mem_function variants. + - Change order of mem_funcotr<>'s template arguments to + match std::mem_fun_t and to be more consistent with adaptors. + - Use ::sigc::slot's implicit ctor in compatibility module. + * sigc++/adaptors/lambda/operator.h.m4: Change some + lambda action names to match action names in std. + + API addition: + * sigc++/adaptors/retype.h.m4: New file adding + adaptor retype. + * sigc++/Makefile.am: Build and distribute new file. + * tests/test_retype.cc: New file testing adaptor retype. + * MSVC_Net2003/tests/test_retype/test_reytype.vcproj, + tests/Makefile.am: Build and distribute new test case. + +2003-11-01 Martin Schulze <teebaum@cvs.gnome.org> + + * MSVC_Net2003: New directory containing project + files for Visual Studio .Net 2003. + Credits to Roel Vanhout <roel@riks.nl>! + +2003-11-01 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/retype.h.m4: Use LIBSIGC_TEMPLATE_PREFIX + in explicit function template instantiations. + * sigc++/type_traits.h: Add template specialization + for arrays (T_type[N]) to disable non-working member + type_trait<T_type[N]>::instance(). + * sigc++/visit_each.h: Remove more disturbing + limit_derived_target<>::operator() overloads. + (Should have noticed earlier that they are unnecessary.) + * sigc++/adaptors/deduce_result_type.h.m4, + sigc++/adaptors/lambda/operator.h.m4, + sigc++/functors/functor_trait.h.m4, + tests/test_[bind,compose,exception_catch,hide,lambda].cc: + Completely removed support for typeof(). We don't need + it any more and it is completely non-standard! + +2003-10-30 Cedric Gustin <cedric.gustin@swing.be> + + * configure.ac: Added test of win32 platform. Commented + out AM_DISABLE_SHARED (DLLs are shared libraries). + * sigc++/Makefile.am: added a few LDFLAGS for win32 + DLLs. + +2003-10-30 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/signal.h.m4: Add SigC::Signal#<>::slot(). + * sigc++/slot.h.m4: Comment out make_slot() work-around. + * sigc++/adaptors/bind.h.m4: Remove unnecessary brackets + in template argument lists. They are confusing MSVC. + * sigc++/adaptors/*.h.m4, sigc++/adaptors/lambda/*.h.m4: + Use LIBSIGC_TEMPLATE_PREFIX in explicit function + template instantiations. + * sigc++/tests/test_*.cc: + - Include <string> where std::string is used. + - Use double instead of float. + +2003-10-27 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/retype.h.m4: Cleanup. + * TODO: Bring it up to date. + +1.9.11: + +2003-10-26 Martin Schulze <teebaum@cvs.gnome.org> + + * configure.ac: Bump version number to 1.9.11. + * NEWS: Add ChangeLog summary for version 1.9.11. + +2003-10-26 Martin Schulze <teebaum@cvs.gnome.org> + + Compatiblity module: + * sigc++/signal.h.m4: Move definition of compatiblity + classes SigC::SignalN to here. + * sigc++/connection.h: + - Add connection::connected(). + - Add compatibility typedef SigC::Connection. + * sigc++/bind.h, sigc++/bind_return.h, + sigc++/class_slot.h.m4, sigc++/hide.h.m4, + sigc++/method_slot.h.m4, sigc++/object.h, + sigc++/object_slot.h.m4, sigc++/retype.h.m4, + sigc++/retype_return.h sigc++/slot.h.m4, + sigc++/compatibility.h: + New files to complete compatibility module. + Split content of compatibility.h.m4 among the new files. + * sigc++/compatibility.h.m4: Removed. + * Makefile.am: Build and distribute new files. + * tests/test_compatibility.cc: Test new stuff. + + Fixes: + * sigc++/functors/slot.h.m4: Fix copy constructor and + operator=() of slot template. + * sigc++/adaptors/bind.h.m4: Fix deduce_result_type + template specializations. bind<0>() probably compiles + with gcc-3.3, now. + +2003-10-26 Martin Schulze <teebaum@cvs.gnome.org> + + Fixes: + * sigc++/functors/slot.{cc,h.m4}: + - Fix notification process: don't defer detaching of a + slot from all referred trackables during signal emission! + - Size optimization: replace virtual functions from + struct typed_slot_rep with function pointers in slot_rep + (reduces size of a typical typed_slot_rep instantiation + by 30% !!!). + * tests/test_slot.cc: Test sigc::slot more thoroughly. + * sigc++/functors/mem_fun.h.m4: Fix visit_each(). + * sigc++/adaptos/bind_return.h.m4: Add support for + sigc::ref(). + * tests/test_bind_return.cc: Use sigc::ref(). + * sigc++/signal.h.m4: Avoid compiler warning about + uninitialized variable r_ in emit(). + * sigc++/visit_each.h: Cleanup. + + API additions: + * sigc++/adpators/lambda/operators.h.m4: Add + lambda actions sigc::{reinterpret,static,dynamic}_cast_ + to support explicit parameter conversion. + * tests/test_lambda.cc: Test sigc::static_cast_. + * sigc++/adaptors/retype_return.h.m4: New file adding + adaptor retype_return (and hide_return). + * sigc++/Makefile.am: Build and distribute new file. + * tests/test_retype_return.cc: New file testing + adaptor retype_return (and hide_return). + * tests/Makefile.am: Build and distribute new test case. + +2003-10-25 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/visit_each.h: Remove disturbing + limit_derived_target<>::operator() overloads. + * sigc++/adaptors/bind.h.m4: Add support for sigc::ref(). + * tests/test_bind.cc: Test sigc::ref(). + * sigc++/adaptors/lambda/{operator,group,base}.h.m4: + - Move support for sigc::ref() from lambda_core<> into + lambda operator and lambda group creator functions. + - Add missing visit_each() overload for lambda<> template. + * tests/test_lambda.cc: Test auto-disconnection. + TODO: Fix a strange bug that leads to "Bus error" + during auto-disconnection. + +1.9.10: + +2003-10-23 Martin Schulze <teebaum@cvs.gnome.org> + + * configure.ac: Bump version number to 1.9.10. + * NEWS: Add ChangeLog summary for version 1.9.10. + +2003-10-23 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/functors/{functor_trait,slot}.h.m4: + Move definition of struct nil into functor_trait.h. + +2003-10-23 Martin Schulze <teebaum@cvs.gnome.org> + + * configure.ac: Disable typeof() compiler checks. + * sigc++/adaptors/bind.h.m4: Remove unnecessary + deduce_result_type<> template specializations. + +2003-10-20 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/adaptors/compose.h.m4: + Correct order of typedefs for good. (Patch from Jeff Franks.) + +1.9.9: + +2003-10-20 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/connection.h: Add constructor that takes + a sigc::slot_base& to support 3rd-party slot lists + like they are used in glibmm/gtkmm. + * sigc++/functors/slot.h.m4: Make sigc::slot::call_type public. + (Fixes compile problems reported by Jeff Franks.) + * sig++/type_traits.h: Don't use long long in + sigc::is_base_and_derived. + (Fixes compile problems reported by Jeff Franks.) + * sigc++/adaptors/{bind,compose,hide,exception_catch}.h.m4: + Correct order of typedefs. (Repoted by Jeff Franks.) + * configure.ac: Bump version number to 1.9.9. + * NEWS: Add ChangeLog summary for version 1.9.9. + +1.9.8: + +2003-10-19 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/functors/slot.h.m4: Define doxygen group functors. + * configure.ac: Bump version number to 1.9.8. + * NEWS: Add ChangeLog summary for version 1.9.8. + +2003-10-19 Martin Schulze <teebaum@cvs.gnome.org> + + * NEWS: Add announces of versions 1.9.6 and 1.9.7. + * sigc++/compatibility.h.m4: New file. Defines namespace SigC. + namespace SigC should be API compatible to libsigc++-1.2. + * sigc++/Makefile.am: Build compatibility.h. + * tests/test_compatibility.cc, tests/Makefile.am: + Add test case for compatibility module. + * docs/index.html: Change group names. + * sigc++/sigc++.h: Include connection.h. + * sigc++/connection.{cc,h}: + - Rename dependency to destroy_notify_callback. + - Change parameter name in set_slot() from d to data. + - Fix operator=(): Add "return *this;" + - Get rid of namespace functor. + - Corrections in documentation. + * sigc++/signal.{cc,h.m4}: + - Add reference counter to signal_impl. Replaces "bool destroy_". + - Move signal_base, slot_iterator[_buf], slot_list out of + namespace internal. They are part of the public API. + - Add convenience function signal#::make_slot(). + - Get rid of namespace functor. + - Corrections in documentation. + * sigc++/trackable.{cc,h}: + - Rename dependency to destroy_notify_callback. + - Rename trackable::clear() to trackable::notify_callbacks(). + - Corrections in documentation. + * sigc++/type_traits.h: Add documentation. + * sigc++/visit_each.h: + - Get rid of namespace functor. + - Add documentation. + * sigc++/adaptors[/lambda]/*: Get rid of namespace functor. + * sigc++/functors/{functor_trait.h,ptr_fun.h.m4,mem_fun.h.m4}: + - Get rid of namespace functor. + - Corrections in documentation / add documentation. + * sigc++/functors/slot.{cc,h.m4}: + - Move slot_base out of namespace internal. It's public API. + - Get rid of one-letter-parameter-names. + - Get rid of namespace functor. + - Corrections in documentation. + * tests/*.cc: Get rid of "using namespace ...". + +2003-09-10 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/adaptors/lambda/{base,operators}.h.m4: + Add subscript ([]) and assign (=) operator. I think there are now + enough operators available to make any future power user happy. + The only one missing is the comma operator and if we added it + the logical consequence would be to also add if(), switch(), do(), + etc. lambda expressions which are really out of place in libsigc++. + * sigc++/type_traits.h: Fix is_base_and_derived<> for const types. + * tests/test_lambda.cc: Test new operators. + +1.9.7: + +2003-09-05 Martin Schulze <teebaum@cvs.gnome.org> + + * configure.ac: Bump version number to 1.9.7. + +2003-09-03 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/adaptors/lambda/operator.h.m4: + - Restructure so that the size of the generated source file stays + reasonable for 34 operators: There are only two lambda templates + lambda_operator and lambda_operator_unary. The action is an additional + template parameter. A small template lambda_action[_unary] is specialized + for all actions. + - Add most operators that boost::lambda supports. Missing operators are + "=", "[]", "," and support for pointer arithmetic. I don't know if it's + worth adding these. In libsigc++, the purpose of lambda operators is to + provide some extra functionality for the group adaptor. + * tests/test_lambda.cc: + Test pre-increment, address and dereference operator. + +2003-08-31 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/reference_wrapper.h, sigc++/type_traits.h, sigc++/Makefile.am: + New file reference_wrapper.h provides ref() to specify that adaptors/lambdas + should take a reference to the object passed into ref() instead of a copy. + * tests/test_lambda.cc: + - Test group() with mem_fun(). + - Use ref() where lambdas should store references to objects. + - Test var() and constant(). + * sigc++/adaptors/lambda/base.h.m4: + - Support ref() in return type deduction. + - Add var() and constant() which create lambdas for usage with lambda operators. + * sigc++/adaptors/lambda/operator.h.m4: + - Fix return type deduction. + - Remove operator{+,-,*,...} overloads added on 2003-08-29. ref() is way cleaner. + * sigc++/adaptors/lambda/group.h.m4, + sigc++/adaptors/bind.h.m4, sigc++/adaptors/compose.h.m4, + sigc++/adaptors/exception_catch.h.m4, sigc++/adaptors/hide.h.m4: + Fix return type deduction. + +2003-08-29 Martin Schulze <teebaum@cvs.gnome.org> + + * tests/test_lambda.cc: Add more tests. + * sigc++/adaptors/lambda/select.h.m4, sigc++/adaptors/lambda/lambda.cc.m4: + Make _1, _2, ... constant. + * sigc++/adaptors/lambda/operator.h.m4: + Add operator{+,-,*,...} overloads to distinguish between const and non-const objects. + Store references to non-const objects rather than copies. + This allows expressions like e.g. std::cout << _1. + * sigc++/adaptors/lambda/base.h.m4, sigc++/adaptors/lambda/group.h.m4: + Remove void specializations. Functors returning void are tested and work fine. + +2003-08-27 Martin Schulze <teebaum@cvs.gnome.org> + + * tests/test_callof.cc, tests/test_deduce_result_type.cc: + Rename, correct and improve this test case. + * tests/Makefile.am: Build and run test_deduce_result_type + instead of test_callof. + +2003-08-27 Martin Schulze <teebaum@cvs.gnome.org> + + * Update TODO. + +2003-08-27 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/adaptors/hide.h.m4: Remove usage of callof_ignore_arg<>. + * sigc++/callof.h.m4, sigc++/adaptors/deduce_result_type.h.m4, + sigc++/functors/functor_trait.h.m4: + Remove the first and move deduce_result_type templates from + functor_trait.h.m4 into new file deduce_result_type.h.m4. + * sigc++/Makefile.am, sigc++/sigc++.h, sigc++/adaptors/adaptor_trait.h.m4: + Build and include sigc++/adaptors/deduce_result_type.h instead of callof.h. + * sigc++/functors/slot.h.m4: Document struct nil. + +2003-08-24 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/functors/functor_trait.h.m4: Simplify usage of convenience + macro SIGC_FUNCTORS_HAVE_RESULT_TYPE: + namespace sigc{ namespace functor{ SIGC_FUNCTORS_HAVE_RESULT_TYPE }} + +2003-08-24 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/functors/functor_trait.h,m4, sigc++/adaptors[/lambda]/*.h.m4: + Merge adaptor return type deduction and typeof() into + sigc::functor::deduce_result_type. Use it for all adaptors. + * tests/test_compose.cc: Only test multi-type get-functor if + typeof() if supported. + +2003-08-24 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/adaptors[/lambda]/*.h.m4: + - Remove unnecessary void specializations. In fact, only the one + for sigc::functor::exception_catch<> is needed and I don't really + understand why. For the lambda stuff the void specializatoins are + just commented out at the moment. + - Make typeof() optional. Surprisingly, I got the lambda stuff working + without typeof()! The test suite doesn't catch all cases yet, so maybe + some thing are still not working. + TODO: Implement configure check. + * tests/test_bind.cc, tests/test_compose.cc tests/test_exception_catch.cc, + tests/test_hide.cc, tests/test_lambda.cc: + Only test multiple functor return types if typeof() is supported. + +2003-08-06 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/trackable.{cc,h}: Add function trackable::clear(). + +2003-06-24 Andreas Rottmann <rottmann@users.sourceforge.net> + + * TODO: Minor tweaks. + +2003-06-23 Andreas Rottmann <rottmann@users.sourceforge.net> + + * docs/reference/Doxyfile.in: Use these variables. + * docs/reference/Makefile.am (html/index.html): Provide doxygen + with SRCDIR and TOP_SRCDIR environment variables. + + * sigc++/functors/slot.h.m4: Make slot::call_type typedef public; + this fixes a g++ 3.3 error in signal.h. + + * sigc++/signal.h.m4: Make the signal::accumulated class public; + this fixes a g++ 3.3 error in test_accumulated.cc. + +2003-06-15 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/functor/slot.h.m4: Correct typing error in docs. + * sigc++/functor/ptr_fun.h.m4: Document the whole thing. + +2003-05-31 Murray Cumming <murrayc@usa.net> + + * Reference documentation: Rearranged the groups to make it all + a bit more like the libsigc++ 1.2 reference documentation. + Corrected some spelling and grammar too. + This needs a lot of work. The text is very hard to read and it's + generally not appropriate for a user of the code who doesn't + care about the internals. But it's not impossible - our examples + should show us what we need to say in the documentation. + We probably need some more groups for the extra stuff, like we do + in libsigc++ 1.2. + +2003-05-29 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/signal.h.m4: Fix documentation. + * sigc++/connection.h, sigc++/functor/slot.h.m4: + Document the whole thing. + +2003-05-29 Martin Schulze <teebaum@cvs.gnome.org> + + * sigc++/signal.h.m4: + - Remove bogus operator() from unnumbered signal<> and + signal<>::accumulated templates. + - Document the whole thing. + + * docs/index.html: Fix some links. + +2003-04-06 Martin Schulze <MHL.Schulze@t-online.de> + + * TODO, configure.ac, Makefile.am, docs/*: + Add Doxygen framework. + +2003-04-06 Martin Schulze <MHL.Schulze@t-online.de> + + * sigc++/callof.h.m4, sigc++/adaptors/*, tests/test_callof.cc: + Move sigc::callof<> to sigc::functor::internal::callof<>. + + * sigc++/functors/mem_fun.h.m4, tests/test_mem_fun.cc: + Add new types [bound_][const_]volatile_mem_functor, visit_each() + and mem_fun() overloads for volatile qualifier. + Add ctor overloads in bound_*mem_functor and mem_fun() overloads + that take reference instead of pointer. + +2003-03-26 Martin Schulze <MHL.Schulze@t-online.de> + + * Change "closure" to "slot" throughout sigc++2 (file names, + class names, member variables, documentation, etc.). + +2003-03-26 Martin Schulze <MHL.Schulze@t-online.de> + + * TODO: Rewrite to reflect recent changes as well as recent discussions. + +2003-03-24 Martin Schulze <MHL.Schulze@t-online.de> + + * sigc++/adaptors/bind_return.h.m4: Make the adaptor's data member + public so that visit_each() can access it. + + * sigc++/adaptors/lambda/*.h.m4: More fixes. Add a note about + malfunctioning typeof() (probably compiler bug in gcc-3.2). + + * tests/*.cc: Test references. Fix compose equivalent in test_lambda. + +2003-03-24 Martin Schulze <MHL.Schulze@t-online.de> + + * sigc++/Makefile.am, sigc++/functors/functor_trait.h[.m4], + sigc++/adaptors/adaptor_trait.h.m4: Move detection of function + and member method pointers' return types from adaptor_trait into + functor_trait. (We'll use functor_trait rather than adaptor_trait for + our lambda stuff.) functor_trait.h needs to be generated from .m4 now. + + * sigc++/functors/functor_trait.h.m4: Add convenience macros: + - SIGC_FUNCTORS_HAVE_RESULT_TYPE indicates that the existance of + T_functor::result_type should be assumed for all unknown functors. + - SIGC_FUNCTOR_TRAIT(T_functor, T_result) explicitly specifies the + result type of a functor. + ("typename functor_trait<T_functor>::result_type") is used to + determine the return type of our adaptors' operator()() overloads. + + * sigc++/adaptors/[lambda/]*.h.m4: Various fixes in visit_each() and + operator()() overloads to make these operator()() overloads usable. + Most of them were just commented out before. Some adaptor types also + have void specializations, now. + + * sigc++/adaptors/lambda/group.h.m4: Change syntax from + "[some_functor] % grp([args])" to "group([some_functor], [args])" + like we agreed on the ml some time ago. + + * sigc++/tests/test_[all adaptors].cc: Test stuff that didn't work + before. + +2003-03-22 Murray Cumming <murrayc@usa.net> + + * Added pgk-config file, from a mystery person in bug #108857 + +2003-03-22 Martin Schulze <MHL.Schulze@t-online.de> + + * tests/test_bind.cc: Test and show how to use functor_trait + for user defined or 3rd-party functors so that a + bind<0>([functor],[arg1])() call with no arguments can return a value. + +2003-03-20 Martin Schulze <MHL.Schulze@t-online.de> + + * sigc++/callof.h.m4: Add explanations. Comment in / create templates + callof_safe[#]. Unfortunately they don't work for functors with overloaded + operator() so we don't use it for now. At least everything is documented. + + * sigc++/functors/functor_trait.h, sigc++/functors/*.h.m4: Add back + functor_base compiler hint. We're using it now in adaptor_functor<>. + + * sigc++/adaptors/{adaptor_trait,bind}.h.m4: Make operator() overloads + with no arguments return the result of the functor invocation. + Fix multiple bind<0>(). + * tests/test_bind.cc: Test the stuff that's working now. + +2003-03-16 Murray Cumming <murrayc@usa.net> + + * Added sigc++/sigc++.h, like in libsigc++ 1.2 + * examples: Added member_method example, which uses a class method + and which demonstrates disconnection. + +1.9.6: + +2003-03-11 Andreas Rottmann <rottmann@users.sourceforge.net> + + * sigc++/Makefile.am: Use substitution references instead of + $(patsubst). Is shorter and fixes the strange-dirs-in-dist-tarball + bug. + +2003-03-09 Martin Schulze <MHL.Schulze@t-online.de> + + * sigc++/connection.h: Add block() capability. + +2003-03-09 Martin Schulze <MHL.Schulze@t-online.de> + + * sigc++/signal.{cc,h.m4}: Add flag signal_impl::destroy_ + and function signal_impl::destroy(). Use them to defer + the destruction of the signal_impl object during signal + emission. + + * tests/test_disconnect.cc: Add tests for the connection + class and for deleting signals during emission. + +2003-03-09 Martin Schulze <MHL.Schulze@t-online.de> + + * sigc++/connection.{cc,h}, sigc++/Makefile.am: + - New files that add a connection class. Objects of this + class are constructed from closure list iterators and can + be used to disconnect the refered closure. As opposed to + iterators they stay valid beyond the lifetime of the closure. + +2003-03-09 Martin Schulze <MHL.Schulze@t-online.de> + + * sigc++/functors/closure.{cc,h.m4}, sigc++/signal.cc: + - Rename closure_{base,rep}::[set_]dependency_ -> [set_]parent_. + - Make closure_rep inherit trackable. This allows for + connection objects that stay valid beyond the life time + of the refered closure. + - Make some one-line-functions inline again. + +2003-03-08 Martin Schulze <MHL.Schulze@t-online.de> + + * sigc++/trackable.cc: BUGFIX in trackable_dep_list::clear() + +2003-03-08 Andreas Rottmann <rottmann@users.sourceforge.net> + + * sigc++/Makefile.am: Rewritten so we can build lambda cleanly. + * sigc++/Makefile.am_fragment: Removed. + + * sigc++/functors/Makfile.am: Removed. + * sigc++/adaptors/Makefile.am: Removed. + * sigc++/adaptors/lambda/Makefile.am: Removed. + * configure.ac (AC_OUTPUT): Remove the above Makefiles. + + * tests/Makefile.am: Re-included lambda test. + +2003-03-07 Martin Schulze <MHL.Schulze@t-online.de> + + * sigc++/signal.{cc,h.m4}: + - signal_emit#<>: New templates replacing signal#<>::caller. + The purpose of these templates is implementing the emit + function and optimizing signal emission for the case that + no accumulator is used via template specializations. + - default_accumulator<>: Removed. The default for T_accumulator + in signal#<> now is nil. An example how to use accumulators + is available in tests/test_accumulator.cc. + - signal_{base,impl}: Move the implementation of signal_base's + interface to signal_impl. An object of this class is + dynamically allocated when first connecting a closure to + the signal. This drastically reduces the size of empty signals + and allows for future addition of a reference counter to make + it safe to delete a signal during emission. + - Directly work on closure_rep during signal emission. This + seems to be quicker than using the closure templates. + - Document the classes. Restructure the header file a bit. + + * sigc++/functors/closure.h.m4: Make closure_base::rep_ data + member public, so that signal emission can directly work on it. + + * tests/test_size.cc: Add an entry for signal_impl. + +2003-03-07 Martin Schulze <MHL.Schulze@t-online.de> + + * sigc++/functors/closure.{cc,h.m4}: + - closure_base: BUGFIXES in ~closure_base() and operator=(). + - Mark some functions with the inline keyword. This seems to + help gcc 3.2 to optimize signal emission and (dis)connection. + - Document the classes. Restructure the header file a bit. + +2003-03-07 Martin Schulze <MHL.Schulze@t-online.de> + + * sigc++/trackable.{cc,h}: Make trackable allocate a + trackable_dep_list object dynamically when adding the first + dependency. (This reduces the size of objects, that are not + refered by a closure by 4 bytes (50%) and increases the size + of objects that are refered by a closure by 4 bytes (50%) + on a 32 bit architecture => This reduces total memory use + when >50% of the trackables are not refered by a closure.) + Document the classes. + +2003-03-05 Martin Schulze <MHL.Schulze@t-online.de> + + * tests/Makefile.am, tests/test_size.cc, tests/test_accumulated.cc: + Add two test cases. test_size is showing the size of public and + internal structures. (Which apart from empty signals are smaller + than the sizes of the equivalent libsigc++-1.2 structures.) + test_accumulated is a test for the template signal<>::accumulated<> + at the same time showing the use of accumulators in libsigc++2. + + * Offtopic: My note about binary sizes from 2003-02-10 is wrong. + Stripped libsigc++2 test binaries are about 8-10k in size. + +2003-03-05 Martin Schulze <MHL.Schulze@t-online.de> + + * sigc++/visit_each.h: BUGFIX in template specialization + limit_derive_target<T_Target*,T_action>::with_type<false,T_type>: + Add non-const overloads for static void execute_() avoiding + compile time errors. + +2003-02-16 Martin Schulze <MHL.Schulze@t-online.de> + + * tests/Makefile.am, tests/test_disconnect.cc: + Add testcase with a mixed connection & disconnection sequence. + +2003-02-16 Martin Schulze <MHL.Schulze@t-online.de> + + * sigc++/signal.cc: Bugfix in signal_base::insert(): + Set notification function in the newly created copy of + slot_ rather than in slot_ itself. + +2003-02-10 Martin Schulze <MHL.Schulze@t-online.de> + + * sigc++/signal.h.m4: Comment in typedefs for iterator types in + the signal#<> class template. Make signal#<>::connect() return an + iterator for convenience. + (Note that the first change increases the binary size of + tests/test_signal from 201k to 204k, the second change to 206k.) + +2003-01-23 Murray Cumming <murrayc@usa.net> + + * sigc++/adaptors/lambda is disable temporarily (not built and + not distributed) because it gets built before its parent + directory, but #includes generated sources in the parent directory. + +2003-01-22 Murray Cumming <murrayc@usa.net> + + * Added Andreas Rottman's example. + +2003-01-22 Murray Cumming <murrayc@usa.net> + + * Applied Andreas Rottman's make dist fixes. + +2003-01-14 Murray Cumming <murrayc@usa.net> + + * Added whitespace to make the code more readable. + |