[ace-users] Announcing the release of the new beta (ACE-5.4.8, TAO-1.4.8 and CIAO-0.4.8)

[The following is on behalf of the PrismTech build-czars!]

We are pleased to announce a new beta of ACE-5.4.8, TAO-1.4.8, and
CIAO-0.4.8.  We are currently working hard on the long-awaited x.5
release, which is slated to appear in early 2006.  We therefore wanted
to get this new beta out to fix several important bugs reported by our
users, which we greatly appreciate as always.  We've added a number of
sub-setting improvements that reduce the static/dynamic footprint of
ACE+TAO significantly (www.dre.vanderbilt.edu/Stats has all the
details).  We've also finally added support for Real-time CCM to CIAO
and DAnCE.

This beta is contains the results of our major footprint reduction
effort that started in the summer of 2004.  Between August 1st 2004
and October 14th 2005 the footprint reduction for the ORB_Init
application has been 20%.  Dependent on the parts of TAO you use the
reduction can even be more.  This reduction is inclusive all the
extensions that have been made to TAO the last year.  Interested users
should check out


for more details.  Note that the footprint has increased slightly
again due to emulated exceptions having been disabled in favour of
native C++ exceptions in all stats builds.  We have deprecated support
for emulated exceptions since there are no sponsors for this
configuration.  If you require emulated exceptions please contact one
of the companies listed in


for commercial support.

As usual the latest release is available at:


The doxygen documentation for the beta is also available.

We encourage you to download the new beta, use it with your
applications, and let us know if you encounter any problems.  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 success rates for the test results gathered from all our
daily builds is 97% for the ACE tests and 94% for the TAO tests.
Please see


for a summary of these tests.  Our goal is to get these tests close to
100% for the x.5 release.

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

Changes to ACE

.. Added support for an ACE "versioned" namespace.  When enabled, ACE
  library sources will be placed within a namespace of the user's
  choice or a namespace of the form ACE_5_4_8 by default, where
  "5_4_8" is the ACE major, minor and beta versions.  The default may
  be overridden by defining the ACE_VERSIONED_NAMESPACE_NAME
  pre-processor symbol.  Enable overall versioned namespace support by
  adding "versioned_namespace=1" to your MPC default.features
  file. This enables multiple versions of ACE to run in the same

.. Added an optimization to CDR stream to ignores alignment when
  marshalling data.  Use this new ACE_LACKS_CDR_ALIGNMENT compile-time
  option only when the ACE_DISABLE_SWAP_ON_READ macro is enabled.
  This new option requires ACE CDR engine to do both marshalling and
  de-marshalling, and when this option is enabled the encoded streams
  are no longer compliant with the CORBA CDR specification.

.. Improved IPv6 support.

.. Improved 64bit portability.

.. TTY_IO overhaul
  - Improved documentation.
  - It is now possible to request infinite timeout in portable manner.
    This can be achieved by setting negative value to readtimeoutmsec.
  - Various bugs fixed and portability issues resolved.

.. Subset ACE for TAO and TAO services, which greatly reduces the size of

.. Support for Intel C++ 9.0 on Windows and Linux.

.. Support for Microsoft Visual Studio 2005 (aka VC8) for Win32 as well
  as the Windows CE platforms Pocket PC 2003 and Windows Mobile 5.
  Solution/project files are generated with an appended "_vc8" for
  Win32 and "_WinCE" for the CE platforms. See
  ACE_wrappers/docs/CE-status.txt for more information.

.. Completed implementation of ACE_Dev_Poll_Reactor using the Linux epoll
  facility; tested on Red Hat Enterprise Linux 4.

.. The in-memory size of an ACE_RB_Tree will be smaller due to rearranged
  placement of pointers.

.. Developed Feature Oriented Customizer (FOCUS) tool to enable
  specialization of middleware frameworks such as Reactor and Protocol
  framework.  FOCUS provides an XML based transformation engine, where
  the transformations to specialize the components are captured in XML
  file and a weaver specializes the code.

.. Added support for unrolling ACE_OS::memcpy() copy loop where
  applicable to improve performance. Autoconf tests empirically
  determine whether loop unrolling is at least 10% better than default

Changes to TAO

