[ciao-users] ACE+TAO+CIAO - 5.4.5 + 1.4.5 + 0.4.5 released


We are pleased to announce a new beta of ACE-5.4.5, TAO-1.4.5 and
CIAO-0.4.5.  This beta contains a number of time/space optimizations,
including POA/Skeleton refactoring and TypeCode reimplementation.  It
also fixes a number of important bugs reported by our users, which we
greatly appreciate, as always.

As usual the latest release is available at:


The doxygen documentation for the beta will be updated in the next few

We encourage you to download the new beta, use it with your
applications, and let us know if you encounter any problems.  As always,
please use the:


so that we have the 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 groups of WashU,
UCI, and Vanderbilt to move ACE+TAO+CIAO forward.  Overviews of our
recent progress and upcoming plans are available at


The overall succeeded test results gathered from all our daily builds is
98% for the ACE tests and 93% for the TAO tests.  Please see


for a summary of these tests.  Our goal is to get these tests close to
100% for the next major release (i.e., ACE 6.0, TAO 2.0, and CIAO 1.0),
which is slated for some time later this summer or early fall.

The following is a list of key changes since the last beta.  Please
refer to the ChangeLog for more details on the problem and the nature of
fixes applied.

Changes common to ACE+TAO+CIAO

.. Added support for GNU G++ 4.0.  This seems to work well on most
  platforms, though there seem to be some issues on the latest Mac OSX
  Tiger release that we'll fix soon.

Changes to ACE

.. Remove special handling in the Thread Specific Storage(TSS) code that
  released the TSS key for ACE_TSS<TYPE>.  ACE_TSS<TYPE> has been
  changed to explicitly free the TSS key when necessary.

.. On Win32 systems: detect thread termination via a hook in DLLMain for
  ACE.dll.  This allows cleanup of TSS objects for non-ACE threads that
  use ACE functions.  The most common case was threads that used ACE
  logging.  Formerly any TSS objects created by these threads would be

.. Added support for GNU G++ 4.0.  The x.4.5 beta takes advantage of g++
  4.0's symbol visibility.  This feature is conceptually similar to MS
  Windows "__declspec(dllexport)" DLL functionality.  Using this new g++
  feature results in substantially improved ACE/TAO/CIAO shared library
  binaries.  A subset of the improvements include the following:

      * The number of unnecessarily exported DSO/DLL symbols is greatly
        reduced, resulting in faster program start times.

      * Smaller footprint.

      * Improved performance since run-time indirection of internal
        symbols is no longer needed.

  No changes to the ACE/TAO sources were necessary to support this
  feature since the required visibility attributes were hidden behind
  the various "*_Export" macros (formerly only useful for MS Windows
  DLLs) used throughout ACE/TAO.  Please see
  for a summary of the improvements in footprint resulting from this

.. The ACE_Reactor destructor will now call close() on the referenced
  reactor implementation. This assures that all handlers are notified
  before the ACE_Reactor object that's most likely referenced in these
  handlers is invalid. Although this should not be a user-visible
  change, it did catch some ACE tests off guard destroying reactor
  implementations and ACE_Reactor interfaces in the wrong order, so it
  may come up in the field as well.  When using dynamically allocated
  reactor implementations, do not destroy the implementation object
  before the ACE_Reactor interface object. Use of the ACE_Reactor
  constructor's delete_implementation argument (with a value of 1) is
  recommended when dynamically allocating reactor implementations.

.. Improved performance of HTBP by not requiring a lookup of peer

.. Added new ACE_SizeCDR stream, which allows one to calculate size of
  the representation without writing anything.

.. Number of improvements in ACE_ROOT/protocols/ace/RMCast, which is the
  new ACE reliable multicast implementation.

Changes to TAO

.. The POA is refactored so that it uses strategies for its
  implementation, which helps minimize footprint for common use cases.

.. The ImR handling is moved to the new ImR_Client library.  If your
  server needs to register itself to the ImR you have to link the new
  ImR_Client library.

.. The MIOP part of the POA is moved to the Group Object Adapter (GOA).
  See the latest version of the MIOP specification.  You have to link
  now with the PortableGroup library and retrieve a GOA instead of the

.. Implemented several missing parts of POA functionality as described by
  the latest CORBA specification.  Missing functionality, incorrect
  exceptions, incorrect minor codes, and much more.

.. Refactored the huge PortableServer.pidl file in several smaller files
  and regenerated all the generated files in the repository.

.. Move TAO_ORB_Manager from PortableServer to Utils library, this is a
  helper class. If you use this class link with the TAO_Utils library

.. The POA has been split in Root_POA and Regular_POA class.

.. The RootPOA now has "RootPOA" as its adapter name, previously it had
  an empty string.  This is required by the CORBA specification, you can
  overrule this by defining TAO_DEFAULT_ROOTPOA_NAME if you want to
  reduce the "RootPOA" string to be shorter, e.g., "".

