* Sun Jan 07 2018 luc14n0@linuxmail.org
- Update to version 2.2.15:
+ Use streambuffers not streams when testing fdstream and gstream
with char16_t and char32_t character types.
+ Update documentation.
- Pass --docdir to configure to correct the documentation's
destination folder.
* Fri Nov 25 2016 zaitor@opensuse.org
- Update to version 2.2.14.1:
+ Explicitly qualify malloc() as being within the std namespace.
+ Do not document the Cgu::Thread::FutureHelper and
Cgu::Thread::TaskManagerHelper2 namespaces.
+ Update documentation.
* Fri Nov 25 2016 zaitor@opensuse.org
- Update to version 2.2.14:
+ Provide Cgu::AsyncChannel.
+ Remove the 'noexcept' specifier for Cgu::Thread::Cond::wait()
and Cgu::Thread::Cond::timed_wait(): any cancellation
pseudo-exception is inconsistent with this specifier.
+ Provide TaskManager::get_max_tasks() method with documentation
on rate limiting.
+ Zero initialise the character buffer in Reassembler class.
+ Adjust configuration macros to enable use of Cgu::Extension
with guile-2.2.
+ Increase coverage of io_watch tests.
+ Update documentation.
* Sun May 15 2016 zaitor@opensuse.org
- Update to version 2.2.13:
+ Use glib's unix fd implementation for io_watch where glib
>= 2.36 is installed, unless otherwise chosen during
configuration.
+ Update documentation.
* Sun Nov 01 2015 p.drouand@gmail.com
- Update to version 2.2.12
+ Simplify Cgu::Application::add() method.
+ Minor implementation improvement for
Cgu::Thread::parallel_transform* functions.
+ Permit return value optimisation when returning thread object
on starting new thread.
+ Update libtool to version 2.4.6.
+ Documentation fix for doxygen-1.8.9.
+ Update code comments.
+ Update documentation.
* Tue Apr 07 2015 zaitor@opensuse.org
- Update to version 2.2.11:
+ Provide a mutex for calls to make-fresh-user-modules to deal
with guile thread safety issues.
+ Improve efficiency of scheme to C++ list translators for long
lists.
+ Update libtool to version 2.4.4.
+ Update code comments.
+ Update documentation.
* Fri Dec 05 2014 dimstar@opensuse.org
- Update to version 2.2.10:
+ Permit Cgu::Thread::parallel_for_each(),
Cgu::Thread::parallel_for_each_partial(),
Cgu::Thread::parallel_transform() and
Cgu::Thread::parallel_transform_partial() to take const source
iterators.
+ Provide Cgu::IntIter class to enable for loops to be more
easily implemented with the parallel algorithms.
+ With gcc >= 4.8 or clang >= 3.4, implement callback classes
using std::tuple (this enables Callback::make() and
Callback::make_ref() to take up to 10 bound arguments, avoids
a lot of code duplication and makes for a cleaner
implementation).
+ Preallocate vectors in translator functions which return
std::vector.
+ Correct information about clang compatibility.
+ Update documentation.
* Thu Oct 16 2014 zaitor@opensuse.org
- Update to version 2.2.9:
+ Provide AsyncQueue::move_pop_basic(),
AsyncQueueDispatch::move_pop_basic(),
AsyncQueueDispatch::move_pop_dispatch_basic() and
AsyncQueueDispatch::move_pop_timed_dispatch_basic() methods.
+ Prevent new GTK+-3.14 deprecation warnings interfering with
tests.
+ Update build system to automake-1.14.1.
+ Update build system to gettext-0.18.2.
+ Update tests.
+ Add comments about strict aliasing with character set
conversion functions.
+ Update documentation, including to cover C++14.
* Sat Aug 09 2014 dimstar@opensuse.org
- Update to version 2.2.8:
+ Correct testing of minimum values in
Extension::real_to_double() and
Extension::list_to_vector_double().
+ Deal properly with unexpected out-of-memory conditions in
executing Extension::exec() and Extension::exec_shared().
+ Minor code refactoring in EmitterArg::connect() and
SafeEmitterArg::connect().
+ Update documentation.
- Changes from version 2.2.7:
+ Provide a new Extension::exec_shared() function.
+ Throw a C++ exception if a translator throws a native guile
exception, simplify exception handling code and make the
translation of guile exceptions to text more meaningful.
+ Block asyncs when executing a scheme to C++ translator where
guile supports it.
+ Avoid constructing a SafeEmitterArg object with untracked
io_watches.
+ Deal internally with any exceptions in
cgu_winbase_delete_event().
+ Update documentation.
- Changes from version 2.2.6:
+ Provide Cgu::Callback::to_unique(), Cgu::Callback::to_functor()
and Cgu::Callback::to_safe_functor() functions.
+ Make minor adjustments to handling of C++ exceptions in
Cgu::Extension::exec().
+ Fix Cgu::Application tests for API breakage in GTK+-3.12.0.
+ Update documentation.
* Sun Feb 02 2014 zaitor@opensuse.org
- Update to version 2.2.5.1:
+ Deal correctly with a thrown guile exception which has a key
but no other arguments, and a scheme extension file which does
not throw but evaluates to a null list (extension.h).
+ Adjust timing of TaskManager releaser tests
(tests/test_task_manager.cpp).
- Changes from version 2.2.5:
+ Provide support for guile extensions.
+ TaskManager::make_task_packaged_compose() methods, which will
pass a std::future object for a task running on a TaskManager
object asynchronously (task_manager.h, task_manager.tpp;
tests/test_task_manager.cpp).
+ Minor code refactoring and test improvements (parallel.h,
task_manager.tpp; tests/test_task_manager.cpp).
+ Update code comments (async_queue.h, task_manager.h,
task_manager.tpp).
+ Update documentation (task_manager.h).
- Add guile-devel BuildRequires to build the new guile extensions.
* Sat Dec 07 2013 zaitor@opensuse.org
- Update to version 2.2.4:
+ Provide a TaskManager::make_task_packaged() method, which will
return a std::future object for a task running on a TaskManager
object.
+ Provide the expected result where TaskManager::add_task() is
called concurrently with TaskManager::stop_all() in
wait_for_running stop mode.
+ Guarantee strong exception safety of
AsyncQueue::push(value_type&&) and (task_manager.cpp).
+ Guarantee strong exception safety of
AsyncQueue::push(value_type&&) and
AsyncQueueDispatch::push(value_type&&) for std::list container
specialization.
+ Stop deprecation warnings with GTK+-3.10 in tests.
+ Updated documentation.
* Sat Sep 21 2013 zaitor@opensuse.org
- Update to version 2.2.3:
+ Revise implementation of parallel_transform() functions and add
parallel_for_each_partial() and parallel_transform_partial()
functions returning position iterators.
+ Provide a specialization of AsyncQueue and AsyncQueueDispatch
for std::list containers which has push() and emplace() members
which do not allocate within the mutex.
+ Improve scalability of TaskManager objects by starting new
threads and adding to the task queue outside the mutex.
+ As the 2.2 series of c++-gtk-utils has minimum requirements of
gcc >= 4.6 and clang >= 3.2, make non-throwing functions
>'noexcept' where this does not affect ABI.
+ Really delete copy constructor and assignment operator of
Thread::RWLock::WriterTrackLock.
+ Update documentation.
* Sun Aug 18 2013 zaitor@opensuse.org
- Update to version 2.2.2:
+ Add parallel_for_each() and parallel_transform() functions for
TaskManager objects.
+ Provide a move constructor and move assignment operator for
MainWidgetBase, PipeFifo and ScopedHandle classes.
+ Really delete fdstream's copy constructor and assignment
operator.
+ Do not deprecate the version of Future::make() taking a
function pointer and no arguments - it is equivalent to a
callable object.
+ Add documentation on using the library with Qt.
+ Update documentation.
* Thu Jul 04 2013 zaitor@opensuse.org
- Update to version 2.2.1:
+ Provide a Thread::TaskManager::IncHandle class, and deprecate
the use of TaskManager::set_max_threads.
+ Make the TaskManager::add_task() overload taking callable
objects fully exception safe.
+ Issue a g_critical warning if a Thread::TaskManger task expires
with an exception, there is no 'fail' callback and the thrown
object is not Thread::Exit.
+ Replace AC_CONFIG_HEADER macro with AC_CONFIG_HEADERS when
configuring.
+ Update build system to automake-1.13.3.
+ Upgrade doxygen configuration files to doxygen-1.8.4.
+ Update documentation.
* Sat Jun 22 2013 zaitor@opensuse.org
- Update to version 2.2.0:
+ Un-deprecate the overloads of EmitterArg::connect() taking a
Callback::FunctorArg object. This was not intended.
+ Update git links following sourceforge repository changes.
+ Update unit tests.
+ Update documentation.
* Thu May 23 2013 dimstar@opensuse.org
- Update to version 2.1.0:
+ Bump version to version 2.1.0 in the 2.2 series of
c++-gtk-utils.
+ Provide a generic callable object interface for
Callback::post(), start_iowatch(), start_timeout(),
Emitter::connect(), Future::fail(), Future::when(),
Notifer::connect(), SafeEmitter::connect(),
TaskManager::add_task(), TaskManager::make_task_when(),
TaskManager::make_task_when_full(),
TaskManager::make_task_compose() and Thread::start();
deprecate the starting of tasks using Thread::Future and
Thread::TaskManager except by callable objects.
+ Make move construction of AsyncQueue and AsyncQueueDispatch
objects strongly exception safe (async_queue.h).
+ Remove the --with-auto-ptr option.
+ Simplify emitter/releaser implementation now lambdas and range-for
are available in gcc-4.6 and above (emitter.h, emitter.cpp).
+ No longer document the deprecated Callback::make_val() functions.
+ Remove redundant Callback::Callback_function class.
+ Update build system to automake-1.13.1.
+ Stop clang++ mismatched-tags and unused-private-field warnings.
+ Cause bootstrap scripts to build translation files.
+ Make other documentation changes.
- Change soname 2_0-0 defines to 2_2-0: this results in a renamed
package, according to the shared library packaging policy.
* Wed Mar 20 2013 zaitor@opensuse.org
- Update to version 2.0.16:
+ Allow the Callback::lambda() factory function to be passed
callable objects which are lvalues (callback.h).
+ Deal with document format breakage from doxygen markup changes.
+ Update documentation.
- Changes from version 2.0.15:
+ Make global static Notifier objects safe.
+ Avoid use of GObject-style casts in inline functions and
function templates to enable user code defining
G_DISABLE_CAST_CHECKS to be more easily compliant with the
one-definition rule.
+ Remove some other unnecessary GObject-style casts, where the
object concerned is created in the function where the cast is
carried out.
+ Avoid deprecation warning for g_type_init() with glib>=2.36
+ Provide a --without-gtk configuration option, to enable the
library to be compiled without classes which require GTK+
support.
+ Update documentation.
* Mon Jan 14 2013 zaitor@opensuse.org
- Update to version 2.0.14:
+ Add a Cgu::Thread::Taskmanager::change_max_threads() method
+ Generalise the Cgu::Thread::Future and Cgu::Thread::TaskManager
methods which take a function object so as to take the object
via a template parameter rather than via a std::function
object, and deduce return types automatically in the
Cgu::Thread::Taskmanger::make_task_*() and
Cgu::Thread::make_future() methods.
+ Make efficiency improvement when executing 'when' and 'fail'
callback in a Cgu::Thread::TaskManager object and callback in a
Cgu::Thread::Future object.
+ Add test to Cgu::Thread::TaskManager unit tests
+ Update documentation.
* Sun Dec 02 2012 dimstar@opensuse.org
- Update to version 2.0.13:
+ Provide TaskManager::make_task_result(),
TaskManager::make_task_when(),
TaskManager::make_task_when_full() and
TaskManager::make_task_compose() convenience wrapper methods
for target functions which return a value, for easier task
composition.
+ Don't use static member function of local struct for callback
function.
+ Make explicit move operations where relevant.
+ Update unit tests.
+ Update documentation.
* Sun Oct 07 2012 zaitor@opensuse.org
- Update to version 2.0.12:
+ Provide a Cgu::Thread::TaskManager thread pool class for
multiple task to thread mapping and task_manager.
+ Suppress deprecated warnings for g_thread_init(),
GStaticRecMutex and GtkTable with glib-2.34/gtk+-3.6.
+ Replace the sourceforge SVN repository with a sourceforge
git respository.
+ Update documentation.