1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
|
Release Notes for 2.7.1 (12th March 1999)
=======================
This release is a minor release which fixes a number of bugs in omniORB 2.7.0,
and adds a missing feature (see below). The last release was 2.7.0
(20th Jan 1999). The previous major release was 2.6.1 (20th Oct 1998).
Source code and binary distributions are available from our Web pages:
http://www.uk.research.att.com/omniORB/omniORB.html
Changes since 2.7.0
-------------------
1. Support for DII.
Implemented the following members of the Dynamic Invocation Interface:
CORBA::ORB::send_multiple_requests_oneway()
CORBA::ORB::send_multiple_requests_deferred()
CORBA::ORB::poll_next_response()
CORBA::ORB::get_next_response()
2. Change in DII semantics.
The usage of the DII has changed slightly. Request::poll_response() no
longer throws exceptions under any circumstances (not even when
omniORB::diiThrowsSysExceptions is true). Instead if an exception has
been generated, and diiThrowsSysExceptions is true, the exception will
be thrown from the next accessor method in called on the CORBA::Request.
See the manual for more information.
3. Bugs fixed.
The complete list of bugs reported and fixed can be found in:
http://www.uk.research.att.com/omniORB/omniORBbug.html
All the bugs listed have been fixed.
4. The omniORB manual has been updated.
Changes since 2.6.1
-------------------
1. Support for DII and DSI.
The Dynamic Invocation Interface and Dynamic Skeleton Interface are
now fully supported.
2. Interface Repository.
The CORBA::Object::_get_interface() operation is now supported on the
SERVER side (the GIOP operation name is "_interface").
This operation has also been implemented on the client side for platforms
with namespaces, but is not enabled by default. To enable this feature
you must add the line:
#define ENABLE_CLIENT_IR_SUPPORT
at a suitable point in CORBA_sysdep.h. The runtime libraries will also
need to be recompiled.
3. Library reorganisation.
The omniORB runtime library has been split into two. Those parts
of the runtime which implement the 'dynamic' aspects of the standard
(Any, TypeCode, DynAny, DII, DSI) are in a new library.
Existing makefiles which use omniORB's build environment will continue
to work, and use both libraries by default.
The current shared runtime library versions are:
On various unices:
libomniORB2.so --> libomniORB2.so.7 --> libomniORB2.so.7.0
libomniDynamic2.so --> libomniDynamic2.so.7 --> libomniDynamic2.so.7.0
On IBM AIX
libomniORB27.a
libomniDynamic27.a
libomniLC2.a
On Windows NT/95, the omniORB2 runtime DLLs for this version are:
libomniORB270_rt.dll
libomniORB270_rt.lib
libomniDynamic270_rt.dll
libomniDynamic270_rt.lib
libomniLC22_rt.dll
libomniLC22_rt.lib
Make sure you update your Visual Studio to pick up the right library.
NB. VMS systems have a limitation of 8 directory levels, and this
reorganisation has deepened the distribution tree by one level. It is
now unfortunately necessary to install the distribution in a root
directory.
4. IDL stubs must be regenerated with the new IDL compiler to be
compatible with the runtime library.
5. Stub enhancements:
a) The stub code for proxy calls has been restructured to decrease
the overhead per operation/attribute.
b) For egcs 1.1.1 namespaces are used to represent IDL modules, and
the c++ bool type is used to represent IDL boolean. If you are
using some libraries that have #define bool, it is best to
disable this feature by passing -DNo_Cplusplus_Bool to the C++
compiler.
c) Reopen IDL modules is allowed by default when the IDL compiler is
compiled on egcs (in addition to MSVC++ and DEC C++ v6.0).
The -m flag can be given to omniidl2 to explicitly enable reopen
module on all platforms. However, the stub code will not compile
unless namespace is used to represent modules.
d) The support for compiling stubs into Windows DLLs has been clarified.
See the comment in CORBA_sysdep.h
e) The IDL compiler now generates three files. For input foo.idl they
are:
foo.hh - the header file
fooSK.cc - type definitions, client and server call stubs
et cetera
fooDynSK.cc - TypeCodes of user defined types, and support for
marshalling these values into and out of values of
type Any.
This, combined with the splitting of the runtime library in two,
should make it possible to have much smaller binaries (particularly
for applications not using shared libraries). If support for
TypeCode and Any is not needed then only fooSK.cc need be compiled
and linked in, and libomniDynamic (or equivalent) need not be
linked in.
NB. Some compilers instantiate template code when a 'typedef'
is encountered. This can cause parts of the 'dynamic' library to
be referenced, even if not directly used. In this case both the
omniORB and omniDynamic libraries will have to be linked into the
program.
6. Support of TypeCode and Any:
This part of the library has been completely re-implemented. This should
give significant performance improvements. There are no changes to the
public interface.
7. Support of the DynAny interface:
The DynAny interface has been re-implemented to use the new version of
TypeCode and Any.
8. New runtime configuration variable:
omniORB::diiThrowsSysExceptions
This variable controls the behaviour of deferred requests in the
Dynamic Invocation Interface. If it is zero then any system exception
generated by a DII call is packaged into a CORBA::Environment object.
If it is non-zero system exceptions will be thrown. User-defined
exceptions are always passed via a CORBA::Environment object.
The value is zero by default.
9. New command line options:
To set the value of omniORB::diiThrowsSysExceptions (above):
-ORBdiiThrowsSysExceptions <1|0>
To control the idle connection scan period:
-ORBinConScanPeriod <secs>
-ORBoutConScanPeriod <secs>
10. Bugs fixed:
The complete list of bugs reported and fixed can be found in:
http://www.uk.research.att.com/omniORB/omniORBbug.html
All the bugs listed have been fixed.
11. x86 Linux systems with glibc 2.0 library (e.g. Redhat 5.1)
omniORB2 is known to work well with egcs-1.1.1. This release
incorporates important big fixes and is well worth getting hold of.
Warning: there may still be bugs in the compiler which will cause it
to generate the wrong code with -O2. If in doubt, remove
the optimisation flag (use this line in
dir.mk 'CXXDEBUGFLAGS =').
12. The omniORB manual has been updated.
------------
David Riddoch
(djr@uk.research.att.com)
|