From owner-freebsd-ports Tue Nov 19 19:17:36 1996 Return-Path: owner-ports Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id TAA28871 for ports-outgoing; Tue, 19 Nov 1996 19:17:36 -0800 (PST) Received: from sgi.sgi.com (SGI.COM [192.48.153.1]) by freefall.freebsd.org (8.7.5/8.7.3) with SMTP id TAA28864 for ; Tue, 19 Nov 1996 19:17:24 -0800 (PST) Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by sgi.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id TAA05310; Tue, 19 Nov 1996 19:12:45 -0800 Received: from rigden.engr.sgi.com (rigden.engr.sgi.com [192.48.150.42]) by cthulhu.engr.sgi.com (950413.SGI.8.6.12/960327.SGI.AUTOCF) via ESMTP id TAA14156; Tue, 19 Nov 1996 19:12:44 -0800 Received: (from rpw3@localhost) by rigden.engr.sgi.com (940816.SGI.8.6.9/960327.SGI.AUTOCF) id TAA15416; Tue, 19 Nov 1996 19:12:43 -0800 Date: Tue, 19 Nov 1996 19:12:43 -0800 From: rpw3@rigden.engr.sgi.com (Rob Warnock) Message-Id: <199611200312.TAA15416@rigden.engr.sgi.com> To: Bakul Shah Subject: Re: Interest in large collection of Lisp/Scheme implementations? Cc: freebsd-ports@freebsd.org, Martin Cracauer Sender: owner-ports@freebsd.org X-Loop: FreeBSD.org Precedence: bulk +--------------- | > 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