This is to announce the availability of an alpha release of ILU 2.0, ILU 2.0alpha13. See ftp://ftp.parc.xerox.com/pub/ilu/ilu.html to download the sources for UNIX or Windows. 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.0alpha13 are ANSI C, Common Lisp, Java, and Python; rough Guile Scheme and C++ support is also present. Additional ILU support for Perl is freely available from outside sources. Operating systems supported in 2.0alpha13 are all Windows platforms with Win32 and WinSock, and all UNIX platforms with BSD sockets and minimal POSIX compliance. 2.0alpha13 supports interoperability with ONC RPC services, OMG CORBA services, World Wide Web HTTP services, and W3C HTTP-NG 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. An implementation of the IETF's Common Authentication Technology working group's Generic Security Service (GSS) is provided, and can be used to wrap client-server connections in a security context. An XML parser is provided. ILU is provided free for unrestricted use. Known bugs are listed in the README file. Despite being an alpha release, 2.0alpha13 is very stable along a number of dimensions. Principal areas still under development, and hence unstable, are: the C++ mapping, the specific algorithm for automatic generation of type UID fingerprints, the HTTP-NG protocols, 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.0a13/patches.html. Please fetch this file and apply the patches before attempting to build ILU. See the beginning of the patch file for information on how to apply patches. Changes from 2.0alpha12 to 2.0alpha13 ------------------------------------- * Clarified copyright. We have clarified the terms of the ILU copyright to make it clear that it conforms to the requirements of free software. * Java support more robust. Support for different java environments more robust. Added JDK1.2betaX. Added support for native threads on unix. On NT, supports developping ilu applications from within a few commercial IDE's. Many bug fixes. * GSS security transport. This provides the ability to wrap arbitrary security contexts around communication between two address spaces. It includes the ability to identify callers by arbitrary GSS namespaces schemes. A generic GSS *shell* (into which various mechanisms can be plugged) is included. See the security chapter of the ILU manual for more information. * More CORBA-ization of the C runtime. The pseudo-ORB initialization functions are now present for the C runtime. * Conforming implementations of the HTTP-NG wire protocol and MUX transport. Implementations of the HTTP-NG wire protocol and webmux transport now conform to the Internet drafts for these protocols. Note that the mux transport only works in threaded mode (both client and server). * Proper sending of clean shutdown messages. It is now possible for RPC and transport protocols to send clean shutdown messages. Currently only the HTTP-NG wire protocol, `w3ng', does so. * Reaping idle incoming connections on multi-threaded servers. It used to be the case that incoming connections to multi-threaded servers would not be closed when the server was trying to reduce its FD (File Descriptor, an OS-level resource) usage; this has now been fixed. * XML parser. This release includes an early version of a C-based validating XML parser. It is a general-purpose XML parser that may be used in future releases of ILU for various purposes. Information on the use of the parser and its current (known) limitations is found in `ILUSRC/stubbers/XML-parser/README'. * Optimized marshalling of data structures from C. The C marshalling code for ILU now matches data structures in memory against their marshalled representation in the particular wire protocol selected. If they match, the data structure is written directly to the wire, instead of having each element manipulated independently. This can speed up the I/O processing of a large array of floating-point values, say, by over 2000 percent. * Bug fixes in Python and Java stubbers may cause type UID changes. If you stub multiple files on the same command line with the Java and Python stubbers, past releases of ILU may have given different type UIDs to the resulting types than if you stubbed each file separately. This bug has been fixed, and the Python and Java stubbers now always give the same type UID as the other stubbers produce. * Better configuration support for Linux. ILU should configure `out of the box' properly for Red Hat 5.1 Linux. In general, updates to the configuration machinery should make Linux configuration easier.