From: William H. N. <wil...@ai...> - 2000-09-08 14:12:47
|
On Thu, Sep 07, 2000 at 06:13:02PM +0200, Raymond Wiker wrote: Content-Description: message body text > Here's my port of run-program & friends to SBCL. As you can see > below, it works for at least _one_ trivial example :-) By the way, this sat in the mail queue for a while waiting for me to authorize it, since it's larger than 40K and I didn't have the list admin password handy. I hope you didn't get too impatient, Raymond. > Note: There are some gratuitous differences between the > version of run-program.lisp in the 0.6.7 distribution and the one I've > been working with. This is partly because I started with a copy from a > CMUCL distribution, while the one in the 0.6.7 distribution already > had a different set of changes. I'll take a closer look at combining > the two sometime later. You don't necessarily need to accommodate the changes I made in the nonworking placeholder version of run-program.lisp in 0.6.7. If you don't think they're constructive, since you're the one who made it work, your opinion has considerable weight. (I did my version of run-program.lisp within a few days after POSIXifying signals and removing (almost all) compiler warnings in src/runtime/, so I was inclined to cast a particularly jaundiced eye on anything which looked like a CMU CL idiosyncrasy.:-) > I also include internet.lisp, which compiles and loads fine with > the patched 0.6.7. Further changes to internet.lisp and > package-data-list.lisp-expr are required to fully integrate it with > SBCL. My main interest in internet.lisp is that it provides > functionality required for CLX (actually, it's possible to use Daniel > Barlow's socket library instead). Should internet.lisp be added back > to SBCL? My impression is that internet.lisp is sufficiently far from core functionality that it should not be part of the base system. However, it, like CLX, is useful to many people. I like the idea of having a collection of contrib/ code for things like this. I don't want to be the maintainer for the contrib/ code, but as long as there's an active maintainer, I'd be happy to distribute it. Inherently unportable code of reasonable size which is likely to interest many users (like internet.lisp, or Daniel Barlow's socket library) could go in a contrib/ subdirectory of the main distribution. Portable code belongs somewhere else (e.g. CLOCC). Unportable code which is of less general interest (e.g. a port of the CMU CL Oracle-specific database interface code from Cadabra.com) could be distributed somewhere on the SBCL website. Particularly large packages (possibly CLX or CLIM, I don't know) could also go on the SBCL website. I'm also particularly reluctant to maintain code which has information hand copied from system #include files. run-program.lisp has a little bit of that, but the ratio of important new functionality to new hand-copying is high enough that I'll cheerfully tolerate it. For things like internet.lisp, well, I'd prefer someone else maintain it.:-| (Incidentally, the total amount of hand-copying from #include files in the system has now decreased a little bit in 0.6.7, since my rewrite of the signal-handling code eliminated the need to hand-copy sigcontext-like structure layout information into Lisp code. This makes me happy.:-) > # raw@hovik (SBCL-0.6.7) $ src/runtime/sbcl --core output/sbcl.core > # This is SBCL 0.6.7, an implementation of ANSI Common Lisp. > # [ snip ] > # More information on SBCL is available at <http://sbcl.sourceforge.net/>. > # * (sb-ext:run-program "/bin/uname" '("-a") :output t) > # Linux hovik.gren.fast.no 2.2.14-5.0smp #1 SMP Tue Mar 7 21:01:40 EST 2000 i686 u > # nknown > # > # #<process 3538 :EXITED> > # * Cool. -- William Harold Newman <wil...@ai...> software consultant PGP key fingerprint 85 CE 1C BA 79 8D 51 8C B9 25 FB EE E0 C3 E5 7C |