Revert "Minor modernization of DynamicAny code"
[ACE_TAO.git] / TAO / NEWS
blob32b437bc561acd2bd9d0cf8ba89e0136a09947b2
1 USER VISIBLE CHANGES BETWEEN TAO-4.0.0 and TAO-4.0.1
2 ====================================================
4 USER VISIBLE CHANGES BETWEEN TAO-3.1.4 and TAO-4.0.0
5 ====================================================
7 - ACE/TAO now require C++17 or newer
9 USER VISIBLE CHANGES BETWEEN TAO-3.1.3 and TAO-3.1.4
10 ====================================================
12 - None
14 USER VISIBLE CHANGES BETWEEN TAO-3.1.2 and TAO-3.1.3
15 ====================================================
17 - None
19 USER VISIBLE CHANGES BETWEEN TAO-3.1.1 and TAO-3.1.2
20 ====================================================
22 - TAO_IDL: Added support for the map data type, but this isn't supported in TAO
23   user applications except for local usage
25 USER VISIBLE CHANGES BETWEEN TAO-3.1.0 and TAO-3.1.1
26 ====================================================
28 - Removed deprecated -ORBResources flag
30 USER VISIBLE CHANGES BETWEEN TAO-3.0.11 and TAO-3.1.0
31 =====================================================
33 . Removed usage of ACE service configurator for all
34   POA internal strategy classes
36 USER VISIBLE CHANGES BETWEEN TAO-3.0.10 and TAO-3.0.11
37 ======================================================
39 . Fixed some compiler warnings given by newer compilers
41 . PortableGroup cleanup
43 USER VISIBLE CHANGES BETWEEN TAO-3.0.9 and TAO-3.0.10
44 =====================================================
46 . Various cleanup and using more C++11 features
48 USER VISIBLE CHANGES BETWEEN TAO-3.0.8 and TAO-3.0.9
49 ====================================================
51 . Various cleanup
53 USER VISIBLE CHANGES BETWEEN TAO-3.0.7 and TAO-3.0.8
54 ====================================================
56 . Moved operators<<= and >>= for CORBA::Any to the CORBA namespace.
57   This makes the code compatible with GCC 12 and removes the need for
58   both the -fdelayed-template-parsing workaround (for clang) and defining
59   ACE_ANY_OPS_USE_NAMESPACE in config-macos*.h.
61 . Removed unused configuration option ACE_ANY_OPS_USE_NAMESPACE
63 USER VISIBLE CHANGES BETWEEN TAO-3.0.6 and TAO-3.0.7
64 ====================================================
66 . Fixed an issue with handling spaces in paths for TAO_IDL
68 . TAO_IDL: Fix open file error not mentioning the filename and not checking if
69   the file is actually a directory.
71 USER VISIBLE CHANGES BETWEEN TAO-3.0.5 and TAO-3.0.6
72 ====================================================
74 . Various cleanup and using more C++11 features
76 . Fixed compilation error in the TAO core when using C++20
78 USER VISIBLE CHANGES BETWEEN TAO-3.0.4 and TAO-3.0.5
79 ====================================================
81 . TAO_IDL: Fix bug where floating point constant expressions fail to evaluate.
82   This bug was introduced in 3.0.3
84 USER VISIBLE CHANGES BETWEEN TAO-3.0.3 and TAO-3.0.4
85 ====================================================
87 . Various cleanup and using more C++11 features
89 USER VISIBLE CHANGES BETWEEN TAO-3.0.2 and TAO-3.0.3
90 ====================================================
92 . Support for IDL 4 explicitly-named integer types like `int64` in TAO_IDL.
93   Support for `uint8` and `int8` is limited in TAO. Unlike the larger types,
94   these are new distinct types that are not aliases of existing types covered
95   by the CORBA specification
97 . Added the `tao/idl_features.h` header file for getting the IDL features
98   supported by TAO_IDL. See the file for example usage
100 . TAO_IDL: Fix empty case evaluation on unions with enum discriminators
102 USER VISIBLE CHANGES BETWEEN TAO-3.0.1 and TAO-3.0.2
103 ====================================================
105 . Fix wstring coerce leak in tao_idl
107 . Support C++ Keywords in `DCPS_DATA_SEQUENCE_TYPE`
109 . Minor cleanup
111 USER VISIBLE CHANGES BETWEEN TAO-3.0.0 and TAO-3.0.1
112 ====================================================
114 . Minor cleanup
116 USER VISIBLE CHANGES BETWEEN TAO-2.5.12 and TAO-3.0.0
117 =====================================================
119 . C++11 is now a mandatory compiler feature which is
120   required for TAO
122 . Fixed some CORBA spec mismatches for the CORBA server
123   portable interceptors
125 . Add portspan support to DIOP
127 USER VISIBLE CHANGES BETWEEN TAO-2.5.11 and TAO-2.5.12
128 ======================================================
130 . Removed usage of narrow_from_decl and narrow_from_scope
131   from TAO_IDL, use dynamic_cast now that we have RTTI. Any
132   user that has a custom backend should make the similar
133   changes to their own TAO_IDL backend
135 USER VISIBLE CHANGES BETWEEN TAO-2.5.10 and TAO-2.5.11
136 ======================================================
138 . Simplified some code generated by tao_idl
140 USER VISIBLE CHANGES BETWEEN TAO-2.5.9 and TAO-2.5.10
141 =====================================================
143 . TAO IDL Frontend annotation support extended: (#1125)
144   . All the direct contents of interfaces
145   . Porttypes, eventtypes, components, and all their direct contents
146   . Valuetypes and most of their direct contents
148 . TAO IDL now supports anonymous types when using IDL4. (#1135)
150 USER VISIBLE CHANGES BETWEEN TAO-2.5.8 and TAO-2.5.9
151 ====================================================
153 . With C++11 we are now using (u)int8/16/32/64 to map all
154   CORBA types
156 USER VISIBLE CHANGES BETWEEN TAO-2.5.7 and TAO-2.5.8
157 ====================================================
159 . Fixed handling of transient errors with DII requests
161 . Renamed `VERSION` file to `VERSION.txt` to avoid conflicting with the
162   `version` standard header.
164 USER VISIBLE CHANGES BETWEEN TAO-2.5.6 and TAO-2.5.7
165 ====================================================
167 . Fixed deprecated-copy warnings in TAO_IDL generated code
169 . The TAO IDL Frontend now supports annotations on interfaces, operations, and
170   attributes. (#967)
172 . `idl_global->eval` in the TAO IDL Frontend will now produce error and warning
173   messages. This can be silenced by passing `true` as a second argument. (#967)
175 . Expanded documentation on what can be annotated and roughly how to extend
176   annotation support in `TAO_IDL/docs/annotations.md`. Also made various
177   corrections. (#967)
179 . Fixed invalid free in the TAO IDL Frontend while parsing an IDL wstring
180   literal. (#984)
182 USER VISIBLE CHANGES BETWEEN TAO-2.5.5 and TAO-2.5.6
183 ====================================================
185 . Fixed race condition in ImplRepo on server shutdown/restart (#889)
187 USER VISIBLE CHANGES BETWEEN TAO-2.5.4 and TAO-2.5.5
188 ====================================================
190 . Fixed Memory Leaks in TAO_IDL caused by the addition of Annotations (#811)
192 . Changes in the Annotations API in TAO_IDL, see
193   TAO/TAO_IDL/docs/annotations.md section titled "TAO 2.5.5" for details.
195 USER VISIBLE CHANGES BETWEEN TAO-2.5.3 and TAO-2.5.4
196 ====================================================
198 . Enhanced the ImR to better handle a huge number
199   of servers which use the ImR heavily and each of
200   them does a frequent shutdown/start cycle
202 . The TAO_IDL frontend library now parses all IDL4
203   annotation-related syntax: using and defining annotations.
204   Use the tao_idl command-line options --idl-version and
205   --unknown-annotations to control annotation parsing.
206   Documentation on this feature is located in
207   TAO/TAO_IDL/docs/annotations.md.
209 . TAO_IDL now will return an error status code when
210   passing an invalid command line argument.
211   Backends will have to support this behavior
212   explicitly, see TAO/TAO_IDL/include/idl_defines.h
213   for details.
214   TAO_IDL also accepts new options such as -h,
215   --help, --version, and --syntax-only, the latter
216   of which won't generate any files, just check
217   syntax of the IDL file(s).
218   See tao_idl -h for details.
220 . When using IDL_Files in MPC, generated files will
221   now be placed in the current directory by default,
222   instead of the directory of the IDL file.
223   Use
224     idlflags += -o <IDL_FILE_DIR>
225     gendir = <IDL_FILE_DIR>
226   to output generated files to where the IDL file
227   is.
229 USER VISIBLE CHANGES BETWEEN TAO-2.5.2 and TAO-2.5.3
230 ====================================================
232 . Enhance ssliop and uiop corbaloc parsers
234 USER VISIBLE CHANGES BETWEEN TAO-2.5.1 and TAO-2.5.2
235 ====================================================
237 . Enhance logging within the ImR
239 . Enhance the behavior of the ImR with a per-client
240   activation mode and multiple clients starting in
241   parallel
243 . Modified the SSLIOP::Protocol_Factory::init to
244   process an "-SSLEcName" argument to set the ECDH
245   curve name.
247 USER VISIBLE CHANGES BETWEEN TAO-2.5.0 and TAO-2.5.1
248 ====================================================
250 . Make use of std::atomic when C++11 or newer is enabled
251   for the CORBA reference counting
253 USER VISIBLE CHANGES BETWEEN TAO-2.4.8 and TAO-2.5.0
254 ====================================================
256 . The TAO core libraries now use std::unique_ptr instead
257   of std::auto_ptr when C++11 or newer is enabled
259 USER VISIBLE CHANGES BETWEEN TAO-2.4.7 and TAO-2.4.8
260 ====================================================
262 . Logging enhancements to the TAO core for some possible
263   error situations
265 USER VISIBLE CHANGES BETWEEN TAO-2.4.6 and TAO-2.4.7
266 ====================================================
268 . TAO_IDL parses and discards IDLv4 annotations (applying, not defining)
270 . Fixed Bug 1220 as it applies to the SHMIOP transport.
272 USER VISIBLE CHANGES BETWEEN TAO-2.4.5 and TAO-2.4.6
273 ====================================================
275 . Added support for IPv4-mapped IPv6 addresses in BiDirGIOP+SSLIOP.
277 . Fixed Bug 1220 as it applies to the SSLIOP transport.
279 USER VISIBLE CHANGES BETWEEN TAO-2.4.4 and TAO-2.4.5
280 ====================================================
282 . Extended TAO_IDL with a new -Gsd which enabled the generation of two
283   additional static operations for each interface. _desc_repository_id to
284   retrieve the repository id as string, second _desc_interface_name to
285   return the interface name. Both can be useful in template meta programming
286   use cases where we want to use the repository id or interface name
287   of a specific type.
289 USER VISIBLE CHANGES BETWEEN TAO-2.4.3 and TAO-2.4.4
290 ====================================================
292 . Minor cleanup and fixes to the code generated by TAO_IDL
294 USER VISIBLE CHANGES BETWEEN TAO-2.4.2 and TAO-2.4.3
295 ====================================================
297 . Added enhanced hot-standby feature to FT_Naming_Service. Use
298   tao_ft_naming -h to get a list of new configuration options.
299   This feature addresses performance problems on heavily loaded systems.
301 USER VISIBLE CHANGES BETWEEN TAO-2.4.1 and TAO-2.4.2
302 ====================================================
304 . Fixed some problems with versioned namespaces in the
305   tao_idl generated code
307 . Removed the non-const Any extraction operators which
308   are deprecated within the IDL to C++ specification
309   for a long time. Reduces footprint and simplifies the
310   code. Make sure you are using 'const Foo*' as extraction
311   type for Foo instead of 'Foo*'.
313 USER VISIBLE CHANGES BETWEEN TAO-2.4.0 and TAO-2.4.1
314 ====================================================
316 . Reduced amount of warnings given by newer gcc/clang
317   versions on the generated tao_idl code
319 USER VISIBLE CHANGES BETWEEN TAO-2.3.4 and TAO-2.4.0
320 ====================================================
322 . None
324 USER VISIBLE CHANGES BETWEEN TAO-2.3.3 and TAO-2.3.4
325 ====================================================
327 . ImR enhancement - Added a "force remove" option to the Implementation repository
328   that will remove a server entry from the ImR Locator repository and kill any
329   running instance with a single command.
331 . ImR enhancement - Fix to allow very large ( > 4K ) command line.
333 . ImR enhancement - Enhance the coordination between the Locator and the Activator
334   to tolerate running on heavily loaded systems, in particular when a server process
335   is slow to shut down, and a new server is started before the shutdown is complete
337 . LogWalker utility improvements for handling truncated GIOP buffer dumps, added
338   tracking thread first/last contact times.
340 . Fault-Tolerance improvement - Optimize performance on NFS mounted filesystems. First
341   a deadlock is resolved. Second, use of writer locks is minimized to only when writing
342   is necessary. Third, NFS occasionally causes transient EBADF errors on access, so
343   file access that results in a bad file error is retried before the error is reported
344   to the application.
346 USER VISIBLE CHANGES BETWEEN TAO-2.3.2 and TAO-2.3.3
347 ====================================================
349 . Extended SL2 Security Manager to easily allow non-secure collocated
350   invocations but still disallow non-secure remote invocations
352 . Relaxed upper limit on POA Thread pool size.
354 . Fixed PICurrent improper reset issue. Now slot data is retained through an
355   ImR forced retry.
357 . Bugzilla #4205 fixed.
359 . Defaulted IIOP endpoints on IPv6 enabled systems will no longer append localhost
360   to the IOR if there are no routable IPv6 addresses but there are routable IPv4
361   addresses available.
363 . Improved the performance of the FT-ImR while under very heavy loads.
365 . ImR now may be built on "uses_wchar" platforms.
367 . The temporary directory used by the tao_idl preprocessor may now
368   contain spaces.
370 USER VISIBLE CHANGES BETWEEN TAO-2.3.1 and TAO-2.3.2
371 ====================================================
373 . New SSLIOP Factory option -SSLPassword <password descriptor> facilitates
374   distributing password protected private keys.
376 . New SSLIOP Factory option -SSLVersionList <list> constrains the list of
377   cypher versions allowed.
379 . New SSLIOP Factory option -SSLCheckHost enables a second layer of
380   authentication by comparing the sending hostname to the name or names in
381   the supplied certificate
383 USER VISIBLE CHANGES BETWEEN TAO-2.3.0 and TAO-2.3.1
384 ====================================================
386 . TAO is now hosted on github (https://github.com/DOCGroup/ATCD).
387   As part of the release process we now generate a ChangeLog
388   for each release which is stored in the ChangeLogs directory
390 . Fixed incorrect server status shown by tao_imr after a
391   crashed server has been given a shutdown command
393 USER VISIBLE CHANGES BETWEEN TAO-2.2.8 and TAO-2.3.0
394 ====================================================
396 . New feature added to constrain client ORBs using IIOP to only use local TCP
397   ports spanning a supplied range. Use new ORB_init parameters
398   -ORBIIOPClientPortBase <base> and -ORBIIOPClientPortSpan <count> to specify
399   a range from base to base + count. A base supplied without a span indicates
400   the client may use only a single port. A span supplied without a base is
401   silently ignored.
403 . Fixed the manual activation mode of the Implementation Repository
405 . Reintroduced the restart attempt limiting of the Implementation Repository
407 . Fix a connection leak that occurred when the server side cache purged a
408   Thread-Per-Connection managed entry.
410 USER VISIBLE CHANGES BETWEEN TAO-2.2.7 and TAO-2.2.8
411 ====================================================
413 . Address a problem with Failover between primary and backup ImplRepo locators.
414   Access state information is now shared during a server restart allowing a client
415   to request a new server from either the ImR instance.
417 USER VISIBLE CHANGES BETWEEN TAO-2.2.6 and TAO-2.2.7
418 ====================================================
420 . Improved the performance of the load balancing feature of the tao_ft_naming
421   service. Now a global load balancing strategy may be set via the command line
422   using the new -l ["random"|"round_robin"] argument. The newly implemented
423   random strategy is lockless.
425 . Fixed active server detection when switching from the primary ImR locator to
426   the backup.
428 . Added a new command for the windows NT Naming service CLI to set the service's
429   start up argv list without invoking regedit.
431 . Added a new command for the windows NT Notify service CLI to set the service's
432   start up argv list without invoking regedit.
434 USER VISIBLE CHANGES BETWEEN TAO-2.2.5 and TAO-2.2.6
435 ====================================================
437 . Fix bug with mt_noupcall that allowed upcalls while waiting for a new connection
439 . Improved the performance of dynamic thread pool when activating new threads
441 . Improved the performance of the SYNC_WITH_SERVER oneway synchronization when
442   used in conjunction with the CSD framework and POA thread pools
444 . Fix support for long double types when used with dynamic Anys
446 . Improve functionality and stability of running tests on
447   Android Virtual Device (AVD).
449 USER VISIBLE CHANGES BETWEEN TAO-2.2.4 and TAO-2.2.5
450 ====================================================
452 . Implementation Repository new features added.
453   - New tao_imr kill command to signal an otherwise unresponsive server.
454   - New tao_imr link command to identify groups of POAs that share a server.
455   - ImR is better able to avoid errantly starting multiple server instances.
457 . Added support for Embarcadero C++Builder XE5 using
458   bcc32 in debug and release mode
460 . Added support for Embarcadero C++Builder XE6 using
461   bcc32 in debug and release mode
463 USER VISIBLE CHANGES BETWEEN TAO-2.2.3 and TAO-2.2.4
464 ====================================================
466 . Added a new Client Strategy Factory option, -ORBDefaultSyncScope which
467   takes the label "None", "Transport", "Server", or "Target" to define the
468   sync scope to be used when a Messaging SyncScopePolicy is not in use.
470 . Improved recursive typecode handling
472 . Ended maintenance for Solaris 10 with Sun Studio
474 USER VISIBLE CHANGES BETWEEN TAO-2.2.2 and TAO-2.2.3
475 ====================================================
477 . Fix for extra CDR padding bytes following a request header when there are no
478   IN or INOUT arguments in the request. This happened when a request had at least
479   one OUT argument, and also had a service context that ended off a CDR alignment
480   boundary. While this is not a problem for TAO-TAO messaging, some non-TAO
481   servers will reject such requests with a MARSHAL exception. See bug 4141 for more
482   information.
484 USER VISIBLE CHANGES BETWEEN TAO-2.2.1 and TAO-2.2.2
485 ====================================================
487 . None
489 USER VISIBLE CHANGES BETWEEN TAO-2.2.0 and TAO-2.2.1
490 ====================================================
492 . Implementation Repository is better able to handle high request volume
493   particularly when registered servers are going up and down.
495 . Fixed several memory leaks in the Trading Service
497 . Added support for Embarcadero C++BuilderXE4 using
498   bcc32 in release mode
500 USER VISIBLE CHANGES BETWEEN TAO-2.1.9 and TAO-2.2.0
501 ====================================================
503 . Feature enhancement for the Implementation Repository, the command to
504   list currently active servers, confirmed with a ping, is now asynchronous
505   along with the rest of the implementation.
507 . Added the new -ORBListenerInterface UIPMC option to provide detailed control
508   over which IP interfaces are to be listened on for which mutlicast addresses.
509   This works in a similar way to the existing -ORBPreferredInterfaces
510   ORB_init command line option but for UDP server listeners instead of client
511   senders. See the TAO_UIPMC_Protocol_Factory section in the
512   docs/release/TAO/Options.html document for details. This option allows
513   UIPMC/MIOP to control which interfaces are used by the server to listen
514   for broadcast messages instead of only using the "default" interface.
516   If TAO is built with the #define TAO_ALLOW_UNICAST_MIOP in effect, the
517   normal error checking on joins is short circuited, such that MIOP can
518   be used to send to a unicast address instead of a broadcast group. In general
519   I would not recommend building TAO with this option set, end users should
520   concider using the DIOP protocol instead.
522 . Fix for long standing Valuetype non-conformance (Bugzilla_1391):
524   tao_idl generated ValueType OBV_* classes now also provide a
525   _copy_value() method where this class is supposed to be the final
526   "most derived" class. It is still left to the end user to provide
527   such a method in their own most derived class when this is not
528   the case (as only the final implimentation of the Valuetype will
529   know how this duplication is performed).
531   TAO can be built specifically to treat _copy_value() as a pure virtual
532   function (as per the standard, and now the default behaviour) or,
533   if #define TAO_VALUETYPE_COPY_VALUE_IS_NOT_PURE is defined during the
534   building of TAO, a non-pure virtual function (in which TAO does not
535   require an implimentation to provide the _copy_value() function as per
536   the previous TAO implimentations).
538   TAO doesn't normally use the _copy_value() fuction itself, but if
539   #define TAO_VALUETYPE_COPYING_ANY_INSERTION_USES_COPY_VALUE
540   is in effect during the build, valuetypes "copy" inserted into an any
541   will call _copy_value() instead of increasing the reference count of the
542   actual valuetype being "copied". In such cases obviosuly the _copy_value()
543   method is required to be implemented. There are problems taking this
544   general approach however, as the automatically generated _copy_value() is
545   not capable of duplicating cyclic graphs held in valuetypes, which
546   realistially require the reference counting insertions to be utalised
547   and/or knowledge of the actual use of the valuetype itself. This setting
548   is not recommended.
550 USER VISIBLE CHANGES BETWEEN TAO-2.1.8 and TAO-2.1.9
551 ====================================================
553 . High performance implementation Repository [#4104] - The Implementation
554   Repository Locator has been reimplemented using AMI/AMH to avoid the
555   problem of nested upcalls under heavy load.
557 USER VISIBLE CHANGES BETWEEN TAO-2.1.7 and TAO-2.1.8
558 ====================================================
560 . Fault Tolerant Implementation Repository [#4091] - The Implementation
561   Repository Locator now supports a dual-redundant fault tolerant
562   configuration which provides replication and seamless failover between
563   the primary and backup locator servers.
565 . Implementation Repository interoperable with JacORB servers [#4101] -
566   The Implementation Repository can now be used to manage JacORB
567   3.3 or later application servers.
569 . Fault Tolerant Naming Service [#4092 & #4095] - A new Fault Tolerant
570   Naming Service (tao_ft_naming), provides dual-redundant fault tolerant
571   servers which utilize replication and seamless failover between the
572   primary and backup server. The Fault Tolerant Naming Service can be
573   used to provide load balancing capabilities (only the round-robin load
574   balancing strategy is currently supported) through the use object groups.
575   This feature is supported by a separate utility for managing the object
576   groups (tao_nsgroup) as well as a programatic interface via IDL.
578 . Configurable Persistence Mechanism [#4092] - Extracted persistence
579   mechanism used for storable naming context into Storable_* classes so
580   that it can be reused. Simplified use of storable read/write so that
581   it behaves more like C++ streams to read/write binary and CDR data.
582   Added support for creating a backup mechanism to accomodate
583   potentially corrupted files.  Providing configurable hooks so
584   applications can decide if files are obsolete and need to be written
585   to the persistence store.
587 . ORB Dynamic Thread Pool [#4093] - Added a new ORB thread pool strategy
588   to dynamically adjust the number of threads which the ORB uses to
589   service received calls based on several configuration parameters.
590   These parameters include initial threads, minimum pool threads,
591   maximum pool threads, request queue depth, thread stack size, and
592   thread idle time.
594 . POA Dynamic Thread Pool [#4094] - A new Dynamic Thread Pool and
595   Queuing strategy was created for POA usage. It leverages the
596   existing Custom Servant Dispatching framework for invocation and
597   activation. The strategy also dynamically adjusts the number of
598   threads using configuration parameters similar to the ORB Dynamic
599   Thread Pool. The Dynamic Thread Pool POA Strategy supports
600   applications in associating a single thread pool with either
601   1) a single POA in a dedicated configuration, or 2) multiple
602   POAs in a shared configuration.  The strategy controls a request
603   queue used to accept calls directed to an associated servant and
604   a pool of threads that wait to service calls coming in on a
605   particular queue.
607 . Multiple Invocation Retry [#4096] - Extended TAO to support multiple
608   retry in the presence of COMM_FAILURE, TRANSIENT, OBJECT_NOT_EXIST,
609   and INV_OBJREF exceptions. In addition, retries can occur if it has
610   been detected that a connection has closed while waiting for a reply
611   (currently not available under FreeBSD, OpenVMS, AIX, and Solaris). This
612   feature can be used to support fault tolerant services (specifically
613   the Fault Tolerant Naming and Implementation Repository services
614   described earlier).  The invocation retry support allows
615   configuration on how many times to try to connect to each server and
616   the delay between tries.
618 . Added MIOP configuration options -ORBSendThrottling and -ORBEagerDequeueing,
619   along with #define overrides for their default settings. See the descriptions
620   in the MIOP section of doc/Options.html for their use.
622 USER VISIBLE CHANGES BETWEEN TAO-2.1.6 and TAO-2.1.7
623 ====================================================
625 . Integrated several patches to simplify Debian/Ubuntu
626   packaging
628 . Fixed IDL compiler bug related to internal reinitialization
629   when processing multiple IDL files in a single execution.
631 USER VISIBLE CHANGES BETWEEN TAO-2.1.5 and TAO-2.1.6
632 ====================================================
634 . We only try to load the ObjRefTemplate library at POA
635   creation instead of trying to load it at each servant
636   activation
638 USER VISIBLE CHANGES BETWEEN TAO-2.1.4 and TAO-2.1.5
639 ====================================================
641 . None
643 USER VISIBLE CHANGES BETWEEN TAO-2.1.3 and TAO-2.1.4
644 ====================================================
646 . CORBA::string_dup() and CORBA::string_free() have been enhanced to use
647   non-allocated and shared static null strings. This allows for optimized
648   default null string initialization in CORBA string members and a
649   reduction in redundant dynamic memory management required for such.
650   This enhancement can be removed via the config.h by including
651     #define TAO_NO_SHARED_NULL_CORBA_STRING
653   NOTE that it is a (CORBA spec) requirement that all CORBA::strings are
654   deleted via the CORBA::string_free() and allocated via the
655   CORBA::string_dup() or CORBA::string_alloc() calls; you must not use
656   the c++ keywords new and delete[] directly. Previously it was possiable
657   to ignore this requirement, however if you do so now, this enhancement
658   for null strings will catch you out, as deleting these null
659   CORBA::strings will cause corrupt heap and/or segfaults.
661 . Add support for -ORBPreferredInterfaces option to UIPMC. The form follows
662   the same pattern as IIOP for IPv4 i.e. a local interface IP address should
663   be specified as the mapping. e.g. -ORBPreferredInterfaces 225.*=192.168.0.2.
664   For IPv6 the preferred interface should (neccessarily) be set as an interface
665   name (e.g. 'eth0' for linux, or 'Loopback Pseudo-Interface' on windows) or an
666   interface index number on windows. e.g. -ORBPreferredInterfaces FF01:*=eth0.
667   Also add support an -ORBListenOnAll 0|1 UIPMCFactory option that can
668   be specified in the svc.conf to make the acceptor listen on all multicast
669   enabled interfaces on platforms that this is not the default. This has been
670   observed to be required for the UIPMCAcceptor to open on the most recent
671   Linux distribs.
673   NOTE that there is an obvious elephant in the room in testing this option,
674   we can't rely on any build/test machine having more than one (or any?)
675   interfaces so the test (TAO/orbsvcs/tests/Miop/McastPreferredInterfaces),
676   such as it is, is relying on side effects which may not hold for all platforms.
677   Additionally the IPv6 behaviour isn't even consistent across platforms and
678   the build machines can't be relied upon to have a 'proper' (non-zero conf
679   link local) IPv6 configuration. Basically, if you want some confidence this is
680   actually working I'd advise testing this option before you use it, running it
681   on a machine with multiple interfaces with the debug level turned up.
683 . Enhanced the MIOP implementation; this protocol now supports MIOP message
684   fragmentation which is controlled via the new MIOP_Strategy_Factory.
685   For details see the MIOP_Strategy_Factory section in the docs/Options.html
686   document included with this distribution.
688 USER VISIBLE CHANGES BETWEEN TAO-2.1.2 and TAO-2.1.3
689 ====================================================
691 . Added OpenSSL configuration options SSLCipherList and
692   SSLServerCipherOrder to SSLIOP_Factory.  Allows SSL/TLS BEAST
693   exploit to be mitigated.
695 USER VISIBLE CHANGES BETWEEN TAO-2.1.1 and TAO-2.1.2
696 ====================================================
698 . Changed behavior of Receive-Wait client wait strategy with
699   ORBConnectionHandlerCleanup after oneway calls to register with
700   the reactor after the call to clean up after connection closure.
702 . Added an extension of the CosNotifyFilter::FilterFactory to
703   allow removal of filters created by the factory.  The extension
704   also has accessors for existing filters and ids.
706 USER VISIBLE CHANGES BETWEEN TAO-2.1.0 and TAO-2.1.1
707 ====================================================
709 . Correct ZIOP compression arbitration on the server reply
710   path. The server now responds with one of the clients
711   exposed compressors that the server also supports
712   according to the ZIOP specification.
714 . Enhanced the plugable transports such that the
715   send_message() api now provides an optional TAO_ServerRequest
716   object pointer to provide access to any client side
717   policies that are broadcast with each request. This enabled
718   the ZIOP compression correction to be coded.
720 USER VISIBLE CHANGES BETWEEN TAO-2.0.8 and TAO-2.1.0
721 ====================================================
723 . Added new rle compressor and enabled ZIOP by default
725 . Implimented DynValue, DynValueBox and DynValueCommon and their
726   creation/use by TAO_DynAnyFactory::
727     create_dyn_any (), create_dyn_any_from_type_code (),
728     create_dyn_any_without_truncation (), create_multiple_dyn_anys ()
729     and create_multiple_anys ().
731 . Correct the interaction of CORBA::ValueTypes and CORBA::Anys.
732     The insertion into an Any of a ValueType base pointer
733     used to set the Anys typecode to the fully derived valuetype.
734     This allowed the any to be marshaled correctly sending the
735     derived typecode and value over the wire. However it also
736     stopped the user from extracting the valuetype from the any
737     as the typecode for, or the actual pointer type being used for,
738     the extraction couldn't match the any's internal two different
739     types. The any's typecode is now simply set to match the base
740     pointer which allows for the correct insertion/extraction from
741     the any, whilst the marshalling code for anys containing
742     valuetypes now sends the fully derived typecode of the fully
743     derived data it is marshalling instead of the anys embedded
744     (possiably base valuetype) typecode.
746 USER VISIBLE CHANGES BETWEEN TAO-2.0.7 and TAO-2.0.8
747 ====================================================
749 . Added support for MPC's new feature that creates dependency files for IDL
750   files when generating '-type gnuace' projects. Turned off by default, it
751   can be enabled in a features file or on the command line with
752   '-features ace_idl_dependencies=1'.
754 . Fixed IDL compiler bug where a generated component servant method that
755   is called by the middleware to initialize a component's attributes
756   was not including attributes of supported interfaces.
758 USER VISIBLE CHANGES BETWEEN TAO-2.0.6 and TAO-2.0.7
759 ====================================================
761 . Added Time_Policy_Manager, a TIME_POLICY strategy manager configurable
762   through the service configurator framework.
763   This allows the dynamic configuration of the TIME_POLICY strategy used for
764   ORB timers and countdowns. TAO includes two default TIME_POLICY strategies as
765   statically linked service objects; TAO_System_Time_Policy_Strategy and
766   TAO_HR_Time_Policy_Strategy (the first being used as default strategy).
767   The docs/Options.html file describes the configuration options in detail.
768   Two new tests have been added exemplifying these new options; tests/Time_Policy
769   and tests/Time_Policy_Custom.
770   Furthermore two new compile time option macros have been added related to
771   TIME_POLICY strategies:
772   - TAO_USE_HR_TIME_POLICY_STRATEGY if defined will force the use of the new
773     TAO_HR_Time_Policy_Strategy as default time strategy instead of
774     TAO_System_Time_Policy_Strategy;
775   - TAO_HAS_TIME_POLICY if explicitly defined as 0 ('#define TAO_HAS_TIME_POLICY 0')
776     will build TAO without the new TIME_POLICY strategy support.
778 USER VISIBLE CHANGES BETWEEN TAO-2.0.5 and TAO-2.0.6
779 ====================================================
781 . Added new define TAO_DEFAULT_COLLOCATION_STRATEGY (default = thru_poa)
782   which is used as -ORBCollocationStrategy isn't specified.
784 . Added new -ORBCollocationStrategy best. TAO tries to perform the best
785   possible collocation, first direct if possible, then through_poa if possible
786   else no collocation.
788 . Enhanced the RW -ORBWaitStrategy and the EXCLUSIVE -ORBTransportMuxStrategy
789   to also work with AMI requests.
791 . mt_noupcall has been improved and generically speaking the handling of client
792   leader threads in LF has been improved and fixed of potential deadlock
793   situations
795 . The TAO skeletons got refactored to reduced footprint, a footprint saving
796   for the skeletons between 10 and 60% has been achieved. For the full
797   distribution including CIAO, DAnCE, OpenDDS, and DDS4CCM using RTI DDS this
798   resulted in a reduction of 650,000 lines of code. Also the S.inl files are
799   not generated anymore
801 USER VISIBLE CHANGES BETWEEN TAO-2.0.4 and TAO-2.0.5
802 ====================================================
804 . Updated several TAO tests for automatic testing on Android
806 USER VISIBLE CHANGES BETWEEN TAO-2.0.3 and TAO-2.0.4
807 ====================================================
809 . Added new IFR_Client_skel library that is now used by the IFR_Service
811 . Moved TAO_IDL generation of argument traits from the stub and
812   skeleton .cpp files to the corresponding .h files.
814 USER VISIBLE CHANGES BETWEEN TAO-2.0.2 and TAO-2.0.3
815 ====================================================
817 . Improved support for mt_noupcall but this is still not optimal due to a 2ms
818   wait delay
820 . Addressed several Coverity reported issues
822 USER VISIBLE CHANGES BETWEEN TAO-2.0.1 and TAO-2.0.2
823 ====================================================
825 . Remove support for already deprecated -ORBConnectionCachingStrategy
827 . Removed -ORBObjectKeyTableLock and -ORBPOALock, very risk options and this
828   way the regular invocation path can be optimized much more
830 . Improved support for mt_noupcall wait strategy. Upcall detection has been
831   improved and the transport is polled each 2ms to see if we can do the
832   upcall.
834 . Improved performance of the Parallel Connect Strategy in TAO.
836 . tao_catior does a better job with JacORB generated IORs.
838 . tao_cosnaming can now be multithreaded.
840 USER VISIBLE CHANGES BETWEEN TAO-2.0.0 and TAO-2.0.1
841 ====================================================
843 . Fixed IDL compiler bug that caused illegal references to items
844   in the scope of a template module to be overlooked.
846 USER VISIBLE CHANGES BETWEEN TAO-1.8.3 and TAO-2.0.0
847 ====================================================
849 . Improved support for abstract
851 USER VISIBLE CHANGES BETWEEN TAO-1.8.2 and TAO-1.8.3
852 ====================================================
854 . TAO IDL compiler now generates attribute members for generated CCM
855   executor implementation classes, as well as full implementations for
856   the associated set/get operations.
858 . Add TAO IDL compiler command line option -iC, which overrides the
859   default include path (current directory or $TAO_ROOT/tao) for
860   *C.h files included in generated *A.h files.
862 . Removed autoconf support for TAO, it is really not tested, unstable, and
863   unmaintainable at this moment
865 . The TAO IDL compiler now gives the following error when anonymous
866   types are used: 'anonymous types are deprecated by OMG spec'.
867   One can changes this error into a warning. There's also a possibility
868   to silence the TAO IDL compiler about this message. One of the following
869   defines can be added to your config.h file in order to change the behavior
870   of the TAO IDL compiler:
871   * IDL_ANON_ERROR:   The TAO IDL generates an error when it encounters
872                       an anonymous type (default behavior).
873   * IDL_ANON_WARNING: The TAO IDL generates a warning when it encounters
874                       an anonymous type.
875   * ANON_TYPE_SILENT: The TAO IDL doesn't generate a warning nor an error
876                       when it encounters an anonymous type.
878 . Renamed ALL ORB services executables. This because of
879   the fact that the TAO ORB services should be recognizable
880   between the ORB services of other CORBA vendors. There are
881   systems where ORB services of several CORBA vendors are
882   installed (mainly via the installed packages). The following
883   rename actions have been taken place:
884   * 'LifeCycle_Service'       to 'tao_coslifecycle'
885   * 'Dump_Schedule'           to 'tao_dump_schedule'
886   * 'NT_Notify_Service'       to 'tao_nt_cosnotification'
887   * 'Notify_Service'          to 'tao_cosnotification'
888   * 'FT_ReplicationManager'   to 'tao_ft_replicationmanager'
889   * 'IFR_Service'             to 'tao_ifr_service'
890   * 'TAO_Service'             to 'tao_service'
891   * 'Fault_Detector'          to 'tao_fault_detector'
892   * 'Scheduling_Service'      to 'tao_cosscheduling'
893   * 'Basic_Logging_Service'   to 'tao_tls_basic'
894   * 'Notify_Logging_Service'  to 'tao_tls_notify'
895   * 'Event_Logging_Service'   to 'tao_tls_event'
896   * 'RTEvent_Logging_Service' to 'tao_tls_rtevent'
897   * 'Naming_Service'          to 'tao_cosnaming'
898   * 'NT_Naming_Service'       to 'tao_nt_cosnaming'
899   * 'CosEvent_Service'        to 'tao_cosevent'
900   * 'Event_Service'           to 'tao_rtevent'
901   * 'LoadManager'             to 'tao_loadmanager'
902   * 'LoadMonitor'             to 'tao_loadmonitor'
903   * 'Trading_Service'         to 'tao_costrading'
904   * 'Time_Service_Server'     to 'tao_costime_server'
905   * 'Time_Service_Clerk'      to 'tao_costime_clerk'
906   * 'ImplRepo_Service'        to 'tao_imr_locator'
907   * 'ImR_Activator'           to 'tao_imr_activator'
908   * 'Fault_Notifier'          to 'tao_fault_notifier'
909   * 'Concurrency_Service'     to 'tao_cosconcurrency'
911 . Fixed several bugs related to recursive typecodes
913 USER VISIBLE CHANGES BETWEEN TAO-1.8.1 and TAO-1.8.2
914 ====================================================
916 . Extended logging related to the POA active object map
918 USER VISIBLE CHANGES BETWEEN TAO-1.8.0 and TAO-1.8.1
919 ====================================================
921 . IDL compiler
923   - Added code generation for an empty implementation of
924     the reply handler interface generated as part of an
925     AMI4CCM connector, triggered by the same option, -Gex,
926     that generates a similar implementation for a
927     component executor.
929   - Added flags that can be defined in config.h to output
930     an error or warning if an anonymous IDL construct is
931     seen by the IDL compiler. Also added IDL compiler
932     options to do the same (or override a global flag)
933     for individual IDL files.
935 USER VISIBLE CHANGES BETWEEN TAO-1.7.9 and TAO-1.8.0
936 ====================================================
938 . Added minimal exploratory support for alternate IDL->C++
939   mapping: IDL string->std::string and IDL sequence->std:vectors.
940   We are talking with sponsors to see if we can raise funds
941   to make a full new IDL to C++ mapping proposal that uses
942   all new C++0x features
944 . Fixed bugzilla #3853.
946 . Improved the speed of tao_idl when processing
947   large input files with many module re-openings.
949 . Removed MCPP support from TAO_IDL.
951 . Extended support for CIAO DDS4CCM and AMI4CCM in TAO_IDL
953 USER VISIBLE CHANGES BETWEEN TAO-1.7.8 and TAO-1.7.9
954 ====================================================
956 . TAO's default makefiles (traditional ACE/GNU, not autoconf/automake)
957   now support installation with "make install".
958   Please see the ACE-INSTALL.html file for instructions.
960 . Refactored several parts of TAO_IDL
962 USER VISIBLE CHANGES BETWEEN TAO-1.7.7 and TAO-1.7.8
963 ====================================================
965 . Added -ORBHandleLoggingStrategyEvents option. Given
966   that ORB is run in user application this option allows
967   to easily add log file rotation.
969 . Added a new option -ORBIgnoreDefaultSvcConfFile.
970   This allows TAO to ignore only svc.conf file while
971   processing normally other user provided configuration
972   files or directives.
974 USER VISIBLE CHANGES BETWEEN TAO-1.7.6 and TAO-1.7.7
975 ====================================================
977 . Add IDL3+ support to TAO_IDL
979 . Cleanup in TAO_IDL. Part of this cleanup closes
980   (Bugzilla 2200).
982 USER VISIBLE CHANGES BETWEEN TAO-1.7.5 and TAO-1.7.6
983 ====================================================
985 . Added support for iPhone/iPod Touch/iPad. The following
986   environment variables are needed:
988   IPHONE_TARGET, should be set to either SIMULATOR or
989   HARDWARE. Set to HARDWARE if you want to deploy
990   on the iPhone/iPod Touch/iPad device.
992   IPHONE_VERSION, should be set to 3.1.2 or 3.2. One can
993   set the version to any future or past versions, but
994   only 3.1.2 and 3.2 have been tried.
996   Note that one has to compile ACE/TAO statically as
997   it is believed that the iPhone OS does not support
998   dynamic loading of external libraries. The usual
999   procedure of cross compiling ACE/TAO applies
1000   (such as setting HOST_ROOT environment variable).
1002 . Added support for IDL template modules in the IDL
1003   compiler front end. This is partly tested, some
1004   parts do work, some not yet
1006 . Fixed bug in optional ostream operator generation
1007   for IDL arrays.
1009 . Added member validation feature to LoadBalancer.
1011 . Add support for valuetype repository id and value
1012   on both input and output streams.
1014 . Added support for Embarcadero C++ Builder 2010
1016 . Added method TAO_Leader_Follower::set_new_leader_generator().
1018 . Fixed missing request id in logging of LocateRequest/LocateReply &
1019   CancelRequest.
1021 . Fixed problems with ORB shutdown in combination with active
1022   requests.
1024 USER VISIBLE CHANGES BETWEEN TAO-1.7.4 and TAO-1.7.5
1025 ====================================================
1027 . Converted a lot of TAO tests to use the new test framework
1029 . Fix problem in the IDL compiler where set/get methods for
1030   attributes in a local interface derived from a non local interface
1031   where not regenerated as pure virtual
1033 . Fixed some bugs concerning spaces within roots, to allow TAO_IDL
1034   to be used by user projects that are installed on windows paths
1035   such as "c:\Project Files\..." or "c:\Documents and Settings\.."
1036   etc.
1038 . The IDL3+ keywords porttype/port/mirrorport are now fully
1039   implemented and tested
1041 . Fixed bug in code generation for components, where a derived
1042   component or home with more than one generation of ancestors
1043   was missing inherited operations in its operation table
1045 . Merged in changes from OCI's distribution which originate from
1046   OCI request ticket [RT 13596, RT 13704].
1048   - Added queue-overflow statistics to the Notification Service MC.
1049   - Modified Notification Service MC to work in static builds.
1050   - Corrected an error that caused Notification Service MC statistics
1051     to fail when -AllocateTaskPerProxy is used.
1052   - QueueDepth have been changed to measure the number of entries
1053     rather than attempting unsuccessfully to estimate the amount of
1054     memory used by the queue.
1055   - Added TAO_EXPLICIT_NEGOTIATE_CODESETS macro to improve the ease
1056     of including optional codeset support to Notify_Service in static
1057     builds.
1058   - Added new MPC features (notify_monitor_control and
1059     negotiate_codesets).
1060   - fixed ACE_Logging_Stragey service loading issue in static builds.
1062 USER VISIBLE CHANGES BETWEEN TAO-1.7.3 and TAO-1.7.4
1063 ====================================================
1065 . Initial support for IDL3+ in the TAO_IDL compiler front end.
1066   IDL3+ is an extension to IDL3 driven by the DDS4CCM draft
1067   standard. IDL3+ adds a porttype which is a logical grouping
1068   of CCM ports and a concept of templates (like C++)
1070 . Changed behaviour of -Glem and -Glfa
1072 . Ported a large set of TAO tests to the new test framework
1074 . Added a capability to throw BAD_PARAM exception in case
1075   there is an attempt to access sequence elements above
1076   sequence length. By default this capability is turned on
1077   in debug builds with defining TAO_CHECKED_SEQUENCE_INDEXING.
1078   BAD_PARAM exception is also thrown in case a new sequence
1079   length for bounded sequence is greater than the bound
1080   defined in IDL.
1082 USER VISIBLE CHANGES BETWEEN TAO-1.7.2 and TAO-1.7.3
1083 ====================================================
1085 . Merged in changes from OCI's distribution which
1086   originate from OCI request ticket [RT 12994]. Added
1087   following ORB options.
1089     -ORBForwardOnceOnObjectNotExist [0|1]
1090     -ORBForwardOnceOnCommFailure [0|1]
1091     -ORBForwardOnceOnTransient [0|1]
1092     -ORBForwardOnceOnInvObjref [0|1]
1094   The -ORBForwardOnceOnObjectNotExist ORB option is added
1095   to avoid side effect from
1096   -ORBForwardInvocationOnObjectNotExist that could cause
1097   the request fall into forward loop in some use cases
1098   (e.g. client sends request while servant is deactivated).
1099   The other options are added for the same purpose to avoid
1100   possible forward loop upon specified exceptions.
1102 . Corrected TAO_IDL dds code generation to count WChar size for wstring
1103   marshal size.
1105 USER VISIBLE CHANGES BETWEEN TAO-1.7.1 and TAO-1.7.2
1106 ====================================================
1108 . Extended IDL compiler to take over all code generation from
1109   the CIAO CIDL compiler, which has been eliminated.
1110   See $TAO_ROOT/docs/compiler.html for details.
1112 . Added code generation for export header files. See
1113   $TAO_ROOT/docs/compiler.html for details.
1115 USER VISIBLE CHANGES BETWEEN TAO-1.7.0 and TAO-1.7.1
1116 ====================================================
1118 . Improved Unicode compatibility.
1120 . Improved service configuration processing.
1122 USER VISIBLE CHANGES BETWEEN TAO-1.6.9 and TAO-1.7.0
1123 ====================================================
1125 . Merged in changes from OCI's distribution which originate from
1126   OCI request ticket [RT 12912]. In their totality, the changes
1127   added new features for IMR to support the capability of client
1128   automatically reconnects servers within same port range upon
1129   server restart. The ServerId is added to ServerInfo in IMR to
1130   help identify server process. The -UnregisterIfAddressReused
1131   option is added to IMR to enable the address reuse checking
1132   upon server registering. The servers that address is reused
1133   are unregistered from IMR. The -ORBForwardInvocationOnObjectNotExist
1134   option is added to forward request to next available profile
1135   upon receiving OBJECT_NOT_EXIST exception reply.
1137 . The -ORBRunThreads of the notification service has been renamed
1138   to -RunThreads and the notification service can now be loaded
1139   as dll.
1141 . Updated ZIOP to match the OMG Beta 2 specification
1143 . Added a new utility, tao_logWalker, see utils/logWalker for details.
1144   This tool analises a collection of log files containing output of
1145   TAO running with -ORBDebuglevel 10, and generates a report showing
1146   process, thread and invocation summaries.
1148 . Fixed bug in Notification Service that the filter constraint expressions
1149   are ignored when event type domain_name or type_name is specified
1150   (see bug 3688).
1152 . The MCPP version optionally used by TAO_IDL has been updated to 2.7.2.
1153   Efforts have been taken to port this to as many platforms as possible,
1154   however, since it is not currently the default configuration it may
1155   not work across all platforms.
1157 USER VISIBLE CHANGES BETWEEN TAO-1.6.8 and TAO-1.6.9
1158 ====================================================
1160 . Reply Dispatchers are refactored. No deadlock occurs when an
1161   (a)synchronous CORBA call is made during dispatching a reply.
1163 . Fixed IDL compiler bug that in some cases caused code generation for
1164   inherited operations to be skipped.
1166 . The Transport Cache Size maximum is now a hard maximum.
1168 . Fixed several bugs related to the purging of transports when the cache
1169   is almost full.
1171 . New TAO-specific feature of Notification service improves management
1172   of proxies when peer goes away without disconnecting from proxy.  See
1173   orbsvcs/Notify_Service/README for details in the svc.conf section.
1175 . Improved Notification topology persistence, now persists filters.
1177 . Updated ZIOP to match the beta 1 OMG specification.
1179 USER VISIBLE CHANGES BETWEEN TAO-1.6.7 and TAO-1.6.8
1180 ====================================================
1182 . Fixed race condition when multiple threads make a connection to the
1183   same server (bugzilla 3543)
1185 . Updated several tests to the new test framework
1187 . Fixed several memory leaks and make sure the TAO singletons are
1188   destructed when the TAO DLL gets unloaded
1190 . Improved WinCE unicode support and extended the number of tests that
1191   can be run with WinCE
1193 . Fixed some race conditions in the transport cache. There are several
1194   known issues resolved in the transport cache when it starts purging.
1196 . Fixed memory leak in string and object reference sequences.
1198 . Bugs fixed: 3078, 3499, 3524, 3543, 3549, 3557, 3559.
1201 USER VISIBLE CHANGES BETWEEN TAO-1.6.6 and TAO-1.6.7
1202 ====================================================
1204 . Added a fix for bug 2415.  Added -DefaultConsumerAdminFilterOp and
1205   -DefaultSupplierAdminFilterOp TAO_CosNotify_Service options for setting
1206   the default filter operators.
1208 . The full TAO distribution compiles with unicode enabled. Work is ongoing
1209   to make the TAO runtime results comparable with the ascii builds.
1211 . Added two new ORB parameters, -ORBIPHopLimit and -ORBIPMulticastLoop. The
1212   first one controls number of hops an IPv4/IPv6 packet can outlive. The
1213   second one is related to MIOP only and it takes boolean value which
1214   directs whether to loop multicast packets to the originating host or not.
1216 . Added the "TAO" and "TAO/orbsvcs" OCI Development Guide Examples under the
1217   directories /DevGuideExamples and /orbsvcs/DevGuideExamples.  NOTE this is
1218   an ongoing port of the original version x.5.x examples and some are not yet
1219   100% compatiable with the current version of TAO.
1221 . Split CosLifeCycle library into separate client stub and server
1222   skeleton libraries.  Fixes bugzilla issue #2409.
1224 . Split CosTime library into separate client stub, server skeleton,
1225   and server implementation libraries.  Fixes bugzilla issue #3433.
1227 . Avoid core dumps when evaluating TCL and ETCL expressions containing
1228   divisions by zero.  Partial fix for bugzilla issue #3429.
1230 USER VISIBLE CHANGES BETWEEN TAO-1.6.5 and TAO-1.6.6
1231 ====================================================
1233 . Added a new text based monitor to the Notify_Service to keep track of
1234   consumers that were removed due to a timeout.
1236 . Repaired the -ORBMuxedConnectionMax <limit> option on the resource factory.
1237   This service configurator option defines an upper limit to the number of
1238   connections an orb will open to the same endpoint.
1240 . Repaired a problem that caused the ORB to open too many connections to
1241   an endpoint.
1243 . Added a -Timeout option to the Notify_Service to allow the user to apply a
1244   relative round-trip timeout to the ORB.  This option requires that the
1245   'corba_messaging' MPC feature be enabled during building of the
1246   Notify_Service, which it is by default.
1248 . Added ZIOP support to TAO. ZIOP adds the ability to compress the
1249   application data on the wire. This is a join effort of Remedy IT, Telefonica,
1250   and IONA. We are working on getting this standardized through the OMG.
1251   Until this has been formally standardized we don't guarantee
1252   interoperability with other ORBs and between different versions of
1253   TAO that support ZIOP, this is done after this has been accepted
1254   by the OMG. If you want to experiment with ZIOP you need to add
1255   TAO_HAS_ZIOP 1 as define to your config.h file. See TAO/tests/ZIOP
1256   for an example how to use it. All policies are not checked on all
1257   places so it can happen that the ORB sends uncompressed data when
1258   it could have compressed it. This is because of limitations in the
1259   policy mechanism in the ORB which will take a few weeks to rework.
1260   Also note that ZIOP doesn't work together with RTCORBA
1262 . Added a -m option to the ImplRepo (ImR, Implementation Repository) Activator,
1263   which specifies the maximum number of environment variables which will be
1264   passed to the child process.  The default (and previous behavior) is 512.
1266 USER VISIBLE CHANGES BETWEEN TAO-1.6.4 and TAO-1.6.5
1267 ====================================================
1269 . Updated TAO to comply with the IDL to C++ mapping v1.2. As a result
1270   CORBA::LocalObject is now refcounted by default
1272 . Added a new ORB parameter, -ORBAcceptErrorDelay, that controls the amount
1273   of time to wait before attempting to accept new connections when a
1274   possibly transient error occurs during accepting a new connection.
1276 . Fixed a bug which could lead to an ACE_ASSERT at runtime when a TAO
1277   is used from a thread that is not spawned using ACE
1279 . Added new Monitoring lib that can be used to retrieve values from
1280   the new Monitoring framework in ACE. This is disabled by default
1281   because it is not 100% finished yet, with the next release it
1282   will be enabled by default
1284 . Extended the -ORBLaneListenEndpoints commandline option to support
1285   *, for details see docs/Options.html
1287 . VxWorks 6.x kernel mode with shared library support
1289 USER VISIBLE CHANGES BETWEEN TAO-1.6.3 and TAO-1.6.4
1290 ====================================================
1292 . Service Context Handling has been made pluggable
1294 . Improved CORBA/e support and as result the footprint decreased when
1295   CORBA/e has been enabled
1297 . Added the ability to remove consumer and supplier proxies and consumer and
1298   supplier admins through the Notify Monitor and Control interface.
1300 . Changed Interface Repository's IOR output file from being
1301   world writable to using ACE_DEFAULT_FILE_PERMS.
1303 . Add support for a location forward with a nil object reference.
1305 USER VISIBLE CHANGES BETWEEN TAO-1.6.2 and TAO-1.6.3
1306 ====================================================
1308 . Fixed send side logic (both synchronous and asynchronous) to honor
1309   timeouts. An RTT enabled two-way invocation could earlier hang
1310   indefinately if tcp buffers were flooded.
1312 . Bug fix for cases where the IDL compiler would abort but with an
1313   exit value of 0.
1315 . Bug fix in IDL compiler's handling of typedef'd constants having
1316   a bitwise integer expression as the value.
1318 . Bug fix that ensures valuetypes and their corresponding supported
1319   interfaces have parallel inheritance hierarchies.
1321 . Fix for possible out-of-order destruction of Unknown_IDL_Type's
1322   static local lock object (bugzilla 3214).
1324 . Added list() iterator functionality for the Naming Service when
1325   using the -u persistence option.
1327 . Various bug fixes to the IFR service and compiler.
1329 . New option (-T) to IFR compiler that permits duplicate typedefs with
1330   warning.  Although not encouraged, this allows IDL that used to pass
1331   through the IFR compiler to still pass through rather than having to
1332   be changed.
1334 . Fix crashing of _validate_connection on an invalid object reference
1336 . Add support for TAO on VxWorks 5.5.1
1338 . _get_implementation has been removed from CORBA::Object, it was
1339   deprecated in CORBA 2.2
1341 . Improved CORBA/e support
1343 . Fixed SSLIOP memory leaks
1345 USER VISIBLE CHANGES BETWEEN TAO-1.6.1 and TAO-1.6.2
1346 ====================================================
1348 . Added support for handling Location Forward exceptions caught when using
1349   AMI with DSI. These exceptions may also be raised from within DSI servants
1350   using AMH.
1352 . Added -RTORBDynamicThreadRunTime which controls the lifetime of dynamic
1353   RTCORBA threads
1355 . Changed the PI code so that send_request is also called at the moment
1356   we don't have a transport (bugzilla 2133)
1358 . Fixed memory leak that occured for each thread that was making CORBA
1359   invocations
1361 . Updated several tests to work correctly on VxWorks
1363 . Removed support for pluggable messaging. As a result the code in the
1364   core of TAO is much cleaner and we are about 5 to 10% faster
1366 . Improved CORBA/e support
1368 . Added gperf's exit code to the error message output if it exits
1369   unsuccessfully when spawned by the IDL compiler to generate an
1370   interface's operation table
1372 . Fixed bug in Interface Repository's handling of base valuetypes
1373   and base components (Bugzilla 3155)
1375 . Fixed code generation bug that occurs when there is both a C++
1376   keyword clash in the IDL and AMI 'implied IDL' code generation
1378 . Fixed IDL compiler bug wherein some cases of illegal use of a
1379   forward declared struct or union wasn't caught
1381 . Improved support for VxWorks 6.4 kernel and rtp mode
1383 USER VISIBLE CHANGES BETWEEN TAO-1.6 and TAO-1.6.1
1384 ====================================================
1386 . Made TAO more compliant to CORBA/e micro
1388 . Fixed invalid code generation by the IDL compiler when the options -Sa -St
1389   and -GA are combined
1391 USER VISIBLE CHANGES BETWEEN TAO-1.5.10 and TAO-1.6
1392 =====================================================
1394 . Added a new interface that allows monitoring of activities within the
1395   Notification Service.  Completely configurable through the Service
1396   Configurator, the monitoring capabilities are only in effect when chosen
1397   by the user.  When the monitoring capabilities are enabled, an outside
1398   user can connect to a service that allows querying statistics gathered by
1399   the Notification Service.
1401 . Moved the BufferingConstraintPolicy to the Messaging lib
1403 . Made it possible to disable not needed IOR parsers to reduce footprint
1405 . Reworked several files to get a smaller footprint with CORBA/e and
1406   Minimum CORBA. This could lead to a reduction of more then 20% then
1407   with previous releases
1409 . Removed the Domain library, it was not used at all and only
1410   contained generated files without implementation
1412 USER VISIBLE CHANGES BETWEEN TAO-1.5.9 and TAO-1.5.10
1413 =====================================================
1415 . Added support for forward declared IDL structs and unions to the
1416   Interface Repository loader
1418 . A new securty option is available using the Access_Decision interface
1419   defined by the CORBA Security Level 2 specification. This enables the
1420   implementation of servers using mixed security levels, allowing some
1421   objects to grant unrestricted access while others require secure
1422   connections. See orbsvcs/tests/Security/mixed_security_test for
1423   details on using this feature.
1425 . Removed GIOP_Messaging_Lite support for all protocols
1427 . Fixed a hanging issue in persistent Notify Service during disconnection.
1429 . Added IPv6 support to DIOP
1431 . Added -Gos option to the IDL compiler to generate ostream
1432   operators for IDL declarations
1434 USER VISIBLE CHANGES BETWEEN TAO-1.5.8 and TAO-1.5.9
1435 ====================================================
1437 . When using AMI collocated in case of exceptions they are deliverd
1438   to the reply handler instead of passed back to the caller
1440 . Added support for IPv6 multicast addresses when federating RTEvent
1441   channels.
1443 . Fixed a bug in the IDL compiler's handling of octet constants where
1444   the rhs consists of integer literals and infix operators (Bugzilla 2944).
1446 . TAO_IDL enhancements for built in sequence support in TAO DDS.
1448 . Provide support for TAO DDS zero-copy read native types.
1450 . TAO_IDL fix for lock-up and incorrect error message generation for
1451   missing definitions within local modules. This fix also stops the
1452   erronious look-up in a parent scoped module (with the same name as
1453   a locally scoped module) that should have been hidden by the local
1454   scope definition.
1456 . The TAO_IORManip library now has a filter class that allows users to
1457   create new object references based on existing multi-profile object
1458   references by filtering out profiles using user defined criteria.  The
1459   use of -ORBUseSharedProfile 0 is required for this to function.
1461 . A problem in TAO_Profile::create_tagged_profile was fixed. This problem
1462   triggered only when MIOP in multi-threaded application was used.
1464 . Added IPv6 support in MIOP so that IPv6 multicast addresses can be used in
1465   addition to those IPv4 class D addresses. DSCP support is implemented in
1466   MIOP as well. However, since MIOP only allows one way communication then it
1467   makes sense to use DSCP on the client side only.
1469 USER VISIBLE CHANGES BETWEEN TAO-1.5.7 and TAO-1.5.8
1470 ====================================================
1472 . Fixed bug in IDL compiler related to abstract interfaces
1474 . Fixed several issues in the AMI support
1476 . Added new -ORBAMICollocation 0 which disables AMI collocated calls
1478 . Improved a lot of test scripts to work with a cross host test
1479   environment where client and server are run on different hosts.
1480   This is used for automated testing with VxWorks
1482 . Fixed handled of a forward request when doing a locate
1483   request call
1485 . Added an option, -a, to the Event_Service to use the thread-per-consumer
1486   dispatching strategy instead of the default dispatching strategy.
1488 . Improved wide character compilation support.
1490 . Fixed IDL compiler to run on both OpenVMS Alpha and OpenVMS IA64.
1492 . Fixed memory leaks in the ImpleRepo_Service.
1494 . Fixed a bug in the IDL compiler relating to include paths.
1496 . Fixed Trader Service issues related to CORBA::Long and CORBA::ULong.
1498 USER VISIBLE CHANGES BETWEEN TAO-1.5.6 and TAO-1.5.7
1499 ====================================================
1501 . Removed ACE_THROW_RETURN.
1503 . Fixed a memory crash problem when using ETCL IN operator with
1504   Notify Service filter.
1506 . Remove exception specifications from ORB mediated operations (C++
1507   mapping requirement)
1509 . New diffserv library to specify diffserv priorities
1510   independent of RTCORBA
1512 . Addressed Coverity errors in core TAO libraries, TAO_IDL compiler,
1513   stubs and skeletons generated by TAO_IDL and the TAO Notification
1514   Service.
1516 . Extended current DynamicInterface to allow DII+AMI+DSI+AMH.
1517   (Thanks to OMC <www.omesc.com> for the sponsorship.)
1519 . Fixed bug in IDL compiler code generation for a comma-separated list of
1520   sequence typedefs.
1522 . TAO no longer sets the unexpected exception handler.
1524 USER VISIBLE CHANGES BETWEEN TAO-1.5.5 and TAO-1.5.6
1525 ====================================================
1527 . Removed all exception environment macros except ACE_THROW_RETURN
1528   and ACE_THROW_SPEC
1530 USER VISIBLE CHANGES BETWEEN TAO-1.5.4 and TAO-1.5.5
1531 ====================================================
1533 . Added an IDL compiler option to generate an explicit instantiation
1534   and export of template base classes generated for IDL sequences,
1535   sometimes necessary as a workaround for a Visual Studio compiler bug
1536   (Bugzilla 2703).
1538 . Beefed up error checking in the IDL compiler when processing
1539   #pragma version directives.
1541 . Modified IDL compiler's handling of a syntax error to eliminate
1542   the chance of a crash (Bugzilla 2688).
1544 . Fixed a bug in code generation for a valuetype when it inherits
1545   an anonymous sequence member from a valuetype in another IDL file.
1547 . Extended tests in tests/IDL_Test to cover generated code for
1548   tie classes.
1550 . Modified tao_idl to emit code to set the exception data in the
1551   Messaging::ExceptionHolder in the AMI _excep operation.  This has the
1552   effect of allowing user defined exceptions to be recognized when
1553   raising an exception without collocation.  This fixes Bug 2350.
1555 . Added hooks to enable custom Object to IOR conversion or allowing local
1556   objects (such as Smart Proxies) to be converted to an IOR string.
1558 . Removed warning issued when using corbaloc with a default object key.
1560 . Added implementation of Dynamic Any methods insert_*_seq() and
1561   get_*_seq() (spec-defined for sequences of IDL basic types),
1562   as well as implementation of insert and get methods for abstract
1563   interfaces.
1565 . Added support for CORBA/e compact
1567 . Added support for CORBA/e micro
1569 . Fixed issues relating to the CosTrading Server library.  The constraint
1570   language lexer now allow negative floating point values, 64-bit signed and
1571   unsigned integers (which can currently be represented as octal or decimal).
1572   Also, fixed a bug where negative integers were being stored and compared as
1573   unsigned integers which resulted in -3 > 0 evaluating to true.
1575 . Added Compression module that delivers the infrastructure
1576   classes with which data can be compressed. This can be used
1577   by regular applications but then also by the ORB in the future.
1579 . Removed support for -Ge 0 and -Ge 1 from the IDL compiler. In practice
1580   this means that the IDL compiler doesn't generate any environment macros
1581   anymore.
1583 . Fixed a problem where TAO mistakenly considered ALL messages
1584   with zero-length payload to be errors and was thus not properly
1585   parsing and handling the GIOP CloseConnection message.  This is
1586   tested via Bug_2702_Regression.
1588 . Added an optimization to servant activation to eliminate calls to
1589   check_bounds() on the object key sequence.  This has been observed
1590   to yield a 30% decrease in activation time for debug builds on VC71
1591   and linux gcc.
1593 . Merged in changes from OCI's distribution which originate from
1594   OCI request tickets [RT 8449] and [RT 8881]. In their totality,
1595   these changes add a feature whereby the notification service
1596   implementation can utilize a separate ORB for dispatching events to
1597   consumers.
1599 . Contributed the Transport::Current support - a TAO-specific
1600   feature providing IDL interfaces which enables users to obtain
1601   information about the Transports used to send or receive a
1602   message.  The basic intent is to provide (typically) a
1603   read-only interface to obtaining data like the number of bytes
1604   transferred or the number of messages sent and received.
1605   Since specific Transports may have very different
1606   characteristics, a simple generic implementation for
1607   Transport::Current is insufficient.  This implementation also
1608   provides support for specific Transport implementations. See
1609   the TC_IIOP implementation, which is an IIOP-specific
1610   Transport::Current. It extends the generic interface with
1611   operations providing information about IIOP endpoints, like
1612   host and port.  By default, TAO builds with support for this feature.
1613   Define "transport_current=0" in your default.features file to disable
1614   it. For more details of how the feature is intended
1615   to be used, see docs/transport_current/index.html
1617 USER VISIBLE CHANGES BETWEEN TAO-1.5.3 and TAO-1.5.4
1618 ====================================================
1620 . Added support for ACE_Dev_Poll_Reactor to Advanced_Resource_Factory.
1622 . Improved tao_idl performance, particularly over networked
1623   filesystems.
1625 . Added new option for the RTEC, -ECDispatchingThreadsFlags, that
1626   allows the user to pass in a list of thread creation flags and
1627   priority for dispatching threads.  These can be used for either the
1628   MT dispatching strategy or the TPC dispatching strategy.  See
1629   docs/ec_options.html for usage information.
1631   Also added -ECDebug option to enable debugging output from the RTEC.
1632   Only the option and variable was added, but no messages.  Therefore,
1633   at the moment, this does not generate much output.
1635 . Resolved Bugzilla #2651 to eliminate incompatibility with the new
1636   mechanism, allowing per-ORB configurations.
1638 . Fixed Bugzilla #2686, which involved correctly managing memory during
1639   exceptional situations.  Throwing an exception during the creation of the
1640   Root POA would cause a leak of a TAO_Adapter and POA manager related
1641   objects.
1643 . Fixed Bugzilla #2699, by uninlining generated code for the
1644   TIE template classes. Inlining of virtual functions in this
1645   code was causing problems with RTTI on some compilers. As a side
1646   result, the idl compiler doesn't generate a S_T.inl file anymore.
1648 . Fixed a bug where calling _set_policy_overrides() on a collocated servant
1649   would return an unusable object reference.
1651 . Addressed a number of Coverity errors (CHECKED_RETURN, DEADCODE, LOCK,
1652   USE_AFTER_FREE, RESOURCE_LEAK, FORWARD_NULL).  In particular, missing
1653   return value checks and unreachable code in the ACE CDR stream
1654   implementation were addressed.  Memory and resource management in the ACE
1655   Configuration classes was corrected.  A potential deadlock upon error was
1656   fixed in ACE_OS::rw_unlock().  Missing return value checks were addressed
1657   in ACE_OS::open() on Windows and ACE_Thread_Manager::wait().  A potential
1658   dereference of a null pointer in ACE_OS::scandir_emulation() was
1659   corrected.  Lastly, the ACE_UUID::lock() accessor interface and
1660   implementation was cleaned up so that it would not return a lock whose
1661   memory had been freed.
1663 USER VISIBLE CHANGES BETWEEN TAO-1.5.2 and TAO-1.5.3
1664 ====================================================
1666 . Added new options, -CECConsumerOperationTimeout and
1667   -CECSupplierOperationTimeout, to the CosEvent service.  See Bugzilla #2594
1668   and $TAO_ROOT/docs/cec_options.html for details.  The purpose of these
1669   options is to use the relative round-trip timeout feature from the TAO
1670   Messaging library to detect clients that are "hung" in push() or pull()
1671   operations but would otherwise not be detetcted as "bad" by the
1672   -CECReactive*Control options (since they have a thread available in
1673   orb->run()).
1675 . The Tk/Fl/Qt/Xt resource factories have been moved to subdirectories
1676   to make maintenance easier. If you are using these you have to update
1677   your include paths.
1679 . Fixed a compatibility problem between TAO and ORBs using Valuetype ID
1680   indirection, such as JacORB. This problem was inadvertently introduced
1681   in 1.5.2.
1683 . Oneway requests when using SYNC_NONE, SYNC_DELAYED_BUFFERING, or
1684   SYNC_EAGER_BUFFERING will be queued until the connection is completed.
1685   Connection completion occurs when one of the following occurs:
1686    a) A one-way request that does NOT use one of the sync-scopes mentioned
1687         above is sent via the same transport
1688    b) A two-way request is sent via the same transport
1689    c) orb->run() is called
1690   Applications that do not currently do one of the above will no longer
1691   establish a connection and therefore no data will be sent.
1693 . Fixed a problem with location forward objects being raised by colocal
1694   ServerInterceptors. This problem did not occure interacting with remote
1695   servers.  Now the raised object-reference will take effect on the object
1696   reference being held by client.
1698 . Fixed a problem with properly shutting down socket connections by
1699   explicitly calling release_os_resources from the destructor of protocol
1700   specific connection handlers. Maintainers of third-party (non-DOC)
1701   pluggable protocols must verify they are releasing any resources they
1702   acquired. The base Connection_Handler destructor can't do it for them.
1704 . Added COIOP as pluggable protocol. This stands for Collocated Only IOP
1705   and it only allows collocated calls. Can be used for embedded systems that
1706   do use corba but don't make any remote calls.
1708 . Notication service works with Microsoft Visual C++ 8.
1710 . Fixed Bugzilla #2582, related to IDL compiler generation of arg traits
1711   template specialization for typedefs.
1713 . Fixed Bugzilla #2583, a bug in the recursive check for local type
1714   containment that controls CDR operator generation in the IDL compiler.
1716 . Addressed Bugzilla #2603, which called for a -oS option for the IDL
1717   compiler to set the output directory for skeleton files.
1719 . Fixed Bugzilla #2634, which reported a bug in code generation for some
1720   escaped IDL identifiers.
1722 . Eliminated the dependency of the TAO Interface Repository IDL3 test on
1723   CIAO libraries.
1725 . Added output message to the IDL compiler, containing the name of the IDL
1726   file being processed.
1728 . Fixed IDL compiler to recognize CORBA::AbstractBase as a pseudo object.
1730 . Fixed a regression on Bugzilla #2074 caused by a reference
1731   counting problem on the Connection Handler.  This change
1732   affects all pluggable transport protocol implementations.
1733   Maintainers of third-party (non-DOC) pluggable protocols will
1734   need to make similar changes to their *_Connection_Handler
1735   implementations.
1737 . Fixed parsing of explicitly wildcarded IIOP endpoints.
1738   These might be iiop://[::]:, iiop://[]: or iiop://0.0.0.0:
1739   The first two examples are useful only when IPv6 is supported.
1740   The last example forces only IPv4 endpoints even when IPv6 is
1741   supported. Use iiop://: to get both IPv4 and IPv6 endpoints.
1743 . Fixed Bugzilla #2651 to properly handle order of destruction
1744   of Codeset Manager instances owned by the Default Resource
1745   Factory.  The ORB_Core is now responsible for managing the
1746   lifecycle of the Codeset Manager instance instead of the
1747   Resource Factory.  The Resource Factory now gives up ownership
1748   of the objects it creates.
1750 . Fixed Bugzilla #2545 so collocated DII oneway requests do not
1751   crash in get_in_arg().
1753 . Added a new "-b" option to the IDL compiler to control whether
1754   or not arguments on oneway invocations are "cloneable".  If the
1755   arguments are cloneable, and Custom Servant Dispatching (CSD)
1756   strategy is in use, the arguments for collocated oneways can be
1757   cloned during the copy of the TAO_Server_Request, which gives a
1758   performance improvement over the old method of copying the
1759   arguments using marshaling.
1761 . Fixed Bugzilla #2604 so the Implementation Repository can
1762   properly keep track of servers it launched in PER_CLIENT
1763   activation mode.
1765 . Fixed build warnings from some 64-bit compilers in code in which
1766   unsigned long and ACE_CDR::ULong were mixed.
1768 . Added various performance enhancements.  Many thread mutex/integer
1769   reference counts were replaced with ACE_Atomic_Op<unsigned long>.  Some
1770   buffers are allocated on the stack instead of the heap where possible.
1772 USER VISIBLE CHANGES BETWEEN TAO-1.5.1 and TAO-1.5.2
1773 ====================================================
1775 . To be able to support CORBA/e the pidl files within the core libs are
1776   now compiled during the building of the core libs. This means that gperf
1777   and TAO_IDL must be build before you can build the core libs!
1779 . Changed NT_Naming_Service project to require new MPC feature variable
1780   "winnt".  Avoids building and installing this on non-Windows systems.
1781   Fixes bugzilla bug #2412.
1783 . Changed NT_Notify_Service project to require new MPC feature variable
1784   "winnt".  Avoids building and installing this on non-Windows systems.
1785   Fixes bugzilla bug #2411.
1787 . Changed Telecom Log Service plug-in Strategy Interface.
1789   Added get_record_attribute(), set_record_attribute(), and
1790   set_records_attribute(); removed remove(), retrieve(), and update().
1791   This will allow plug-in Strategies to handle these high-level
1792   operations more efficiently.
1794   Added get_gauge() and reset_gauge(), to maintain "gauge" used for
1795   capacity threshold alarms when log channel's LogFullActionType is
1796   DsLogAdmin::wrap.  This resolves bugzilla 2420.
1798 . Allow different ORB instances to use a different sets of Service
1799   Objects in their own Service Repository instances. This resolves
1800   bugzilla #2486.
1802 . Integrate new sequence implementation made by Carlos O'Ryan. This
1803   also includes a rework of the TAO_String_Managers and CORBA::(W)String
1804   implementations.
1806 . Store Value Factories per orb instead of per process and made the
1807   storage thread safe.
1809 . Add on demand write functionality that writes out GIOP fragments to
1810   reduce the memory usage
1812 . The TIE files (_S.*) are not generated by default anymore by the
1813   IDL compiler. If you need these for your project, add -GT to the
1814   idl compiler flags.
1816 . Added optional support for implicitly typed values. When the Valuetype
1817   library is compiled with TAO_HAS_OPTIMIZED_VALUETYPE_MARSHALING defined
1818   TAO will skip the marshaling of the value's type when it is allowed to
1819   do so. It is allowed by the spec to do so when the value's actual type
1820   matches the formal type for the parameter through which the value is
1821   passed. As older versions of TAO did not correctly unmarshal implicitly
1822   typed values, the default behavior is for TAO to always marshal the
1823   type id for values.
1825 . Added support for CORBA specified truncatable valuetypes.
1827 . Added support for CORBA specified POAManagerFactory.
1829 . Added TAO-proprietary EndpointPolicy. This is used as a filter to limit
1830   which of an ORBs endpoints are inserted into an object reference. The
1831   endpoint policy is applied to POAManagers created via the POAManagerFactory
1832   and affect all POAs associated with that POAManager.
1834 . Added a client-side connection optimization, the Parallel Connect Strategy
1835   This strategy makes the client evaluate all endpoints in profile at the same
1836   time when trying to connect to the server. For this to work the server must
1837   be run with -ORBUseSharedProfile 1 and the client must be run with
1838   -ORBUseParallelConnect 1.
1840 . Fixed several bugs related to asynchronous connection establishment. These
1841   are represented by the AMI_Buffering tests and bug 2417's regression test.
1843 . Refactored PICurrent, removing PICurrent_Copy_Callback classes, subsuming
1844   this functionality inside PICurrent_Impl where it can be controlled
1845   correctly. The copying of PICurrent objects still performs lazy/deferred
1846   copying where possible, only taking a real physical copy when modifications
1847   are attempted. Interest in PICurrent objects where lazy copies have been
1848   taken can now be correctly reversed when the lazy copy is destroyed fixing
1849   a range of call-back bugs that were performed on already destroyed objects.
1850   (For detail see bugzilla 2552.)
1852 . Updated/Enhanced TAO/utils/nslist utilities nslist,nsadd and nsdel.
1853   These tools now allow for full ID.Kind processing (the separating character
1854   is user controlled, defaulting to .) and sub-context path processing (the
1855   separating character is also user controlled, defaulting to /).
1856   nsadd allows for (re)binding naming contexts in addition to final objects
1857   nsdel allows for destroying naming contexts when unbinding.
1858   nslist output has been prittyfide with user controlled character drawing
1859   of the naming context tree or sub-tree of full or limited depth.
1860   For full usage details execute these utilities with a ? parameter.
1862 . Add the ability to use the sendfile API to send out data
1863   on the transport
1866 USER VISIBLE CHANGES BETWEEN TAO-1.5 and TAO-1.5.1
1867 ====================================================
1869 . Fixed LOCATION_FORWARD_PERM handling. See bugzilla #1777 for full details.
1871 . Fixed bug in detecting name clashes between existing identifiers and
1872   extra code generated for AMI and AMH.
1874 . Fixed bug in connection closure. See bugzilla # 2391
1876 . Added support for the --enable-fl-reactor configure option to the
1877   autoconf build infrastructure to build the TAO_FlResource library.
1879 . Added support for the --enable-qt-reactor configure option to the
1880   autoconf build infrastructure to build the TAO_QtResource library.
1882 . Added support for the --enable-xt-reactor configure option to the
1883   autoconf build infrastructure to build the TAO_XtResource library.
1885 . Fixed a race condition involving two threads active in the same
1886   connection handler at the same time. See bug# 1647 for details.
1888 . Changed #include "..." preprocessor directives to use fully
1889   qualified (from $(ACE_ROOT), $(TAO_ROOT), or $(TAO_ROOT)/orbsvcs)
1890   paths.  We had been depending on non-standard behavior where files
1891   #included with "..." are first looked for in the current directory
1892   and then in the same directories used by #include <...>.  See bug
1893   #2448 for details.
1895 USER VISIBLE CHANGES BETWEEN TAO-1.4.10 and TAO-1.5.0
1896 ====================================================
1898 . Fixed Transport to handle incoming fragmented messages propperly, abstract
1899   interfaces TAO_Pluggable_Messaging and TAO_Transport have been
1900   modified. Custom transport/messaging implementations require
1901   interface modification.
1903 . Fix collocation optimisation when a location forward is received directing a
1904   client to a collocated object.
1906 . Prevent an OBJ_ADAPTER exception when using an object reference containing
1907   an ObjectID that corresponds to a collocated IORTable entry.
1909 . Reverted solution that allowed POA-level control over access to
1910   security-enabled objects due to conflicts with the specification,
1911   i.e. the  Security::SecQoP* are not server-side policies.
1913 . When suppressing any and typecodes during IDL compilation this will not
1914   trigger compile errors due to missing any insert operations
1916 . Bug fix in IFR when creating typecodes for nested structs and unions.
1918 . Added support for the --enable-tk-reactor configure option to the
1919   autoconf build infrastructure to build the TAO_TkResource library.
1921 IDL COMPILER
1922 ------------
1924 . Fix problem with missing includes in the skeleton files for imported arg
1925   trait declarations.
1927 USER VISIBLE CHANGES BETWEEN TAO-1.4.9 and TAO-1.4.10
1928 ====================================================
1930 . Fixed a bug, which allowed security unaware clients to make
1931   invocations on secure objects, when the ORB was configured with
1932   support for Security::SecQoPNoProtection.
1934 . Fixed Bugzilla #2145, which was preventing the building of
1935   the IDL compiler on HPUX.
1937 . Added boxed valuetype support to the Interface Repository
1938   loader.
1940 . Fixed several bugs in the PICurrent implementation
1942 . Fixed GOA factory name
1944 . Fixed -ORBConnectionHandlerCleanup arguments to accept 0 and 1.
1946 . Improved Portable Interceptor implementation.
1948 . Autoconfig improvements.
1950 . Improved Real-time CORBA support for dynamic threads.
1952 IDL COMPILER:
1953 -------------
1955 . Some bug fixes. See bug #2375 and #2390.
1957 USER VISIBLE CHANGES BETWEEN TAO-1.4.8 and TAO-1.4.9
1958 ====================================================
1960 . Added new endpoint selector implementation - Optimized
1961   Connection Endpoint Selector. A member of the tao/Strategies library,
1962   use svc.conf file to load the OC_Endpoint_Factory object. See
1963   tests/AlternateIIOP/svc.conf for an example.
1965 . Continued splitting ORB Services into stub, skeleton, and
1966   implementation libraries.  Changes to the Concurrency Service,
1967   Property Service, and RTEventLog Admin Service (TAO's RTEvent
1968   varient of the OMG Telecom Log Service) have been committed.
1970 . Added a new ORB run-time option "-ORBUseLocalMemoryPool [0|1]" which
1971   controls an individual application's use of TAO's Local Memory Pool.
1972   TAO can use a local memory pool to satisfy some of its needs for
1973   heap storage, as it is often more efficient than using the
1974   platform's default memory allocator. The pool will always grow as
1975   large as necessary to satisfy memory allocations, but it will never
1976   shrink. This means that sometimes a process can retain memory that
1977   it no longer needs. If the default allocator is used then TAO gives
1978   memory back as soon as it is not needed.
1979   The UseLocalMemoryPool option selects between using the local memory
1980   pool or using the default allocator, where 0 means don't use the pool,
1981   1 means use the pool. The default is still controlled by the original
1982   compile-time option controlled by the #define TAO_USE_LOCAL_MEMORY_POOL
1983   which defaults to 1 if not specified.
1985 . Add a property -ORBKeepalive to allow a user to specify that
1986   SO_KEEPALIVE is set on IIOP connections. See docs/Options.html
1987   and Bugzilla #2374.
1989 . Add support for RTCORBA::TCPPrototocolProperties::keep_alive, when
1990   RTCORBA is used, and the application is using a Server or Client
1991   ProtocolPolicy.
1993 . Refined the Telecom Log Service Strategy Interface.  Added methods
1994   to fetch/store capacity alarm thresholds, log QoS, and "week mask".
1995   Rework locking to avoid race conditions and to improve performance.
1997 IDL COMPILER:
1998 -------------
2000 . Fixed bug in computation of repository ids for predefined types.
2002 . Fixed bug in the handling of TAO_IDL_INCLUDE_DIR.
2004 Interface Repository:
2005 ---------------------
2007 . Fixed bug in the lookup of a valuetype member's type using its
2008   repository id.
2010 . Fixed bug in IFR loader in checking for pre-existence before
2011   creating an entry corresponding to an IDL typedef.
2013 . Fixed bug in lookup when checking for a local name clash.
2015 . Fixed bug in the describe_interface() operation when the IDL
2016   interface being described has multiple parents.
2018 USER VISIBLE CHANGES BETWEEN TAO-1.4.7 and TAO-1.4.8
2019 ====================================================
2021 . Fixed bugs in code generation for interfaces that inherit from both
2022   concrete and abstract interfaces.
2024 . Subset Anys and TypeCodes to a separate library. If you use Any/TypeCode
2025   or one of the core TAO libs uses it you should link the AnyTypeCode
2026   library with your application
2028 . PICurrent is moved to the PI library
2030 . POACurrent has been moved back from PI_Server to PortableServer
2032 . Added IPv6 support for IIOP
2034 . When Any and TypeCode generation is suppressed when compiling IDL
2035   no typecodes are generated anymore for user exceptions, they are not
2036   needed for the operation of the ORB
2038 . When making AMI invocation and the send blocks we buffer the message
2039   and send it out when the transport is available again
2041 . Emulated C++ exceptions are not maintained anymore. We are keeping
2042   the macros in the TAO code until x.5.1 is out, if nobody sponsors
2043   maintenance at that moment the macros will be removed from TAO.
2044   See also http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=2256
2046 . Support the latest AMI mapping, the old mapping will be kept working
2047   until 1.5.1 has been released. If you need the old mapping add
2048   the define TAO_HAS_DEPRECATED_EXCEPTION_HOLDER to your config.h
2049   file before you build TAO and the TAO_IDL compiler
2051 . Added CodecFactory::create_codec_with_codesets to create a codec with
2052   a specific codeset. See OMG issue 6050 for the background.
2054 . PortableInterceptor::IORInterceptor has been splitted in IORInterceptor
2055   and IORInterceptor_3_0. If you use IORInterceptors read the ChangeLog for
2056   the details, maybe you have to update your code!
2058 . Added the new Custom Servant Dispatching (CSD) feature to provide user
2059   applications with the ability to implement and "plug-in" custom strategies
2060   to handle the dispatching of requests to servants. This new feature is not
2061   currently tested for VxWorks. See TAO release notes for more information.
2063 . Added support for an TAO "versioned" namespace.  When enabled, TAO
2064   library sources will be placed within a namespace of the user's
2065   choice or a namespace of the form TAO_1_4_7 by default, where
2066   "1_4_7" is the TAO major, minor and beta versions.  The default may
2067   be overridden by defining the TAO_VERSIONED_NAMESPACE_NAME
2068   preprocessor symbol.  Enable overall versioned namespace support by
2069   adding "versioned_namespace=1" to your MPC default.features file.
2071 . Changed generated signatures of some valuetype member
2072   accessor/mutator pairs to be consistent with IN
2073   parameter semantics.
2075 . Added spec-required generation of member-initializing
2076   constructor for valuetypes. See C++ mapping (03-06-03)
2077   section 1.17.2. Closes Bugzilla #2270.
2079 . Added default include paths $TAO_ROOT, $TAO_ROOT/tao,
2080   $TAO_ROOT/orbsvcs, and $CIAO_ROOT/ciao to IDL compiler
2081   execution, eliminating the need to add them explicitly
2082   to the command line.
2084 . Added immediate exits to IDL compiler when some name clash
2085   errors are encountered, avoiding a crash if parsing is
2086   continued. Closes Bugzilla #2281.
2088 . Changed the behavior of the _default() method (generated
2089   for IDL unions that have an explicit or implicit default
2090   case label) to clean up memory used by the freed member,
2091   if necessary.
2093 . Fixed bug in IDL compiler when handling a native exception
2094   in an operation declared in Messaging::ExceptionHolder.
2096 . Although not presently supported by CIAO, added error
2097   checking to the IDL compiler's parsing of IDL home
2098   primary keys, which constrain the basic valuetype
2099   syntax in several ways.
2101 . Fixed order of generated base class stub constructor calls
2102   when the IDL interface has both concrete and abstract parents.
2104 . Fixed a bug in the handling of forward declared interfaces
2105   that have both concrete and abstract parents.
2107 . Fixed the command line parsing to preserve the literal
2108   quotes if they are used in an include path that has a space.
2109   Closes Bugzilla #2219.
2111 . Many changes related to refactoring of Anys and Typecodes
2112   into a separate library (POC is Johnny Willemsen
2113   <jwillemsen@remedy.nl>).
2115 . Merging of many Notification Service changes/fixes from OCITAO to
2116   the DOC version.  These generally addressed stability issues such as
2117   memory leaks, thread leaks, etc.
2119 . Introduction of the versioned namespaces changed the name of the
2120   factory function used for dynamically loading the Notification
2121   Service persistence mechanisms.  See the service configurator file
2122   in orbsvcs/tests/Notify/XML_Persistence for an example.
2124 USER VISIBLE CHANGES BETWEEN TAO-1.4.6 and TAO-1.4.7
2125 ====================================================
2127 . The Telecom Logging Service now supports dynamically loaded Strategies
2128   which can be used to implement a persistent log record store.  If none
2129   are specified, a default in-memory hash table implementation is used.
2131 . The CodecFactory is moved to its own library. If you use this in your
2132   application include tao/CodecFactory/CodecFactory.h and link the
2133   TAO_CodecFactory with your app
2135 . The ORBInitializer registry, PolicyFactory registry and ORBInitInfo
2136   are moved to the new PI library. If you use these clases include
2137   tao/PI/PI.h in your application code and link the new TAO_PI
2138   library with your application.
2140 . All server side PortableInterceptor support is moved to the new
2141   TAO_PI_Server library. If you use this, include tao/PI_Server/PI_Server.h
2142   in your application code and link the new TAO_PI_Server lib
2144 . A new set of examples and support code that show how to set up a
2145   multicast-based federation of  Notification Services is now available
2146   in $TAO_ROOT/orbsvcs/examples/Notify/Federation.
2148 . Hard coded loading of services with Service Configurator now uses the
2149   ACE_DYNAMIC_SERVICE_DIRECTIVE macro which also works when the xml
2150   version of service config is enabled.
2152 . The Codeset negotiation support is in its own library. The hooks are
2153   still present in the ORB Core to dynamically load the codeset support
2154   if needed. This behavior is overridden by the new ORB_init option
2155   -ORBNegotiateCodesets 0.
2157 . The Boxed Value Type as specified by the OMG is now accepted by the
2158   TAO_IDL compiler.
2160 . TAO clients now parse the OMG specified TAG_ALTERNATE_IIOP_ADDRESS
2161   profile component. To generate IORs using that component, add the
2162   new ORB_init option, -ORBUseSharedProfiles 1.
2164 . Refactored TAO's codeset negotiation feature to be optionally loadable.
2165   The implementation is now in a separate library, TAO_Codeset. Applications
2166   not wishing to use codeset support may pass -ORBNegotiateCodesets 0 to
2167   ORB_init() to avoid loading the library. When building dynamic applications
2168   codeset negotiation is available by default. For static applications, the
2169   default is to *not* include codeset negotiation. Staticly linked apps
2170   needing codeset negotiation support must do two things:
2171   - Define the new MPC feature "negotiate_codesets=1" in default.features
2172     and regenerate makefiles
2173   - Add "#include <tao/Codeset/Codeset.h>" somewhere in their application
2174     source. Placing this in the source file that includes calling ORB_init()
2175     is probably the best place.
2177 . Added CORBA::Object::_repository_id() and CORBA::Object::_get_orb()
2178   as described by the spec.
2180 USER VISIBLE CHANGES BETWEEN TAO-1.4.5 and TAO-1.4.6
2181 ====================================================
2183 . The RTOldEvent library has been removed. The RTEvent library has been
2184   split in a stub/skel and serv library.
2186 . Support for bi-directional communication over SSLIOP.
2188 . Servants are now always reference counted, in accordance with changes
2189   to the CORBA specification.
2191 . Added a -x option to catior that works like -f except that it reads
2192   the IOR from standard input rather than from a file. This makes catior
2193   much more like the unix "cat" command, and enables it to be used in a
2194   pipeline.
2196 . Changed the precedence rules for the -ORBListenEndpoints (aka
2197   -ORBEndpoint) so that the host identifier (either hostname or IP
2198   address) that appears in IIOP profiles is determined thus:
2200     1. value from hostname_in_ior (if specified);
2201     2. setting of -ORBDottedDecimalAddresses option;
2202     3. value for hostname in -ORBListenEndpoints specification;
2203     4. whatever TAO magically comes up with based on system
2204        configuration
2206   A new test (TAO/tests/IOR_Endpoint_Hostnames) verifies the
2207   operation of this feature.
2209 . Changed the way that Bidirectional endpoint processing happens when
2210   -ORBDottedDecimalAddresses 1 is in effect. The previous behavior
2211   always used the setting of the receiver, but that caused problems when
2212   the sender and receiver were not using the same dotted decimal
2213   addresses setting.  Bidirectional endpoint processing now uses
2214   whatever the sender provides as the hostname since that's also what
2215   will be in that sender's IORs.
2217 . Added a configuration property -ORBIMREndpointsInIOR [0|1] that
2218   controls whether ImR endpoints are written into persistent IORs. See
2219   $(TAO_ROOT)/docs/Options.html and bugzilla #2123 for usage.
2221 . Increment the refcount on the servant in the id_to_servant and
2222   reference_to_servant methods of the POA.
2224 . Improved g++ 4.0 support.  A number of RTTI related problems have been
2225   fixed, in addition to removal of duplicate internal ORB related
2226   singleton instances.
2228 . Fixed assertion that occured in some thru-POA collocated calls.
2230 . Fixed CORBA::UnknownUserException Any insertion problem.
2232 . Fixed TypeCode equivalence failure when comparing aliased and
2233   unaliased TypeCodes of the same type.
2235 USER VISIBLE CHANGES BETWEEN TAO-1.4.4 and TAO-1.4.5
2236 ====================================================
2238 . The POA is rewritten so that it uses strategies for its implementation.
2240 . The ImR handling is moved to the new ImR_Client library. If your server
2241   needs to register itself to the ImR you have to link the new ImR_Client
2242   library
2244 . The MIOP part of the POA is moved to the GOA. See the latest version of the
2245   MIOP specification. You have to link now with the PortableGroup
2246   library and retrieve a GOA instead of the RootPOA.
2248 . Implemented several missing parts of POA functionality as described
2249   by the latest corba specification. Missing functionality, incorrect
2250   exceptions, incorrect minor codes and much more.
2252 . Splitted the huge PortableServer.pidl file in several smaller files
2253   and regenerated all the generated files in the repository.
2255 . Move TAO_ORB_Manager from PortableServer to Utils library, this is a
2256   helper class.
2258 . The POA has been split in Root_POA and Regular_POA, on this we will more
2259   in the future so that the Root_POA just pulls in the minimal set of things
2260   needed.
2262 . The RootPOA now has "RootPOA" as its adapter name, previously it had
2263   an empty string.  This is required by the CORBA specification, you can
2264   overrule this by defining TAO_DEFAULT_ROOTPOA_NAME if you want to
2265   reduce the "RootPOA" string to be shorter, e.g., "".
2267 . Added support for GNU G++ 4.0.  Additional details in ACE `NEWS' file.
2269 . Explicit template support has been dropped for TAO and it is not possible
2270   to use it anymore.
2272 . CORBALOC/CORBANAME patched a memory leak and fixed performance related
2273   to the use of defaulted object keys.
2275 . Added support for Visual Age on AIX
2277 . Made it possible to run most ORB core test with VxWorks in a cross host
2278   scenario where one part of the test runs on the host and the other part
2279   of the test runs on the VxWorks target
2281 . The skeletons generated by the TAO_IDL compiler have been refactored
2282   to significantly reduce the size of server applications.  Please see
2284   http://www.dre.vanderbilt.edu/Stats/
2286   for metrics that illustrate the magnitude of the reduction.
2288 . New TypeCode implementation that reduces the size of TypeCodes in
2289   memory at run-time.
2291 USER VISIBLE CHANGES BETWEEN TAO-1.4.3 and TAO-1.4.4
2292 ====================================================
2294 . Reimplemented the way that TAO_Transport deals with GIOP headers.  In
2295   some cases partial GIOP message headers were read and used as if a full
2296   GIOP header were received. [Bug 1681]
2298 . GIOP fragment handling has changed where a single large allocation and
2299   copy occurs at the end of a fragment chain instead of an allocation and
2300   copy for every fragment received.
2302 . The tao-config script has been replaced by pkg-config metadata files
2303   which are installed in ${prefix}/lib/pkgconfig by the automake build.
2305 . SHMIOP respects now the dotted decimal addresses setting. When this is
2306   set it uses ip addresses instead of hostnames.
2308 . Removed the usage of the ACE_x_cast macros, we are using the C++ casts
2309   from now on.  The TAO core libraries will be updated before the x.4.5
2310   release.
2312 . Removed MPC code that creates unused and unnecessary subfolders in
2313   Visual Studio projects and makefiles.
2315 . Fixed unclosed temporary file created by the IDL compiler on platforms that
2316   lack mkstemp. [BUGID:2026]
2318 . Fixed IDL compiler bug related to handling null object references in a
2319   sequence. [BUGID:2027]
2321 . Made behavior when marshaling null value of an abstract interface similar
2322   to the behavior of CORBA::Object.
2324 . Made use of 'true' and 'false' with CORBA::Boolean more consistent in TAO
2325   source code and generated code.
2327 . Fixed bug in code generation for typedefs of IDL arrays that are not declared
2328   at global scope or in a module (i.e., in an interface, valuetype, eventtype
2329   or home).
2331 . Fixed bug in code generation of parent operations in AMI ReplyHandler
2332   interfaces.
2334 . Changed remaining instances of C-style casts in generated code to the
2335   appropriate C++-style cast.
2337 . Fixed typo in code generation of bounded sequences of CORBA::Object.
2339 . Fixed bug in code generation for attributes which are unaliased bounded
2340   (w)strings.
2342 . Changed implementation of TAO::Unknown_IDL_Type (a subclass of TAO::Any_Impl
2343   used when an Any is first decoded from the wire or created from a Dynamic
2344   Any) to contain its value in a TAO_InputCDR stream rather than an
2345   ACE_Message_Block*, thus cleaning up alignment and memory management code
2346   related to this type.
2348 USER VISIBLE CHANGES BETWEEN TAO-1.4.2 and TAO-1.4.3
2349 ====================================================
2351 . New pluggable protocol for GIOP over HTBP, known as HTIOP.  Source in
2352   orbsvcs/orbsvcs/HTIOP.
2354 . All TAO-specific vendor IDs are now found in the "TAO" namespace.
2355   Documentation for these constants has also been improved in a number
2356   of cases.
2358 . Further reduced inter-header dependencies, which should improve
2359   compilation times for TAO and TAO applications.
2361 . Fixed memory leak in CDR encapsulation Codec's encode_value() method.
2363 . Modified PerlACE scripts for Tests/test environment to allow
2364   per-platform customization of process startup delay.  Used the changes
2365   in various run_test scripts.
2367 . SyncScope::NONE blocks during connects [Bug 1476].
2369 . Improved compatibility with JDK orb.
2371 . Added Wait on LF No Upcalls (MT_NOUPCALLS) wait strategy.  However,
2372   recent experiences with it indicate there may be problems in scenarios
2373   other than its original motivating case (see ChangeLog).  This feature
2374   should be considered EXPERIMENTAL, and use it at your own risk.
2376 . New CORBALOC parsing is available. This feature allows TAO clients to
2377   use any third-party pluggable protocol in corbaloc strings.
2379 . Fixed bug that caused memory fault when incoming object reference
2380   contains an unknown profile.
2382 . Fixed problem in some modules when platform lacks unsigned long long
2383   support.
2385 . Modified catior to allow decoding of additional protocols.
2387 . The PortableServer library isn't depended anymore on the
2388   ObjRefTemplate and IORInterceptor libraries.  ObjRefTemplate and
2389   IORInterceptor are loaded on demand and depend on PortableServer.
2391 . IDL compiler can be built for environments that lack unsigned long
2392   long.
2394 . Reduced the amount of code generated by the TAO_IDL compiler when
2395   using forward declarations.
2397 . Naming Service implementation memory leak fixes.
2399 . Split ORB Services into stub, skeleton, and implementation libraries.
2400   Changes to the Naming, Trading, Event, Notification, and Logging
2401   Services have been committed.
2403 . Common utilities (tao_imr, tao_ifr, nslist, nsadd, nsdel,
2404   NamingViewer) now installed in $ACE_ROOT/bin.
2406 . Changed #includes of orbsvcs header files to be consistent.  The
2407   pathname now always contains a "orbsvcs/" prefix.
2409 . Notification Service EventReliability and ConnectionReliability QoS
2410   have been added to bring the DOC version of Notification Service
2411   into feature parity (in this area) with OCITAO's 1.3a version of the
2412   Notification Service.  Note that due to changes between 1.3a's
2413   source base and DOC's 1.4.3 source base, this is a re-implementation
2414   of the changes and not a simple port.
2416   In addition to the changes made directly to the Notification Service
2417   a number of test and example programs have been created for the
2418   reliable notification service. These programs may be found in
2419   subdirectories of $TAO_ROOT/orbsvcs/tests/Notify. A README file
2420   in each directory provides more detailed information, and a run_test.pl
2421   script is included to run the example or test.
2423 . A change has been made to the Notification Service IDL to improve build
2424   times and reduce the Notification Service footprint. The change suppresses
2425   the generation proxy and stub code for the many interfaces that are
2426   specified by the OMG, but are not implemented in TAO.
2428 . Implementation Repository refactored to allow the locator and
2429   activator to be used as services in the ACE Service Configurator
2430   framework.  The locator and activator services have been split into
2431   separate libraries and executables.  There have also been
2432   miscellaneous bugs fixed and performance enhancements made.
2434 . Fixed Load Balancer binary generation problem.  Libraries were being
2435   created rather than executables.
2437 . Work around MSVC++ 6 namespace brain damage in new Security/SSLIOP
2438   code.
2440 . Fixed memory management problem in SecurityLevel3 code.
2443 USER VISIBLE CHANGES BETWEEN TAO-1.4.1 and TAO-1.4.2
2444 ====================================================
2446 . Overall
2447   - Support for g++ 3.4.1.
2448   - Support added for latest HP aCC compiler.
2449   - Improved Doxygen documentation.
2450   - Reduced header file dependencies, which should speedup compilation
2451     and help minimize static footprint.
2453 . ORB
2454   - Fixed memory leak in DII exception handling.
2455   - Fixed insertion of label values when creating a union type code
2456     with create_union_tc().
2457   - Support for retrieving AMI and AMH reply handlers from a local
2458     memory pool.
2459   - Fixed location forwarding to collocated objects.
2461 . POA
2462    It is now possible to pass user-defined policies unknown to the
2463     POA with corresponding registered policy factories to the
2464     POA::create_POA() method via its policy list parameter, as
2465     required by the CORBA specification.
2467 . TAO_IDL
2468   - Closed security hole on platforms that support mkstemp() function.
2469   - Fixed potential buffer overrun problem.
2470   - A number of scoped name bugs have been fixed, including some
2471     workarounds for MSVC++ 6 scope resolution problems.
2472   - Fixed mixing of *Implicit and *Explicit inheritance lines when the
2473     there is a chain of inheritance in component homes.
2474   - Improved error checking of component and home declarations.
2475   - Code generation for valuetypes that support one or more abstract
2476     interfaces.
2477   - Added new "-GA" option that causes CORBA::Any operators and
2478     TypeCode bodies to be generated in a separate "fooA.cpp" file.
2479     Helps reduce footprint for applications that do not use Anys or
2480     TypeCodes.
2481   - Added required _downcast() method to generated value factories.
2482   - Disabled generation of implementation class for abstract
2483     interfaces.
2484   - Removed support for reading an IDL file from stdin.  This feature
2485     is legacy code used for debugging the IDL compiler in the early
2486     days of its implementation, and is not useful in application
2487     situations.
2488   - Generated stub/skeleton inline files now end in ".inl" instead of
2489     ".i".  The latter is generally used as the extension for
2490     pre-processed C sources.
2491   - Process multiple IDL files in a single execution by iteration
2492     in a single process, rather than spawning a process for each
2493     file as before.
2494   - Added the remaining spec-defined sequences of predefined types
2495     to the CORBA namespace in TAO.
2497 . Added CPU utilization load monitor to TAO's Cygnus load balancer.
2499 . Added basic CSIv2 support, which is the latest CORBA Security
2500   architecture specification.
2502 USER VISIBLE CHANGES BETWEEN TAO-1.4 and TAO-1.4.1
2503 ==================================================
2507 .  Changed the name of a parameter to the TAO type code
2508    internal method to avoid a name clash with STL.
2510 . Added the spec-required ostream insertion operator for
2511   CORBA::Exception* to go with the existing ostream
2512   insertion operator for CORBA::Exception&.
2514 . Moved the above ostream insertion operators into the
2515   CORBA namespace, so they cannot be accidentally hidden by an
2516   application.
2518 . Moved the declaration of Any operators for some ORB
2519   types so that the corresponding definitions may
2520   remain unlinked if the Any operators are not used in
2521   an application.
2523 . Fixed typo in type code factory code that is compiled
2524   only when ACE_SWAP_ON_WRITE is defined.
2526 . Several fixes to MakeProjectCreator (MPC) files, which
2527   generate GNU makefiles, Borland makefiles, and Microsoft
2528   Visual Studio project files.
2530 . Fixed Any insertion and extraction operators for bounded
2531   strings and wstrings to prevent an error if they are
2532   inserted as bounded with bound 0 and extracted as
2533   unbounded, or vice versa.
2535 . Deprecated the TAO-specific _type() method for exceptions.
2536   which is no longer used anywhere in TAO, and is retained
2537   solely for backward compatibility.
2539 . Fixed bug in TAO_SSLIOP pluggable protocol that prevented large
2540   requests from being sent.  [Bug 1429]
2542 . Cleaned up interceptor memory leaks that occurred when
2543   CORBA::ORB::destroy() was called.
2545 . Fixed problem where a ServerRequestInterceptor could be called after
2546   the ORB was shutdown.  [Bug 1642]
2548 . Overhauled PICurrent support to fix several problems. [Bug 1215, 1738]
2550 . SSLIOP documentation is now available.
2552 . Fixed memory leaks in servers when the ORB is operating in a
2553   thread-per-connection  mode. This problem showed up when clients
2554   keep connecting and disconnecting from the servers.
2556 . Fixed memory leaks in AMI clients that connect to a servers over
2557   unreliable connections that keeps getting dropped.
2559 . Fixed a race connection in Any_Impl implementation.
2561 . Fixed a byte order problem with DSI gateways
2563 . Added support for OVATION to work with this BFO of TAO.
2565 IDL COMPILER
2566 -------------
2568 . Changed the names of some local variables in generated
2569   operation code, to reduce that chance of a name clash.
2571 . Fixed bug where a #pragma version directive is sometimes
2572   not reflected in the generated repository id.
2574 . Disambiguated generated template instantiations for array
2575   _var, _out and _forany classes, when two or more arrays
2576   have the same element type and bound.
2578 . Added check for a name clash between a valuetype member
2579   and the first segment of a scoped name referenced in
2580   the valuetype.
2582 . Fixed incorrect code generation for the CDR operator of a
2583   struct/union/exception with an undefined forward declared
2584   interface member.
2586 . Fixed incorrect code generation for operation arguments
2587   that are typedefs of char, octet and boolean.
2589 . Fixed bug in handling complex recursive types.
2591 . Added -GId command line option to generate line and
2592   file debug info in *I.* files, similar to what is
2593   already generated in *C.* and *S.* files. This debug
2594   info generation is now off by default in *I.* files.
2596 . Fixed the handling of included orb.idl file to generate
2597   corresponding C++ includes for the files orb.idl
2598   itself includes, which contain spec-required declarations
2599   of sequences of basic CORBA types.
2601 . Fixed generation of ORB file includes triggered by the
2602   presence of one or more abstract interfaces in an IDL file.
2604 . Added check to the generation of _setup_collocation()
2605   method for abstract interfaces, to make it more robust.
2607 . Added a version of the realpath() system function that
2608   can be used with LynxOS, which does not have a native
2609   version.
2611 . Fixed code generation for bounded strings and wstrings
2612   when they appear anonymously (without a typedef) as operation
2613   parameters.
2615 . Fixed code generation of flat names for AMI-related types.
2617 . Fixed errors in code generation of sequences of components
2618   and eventtypes.
2620 . Fixed code generation of CDR operators for aggregate types
2621   that contain one or more abstract interfaces.
2623 . Fixed bogus errors produced when there are repeated forward
2624   declarations of an interface.
2626 . Fixed errors in some use cases of the propagation of a #pragma
2627   prefix directive to nested scopes in generated repository ids.
2629 . Fixed errors in code generation for attributes in Asynchronous
2630   Method Handler (AMH) classes.
2632 . Fixed a bug that caused the IDL compiler to crash when it sees
2633   certain kinds of illegal IDL.
2635 . Fixed problems in the interaction of checks for local interface
2636   and for null object reference when marshaling an interface
2637   member of an aggregate type.
2639 . Fixed generation of operations inherited by a local interface
2640   from a non-local one - these operations must be regenerated
2641   as pure virtual.
2643 . Added a space between some generated template parameter
2644   opening brackets and a leading double colon of a fully
2645   scoped name, since some compilers would read "<:" as
2646   the digraph character for ']'.
2648 . Fixed bug in code generation for an array of typedef of
2649   string and wstring.
2651 . Fixed a bug in the generation of repository ids for
2652   explicit, implicit and equivalent interfaces for component
2653   homes.
2655 . Fixed bugs in the generation of marshaling and demarshaling
2656   code for aggregate types with component or eventtype members.
2658 ORB SERVICES:
2659 -------------
2661 IFR:
2664 . Fixed bug in creating entries for attributes, which in CORBA 3.x may
2665   have separate get- and set- exceptions lists.
2667 . Added some method overrides to disambiguate multiple inheritance
2668   problems some compilers would have in classes added to support CORBA
2669   3.0 extensions.
2671 . Fixed bugs in entering attributes of abstract and local interfaces,
2672   and in querying for attributes of components.
2674 . Added a "-m" option to IFR_Service to enable multicast discovery of
2675   the service.
2677 LOAD BALANCING
2678 --------------
2680 . Added two new strategies, namely LoadAverage and LoadMinimum.
2682 NOTIFICATION SERVICE:
2683 ---------------------
2684 . Corrected the implementation to add the caller's <subscribed_types>
2685   to the Admin Object's types. This solves the problem that if a
2686   proxy's connect_structured_push_consumer() is called *AFTER* the
2687   proxy's subscription_change(), then the subscriptions do not work.
2689 . Added the -NoUpdates option to the Notification svc.conf
2690   options. If this option is specified, the
2691   subscription_change/offer_change messages are NOT sent to proxy
2692   objects.  This option is useful to turn off entire updates for
2693   applications that do not reply on subscription_change/offer_change
2694   messages.
2697 USER VISIBLE CHANGES BETWEEN TAO-1.3.6 and TAO-1.4
2698 ==================================================
2700 IDL COMPILER:
2701 -------------
2702 . Fixed bug related to the order of #pragma prefix and #include
2703   directives
2705 . Fixed bug in generation of copy constructor for AMH interface
2706   classes.
2708 . Fixed incorrect handling of a parameter name in an AMI sendc_xxx
2709   operation that clashes with a C++ keyword.
2711 . Readded the generation of _unchecked_narrow () back into the stub
2712   code since it is required by the latest OMG CORBA specification.
2714 CORE ORB
2715 -------
2717 . SCIOP endpoints are not created by default. They need explicit
2718   specification of -ORBEndpoint sciop:// at startup.
2720 . Fixed a bug that caused the ORB to dump a core when server side
2721   interceptors returns an exception and if the operation parameters
2722   contains a sequence an out parameter.
2724 . Fixed a bug that caused extraction of basic data types that are
2725   aliased from an Any.
2727 . Added a couple of regressions tests for some of AMH features.
2729 . Lots of other bug fixes (see the bottom of this message for a
2730   complete list of bugzilla bugids fixed in this beta).
2732 . Fixed a problem with dynamic loading of the ORB. This was introduced
2733   by "magic" static constructors in the TAO PortableServer headers
2734   where dynamic loading/unloading of the ORB failed.
2736 . Added an option, -ORBDisableRTCollocation which allows users to
2737   disable the RT collocation technique used by TAO and fall back on the
2738   default collocation technique used for the vanilla ORB.
2740 . Prevent the TP_Reactor used within TAO from exiting when it receives
2741   a EINTR during select ().
2743 ORB SERVICES
2744 ------------
2746 . Added new security variable so that libTAO_Security could be built
2747   independently of libTAO_SSLIOP, and set the default to true.
2749 . An initial implementation of the FTCORBA spec has been added to
2750   TAO. This release features an initial cut of ReplicationManager,
2751   FaultNotifier, and a FaultDetector. Please see
2753   $TAO_ROOT/orbsvcs/tests/FT_App/README
2755   for a simple example that uses the different FTCORBA features that
2756   have been implemented in TAO.
2758 . Fixed a bug, in PG_ObjectGroupManager::remove_member () methods
2759   which caused the group entry to be available in the location_map
2760   when a member of the object group is removed.