.. Explicit template instantiation support has been dropped from TAO.  If
  you need to use this please contact one of the companies listed at
  for commercial support.

.. CORBALOC/CORBANAME patched a memory leak and fixed performance related
  to the use of defaulted object keys.

.. Added support for Visual Age on AIX.

.. Made it possible to run most ORB core test with VxWorks in a cross
  host scenario where one part of the test runs on the host and the
  other part of the test runs on the VxWorks target.

.. The skeletons generated by the TAO_IDL compiler have been refactored
  to significantly reduce the size of server applications.  Please see
  for metrics that illustrate the magnitude of the reduction.

.. New TypeCode implementation that reduces the size of TypeCodes in
  memory at run-time.

Changes to CIAO

.. Split the previous NodeApplication interface into NodeApplication and
  Container interfaces to allow multi-container NodeApplication support.
  This is useful to provide an optimized CIAO container support for
  RT-CORBA features.

.. Enhanced CIAO to handle dynamic updating of components at run-time.
  Please see an example in $CIAO_ROOT/DAnCE/examples/Swapping.  We're
  also working on a paper that explains how this feature works, which
  will be available soon.

.. The Config Handlers have been modified to use XML parsing code
  generated by the XML Schema Compiler (XSC).  Binary releases of XSC
  can currently be found at (http://www.dre.vanderbilt.edu/~boris/xsc),
  and a recent snapshot of the CVS repository can be found at
  (http://www.dre.vanderbilt.edu/~wotte/xsc.tbz2).  We plan to integrate
  XSC into the CVS repo and release soon.

.. Supported initializing attribute values on Component through XML tags.
  Please refer to the $CIAO_ROOT/DAnCE/examples/Hello for details,
  particularly the Hello.cid descriptor file.

.. Supported parsing component instance names and using them to generate
  unique component port references, so that multiple instances of the
  same component can be deployed in a single container and the client
  requests could be properly designated to the appropriate ports.

.. Enhance CIAO to support establishing connections between derived type
  ports and base type ports. For example, application deployer could set
  up event connections between base event sink port type and derived
  event source port type.

.. Enhanced the existing set of DAnCE tools to support flattened
  Deployment Plan based deployment, which reduces the time required for
  deploying components by reducing XML parsing overhead.  Please refer
  an example in
  $CIAO_ROOT/DAnCE/examples/BasicSP/flattened_deploymentplan.cdp to see
  how the flattened deployment plan descriptor is used to deploy the
  BasicSP example.

.. Develop regression/performance tests (similar to TAO
  regression/performance tests) that will test/evaluate the performance
  of various features of CIAO.

.. Added regression test script to the nightly build for DAnCE example,
  which helps ensure DAnCE tools are ready to use out-of-the-box in
  various platforms.

.. Improved documentation pages in various places.

.. Many bug fixes and improvements based on work with our sponsors.

Known Issues

.. LoadBalancing on Windows - the LoadManager is not using the correct
  default reactor type on Windows.  It tries to use the ACE_TP_Reactor,
  which does not implement signal handling.  It should use the

.. Notification Service - does not currently work on HPUX due to an issue
  with starting the worker threads with priorities.

.. The Proactor tests fail on most non-Windows platforms.  Rumor has it
  that Redhat Enterprise 4 finally has a working implementation of
  asynchronous I/O, so hopefully the Proactor tests will work better on

.. There's an ASSERT in TAO::PICurrent_Impl::get_slot() on Windows.  We
  plan to fix this soon.

.. With MinGW there is a linker error because of too many files in the
  linker command for the TAO lib.  We plan to fix this for soon.

.. The new recursive typecodes implementation has not been tested
  extensively yet.  If you run into problems please let us know.

Bugzilla Bug Fixes
285, 286, 451, 586, 845, 1089, 1369, 1390, 1467, 1496, 1525, 1542, 1592, 
1637, 1693, 1795, 1889, 1917, 1951, 1961, 1986, 1988, 2038, 2039, 2044, 
2050, 2053, 2055, 2057, 2058, 2073, 2074, 2076, 2078, 2080, 2084, 2091, 
2092, 2094, 2095, 2096, 2097, 2099, 2102, 2104, 2113, 2116

5/14/2005 3:08:24 PM
comp.soft-sys.ace 20326 articles. 1 followers. marlow.andrew (167) is leader. Post Follow

1 Replies

Similar Articles

[PageSpeed] 32


>> Known Issues
>> ============
>> . There's an ASSERT in TAO::PICurrent_Impl::get_slot() on Windows.  We
>>   plan to fix this soon.
> Can you please expand on this issue? Does this always happen on Windows?
> This would appear to be a very serious issue, potentially affecting a
> large
> majority of portable interceptors. Is this related to the recent ACE TSS
> modifications?

Some user had a problem with this assert but I have not seen it personally
and ran several PICurrent tests without problems. We just didn't have time
to fix the issue reported by the user before the x.4.5 release was out. I
would say, just try x.4.5.


5/17/2005 4:49:14 PM