This is to announce the availability of an alpha release of ILU 2.0, ILU 2.0alpha12. 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.0alpha12 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.0alpha12 are all Windows platforms with Win32 and WinSock, and all UNIX platforms with BSD sockets and minimal POSIX compliance. 2.0alpha12 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.0alpha12 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 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.0a12/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.0alpha11 to 2.0alpha12 ------------------------------------- * Many bug fixes. This release primarily fixes a number of bugs in 2.0alpha11, including various problems with the direct IDL support, the Common Lisp support, the `serializer' construct in the kernel, and the new CosNaming name service. * First release of IETF Generic Security Service API shell. This is an implementation of a `shell' library providing the API defined by Internet RFC 2078 (`http://info.internet.isi.edu:80/in-notes/rfc/files/rfc2078.txt'), whichprovides a generic interface for providing security contexts around communications between parties. The ILU GSS shell provides a `back-end' API, into which specific namespace schemes and authentication mechanisms can be `plugged'. It also includes one example of a (non-secure) namespace scheme (called `rfc822'), and one example of a (non-secure) authentication mechanism (called `nil'). Due to U.S. export controls on cryptographic technology, we don't plan to release publicly any `secure' namespace or authentication mechanisms, as all of those that we're aware of rely on controlled cryptographic algorithms to provide that security. We expect that serious users of the GSS will provide their own namespaces and mechanisms. See `ILUSRC/GSS/README' for more information on this GSS shell. Note that this release does *not* provide support for the ILU `gss' transport filter. * Support for the w3ng wire protocol. This release includes support for a new wire protocol called `w3ng'. This is the first wire protocol actually designed for use with ILU. It exhibits a number of efficiency improvements over existing wire protocols supported by ILU. * Java support now includes `full custom mapping'. This allows a Java programmer to specify non-standard Java classes to be used for any ILU ISL constructed type. See the Java chapter of the manual to find out how to use this. * Server relocation supported. It is sometimes useful to have a `dummy' server, that will redirect any requests to it to a real server somewhere else. This can be used for load balancing, automatic start-up of services, redirecting name service, code migration, and other various purposes. ILU supports this via a mechanism called server relocation, currently available only in the C, Python, and Java runtimes, and only with the `w3ng' and `IIOP' protocols. * TCP affordances. It is now possible to control the size of TCP/IP transport buffers, either as an optional parameter in the tinfo when creating a Port, or by setting the default buffer size directly from C or Python. It is also possible to get some elementary statistics about TCP/IP resource usage from either C or Python. * Simple use of ISL types in Java. ISL types of any kind except `PICKLE' no longer automatically interact with the ILU runtime, so the ILU runtime library for Java no longer needs to be loaded to support non-ILU use of these types. * Mechanism for discovering caller identity in C has changed. You should now call ``ILU_C_CallerIdentity()'', instead of ``ILU_C_GetPassportContext()'', in a true method to determine the identity of the caller.