.. Added support for an TAO "versioned" namespace, which enables multiple
  versions of TAO to run in the same process.  When enabled, TAO
  library sources will be placed within a namespace of the user's
  choice or a namespace of the form TAO_1_4_8 by default, where
  "1_4_8" is the TAO major, minor and beta versions.  The default may
  be overridden by defining the TAO_VERSIONED_NAMESPACE_NAME
  pre-processor symbol.  Enable overall versioned namespace support by
  adding "versioned_namespace=1" to your MPC default.features file.
  See the service configurator file in
  orbsvcs/tests/Notify/XML_Persistence for an example.

.. Subset Anys and TypeCodes to a separate library. If you use
  Any/TypeCode or one of the core TAO libs uses it you should link the
  AnyTypeCode library with your application (POC is Johnny Willemsen

.. PICurrent is moved to the PI library, thereby helping reduce footprint
  if PI is not used.

.. POACurrent has been moved back from PI_Server to PortableServer where
  it belongs.

.. Added IPv6 support for IIOP.

.. When making AMI invocation and the send blocks we buffer the message
  and send it out when the transport is available again, thereby
  improving robustness.

.. Support the latest AMI mapping, the old mapping will be kept working
  until 1.5.1 has been released.  If you need the old mapping add the
  define TAO_HAS_DEPRECATED_EXCEPTION_HOLDER to your config.h file
  before you build TAO and the TAO_IDL compiler.

.. Added CodecFactory::create_codec_with_codesets to create a codec with
  a specific codeset. See OMG issue 6050 for the background.

.. PortableInterceptor::IORInterceptor has been split into IORInterceptor
  and IORInterceptor_3_0.  If you use IORInterceptors read the ChangeLog
  for the details, you may need have to update your code!

.. Smart Proxy reference counting and lifecycle management Fixes: Fixed
  the problem that the smart proxy's destruction process didn't function
  correctly. Fixed Bug 2245.  This also fixed the crash of
  _non_existent() function call.

.. Added new IIOP & SSLIOP option 'reuse_addr' to unset socket level
  option SO_REUSEADDR. On *some* platforms this has the side-effect of
  disallowing two servers from listening on different interfaces of the
  same port. This option *should NEVER be normally used* and when used
  the user should be careful of any platform specific side-effects.

.. Merging of many Notification Service changes/fixes from OCITAO to the
  DOC version.  These generally addressed stability issues such as
  memory leaks, thread leaks, etc.

.. Added support for the new Custom Servant Dispatching (CSD)
  feature. The CSD feature provides user applications with the ability
  to implement and "plug-in" custom strategies to handle the dispatching
  of requests to servants. This new feature is not currently tested for

  A concrete CSD Strategy implementation has also been added to serve
  as a "reference implementation".  This is being called the CSD
  Thread Pool Strategy (TP_Strategy).  The TP_Strategy provides a
  means to decouple the threads (ORB threads) that receive requests
  from the underlying transport from the thread that will ultimately
  dispatch the request to the target servant object.  The TP_Strategy
  implements a "request queue" as the integral part of the mechanism
  that allows an ORB thread to "hand-off" a request to one of the
  TP_Strategy object's worker threads.  The TP_Strategy reference
  implementation is provided as an example of how concrete CSD
  Strategy could be implemented.

  Two approaches are supported for applying CSD strategy to an application.

  1) Explicitly calling CSD interfaces.
     Here is an example application code showing how a TP_Strategy object
     can be created and applied to a POA:

     PortableServer::POA_var poa = ...; // create the poa.

     // Create a new TP_Strategy object and save it into a "smart pointer"
     // variable.
     TAO::CSD::TP_Strategy_Handle csd_strategy= new TAO::CSD::TP_Strategy();

     // Set the number of threads before calling apply_to()
     // i.e. csd_strategy->set_num_threads(2);

     // Set the servant serialization flag before calling apply_to().
     csd_strategy->set_servant_serialization (false);

     // Tell the strategy to apply itself to the poa.
     if (csd_strategy->apply_to(poa.in()) == false)
       ACE_ERROR((LM_ERROR, "Failed to apply CSD strategy to the poa.\n"));
       return -1;

  2) Service Configurator
     The format of the CSD specific parameters for creating the TP_Strategy 
     service object is:      
       -CSDtp <poa_name>:<csd_thread_number>:[OFF]

     The last portion of the parameter is the servant serialization
     flag.  It's only needed when the servant serialization needs be
     turned off, otherwise the servant serialization is always on. When
     servant serialization is on (the default), the TP_Strategy will
     serialize requests to any particular servant.  Requests to
     different servant objects can occur in parallel, but requests to
     any particular servant will be dispatched serially (i.e., one at a

     Here is an example of the svc.conf file.

     dynamic TAO_CSD_TP_Strategy_Factory Service_Object *

     The CSD feature is not currently tested for VxWorks.

Changes to TAO's IDL compiler
.. Added default include paths $TAO_ROOT, $TAO_ROOT/tao,
  $TAO_ROOT/orbsvcs, and $CIAO_ROOT/ciao to IDL compiler execution,
  eliminating the need to add them explicitly to the command line.

.. Added immediate exits to IDL compiler when some name clash errors are
  encountered, avoiding a crash if parsing is continued. Closes Bugzilla

.. Fixed bug in IDL compiler when handling a native exception in an
  operation declared in Messaging::ExceptionHolder.

.. Although not presently supported by CIAO, added error checking to the
  IDL compiler's parsing of IDL home primary keys, which constrain the
  basic valuetype syntax in several ways.

.. Many changes related to refactoring of Anys and Typecodes into a
  separate library (POC is Johnny Willemsen <jwillemsen@remedy.nl>).

.. Changed generated signatures of some valuetype member accessor/mutator
  pairs to be consistent with IN parameter semantics.

.. Changed the behaviour of the _default() method (generated for IDL
  unions that have an explicit or implicit default case label) to
  clean up memory used by the freed member, if necessary.

.. Fixed the order of generated base class stub constructor calls when
  the IDL interface has both concrete and abstract parents.

.. Fixed a bug in the handling of forward declared interfaces that have
  both concrete and abstract parents.

.. Fixed the command line parsing to preserve the literal quotes if they
  are used in an include path that has a space.  Closes Bugzilla #2219.

.. Added spec-required generation of member-initializing constructor for
  valuetypes. See C++ mapping (03-06-03) section 1.17.2. Closes Bugzilla

.. When Any and TypeCode generation is suppressed when compiling IDL no
  typecodes are generated anymore for user exceptions, they are not
  needed for the operation of the ORB

Changes to CIAO & DAnCE

.. Added documentation on using Rational Purify with CIAO and DAnCE.

.. Added tests and documentation for the IDL3-to-IDL2 converter tool.

.. The deprecated RepositoryManager implementation, under
  DAnCE/RepositoryManager, has been removed from this release. Please
  use the Plan_Launcher and flattened deployment plans to deploy
  component assemblies.

.. RepositoryManager:
  - enhanced the implementation to use various optimization techniques
  - added HTTP support
  - added PackageConfiguration visitor to update the locations of the
    implementation artefacts with relevant HTTP URLs
  - refactored some of the code and added a number of helpers functions

.. The XSC based config handlers have been heavily optimized, resulting
  in GREATLY reduced parsing overhead for large deployments.

.. The DAnCE toolchain now supports initializing attributes which have
  enumerated types.  Support for other complex types is planned for the
  future.  Please see examples/Hello/descriptors/
  flattened_deploymentplan_without_ns.cdp for an example of how to
  populate enumerated attributes.

.. Integrated Real-time QoS support to CIAO based on OMG's new Deployment
  and Configuration (D&C) specification. Such effort allows
  application developers to use real-time CORBA 1.0 features within
  their CCM application through meta-programming (via XML metadata
  through DAnCE toolchain). Particularly, we added support for
  server-side RT policies, including extension for schema, container,
  and NodeApplication.

.. Added functionality in XML parsing code to resolve schema in
  $CIAO_ROOT/docs/schema instead of the local directory only. All
  DeploymentPlans should use Deployment.xsd instead of
  Modified_Deployment.xsd, which has been removed.

.. The obsolete Packaging and Deployment (P&D) tools have been completely
  removed from this release.  DAnCE and the standard Deployment and
  Configuration (D&C) tools are now the only supported method of
  deploying components.

.. The CIAO directory structure has changed in support of the previous
  item. The following important directory moves have been made:

  * $CIAO_ROOT/DAnCE/ciao => $CIAO_ROOT/ciao
  * $CIAO_ROOT/DAnCE/examples => $CIAO_ROOT/examples
  * $CIAO_ROOT/DAnCE/Config_Handlers => $CIAO_ROOT/tools/Config_Handlers
  * Various obsolete examples/tutorials/tests have been removed.

.. Error reporting during component deployment has been greatly improved.
  While debugging using CIAO_DEBUG_LEVEL is still available, detailed
  error messages are now generated and propagated to the Plan_Launcher
  using exceptions.

.. generate_component_mpc.pl has been updated to generate MPC files
  useful by the modern CIAO infrastructure.  This script now also
  automatically generates export files.

.. DAnCE has been enhanced to support deploying multiple assemblies with
  the same set of ExecutionManager and NodeMangers.

.. Integrated Real-time QoS support to into the new DAnCE-based runtime
  and deployment tools based on OMG Deployment and Configuration (D&C)
  specification.  The old run-time and deployment tools based on
  original Packaging and Deployment section of the CCM specification
  have been completely removed.  This work includes extensions to D&C
  schema, schema parsers, and container and NodeApplication.

Changes to CIAO's CIDL Compiler
.. Added capability to pass a base class event consumer to a subscribe()
  operation generated for a derived event type.

.. Added support for .cdl file extension, which was belatedly
  standardized by the OMG.

.. Fixed bug in CIDL code generation for some types of component and
  home attributes.

.. The CIDL compiler front-end now supports constants, const expressions,
  bounded strings, bounded sequences, and arrays.

.. The CIDL compiler front-end now supports automatic indentation of
  function arguments (both "new line" and "same line" styles are

.. Added backend CIDL compiler support for constants, arrays, bounded
  strings, bounded sequences, and attribute exceptions, corresponding
  to front-end support added by Boris Kolpackov <boris@kolpackov.net>.

.. Updated documentation to include instructions for building
  the CIDL compiler using MakeProjectCreator (MPC).

.. Fixed a bug in the CIDL compiler's determination if an IDL type is of
  fixed or variable size type, when it is declared in the scope of an
  interface, valuetype or home.

.. Changes to generated servant code to support component

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

.. Support for Microsoft Visual Studio 2005 (aka VC8) for Win32 in TAO
  is proving problematic. The pre-release beta compiler works better
  than the final release candidate. We are investigating this issue.

.. Emulated C++ exceptions are not being maintained anymore.  We are
  keeping the macros in the TAO code until x.5.1 is out, if nobody
  sponsors maintenance at that moment the macros will be removed from
  TAO at that point.  See also

.. TAO is not currently compatible with ACE_USES_WCHAR being set.  This
  will be addressed in the x.4.9 beta.  If you'd like to beta-test this
  for us before that beta comes out please let us know.

.. Support for using CIAO with VxWorks as target is not yet finished.  It
  should be completed before the x.5 release.

.. The autoconf build method has improved but some problems remain, so
  such builds should be treated as experimental. If you want the easiest
  route, use the traditional build method until ACE 5.5.

Bugzilla Bug Fixes

23 ACE bugs fixed: 
1209, 1249, 1352, 1770, 1805, 1991, 2143, 2208, 2216, 2218, 2226, 2232,
2257, 2258, 2259, 2260, 2261, 2263, 2266, 2276, 2279, 2284,  and  2290.

43 TAO bugs fixed:
 786, 1271, 1812, 1813, 1896, 1917, 1957, 1997, 2043, 2074, 2090, 2175,
2201, 2209, 2210, 2211, 2219, 2221, 2222, 2225, 2227, 2233, 2234, 2235,
2244, 2245, 2247, 2248, 2262, 2264, 2267, 2269, 2270, 2271, 2281, 2285,
2287, 2294, 2304, 2311, 2316, 2318,  and  2326.

1 CIAO Bug fixed:
2032. (many other CIAO bugs have been fixed - they just weren't in the
  bugzilla database)

12/21/2005 4:22:47 PM
comp.soft-sys.ace 20326 articles. 1 followers. marlow.andrew (167) is leader. Post Follow

0 Replies

Similar Articles

[PageSpeed] 11