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 are specified in ILU's Interface Specification Language.
The 1.8 release of ILU contains support for the programming languages Common Lisp, C++, ANSI C, Modula-3, and Python. It has been installed on many flavors of UNIX, including SPARC machines running SunOS 4.1.3 and Solaris 2, SGI MIPS machines running IRIX 5.2, Intel 486 machines running Linux 1.1.78, DEC Alpha machines with OSF/1, IBM RS/6000 machines running AIX, and HP machines running HP/UX. A port of ILU to the Microsoft Windows 3.1 and Windows NT environments has been finished, and will form part of the 1.9 release. ILU supports both threaded and non-threaded operation. One of the implementation goals of ILU is to maximize compatibility with existing open standards. As a result, ILU provides support for use of the OMG CORBA IDL interface description language, and can be thought of as a CORBA ORB system (though with omissions from and extensions to the CORBA spec). As another result, ILU includes a self-contained implementation of ONC RPC, and it is possible to describe and use existing RPC services as ILU objects. ILU is available free from `ftp://ftp.parc.xerox.com/pub/ilu/ilu.html'.
This tutorial shows how to use ILU both as a way of developing software libraries, and as a way of building distributed systems, using either the programming language ANSI C (unfortunately one of the cruder ILU-supported languages), or the programming language Python (one of the nicer ones). In an extended example, it builds a module that implements a simple four-function calculator, capable of addition, subtraction, multiplication, and division. The example demonstrates how to specify the interface for the module; how to implement the module; how to use that implementation as a simple library; how to provide the module as a remote service; how to write a client of that remote service; how to use subtyping to extend an object type and provide different versions of a module; and how to use OMG IDL with ILU. The Python tutorial also covers use of Tk with ILU, and distributed garbage collection. The tutorial is a 167K gzip'ed tar file, containing both Postscript and text versions of the tutorial documents, and the sources for the example.
The mailing list ILU.parc@xerox.com is for discussion of ILU, questions, etc. Please send mail to ILU-request.parc@xerox.com to be added or deleted, not to the list itself.
Another mailing list, ILU-interest.parc@xerox.com, is only for announcements of ILU releases, and may have less traffic. Any messages sent to ILU-interest will be seen by everyone on ILU, however, so no need to be on both. Again, if you'd like to be on ILU-interest, please send mail to ILU-request.parc@xerox.com.
Archives of the ILU mailing lists are available as HyperMail archives.
Unlimited use, reproduction, and distribution of this software is permitted. Any copy of this software must include both the above copyright notice of Xerox Corporation and this paragraph. Any distribution of this software must comply with all applicable United States export control laws. This software is made available AS IS, and Xerox Corporation DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, AND NOTWITHSTANDING ANY OTHER PROVISION CONTAINED HEREIN, ANY LIABILITY FOR DAMAGES RESULTING FROM THE SOFTWARE OR ITS USE IS EXPRESSLY DISCLAIMED, WHETHER ARISING IN CONTRACT, TORT (INCLUDING NEGLIGENCE) OR STRICT LIABILITY, EVEN IF Xerox Corporation IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Please send enquiries and resumes to ilu-core@parc.xerox.com. Referrals are also welcome!