2022-12-23 Kjell Ahlstedt 2.12.0 2022-11-07 Kjell Ahlstedt Meson build: Always call subdir('tests') Make the build_tests check more like the check in cairomm and libxml++. Then it's possible to combine build-tests=false with benchmark=true. See PR #84 2022-11-07 Fabrice Fontaine add build_tests option Allow the user to disable build of test programs Signed-off-by: Fabrice Fontaine 2022-11-07 wael <40663@proton.me> meson: simplify lookup of python command 2022-09-27 Kjell Ahlstedt meson.build: Detect if we build from a git subtree See https://gitlab.gnome.org/GNOME/gtkmm/-/merge_requests/72 (William Roy) 2022-08-15 Kjell Ahlstedt Fix build with -Dbuild-deprecated-api=false Fixes #82 2022-07-20 Kjell Ahlstedt Convert README to README.md 2022-05-30 Kjell Ahlstedt test_limit_reference.cc: Don't use auto where a slot is required The return values of sigc::bind() and sigc::bind_return() shall be converted to sigc::slot, otherwise automatic disconnection does not work. Fixes #44 2022-05-24 Chun-wei Fan Meson/MSVC: Re-organize warnings-related compiler flags Add a short description for each of the warnings-related compiler flags that we are using. Also, only apply '/wd4267' for 64-bit builds, since it is a warning that should only be related to 64-bit builds. 2022-05-23 Chun-wei Fan Meson: Compensate for the lack of msvc_recommended_pragmas.h libsigc++ does not depend on GLib, so msvc_recommended_pragmas.h may not be available. If it isn't, disable warning C4244 to compensate for it. 2022-05-17 Kjell Ahlstedt meson.build: Avoid configuration warnings 2022-04-27 Kjell Ahlstedt examples/member_method: Make on_print() non-virtual so it can be compiled with the -Wnon-virtual-dtor compiler option. 2022-04-20 Kjell Ahlstedt Add track_object(), deprecate track_obj() track_object() checks that the listed objects derive from sigc::trackable. Fixes #78 2022-02-11 Kjell Ahlstedt 2.10.8 2022-02-11 Kjell Ahlstedt meson.build: Specify 'check' option in run_command() The default value will be changed in future Meson releases. Don't use deprecated python3.path() and execute(..., gui_app: ...). 2022-02-11 Kjell Ahlstedt docs/reference/Doxyfile.in: Remove obsolete entry 2022-01-31 Kjell Ahlstedt tools/tutorial-custom-cmd.py: Add comment about used stylesheet 2021-12-12 Kjell Ahlstedt Revert "sigc++.h: Don't mention CMake" This reverts commit 53551050c59c3a35e64816f78e555ee2e064cc31. sigc++-2.0 can be used by a CMake project even though sigc++-2.0 itself has not been built with CMake. 2021-12-11 Kjell Ahlstedt sigc++.h: Don't mention CMake There is no CMake support in sigc++-2.0. 2021-11-09 Chun-wei Fan NMake Makefiles: Allow building with VS2022 Add checks to distnguish between VS2019 and VS2022. 2021-09-27 Kjell Ahlstedt docs/manual, Meson config: Check if xmllint can be used 2021-09-20 Kjell Ahlstedt docs/manual: Upgrade from DocBook 4.1 to DocBook 5.0 2021-08-17 Kjell Ahlstedt meson.build: Check if Perl is required for building documentation New versions of mm-common use the Python scripts doc_postprocess.py and doc_install.py instead of the Perl scripts doc-postprocess.pl and doc-install.pl when documentation is built. 2021-07-04 Kjell Ahlstedt docs: Remove some obsolete files Remove docs/manual/README and docs/reference/README. 2021-07-04 Kjell Ahlstedt docs/manual: Add some formatting when html files are generated making it slightly more similar to gtkmm-documentation and libxml++. In Autotools builds, don't distribute the empty manual/README file. 2021-07-04 Kjell Ahlstedt docs/manual/libsigc_manual.xml: Add id on elements 2021-05-20 Kjell Ahlstedt 2.10.7 2021-05-19 Kjell Ahlstedt Documentation: Let links point to sigc++2 and gtkmm3 versions 2021-05-18 Chun-wei Fan Visual Studio build files: Some cleanups Replace /wd4530 with /EHsc, as that is the more proper CXXFlag to use for Visual Studio builds for C++ projects. 2021-05-18 Kjell Ahlstedt Add dependencies to Doxygen tag files in subprojects Doxygen in a main project shall not be called before tag files have been created or updated in subprojects. 2021-05-14 Kjell Ahlstedt Fix build as subproject without building documentation * meson.build: If mm-common-get is not found in maintainer-mode with 'required: false', try with 'required: true'. Don't try to use tag_file, if documentation is not built. * docs/reference/meson.build: Don't use variables from modules that don't define doxytagfile. These are subprojects that don't build their documentation. Fixes #71 2021-05-05 Kjell Ahlstedt Subprojects can use meson.add_dist_script() if meson.version() >= 0.58.0 * meson.build: * MSVC_NMake/meson.build: * docs/manual/meson.build: * docs/reference/meson.build: * sigc++/meson.build: Call add_dist_script() in a subproject, if meson.version() >= 0.58.0. * tools/handle-built-files.py: * tools/tutorial-custom-cmd.py: Use MESON_PROJECT_DIST_ROOT if it exists, else MESON_DIST_ROOT. It exists if meson.version() >= 0.58.0. 2021-05-04 Kjell Ahlstedt Meson build: Make quiet installations possible * tools/handle-built-files.py: Don't print names of installed files if environment variable MESON_INSTALL_QUIET is set. It is set by "meson install --quiet" in Meson 0.54.0 and newer. 2021-04-07 Kjell Ahlstedt Meson build: No implicit_include_directories 2021-03-31 Kjell Ahlstedt Meson build: Fix dependency on generated files Add meson.build files in all subdirectories of sigc++/ where .h and/or .cc files are generated. Looks like it's necessary in order to have all dependent .cc files recompiled when a .h.m4 file has been changed. Don't know if it has always been necessary, or if it has become necessary due to changes in Meson and/or Ninja. 2021-03-26 Kjell Ahlstedt Meson build: Make it possible to use sigc++ as a subproject mm-common can be a subproject of sigc++. 2021-03-26 Kjell Ahlstedt docs/reference/Doxyfile.in: Remove obsolete entries 2020-11-25 Kjell Ahlstedt 2.10.6 2020-10-12 Kjell Ahlstedt sigc++/sigc++.h: Fix a typo 2020-10-12 Kjell Ahlstedt sigc++/sigc++.h: Describe how to use libsigc++ with meson 2020-10-04 Kjell Ahlstedt Docs: Change libsigc++ webpage mentions to GitHub Change libsigc.sourceforge.net to libsigcplusplus.github.io/libsigcplusplus. 2020-09-28 Tom Schoonjans Meson build: fix versioning on macOS 2020-09-27 Kjell Ahlstedt 2.10.4 2020-07-23 Chun-wei Fan NMake Makefiles: Use Meson-style DLL and .lib naming if requested To make things more consistent and less prone to confusion, if 'USE_MESON_LIBS' is specified in the NMake command line, build the DLLs and .lib's that are named like the Meson counterparts. Binaries built with Meson+Visual Studio and the ones that are built via NMake using 'USE_MESON_LIBS' are interchangeable. 2020-07-22 Chun-wei Fan NMake Makefiles: Fix building from Meson-built tarballs We need to look for sigc++config.h in $(srcroot)\untracked\MSVC_NMake also, and make sure that we do not generate sources unnecessarily. Also streamline the source generating process into the 'all' target, so there is no more need to run the 'prep-git-build' target. 2020-07-08 Chun-wei Fan NMake Makefiles: Support ARM64 Windows builds This will make the NMake Makefiles capable of building ARM64 binaries of libsigc++, which can be used on Windows 10 on ARM systems. 2020-06-29 Kjell Ahlstedt docs/reference/: Update for Doxygen >= 1.8.16 * docs/reference/meson.build: Doxygen 1.8.16 and later does not store tag file names in the html files. This requires changes in meson.build and in doc-install.pl (in mm-common). Otherwise references to other modules won't be updated in the html files when they are installed. * docs/reference/Doxyfile.in: Remove PERL_PATH and MSCGEN_PATH. Doxygen since version 1.8.0 does not use them. 2020-06-27 Kjell Ahlstedt docs/manual/libsigc_manual.xml: Update signal and slot syntax Update the syntax of template parameters. sigc::signal -> sigc::signal. The old syntax is deprecated. Mention lambda expressions. Although sigc::retype() is a template function, no template parameters shall be specified when it's called. See #59 2020-06-18 Chun-wei Fan Re-work the NMake Makefiles Do some cleanups, to improve maintainability and running speed, where: * Change instances of 'libsigcpp' to 'sigc' * "Generate" the build rules for the test and example programs, instead of hand-writing them, since they use largely similar rules. * Don't use separate rules to create intermediate directories, so that we do not need to re-load the Makefiles unnecessarily 2020-06-18 Chun-wei Fan NMake Makefiles: Add rules to generate sources This adds rules to use m4 to generate the headers and sources from their .m4 counterparts, which allows building directly from a GIT checkout, after running the 'prep-git-build' target. Update the README.txt file to reflect on this enhancement, and make sure the generated headers are also copied when running the 'install' target 2020-06-18 Chun-wei Fan NMake Makefiles: Add rules to generate sigc.rc and sigc++config.h This adds a 'prep-git-build' target which is run before building any of the other targets so that this paves the first steps in making the libsigc++-2-10 branch buildable directly from a GIT checkout with the NMake Makefiles. Note that unlike the master (3.x) branch, we still need to use m4 to generate some sources and headers, which will be covered in the following commit. 2020-06-18 Chun-wei Fan NMake Makefiles: Support Visual Studio 2019 better Make Visual Studio 2019 builds distinct from 2017 builds. Note that for the libsigc++-2-10 branch, we do not distinguish between Visual Studio 2015, 2017 and 2019 in regards to the built DLL and .lib filenames, since they are found to be interchangeable. 2020-06-18 Chun-wei Fan NMake Makefiles: Use 'md' instead of 'mkdir' This is to avoid confusion if we have the UNIX 'mkdir' command in our PATH, such as when Cygwin is installed and used. 2020-04-02 Kjell Ahlstedt Meson build: Set default value of the 'warnings' option to 'min' * MSVC_NMake/meson.build: Copy sigc++config.h with configure_file(). * Makefile.am: Remove tools/dist-cmd.py. * docs/manual/meson.build: * docs/reference/meson.build: Don't use tools/dist-cmd.py. * sigc++/meson.build: Don't use tools/dist-cmd.py. * meson.build: Use dist-warnings when a tarball is tested by 'ninja dist' or 'meson dist'. Check if doc-reference.py exists, if not maintainer-mode. Add a better error message if mm-common-get is required but not found. * meson_options.txt: Set default value of the 'warnings' to 'min'. Add 'dist-warnings' with default value 'fatal'. * tools/dist-cmd.py: Removed file. It's not necessary in add_dist_script() when the first parameter is python3.path(). 2020-03-25 Kjell Ahlstedt 2.10.3 2020-03-24 Kjell Ahlstedt README: Describe building with Meson and Autotools and remove the description of the directory structure, which is not very useful. 2020-03-10 Kjell Ahlstedt examples: Disable deprecated API when building with Meson Deprecated SIGCXX API is disabled when example programs are built with Autotools. Do the same when building with Meson. 2020-01-13 Kjell Ahlstedt README: Describe building with Meson 2020-01-02 Kjell Ahlstedt docs/reference/meson.build: Check if perl is found Don't use perl.path() when configuring Doxyfile, if perl is not found. Perl is not required, if build-documentation=false. Fixes #53 2019-12-30 Kjell Ahlstedt meson.build: Change project name, sigc++ -> libsigc++ Autotools make tarballs called libsigc++-x.y.z.tar.xz. No reason to change that. The leading "lib" is now also restored in some locations in the reference documentation. 2019-12-30 Kjell Ahlstedt Update untracked/README 2019-12-29 Kjell Ahlstedt meson.build: Check if .git is a directory or a file In a git worktree, .git is a regular file. See https://gitlab.gnome.org/GNOME/pangomm/merge_requests/8 2019-12-29 Kjell Ahlstedt sigc++/meson.build: Library name is sigc-2.0 Pointed out by Chun-wei Fan in PR #51. 2019-12-29 Chun-wei Fan NMake Makefiles: Separate outdir by toolset version This is to reduce the likelihood of accidently mixing DLLs that are linked with different CRTs in the build tree. Also clean up rules a bit. 2019-12-29 Chun-wei Fan build: Support NMake builds from Meson tarballs This adds inference rules to the NMake Makefiles to also look for the sources that are in untracked/, and to ensure that the generated MSVC build files (sigc++-config.h and sigc.rc) are copied into untracked/MSVC_NMake, so that they can be built properly even with NMake. 2019-12-29 Chun-wei Fan meson: Build Windows .rc files on Windows This ensures that on Windows, the version info resources are indeed linked into the libsigc++ DLL. 2019-12-29 Chun-wei Fan meson/Windows: Fix builds when builddir is a subdir of source tree It appears that Meson did not construct the paths properly for shutil.copy2() when building in a build directory that is a subdirectory of the sources, when using meson.current_build_dir(), possibly due how path separators are handled. Fix this by constructing the paths using project_build_root / 'MSVC_NMake'. 2019-12-29 Chun-wei Fan meson.build: Fix 'meson dist' on Windows Since we are assured that we are using Python 3.x on when we run Meson, we do not really need to look for the 'python3' executable, but we could just use whatever Python interpreter that is used to run Meson. This will fix situations where it is commonly the case where we may have multiple Python 3.x installations on Windows (www.python.org, and those from Cygwin/mingw-w64), so that Meson really uses one and only one Python installation to run everything that is Python-related, which will thus fix '[meson|ninja] dist' on Visual Studio builds. 2019-12-29 Chun-wei Fan Meson/MSVC: Support builds directly from GIT checkouts It appears that if one uses the m4 that is given by mingw-w64 (and perhaps Cygwin), that m4 is enough to generate the sources and headers that we need for the build. So, remove the lines saying building directly from GIT checkouts are not supported. 2019-12-24 Chun-wei Fan meson: Ensure symbols are exported on MSVC builds Make sure the correct build macros are specified when building libsigc++, so that: -The symbols are properly exported -We do not break builds as a result of unecesary warnings 2019-12-24 Chun-wei Fan meson: Relax MSVC version requirement to 2015 libsigc++ requires a C++-11-compliant compiler, so we can just make the build look for Visual Studio 2015 instead of Visual Studio 2017 15.7. Visual Studio 2013 also works, but since it will spew out loads of warnings and the latest C++-11 version of glibmm is not buildable with Visual Studio 2013, let's just require Visual Studio 2015. 2019-12-24 Kjell Ahlstedt Add support for building libsigc++-2.0 with Meson libsigc++-2.0 can be built with either Autotools or Meson. 2019-12-10 Kjell Ahlstedt Make libsigc_manual.xml valid Fix errors reported by "xmllint --postvalid". 2019-07-03 Kjell Ahlstedt tests/test_track_obj: Fix for clang++ clang++ complains if private members are unused, so make them protected. error: private field 'bar_' is not used [-Werror,-Wunused-private-field] 2019-06-12 Kjell Ahlstedt 2.10.2 2018-11-11 Kjell Ahlstedt Create only .tar.xz tarballs * configure.ac: This is what ftp.gnome.org wants, so this avoids it doing any repackaging. This is what gtkmm does. 2018-10-30 Kjell Ahlstedt 2.10.1 2018-10-30 Kjell Ahlstedt tests: Catch exceptions by const ref To avoid "error: catching polymorphic type ‘class std::range_error’ by value" 2018-10-30 Kjell Ahlstedt Update README and .gitignore 2018-10-30 Chun-wei Fan builds: Add README file for MSVC builds Let people know how Visual Studio builds can be done and the options that can be used for the builds. 2018-10-30 Chun-wei Fan builds: Remove Visual Studio 2013 projects The NMake Makefiles superseded them, so let's just remove them. This will make builds with later Visual Studio versions simpler, and will make maintaining the Visual Studio build files easier. 2018-10-30 Chun-wei Fan builds: Add NMake Makefiles This adds a set of NMake Makefiles that can be used to build libsigc++-2.10.x (and the later C++11 versions of libsigc++) with Visual Studio 2013 or later. Building the example, the tests and the benchmarking programs are supported in addition to building the main libsigc++ DLL. Note that for the C++-11 releases, we name the DLLs and LIBs as sigc-vc140-2_0.[dll|lib] or sigc-vc140-d-2_0.[dll|lib] for Visual Studio 2015 and 2017 builds as these builds link to the msvcp140[d].dll and vcruntime140[d].dll C/C++ runtime DLLs. This set of NMake Makefiles are now dist'ed in place of the Visual Studio 2013 project files. 2018-10-30 Chun-wei Fan build: Consolidate source listing into sigc++/filelist.am This is for enabling the upcoming NMake Makefiles to use this file as well, in addition to the autotools build files, to build the libsigc++ DLL. 2018-10-30 Chun-wei Fan builds: Rename MSVC_Net2013 as MSVC_NMake This is to prepare for the transition for the Visual Studio build files to NMake Makefiles. 2018-08-29 Kjell Ahlstedt slot, signal: Avoid compiler warnings from function pointer conversions gcc8 -Wextra prints a warning when a single reinterpret_cast is used for conversion between different types of function pointers. The previous fix with a union in sigc::internal::bitwise_equivalent_cast<>() is not standard C++. Rename the function to function_pointer_cast<>(), and use two reinterpret_casts as recommended in gcc's documentation. Fixes #8 2018-08-02 Kjell Ahlstedt Update libsigcplusplus.doap 2018-08-02 Kjell Ahlstedt configure.ac: Update home page and bug report address 2018-08-02 Kjell Ahlstedt README: Update contact information 2018-07-17 Kjell Ahlstedt Qualify calls to bitwise_equivalent_cast() with namespace names Otherwise indirect calls from glibmm, with its own bitwise_equivalent_cast(), can be ambiguous due to ADL (argument-dependent lookup). 2018-07-16 Kjell Ahlstedt slot, signal: Avoid compiler warnings from function pointer conversions gcc8 -Wextra prints a warning when reinterpret_cast is used for conversion between different types of function pointers. Avoid that by adding sigc::internal::bitwise_equivalent_cast<>() with a union with members of the two types of function pointers. Fixes #1 2018-07-16 Kjell Ahlstedt Revert "slot, signal: Avoid compiler warnings from function pointer conversions" This reverts commit c6262e0a477b35cd9a4a00c34f3f0a44dcd07210. This can be done in a better way by keeping the union in a template function. 2018-07-13 Kjell Ahlstedt slot, signal: Avoid compiler warnings from function pointer conversions gcc8 -Wextra prints a warning when reinterpret_cast is used for conversion between different types of function pointers. Avoid that by instead using a union with members of the two types of function pointers. Fixes #1 2017-11-09 Kjell Ahlstedt signal_base docs: Warn against deletion during emission There is no known ABI-preserving fix for a memory leak, if a signal is deleted during emission. Describe a workaround in the documentation. Bug 167714 2017-11-09 Kjell Ahlstedt slot_base::set_parent(): Create a dummy slot_rep if necessary set_parent() must always store the supplied parent pointer and cleanup function pointer, or else there may be a memory leak. The pointers are stored in slot_rep. Bug 167714 2017-07-17 Kjell Ahlstedt test_signal: Test calls to signal_base::clear() Call it both during signal emission and otherwise. Bug 784550 2017-07-17 Kjell Ahlstedt signal_impl::clear(): Don't clear the slot list during signal emission If signal_impl::clear() is called during signal emission, don't call slots_.clear(). Let signal_impl::sweep() erase all slots after the signal emission. Bug 784550 2016-11-20 Christophe Lermytte Make --disable-benchmark work Currently, when calling ./configure, the possible outcomes of the enable_benchmark variable are: ./configure -> "" ./configure --enable-benchmark -> "yes" ./configure --enable-benchmark=yes -> "yes" ./configure --enable-benchmark=no -> "yes" ./configure --enable-benchmark=hello -> "yes" ./configure --disable-benchmark -> "yes" With this commit, those values become ./configure -> "" ./configure --enable-benchmark -> "yes" ./configure --enable-benchmark=yes -> "yes" ./configure --enable-benchmark=no -> "no" ./configure --enable-benchmark=hello -> "hello" ./configure --disable-benchmark -> "no" Note that enable_benchmark is currently only being checked for being "yes" or not. Bug #774732 2016-09-20 Murray Cumming 2.10.0 2016-07-18 Kjell Ahlstedt Build: Fix silent builds * configure.ac: Pass yes to AM_SILENT_RULES, thus enabling silent builds. Replace MM_AX_CXX_COMPILE_STDCXX_11 by MM_AX_CXX_COMPILE_STDCXX (not necessary for silent builds). * docs/reference/Doxyfile.in: Set QUIET=YES. Update for doxygen 1.8.11 (not necessary for silent builds). Bug #768797 2016-07-06 Murray Cumming 2.9.3 2016-07-05 Murray Cumming signal: Deprecate slots(). Because we don't use it in any tests or examples and probably nobody uses it. It has already been removed from libsigc++-3.0 (which installs in parallel): https://git.gnome.org/browse/libsigcplusplus/commit/?id=fb5d1a55ddd843a1ded635b0ebce4e5b5301fc36 Please tell us if you really need to use this. 2016-07-05 Murray Cumming signal: Deprecate emit_reverse(). Because we don't use it in any tests or examples and probably nobody uses it. It has already been removed from libsigc++-3.0 (which installs in parallel): https://git.gnome.org/browse/libsigcplusplus/commit/?id=1a4eee7e8ded2acea94e27af5c94e37dcd9cbb13 Please tell us if you really need to use this. 2016-06-21 Kjell Ahlstedt Update tests/.gitignore 2016-06-17 Chun-wei Fan Fix build of "Implement slot with variadic template" * sigc++/functors/macros/slot.h.m4: Fix the use of operator() in the variadic templates usage in the base slot_call as the syntax differs between compilers for this call. This fixes the build of the tests and any items that makes use of sigc++/functors/slot.h on non-GCC, specifically Visual Studio 2013 and 2015. https://bugzilla.gnome.org/show_bug.cgi?id=767777 2016-06-17 Chun-wei Fan Visual Studio builds: Update project Remove the sources from the projects that have been removed from the source tree lately. 2016-04-20 Murray Cumming Update tests/.gitignore 2016-04-20 Murray Cumming benchmark: Use boost::timer instead of Glib::Timer. And optionally build it, when --enable-benchmark is passed to configure. 2016-04-20 Murray Cumming benchmark: Use the newer syntax. 2016-04-20 Murray Cumming benchmark: Increase count. 2016-04-20 Murray Cumming benchmark: Make the 1000 a constant, so we can change it. 2016-04-20 Murray Cumming benchmark: Rearrange. 2016-04-20 Murray Cumming benchmark: Add copyright header. 2016-04-20 Murray Cumming benchmark: Update for the newer libsigc++ API. 2016-04-08 Murray Cumming 2.9.2 2016-04-02 Murray Cumming C++11: signal: Use a range-based for loop. 2016-04-02 Murray Cumming C++11: signal: Use auto for iterators. 2016-04-01 Murray Cumming Remove unnecessary signal.cc file. 2016-04-01 Murray Cumming Remove unnecessary slot.cc file. 2016-04-01 Murray Cumming docs: slots: Fix tiny typo. 2016-04-01 Murray Cumming docs: mem_fun: Improve the simple description. 2016-04-01 Murray Cumming docs: mem_fun: Improve the note about auto-disconnection. Because "cleared" doesn't really tell us how this benefits us. 2016-04-01 Murray Cumming docs: slots: Mention automatic disconnection. 2016-04-01 Murray Cumming docs: slots: auto: Mention why it is bad. 2016-04-01 Murray Cumming test_mem_fun: Test auto-disconnection with trackable. This is probably tested somewhere else already, but I like having it here too because it is an important reason for slot<> to exist, compared to a simple std::function. 2016-04-01 Murray Cumming test_mem_fun: Rearrange into individual test functions. 2016-04-01 Murray Cumming docs: Slots: Add section titles to break it up. 2016-03-16 Murray Cumming 2.9.1 2016-03-16 Murray Cumming Update NEWS from 2.8.0 2016-03-16 Murray Cumming test_retype: Add test of R(Args...) syntax. 2016-03-16 Murray Cumming test_retype: Break into smaller tests. 2016-03-16 Murray Cumming Reference docs: Main page: Mention CMake. And generally make this like the version in master for libsigc++-3.0. 2016-03-15 Kjell Ahlstedt Implement slot with variadic template * sigc++/functors/macros/slot.h.m4: Implement the function-style slot with variadic template, as in libsigc++-3.0. The primary slot_call and the slot specialization are copied from libsigc++-3.0. A slot_call specialization is added. Bug #763393 2016-03-12 Murray Cumming slot: Document older syntax as deprecated 2016-03-12 Murray Cumming signal: Document older syntax as deprecated. 2016-03-12 Murray Cumming signal: Use the slot syntax. 2016-03-12 Murray Cumming signal.h.m4: Slight reorganization of m4 code. 2016-03-12 Murray Cumming slot.h.m4: Slight reorganisation of m4 code. 2016-03-12 Murray Cumming signal: Allow sigc::signal declaration, like std::function. By adding template specializations that repeats the signal* template declarations, though it would be good to avoid the repetition. Bug 763393 2016-03-12 Murray Cumming slot: Allow sigc::slot declaration, like std::function. By adding a template specialization that repeats each slot*<> declarartion, though it would be good to avoid the repetition. Bug 763393 2016-03-11 Murray Cumming 2.7.2 2016-03-11 Murray Cumming test_accumulated(): Restructure this. To make it clearer and to keep the small tests more self-contained and separate. 2016-03-11 Murray Cumming test_signal: Add test_simple(). 2016-03-11 Murray Cumming test_signal(): Restructure this. To make it clearer and to keep the small tests more self-contained and separate. 2016-03-11 Murray Cumming test_slot(): Restructure this. To make it clearer and to keep the small tests more self-contained and separate. 2016-03-10 Murray Cumming signal: make_slot(): Use non-deprecated constructor. 2016-03-10 Murray Cumming tests: Prefer the non-deprecated mem_fun(reference, func) form. 2016-03-10 Murray Cumming tests: Use std::ref() instead of deprecated sigc::ref(). 2016-03-10 Murray Cumming examples: Don't use deprecated mem_fun(pointer, func). 2016-03-10 Murray Cumming examples build: Disable deprecated API. 2016-03-10 Murray Cumming mem_fun(): Deprecate mem_fun(pointer, func). Leaving just mem_fun(reference, func). See bug #763215 The deprecated mem_fun() has been removed from libsigc+--3.0, so this is a chance to adapt code before switching to libsigc++-3.0. 2016-03-10 Chun-wei Fan MSVC builds: Update sigc++ project Add the new source files and headers from adaptors/lambda, and re-order the source files list into alphabetical order. 2016-03-08 Murray Cumming Also ifdef out bound_argument. And add a specialization for bound_argument. 2016-03-08 Murray Cumming reference_wrapper: Include . 2016-03-08 Murray Cumming Deprecate sigc::ref() in favor of std::ref(). 2016-03-07 Murray Cumming .doap: Correct the web site URL. Though we really must stop using sourceforge even for the web site. 2016-03-07 Murray Cumming Rename our .doap file. 2016-03-07 Murray Cumming Fix tiny typo in a comment. 2016-03-06 Murray Cumming docs: Refer to it as libsigc++, not libsigc++2. 2016-03-06 Murray Cumming website/README: Mention the new git repository. 2016-03-03 Murray Cumming SIGC_CXX_HAS_SUN_REVERSE_ITERATOR: Add std:: now that I removed the using std. See https://bugzilla.gnome.org/show_bug.cgi?id=762065#c2 2016-03-03 Murray Cumming C++11: Make all operator bool() explicit. 2016-03-03 Murray Cumming Remove now-unnecessary SIGC_CXX_HAS_NAMESPACE_STD() configure check. Bug #762065 (Kjell Ahlstedt) 2016-03-03 Murray Cumming Remove unused SIGC_CXX_SELF_REFERENCE_IN_MEMBER_INITIALIZATION() configure check. Bug #762065 (Kjell Ahlstedt) 2016-03-02 Kjell Ahlstedt Improve the documentation of mem_fun() * sigc++/functors/macros/mem_fun.h.m4: * sigc++/functors/slot_base.h: Make it clear that mem_fun() does not return a slot, and 'auto s = sigc::mem_fun(....)' is not equivalent to 'sigc::slot<....> s = sigc::mem_fun(....)'. The confusing documentation was noted by Andrejs Hanins on libsigc-list. 2016-03-01 Murray Cumming Add test_bind_as_slot. This tests sigc::bind()'s indirect use of adaptor_functor<>. I added this because this doesn't work yet in the variadic_bind branch. 2016-03-01 Kjell Ahlstedt 2.7.1 2016-01-14 Murray Cumming m4: Remove unused UPPER and LOWER functions. 2016-01-14 Murray Cumming tests: Use = delete instead of private constructors. To make classes non-copyable. 2016-01-07 Murray Cumming functor_trait.m4: Correct the mem_functor<> declarations. The first template types are T_return and T_obj, not the arguments. This doesn't seem to have been a problem. Maybe this code is not tested or used. 2015-12-17 Kjell Ahlstedt Don't use SIGC_USING_STD() The SIGC_USING_STD() macro is defined as an empty string, if some standard C++ symbols are defined in namespace std. They always are. Since many years, SIGC_USING_STD() is an unnecessary macro. 2015-12-16 Kjell Ahlstedt Temporarily undefine the nil macro, if it's defined * build/cxx.m4: Add SIGC_CXX_PRAGMA_PUSH_POP_MACRO. * configure.ac: Call SIGC_CXX_PRAGMA_PUSH_POP_MACRO. * sigc++config.h.in: Add SIGC_PRAGMA_PUSH_POP_MACRO. * sigc++/functors/macros/functor_trait.h.m4: * sigc++/adaptors/macros/bind.h.m4: * sigc++/adaptors/macros/retype.h.m4: * sigc++/functors/macros/slot.h.m4: * sigc++/macros/signal.h.m4: If nil and SIGC_PRAGMA_PUSH_POP_MACRO are defined, undefine nil temporarily in the header files. nil is a keyword in Objective-C++ and in Mac OS X C++. Bug #695235. 2015-12-15 Kjell Ahlstedt can_deduce_result_type_with_decltype: Rename the check() methods * sigc++/functors/macros/functor_trait.h.m4: Rename the check() methods. check() is a preprocessor macro in Mac OS X. Bug #759315. 2015-12-13 Kjell Ahlstedt Fix some typos 2015-11-16 Kjell Ahlstedt Add a moving signal::connect() overload * sigc++/macros/signal.h.m4: Add signal#::connect(slot_type&&), slot_list::insert(iterator i, slot_type&&), slot_list::push_front(slot_type&&), push_back(slot_type&&). * sigc++/signal_base.[h|cc]: Add signal_base::connect(slot_base&&), signal_base::insert(slot_base&&), signal_impl::connect(slot_base&&), signal_impl::insert(slot_base&&). Bug #756484. 2015-11-13 Murray Cumming 2.6.2 2015-11-12 Murray Cumming Add warnings for use with --enable-warnings=fatal Added use -Wsuggest-override and -Wzero-as-null-pointer-constant. 2015-11-10 Kjell Ahlstedt trackable, slot_base, signal_base, connection: Add some noexcept specs 2015-11-08 Kjell Ahlstedt slot and signal: Add missing move constructors and move assignments * sigc++/functors/macros/slot.h.m4: Add move operators for slot<>. * sigc++/macros/signal.h.m4: Add move operators for signal#<> and signal<>. * tests/test_signal_move.cc: * tests/test_slot_move.cc: Test that the source objects are empty. Bug #756484. 2015-11-08 Kjell Ahlstedt trackable, slot, signal: Remove noexcept specifications * sigc++/functors/macros/slot.h.m4: * sigc++/functors/slot_base.[h|cc]: * sigc++/signal_base.[h|cc]: * sigc++/trackable.[h|cc]: Remove noexcept from the move operators. Bug #756484. 2015-11-06 Kjell Ahlstedt slot: Handle auto-disconnection when a slot contains a slot * sigc++/functors/macros/slot.h.m4: Add sigc::visitor<> specializations for slot# and slot. * tests/test_disconnect.cc: Test auto-disconnection of a slot that contains a slot. Bug #755003. 2015-11-06 Murray Cumming signal_impl: =delete copy and move operations. Prevent, copy and move constructors and assignment operators from being generated automatically. These are never used, but this will make sure of that. See https://bugzilla.gnome.org/show_bug.cgi?id=756484#c5 2015-11-06 Murray Cumming typed_slot_rep: =delete unimplemented copy and move operations. Prevent, copy assignment operator, move constructor and move assignment operators from being generated automatically. These are never used, but this will make sure of that. See https://bugzilla.gnome.org/show_bug.cgi?id=756484#c5 2015-11-06 Murray Cumming slot_rep: =delete copy and move operations. Prevent, copy and move constructors and assignment operators from being generated automatically. These are never used, but this will make sure of that. See https://bugzilla.gnome.org/show_bug.cgi?id=756484#c5 2015-11-06 Murray Cumming Small whitespace changes in docs comment. 2015-10-31 Kjell Ahlstedt trackable: Add a comment 2015-10-21 Kjell Ahlstedt slot and signal: Fix move constructors and move assignments * sigc++/functors/macros/slot.h.m4: Add documentation. * sigc++/functors/slot_base.[h|cc]: Fix the move operators of slot_base. Don't move a connected slot. * sigc++/signal_base.cc: Fix the move assignment of signal_base. * tests/test_signal_move.cc: * tests/test_slot_move.cc: Really test move assignment. Bug #756484. 2015-10-13 Kjell Ahlstedt More use of nullptr instead of 0 2015-10-11 Kjell Ahlstedt slot_rep::disconnect(): Remove a comment, add a test * sigc++/functors/slot_base.cc: Remove a TODO comment at slot_rep::disconnect(). * tests/test_slot_disconnect.cc: Add a test that assigns an empty slot. 2015-09-29 Kjell Ahlstedt Update sigc++/.gitignore 2015-09-27 Murray Cumming 2.6.1 2015-09-26 Kjell Ahlstedt sigc::trackable: Don't move the callback list * sigc++/trackable.[h|cc]: Don't move the callback list. * tests/test_trackable_move.cc: Remove a comment. Bug #755393. 2015-09-26 Kjell Ahlstedt Recreate adaptors/lambda files necessary not to break ABI * sigc++/adaptors/lambda/macros/base.h.m4: * sigc++/adaptors/lambda/macros/lambda.cc.m4: * sigc++/adaptors/lambda/macros/select.h.m4: Recreate these files. * sigc++/Makefile.am: * sigc++/filelist.am: Add the recreated lambda files. Approximately a reversion of commit a259b4c7a1753dbc389ee467fa536339ec820223, "Remove remaining parts of the sigc::lambda API." Differences from an exact reversion: MSVC_Net files are not modified. (Probably something ought to be changed in MSVC_Net2013.) tests/Makefile.am is not modified- is_base_and_derived<> is replaced by std::is_base_of<> in base.h.m4. The extern declarations that were previously in select.h.m4 are moved to lambda.cc.m4. Without them, sigc::_1 .. sigc::_7 are not included in the .so file. All code in the header files are inside #ifndef DOXYGEN_SHOULD_SKIP_THIS. Bug #755550. 2015-09-21 Murray Cumming 2.6.0 2015-09-17 Murray Cumming C++11: deduce_result_type: Simpifying, removing use of std::is_same(). See https://bugzilla.gnome.org/show_bug.cgi?id=753612#c9 2015-09-17 Marcin Kolny C++11: deduce_result_type: build fix, using SFINAE paradigm. Bug #753612 2015-09-17 Murray Cumming C++11: deduce_result_type: Simplify with variadic template and std::conditional<>. Bug #753612 However, the build then fails like so: make[2]: Entering directory '/home/murrayc/checkout/gnome/libsigc++2/examples' g++ -DHAVE_CONFIG_H -I.. -I.. -pedantic -Wall -Wextra -Wshadow -Wformat-security -Werror -Wall -g -O0 -std=c++11 -MT hello_world.o -MD -MP -MF .deps/hello_world.Tpo -c -o hello_world.o hello_world.cc In file included from ../sigc++/adaptors/adaptor_trait.h:10:0, from ../sigc++/functors/slot.h:7, from ../sigc++/signal_base.h:27, from ../sigc++/signal.h:8, from ../sigc++/sigc++.h:86, from hello_world.cc:10: ../sigc++/adaptors/deduce_result_type.h: In instantiation of ‘struct sigc::deduce_result_type&, void>, const std::basic_string, std::allocator >&, void, void, void, void, void, void>’: ../sigc++/adaptors/deduce_result_type.h:60:80: required by substitution of ‘template using deduce_result_t = typename sigc::deduce_result_type::type [with T_functor = sigc::pointer_functor1&, void>; T_args = {const std::basic_string, std::allocator >&, void, void, void, void, void, void}]’ ../sigc++/adaptors/adaptor_trait.h:67:104: required from ‘struct sigc::adaptor_functor&, void> >::deduce_result_type&, void, void, void, void, void, void>’ ../sigc++/adaptors/adaptor_trait.h:88:3: required by substitution of ‘template typename sigc::adaptor_functor::deduce_result_type::type sigc::adaptor_functor::operator()(T_arg1) const [with T_arg1 = const std::basic_string&]’ ../sigc++/functors/slot.h:137:20: required from ‘static T_return sigc::internal::slot_call1::call_it(sigc::internal::slot_rep*, sigc::type_trait_take_t) [with T_functor = sigc::pointer_functor1&, void>; T_return = void; T_arg1 = const std::basic_string&; sigc::type_trait_take_t = const std::basic_string&]’ ../sigc++/functors/slot.h:144:37: required from ‘static void* (* sigc::internal::slot_call1::address())(void*) [with T_functor = sigc::pointer_functor1&, void>; T_return = void; T_arg1 = const std::basic_string&; sigc::internal::hook = void* (*)(void*)]’ ../sigc++/functors/slot.h:529:91: required from ‘sigc::slot1::slot1(const T_functor&) [with T_functor = sigc::pointer_functor1&, void>; T_return = void; T_arg1 = const std::basic_string&]’ ../sigc++/functors/slot.h:1161:26: required from ‘sigc::slot::slot(const T_functor&) [with T_functor = sigc::pointer_functor1&, void>; T_return = void; T_arg1 = const std::basic_string&]’ hello_world.cc:25:50: required from here ../sigc++/adaptors/deduce_result_type.h:56:12: error: no class template named ‘deduce_result_type’ in ‘class sigc::pointer_functor1&, void>’ >::type; ^ In file included from ../sigc++/signal_base.h:27:0, from ../sigc++/signal.h:8, from ../sigc++/sigc++.h:86, from hello_world.cc:10: ../sigc++/functors/slot.h: In instantiation of ‘static T_return sigc::internal::slot_call1::call_it(sigc::internal::slot_rep*, sigc::type_trait_take_t) [with T_functor = sigc::pointer_functor1&, void>; T_return = void; T_arg1 = const std::basic_string&; sigc::type_trait_take_t = const std::basic_string&]’: ../sigc++/functors/slot.h:144:37: required from ‘static void* (* sigc::internal::slot_call1::address())(void*) [with T_functor = sigc::pointer_functor1&, void>; T_return = void; T_arg1 = const std::basic_string&; sigc::internal::hook = void* (*)(void*)]’ ../sigc++/functors/slot.h:529:91: required from ‘sigc::slot1::slot1(const T_functor&) [with T_functor = sigc::pointer_functor1&, void>; T_return = void; T_arg1 = const std::basic_string&]’ ../sigc++/functors/slot.h:1161:26: required from ‘sigc::slot::slot(const T_functor&) [with T_functor = sigc::pointer_functor1&, void>; T_return = void; T_arg1 = const std::basic_string&]’ hello_world.cc:25:50: required from here ../sigc++/functors/slot.h:137:20: error: no matching function for call to ‘sigc::adaptor_functor&, void> >::operator()(const std::basic_string&)’ (a_1); ^ ../sigc++/functors/slot.h:137:20: note: candidates are: In file included from ../sigc++/functors/slot.h:7:0, from ../sigc++/signal_base.h:27, from ../sigc++/signal.h:8, from ../sigc++/sigc++.h:86, from hello_world.cc:10: ../sigc++/adaptors/adaptor_trait.h:88:3: note: template typename sigc::adaptor_functor::deduce_result_type::type sigc::adaptor_functor::operator()(T_arg1) const [with T_arg1 = T_arg1; T_functor = sigc::pointer_functor1&, void>] operator()(T_arg1 _A_arg1) const ^ ../sigc++/adaptors/adaptor_trait.h:88:3: note: substitution of deduced template arguments resulted in errors seen above ../sigc++/adaptors/adaptor_trait.h:107:3: note: template typename sigc::adaptor_functor::deduce_result_type::type sigc::adaptor_functor::operator()(T_arg1, T_arg2) const [with T_arg1 = T_arg1; T_arg2 = T_arg2; T_functor = sigc::pointer_functor1&, void>] operator()(T_arg1 _A_arg1, T_arg2 _A_arg2) const ^ ../sigc++/adaptors/adaptor_trait.h:107:3: note: template argument deduction/substitution failed: In file included from ../sigc++/signal_base.h:27:0, from ../sigc++/signal.h:8, from ../sigc++/sigc++.h:86, from hello_world.cc:10: ../sigc++/functors/slot.h:137:20: note: candidate expects 2 arguments, 1 provided (a_1); ^ 2015-09-11 Chun-wei Fan MSVC Builds: Add "Install" Project This makes building the -mm stack easier by copying the headers and the built DLL, PDB and LIB files to a location where it can be picked up by the gtkmm stack automatically, when they are extracted in a common directory. This is what is currently done with the GTK+ and Clutter stacks for Visual Studio builds. 2015-09-09 Chun-wei Fan Update README on Visual Studio Builds Since the Visual Studio project files and the related sources have been updated to work with Visual Studio 2013, and that the test programs do run well there, update the README file to let people know the situation. https://bugzilla.gnome.org/show_bug.cgi?id=754082 2015-09-09 Chun-wei Fan sigc++config.h.in: Allow Build for MSVC 2013 MSVC 2013 does not have the C++-11 noexcept, so we need to define that to _NOEXCEPT for MSVC 2013. Plus, since by default MSVC 2013 does not allow us to re-define keywords, though they may or may not be supported, we need to use the _ALLOW_KEYWORD_MACROS macro to allow this to happen. https://bugzilla.gnome.org/show_bug.cgi?id=754082 2015-09-08 Kjell Ahlstedt Update source of web page * docs/website/fragments/footer.html_fragment: * docs/website/fragments/html_declaration.html_fragment: * docs/website/devel.shtml: * docs/website/doc.shtml: * docs/website/index.shtml: * docs/website/link.shtml: * docs/website/stable.shtml: Fix or remove broken links. Remove the lists of supported compilers. Mention that a C++11 compiler is required and that support for lambdas has been removed. Bug #754082.