XDispatch
XDispatch - News
01/01/2015 – Mailing List discontinued

Due to low demand and new budgeting constraints we had to discontinue our self hosted mailing list. We apologize for the inconvenience.

Any new updates to this project will be provided using Twitter and this project page. Please report any found defects to the issue tracker on Github.




28/01/2013 – Version 0.7.2 released

This is a minor bugfix release only fixing an issue with dynamic loading of dlls on Windows using LoadLibrary(). On the other platforms there are no changes except the copyright information which was updated to reflect the new year.

As always the new version is available for download starting today. The launchpad ppa was updated accordingly and will finish its rebuild within the next hours. Please report any experienced bugs to the mailing list.




28/10/2012 – Version 0.7.1 available

Today we publish another bugfix release for xdispatch. Only seconds ago the upload of xdispatch version 0.7.1 to the downloads section finished. The Launchpad PPA will finish its rebuild within the next six hours.

This release has a focus on fixing bugs and has no new features:

  • Improved clang support: When xdispatch was created the new C++11 standard with its lambdas was still in the works and only supported by some compilers. Other compilers provided support for the block closures as introduced by Apple. To provide a cross-platform experience of programming we created a mapping between blocks and lambdas using the dollar symbol $. Consequently it was possible to compile your program on Linux, Windows and Mac OS using the same codebase. As of clang 3.1 we have the first compiler supporting both C++11 lambdas and blocks at the same time. That's why we rewrote the xdispatch interface to support both features at the same time. Starting with this version you will be able to mix lambdas and blocks within your program. The $ mix-up will still be supported but considered deprecated starting in version 0.8. It is recommended to start porting your code to C++11 lambdas.
  • Compile-time queries for dispatch source types: As reported by 'Tennis Stringer Dude'/Jared on the mailing list all source type symbols were exported no matter how bad the implementation on a platform was. Starting with this version we will only export the symbols when actually supported. There is a new macro based query system to check for the source types at compiletime. See the docs for details.

This bugfix release includes a bunch of other changes as well, please see the Changelog for a detailed list of changes. We welcome any bug reports or (always welcome) feature-requests to the mailing list. The Windows and Darwin libraries were linked against Qt 4.8.0 whereas the Linux version was linked against the Ubuntu 12.04 default, which is Qt 4.8.1.

Some additional remarks: It was reported that there are some bugs when creating DISPATCH_SOURCE_TYPE_READ and DISPATCH_SOURCE_TYPE_WRITE sources using the same filedescriptor. As discovered correctly this is due to a bug in the underlying libkqueue. I am happy to report that this bug was already fixed upstream. However we cannot merge that bugfix alone as there is a bunch of other pending changes. We consider this a too big change for a bugfix release and postboned the upstream merge for version 0.8. We hope to get this one out way faster than 0.7.1

Well, there's one last thing... We are happy to announce an official xdispatch mirror repository on GitHub. You can find it at https://github.com/mlba-team/xdispatch. We are looking forward to discover your forks and welcome any contributions.




23/05/2012 – Version 0.7 awaiting your downloads

After months of development we are proud to release the latest version of xdispatch to the public today. Except for xdispatch::source all API calls are source compatible, consequently you can easily upgrade your program by updating your copy of xdispatch and doing a simple recompile. We do still NOT provide binary compatibility!

This release includes three major improvements:

  • Matured Packaging: As more and more people start to use the xdispatch libraries in their own projects we felt it was time to improve our packaging. As a result, starting from now all released binaries will have an embedded version number. On the Mac we moved from dylibs towards creating frameworks including all headers as well. They can easily be installed using a provided package installer and will be located at "/Library/Frameworks". Linux users will be happy to know that we started to create packages for inclusion with the various Linux distributions. For now we offer Ubuntu packages through our PPAs and hope to add Debian along with packages for OpenSUSE, ArchLinux, Gentoo and Fedora until the release of version 0.8. Additionally all binary packages contain a copy of the API documentation bundled with them.
  • Reworked Dispatch Sources: As a first step towards providing more kinds of dispatch sources, the interface contained within xdispatch was completely reworked. This results in easier integration of existing dispatch_source_t and an easier to use interface when implementing your own xdispatch::source_types.
  • Compiler independent closure support: As you know we added C++ lambda support along to the Blocks originally proposed by Apple for use with GCD. However our until 0.6.1 all binaries built and released could either handle lambdas or Blocks. Consequently you needed seperate binaries for each different compiler used, may it be clang or gcc. Naturally this did not go well with creating packages. As a solution we moved all lambda/Blocks specific implementations towards header only, inlined functions as they tend to be one-liners anyway. As a result you can use the same binaries for both clang and gcc – as long as they retain ABI compatibility. You only have to be consistend within your own binary of course.
    Please note that clang will gain C++11 lambda support with version 3.1. This is currently not supported from within xdispatch, currently you can only use Blocks along with clang. A minor release (possibly 0.7.1) is planned introducing this feature.

