This is to announce the availability of an alpha release of ILU 2.0, ILU 2.0alpha10. See ftp://ftp.parc.xerox.com/pub/ilu/ilu.html to download the sources for UNIX or Windows or pre-built Windows binaries. The Inter-Language Unification system (ILU) is a multi-language object interface system. The object interfaces provided by ILU hide implementation distinctions between different languages, between different address spaces, and between operating system types. ILU can be used to build multi-lingual object-oriented libraries ("class libraries") with well-specified language-independent interfaces. It can also be used to implement distributed systems. It can also be used to define and document interfaces between the modules of non-distributed programs. ILU interfaces can be specified in either the OMG's IDL language, or in ILU's Interface Specification Language, which allows extensions to the CORBA spec. Programming languages supported in 2.0alpha10 are ANSI C, Common Lisp, Java, and Python; rough C++ support is also present. Operating systems supported in 2.0alpha10 are all Windows platforms with Win32 and WinSock, and all UNIX platforms with BSD sockets and minimal POSIX compliance. 2.0alpha10 supports interoperability with ONC RPC services, OMG CORBA services, World Wide Web HTTP services, and XNS Courier services. ``Plug-in'' extensibility is provided for RPC message formats, message transport schemes, URL schemes, accounting and authorization identity types, threading and event loop processing, and various other things. ILU is provided free for unrestricted use. Known bugs are listed in the README file. Despite being an alpha release, 2.0alpha10 is very stable along a number of dimensions. Principal areas still under development, and hence unstable, are: the specific APIs for security, the C++ mapping, the Java mapping, the mapping of ILU object references to various RPC protocols, the specific algorithm for automatic generation of type UID fingerprints, and the specific contents of the ILU profile in the OMG CORBA IOR. Patches will be appearing in the file ftp://ftp.parc.xerox.com/pub/ilu/2.0a10/patches.html. Changes from 2.0alpha9 to 2.0alpha10 ------------------------------------ * *Default garbage collection behavior of Python true objects changed.* In previous ILU releases, the ILU kernel held an extra reference to each Python true object, so that they were never garbage collected. This extra reference has been removed in 2.0alpha10, so that the application must be careful to maintain references to objects which it wishes to preserve. * *Aggressive garbage collection of C objects.* C objects (`ILU_C_Object *') are now reference counted. An application must be careful to use `CORBA_Object_duplicate' and `CORBA_Object_release' correctly to avoid memory smashes. * *Full type information cached.* If both `--enable-pickle-support' and `--enable-corba-iiop' have been selected, full type information on all compiled-in or dynamically-loaded ISL types is now cached in memory. This makes it theoretically possible for someone to write a CORBA Interface Repository service for ILU (or something more useful). Note changes in `ilu_DefineMethod', `ilu_DefineException', and the new function `ilu_DefineMethodArg'. * *HTTP persistence supported.* The `HTTP' protocol may now be selected with the string `"http_1_0p"', which causes it to send `Connection: "Keep-Alive"' headers, and not close the connection between calls (assuming of course that the other end of the connection also supports this behavior - fairly common.) The programs in examples/httest have been updated accordingly. In addition, it is now possible to use `HTTP' over a boundaried transport. * *OMG IDL exceptions with values handled.* The `idl2isl' compiler now, for an OMG IDL exception `E', generates an ISL exception called `E', and an ISL type called `ilu--prefix-idlExceptionType-E'. The stubbers handle this type variously; the C stubber renames it to `E', as required by the CORBA spec; the Python stubber renames it to `E__omgidl_exctype'; the Lisp stubber folds it into the definition of the `condition' `E', and doesn't support the type directly at all. * *Java support improved.* The Java support has been improved, and brought closer to the emerging CORBA specification for it. Pickles are now supported, and work with IIOP; enumerations are now mapped according to the CORBA standard; system exceptions are now Java runtime exceptions; interfaces can be specified in OMG IDL; works with select-based (BSD) systems as well as poll-based (SVR4) systems; holder classes can be mapped the OMG way; many bug fixes. * *Common Lisp support improved.* The Common Lisp work by Joachim Achtzehnter has been incorporated, and various other fixes have been added, including PICKLE support. Common Lisp support is still missing type registration, but in other respects should be fully working. * *ilu_Server leaks fixed.* In previous versions, ILU kernel servers which had become empty were not garbage collected. This has been fixed. The fix also changes the `iluMainLoop' class in the old C++ runtime. * *Default protocol and transport selected dynamically.* The default protocol and transport are now selected dynamically, so that ILU installations without `Sun RPC' can be created. * *idl2isl now provided on Win32.* The `idl2isl' is now part of the Windows build. * *Python 1.4 now provided on Win32.* Python 1.4 is now the version used on Windows systems. * *WINIO no longer part of release.* WINIO, a subsystem no longer needed by ILU on Windows, but included in previous releases, has been dropped from the release distribution.