From fc@all.net Wed Dec 2 13:28:56 1998 Received: from all.net (c118194-a.lvrmr1.sfba.home.com [24.1.84.100]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id NAA04505 for ; Wed, 2 Dec 1998 13:28:56 -0800 (PST) Received: (from fc@localhost) by all.net (8.7.5/8.7.3) id NAA20799 for clisp-list@seagull.cons.org; Wed, 2 Dec 1998 13:39:06 -0800 Message-Id: <199812022139.NAA20799@all.net> Subject: Getting xlib to work in Clisp To: clisp-list@seagull.cons.org Date: Wed, 2 Dec 1998 13:39:06 -0800 (PST) From: Fred Cohen Reply-To: fc@all.net Organization: I'm not allowed to say X-Mailer: don't even ask X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit I am trying to get garnet working on a Slackware Linux box - which means that I have to get clue, clio, pcl, clx, and gcl working (or some such combination. I have run into a problem in that xlib::hello-world produces an error - it can't find xlib. Now I am running X11, Tk works from within with-wish - so somehow X11 is interacting with lisp (allbeit through a surrogate). I looked in the documentation but could not find information on how to get xlib:: available. I have and built the full clisp distribution from cons - have other programs working, and so forth. Does anyone know how to proceed from here? Alternatively, is there anohter interface that will allow me to graphically desribe networks and do drag and drop and things like that? FC -- Fred Cohen & Associates: http://all.net - fc@all.net - tel/fax:925-454-0171 Have a great day!!! Per the official policy of Sandia National Laboratories, the reader should be aware that: - Fred Cohen of Fred Cohen & Associates is the same Fred Cohen who is a Principal Member of Technical Staff at Sandia National Laboratories. - Fred Cohen & Associates - is owned and operated by Fred Cohen and is separate and independent from the work done by Fred Cohen at Sandia National Laboratories. From unk6@rz.uni-karlsruhe.de Wed Dec 2 23:45:12 1998 Received: from nz15.rz.uni-karlsruhe.de (nz15.rz.uni-karlsruhe.de [129.13.64.15]) by seagull.cdrom.com (8.8.8/8.6.6) with SMTP id XAA10442 for ; Wed, 2 Dec 1998 23:45:10 -0800 (PST) Received: from rz114s0.uni-karlsruhe.de (gilbert@isdn217-172.rz.uni-karlsruhe.de [129.13.217.172]) by nz15.rz.uni-karlsruhe.de with smtp id 0zlTUG-0003Ec-00; Thu, 3 Dec 1998 08:47:44 +0100 To: clisp-list@seagull.cons.org Subject: Re: Getting xlib to work in Clisp References: <199812022139.NAA20799@all.net> From: Gilbert Baumann Date: 03 Dec 1998 08:42:46 +0100 In-Reply-To: Fred Cohen's message of Wed, 2 Dec 1998 13:29:10 -0800 (PST) Lines: 53 X-Mailer: Gnus v5.2.25/XEmacs 19.14 Message-Id: Moin, Moin, Fred Cohen writes: > > I am trying to get garnet working on a Slackware Linux box - which means > that I have to get clue, clio, pcl, clx, and gcl working (or some such > combination. Garnet needs: CLX, Common Lisp CLIO needs: CLUE CLUE needs: CLX, CLOS and Common Lisp PCL is a CLOS implementation; CLISP has a native CLOS implementation. > I have run into a problem in that xlib::hello-world > produces an error - it can't find xlib. Now I am running X11, Tk works > from within with-wish - so somehow X11 is interacting with lisp (allbeit > through a surrogate). I looked in the documentation but could not find > information on how to get xlib:: available. I have and built the full > clisp distribution from cons - have other programs working, and so > forth. Does anyone know how to proceed from here? There are two alternative CLX implementations for CLISP. .../clisp/modules/clx/mit-clx The original thing implemented in LISP. To build this one is easy -- a simple `make' in the directory should do the trick. .../clisp/modules/clx/new-clx This is an implementation of CLX, I hacked some time ago in C for speed. Building this one is a bit more tricky. Say: $ cd .../clisp/src/ # or where you built CLISP $ ln -s ../modules/clx/new-clx . $ clisp-link add-module-set new-clx base base+new-clx There are two little demo programs provided with new-clx. Look at the docu. > Alternatively, is there anohter interface that will allow me to > graphically desribe networks and do drag and drop and things like that? This sounds like Garnet is the right tool. I found CLIO barely working or useful. I personally settled on CLM, a Lisp interface to Motif, for Lisp GUI stuff, but that is just me. Hope this helps, Gilbert. -- ;;; You know you have hacked Lisp too much, when you m-c-x in a C buffer. From fc@all.net Sat Dec 5 14:12:43 1998 Received: from all.net (c118194-a.lvrmr1.sfba.home.com [24.1.84.100]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id OAA12745 for ; Sat, 5 Dec 1998 14:12:42 -0800 (PST) Received: (from fc@localhost) by all.net (8.7.5/8.7.3) id OAA01891 for clisp-list@seagull.cons.org; Sat, 5 Dec 1998 14:23:32 -0800 Message-Id: <199812052223.OAA01891@all.net> Subject: Re: Getting xlib to work in Clisp To: clisp-list@seagull.cons.org Date: Sat, 5 Dec 1998 14:23:31 -0800 (PST) In-Reply-To: from "Gilbert Baumann" at Dec 2, 98 11:45:32 pm From: Fred Cohen Reply-To: fc@all.net Organization: I'm not allowed to say X-Mailer: don't even ask X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit In reference to the following view expressed by Gilbert Baumann: > > > Moin, Moin, > > Fred Cohen writes: > > > > I am trying to get garnet working on a Slackware Linux box - which means > > that I have to get clue, clio, pcl, clx, and gcl working (or some such > > combination. > > Garnet needs: CLX, Common Lisp > CLIO needs: CLUE > CLUE needs: CLX, CLOS and Common Lisp > PCL is a CLOS implementation; CLISP has a native CLOS implementation. > > > I have run into a problem in that xlib::hello-world > > produces an error - it can't find xlib. Now I am running X11, Tk works > > from within with-wish - so somehow X11 is interacting with lisp (allbeit > > through a surrogate). I looked in the documentation but could not find > > information on how to get xlib:: available. I have and built the full > > clisp distribution from cons - have other programs working, and so > > forth. Does anyone know how to proceed from here? > > There are two alternative CLX implementations for CLISP. > > .../clisp/modules/clx/mit-clx I did get this to work. > The original thing implemented in LISP. To build this one is easy -- > a simple `make' in the directory should do the trick. > > .../clisp/modules/clx/new-clx I couldn't get this to compile correctly. > This is an implementation of CLX, I hacked some time ago in C for > speed. Building this one is a bit more tricky. Say: > > $ cd .../clisp/src/ # or where you built CLISP > $ ln -s ../modules/clx/new-clx . > $ clisp-link add-module-set new-clx base base+new-clx ln -s ../modules/clx/new-clx . fast:/u/fc/clisp/clisp-1998-09-09/src/clx/new-clx>clisp-link add-module-set new-clx base base+new-clx bash: clisp-link: command not found fast:/u/fc/clisp/clisp-1998-09-09/src/clx/new-clx>make cc -O -I../../ -c clx.c In file included from clx.e:384: lispbibl.d:7488: warning: register used for two global register variables clx.e: In function `xlib_error_handler': clx.e:9869: parse error before `SURES' clx.e:9870: parse error before `ap' clx.e: In function `C_xpm_read_file_to_pixmap': clx.e:10283: `XpmColorError' undeclared (first use this function) clx.e:10283: (Each undeclared identifier is reported only once clx.e:10283: for each function it appears in.) clx.e:10286: `XpmSuccess' undeclared (first use this function) clx.e:10289: `XpmOpenFailed' undeclared (first use this function) clx.e:10292: `XpmFileInvalid' undeclared (first use this function) clx.e:10295: `XpmNoMemory' undeclared (first use this function) clx.e:10298: `XpmColorFailed' undeclared (first use this function) clx.e:10301: warning: unreachable code at beginning of switch statement make: *** [clx.o] Error 1 > > There are two little demo programs provided with new-clx. Look at > the docu. > > > Alternatively, is there anohter interface that will allow me to > > graphically desribe networks and do drag and drop and things like that? > > This sounds like Garnet is the right tool. I found CLIO barely > working or useful. I personally settled on CLM, a Lisp interface to > Motif, for Lisp GUI stuff, but that is just me. I couldn't find CLM anywhere. Do you know where to look for it? FC From sds@eaglets.com Tue Dec 8 14:27:54 1998 Received: from relay7.UU.NET (relay7.UU.NET [192.48.96.17]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id OAA16501 for ; Tue, 8 Dec 1998 14:27:52 -0800 (PST) Received: from mail.eaglets.com by relay7.UU.NET with ESMTP (peer crosschecked as: [208.235.77.228]) id QQfsxu10045; Tue, 8 Dec 1998 17:31:30 -0500 (EST) Received: by mail.eaglets.com from localhost (router,SLMail V3.1); Tue, 08 Dec 1998 15:55:36 -0500 Received: by mail.eaglets.com from eho.eaglets.com [208.235.77.238] (SLmail 3.1.2948 (Release Build)); Tue, 08 Dec 1998 15:55:36 -0500 Received: (from sds@localhost) by eho.eaglets.com (8.9.1a/8.9.1) id PAA13422; Tue, 8 Dec 1998 15:55:20 -0500 To: Bruno Haible Subject: clisp win32 binaries Return-Receipt-To: sds@goems.com Reply-To: sds@goems.com X-Disclaimer: You should not expect anyone to agree with me. X-Attribution: Sam X-No-Archive: Yes Mail-Copies-To: never From: Sam Steingold Date: 08 Dec 1998 15:55:20 -0500 Message-ID: Lines: 9 the latest clisp w32 binaries I can find on clisp.cons.org are more than a year old. are there newer binaries available somewhere? thanks -- Sam Steingold (http://www.goems.com/~sds) running RedHat5.2 GNU/Linux Micros**t is not the answer. Micros**t is a question, and the answer is Linux, (http://www.linux.org) the choice of the GNU (http://www.gnu.org) generation. I don't want to be young again, I just don't want to get any older. From haible@ilog.fr Fri Dec 11 11:35:08 1998 Received: from sceaux.ilog.fr (sceaux.ilog.fr [193.55.64.10]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id LAA21222 for ; Fri, 11 Dec 1998 11:35:07 -0800 (PST) Received: from ilog.ilog.fr ([172.17.4.22]) by sceaux.ilog.fr (8.9.1/8.9.1) with ESMTP id UAA24008 for ; Fri, 11 Dec 1998 20:39:10 +0100 (MET) Received: from jaures.ilog.fr (jaures.ilog.fr [172.16.1.81]) by ilog.ilog.fr (8.8.8/8.7.3) with ESMTP id UAA16357; Fri, 11 Dec 1998 20:39:09 +0100 (MET) From: Bruno Haible Received: (from haible@localhost) by jaures.ilog.fr (8.9.0/8.9.0) id UAA10480; Fri, 11 Dec 1998 20:39:09 +0100 (MET) Date: Fri, 11 Dec 1998 20:39:09 +0100 (MET) Message-Id: <199812111939.UAA10480@jaures.ilog.fr> To: clisp-list@seagull.cons.org Subject: Re: clisp win32 binaries In-Reply-To: References: Sam Steingold asks: > the latest clisp w32 binaries I can find on clisp.cons.org are more than > a year old. are there newer binaries available somewhere? There are now newer ones on clisp.cons.org. clisp-1998-09-09 builds out of the box with MSVC4. Some makefile changes are needed in order to build it with MSVC6, however. Bruno From blake@edge.net Fri Dec 11 12:21:14 1998 Received: from mail.edge.net (mail.edge.net [199.0.68.4]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id MAA21931 for ; Fri, 11 Dec 1998 12:21:11 -0800 (PST) Received: from blake ([24.2.110.145]) by mail.edge.net (Post.Office MTA v3.1.2 release (PO203-101c) ID# 0-57486U5400L300S0V35) with SMTP id AAA24474 for ; Fri, 11 Dec 1998 14:19:51 -0600 X-Sender: blake@mail.edge.net X-Mailer: QUALCOMM Windows Eudora Pro Version 4.0 Date: Fri, 11 Dec 1998 14:26:05 -0600 To: clisp-list@seagull.cons.org From: Blake McBride Subject: Re: clisp win32 binaries In-Reply-To: <199812111939.UAA10480@jaures.ilog.fr> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: <19981211201950.AAA24474@blake> At 11:37 AM 12/11/98 -0800, you wrote: >Sam Steingold asks: >> the latest clisp w32 binaries I can find on clisp.cons.org are more than >> a year old. are there newer binaries available somewhere? > >There are now newer ones on clisp.cons.org. clisp-1998-09-09 builds out >of the box with MSVC4. Some makefile changes are needed in order to build it >with MSVC6, however. Could you give us these? Thanks. --blake -- Download source code to my Dynace Object Oriented Extension to C and Windows Development System from: http://www.edge.net/algorithms Blake McBride (blake@edge.net) Algorithms Corporation - 615-791-1636 - USA From haible@ilog.fr Fri Dec 11 12:43:20 1998 Received: from sceaux.ilog.fr (sceaux.ilog.fr [193.55.64.10]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id MAA22412 for ; Fri, 11 Dec 1998 12:43:18 -0800 (PST) Received: from ilog.ilog.fr ([172.17.4.22]) by sceaux.ilog.fr (8.9.1/8.9.1) with ESMTP id VAA26207 for ; Fri, 11 Dec 1998 21:47:21 +0100 (MET) Received: from jaures.ilog.fr (jaures.ilog.fr [172.16.1.81]) by ilog.ilog.fr (8.8.8/8.7.3) with ESMTP id VAA18431; Fri, 11 Dec 1998 21:47:20 +0100 (MET) From: Bruno Haible Received: (from haible@localhost) by jaures.ilog.fr (8.9.0/8.9.0) id VAA10860; Fri, 11 Dec 1998 21:47:21 +0100 (MET) Date: Fri, 11 Dec 1998 21:47:21 +0100 (MET) Message-Id: <199812112047.VAA10860@jaures.ilog.fr> To: clisp-list@clisp.cons.org Subject: CLISP binaries for FreeBSD 3.0 This is just to inform you that Grigoriy Strokin has made a binary distribution of CLISP for FreeBSD 3.0 in ELF format. It's on clisp.cons.org. From fc@all.net Tue Dec 15 07:16:27 1998 Received: from all.net (c118194-a.lvrmr1.sfba.home.com [24.1.84.100]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id HAA08330 for ; Tue, 15 Dec 1998 07:16:26 -0800 (PST) Received: (from fc@localhost) by all.net (8.7.5/8.7.3) id HAA32758 for clisp-list@seagull.cons.org; Tue, 15 Dec 1998 07:29:36 -0800 Message-Id: <199812151529.HAA32758@all.net> Subject: Re: clisp win32 binaries To: clisp-list@seagull.cons.org Date: Tue, 15 Dec 1998 07:29:35 -0800 (PST) In-Reply-To: <199812111939.UAA10480@jaures.ilog.fr> from "Bruno Haible" at Dec 11, 98 11:37:55 am From: Fred Cohen Reply-To: fc@all.net Organization: I'm not allowed to say X-Mailer: don't even ask X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit I am trying to get this lisp to run under Windows and it fails and kills the DOS window too quickly to read an error message. Under DOS with no windows, it tells me that it requires windows in order to run (who knows why this is?) while under Windows running a Dos prompt, it tellme me there is not enough memory. Unfortunately, there is no way to tell this Windows version how much memory to provide for a program. Does anybody know what I am doing wrong (besides the obvious foolishness of trying to run something as useful as Lisp under something as useless as Windows). FC In reference to the following view expressed by Bruno Haible: > > Sam Steingold asks: > > the latest clisp w32 binaries I can find on clisp.cons.org are more than > > a year old. are there newer binaries available somewhere? > > There are now newer ones on clisp.cons.org. clisp-1998-09-09 builds out > of the box with MSVC4. Some makefile changes are needed in order to build it > with MSVC6, however. > > Bruno -- Fred Cohen & Associates: http://all.net - fc@all.net - tel/fax:925-454-0171 Have a great day!!! Per the official policy of Sandia National Laboratories, the reader should be aware that: - Fred Cohen of Fred Cohen & Associates is the same Fred Cohen who is a Principal Member of Technical Staff at Sandia National Laboratories. - Fred Cohen & Associates - is owned and operated by Fred Cohen and is separate and independent from the work done by Fred Cohen at Sandia National Laboratories. From sds@eaglets.com Tue Dec 15 07:37:31 1998 Received: from mail.eaglets.com ([208.235.77.228]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id HAA08728 for ; Tue, 15 Dec 1998 07:37:29 -0800 (PST) Received: by mail.eaglets.com from localhost (router,SLMail V3.1); Tue, 15 Dec 1998 10:40:45 -0500 Received: by mail.eaglets.com from eho.eaglets.com [208.235.77.238] (SLmail 3.1.2948 (Release Build)); Tue, 15 Dec 1998 10:40:45 -0500 Received: (from sds@localhost) by eho.eaglets.com (8.9.1a/8.9.1) id KAA28004; Tue, 15 Dec 1998 10:41:29 -0500 To: clisp-list@seagull.cons.org Subject: Re: clisp win32 binaries References: <199812151529.HAA32758@all.net> Return-Receipt-To: sds@goems.com Reply-To: sds@goems.com X-Disclaimer: You should not expect anyone to agree with me. X-Attribution: Sam X-No-Archive: Yes Mail-Copies-To: never From: Sam Steingold In-Reply-To: Fred Cohen's message of "Tue, 15 Dec 1998 07:18:13 -0800 (PST)" Date: 15 Dec 1998 10:41:29 -0500 Message-ID: Lines: 37 X-Mailer: Gnus v5.5/Emacs 20.3 >>>> In message <199812151529.HAA32758@all.net> >>>> On the subject of "Re: clisp win32 binaries" >>>> Sent on Tue, 15 Dec 1998 07:18:13 -0800 (PST) >>>> Honorable Fred Cohen writes: >> I am trying to get this lisp to run under Windows and it fails and kills version? 3.1? 95? 98? nt3? nt4? >> the DOS window too quickly to read an error message. Under DOS with no >> windows, it tells me that it requires windows in order to run (who knows >> why this is?) while under Windows running a Dos prompt, it tellme me because this is a 32 bit app. There is a separate 16 bit DOS binary (I think). >> there is not enough memory. Unfortunately, there is no way to tell this how much RAM do you have? >> Windows version how much memory to provide for a program. How do you run it? I create a shortcut, and tell it to have the following command line: c:\bin\clisp\lisp.exe -M c:/bin/clisp/lispinit.mem -p CL-USER -I -q -m 10Mb or (if you have -a option) c:\bin\clisp\lisp.exe -M c:/bin/clisp/lispinit.mem -a -I -q -m 10Mb [note that Bruno officially doesn't recommend -a]. -- Sam Steingold (http://www.goems.com/~sds) running RedHat5.2 GNU/Linux Micros**t is not the answer. Micros**t is a question, and the answer is Linux, (http://www.linux.org) the choice of the GNU (http://www.gnu.org) generation. Diplomacy is the art of saying "nice doggy" until you can find a rock. From harpo@UDel.Edu Tue Dec 15 07:58:00 1998 Received: from copland.udel.edu (copland.udel.edu [128.175.13.92]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id HAA09201 for ; Tue, 15 Dec 1998 07:57:59 -0800 (PST) Received: from rivendell (root@rivendell.asel.udel.edu [128.175.51.118]) by copland.udel.edu (8.8.8/8.8.8) with ESMTP id LAA14238; Tue, 15 Dec 1998 11:02:32 -0500 (EST) Received: from localhost (really [127.0.0.1]) by rivendell via in.smtpd with smtp (ident harpo using rfc1413) id (Debian Smail3.2.0.101) for ; Tue, 15 Dec 1998 10:47:53 -0500 (EST) Date: Tue, 15 Dec 1998 10:47:52 -0500 (EST) From: Will Lowe X-Sender: harpo@rivendell To: clisp-list@seagull.cons.org cc: Multiple recipients of list Subject: Re: clisp win32 binaries In-Reply-To: <199812151529.HAA32758@all.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII > there is not enough memory. Unfortunately, there is no way to tell this > Windows version how much memory to provide for a program. Does anybody > know what I am doing wrong (besides the obvious foolishness of trying to > run something as useful as Lisp under something as useless as Windows). Which version of Windows? under 3.1 you can create a pif file with the pif editor, and Windows 95 will let you specify application needs if you right-click on the icon, methinks. Will -------------------------------------------------------------------------- | harpo@udel.edu lowe@cis.udel.edu lowe@debian.org | | http://www.cis.udel.edu/~lowe/ | | PGP Public Key: http://www.cis.udel.edu/~lowe/index.html#pgpkey | -------------------------------------------------------------------------- | You think you're so smart, but I've seen you naked | | and I'll prob'ly see you naked again ... | | --The Barenaked Ladies, "Blame It On Me" | -------------------------------------------------------------------------- From sds@eaglets.com Wed Dec 16 12:12:33 1998 Received: from mail.eaglets.com ([208.235.77.228]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id MAA25202 ; Wed, 16 Dec 1998 12:12:31 -0800 (PST) Received: by mail.eaglets.com from localhost (router,SLMail V3.1); Wed, 16 Dec 1998 15:15:47 -0500 Received: by mail.eaglets.com from eho.eaglets.com [208.235.77.238] (SLmail 3.1.2948 (Release Build)); Wed, 16 Dec 1998 15:15:47 -0500 Received: (from sds@localhost) by eho.eaglets.com (8.9.1a/8.9.1) id PAA15744; Wed, 16 Dec 1998 15:14:56 -0500 To: clisp-devel@seagull.cons.org, clisp-list@clisp.cons.org Subject: installation Return-Receipt-To: sds@goems.com Reply-To: sds@goems.com X-Disclaimer: You should not expect anyone to agree with me. X-Attribution: Sam X-No-Archive: Yes Mail-Copies-To: never From: Sam Steingold Date: 16 Dec 1998 15:14:55 -0500 Message-ID: Lines: 24 X-Mailer: Gnus v5.5/Emacs 20.3 $ make -n install if [ ! -d /usr/lib ] ; then mkdir /usr/lib ; fi if [ ! -d /usr/lib/lisp ] ; then mkdir /usr/lib/lisp ; fi cp lisp.run /usr/lib/lisp/lisp.run rm -f /usr/lib/lisp/lispinit.mem cp lispinit.mem /usr/lib/lisp/lispinit.mem ..... 1. why lispinit.mem is rm'ed but lisp.run is not? 2. why aren't files from the `full' directory installed anywhere? why not put them into /usr/lib/lisp/lispfull.run and /usr/lib/lisp/lispfull.mem and make /usr/bin/clisp -f run them? On a different note - should I check the redhat clisp.spec RPM specification file into the CVS? under what name? I prefer clisp.spec, but I would expect that, since suse uses the same name, I will be asked to use redhat-clisp.spec or something. -- Sam Steingold (http://www.goems.com/~sds) running RedHat5.2 GNU/Linux Micros**t is not the answer. Micros**t is a question, and the answer is Linux, (http://www.linux.org) the choice of the GNU (http://www.gnu.org) generation. Isn't "Microsoft Works" an advertisement lie? From haible@ilog.fr Mon Dec 21 08:53:31 1998 Received: from sceaux.ilog.fr (sceaux.ilog.fr [193.55.64.10]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id IAA22647 for ; Mon, 21 Dec 1998 08:53:27 -0800 (PST) Received: from ilog.ilog.fr ([172.17.4.22]) by sceaux.ilog.fr (8.9.1/8.9.1) with ESMTP id RAA07863; Mon, 21 Dec 1998 17:58:23 +0100 (MET) Received: from halles.ilog.fr (halles.ilog.fr [172.16.1.96]) by ilog.ilog.fr (8.8.8/8.7.3) with ESMTP id RAA08865; Mon, 21 Dec 1998 17:58:21 +0100 (MET) From: Bruno Haible Received: (from haible@localhost) by halles.ilog.fr (8.8.5/8.8.5) id RAA25584; Mon, 21 Dec 1998 17:58:20 +0100 (MET) Date: Mon, 21 Dec 1998 17:58:20 +0100 (MET) Message-Id: <199812211658.RAA25584@halles.ilog.fr> To: clisp-devel@seagull.cons.org, clisp-list@clisp.cons.org Subject: Re: logical pathnames? In-Reply-To: <18032.914253471@rtp.ericsson.se> References: <18032.914253471@rtp.ericsson.se> Raymond Toy wrote on clisp-devel, and I'm CCing to clisp-list because it may affect any of you: > > I tried the following example, taken from CLtL2: > > (setf (logical-pathname-translations "foo") > '(("**;*.*.*" "MY-LISPM:>library>foo>**>"))) > > (translate-logical-pathname "foo:bar;baz;mum.quux.3") > > CLtL2 says it might return > > #P"MY-LISPM:>library>foo>bar>baz>mum.quux.3" > > However, Clisp says: > > (translate-logical-pathname "foo:bar;baz;mum.quux.3") > > *** - TRANSLATE-PATHNAME: replacement pieces (("bar" "baz") "mum" "quux" "3") do not fit into #"MY-LISPM:>library>foo>**>" > > Actually, it fails for everything I've tried, so I may be totally > confused here. Try (describe '#"MY-LISPM:>library>foo>**>"). It shows you that this is a pathname with empty directory and name = "MY-LISPM:>library>foo>**>". (It's a valid Unix pathname, isn't it?) You probably meant to write down a logical pathname. In CLISP, you need to call the function LOGICAL-PATHNAME to get one. > (logical-pathname "MY-LISPM:>library>foo>**>") *** - PARSE-NAMESTRING: syntax error in filename "MY-LISPM:>library>foo>**>" at position 9 Hmm, your pathname looks more like a MacOS or TOPS-20 pathname, not a logical pathname. Bruno From rmz@dunk.follo.net Tue Dec 22 01:30:31 1998 Received: from ns1.yes.no (ns1.yes.no [195.204.136.10]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id BAA02363 for ; Tue, 22 Dec 1998 01:30:30 -0800 (PST) Received: from dunk.follo.net (dunk.follo.net [195.204.143.225]) by ns1.yes.no (8.9.1a/8.9.1) with ESMTP id KAA24514 for ; Tue, 22 Dec 1998 10:23:53 +0100 (CET) Received: (from rmz@localhost) by dunk.follo.net (8.8.8/8.8.6) id KAA15121; Tue, 22 Dec 1998 10:23:52 +0100 (CET) Message-ID: <19981222102351.53060@follo.net> Date: Tue, 22 Dec 1998 10:23:52 +0100 From: Bjorn Remseth To: clisp-list@clisp.cons.org Subject: Building 1998-09-09 under FreeBSD Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.89.1i Organization: Yes Interactive AS I am having some problems building the 1998-09-09 version under FreeBSD. Under 3.0 current it builds without a single hickup, but on 2.* systems there are no end of problems (details below). Has anyone tackled this one before? (Rmz) -------- For Freebsd 2.2-980616-SNAP this is what happens: if test -d locale; then rm -rf locale; fi mkdir locale (cd gettext/po && make && make install datadir=../.. localedir='$(datadir)/locale' INSTALL_DATA=ln) || (rm -rf locale ; exit 1) installing en.gmo as ../../locale/en/LC_MESSAGES/clisp.mo installing de.gmo as ../../locale/de/LC_MESSAGES/clisp.mo installing fr.gmo as ../../locale/fr/LC_MESSAGES/clisp.mo installing de.gmo as ../../locale/de/LC_MESSAGES/clisp.mo ln: ../../locale/de/LC_MESSAGES/clisp.mo: File exists *** Error code 1 Stop. *** Error code 1 Stop. -------- The problem above goes away if I redfine "MAKE = gmake", but then the problem below appears: ------- gcc -O -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-type -fomit-frame-pointer -O2 -fexpensive-optimizations -DDYNAMIC_FFI -x none spvw.o spvwtabf.o spvwtabs.o spvwtabo.o eval.o control.o pathname.o stream.o socket.o io.o array.o hashtabl.o list.o package.o record.o sequence.o charstrg.o debug.o error.o misc.o time.o predtype.o symbol.o lisparit.o graph.o foreign.o unixaux.o ari80386.o modules.o libintl.a libreadline.a libavcall.a libcallback.a -ltermcap -L/usr/X11R6/lib -lX11 -o lisp.run sync cp -p cfgunix.lsp config.lsp ./lisp.run -m 750KW -N locale -x "(load \"init.lsp\") (sys::%saveinitmem) (exit)" i i i i i i i ooooo o ooooooo ooooo ooooo I I I I I I I 8 8 8 8 8 o 8 8 I I I I I I I 8 8 8 8 8 8 I I I I I I I 8 8 8 ooooo 8oooo I \ +' / I 8 8 8 8 8 \ -+-' / 8 o 8 8 o 8 8 -__|__-' ooooo 8oooooo ooo8ooo ooooo 8 | ------+------ Copyright (c) Bruno Haible, Michael Stoll 1992, 1993 Copyright (c) Bruno Haible, Marcus Daniels 1994-1997 Copyright (c) Pierpaolo Bernardi, Sam Steingold 1998 ;; Loading file defseq.lsp ... ;; Loading of file defseq.lsp is finished. ;; Loading file backquot.lsp ... ;; Loading of file backquot.lsp is finished. ;; Loading file defmacro.lsp ... ;; Loading of file defmacro.lsp is finished. ;; Loading file macros1.lsp ... ;; Loading of file macros1.lsp is finished. ;; Loading file macros2.lsp ... ;; Loading of file macros2.lsp is finished. ;; Loading file defs1.lsp ... ;; Loading of file defs1.lsp is finished. ;; Loading file places.lsp ... ;; Loading of file places.lsp is finished. ;; Loading file floatpri.lsp ... ;; Loading of file floatpri.lsp is finished. ;; Loading file type.lsp ... ;; Loading of file type.lsp is finished. ;; Loading file defstruc.lsp ... ;; Loading of file defstruc.lsp is finished. ;; Loading file format.lsp ... ;; Loading of file format.lsp is finished. ;; Loading file /usr/obj/tmp/fnord/clisp-1998-09-09/src/user1.lsp ... ;; Loading of file /usr/obj/tmp/fnord/clisp-1998-09-09/src/user1.lsp is finished. ;; Loading file /usr/obj/tmp/fnord/clisp-1998-09-09/src/user2.lsp ... ;; Loading of file /usr/obj/tmp/fnord/clisp-1998-09-09/src/user2.lsp is finished. ;; Loading file /usr/obj/tmp/fnord/clisp-1998-09-09/src/trace.lsp ... ;; Loading of file /usr/obj/tmp/fnord/clisp-1998-09-09/src/trace.lsp is finished. ;; Loading file /usr/obj/tmp/fnord/clisp-1998-09-09/src/config.lsp ... ;; Loading of file /usr/obj/tmp/fnord/clisp-1998-09-09/src/config.lsp is finished. ;; Loading file /usr/obj/tmp/fnord/clisp-1998-09-09/src/compiler.lsp ... *** - READ from #: illegal character #\Null 1155824 ; 524288 Bye. mv lispimag.mem interpreted.mem ./lisp.run -m 1000KW -M interpreted.mem -N locale -q -c compiler.lsp *** - EVAL: undefined function COMPILE-FILE *** Error code 1 Stop. ---------- Now, this one is tricky, since I have no idea where even to start looking for trouble. Good ideas, anyone? (Rmz) From murray@uni-paderborn.de Tue Dec 22 06:22:23 1998 Received: from uni-paderborn.de (uni-paderborn.de [131.234.22.30]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id GAA04961 for ; Tue, 22 Dec 1998 06:22:20 -0800 (PST) Received: from pc-kb-7.uni-paderborn.de ([131.234.28.72]:1063 "EHLO uni-paderborn.de" ident: "NO-IDENT-SERVICE") by mail.uni-paderborn.de with ESMTP id <21069-5809>; Tue, 22 Dec 1998 15:27:24 +0100 Message-ID: <367FAC61.EF7A83AA@uni-paderborn.de> Date: Tue, 22 Dec 1998 15:27:46 +0100 From: Oliver Niggemann X-Mailer: Mozilla 4.03 [en] (WinNT; I) MIME-Version: 1.0 To: CLISP mailing list Subject: locking of files Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hello, I use CLISP (1998-9-9) under NT 4.0 as an algorithmic backend. The C++ Frontend (MFC) communicates with CLISP using of a file-communciation, i.e. both programms write and read messages to and from the same (!) file. It seems as if CLISP does not lock the file, both programms can write into the file at the same time. I would also like to prevent concurrent reading/writing. Thanks for any help, Oliver Niggemann -- Oliver Niggemann University of Paderborn Germany Room No. E4.164 Tel.: +49 5251 603345 EMail: murray@uni-paderborn.de From sds@eaglets.com Tue Dec 22 06:33:54 1998 Received: from mail.eaglets.com ([208.235.77.228]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id GAA05310 for ; Tue, 22 Dec 1998 06:33:52 -0800 (PST) Received: by mail.eaglets.com from localhost (router,SLMail V3.1); Tue, 22 Dec 1998 09:37:23 -0500 Received: by mail.eaglets.com from eho.eaglets.com [208.235.77.238] (SLmail 3.1.2948 (Release Build)); Tue, 22 Dec 1998 09:37:23 -0500 Received: (from sds@localhost) by eho.eaglets.com (8.9.1a/8.9.1) id JAA29603; Tue, 22 Dec 1998 09:36:42 -0500 To: clisp-list@seagull.cons.org Cc: Bjorn Remseth Subject: Re: Building 1998-09-09 under FreeBSD References: <19981222102351.53060@follo.net> Return-Receipt-To: sds@goems.com Reply-To: sds@goems.com X-Disclaimer: You should not expect anyone to agree with me. X-Attribution: Sam X-No-Archive: Yes Mail-Copies-To: never From: Sam Steingold In-Reply-To: Bjorn Remseth's message of "Tue, 22 Dec 1998 01:31:18 -0800 (PST)" Date: 22 Dec 1998 09:36:42 -0500 Message-ID: Lines: 23 X-Mailer: Gnus v5.5/Emacs 20.3 >>>> In message <19981222102351.53060@follo.net> >>>> On the subject of "Building 1998-09-09 under FreeBSD" >>>> Sent on Tue, 22 Dec 1998 01:31:18 -0800 (PST) >>>> Honorable Bjorn Remseth writes: >> >> The problem above goes away if I redfine "MAKE = gmake", always use GNU make. :-) >> but then the problem below appears: >> *** - READ from #: illegal character #\Null this is the problem. look at the character 3912 in this file. what do you see? try un-tar-ing the file again. -- Sam Steingold (http://www.goems.com/~sds) running RedHat5.2 GNU/Linux Micros**t is not the answer. Micros**t is a question, and the answer is Linux, (http://www.linux.org) the choice of the GNU (http://www.gnu.org) generation. Those who can't write, write manuals. From haible@ilog.fr Tue Dec 22 06:41:05 1998 Received: from sceaux.ilog.fr (sceaux.ilog.fr [193.55.64.10]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id GAA05608 for ; Tue, 22 Dec 1998 06:41:03 -0800 (PST) Received: from ilog.ilog.fr ([172.17.4.22]) by sceaux.ilog.fr (8.9.1/8.9.1) with ESMTP id PAA11600 for ; Tue, 22 Dec 1998 15:46:23 +0100 (MET) Received: from halles.ilog.fr (halles.ilog.fr [172.16.1.96]) by ilog.ilog.fr (8.8.8/8.7.3) with ESMTP id PAA00919; Tue, 22 Dec 1998 15:46:21 +0100 (MET) From: Bruno Haible Received: (from haible@localhost) by halles.ilog.fr (8.8.5/8.8.5) id PAA26693; Tue, 22 Dec 1998 15:46:19 +0100 (MET) Date: Tue, 22 Dec 1998 15:46:19 +0100 (MET) Message-Id: <199812221446.PAA26693@halles.ilog.fr> To: clisp-list@seagull.cons.org Subject: Re: Building 1998-09-09 under FreeBSD In-Reply-To: <19981222102351.53060@follo.net> References: <19981222102351.53060@follo.net> Bjorn Remseth writes: > For Freebsd 2.2-980616-SNAP this is what happens: > > if test -d locale; then rm -rf locale; fi > mkdir locale > (cd gettext/po && make && make install datadir=../.. localedir='$(datadir)/locale' INSTALL_DATA=ln) || (rm -rf locale ; exit 1) > installing en.gmo as ../../locale/en/LC_MESSAGES/clisp.mo > installing de.gmo as ../../locale/de/LC_MESSAGES/clisp.mo > installing fr.gmo as ../../locale/fr/LC_MESSAGES/clisp.mo > installing de.gmo as ../../locale/de/LC_MESSAGES/clisp.mo > ln: ../../locale/de/LC_MESSAGES/clisp.mo: File exists This was a bug in the FreeBSD /bin/sh, which has been fixed a couple of months ago. > ;; Loading file /usr/obj/tmp/fnord/clisp-1998-09-09/src/compiler.lsp ... > *** - READ from #: illegal character #\Null > Now, this one is tricky, since I have no idea where even to start looking for > trouble. Good ideas, anyone? This one looks like an OS bug triggering a problem with clisp's generational GC. Try to build with "CFLAGS = ... -DNO_GENERATIONAL_GC". > Under 3.0 current it builds without a single hickup Congrats to Jordan Hubbard ans his fellows! Bruno From rmz@dunk.follo.net Tue Dec 22 07:01:45 1998 Received: from ns1.yes.no (ns1.yes.no [195.204.136.10]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id HAA06131 for ; Tue, 22 Dec 1998 07:01:40 -0800 (PST) Received: from dunk.follo.net (dunk.follo.net [195.204.143.225]) by ns1.yes.no (8.9.1a/8.9.1) with ESMTP id QAA12405 for ; Tue, 22 Dec 1998 16:07:05 +0100 (CET) Received: (from rmz@localhost) by dunk.follo.net (8.8.8/8.8.6) id QAA17436; Tue, 22 Dec 1998 16:07:05 +0100 (CET) Message-ID: <19981222160704.07907@follo.net> Date: Tue, 22 Dec 1998 16:07:04 +0100 From: Bjorn Remseth To: clisp-list@seagull.cons.org Subject: Re: Building 1998-09-09 under FreeBSD References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.89.1i In-Reply-To: ; from Sam Steingold on Tue, Dec 22, 1998 at 06:34:22AM -0800 Organization: Yes Interactive AS On Tue, Dec 22, 1998 at 06:34:22AM -0800, Sam Steingold wrote: > >>>> In message <19981222102351.53060@follo.net> > >>>> On the subject of "Building 1998-09-09 under FreeBSD" > >>>> Sent on Tue, 22 Dec 1998 01:31:18 -0800 (PST) > >>>> Honorable Bjorn Remseth writes: > >> > >> The problem above goes away if I redfine "MAKE = gmake", > > always use GNU make. :-) > > >> but then the problem below appears: > > >> *** - READ from #: illegal character #\Null > this is the problem. > look at the character 3912 in this file. what do you see? > try un-tar-ing the file again. #+CLISP (import '(sys::function-name-p sys::parse-body sys::add-implicit-block sys::make-load-time-eval sys::closure-name sys::closure-codevec sys::closure-consts sys::fixnump sys::short-float-p sys::single-float-p sys::double-float-p sys::long-float-p sys::search-file sys::date-format sys::line-number sys::%funtabref sys::inlinable sys::constant-inlinable sys::*compiling* sys::*compiling-from-file* sys::*inline-functions* sys::*venv* sys::*fenv* sys::*benv* sys::*genv* sys::*denv* sys::*toplevel-denv* COMPILER::C-PROCLAIM COMPILER::C-PROCLAIM-CONSTANT COMPILER::C-DEFUN COMPILER::C-PROVIDE COMPILER::C-REQUIRE ) ) ^ ! This is char 3912. It also looks like the .tar file is ok, I ftp-ed it twice, just to make sure, and "tar" itself also has no complaints, which indicates that the file indeed contains all its bytes. Hence the problem probably occurs because the reader believes it reads a zero when in reality it doesn't. Why it does I have no idea ;) (Rmz) From rmz@dunk.follo.net Tue Dec 22 08:00:50 1998 Received: from ns1.yes.no (ns1.yes.no [195.204.136.10]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id IAA06878 for ; Tue, 22 Dec 1998 08:00:49 -0800 (PST) Received: from dunk.follo.net (dunk.follo.net [195.204.143.225]) by ns1.yes.no (8.9.1a/8.9.1) with ESMTP id RAA13414 for ; Tue, 22 Dec 1998 17:06:12 +0100 (CET) Received: (from rmz@localhost) by dunk.follo.net (8.8.8/8.8.6) id RAA19566; Tue, 22 Dec 1998 17:06:12 +0100 (CET) Message-ID: <19981222170611.15744@follo.net> Date: Tue, 22 Dec 1998 17:06:11 +0100 From: Bjorn Remseth To: clisp-list@seagull.cons.org Subject: Re: Building 1998-09-09 under FreeBSD References: <199812221446.PAA26693@halles.ilog.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.89.1i In-Reply-To: <199812221446.PAA26693@halles.ilog.fr>; from Bruno Haible on Tue, Dec 22, 1998 at 06:41:13AM -0800 Organization: Yes Interactive AS On Tue, Dec 22, 1998 at 06:41:13AM -0800, Bruno Haible wrote: > Bjorn Remseth writes: .. > > > ;; Loading file /usr/obj/tmp/fnord/clisp-1998-09-09/src/compiler.lsp ... > > *** - READ from #: illegal character #\Null > > > Now, this one is tricky, since I have no idea where even to start looking for > > trouble. Good ideas, anyone? > > This one looks like an OS bug triggering a problem with clisp's generational > GC. Try to build with "CFLAGS = ... -DNO_GENERATIONAL_GC". This does indeed remove the problem. Clisp compiles, and my program runs on all the machines it should run. Thanks a lot guys, and merry Christmas ;)) > > Under 3.0 current it builds without a single hickup > > Congrats to Jordan Hubbard ans his fellows! Absolutely :) (Rmz) From sds@eaglets.com Tue Dec 22 09:36:16 1998 Received: from mail.eaglets.com ([208.235.77.228]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id JAA08112 for ; Tue, 22 Dec 1998 09:36:15 -0800 (PST) Received: by mail.eaglets.com from localhost (router,SLMail V3.1); Tue, 22 Dec 1998 12:40:30 -0500 Received: by mail.eaglets.com from eho.eaglets.com [208.235.77.238] (SLmail 3.1.2948 (Release Build)); Tue, 22 Dec 1998 12:40:29 -0500 Received: (from sds@localhost) by eho.eaglets.com (8.9.1a/8.9.1) id MAA02071; Tue, 22 Dec 1998 12:41:13 -0500 To: clisp-list@seagull.cons.org Subject: Re: locking of files References: <367FAC61.EF7A83AA@uni-paderborn.de> Return-Receipt-To: sds@goems.com Reply-To: sds@goems.com X-Disclaimer: You should not expect anyone to agree with me. X-Attribution: Sam X-No-Archive: Yes Mail-Copies-To: never From: Sam Steingold In-Reply-To: Oliver Niggemann's message of "Tue, 22 Dec 1998 06:22:47 -0800 (PST)" Date: 22 Dec 1998 12:41:13 -0500 Message-ID: Lines: 27 X-Mailer: Gnus v5.5/Emacs 20.3 >>>> In message <367FAC61.EF7A83AA@uni-paderborn.de> >>>> On the subject of "locking of files" >>>> Sent on Tue, 22 Dec 1998 06:22:47 -0800 (PST) >>>> Honorable Oliver Niggemann writes: >> >> I use CLISP (1998-9-9) under NT 4.0 as an algorithmic backend. The >> C++ Frontend (MFC) communicates with CLISP using of a >> file-communciation, i.e. both programms write and read messages to >> and from the same (!) file. It seems as if CLISP does not lock the >> file, both programms can write into the file at the same time. I >> would also like to prevent concurrent reading/writing. I recommend sockets. Open a server-socket in C (you can open a server-socket in CLISP on Unix, I am not sure about w32), then connect to it from CLISP. w32 file locking sucks big time. If a program writes to file, nobody can read from it etc. PS. A year ago I lived under NT too. I upgraded to Linux and never looked back. This is at work, not at home. :-) -- Sam Steingold (http://www.goems.com/~sds) running RedHat5.2 GNU/Linux Micros**t is not the answer. Micros**t is a question, and the answer is Linux, (http://www.linux.org) the choice of the GNU (http://www.gnu.org) generation. OS/2: Why marketing matters more than technology... From dobes@mindless.com Tue Dec 22 14:22:28 1998 Received: from mail.rdc1.bc.wave.home.com (imail@ha1.rdc1.bc.wave.home.com [24.2.10.66]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id OAA11167 for ; Tue, 22 Dec 1998 14:22:28 -0800 (PST) Received: from mindless.com ([24.112.126.47]) by mail.rdc1.bc.wave.home.com (InterMail v4.0 201-221) with ESMTP id <19981222222756.IDXO27024.mail.rdc1.bc.wave.home.com@mindless.com> for ; Tue, 22 Dec 1998 14:27:56 -0800 Message-ID: <36801D68.7CD18A19@mindless.com> Date: Tue, 22 Dec 1998 14:30:00 -0800 From: Dobes Vandermeer Organization: Coding Thought Consulting X-Mailer: Mozilla 4.5 [en] (WinNT; I) X-Accept-Language: en MIME-Version: 1.0 To: clisp-list@seagull.cons.org Subject: Intergrating CLISP References: <19981222160704.07907@follo.net> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hey, I'm new to this list.. I want to use CLISP in my own application (possilby commercially). From what I understand of the GPL, this is fine, as long as I am willing to provide sources for CLISP, and any derivaive work (that is also a LISP interpreter). There are some things I am not clear on about CLISP... especially, I cannot tell if it incrementally compiles or not? In the docs, it talks abut compiling to bytecode a lot, and also compiling, and I am not sure if they are seperate... Finally, I cannot get CLISP to compil under Windows NT, i386, using either MSVC++ 5 or Cygwin32's UNIX environment. MSVC crashes with a "syntax error before "!"", and Cygwin32 reaches some tests in ./confugre and exits, so when I try and build the sources, it complains that it cannot determien whether the stack grows up or down, whether my system is big or little endian, etc.. Any help appreciated! CU Dobes From hoehle@zeus.gmd.de Wed Dec 30 13:29:48 1998 Received: from mail.gmd.de (mail.gmd.de [129.26.8.90]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id NAA07431 for ; Wed, 30 Dec 1998 13:29:46 -0800 (PST) Received: from kir ([141.12.144.207]) by mail.gmd.de (8.8.8/8.8.8) with SMTP id WAA21565 for ; Wed, 30 Dec 1998 22:36:05 +0100 (MET) Message-Id: <199812302136.WAA21565@mail.gmd.de> From: hoehle@mail.gmd.de (Jorg-Cyril Hohle) To: clisp-list@clisp.cons.org Subject: limits of UNION? (program stack depth) Date: Wed, 23 Dec 1998 16:02:25 +0100 Hello, I was trying to transform a sequence of (apply #'n-ary-union (mapcar #'(lambda (elt) (return-a-list elt)) stuff)) into (reduce #'union stuff :key #'(lambda (elt (return-a-list elt)))) which I thought would be more efficient, but I hit a limit in CLISP. I get a stack reset from TEST2, while TEST1 succeeds. The culprit is UNION (or the special shape of the list ...). N-ARY-UNION in TEST1 uses REMOVE-DUPLICATES and APPLY + APPEND instead of UNION. > (length (union (first *foo*) (second *foo*))) *** - Programmstack-Überlauf: RESET > (lisp-implementation-version) "1998-07-30 (Juli 1998)" > (length (union '(3 4) (second *foo*))) 10001 > (length (union (second *foo*) '(3 4))) *** - Programmstack-Überlauf: RESET 10000 looks like a pretty low limit to me. The experimental limit seems to be below 1500 in my configuration. The overflow seems to indicate that in DEFS1.LSP:UNION the (APPLY #'UNION ...) call is not recognized as tail recursive so calls pile up, despite the 36 (APPLY&SKIP&RET 2 7) byte code instruction I see in the disassembly. Regards, Jo"rg Ho"hle. Joerg.Hoehle@gmd.de http://zeus.gmd.de/~hoehle/amiga.html (defun n-ary-union (&rest sets) (remove-duplicates (apply #'append sets))) (defun test1 (lists) (apply #'n-ary-union (mapcar #'(lambda (elt) (mapcar #'1+ elt)) lists))) (defun test2 (lists) (reduce #'union lists :key #'(lambda (elt) (mapcar #'1+ elt)))) (defvar *foo*) (progn (setq *foo* (loop repeat 2 collect (make-list 10000 :initial-element 3))) nil) #+clisp (space (test1 *foo*)) #+clisp (space (test2 *foo*)) From haible@ilog.fr Thu Dec 31 09:30:21 1998 Received: from sceaux.ilog.fr (sceaux.ilog.fr [193.55.64.10]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id JAA17235 for ; Thu, 31 Dec 1998 09:30:19 -0800 (PST) Received: from ilog.ilog.fr ([172.17.4.22]) by sceaux.ilog.fr (8.9.1/8.9.1) with ESMTP id SAA10628 for ; Thu, 31 Dec 1998 18:36:46 +0100 (MET) Received: from halles.ilog.fr (halles.ilog.fr [172.16.1.96]) by ilog.ilog.fr (8.8.8/8.7.3) with ESMTP id SAA05688; Thu, 31 Dec 1998 18:36:44 +0100 (MET) From: Bruno Haible Received: (from haible@localhost) by halles.ilog.fr (8.8.5/8.8.5) id SAA01401; Thu, 31 Dec 1998 18:36:45 +0100 (MET) Date: Thu, 31 Dec 1998 18:36:45 +0100 (MET) Message-Id: <199812311736.SAA01401@halles.ilog.fr> To: clisp-list@seagull.cons.org Subject: Re: limits of UNION? (program stack depth) In-Reply-To: <199812302136.WAA21565@mail.gmd.de> References: <199812302136.WAA21565@mail.gmd.de> Jörg-Cyril Höhle writes: > > (length (union '(3 4) (second *foo*))) > 10001 > > (length (union (second *foo*) '(3 4))) > *** - Programmstack-Überlauf: RESET > > > 10000 looks like a pretty low limit to me. The experimental limit > seems to be below 1500 in my configuration. This is the maximum stack depth, highly platform dependent. > The overflow seems to indicate that in DEFS1.LSP:UNION the (APPLY > #'UNION ...) call is not recognized as tail recursive There are two calls (APPLY #'UNION ...) in the function UNION. One of them is not tail-recursive. The right fix is to make UNION work iteratively, so it can work on lists of arbitrary length. Please apply the patch below. Bruno *** src/defs1.lsp.bak Fri Dec 4 10:04:01 1998 --- src/defs1.lsp Thu Dec 31 18:02:39 1998 *************** *** 187,240 **** (defun union (list1 list2 &rest rest &key test test-not key) (declare (ignore test test-not key)) (cond ((endp list1) list2) ((apply #'sys::member1 (car list1) list2 rest) (apply #'union (cdr list1) list2 rest)) (t (cons (car list1) (apply #'union (cdr list1) list2 rest))) ! ) ) (defun nunion (list1 list2 &rest rest &key test test-not key) (declare (ignore test test-not key)) (cond ((endp list1) list2) ((apply #'sys::member1 (car list1) list2 rest) (apply #'nunion (cdr list1) list2 rest)) (t (rplacd list1 (apply #'nunion (cdr list1) list2 rest))) ! ) ) (defun intersection (list1 list2 &rest rest &key test test-not key) (declare (ignore test test-not key)) (cond ((endp list1) nil) ((apply #'sys::member1 (car list1) list2 rest) (cons (car list1) (apply #'intersection (cdr list1) list2 rest))) (t (apply #'intersection (cdr list1) list2 rest)) ! ) ) (defun nintersection (list1 list2 &rest rest &key test test-not key) (declare (ignore test test-not key)) (cond ((endp list1) nil) ((apply #'sys::member1 (car list1) list2 rest) (rplacd list1 (apply #'nintersection (cdr list1) list2 rest)) ) (t (apply #'nintersection (cdr list1) list2 rest)) ! ) ) (defun set-difference (list1 list2 &rest rest &key test test-not key) (declare (ignore test test-not key)) (cond ((endp list1) nil) ((not (apply #'sys::member1 (car list1) list2 rest)) (cons (car list1) (apply #'set-difference (cdr list1) list2 rest) )) (t (apply #'set-difference (cdr list1) list2 rest)) ! ) ) (defun nset-difference (list1 list2 &rest rest &key test test-not key) (declare (ignore test test-not key)) (cond ((endp list1) nil) ((not (apply #'sys::member1 (car list1) list2 rest)) (rplacd list1 (apply #'nset-difference (cdr list1) list2 rest)) ) (t (apply #'nset-difference (cdr list1) list2 rest)) ! ) ) (defun set-exclusive-or (list1 list2 &rest rest &key test test-not key) (declare (ignore test test-not key)) --- 187,306 ---- (defun union (list1 list2 &rest rest &key test test-not key) (declare (ignore test test-not key)) + #| ; recursive (not suitable for long lists): (cond ((endp list1) list2) ((apply #'sys::member1 (car list1) list2 rest) (apply #'union (cdr list1) list2 rest)) (t (cons (car list1) (apply #'union (cdr list1) list2 rest))) ! ) ! |# ; iterative ! (let ((list1-filtered '())) ! (dolist (item list1) ! (unless (apply #'sys::member1 item list2 rest) ! (setq list1-filtered (cons item list1-filtered)) ! ) ) ! (nreconc list1-filtered list2) ! ) ! ) (defun nunion (list1 list2 &rest rest &key test test-not key) (declare (ignore test test-not key)) + #| ; recursive (not suitable for long lists): (cond ((endp list1) list2) ((apply #'sys::member1 (car list1) list2 rest) (apply #'nunion (cdr list1) list2 rest)) (t (rplacd list1 (apply #'nunion (cdr list1) list2 rest))) ! ) ! |# ; iterative ! (let ((first nil) (last nil)) ! (do ((l list1 (cdr l))) ! ((endp l)) ! (unless (apply #'sys::member1 (car l) list2 rest) ! (if last (rplacd last l) (setq first l)) ! (setq last l) ! ) ) ! (if last (progn (rplacd last list2) first) list2) ! ) ! ) (defun intersection (list1 list2 &rest rest &key test test-not key) (declare (ignore test test-not key)) + #| ; recursive (not suitable for long lists): (cond ((endp list1) nil) ((apply #'sys::member1 (car list1) list2 rest) (cons (car list1) (apply #'intersection (cdr list1) list2 rest))) (t (apply #'intersection (cdr list1) list2 rest)) ! ) ! |# ; iterative ! (let ((list1-filtered '())) ! (dolist (item list1) ! (when (apply #'sys::member1 item list2 rest) ! (setq list1-filtered (cons item list1-filtered)) ! ) ) ! (list-nreverse list1-filtered) ! ) ! ) (defun nintersection (list1 list2 &rest rest &key test test-not key) (declare (ignore test test-not key)) + #| ; recursive (not suitable for long lists): (cond ((endp list1) nil) ((apply #'sys::member1 (car list1) list2 rest) (rplacd list1 (apply #'nintersection (cdr list1) list2 rest)) ) (t (apply #'nintersection (cdr list1) list2 rest)) ! ) ! |# ; iterative ! (let ((first nil) (last nil)) ! (do ((l list1 (cdr l))) ! ((endp l)) ! (when (apply #'sys::member1 (car l) list2 rest) ! (if last (rplacd last l) (setq first l)) ! (setq last l) ! ) ) ! (if last (progn (rplacd last nil) first) nil) ! ) ! ) (defun set-difference (list1 list2 &rest rest &key test test-not key) (declare (ignore test test-not key)) + #| ; recursive (not suitable for long lists): (cond ((endp list1) nil) ((not (apply #'sys::member1 (car list1) list2 rest)) (cons (car list1) (apply #'set-difference (cdr list1) list2 rest) )) (t (apply #'set-difference (cdr list1) list2 rest)) ! ) ! |# ; iterative ! (let ((list1-filtered '())) ! (dolist (item list1) ! (unless (apply #'sys::member1 item list2 rest) ! (setq list1-filtered (cons item list1-filtered)) ! ) ) ! (list-nreverse list1-filtered) ! ) ! ) (defun nset-difference (list1 list2 &rest rest &key test test-not key) (declare (ignore test test-not key)) + #| ; recursive (not suitable for long lists): (cond ((endp list1) nil) ((not (apply #'sys::member1 (car list1) list2 rest)) (rplacd list1 (apply #'nset-difference (cdr list1) list2 rest)) ) (t (apply #'nset-difference (cdr list1) list2 rest)) ! ) ! |# ; iterative ! (let ((first nil) (last nil)) ! (do ((l list1 (cdr l))) ! ((endp l)) ! (unless (apply #'sys::member1 (car l) list2 rest) ! (if last (rplacd last l) (setq first l)) ! (setq last l) ! ) ) ! (if last (progn (rplacd last nil) first) nil) ! ) ! ) (defun set-exclusive-or (list1 list2 &rest rest &key test test-not key) (declare (ignore test test-not key))