This release includes a bunch of other changes as well, please see the Changelog for a detailed list of changes. We welcome any bug reports or (always welcome) feature-requests to the mailing list. The Windows and Darwin libraries were linked against Qt 4.8.0 whereas the Linux version was linked against the Ubuntu 11.10 default, which is Qt 4.7.4. Qt 4.8.0 is binary compatible to this version.

Last but not least we reworked our web pages. There's nicer colors, a simpler documentation layout and an improved download page. Along with that we also did a review of our documentation and improved a bunch of text. We really hope you enjoy it.




22/02/2012 – Version 0.6.1 released

Today we published a minor bugfix release to patch some issues discovered in version 0.6.0

This release uses a reimplementation of the QDispatchGroup as the old implementation turned out to be rather buggy. Additionally a bug within libkqueue causing high cpu load with high resolution timers was fixed. Thanks a lot to Simon Langevin and Tennis Stringer Dude for their bug reports. This fix includes some other minor fixes as well – please see the Changelog for a detailed list of changes. We welcome any bug reports or (always welcome) feature-requests to the mailing list.

The Windows and Darwin libraries were linked against Qt 4.8.0 whereas the Linux version was linked against the Ubuntu 11.10 default, which is Qt 4.7.4

This release will be the last and only bugfix release to 0.6 as we are already busy at work for 0.7 which will not only include a cleaned-up C++ interface but also proper installers for Linux and Mac OS. Stay tuned!




14/09/2011 – XDispatch on Mac OS Lion

It's time for an update on Mac OS 10.7 "Lion" compatibility of libXDispatch. Unfortunately we have no access to an installation of Apple's latest operating system so far. But as much as we now yet, xdispatch and QtDispatch should work without any issues. They both depend on the official Grand Central Dispatch API only which was extended but not changed in 10.7.

In the meantime the sources for the latest version of libdispatch/GCD were published at opensource.apple.com. Apple's dev team did some major changes to the original libdispatch sources concerning both code layout, implementation and also added some new api functions. As we did a lot of editing and renaming ourself for providing better cross-platform support, merging those latest changes into our repositories is no easy task. We are monitoring the discussions at libdispatch.macosforge.org for the latest efforts of bringing back Linux support and are also considering the practical use of porting the new dispatch filedescriptors to non Unix platforms (i.e. Windows of course). However, at the current point of view we have no fixed plan when to start working on and supporting those efforts. Instead we will focus on bringing more of the original dispatch_source types to all platforms and provide an xdispatch wrapper for those first. Additionally we hope to bring up some real-world usage examples of libXdispatch.




01/08/2011 – Version 0.6 released

Exactly 2 months since the last release, we gzipped version 0.6 for you today.

This release includes some minor api changes mainly enforcing stricter naming conventions on some setters and getters. We apologize for the inconvenience but still consider this an important change. Additionally we did some fixing regarding the 64bit support on windows as introduced in 0.5. For better performance we updated the supporting libraries libkqueue and libpthread_workqueue.

As always please see the ChangeLog as well. We welcome any bug reports or (always welcome) feature-requests to the mailing list.




01/06/2011 – Version 0.5 ready to use

After producing several new features, we bundled version 0.5 of libXDispatch today

The major new function introduced with this version is the support for dispatch sources both within the basic C++ and the Qt interface. Dispatch sources were originally introduced in Apple's C interface and were based on the libkqueue filter types. Our custom source type model allows the creation of custom source types fitting the own needs perfectly. Currently we are shipping source types for monitoring Qt signals, handling QIODevices (including sockets) as well as dispatching all finished network replies produced by a QNetworkManager. More sourcetypes including mappings of the C sources of libdispatch will emerge in future releases.

A second major change is support for more platforms on the Windows operating system. We are glad to report that Visual Studio 2008 and 64bit builds using Visual Studio 2010 are fully supported starting with this version. We are really proud to say that the number of supported platforms is steadily increasing and thus underlining our goal of producing a cross-platform solution for everybody.

