
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 <AA03540>; 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 </afs/andrew.cmu.edu/service/mailqs/q001/QF.gYnn2Nq00UkT8Bn05R>;
          Thu, 27 Jul 89 11:56:10 -0400 (EDT)
Received: from ucbvax.Berkeley.EDU by po3.andrew.cmu.edu (5.54/3.15) id <AA03524> 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
