From janssen@holmes.PARC.Xerox.Com Mon May 23 13:35:50 EDT 1994 Article: 12874 of comp.lang.lisp Xref: glinda.oz.cs.cmu.edu comp.object:16954 comp.client-server:3779 comp.object:16955 comp.lang.lisp:12874 comp.lang.modula3:2537 comp.lang.c++:77562 comp.lang.clos:2317 comp.lang.c:99336 comp.lang.misc:16165 comp.lang.python:635 comp.programming:9700 comp.specification:2062 Path: honeydew.srv.cs.cmu.edu!nntp.club.cc.cmu.edu!godot.cc.duq.edu!newsfeed.pitt.edu!gatech!howland.reston.ans.net!agate!overload.lbl.gov!lll-winken.llnl.gov!decwrl!parc!news!janssen From: janssen@holmes.PARC.Xerox.Com (Bill Janssen) Newsgroups: comp.object,comp.client-server,comp.object,comp.lang.lisp,comp.lang.modula3,comp.lang.c++,comp.lang.clos,comp.lang.c,comp.lang.misc,comp.lang.python,comp.programming,comp.specification Subject: ILU 1.6.4 available Date: 21 May 1994 01:45:28 GMT Organization: Xerox Palo Alto Research Center Lines: 114 Distribution: world Message-ID: NNTP-Posting-Host: holmes.parc.xerox.com Summary: ILU, an object-oriented multi-lingual RPC-capable module system, is now freely available Keywords: inter-language unification, object-oriented, interface, module system, OMG CORBA, ILU ISL, OMG IDL, RPC, C++, ANSI C, Common Lisp, Modula-3 Version 1.6.4 of the Xerox PARC Inter-Language Unification (ILU) system is now available for general use. WHAT'S ILU? ILU (pronounced eye'-loo) is a system that promotes software interoperability via interfaces. Interfaces between what? Whatever units of program structure are desired; we call them by the generic term "modules". They could be parts of one process, all written in the same language; they could be parts written in different languages, sharing runtime support in one memory image; they could be parts running in different memory images on different machines (on different sides of the planet). A module could even be a distributed system implemented by many programs on many machines. Calls across ILU interfaces involve only as much mechanism as necessary for the calling and called modules to interact. In particular, when the two modules are in the same memory image and use the same data representations, the calls are direct local procedure calls -- no stubs or other RPC mechanisms are involved. ILU modules are known by their interfaces. A module interface is specified once in ILU's object-oriented Interface Specification Language (called, simply, ISL). For each of the particular programming languages supported by ILU (currently Common Lisp, ANSI C, C++, and Modula-3; Python, Tcl, and GNU Emacs-Lisp are in the works), a version of the interface in that particular programming language can be generated. The ILU kernel library provides services which may be used by the language-specific interface to overcome intermodule language or address space differences. Many existing RPC systems, such as Xerox XNS Courier, ONC RPC, and OSF DCE RPC, have strong notions of interfaces. ILU allows binding to such services provided by such systems if their interfaces can be described in ISL. ISL has been designed to facilitate such description (currently, only for ONC RPC; Courier and DCE RPC are in progress). The binding to such RPC services is done in such a way as to be indistinguishable from binding to other ILU modules. In fact, properly constructed ILU modules can appear as native RPC services, and can be manipulated by non-ILU tools designed to work with those RPC services. Similarly, the Object Management Group's (OMG) Common Object Request Broker Architecture (CORBA) defines modules with explicit interfaces. ILU allows modules that can be described with a safe subset of OMG CORBA IDL to be used as ILU modules, as well, though the ILU object model is not quite the same as the OMG CORBA object model. In fact, people wishing to experiment with CORBA may find ILU a useful experimental platform, as it does allow module specification with OMG IDL, and does generate ANSI C support as specified in Draft 1.2 of the OMG CORBA specification. As the OMG specification for a C++ mapping is agreed upon, we intend to provide that mapping for our C++ support, as well. Release 1.6.4 is intended as a beta release. Major efficiency improvements and some usability improvements are planned for the next release. It has been tested lightly on SunOS 4.1.3, Sun's Solaris 2.3, and SGI's IRIX 5.2. It is designed to be highly portable, and a port to the Macintosh has been done (but is not included in this release). GETTING THE RELEASE The release is only available via FTP from the PARC ftp server. Perhaps the simplest way is to go through our World Wide Web home page, ftp://parcftp.parc.xerox.com/pub/ilu/ilu.html. It has links to everything else, and may help answer any questions you might have. The release notes are available as an HTML document, ftp://parcftp.parc.xerox.com/pub/ilu/1.6.4/announce.html. The full source code, including documentation, is available as a 3 MB compressed tar file as ftp://parcftp.parc.xerox.com/pub/ilu/1.6.4/ilu-1.6.4.tar.Z The 1.6.4 ILU manual is also available separately, either in Postscript (231 KB) as ftp://parcftp.parc.xerox.com/pub/ilu/1.6.4/ilu-manual-1.6.4.ps.Z or via World Wide Web at ftp://parcftp.parc.xerox.com/pub/ilu/1.6.4/manual-html/manual_toc.html. CONTRIBUTORS Antony Courtney, Doug Cutting, Bill Janssen, Denis Severson, Mike Spreitzer, Mark Stefik, Farrell Wymore COPYRIGHT RESTRICTIONS ILU is Copyright (c) 1991, 1992, 1993, 1994 Xerox Corporation. All Rights Reserved. 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. -- Bill Janssen (415) 812-4763 FAX: (415) 812-4777 Xerox Palo Alto Research Center, 3333 Coyote Hill Rd, Palo Alto, CA 94304 URL: ftp://parcftp.parc.xerox.com/pub/ilu/misc/janssen.html Article 13248 of comp.lang.lisp: Xref: glinda.oz.cs.cmu.edu comp.lang.lisp:13248 Path: honeydew.srv.cs.cmu.edu!das-news.harvard.edu!news2.near.net!MathWorks.Com!yeshua.marcam.com!usc!howland.reston.ans.net!agate!ames!decwrl!parc!news!janssen From: janssen@parc.xerox.com (Bill Janssen) Newsgroups: comp.lang.lisp Subject: Re: Interprocess communication in Common Lisp ? Date: 23 Jun 1994 04:42:28 GMT Organization: Xerox Palo Alto Research Center Lines: 32 Message-ID: References: <2bartel.772272064@rzdspc5> NNTP-Posting-Host: holmes.parc.xerox.com In-reply-to: 2bartel@rzdspc5.informatik.uni-hamburg.de's message of 22 Jun 94 08:01:04 GMT In article <2bartel.772272064@rzdspc5> 2bartel@rzdspc5.informatik.uni-hamburg.de (Henner Bartels) writes: Currently LISP doesn't support mechanisms to communicate with other LISP processes running on the same (or distant) machines nor it is capable of communicating with other tasks like h/w drivers written in C or Forth. This is probably off the topic, but our Inter-Language Unification system, ILU, supports Lisp processes talking to other Lisp processes, either on the same machine or other machines, and sharing each others' objects (in a very limited, but useful, way). It also supports talking from Lisp to C, Modula-3, or C++, in a generic, standard way. It also provides a module system/language for static description of CL interfaces. Publicly available free. Can be used commercially, free. Currently only working in Lisp with Franz Allegro CL, but designed to be easy to port. See ftp://parcftp.parc.xerox.com/pub/ilu/ilu.html for details. Bill -- Bill Janssen (415) 812-4763 FAX: (415) 812-4777 Xerox Palo Alto Research Center, 3333 Coyote Hill Rd, Palo Alto, CA 94304 URL: ftp://parcftp.parc.xerox.com/pub/ilu/misc/janssen.html