category: dynamic foreign functions
-
Description:
|
These tools can dynamically load C code at run-time.
|
|---|
-
Language:
|
Common Lisp
|
|---|
-
Package:
|
AKCL (Austin Kyoto Common Lisp)
|
|---|
-
Version:
|
1-615
|
|---|
-
Parts:
|
improvements
|
|---|
-
Author:
|
Bill Schelter <wfs@cli.com>, <wfs@rascal.ics.utexas.edu>
|
|---|
-
Location:
|
ftp://rascal.ics.utexas.edu/pub/akcl-*.tar.Z
|
|---|
-
Description:
|
AKCL is a collection of ports, bug fixes, and
performance improvements to KCL.
|
|---|
-
Ports:
|
Decstation3100, HP9000/300, i386/sysV, IBM-PS2/aix, IBM-RT/aix
SGI Sun-3/Sunos[34].* Sun-4 Sequent-Symmetry IBM370/aix,
VAX/bsd VAX/ultrix NeXT
|
|---|
-
Updated:
|
April 29th, 1992
|
|---|
-
Language:
|
Common Lisp
|
|---|
-
Package:
|
Cartier's Contribs
|
|---|
-
Version:
|
1.2
|
|---|
-
Parts:
|
libraries, documentation
|
|---|
-
Author:
|
Guillaume Cartier <cartier@math.uqam.ca>
|
|---|
-
Location:
|
ftp://cambridge.apple.com/pub/mcl2/contrib/Cartiers*
|
|---|
-
Description:
|
libraries for MCL
|
|---|
-
Requires:
|
Macintosh Common Lisp
|
|---|
-
Discussion:
|
comp.lang.lisp.mcl
|
|---|
-
Updated:
|
April 18th, 1994
|
|---|
-
Language:
|
Common Lisp
|
|---|
-
Package:
|
CLiCC
|
|---|
-
Version:
|
0.6.4
|
|---|
-
Parts:
|
compiler(->C), runtime library
|
|---|
-
Author:
|
Heinz Knutzen <hk@informatik.uni-kiel.de>,
Ulrich Hoffman <uho@informatik.uni-kiel.de>,
Wolfgang Goerigk <wg@informatik.uni-kiel.de>
|
|---|
-
Location:
|
ftp://ftp.informatik.uni-kiel.de/pub/kiel/apply/clicc*
|
|---|
-
Description:
|
A Common Lisp to C compiler, meant to be used as a supplement
to existing CLISP systems for generating portable applications.
Target C code must be linked with CLiCC runtime library to
produce executable.
|
|---|
-
Conformance:
|
Subset of Common Lisp + CLOS (named: CL_0, or CommonLisp_0)
CL_0 based on CLtL1.
|
|---|
-
Restriction:
|
Freely distributable and modifiable
|
|---|
-
Ports:
|
Runs in Lucid Lisp, AKCL, CLISP, ...
|
|---|
-
Status:
|
Working towards CLtL2 and ANSI-CL conformance.
|
|---|
-
Updated:
|
June 25th, 1994
|
|---|
-
Language:
|
Common Lisp
|
|---|
-
Package:
|
CLISP
|
|---|
-
Version:
|
July 12th, 1994
|
|---|
-
Parts:
|
interpreter, bytecode compiler, runtime library, editor
|
|---|
-
Author:
|
Bruno Haible <haible@ma2s2.mathematik.uni-karlsruhe.de>,
Michael Stoll <michael@rhein.iam.uni-bonn.de>
|
|---|
-
Location:
|
ftp://ma2s2.mathematik.uni-karlsruhe.de/pub/lisp/clisp
ftp://sunsite.unc.edu/pub/Linux/development/lisp/
ftp://tsx-11.mit.edu/pub/linux/packages/lisp/
|
|---|
-
Description:
|
CLISP is a Common Lisp (CLtL1) implementation by Bruno Haible
of Karlsruhe University and Michael Stoll of Munich University,
both in Germany. It needs only 1.5 MB of RAM. German and
English versions are available, French coming soon. Packages
running in CLISP include PCL and, on Unix machines, CLX. A
native subset of CLOS is included.
|
|---|
-
Conformance:
|
CLtL1 + parts of CLtL2
|
|---|
-
Restriction:
|
GNU General Public License
|
|---|
-
Ports:
|
Atari, Amiga, MS-DOS, OS/2, Linux, Sun4, Sun386i, HP90000/800
and others
|
|---|
-
Discussion:
|
send "subscribe clisp-list" to
listserv@ma2s2.mathematik.uni-karlsruhe.de
|
|---|
-
Contact:
|
Bruno Haible <haible@ma2s2.mathematik.uni-karlsruhe.de>
|
|---|
-
Updated:
|
July 12th, 1994
|
|---|
-
Language:
|
Common Lisp
|
|---|
-
Package:
|
CMU Common Lisp
|
|---|
-
Version:
|
17c
|
|---|
-
Parts:
|
incremental compiler, profiler, runtime, documentation,
editor, debugger
|
|---|
-
Author:
|
?
|
|---|
-
Location:
|
ftp://lisp-sun1.slisp.cs.cmu.edu/pub/*
|
|---|
-
Description:
|
CMU Common Lisp is public domain "industrial strength" Common
Lisp programming environment. Many of the X3j13 changes have
been incorporated into CMU CL. Wherever possible, this has
been done so as to transparently allow use of either CLtL1 or
proposed ANSI CL. Probably the new features most interesting
to users are SETF functions, LOOP and the
WITH-COMPILATION-UNIT macro.
- The new CMU CL compiler (Python) is more sophisticated
thatn other Common Lisp compilers. It produces better code
and is easier to use.
- The programming environment based on the Hemlock editor
is better integrated than gnu-emacs based environments.
|
|---|
-
Conformance:
|
mostly X3J13 compatible.
|
|---|
-
Ports:
|
Sparc/Mach Sparc/SunOS Mips/Mach IBMRT/Mach
|
|---|
-
Contact:
|
slisp@cs.cmu.edu
|
|---|
-
Updated:
|
November 18th, 1993
|
|---|
-
Language:
|
Scheme
|
|---|
-
Package:
|
Elk (Extension Language Kit)
|
|---|
-
Version:
|
3.0
|
|---|
-
Parts:
|
interpreter, dynamically-loadable libraries, run-time,
documentation, examples.
|
|---|
-
Author:
|
Oliver Laumann <net@cs.tu-berlin.de>
|
|---|
-
Location:
|
|
|---|
-
Description:
|
Elk is a Scheme implementation designed as an embeddable,
reusable extension language subsystem for applications
written in C or C++. Elk is also useful as a stand-alone
Scheme implementation, in particular as a platform for rapid
prototyping of X11-based Scheme programs.
|
|---|
-
Conformance:
|
R^4RS
|
|---|
-
Reference:
|
Oliver Laumann and Carsten Bormann, Elk: The Extension
Language Kit, USENIX Computing Systems, vol 7, no 4, 1994.
|
|---|
-
Features:
|
- Full incremental, dynamic loading on many platforms
- Freezing of interpreter/application into executable file
- C/C++ programmer's interface for language interoperability
- Scheme bindings for X11 Xlib, Xt, Athena and Motif widgets
- UNIX interface (not restricted to POSIX)
- debugger, bitstrings, records, regular expressions
- stop-and-copy and generational incremental garbage collector
- 230+ pages of documentation (troff and PostScript)
|
|---|
-
Ports:
|
numerous UNIX platforms (see MACHINES in the distribution).
|
|---|
-
Status:
|
Elk was first published in 1989.
|
|---|
-
Announcements:
|
comp.lang.scheme
|
|---|
-
Updated:
|
1995/08
|
|---|
-
Language:
|
Common Lisp
|
|---|
-
Package:
|
Garnet
|
|---|
-
Version:
|
2.2
|
|---|
-
Parts:
|
user interface builder
|
|---|
-
Author:
|
The Garnet project
|
|---|
-
Location:
|
ftp://a.gp.cs.cmu.edu/usr/garnet/garnet
|
|---|
-
Description:
|
Garnet is a user interface development environment for Common
Lisp and X11. It helps you create graphical, interactive
user interfaces for your software. Garnet is a large scale
system containing many features and parts including a custom
object-oriented programming system which uses a
prototype-instance model. It includes postscript support,
gester recognition, and Motif emulation.
|
|---|
-
Contact:
|
Brad_Myers@bam.garnet.cs.cmu.edu
|
|---|
-
Updated:
|
October 15, 1993
|
|---|
-
Language:
|
Common Lisp
|
|---|
-
Package:
|
GINA (Generic Interactive Application)
|
|---|
-
Version:
|
2.2
|
|---|
-
Parts:
|
language binding, class library, interface builder
|
|---|
-
Author:
|
?
|
|---|
-
Location:
|
|
|---|
-
Description:
|
GINA is an application framework based on Common Lisp and
OSF/Motif to simplify the construction of graphical
interactive applications. It consists of:
- CLM, a language binding for OSF/Motif in Common Lisp.
- the GINA application framework, a class library in CLOS
- the GINA interface builder, an interactive tool implemented
with GINA to design Motif windows.
|
|---|
-
Requires:
|
OSF/Motif 1.1 or better. Common Lisp with CLX, CLOS, PCL and
processes.
|
|---|
-
Ports:
|
Franz Allegro, Lucid, CMU CL and Symbolics Genera
|
|---|
-
Discussion:
|
gina-users-request@gmd.de
|
|---|
-
Updated:
|
?
|
|---|
-
Language:
|
Common Lisp
|
|---|
-
Package:
|
Hyperlisp
|
|---|
-
Version:
|
2.1f
|
|---|
-
Parts:
|
?
|
|---|
-
Author:
|
Joe Chung, MIT Media Laboratory
|
|---|
-
Location:
|
ftp://cambridge.apple.com/pub/mcl2/contrib/hyperlisp21f.sit.hqx
|
|---|
-
Description:
|
Hyperlisp is a real-time MIDI programming environment
embedded in Macintosh Common Lisp. The environment
was developed specifically for the Hyperinstruments project
at the MIT Media Laboratory, and is optimized for interactive
systems which require fast response times. Hyperlisp
provides two main services for the music programmer:
routines for MIDI processing and primitives for scheduling
the application of functions. Programs written in Macintosh
Common Lisp can use these services for a wide variety of
real-time MIDI applications.
|
|---|
-
Updated:
|
April 18th, 1994
|
|---|
-
Language:
|
Common Lisp
|
|---|
-
Package:
|
KCL (Kyoto Common Lisp)
|
|---|
-
Version:
|
?
|
|---|
-
Parts:
|
compiler(->C), interpreter
|
|---|
-
Author:
|
T. Yuasa <yuasa@tutics.tut.ac.jp>, M. Hagiya
<hagiya@is.s.u-tokyo.ac.jp>
|
|---|
-
Location:
|
? ftp://rascal.ics.utexas.edu/pub/kcl*.tar.Z
|
|---|
-
Description:
|
KCL, Kyoto Common Lisp, is an implementation of Lisp,
It is written in the language C to run under Un*x-like
operating systems. KCL is very C-oriented; for example,
the compilation of Lisp functions in KCL involves a
subsidiary C compilation.
|
|---|
-
Conformance:
|
conforms to the book ``Common Lisp: The Language,''
G. Steele, et al., Digital Press, 1984.
|
|---|
-
Bugs:
|
kcl@cli.com
|
|---|
-
Restriction:
|
must sign license agreement
|
|---|
-
Discussion:
|
kcl-request@cli.com
|
|---|
-
Updated:
|
1987/06
|
|---|
-
Language:
|
BNF variant, Python
|
|---|
-
Package:
|
kwParsing ?
|
|---|
-
Version:
|
?
|
|---|
-
Parts:
|
parser generator
|
|---|
-
Author:
|
Aaron Watters <aaron@vienna.njit.edu>
|
|---|
-
Location:
|
ftp://ftp.markv.com/pub/python/kwParsing.*
|
|---|
-
Description:
|
A parser generator written in Python for Python. This package
may be appropriate for experimental translators, code
generators, interpreters, or compilers; for instructinal
purposes; among other possibility. The documentation gives a
brief introduction to the conventions and basic ideas of
parsing.
|
|---|
-
Updated:
|
September 24th, 1994
|
|---|
-
Language:
|
Perl (Practical Extraction and Report Language)
|
|---|
-
Package:
|
MacPerl
|
|---|
-
Version:
|
5.2.0r4
|
|---|
-
Author:
|
Matthias Neeracher <neeri@iis.ee.ethz.ch>
|
|---|
-
Location:
|
http://www.ptf.com/macperl
|
|---|
-
Description:
|
MacPerl offers (nearly) all the features of Perl plus oodles
of Macintosh-specific functionality!
|
|---|
-
Ports:
|
Macintosh
|
|---|
-
Status:
|
actively developed
|
|---|
-
Discussion:
|
mac-perl-request@iis.ee.ethz.ch (majordomo list)
|
|---|
-
Updated:
|
20 April 1998
|
|---|
-
Language:
|
Common Lisp
|
|---|
-
Package:
|
Memoization ?
|
|---|
-
Version:
|
?
|
|---|
-
Parts:
|
library
|
|---|
-
Author:
|
Marty Hall <hall@aplcenmp.apl.jhu.edu>
|
|---|
-
Location:
|
ftp://archive.cs.umbc.edu/pub/Memoization
|
|---|
-
Description:
|
Automatic memoization is a technique by which an existing
function can be transformed into one that "remembers"
previous arguments and their associated results
|
|---|
-
Updated:
|
November 30th, 1992
|
|---|
-
Language:
|
Common Lisp
|
|---|
-
Package:
|
PCL (Portable Common Loops)
|
|---|
-
Version:
|
8/28/92 PCL
|
|---|
-
Parts:
|
library
|
|---|
-
Author:
|
? Richard Harris <rharris@ptolemy2.rdrc.rpi.edu> ?
|
|---|
-
Location:
|
ftp://parcftp.xerox.com/pcl/*
|
|---|
-
Description:
|
A portable CLOS implementation. CLOS is the object oriented
programming standard for Common Lisp. Based on Symbolics
FLAVORS and Xerox LOOPS, among others. Loops stands for
Lisp Object Oriented Programming System.
|
|---|
-
Ports:
|
Lucid CL 4.0.1, CMUCL 16e, ?
|
|---|
-
Status:
|
?
|
|---|
-
Updated:
|
September 2nd, 1992
|
|---|
-
Language:
|
Perl (Practical Extraction and Report Language)
|
|---|
-
Package:
|
perl
|
|---|
-
Version:
|
4.0 patchlevel 36
|
|---|
-
Parts:
|
interpreter, debugger, libraries, tests, documentation
|
|---|
-
Author:
|
Larry Wall <lwall@netlabs.com>
|
|---|
-
Location:
|
|
|---|
-
Description:
|
perl is an interpreted language optimized for scanning
arbitrary text files, extracting information from those text
files, and printing reports based on that information. It's
also a good language for many system management tasks.
|
|---|
-
Reference:
|
"Programming Perl" by Larry Wall and Randal L. Schwartz,
O'Reilly & Associates, Inc. Sebastopol, CA.
ISBN 0-93715-64-1
"Learning Perl" by Randal L. Schwartz,
O'Reilly & Associates, Inc. Sebastopol, CA.
ISBN 1-56592-042-2
The perl FAQ, ftp from rtfm.mit.edu
|
|---|
-
Features:
|
- +
very-high semantic density becuase of powerful operators
like regular expression substitution
- +
exceptions, provide/require
- +
associative array can be bound to dbm files
- +
no arbitrary limits
- +
direct access to almost all system calls
- +
can access binary data
- +
many powerful idioms for common tasks
- +
8-bit clean, including nulls
- -
three variable types: scalar, array, and hash table
- -
syntax requires variable and function prefix characters
|
|---|
-
Bugs:
|
comp.lang.perl; Larry Wall <lwall@netlabs.com>
|
|---|
-
Ports:
|
almost all unix, MSDOS, Mac, Amiga, Atari, OS/2, VMS, NT, MVS
|
|---|
-
Portability:
|
very high for unix, not so high for others
|
|---|
-
Discussion:
|
-
|
comp.lang.perl
|
|---|
-
macintosh:
|
mpw-perl-request@iis.ee.ethz.ch
|
|---|
|
|---|
-
Updated:
|
Febuary 7th, 1993
|
|---|
-
Language:
|
Perl
|
|---|
-
Package:
|
perl profiler.
|
|---|
-
Version:
|
? 1
|
|---|
-
Parts:
|
profiler
|
|---|
-
Author:
|
Anthony Iano-Fletcher <arf@maths.nott.ac.uk>
|
|---|
-
Location:
|
Source posted on comp.lang.perl in mid-June 1993
|
|---|
-
Description:
|
Profiles Perl scripts (mkpprof).
Collates data from Perl scripts (pprof)
|
|---|
-
Updated:
|
June 17th, 1993
|
|---|
-
Language:
|
BNF (yacc), Perl
|
|---|
-
Package:
|
perl-byacc
|
|---|
-
Version:
|
1.8.2
|
|---|
-
Parts:
|
parser-generator(perl)
|
|---|
-
Author:
|
Rick Ohnemus <Rick_Ohnemus@Sterling.COM>
|
|---|
-
Location:
|
ftp://ftp.lug.udel.edu/pub/cpan/src/misc/perl-byacc.tar.gz
|
|---|
-
Description:
|
A modified version of byacc that generates perl code. Has '-p'
switch so multiple parsers can be used in one program (C or
perl).
|
|---|
-
Portability:
|
Should work on most (?) Unix systems. Also works with
SAS/C 6.x on AMIGAs.
|
|---|
-
Updated:
|
January 24th, 1993
|
|---|
-
Language:
|
Perl (Practical Extraction and Report Language)
|
|---|
-
Package:
|
perl5
|
|---|
-
Version:
|
5.005
|
|---|
-
Parts:
|
interpreter, debugger, libraries, tests, documentation
|
|---|
-
Author:
|
Larry Wall <lwall@netlabs.com>
|
|---|
-
Location:
|
|
|---|
-
Description:
|
Perl5 is a major rewrite and enhancement to perl4. It adds
real data structures (by way of "references"), un-adorned
subroutine calls, and method inheritance. It is repackaged
with many extensions that can be dynamically loaded in the
interpreter at runtime.
|
|---|
-
Features:
|
- very-high semantic density becuase of powerful operators
like regular expression substitution
- no arbitrary limits
- exceptions
- variables can be tied to arbitrary code (like dbm)
- direct access to almost all system calls
- can access binary data
- many powerful idioms for common tasks
- 8-bit clean, including nulls
- dynamic loading of extensions
- constructors, destructors, multiple inheritence, and
operator overloading
- support for writing secure systems
- many useful libraries and extensions
|
|---|
-
References:
|
http://language.perl.com/
http://www.perl.com/pace/pub
"Programming Perl" by Larry Wall and Randal L. Schwartz,
O'Reilly & Associates, Inc. Sebastopol, CA.
ISBN 0-93715-64-1
"Learning Perl" by Randal L. Schwartz,
O'Reilly & Associates, Inc. Sebastopol, CA.
ISBN 1-56592-042-2
|
|---|
-
Extensions:
|
- Tk - easy to use X11 interface
- tcl - dynamically load Tcl into perl
- Curses - sreen-based
- CGI - easy web programming
- perlmenu - http://www.cc.iastate.edu/perlmenu/
- DBI - interfaces to many relational databases
- Safe - secure execution of untrusted code
- Penguin - distributed secure execution of untrusted code
|
|---|
-
Bugs:
|
Send bugs to <perl-bugs@perl.com>
|
|---|
-
Ports:
|
Almost all unix systems, Amiga, Atari, LynxOS, Macintosh,
MPE, MS-DOS, MVS, Netware, OS/2, QNX, VMS, Windows 3.x,
Windows NT (http://info.hip.com/ntperl/PerlFaq.htm)
|
|---|
-
Portability:
|
Extreamly high.
|
|---|
-
Updated:
|
July 8th, 1999
|
|---|
-
Language:
|
Postscript, Common Lisp
|
|---|
-
Package:
|
PLisp
|
|---|
-
Version:
|
?
|
|---|
-
Parts:
|
translator(Postscript), programming environment(Postscript)
|
|---|
-
Author:
|
John Peterson <peterson-john@cs.yale.edu>
|
|---|
-
Location:
|
?
|
|---|
-
Description:
|
?
|
|---|
-
Updated:
|
?
|
|---|
-
Language:
|
Python
|
|---|
-
Package:
|
Python
|
|---|
-
Version:
|
1.3
|
|---|
-
Parts:
|
interpeter, libraries, documentation, emacs macros
|
|---|
-
Author:
|
Guido van Rossum <guido@cwi.nl>
OS/2 port by:
Simon K Johnston <S.K.Johnston.bra0801@oasis.icl.co.uk>
|
|---|
-
Location:
|
|
|---|
-
Description:
|
Python is a simple, yet powerful programming language
that bridges the gap between C and shell programming,
and is thus ideally suited for rapid prototyping. Its
syntax is put together from constructs borrowed from a
variety of other languages; most prominent are
influences from ABC, C, Modula-3 and Icon. Python is
object oriented and is suitable for fairly large programs.
|
|---|
-
Features:
|
- +
packages
- +
exceptions
- +
good C interface
- +
dynamic loading of C modules
- +
methods, inheritance
- -
arbitrary restrictions
- +
supports the native windowing system with most platforms
- -
does not support a common windowing api across platforms
A beta release of the X extension for Python release 1.3 is
now available by anonymous ftp://from
ftp://ftp.cwi.nl/pub/sjoerd/python-X.tar.gz
Preformatted documentation is available from
ftp://ftp.cwi.nl/pub/sjoerd/python-X-doc.ps.gz
|
|---|
-
Reference:
|
Python documentation http://www.python.org/
|
|---|
-
Extensions:
|
tkinter (Tcl's Tk), termios, curses, syslog, sybase
|
|---|
-
Ports:
|
unix, Macintosh, OS/2, Windows 3.1 (with Win32s), Windows NT
|
|---|
-
Discussion:
|
python-list-request@cwi.nl
|
|---|
-
Updated:
|
March 20th, 1996
|
|---|
-
Language:
|
Common Lisp
|
|---|
-
Package:
|
QT-OBJECTS
|
|---|
-
Version:
|
?
|
|---|
-
Parts:
|
library
|
|---|
-
Author:
|
Michael Travers <mt@media.mit.edu> and others
|
|---|
-
Location:
|
?
|
|---|
-
Description:
|
interface between MCL and QuickTime
|
|---|
-
Requires:
|
Macintosh Common Lisp
|
|---|
-
Discussion:
|
comp.lang.lisp.mcl
|
|---|
-
Updated:
|
April 18th, 1994
|
|---|
-
Language:
|
Python
|
|---|
-
Package:
|
vpApp
|
|---|
-
Version:
|
0.2
|
|---|
-
Parts:
|
Class Library, User Reference
|
|---|
-
Author:
|
Per Spilling <per@cwi.nl>
Real Name <email@address>
|
|---|
-
Location:
|
ftp.cwi.nl in /pub/python/vpApp.tar.gz.
|
|---|
-
Description:
|
vpApp = visual-programming application. It supports the
building of applications in Python.
|
|---|
-
Requires:
|
Python interpreter with built-in X support.
|
|---|
-
Updated:
|
May 6th, 1994
|
|---|
-
Language:
|
Common Lisp
|
|---|
-
Package:
|
WCL
|
|---|
-
Version:
|
2.14
|
|---|
-
Parts:
|
?, shared library runtime, source debugger
|
|---|
-
Author:
|
Wade Hennessey <wade@leland.Stanford.EDU>
|
|---|
-
Location:
|
ftp://sunrise.stanford.edu/pub/wcl/*
ftp://gummo.stanford.edu/miscellany/wcl
|
|---|
-
Description:
|
A common lisp implementation as a shared library. WCL
Is not a 100% complete Common Lisp, but it does have
the full development environment including dynamic file
loading and debugging. A modified version of GDB provides
mixed-language debugging. A paper describing WCL was
published in the proceedings of the 1992 Lisp and Functional
Programming Conference.
|
|---|
-
Requires:
|
GNU C 2.1 (not 2.2.2)
|
|---|
-
Ports:
|
Sparc/SunOS
|
|---|
-
Discussion:
|
<wcl-request@sunrise.stanford.edu>
|
|---|
-
Contact:
|
<wcl@sunrise.stanford.edu>
|
|---|
-
Updated:
|
October 28th, 1992
|
|---|
|
|