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:
CLX
Version:
5.01
Parts:
library
Author:
?
Location:
ftp://export.lcs.mit.edu/contrib/CLX.R5.01.tar.Z
Description:
Common Lisp binding for X
Bugs:
bug-clx@expo.lcs.mit.edu
Ports:
?, CMU Common Lisp
Contact:
?
Updated:
August 26th, 1992

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:
http://www.informatik.uni-bremen.de/~net/elk ftp://ftp.x.org/contrib/devel_tools/elk-3.0.tar.gz
europe:
ftp://ftp.uni-bremen.de/pub/programming/languages/scheme/elk/elk-3.0.tar.gz
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:
ftp://ftp.gmd.de/gmd/gina
n.america:
ftp://export.lcs.mit.edu/contrib/?
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:
ftp://jpl-devvax.jpl.nasa.gov/pub/perl.4.0/*
os/2:
ftp://hobbes.nmsu.edu/pub/os2/all/unix/prog*/perl4019.zip
macintosh:
ftp://nic.switch.ch/software/mac/src/mpw_c/Mac_Perl_405_*
amiga:
ftp://wuarchive.wustl.edu/perl4.035.V010.*
vms:
ftp://ftp.pitt.edu/software/vms/perl/*
atari:
ftp://atari.archive.umich.edu/amiga/Languages/perl*
msdos:
ftp://ftp.ee.umanitoba.ca/pub/msdos/perl/* ftp://oak.oakland.edu/pub/msdos/perl/bperl*
windows nt:
ftp://ntperl.hip.com/ntperl/ntperl5.001.src.zip ftp://ntperl.hip.com/ntperl/ntperl5.001.i86.zip
mvs:
ftp://oozelum.csi.cam.ac.uk/dist/perl-4036.tar.Z
netware:
contact Jack Thomasson <Jack_Thomasson@Novell.COM>
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.sterling.com/local/perl-byacc.tar.Z
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:
many!
africa:
ftp://ftp.is.co.za:/programming/perl/CPAN/
australia:
ftp://coombs.anu.edu.au:/pub/perl/CPAN/ ftp://ftp.mame.mu.oz.au:/pub/perl/CPAN/ ftp://ftp.tekotago.ac.nz:/pub/perl/CPAN/
austria:
ftp://ftp.tuwien.ac.at:/pub/languages/perl/CPAN/
canada:
ftp://mango.pinc.com:/pub/mirrors/CPAN/
czech rep.:
ftp://sunsite.mff.cuni.cz:/MIRRORS/ftp.funet.fi/pub/languages/perl/CPAN/
denmark:
ftp://sunsite.auc.dk:/pub/languages/perl/CPAN/
finland:
ftp://ftp.funet.fi:/pub/languages/perl/CPAN/
france:
ftp://ftp.ibp.fr:/pub/perl/CPAN/ ftp://ftp.pasteur.fr:/pub/computing/unix/perl/CPAN/
germany:
ftp://ftp.leo.org:/pub/comp/programming/languages/perl/CPAN/ ftp://ftp.rz.ruhr-uni-bochum.de:/pub/CPAN/
greece:
ftp://ftp.ntua.gr:/pub/lang/perl/
hungary:
ftp://ftp.kfki.hu:/pub/packages/perl/
japan:
ftp://ftp.lab.kdd.co.jp:/lang/perl/CPAN/
netherlands:
ftp://http://www.cs.ruu.nl/pub/PERL/CPAN/
new zealand:
ftp://ftp.tekotago.ac.nz:/pub/perl/CPAN/
poland:
ftp://ftp.pk.edu.pl:/pub/lang/perl/CPAN/
portugal:
ftp://ftp.ci.uminho.pt:/pub/lang/perl/
slovenia:
ftp://ftp.arnes.si:/software/perl/CPAN/
spain:
ftp://ftp.rediris.es:/mirror/CPAN/
sweden:
ftp://ftp.sunet.se:/pub/lang/perl/CPAN/
switzerland:
ftp://ftp.switch.ch:/mirror/CPAN/
taiwan:
ftp://dongpo.math.ncu.edu.tw:/perl/CPAN/
uk:
ftp://ftp.demon.co.uk:/pub/mirrors/perl/CPAN/ ftp://unix.hensa.ac.uk:/mirrors/perl-CPAN/
usa:
ftp://ftp.cdrom.com:/pub/perl/CPAN/ ftp://ftp.cis.ufl.edu:/pub/perl/CPAN/ ftp://uiarchive.cso.uiuc.edu:/pub/lang/perl/CPAN/ ftp://ftp.delphi.com:/pub/mirrors/packages/perl/CPAN/ ftp://ftp.uoknor.edu:/mirrors/CPAN/ ftp://ftp.sedl.org:/pub/mirrors/CPAN/ ftp://ftp.metronet.com:/pub/perl/ ftp://ftp.sterling.com:/CPAN/
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:
ftp://ftp.cwi.nl/pub/python*
n.america:
ftp://gatekeeper.dec.com/pub/plan/python
n.america:
ftp://ftp.uu.net/languages/python
europe:
ftp://ftp.fu-berlin.de/pub/unix/languages/python
europe:
ftp://ftp.interet.com/pub/python
finland:
ftp://ftp.funet.fi/pub/languages/python
uk:
ftp://unix.hensa.ac.uk/uunet/languages/python
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

This site is supported by David Sharnoff and Bryan Miller with some help from Google Adwords.

Please send updates to free-compilers@sharnoff.org

The HTML is maintained by David Muir Sharnoff and the entries themselves are currently maintained by Bryan Miller.

Copyright (c) 1992-1998 David Muir Sharnoff, All Rights Reserved
Copyright (c) 1994-1996, Steven Allen Robenalt, All Rights Reserved