Release Notes for omniORBpy 1.4 (18 June 2001) =============================== This is omniORBpy 1.4, a robust high-performance CORBA ORB for Python. The bindings adhere to the standard IDL to Python mapping which you may find at http://cgi.omg.org/cgi-bin/doc?formal/01-02-66 omniORBpy makes use of the C++ omniORB library. It can use either omniORB 3.0 or omniORB 2.8. If you use omniORB 3.0, the full POA functionality is available; with omniORB 2.8 many POA functions are not supported. Using omniORBpy with omniORB 2.8 is no longer actively supported. omniORBpy is currently available for many Unix platforms and Windows. It has been ported to a number of other operating systems by outside contributors. It is a good idea to subscribe to the omniORB mailing list. See http://www.uk.research.att.com/omniORB/intouch.html Please report any bugs you find to the mailing list. Summary of changes from omniORBpy 1.3 ------------------------------------- - Bug fixes. For details, see: http://www.uk.research.att.com/omniORB/omniORBpy/bugfixes.html Summary of changes from omniORBpy 1.2 ------------------------------------- - Bug fixes. For details, see: http://www.uk.research.att.com/omniORB/omniORBpy/bugfixes.html - Expose the omniORB.maxTcpConnectonPerServer setting to Python. Summary of changes from omniORBpy 1.1 ------------------------------------- - Bug fixes. For details, see: http://www.uk.research.att.com/omniORB/omniORBpy/bugfixes.html - Support for Python versions beyond 1.5.2. Summary of changes from omniORBpy 1.0 ------------------------------------- - Bug fixes. For details, see: http://www.uk.research.att.com/omniORB/omniORBpy/bugfixes.html - Long long support Available with omniORB 3.0.1 and above, provided your C++ compiler supports 64-bit types. - New omniORB.LOCATION_FORWARD exception Summary of changes from pre-release 3 ------------------------------------- - A few small tweaks. Summary of changes from pre-release 2 ------------------------------------- ---------------------------------------------------------------------- WARNING! The mapping for server-side skeletons has changed since pre-release 2. Server-side code written for omniORBpy before pre-release 3 MUST be updated to work with omniORBpy 1.0 and above. This unfortunate state of affairs is due to an internal contradiction in drafts of the Python mapping. ---------------------------------------------------------------------- - Skeleton package names have changed The draft Python mapping specification contradicted itself about whether the skeleton package for IDL module M should be named POA_M or M__POA. Previous omniORBpy pre-releases used the POA_M mapping. Unfortunately, the Python mapping has now been clarified to use M__POA. To avoid the runtime and development overhead of backwards-compatibility, the old naming scheme is no longer supported. omniidl will issue a warning if it encounters packages with the old names, and code which imports the packages will fail with an ImportError. To update your code, simply replace all occurrences of POA_ with __POA. Note that for interfaces in nested modules, M1::M2::I is mapped to M1__POA.M2.I. - Performance improvements Server-side operation dispatch is now around twice as fast as it was before. - Full mapping compliance Minor details to meet the finalized Python mapping specification. All changes (other than the skeleton naming) are additions, so no code needs to be changed. All facilities offered by omniORBpy now follow the standard mapping. - omniORB API additions Support for exception handler functions, URI handling functions, and other minor things. - Bug fixes Mostly fixes for obscure contrived situations which will almost certainly never arise in real life. - Manual A full user guide. Building -------- You must install the omniORBpy source in the $TOP/src/lib directory of a working omniORB 3.0 or 2.8 tree. Then, in the $TOP/src/lib/omniORBpy directory, simply do a gnumake export. On Windows only, if you are using omniORB 2.8, one of the omniORB header files (omniInternal.h) has to be updated. You must get the latest version of the omni2_8_develop branch from CVS or the ftp snapshots. Using omniORBpy --------------- To use omniORBpy, simply add two paths to your PYTHONPATH environment variable, like: export PYTHONPATH=$PYTHONPATH:$TOP/lib/python:$TOP/lib/$FARCH where $TOP is the root of your omniORB tree and $FARCH is the platform name you selected in config.mk. You should also have $TOP/bin/$FARCH in your PATH, so you can run the IDL compiler, omniidl. omniORBpy requires Python version 1.5.2. The Python interpreter must be compiled with thread support. Full documentation, in a variety of formats, can be found in the src/lib/omniORBpy/doc directory. Missing features ---------------- The following features are currently missing from omniORBpy. 1. There is no support for DII and DSI. Since you can write IDL and Python code on-the-fly, this is not a significant limitation. 2. The long double, wchar, and wstring types are not yet supported. 3. When using omniORB 2.8, the majority of POA functions are not supported, since the Python POA is actually implemented with the C++ BOA. With omniORB 3.0, the full POA functionality is available. 4. Context is not supported. 5. Objects by value are not supported.