Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Nov 1996 19:12:43 -0800
From:      rpw3@rigden.engr.sgi.com (Rob Warnock)
To:        Bakul Shah <bakul@plexuscom.com>
Cc:        freebsd-ports@freebsd.org, Martin Cracauer <cracauer@cons.org>
Subject:   Re: Interest in large collection of Lisp/Scheme implementations?
Message-ID:  <199611200312.TAA15416@rigden.engr.sgi.com>

next in thread | raw e-mail | index | archive | help
+---------------
| > I'm talking about more than just compiling these packages.
| 
| I hope the `ported' environment is not too different from what
| one gets from `just compiling' these packages.
+---------------

I agree. Given the rapid rate of development of some of the more
interesting Schemes/Lisps, it's quite important that FreeBSD/NetBSD/Linux
folks *NOT* put lots of platform-dependent code in them, rather, that
when some clear change is needed to make some package work well of a
given platform that the changes are fed back to the owner of the package.

I have wasted *far* too much time maintaining my private "fixes" for
Irix for some of those -- *mostly* config and/or makefile woes --
only to have the problem vanish forever soon after simply telling
the maintainer about it!!! [...a lesson I won't forget soon.]

+---------------
| > I think we could make FreeBSD a nice platform for fans of dynamic
| > languages.
| 
| It already is!
+---------------

Yup.

+---------------
| [Since you asked for feedback] IMHO, what is would be more useful is
| a collection of separate packages useful for doing mundane things
| (without having to use a full Lisp/Scheme environment ala
| emacs/elisp and where one doesn't need to allocate 8Mbytes or more
| of VM just to print hello world or scan through mail messages or edit
| a file or count words in a file).  Packages for things like [deleted]...
+---------------

Exactly! That's where nearly all *my* work with Scheme/Lisp seems to be
going these days. What we need is:

1. A *simple* foreign-function interface (mainly for making calls to libc)
   that can be used across *several* different versions of Scheme & Lisp.
   Sure, there are "FFI" packages out there, but for the most part they're
   monstrous do-everything "object systems", that want to take collections
   of header files and "compile" interfaces for you.

   What is really needed is much *less* than that.

2. A portable (probably drastic subset) of "scsh", the Scheme Shell, not
   dependent on either Scheme48 or heavy use of macros. [I know some guys
   looking at this, and I've been dabbling with it myself.]

3. One or more *small*, *FAST-STARTING* implementations of Scheme (and/or
   Common Lisp subset), even if their run-time performance is fairly bad.
   For most of the hacking I do in Scheme, start-up time totally dominates
   the run time [the sole exception being programs that do "filtering" of
   big files]. This is *especially* important for some of the items Bakul
   mentioned:

	shell programming
	mail processing
	HTML processing

   The startup time for the various Schemes/Lisps I've used varies *wildly*.
   Consider the total time for a simple "hello world" as a "#!" shell script
   [seconds of "real time" reported by /bin/time, 100 MHz R4000, Irix 5.3]:

	Scsh+Scheme48	1.05
	MzScheme	0.49
	SCM		0.31
	libscheme	0.12
	SIOD		0.05
	/bin/sh+echo	0.03
	/bin/echo	0.03	[bug! also echos script name]

   Clearly, SIOD is a winner, except... it speaks the old "SICP" syntax,
   not R4RS. Libscheme is close, and still quite usable for "one-liners".
   For that matter, I've found SCM and MzScheme quite usable, but they
   certainly approach the upper limit.

+---------------
|     support for dynamic loading/unloading of libraries
+---------------

Well, all of the Scheme/Lisp versions I use already have this, at least
in the style of "dlopen() & call an init routine to install functions".


-Rob

-----
Rob Warnock, 7L-551		rpw3@sgi.com
Silicon Graphics, Inc.		http://reality.sgi.com/rpw3/
2011 N. Shoreline Blvd.		Phone: 415-933-1673  FAX: 415-933-0979
Mountain View, CA  94043	PP-ASEL-IA



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199611200312.TAA15416>