For further changes, please see the ChangeLog. Please report any found bugs or (always welcome) feature-requests to xdispatch (at) mlba-team.de




05/05/2011 – Version 0.4 and 0.3.2 released

We're proud to announce the availability of version 0.4 of the xdispatch libraries

After a lot of work we managed to get the libdispatch sources from macosforge.org to compile and run on windows. Thanks to Brent Fulgham who contributed to the MSVC support and thanks a lot to Mark Heily for maintaining the libkqueue and libpthread_workqueue projects. During the last days we did a lot of extended test runs and consider the windows version quite usable. We will do some performance and memory tweaking during the next versions but consider 0.4 as a good starting point to get to use and to know libdispatch on windows.

Along with the introduction of the original libdispatch implementation on windows comes the introduction of the dispatch_sources. Currently only timers are supported but there is more to come. As always we adapted the xdispatch C++ interface to be compatible as well and introduce xdispatch::timer. QtDispatch received some attention too, mainly the QDispatch(Core)Application classes which we consider to be production ready for now.

Additionally we published 0.3.2 yesterday which can be considered the last bugfix release to the 0.3.x series.

For further changes, please see the ChangeLog. Please report any found bugs or (always welcome) feature-requests to xdispatch (at) mlba-team.de




09/04/2011 – Version 0.3.1 released

Today we released version 0.3.1 of libxdispatch.

This is mainly a bugfix release bringing no new functionality. However we will provide ready-to-use binary packages of libXDispatch starting today. All Packages (including source copies of all released versions) can be found at http://opensource.mlba-team.de/xdispatch/files

For further changes, please see the ChangeLog. Please report any found bugs or (always welcome) feature-requests to xdispatch (at) mlba-team.de




04/04/2011 – Version 0.3 released

Today we released version 0.3 of libxdispatch.

This version is bringing no new functionality but is using native windows threads in favor of the LGPL licensed pthreads-w32 implementation. As a result we could completely omit this external library. Furthermore we moved the xdispatch and QtDispatch libraries from static to shared allowing us to hide private symbols and provide a more consistent (and perhaps binary compatible?) interface in the future.

Starting with version 0.3 of libxdispatch you can be sure to be using apache licensed (or compatible) code only. Consequently there's nothing left stopping you from integrating libxdispatch into your own projects!

For further changes, please see the ChangeLog. Please report any found bugs or (always welcome) feature-requests to xdispatch (at) mlba-team.de




01/04/2011 – Work for 0.4 has started

We're straight on the way to version 0.4. For this release we're planning to integrate the work of Mark Heily, contributor to the original libdispatch sources. He created a libkqueue and libpthread-workqueue user-space implementation along with various patches allowing the original libdispatch sources to build and run on linux. Within our current trunk we already have a working version building on linux and Mac OS but are still busy getting everything to work on windows. As an intermediate release we're planning to create a gcc only (i.e. mingw on windows) version.

Please stay tuned for updates.




19/03/2011 – Version 0.2 released

Today we released version 0.2 of libdispatch.

This version is including an improved header layout and a pure STL dependent C++ interface. Additionally we added a new synchronized keyword as alternative to manual code locking.

ATTENTTION: Due to the layout and interface updates, this version breaks code compatibility with version 0.1

C++ support

While Qt C++ support was available starting with version 0.1 we decided to provide another abstraction layer not needing the heavy-weight Qt libraries. The result can be found within the xdispatch-namespace and is documented on its own page >>

synchronized keyword

As an easy way of writing thread-safe areas of code we're implementing a synchronized keyword when using the C++ or Qt versions of libxdispatch. This powerful feature was loosely inspired by Java and Objective-C/Cocoa. Please see the documentation page for details and examples.

Updates to QtDispatch

QtDispatch has gotten new features as well. Additional to an interface revamp bringing compatibility with the C++ interface we added an (experimental) new QDispatchCoreApplication moving the internal Qt event loop onto the main dispatch queue. The benefit achieved by this change is that other libraries using the main dispatch loop can easily be integrated and used along with QtDispatch.

For further changes, please see the ChangeLog. Please report any found bugs or (always welcome) feature-requests to xdispatch (at) mlba-team.de




11/02/2011 – Version 0.1 released

We're happy to announce the availability of a cross-platform, interface compatible version of the libdispatch framework introduced in Mac OS Snow Leopard. For further description of this project, please see the Main Page.

Please report any found bugs or (always welcome) feature-requests to xdispatch (at) mlba-team.de


© 2011-2013 MLBA (about | privacy). All Rights reserved.