From: CRDGW2::CRDGW2::MRGATE::"SMTP::ANDREW.CMU.EDU::ATKBB+BAD-ADDRESSES" Date: 27-JUL-1989 12:36:24 Description: Elk (Extension Language Kit) submitted to comp.sources.unix Received: by po3.andrew.cmu.edu (5.54/3.15) id ; Thu, 27 Jul 89 11:57:50 EDT Received: via switchmail for info-andrew+@andrew.cmu.edu; Thu, 27 Jul 89 11:57:47 -0400 (EDT) Received: from po3.andrew.cmu.edu via qmail ID ; Thu, 27 Jul 89 11:56:10 -0400 (EDT) Received: from ucbvax.Berkeley.EDU by po3.andrew.cmu.edu (5.54/3.15) id for info-andrew; Thu, 27 Jul 89 11:55:53 EDT Received: by ucbvax.Berkeley.EDU (5.61/1.37) id AA29808; Thu, 27 Jul 89 08:50:10 -0700 Received: from USENET by ucbvax.Berkeley.EDU with netnews for info-andrew@andrew.cmu.edu (info-andrew@andrew.cmu.edu) (contact usenet@ucbvax.Berkeley.EDU if you have questions) Date: 26 Jul 89 13:19:26 GMT From: mcvax!unido!tub!net@uunet.uu.net (Oliver Laumann) Organization: Technical University of Berlin, Germany Subject: Elk (Extension Language Kit) submitted to comp.sources.unix Message-Id: <883@tub.UUCP> Sender: info-andrew-request@andrew.cmu.edu To: info-andrew@andrew.cmu.edu I would like to announce the posting of Elk (the Extension Language Kit) to comp.sources.unix. Elk is a Scheme interpreter intended to be used as a general extension language interpreter. Interfaces to the X11R3 Xlib and the Athena and HP widget sets are part of the distribution. This might also be of interest to the readers of comp.soft-sys.andrew because of the recent discussion about extension languages. Attached to this article you will find a copy of the release notes. Regards, -- Oliver Laumann net@TUB.BITNET net@tub.UUCP ----------------------------------------------------------------------- Elk Release Notes ----------------- This is release 1.0 of Elk (The Extension Language Kit). This is a production release. Elk is a Scheme interpreter intended to be used as a general extension language; it is also useful as a stand-alone implementation of Scheme. One purpose of the Elk project is to end the recent proliferation of mutually incompatible Lisp-like extension languages. Instead of inventing and implementing yet another extension language, application programmers can link the Scheme interpreter into their application in order to make it extensible and highly customizable. The Elk project was started in 1987 to support ISOTEXT, an ODA-based document system (a WYSIWYG editor) that is being developed at the Technical University of Berlin. Elk has been successfully demonstrated as the extension language kernel of ISOTEXT, e.g. at the Hanover Fair 1989. We feel that Scheme is better suited as a general extension language than other Lisp dialects: it is sufficiently small to not dwarf the application it serves and to be fully understood with acceptable effort; it is orthogonal and well-defined. In addition, Scheme has been recognized to be mature enough for national and international standardization (IEEE P1178, ISO/IEC JTC1/SC22/WG16). The Elk Scheme interpreter is R^3RS compatible (with some minor exceptions listed in a separate document); future releases will conform to the R^4RS and/or P1178 as soon as the respective standards become available. Non-standard features of the Scheme implementation include: o dynamic loading of object files o creation of an executable image from the running interpreter (``unexec'') o a macro facility o environments as first-class objects o dynamic-wind, fluid-let o autoloading, provide/require The Scheme interpreter can easily be extended by application-specific new types and primitive procedures. Such extensions are typically written in C or C++ and dynamically loaded into the running interpreter. The current release of Elk includes several such extensions, e.g. interfaces to the X11 Xlib and to the application programmer interface of the Xt intrinsics, and interfaces to the Athena widget set and the HP widget set. The software currently runs on Sun-3s with SunOS, ISI 680x0 with 4.2BSD or 4.3BSD, Vax with 4.3BSD or Ultrix, and Intel 80386 with System V Release 3. Porting instructions are included. Dynamic loading of object modules is not supported under System V. -- Oliver Laumann, Technical University of Berlin, Germany Communications and Operating Systems Research Group net@tub.BITNET Europe: unido!tub!net World: pyramid!tub!net