Once again, thanks to the efforts of many developers, testers, and
users, we are pleased to announce the micro and bug fix only release
of ACE 6.1.4, TAO 2.1.4, CIAO 1.1.4, and DAnCE 1.1.4, which is available
from the usual download location at:
under the heading "Latest Micro Release Kit".
The doxygen documentation for this release is also available. In
addition to the packages combined of sources and generate makefiles,
this release provides source-only packages for developers who use MPC to
generate their own makefiles.
We encourage you to download the new release, use it with your
applications, and let us know if you encounter any problems. Please use the:
so that we have the proper version/platform/compiler/options you're
using to report problems. We also request that you take a look at:
for the status of various ongoing projects at the DOC group of
Vanderbilt to move ACE+TAO+CIAO+DAnCE forward. Overviews of our recent
progress and upcoming plans are available at:
The overall success rates for the test results gathered from all our
daily builds is 97% for the ACE tests and 96% for the TAO, CIAO,
and DAnCE tests.
for a summary of these tests. As always, we appreciate your help in
resolving any remaining problems. Please see:
for an overview of our bug fixing policies. Moreover, please see:
for information commercial support services available from various
The following is a list of key changes since the last major release.
Please refer to the corresponding ChangeLog files, NEWS files, or
Bugzilla entries for more details on the problem and the nature of fixes
Changes to ACE
.. Added a new ACE_Time_Value derived template class (Time_Value_T.h):
template <class TIME_POLICY> class ACE_Time_Value_T
This template class overloads 4 new virtual methods from
the ACE_Time_Value base class to provide time policy aware
.. Updated time policy classes to return ACE_Time_Value_T<>
instantiations for the corresponding time policy instead of 'common'
.. Added new ACE_Monotonic_Time_Policy (Monotonic_Time_Policy.h).
This class provides a monotonic time source for supported
platforms (Windows and POSIX platforms providing the required
clock_gettime() time source; currently verified for Windows and
.. Updated OS_NS_Thread to use the new time policy support in
ACE_Time_Value for (relative) time calculations and added new
ACE_OS::condattr_setclock () method.
.. Added TIME_POLICY support to ACE_Condition_Attributes to allow for
monotonic timer support for ACE_Condition.
.. Added TIME_POLICY support to ACE_Message_Queue-s, ACE_Task-s and
related classes to enable support for monotonic timers in the timed
wait methods (ACE_Condition based). See docs/ACE-monotonic-timer.html
for how to use this.
.. Added two new regression tests:
and updated the Bug_4055_Regression_Test to a fixed state.
Changes to TAO
.. CORBA::string_dup() and CORBA::string_free() have been enhanced to use
non-allocated and shared static null strings. This allows for
optimized default null string initialization in CORBA string members
and a reduction in redundant dynamic memory management required for
such. This enhancement can be removed via the config.h by including
NOTE that it is a (CORBA spec) requirement that all CORBA::strings are
deleted via the CORBA::string_free() and allocated via the
CORBA::string_dup() or CORBA::string_alloc() calls; you must not use
the c++ keywords new and delete directly. Previously it was
possible to ignore this requirement, however if you do so now, this
enhancement for null strings will catch you out, as deleting these
null CORBA::strings will cause corrupt heap and/or segfaults.
.. Add support for -ORBPreferredInterfaces option to UIPMC. The form
follows the same pattern as IIOP for IPv4 i.e. a local interface IP
address should be specified as the mapping. e.g.
-ORBPreferredInterfaces 225.*=192.168.0.2. For IPv6 the preferred
interface should (neccessarily) be set as an interface name (e.g.
'eth0' for linux, or 'Loopback Pseudo-Interface' on windows) or an
interface index number on windows. e.g. -ORBPreferredInterfaces
FF01:*=eth0. Also add support an -ORBListenOnAll 0|1 UIPMCFactory
option that can be specified in the svc.conf to make the acceptor
listen on all multicast enabled interfaces on platforms that this is
not the default. This has been observed to be required for the
UIPMCAcceptor to open on the most recent Linux distribs.
NOTE that there is an obvious elephant in the room in testing this
option, we can't rely on any build/test machine having more than one
(or any?) interfaces so the test (TAO/orbsvcs/tests
/Miop/McastPreferredInterfaces), such as it is, is relying on side
effects which may not hold for all platforms. Additionally the IPv6
behaviour isn't even consistent across platforms and the build
machines can't be relied upon to have a 'proper' (non-zero conf link
local) IPv6 configuration. Basically, if you want some confidence
this is actually working I'd advise testing this option before you
use it, running it on a machine with multiple interfaces with the
debug level turned up.
.. Enhanced the MIOP implementation; this protocol now supports MIOP
message fragmentation which is controlled via the new
MIOP_Strategy_Factory. For details see the MIOP_Strategy_Factory
section in the docs/Options.html document included with this
Changes to CIAO
.. The CIAO DDS4CCM integration with OpenDDS has been reworked in a way
that OpenDDS doesn't know anything anymore from CIAO. In order to use
DDS4CCM with OpenDDS you need OpenDDS 3.3 or higher.
Changes to DAnCE
Bugzilla Issues Fixed
0 MPC bugzilla issue fixed:
2 ACE bugzilla issues fixed:
3994 Reduce condition code
4055 ACE conditions with pthread and time shift fail
0 TAO bugzilla issues fixed:
0 CIAO bugzilla issues fixed:
0 DAnCE bugzilla issues fixed: