From wnewman@netcom.com Tue Jan 12 16:52:17 1999 Received: from netcom8.netcom.com (wnewman@netcom8.netcom.com [192.100.81.117]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id QAA01082 for ; Tue, 12 Jan 1999 16:52:17 -0800 (PST) Received: (from wnewman@localhost) by netcom8.netcom.com (8.8.5-r-beta/8.8.5/(NETCOM v1.02)) id RAA21864; Tue, 12 Jan 1999 17:00:09 -0800 (PST) From: Bill Newman Message-Id: <199901130100.RAA21864@netcom8.netcom.com> Subject: patches to make CLISP use keywords in *FEATURES* To: clisp-list@clisp.cons.org Date: Tue, 12 Jan 1999 17:00:09 -0800 (PST) X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit As far as I can tell, the clisp-1998-09-09 behavior of *FEATURES* and the #+ and #- read macros is unique to CLISP, conforming neither to CLTL1 nor to ANSI. CLTL1 says that #+FOO is a test for whether the symbol FOO is *FEATURES*. CLTL2 (and ANSI) "clarifies" that the default package for reading symbols in a #+ expression is the KEYWORD package. (This seems to be more a change than a clarification to me, but it's not too drastic a change: it doesn't break user code which only uses #+ and #- to test for features.) CLISP interprets #+FOO as a test for whether any symbol whose print name is "FOO" is in *FEATURES*. I have need of the standard behavior: in my quixotic efforts to cross-compile CMUCL, I'd like to use constructs like #+HOST:LONG-FLOAT #+TGT:LONG-FLOAT (and various package magic) in order to distinguish between "the host compiler has the LONG-FLOAT feature" and "the compiler under construction is to have the LONG-FLOAT feature." I was not happy when I discovered that the following code prints 1 under clisp-1998-09-09: (DEFPACKAGE FOO) (DEFPACKAGE BAR) (SETF *FEATURES* '(FOO::BLETCH)) (PRINT #+BAR::BLETCH 1 #-BAR::BLETCH 0) I've patched clisp-1998-09-09 so that it conforms to CLTL1 and ANSI. Would anyone like my patches? Would it be possible to have them applied to the master sources so that when a new version of CLISP comes out I can upgrade without having to patch it? Bill Newman wnewman@netcom.com From haible@ilog.fr Wed Jan 13 04:56:46 1999 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 EAA07436 for ; Wed, 13 Jan 1999 04:56:36 -0800 (PST) Received: from ilog.ilog.fr ([172.17.4.22]) by sceaux.ilog.fr (8.9.1/8.9.1) with ESMTP id OAA29031 for ; Wed, 13 Jan 1999 14:04:27 +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 OAA15661; Wed, 13 Jan 1999 14:04:22 +0100 (MET) From: Bruno Haible Received: (from haible@localhost) by jaures.ilog.fr (8.9.0/8.9.0) id OAA19547; Wed, 13 Jan 1999 14:04:22 +0100 (MET) Date: Wed, 13 Jan 1999 14:04:22 +0100 (MET) Message-Id: <199901131304.OAA19547@jaures.ilog.fr> To: clisp-list@clisp.cons.org Subject: New version of CLISP Sam Steingold has made a new release of CLISP. The source of version 1999-01-08 is at ftp://ftp2.cons.org/pub/lisp/clisp/source/ He also made Linux/x86 (RedHat 5.1) binaries. You find two rpm's at ftp://ftp2.cons.org/pub/lisp/clisp/binaries/i386-linux-libc6/ and ftp://cellar.goems.com/pub/clisp/ Here are the changes, from the NEWS file: Important note -------------- * Changed bytecode format. All .fas files generated by previous CLISP versions are invalid and must be recompiled. User visible changes -------------------- * Conforming to ANSI CL issue : multiple values in ASSERT, ROTATEF, SHIFTF &c. * Conforming to ANSI CL issue : `values' can take multiple value places in setf &c. * The variable `*prompt-with-package*' is replaced with `*prompt*', which can be a function. See the impnotes for further details. * Conforming with X3J13 writeup , an error is now signalled when a lambda expression (not a function) is passed to APPLY, FUNCALL, SETF SYMBOL-FUNCTION, EVERY, SOME, NOTEVERY, NOTANY, SET-MACRO-CHARACTER, SET-DISPATCH-MACRO-CHARACTER. The latter two now accept a symbol instead of a function. * X3J13 vote <103> = writeup is implemented: COMMON-LISP:IN-PACKAGE is now a macro. LISP:IN-PACKAGE retains the old semantics as a function. The syntaxes (IN-PACKAGE "FOO") and (IN-PACKAGE :FOO) work with both variations. * X3J13 vote <11> = writeups , , , , are implemented: Characters don't have font and bits attributes any more. The following symbols are not exported from package COMMON-LISP any more: STRING-CHAR STRING-CHAR-P CHAR-FONT-LIMIT CHAR-BITS-LIMIT CHAR-CONTROL-BIT CHAR-META-BIT CHAR-SUPER-BIT CHAR-HYPER-BIT CHAR-BITS CHAR-FONT MAKE-CHAR INT-CHAR CHAR-BIT SET-CHAR-BIT MAKE-STRING and MAKE-STRING-OUTPUT-STREAM have a new keyword argument :ELEMENT-TYPE. New types BASE-CHAR, EXTENDED-CHAR, BASE-STRING, SIMPLE-BASE-STRING. * X3J13 writeup is implemented: New function GET-SETF-EXPANSION, new macro DEFINE-SETF-EXPANDER. The old symbols GET-SETF-METHOD-MULTIPLE-VALUE, GET-SETF-METHOD, DEFINE-SETF-METHOD are removed from package COMMON-LISP. * X3J13 writeups and are implemented: New condition classes PARSE-ERROR and READER-ERROR. * X3J13 writeup is implemented: New condition class UNBOUND-SLOT. New function UNBOUND-SLOT-INSTANCE. * X3J13 writeups and are implemented: COMMONP and COMPILER-LET are not exported from package COMMON-LISP any more. * X3J13 vote <138> = writeup is implemented: PEEK-CHAR does less side effects than READ-CHAR followed by UNREAD-CHAR would do. * X3J13 writeup is implemented: When looking up a feature symbol in *FEATURES*, the package is no longer ignored. All initial elements of *FEATURES* are now keywords. The reader binds *PACKAGE* to # during #+ and #-. * X3J13 writeup is implemented: Some of the values of SLOT-MISSING are ignored, depending on context. * X3J13 writeup is implemented: Assigning the variable bound by the WITH-INPUT-FROM-STRING, WITH-OPEN-FILE, WITH-OPEN-STREAM, WITH-OUTPUT-TO-STRING macros generates a compiler warning. * X3J13 writeup is implemented: The functions MAKE-SEQUENCE, COERCE, CONCATENATE, MAP, MERGE signal an error if the result type specifies a length inconsistent with the other arguments. * X3J13 writeup is implemented: SYMBOL-MACROLET of special variables or constants now signals an error. * Conforming with X3J13 writeup , the first argument of LDIFF may now be a dotted list. * PATHNAME-MATCH-P and TRANSLATE-PATHNAME now treat missing pathname components the same as wild ones. * Renamed function SOCKET-STREAM-PEER-HOST to SOCKET-STREAM-PEER. New functions SOCKET-STREAM-LOCAL and SOCKET-SERVER-HOST. * Conforming to ANSI CL, DEFSTRUCT with option :INCLUDE now does not define accessors which were already defined in a superclass DEFSTRUCT. This solves the problems that occur when using the same :CONC-NAME for the new and the inherited structure, without need for the DEFSTRUCT option :INHERIT. * The functions MAKE-BROADCAST-STREAM, MAKE-CONCATENATED-STREAM, MAKE-TWO-WAY-STREAM, MAKE-ECHO-STREAM now verify that their arguments are input streams or output streams, respectively. * The function EQUALP now ignores the element type of arrays and looks only at the array contents, as specified by ANSI CL. * The *FEATURES* list now contains the symbol CLTL2 instead of the symbol CLTL1. * The limit for file size of files that can be accessed by CLISP is increased: 4 GB for character streams, 512 MB for integer streams. The previous limits were 16 MB for character streams, 2 MB for integer streams. * Fixed a bug: Calling the function INTERACTIVE-STREAM-P with a non-stream argument could cause a crash. * Fixed a bug in the LOOP macro: OF-TYPE was not supported in numeric accumulation clauses (COUNT/SUM/MAXIMIZE/MINIMIZE). * Fixed a bug in the LOOP macro: The FOR clauses FROM/TO/BY can now be given in any order. * Fixed a bug: (UPGRADED-ARRAY-ELEMENT-TYPE 'STANDARD-CHAR) returned T instead of STRING-CHAR. * Fixed a bug: The function CERROR signalled an error if more than two arguments were given and the second argument was a condition. * Fixed a bug: Hash tables with test #'EQUALP did not work correctly when the keys are characters, multi-dimensional arrays or pathnames. * The function VALUES-LIST now verifies that its argument is a proper list. * The function XGCD now often (but not always) returns coefficients of smallest possible absolute value. Suggested by the LiDIA group. Enjoy! Bruno From haible@ilog.fr Wed Jan 13 05:02:21 1999 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 FAA07593 for ; Wed, 13 Jan 1999 05:02: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 OAA29184 for ; Wed, 13 Jan 1999 14:10:13 +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 OAA16099; Wed, 13 Jan 1999 14:10:09 +0100 (MET) From: Bruno Haible Received: (from haible@localhost) by jaures.ilog.fr (8.9.0/8.9.0) id OAA19823; Wed, 13 Jan 1999 14:10:09 +0100 (MET) Date: Wed, 13 Jan 1999 14:10:09 +0100 (MET) Message-Id: <199901131310.OAA19823@jaures.ilog.fr> To: clisp-list@seagull.cons.org Subject: Re: patches to make CLISP use keywords in *FEATURES* In-Reply-To: <199901130100.RAA21864@netcom8.netcom.com> References: <199901130100.RAA21864@netcom8.netcom.com> Bill Newman writes: > As far as I can tell, the clisp-1998-09-09 behavior > of *FEATURES* and the #+ and #- read macros is unique > to CLISP, conforming neither to CLTL1 nor to ANSI. It reflects my understanding of CLtL1 and is not comforming to ANSI CL. > I've patched clisp-1998-09-09 so that it conforms to CLTL1 and ANSI. > Would anyone like my patches? Thanks a lot. I would have liked to apply your patches, if the issue was not already fixed in Sam's newest release. Feel free to send us your patches anyway, if they did things differently than what's in clisp-1999-01-08. Thanks. Bruno From wnewman@netcom.com Wed Jan 13 07:04:44 1999 Received: from netcom18.netcom.com (wnewman@netcom18.netcom.com [192.100.81.131]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id HAA08743 for ; Wed, 13 Jan 1999 07:04:44 -0800 (PST) Received: (from wnewman@localhost) by netcom18.netcom.com (8.8.5-r-beta/8.8.5/(NETCOM v1.02)) id HAA24858 for clisp-list@seagull.cons.org; Wed, 13 Jan 1999 07:12:34 -0800 (PST) From: Bill Newman Message-Id: <199901131512.HAA24858@netcom18.netcom.com> Subject: Re: patches to make CLISP use keywords in *FEATURES* To: clisp-list@seagull.cons.org Date: Wed, 13 Jan 1999 07:12:34 -0800 (PST) In-Reply-To: <199901131310.OAA19823@jaures.ilog.fr> from "Bruno Haible" at Jan 13, 99 05:02:38 am X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit > > I've patched clisp-1998-09-09 so that it conforms to CLTL1 and ANSI. > > Would anyone like my patches? > > I would have liked to apply your patches, if the issue was not already fixed > in Sam's newest release. Feel free to send us your patches anyway, if they > did things differently than what's in clisp-1999-01-08. Oh. Then I'm happy.:-) I'm downloading the new version now. Thank you. Bill From sds@eaglets.com Wed Jan 13 08:51:08 1999 Received: from mail.eaglets.com ([208.235.77.228]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id IAA09770 for ; Wed, 13 Jan 1999 08:51:06 -0800 (PST) Received: by mail.eaglets.com from localhost (router,SLMail V3.1); Wed, 13 Jan 1999 11:58:05 -0500 Received: by mail.eaglets.com from eho.eaglets.com [208.235.77.238] (SLmail 3.1.2948 (Release Build)); Wed, 13 Jan 1999 11:58:05 -0500 Received: (from sds@localhost) by eho.eaglets.com (8.9.1a/8.9.1) id LAA02823; Wed, 13 Jan 1999 11:58:53 -0500 To: Bruno Haible Subject: warnings on redefining generics 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: 13 Jan 1999 11:58:53 -0500 Message-ID: Lines: 16 Is it possible to avoid warnings like WARNING: The generic function # is being modified, but has already been called. WARNING: Removing all methods of # I think I asked this question long ago; I don't think I got any "satisfactory answer" (like "set variable FOO to BAR..." :-) Are these warnings needed at all? -- 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. A computer scientist is someone who fixes things that aren't broken. From Emmanuel.Mazer@inrialpes.fr Thu Jan 14 00:35:03 1999 Received: from ebene.inrialpes.fr (ebene.inrialpes.fr [194.199.18.70]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id AAA18972 for ; Thu, 14 Jan 1999 00:35:02 -0800 (PST) Received: from cephee.inrialpes.fr (cephee.inrialpes.fr [194.199.21.23]) by ebene.inrialpes.fr (8.8.5/8.8.5) with ESMTP id JAA13671 for ; Thu, 14 Jan 1999 09:43:03 +0100 (MET) Received: (from mazer@localhost) by cephee.inrialpes.fr (8.8.5/8.8.5) id JAA07079; Thu, 14 Jan 1999 09:43:01 +0100 (MET) From: Emmanuel Mazer MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <13981.44564.959083.608779@cephee.inrialpes.fr> Date: Thu, 14 Jan 1999 09:43:00 +0100 (MET) To: clisp-list@clisp.cons.org Subject: emacs X-Mailer: VM 6.63 under Emacs 19.34.1 Reply-To: Emmanuel.Mazer@inrialpes.fr I am new on this list. We are implementing a bayesian inference language called LAPLACE above Common lisp. I am very enthusiastic about CLISP and I would like to congratulate all the contributors. I would like to use clisp-1998-09-09 with emacs and get the basic commands to interact with clisp. The standard *inferior-lisp* mode is Ok but quite limited I spent some time trying ILISP-5.8 with clisp It looks promising but I was not abble to run it smoothly. For example - Ilisp will get lost if I load a file with some errors on it. - I will not be abble to send a "continue" or a "unwind" to clisp. - ^C-a will not give me the list of arguments ....... Now my questions. - Is there a way to configure ILIPS to get a smooth interaction (not the configuration in the standard distribution) - Is there better way to use emacs with Clisp. Thanks Emmanuel Mazer Equipe GRAVIR Projet SHARP INRIA Rhone Alpes Zirst 655 Avenue de l'Europe 38330 Montbonnot France tel: 04 76 61 52 20 fax: 04 76 61 52 10 e-mail: Emmanuel.Mazer@imag.fr http://www.inrialpes.fr/sharp/people/mazer/ From Emmanuel.Dumas@cyceron.fr Thu Jan 14 03:17:12 1999 Received: from cyceron.fr (ns2.cyceron.fr [192.93.44.1]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id DAA20477 for ; Thu, 14 Jan 1999 03:17:11 -0800 (PST) Received: from cyceron.fr (ness.cyceron.fr [192.93.44.27]) by cyceron.fr (8.8.8/8.8.8) with ESMTP id LAA00185 for ; Thu, 14 Jan 1999 11:25:12 GMT Sender: dumas@cyceron.fr Message-ID: <369DD416.A5E8AA53@cyceron.fr> Date: Thu, 14 Jan 1999 12:25:10 +0100 From: Emmanuel Dumas Organization: CNRS, UMR 6551 X-Mailer: Mozilla 4.5 [en] (X11; I; IRIX 6.3 IP32) X-Accept-Language: en MIME-Version: 1.0 To: clisp-list@clisp.cons.org Subject: clisp-1999-01-08 on SGI IRIX 6.3 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hello I'm trying to install clisp on SGI O2 IRIX 6.3, and I've many problems: During configuration Probleme with checking whether signal handlers need to be reinstalled... checking whether signals are blocked when signal handlers are entered... and every thing with signal I've had "volatile" (int sigset -> volatile siget;) in src/configure at line 4879, 4960, 4961, 5056, 5057, 5238, 5339 and it can check signal. Now the script end with this message ... ../../ffcall/avcall/tests.c:847: warning: cast from pointer to integer of different size ../../ffcall/avcall/tests.c:847: warning: cast to pointer from integer of different size gcc -O3 tests.o avcall.o structcpy.o -o tests ./tests > tests.out uniq -u < tests.out > tests.output.mips-sgi-irix6.3 test '!' -s tests.output.mips-sgi-irix6.3 *** Error code 1 (bu21) I've tried to continued installation 11:50 ness 567 Ready ./makemake --with-readline --with-gettext > Makefile ok make config.lsp And news problemes come at this point: make ... cd sigsegv && make && make check ln ../../sigsegv/sigsegv.h sigsegv.h || cp ../../sigsegv/sigsegv.h sigsegv.h gcc -O4 -I. -I../../sigsegv -c ../../sigsegv/handler.c ../../sigsegv/handler.c: In function `sigsegv_handler': ../../sigsegv/handler.c:132: warning: cast to pointer from integer of different size gcc -O4 -I. -I../../sigsegv -c ../../sigsegv/dispatcher.c rm -f libsigsegv.a ar rc libsigsegv.a handler.o dispatcher.o true libsigsegv.a gcc -O4 -I. -I../../sigsegv ../../sigsegv/test1.c libsigsegv.a -o test1 gcc -O4 -I. -I../../sigsegv ../../sigsegv/test2.c libsigsegv.a -o test2 gcc -O4 -I. -I../../sigsegv ../../sigsegv/test3.c libsigsegv.a -o test3 ld: WARNING 84: libsigsegv.a is not used for resolving any symbol. ./test1 *** Error code 1 (bu21) make: *** [sigsegv/sigsegv.h] Error 1 Before looking in code errors, has anybody a suggestion ? Emmanuel -- Emmanuel DUMAS, Centre CYCERON, CNRS UMR 6551, Caen France Emmanuel.Dumas@cyceron.fr http://www.cyceron.fr/~dumas/ Tel: 33 (0) 231 47 02 07 From sds@eaglets.com Thu Jan 14 06:10:55 1999 Received: from mail.eaglets.com ([208.235.77.228]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id GAA21928 for ; Thu, 14 Jan 1999 06:10:43 -0800 (PST) Received: by mail.eaglets.com from localhost (router,SLMail V3.1); Thu, 14 Jan 1999 09:17:22 -0500 Received: by mail.eaglets.com from eho.eaglets.com [208.235.77.238] (SLmail 3.1.2948 (Release Build)); Thu, 14 Jan 1999 09:17:22 -0500 Received: (from sds@localhost) by eho.eaglets.com (8.9.1a/8.9.1) id JAA05216; Thu, 14 Jan 1999 09:18:04 -0500 To: recipients of list Subject: Re: emacs References: <13981.44564.959083.608779@cephee.inrialpes.fr> 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: Emmanuel Mazer's message of "Thu, 14 Jan 1999 00:36:01 -0800 (PST)" Date: 14 Jan 1999 09:18:04 -0500 Message-ID: Lines: 325 X-Mailer: Gnus v5.5/Emacs 20.3 >>>> In message <13981.44564.959083.608779@cephee.inrialpes.fr> >>>> On the subject of "emacs" >>>> Sent on Thu, 14 Jan 1999 00:36:01 -0800 (PST) >>>> Honorable Emmanuel Mazer writes: >> >> I would like to use clisp-1998-09-09 with emacs and get >> the basic commands to interact with clisp. you might want to try the latest release, clisp-1999-01-08. >> The standard *inferior-lisp* mode is Ok but quite limited >> >> I spent some time trying ILISP-5.8 with clisp It looks promising >> but I was not abble to run it smoothly. For example I do not use ilisp as it rebinds keys reserved for the user. >> - ^C-a will not give me the list of arguments this is probably because CLISP doesn't have `arglist' exported. try: (defun arglist (fn) "Return the signature of the function." (values (read-from-string (multiple-value-call #'sys::describe-signature nil (sys::function-signature fn))))) >> - Is there a way to configure ILIPS to get a smooth interaction (not >> the configuration in the standard distribution) I don't think there is a way to use ILIPS comfortably: it rebinds even "]" - which is bound to `self-insert-command'! >> - Is there better way to use emacs with Clisp. I use the standard Emacs inferior-lisp mode. you might like my setup: it allows several lisp buffers. Note that it binds *user* keys - like C-c y (see `sds-lisp-defs'), since it's a user code, not (yet?) intended for distribution. elisp code is appended. -- 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. A computer scientist is someone who fixes things that aren't broken. (defvar allegro-program (eval-when-compile (expand-file-name "~/bin/acl")) "was: /usr/local/acl4.3/bin/pb_cl") (defvar clisp-program (eval-when-compile (if sds-winnt (expand-file-name "~/bin/cli.bat") (expand-file-name "~/bin/cli"))) "was: /usr/local/bin/clisp -q -p CL-USER -I -i ~/eagle/base") (defvar cmucl-program (eval-when-compile (expand-file-name "~/bin/cmu"))) (defvar gcl-program "/usr/local/bin/gcl -f ~/eagle/base.lsp") (defvar corman-program (eval-when-compile (expand-file-name "~/bin/ccl.bat"))) (setq lisp-indent-function 'common-lisp-indent-function) (add-hook 'lisp-mode-hook 'sds-standard-hook) (add-hook 'inferior-lisp-mode-hook 'sds-standard-hook) (defvar sds-lisp-defs '(("\C-cr" . sds-lisp-remake) ("\C-h\C-a" . sds-lisp-apropos) ("\C-hA" . sds-lisp-all-doc) ("\C-cp" . sds-lisp-prev-command) ("\C-ct" . (lambda () (interactive) (call-process "make" nil nil nil "TAGS"))) ("\C-c\C-m" . compile) ("\C-cv" . sds-defvar-setq) ("\C-cy" . "yes\n") ("\C-cx" . "no\n") ("\C-ca" . abort) ("\C-cS" . stack) ("\C-cs" . step) ("\C-cn" . next) ("\C-cu" . up) ("\C-cd" . dn) ("\C-cw" . where) ("\C-cC" . continue) ("\C-co" . over)) "*The list of definitions for lisp modes.") (dolist (pa sds-lisp-defs) (define-key shared-lisp-mode-map (car pa) (if (or (functionp (cdr pa)) (and (symbolp (cdr pa)) (fboundp (cdr pa)))) (cdr pa) `(lambda () (interactive) (sds-lisp-send (sds-lisp-com ',(cdr pa))))))) (define-key lisp-mode-map "\C-cc" 'sds-lisp-compile) (define-key lisp-mode-map "\C-cl" 'sds-load-compiled) (define-key lisp-mode-map [(meta tab)] 'complete-tag) (eval-after-load "inf-lisp" '(define-key inferior-lisp-mode-map [(meta tab)] 'complete-tag)) (autoload 'common-lisp-indent-function "cl-indent" "Common Lisp indent.") (autoload 'common-lisp-hyperspec "hyperspec" "Get doc on ANSI CL (naggum)" t) (setq common-lisp-hyperspec-root "file:/usr/doc/lisp/HyperSpec/" common-lisp-hyperspec-browser-function ; 'browse-url-w3 (lambda (&rest args) (let ((browse-url-new-window-p nil)) (apply 'browse-url-netscape args)))) (define-key help-map "\C-s" 'common-lisp-hyperspec) (setq tags-apropos-use-obarray '(("Common Lisp" common-lisp-hyperspec common-lisp-hyperspec-obarray) ("SCWM" scwm-documentation scwm-obarray))) (put 'defconst 'common-lisp-indent-function '(4 2 2 2)) (put 'with-output-to-string 'common-lisp-indent-function '(4 2)) (defun sds-standard-hook () "Turn on `abbrev-mode', set `comment-column' and `case-fold-search'." (setq abbrev-mode t comment-column 32 case-fold-search t)) (defun sds-lisp-all-doc (obj) "Get all the docs." (interactive (interactive-token "All docs for")) (process-send-string (sds-inf-lisp-proc) (format "(all-docs '%s)\n" obj))) (defvar sds-il-list nil "The list (stack) of the inferior lisps.") (defun sds-il-list () "Return `sds-il-list', removing the dead buffers." (setq sds-il-list (delete-duplicates (delete-if-not 'buffer-live-p (delete nil sds-il-list))))) (defun sds-buf-proc-name (&optional buf-or-proc) "Return the name of the process running in the buffer or process." (file-name-base (car (process-command (if (processp buf-or-proc) buf-or-proc (get-buffer-process (or buf-or-proc (current-buffer)))))))) (defun sds-rename-buf-proc (buf) (when buf (with-current-buffer buf (rename-buffer (concat "*" (sds-buf-proc-name buf) "*") t)))) (defun sds-rename-buf-il (buf) (when buf (with-current-buffer buf (rename-buffer inferior-lisp-buffer)))) (defun sds-il-push (&optional cmd) "Run a new inferior lisp." (interactive) (let ((buf (when (boundp 'inferior-lisp-buffer) (get-buffer inferior-lisp-buffer)))) (when (and buf (get-buffer-process buf)) (sds-rename-buf-proc buf) (sds-il-list) (push buf sds-il-list)) (inferior-lisp (or cmd inferior-lisp-program)))) (defun sds-cli () (interactive) (sds-il-push clisp-program)) (defun sds-clb () (interactive) (sds-il-push (concat clisp-program " b"))) (defun sds-acl () (interactive) (sds-il-push allegro-program)) (defun sds-cmu () (interactive) (sds-il-push cmucl-program)) (defun sds-ccl () (interactive) (sds-il-push corman-program)) (defun sds-swap-buf () "Change the buffer into the next best thing. If the buffer is in `sds-il-list', make it `inferior-lisp-buffer'. If the buffer is `inferior-lisp-buffer', put it into the end of `sds-il-list'. Otherwise, switch buffer to `other-buffer'." (interactive) (let ((buf (current-buffer)) tail (ilb (if (boundp 'inferior-lisp-buffer) (get-buffer inferior-lisp-buffer)))) (cond ((eq ilb buf) (unless (sds-il-list) (error "no other inferior lisps")) (setf (cdr (last sds-il-list)) (list buf)) (sds-rename-buf-proc buf) (sds-rename-buf-il (pop sds-il-list)) (iconify-frame (selected-frame)) ; (sds-quit-buffer buf) (pop-to-buffer inferior-lisp-buffer)) ((setq tail (member buf (sds-il-list))) (when ilb (sds-rename-buf-proc (setf (car tail) ilb))) (sds-rename-buf-il buf)) ((switch-to-buffer (other-buffer)))))) (defun sds-il-pop () "Get back to the previous inferior lisp, killing the most recent one." (interactive) (let ((proc (get-buffer-process inferior-lisp-buffer))) (when proc (kill-process proc))) (kill-buffer inferior-lisp-buffer) (sds-rename-buf-il (pop sds-il-list))) (defun sds-il-restart () "Restart the current inferior-lisp." (interactive) (let* ((proc (get-buffer-process inferior-lisp-buffer)) (com (apply 'concat (mapcon (lambda (st) (list (car st) (if (cdr st) " "))) (process-command proc))))) (delete-process proc) (inferior-lisp com))) (defun sds-il-restart-save (buf) "Save the buffer and restart the corresponding CL." (interactive (list (let ((db (if (member (current-buffer) (sds-il-list)) (buffer-name (current-buffer)) inferior-lisp-buffer))) (completing-read "Which CL process? " (mapcar 'list (cons inferior-lisp-buffer (mapcar 'buffer-name sds-il-list))) nil t db nil db)))) (setq buf (get-buffer buf)) (assert (and buf (buffer-live-p buf))) (let* ((cmd (car (process-command (get-buffer-process buf)))) (fl (expand-file-name (format "%s-%s" (file-name-base cmd) (format-time-string "%Y-%0m-%0d.log")) "~/eagle"))) (set-buffer buf) (kill-process (get-buffer-process buf)) (sds-remove-trailing-blanks) (write-region 1 (point-max) fl t) (kill-buffer buf) (sds-il-push cmd))) (defun sds-inf-lisp-proc () "Return the current inferior lisp process object." (or (ignore-errors (when (featurep 'inf-lisp) (inferior-lisp-proc))) (ignore-errors (when (featurep 'ilisp) (ilisp-process))))) (defvar sds-lisp-commands '(("cli" "acl" "cmu") (stack "(lisp:show-stack)" "t" "t") (abort "abort\n" ":res\n" "q\n") (step "step\n" ":sc\n" "step\n") (next "next\n" ":so\n" "step\n") (up "up\n" ":up\n" "d\n") (dn "down\n" ":dn\n" "u\n") (cont "continue\n" ":cont\n" "restart\n") (where "where\n" ":zo\n" "pp\n") (over "over\n" ":so\n" "step\n")) "The commands and their translations.") (defun sds-lisp-com (str) "Return a command to be sent to the `sds-inf-lisp-proc'." (if (stringp str) str (nth (or (position (sds-buf-proc-name (sds-inf-lisp-proc)) (car sds-lisp-commands) :test 'string=) 0) (cdr (assq str (cdr sds-lisp-commands)))))) (defun sds-lisp-send (com) "Send the command to the inferior list." (process-send-string (sds-inf-lisp-proc) com)) (defun sds-lisp-remake (&optional arg) "Remake this file or all when given a prefix arg." (interactive "P") (let ((buf (file-name-base (buffer-file-name)))) (save-some-buffers) (display-buffer (process-buffer (sds-inf-lisp-proc))) (if (or arg (null buf)) (sds-lisp-send "(make)\n") (sds-lisp-send (format "(make :target \"%s\"\n" buf))))) (defun sds-get-tag-file-list () "Return the list of the tagged files." (save-current-buffer (visit-tags-table-buffer) tags-table-files)) (defun sds-lisp-reload () "Reload all files." (interactive) (save-some-buffers) (process-send-string (sds-inf-lisp-proc) (concat "(map nil #'load '(" (mapconcat (lambda (fl) (if (string-match "\\(.*\\)\\.lsp$" fl) (concat "\"" (match-string 1 fl) "\""))) (sds-get-tag-file-list) " ") "))\n"))) (defun sds-defvar-setq () "Send this defvar as a setq." (interactive) (save-excursion (let (pt0 pt1 pt2 pt3 com skip) (beginning-of-defun) (forward-char 1) (setq skip (and (not (eq major-mode 'emacs-lisp-mode)) (or (looking-at "def\\(custom\\|const\\)\\W")))) (forward-word 1) (setq pt0 (point)) (forward-sexp 1) (setq pt1 (point)) (when skip (forward-sexp 1)) (setq pt2 (point)) (forward-sexp 1) (setq pt3 (point)) (setq com (concat "(setq " (buffer-substring-no-properties pt0 pt1) " " (buffer-substring-no-properties pt2 pt3) ")\n")) (if (eq major-mode 'emacs-lisp-mode) (eval (car (read-from-string com))) (sds-lisp-send com))))) (defun sds-lisp-prev-command (ins) "Redo the previous function call. With prefix arg, insert it too." (interactive "P") (let* ((buf (process-buffer (sds-inf-lisp-proc))) (arr (cddr (with-current-buffer buf comint-input-ring))) (idx (1- (length arr)))) (while (and (> idx 0) (not (and (stringp (aref arr idx)) (string-match "\\`[ \t]*(" (aref arr idx))))) (setq idx (1- idx))) (cond (ins (with-current-buffer buf (goto-char (point-max)) (insert (aref arr idx)) (comint-send-input))) (t (message "Sending `%s'" (aref arr idx)) (process-send-string buf (concat (aref arr idx) "\n")))))) (defun sds-lisp-apropos (symb) (interactive (interactive-token "Apropos")) (sds-lisp-send (format "(let ((sy \"%s\")) (format t \"~%% *** Apropos: ~s:~%%\" sy) (apropos sy) (values))\n" symb))) (defun sds-load-compiled (&optional arg) "Load the compiled version of this file, time with optional arg." (interactive "P") (process-send-string (sds-inf-lisp-proc) (concat (if arg "(time " "") "(load (compile-file-pathname \"" (buffer-file-name) "\"))" (if arg ")" "") "\n"))) (defun sds-lisp-compile (&optional arg) "Compile this lisp file, load with optional arg or if confirmed." (interactive "P") (if (and (buffer-modified-p) (y-or-n-p "Save buffer first? ")) (save-buffer)) (process-send-string (sds-inf-lisp-proc) (let ((fn (buffer-file-name))) (concat "(progn (compile-file \"" fn "\" :print t :verbose t)" (if arg (concat "(load (compile-file-pathname \"" fn "\"))") "") ")\n"))) (if (and (not arg) (y-or-n-p "Load the compiled file? ")) (sds-load-compiled))) (defun sds-display-il-buffer (buf) (let* ((special-display-frame-alist (append (assoc-default inferior-lisp-buffer special-display-buffer-names 'string= special-display-frame-alist) special-display-frame-alist)) (special-display-buffer-names (cons (buffer-name buf) special-display-buffer-names))) (display-buffer buf))) From vkyr@lavielle.com Thu Jan 14 07:56:36 1999 Received: from wildfire.lavielle.com (wildfire.lavielle.com [194.64.21.43]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id HAA23061 for ; Thu, 14 Jan 1999 07:56:35 -0800 (PST) Received: from lavielle.com (localhost [127.0.0.1]) by wildfire.lavielle.com (8.8.8/8.8.8) with ESMTP id RAA24650 for ; Thu, 14 Jan 1999 17:04:38 +0100 (MET) Sender: vkyr@wildfire.lavielle.com Message-ID: <369E1595.A74AEA53@lavielle.com> Date: Thu, 14 Jan 1999 17:04:37 +0100 From: Valentino Kyriakides Organization: Lavielle X-Mailer: Mozilla 4.04 [en] (X11; I; SunOS 5.6 sun4m) MIME-Version: 1.0 To: clisp-list@seagull.cons.org Subject: Re: emacs References: <13981.44564.959083.608779@cephee.inrialpes.fr> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Emmanuel Mazer wrote: > ... > > I spent some time trying ILISP-5.8 with clisp It looks promising > but I was not abble to run it smoothly. For example > > - Ilisp will get lost if I load a file with some errors on it. > - I will not be abble to send a "continue" or a "unwind" > to clisp. Yes, these are some of the (sadly said) well known ilisp problems. The regularexpression matching for some You may try the following for clisp in the "ilisp-chs.el" file instead of the original ones, see /usr/local/lib/xemacs-20.4/lisp/ilisp assuming you are using xemacs: -------------------------------------------------- (defun clisp-hs-check-prompt (old new) "Compare the break level printed at the beginning of the prompt." (let* ((break-pattern "\\([0-9]+\\)\\. Break> ") (was-in-break (and old (string-match break-pattern old))) (old-level (if was-in-break (string-to-int (match-string 1 old)) 0)) (is-in-break (string-match break-pattern new)) (new-level (if is-in-break (string-to-int (match-string 1 new)) 0))) (<= new-level old-level))) ;;; (defdialect clisp-hs "CLISP H.S." clisp (setq ilisp-load-or-send-command "(and (or (print \"%s\") t) (load \"%s\"))" ilisp-error-regexp "^\\*\\* " ilisp-binary-extension "fas" ilisp-block-command "(progn %s)" ilisp-save-command "(progn (ILISP:ilisp-save) %s)" comint-prompt-regexp "\\(^[0-9]*\\.[ \t]*Break[^>]*>\\)\\|^[^-> ]*> " ilisp-error-regexp "ILISP:[^\"]*\\|\\(^\\*\\*\\* \\- \\)" comint-interrupt-regexp "^\\*\\*\\* \\- .*: User Break" ilisp-reset "(sys::debug-unwind)" comint-fix-error "(sys::debug-unwind)" comint-continue "(sys::debug-continue)" comint-prompt-status (function (lambda (old line) (comint-prompt-status old line 'clisp-hs-check-prompt))))) (if (not clisp-hs-program) (setq clisp-hs-program "clisp")) (provide 'ilisp-chs) --------------------------------------------- You should also try out the "ilisp-easy-menu.el", which fixes some ilisp menu problems and gives much better access to specific ilisp functions (it's easily customizable). You can get it from: http://www.uni-koblenz.de/~schauer/uniemacs.html > - ^C-a will not give me the list of arguments > ...... > I think this is a problem of clisp's arglist and not an ilisp problem (?). > Now my questions. > > - Is there a way to configure ILIPS to get a smooth interaction (not > the configuration in the standard distribution) Well, if you have the mood, you can delve into the ilisp elisp-sources andtry to change or customize it for your needs. However, you will need some Emacs/Elisp knowledge to do so. > - Is there better way to use emacs with Clisp. > Hmm, I don't think so. The only alternative I know of is the use of the standardEmacs inferior-lisp mode. Greetings VKyr -- Valentino Kyriakides Lavielle EDV Systemberatung GmbH & Co. Tel.: +49(0)40 / 65 80 8 - 997 Lotharstrasse 2b, D-22041 Hamburg, Germany Fax.: +49(0)40 / 65 808-202 http://www.lavielle.com/ mailto: vkyr@lavielle.com From vkyr@lavielle.com Thu Jan 14 08:33:33 1999 Received: from wildfire.lavielle.com (wildfire.lavielle.com [194.64.21.43]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id IAA23621 for ; Thu, 14 Jan 1999 08:33:32 -0800 (PST) Received: from lavielle.com (localhost [127.0.0.1]) by wildfire.lavielle.com (8.8.8/8.8.8) with ESMTP id RAA27768 for ; Thu, 14 Jan 1999 17:41:35 +0100 (MET) Sender: vkyr@wildfire.lavielle.com Message-ID: <369E1E3E.773B8471@lavielle.com> Date: Thu, 14 Jan 1999 17:41:35 +0100 From: Valentino Kyriakides Organization: Lavielle X-Mailer: Mozilla 4.04 [en] (X11; I; SunOS 5.6 sun4m) MIME-Version: 1.0 To: clisp-list@seagull.cons.org Subject: Re: emacs References: <369E1595.A74AEA53@lavielle.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Valentino Kyriakides wrote: > ... > > Yes, these are some of the (sadly said) well known ilisp problems. The > regularexpression matching for some > ... Ooopps, sorry, I've dropped the above sentence. It should read: The regularexpression matching for clisp's "continue" and "unwind" are wrong defined in the ILISP elisp sources. *mea culpa* -- Valentino Kyriakides Lavielle EDV Systemberatung GmbH & Co. Tel.: +49(0)40 / 65 80 8 - 997 Lotharstrasse 2b, D-22041 Hamburg, Germany Fax.: +49(0)40 / 65 808-202 http://www.lavielle.com/ mailto: vkyr@lavielle.com From kehr@iti.informatik.tu-darmstadt.de Sat Jan 16 03:55:44 1999 Received: from sun36.hrz.tu-darmstadt.de (root@mailserver2.hrz.tu-darmstadt.de [130.83.22.129]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id DAA20326 for ; Sat, 16 Jan 1999 03:55:43 -0800 (PST) Received: from spelunke.iti.informatik.tu-darmstadt.de (spelunke.iti.informatik.tu-darmstadt.de [130.83.5.19]) by sun36.hrz.tu-darmstadt.de (8.9.1a/8.9.1) with ESMTP id NAA18403 for ; Sat, 16 Jan 1999 13:03:41 +0100 (MET) Received: from spirit.iti.informatik.tu-darmstadt.de (spirit.iti.informatik.tu-darmstadt.de [130.83.5.38]) by spelunke.iti.informatik.tu-darmstadt.de (8.9.1a/8.9.1) with ESMTP id NAA18150 for ; Sat, 16 Jan 1999 13:03:46 +0100 Received: (from kehr@localhost) by spirit.iti.informatik.tu-darmstadt.de (8.9.1a/8.9.1) id NAA07009; Sat, 16 Jan 1999 13:03:45 +0100 (MET) Date: Sat, 16 Jan 1999 13:03:45 +0100 (MET) Message-Id: <199901161203.NAA07009@spirit.iti.informatik.tu-darmstadt.de> From: Roger Kehr MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: clisp-mailing-list Subject: Problems with (PARSE-NAMESTRING "/.../foo") X-Mailer: VM 6.32 under 19.15p5 XEmacs Lucid Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit Hello out there, I've a problem with PARSE-NAMESTRING in CLISP 1996-05-30. I don't know if its still present in more recent versions of CLISP. In a particular DCE/DFS environment there exist path names of the form '/.../dce.rz.uni-karlsruhe.de/' If one asks (parse-namestring "/.../foo") the following is returned: > (describe (parse-namestring "/.../foo")) Description of #"/**/foo" This is a pathname, with the following components: DIRECTORY = /**/ NAME = foo Hence the '...' part is interpreted as a wildcard which is wrong in the context of this DFS pathname. As far as I have understood from the pathname.d source file this behaviour is intended, but I'm not sure about this issue. In contrast, other Lisp favours behave differently: ALLEGRO CL: =========== Allegro CL 4.3 [Linux/X86; R1] (12/11/96 1:33) Copyright (C) 1985-1996, Franz Inc., Berkeley, CA, USA. All Rights Reserved. ;; Optimization settings: safety 1, space 1, speed 1, debug 2. ;; For a complete description of all compiler switches given the ;; current optimization settings evaluate (EXPLAIN-COMPILER-SETTINGS). USER(1): (describe (parse-namestring "/.../foo")) #p"/.../foo" is a structure of type PATHNAME. It has these slots: HOST NIL DEVICE :UNSPECIFIC DIRECTORY (:ABSOLUTE "...") NAME "foo" TYPE NIL VERSION :UNSPECIFIC NAMESTRING "/.../foo" HASH 28632 CMU CL: ======= CMU Common Lisp 18a, running on spirit Send bug reports and questions to your local CMU CL maintainer, or to cmucl-bugs@cs.cmu.edu. Loaded subsystems: Python 1.0, target SPARCstation/Solaris 2 CLOS based on PCL version: September 16 92 PCL (f) #p"/.../foo" is a structure of type PATHNAME. HOST: #. DEVICE: NIL. DIRECTORY: (:ABSOLUTE "..."). NAME: "foo". TYPE: NIL. VERSION: :NEWEST. As one can see these dialects do the "correct" parsing that I would need. Are there any ways to cirvumvent this behaviour or must I write some code that does the right patch? Cheers, Roger -- ====================================================================== Roger Kehr kehr@iti.informatik.tu-darmstadt.de Computer Science Department Darmstadt University of Technology From mjkoskin@sci.fi Mon Jan 18 21:24:13 1999 Received: from pefletti.saunalahti.fi (root@mail.sci.fi [195.74.0.53]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id VAA24521 for ; Mon, 18 Jan 1999 21:24:11 -0800 (PST) Received: from sci.fi (MDCLIV.dyn.saunalahti.fi [195.197.5.154]) by pefletti.saunalahti.fi (8.9.1/8.9.1) with ESMTP id HAA16152 for ; Tue, 19 Jan 1999 07:32:53 +0200 (EET) Sender: root@pefletti.saunalahti.fi Message-ID: <36A418A5.76BDEB17@sci.fi> Date: Tue, 19 Jan 1999 07:31:17 +0200 From: Matti Koskinen X-Mailer: Mozilla 4.07 [en] (X11; I; Linux 2.0.35 i586) MIME-Version: 1.0 To: Multiple recipients of list Subject: clisp-rpm Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit hello all i have rh 5.1 and tried new clisp-1999.01.08-2.i386.rpm, but i get error "can't resolve symbol __register_frame_info" what to do?? i can't build common music package with the older 1998-08-28 clisp and got advice to try the newer version of clisp. most errors building cm come from loop-clauses. before moving to redhat, i had libc5-system and under that cm+clisp worked without pain. any hints thanks -matti mjkoskin@sci.fi From wlestes@wlestes.uncg.edu Tue Jan 19 05:39:33 1999 Received: from wlestes.uncg.edu (wlestes.uncg.edu [152.13.173.71]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id FAA29151 for ; Tue, 19 Jan 1999 05:39:32 -0800 (PST) From: wlestes@wlestes.uncg.edu Received: (from wlestes@localhost) by wlestes.uncg.edu (8.8.7/8.8.7) id JAA02159; Tue, 19 Jan 1999 09:48:17 -0500 Date: Tue, 19 Jan 1999 09:48:17 -0500 Message-Id: <199901191448.JAA02159@wlestes.uncg.edu> X-Authentication-Warning: wlestes.uncg.edu: wlestes set sender to wlestes@wlestes.uncg.edu using -f To: clisp-list@seagull.cons.org In-reply-to: <36A418A5.76BDEB17@sci.fi> (message from Matti Koskinen on Mon, 18 Jan 1999 21:27:42 -0800 (PST)) Subject: Re: clisp-rpm References: <36A418A5.76BDEB17@sci.fi> > i have rh 5.1 and tried new clisp-1999.01.08-2.i386.rpm, > but i get error "can't resolve symbol __register_frame_info" > what to do?? this is a library/compiler issue (glibc/egcs (i dont remember which.). an easy way out is to fetch the src.rpm (or the source tarball which contains a spec file) and rebuild clisp on your system. --will From sds@eaglets.com Tue Jan 19 06:30:03 1999 Received: from mail.eaglets.com ([208.235.77.228]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id GAA29891 for ; Tue, 19 Jan 1999 06:30:00 -0800 (PST) Received: by mail.eaglets.com from localhost (router,SLMail V3.1); Tue, 19 Jan 1999 09:37:08 -0500 Received: by mail.eaglets.com from eho.eaglets.com [208.235.77.238] (SLmail 3.1.2948 (Release Build)); Tue, 19 Jan 1999 09:37:08 -0500 Received: (from sds@localhost) by eho.eaglets.com (8.9.1a/8.9.1) id JAA16886; Tue, 19 Jan 1999 09:35:16 -0500 To: recipients of list Subject: Re: clisp-rpm References: <36A418A5.76BDEB17@sci.fi> 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: Matti Koskinen's message of "Mon, 18 Jan 1999 21:25:19 -0800 (PST)" Date: 19 Jan 1999 09:35:15 -0500 Message-ID: Lines: 23 X-Mailer: Gnus v5.5/Emacs 20.3 >>>> In message <36A418A5.76BDEB17@sci.fi> >>>> On the subject of "clisp-rpm" >>>> Sent on Mon, 18 Jan 1999 21:25:19 -0800 (PST) >>>> Honorable Matti Koskinen writes: >> >> i have rh 5.1 and tried new clisp-1999.01.08-2.i386.rpm, >> but i get error "can't resolve symbol __register_frame_info" this is because I built the RPM on a RawHide system, with glibc-2.0.108. you have to upgrade glibc to run the RPM. >> i can't build common music package with the older >> 1998-08-28 clisp and got advice to try the newer version >> of clisp. most errors building cm come from loop-clauses. yes, this version fixes many bugs in LOOP -- 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. Don't ascribe to malice what can be adequately explained by stupidity. From wnewman@netcom.com Tue Jan 19 10:19:27 1999 Received: from netcom18.netcom.com (wnewman@netcom18.netcom.com [192.100.81.131]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id KAA02955 for ; Tue, 19 Jan 1999 10:19:26 -0800 (PST) Received: (from wnewman@localhost) by netcom18.netcom.com (8.8.5-r-beta/8.8.5/(NETCOM v1.02)) id KAA23804; Tue, 19 Jan 1999 10:28:02 -0800 (PST) From: Bill Newman Message-Id: <199901191828.KAA23804@netcom18.netcom.com> Subject: problem with COMPILE-FILE :OUTPUT-FILE To: clisp-list@seagull.cons.org Date: Tue, 19 Jan 1999 10:28:02 -0800 (PST) In-Reply-To: from "Sam Steingold" at Jan 19, 99 06:30:25 am X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Is the result shown below the intended behavior of the :OUTPUT-FILE parameter of the COMPILE-FILE function? Bill Newman $ pwd /tmp/foo $ ls -lR total 4 drwxr-xr-x 2 newman users 1024 Jan 18 05:10 bar -rw-r--r-- 1 newman users 736 Jan 18 05:10 clisp-output-file-bug -rw-r--r-- 1 newman users 73 Jan 18 05:02 foo.lsp drwxr-xr-x 3 newman users 1024 Jan 18 05:05 objects bar: total 2 -rw-r--r-- 1 newman users 25 Jan 18 05:10 bletch.lisp -rw-r--r-- 1 newman users 25 Jan 18 05:05 bletch.lsp objects: total 1 drwxr-xr-x 2 newman users 1024 Jan 18 05:11 bar objects/bar: total 1 -rw-r--r-- 1 newman users 763 Jan 18 05:11 bletch.object $ clisp -q [1]> (lisp-implementation-version) "1999-01-08 (January 1999)" [2]> (defvar *pn* (make-pathname :defaults "objects/bar/bletch.object") ) *PN* [3]> *pn* #P"objects/bar/bletch.object" [4]> (compile-file "bar/bletch.lsp" :output-file *pn*) *** - nonexistent directory: #P"/tmp/foo/bar/objects/" 1. Break [5]> [6]> $ From rmz@dunk.follo.net Wed Jan 20 03:17:43 1999 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 DAA12456 for ; Wed, 20 Jan 1999 03:17:37 -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 MAA09128; Wed, 20 Jan 1999 12:26:22 +0100 (CET) Received: (from rmz@localhost) by dunk.follo.net (8.8.8/8.8.6) id MAA16955; Wed, 20 Jan 1999 12:26:21 +0100 (CET) Message-ID: <19990120122620.13755@follo.net> Date: Wed, 20 Jan 1999 12:26:20 +0100 From: Bjorn Remseth To: clisp-list@seagull.cons.org Cc: eivind@yes.no Subject: Re: Building 1998-09-09 under FreeBSD References: <199812221446.PAA26693@halles.ilog.fr> <19981222170611.15744@follo.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.89.1i In-Reply-To: <19981222170611.15744@follo.net>; from Bjorn Remseth on Tue, Dec 22, 1998 at 05:06:11PM +0100 Organization: Yes Interactive AS On Tue, Dec 22, 1998 at 05:06:11PM +0100, Bjorn Remseth wrote: > 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". Can you give some indication about what this bug is? We are assembling a CLISP port for the FreeBSD Port collection, and it would be convenient to know for exactly which versions we need to include the "-DNO_GENERATIONAL_GC" flag. Also. Is there any good reason why the "configure" script doesn't make the makefile directly? (Rmz) From vkyr@lavielle.com Wed Jan 20 10:07:47 1999 Received: from wildfire.lavielle.com (wildfire.lavielle.com [194.64.21.43]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id KAA16591 for ; Wed, 20 Jan 1999 10:07:45 -0800 (PST) Received: from lavielle.com (localhost [127.0.0.1]) by wildfire.lavielle.com (8.8.8/8.8.8) with ESMTP id TAA09157 for ; Wed, 20 Jan 1999 19:16:33 +0100 (MET) Sender: vkyr@wildfire.lavielle.com Message-ID: <36A61D7F.14F5E302@lavielle.com> Date: Wed, 20 Jan 1999 19:16:32 +0100 From: Valentino Kyriakides Organization: Lavielle X-Mailer: Mozilla 4.04 [en] (X11; I; SunOS 5.6 sun4m) MIME-Version: 1.0 To: clisp-list@seagull.cons.org Subject: Re: emacs References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sam Steingold wrote: > >>>> In message <13981.44564.959083.608779@cephee.inrialpes.fr> > >>>> On the subject of "emacs" > >>>> Sent on Thu, 14 Jan 1999 00:36:01 -0800 (PST) > >>>> Honorable Emmanuel Mazer writes: > >> > >> I would like to use clisp-1998-09-09 with emacs and get > >> the basic commands to interact with clisp. > > you might want to try the latest release, clisp-1999-01-08. > > >> The standard *inferior-lisp* mode is Ok but quite limited > >> > >> I spent some time trying ILISP-5.8 with clisp It looks promising > >> but I was not abble to run it smoothly. For example > > I do not use ilisp as it rebinds keys reserved for the user. > > >> - ^C-a will not give me the list of arguments > > this is probably because CLISP doesn't have `arglist' exported. > try: > > (defun arglist (fn) > "Return the signature of the function." > (values (read-from-string > (multiple-value-call #'sys::describe-signature nil > (sys::function-signature fn))))) > Yes, Sam is right! And after a closer look at the ilisp distribution I realized in the file "cl-ilisp.lisp" the following: ... ... (defun get-function-arglist (symbol) (let ((fun (symbol-function symbol))) (cond ((ilisp-generic-function-p symbol) (funcall (find-symbol "GENERIC-FUNCTION-PRETTY-ARGLIST" (or (find-package "PCL") *package*)) fun)) (t #+allegro (excl::arglist symbol) #+(or ibcl kcl ecl gcl) (help symbol) #+lucid (lucid::arglist symbol) #+lispworks (system::function-lambda-list symbol) #-(or allegro lucid kcl ibcl ecl) (documentation symbol 'function))))) ... ... Well, for CLISP the documentation function is used. With Sam's arglist function it should be something like: ... ... (defun get-function-arglist (symbol) ... ... #+clisp (lisp::arglist symbol) #-(or allegro lucid kcl ibcl ecl clisp) (documentation symbol 'function))))) ... ... Sam, did you fixed the export of arglist in the current/actual clisp distribution? Greetings from Hamburg, VKyr -- Valentino Kyriakides Lavielle EDV Systemberatung GmbH & Co. Tel.: +49(0)40 / 65 80 8 - 997 Lotharstrasse 2b, D-22041 Hamburg, Germany Fax.: +49(0)40 / 65 808-202 http://www.lavielle.com/ mailto: vkyr@lavielle.com From wnewman@netcom.com Thu Jan 21 10:34:43 1999 Received: from netcom9.netcom.com (wnewman@netcom9.netcom.com [192.100.81.119]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id KAA00627 for ; Thu, 21 Jan 1999 10:34:43 -0800 (PST) Received: (from wnewman@localhost) by netcom9.netcom.com (8.8.5-r-beta/8.8.5/(NETCOM v1.02)) id KAA08799 for clisp-list@clisp.cons.org; Thu, 21 Jan 1999 10:43:33 -0800 (PST) From: Bill Newman Message-Id: <199901211843.KAA08799@netcom9.netcom.com> Subject: crashing CLISP 19990108 To: clisp-list@clisp.cons.org Date: Thu, 21 Jan 1999 10:43:33 -0800 (PST) X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit I've found a way to crash CLISP 19990109 on my Linux 2.0.36 P200 system. To make it happen, I type (or at least paste) the forms below onto the command line. Then I repeat the last form until the system crashes. Sometimes it takes only two repetitions; sometimes it takes a dozen or so. I messed with it a little bit trying to make a file I could load which would cause the crash to happen. I wasn't successful. I repeated the crash under gdb in a compiled-with-debugging version of CLISP, and got a backtrace that didn't mean much to me. I've included the backtrace below in case it might be helpful to someone else. Bill Newman wnewman@netcom.com ------------------------------------------------------------------------------- (defmacro defenum ((&key (prefix "") (suffix "") (start 0) (step 1)) &rest identifiers) (let ((results nil) (index 0) (start (eval start)) (step (eval step))) (dolist (id identifiers) (when id (multiple-value-bind (root docs) (if (consp id) (values (car id) (cdr id)) (values id nil)) (push `(defconstant ,(intern (concatenate 'simple-string (string prefix) (string root) (string suffix))) ,(+ start (* step index)) ,@docs) results))) (incf index)) `(eval-when (compile load eval) ,@(nreverse results)))) (defconstant lowtag-bits 3 "Number of bits at the low end of a pointer used for type information.") (defenum (:suffix -type) even-fixnum function-pointer other-immediate-0 list-pointer odd-fixnum instance-pointer other-immediate-1 other-pointer) (defenum (:suffix -type :start (+ (ash 1 lowtag-bits) other-immediate-0-type) :step (ash 1 (1- lowtag-bits))) bignum ratio single-float double-float #+long-float long-float complex complex-single-float complex-double-float #+long-float complex-long-float simple-array simple-string simple-bit-vector simple-vector simple-array-unsigned-byte-2 simple-array-unsigned-byte-4 simple-array-unsigned-byte-8 simple-array-unsigned-byte-16 simple-array-unsigned-byte-32 simple-array-signed-byte-8 simple-array-signed-byte-16 simple-array-signed-byte-30 simple-array-signed-byte-32 simple-array-single-float simple-array-double-float #+long-float simple-array-long-float simple-array-complex-single-float simple-array-complex-double-float #+long-float simple-array-complex-long-float complex-string complex-bit-vector complex-vector complex-array code-header function-header closure-header funcallable-instance-header byte-code-function byte-code-closure dylan-function-header closure-function-header #-gengc return-pc-header #+gengc forwarding-pointer value-cell-header symbol-header base-char sap unbound-marker weak-pointer instance-header fdefn #+(or gengc gencgc) scavenger-hook ) ------------------------------------------------------------------------------- #0 sigsegv_handler_failed (address=0x2025714c) at spvw_sigsegv.d:36 #1 0x804afb2 in sigsegv_handler (fault_address=0x2025714c) at spvw_sigsegv.d:48 #2 0x80b89dd in sigsegv_handler () #3 0xbffff3bc in ?? () #4 0x8075d01 in read_delimited_list_recursive (stream_=0x401510ac, endch=0x14a7, ifdotted=0x686e86bf) at io.d:2368 #5 0x8075bab in read_delimited_list (stream_=0x401510ac, endch=0x14a7, ifdotted=0x686e86bf) at io.d:2311 #6 0x8076027 in C_lpar_reader () at io.d:2471 #7 0x80594da in funcall_subr (fun=0x80d5de2, args_on_stack=2) at eval.d:5391 #8 0x8058f20 in funcall (fun=0x80d5de2, args_on_stack=2) at eval.d:5017 #9 0x8075223 in read_macro (ch=0x1427, stream_=0x40151084) at io.d:1759 #10 0x8075dc3 in read_delimited_list_recursive (stream_=0x40151084, endch=0x14a7, ifdotted=0x686e86bf) at io.d:2384 #11 0x8075be8 in read_delimited_list (stream_=0x40151084, endch=0x14a7, ifdotted=0x686e86bf) at io.d:2315 #12 0x8076027 in C_lpar_reader () at io.d:2471 #13 0x80594da in funcall_subr (fun=0x80d5de2, args_on_stack=2) at eval.d:5391 #14 0x8058f20 in funcall (fun=0x80d5de2, args_on_stack=2) at eval.d:5017 #15 0x8075223 in read_macro (ch=0x1427, stream_=0x4015102c) at io.d:1759 #16 0x8075475 in read_internal (stream_=0x4015102c) at io.d:1881 #17 0x8075af6 in read_top (stream_=0x4015102c, whitespace_p=0x80d9595) at io.d:2248 #18 0x8075b55 in stream_read (stream_=0x4015102c, recursive_p=0x80d9595, whitespace_p=0x80d9595) at io.d:2278 #19 0x809359b in read_form () at debug.d:154 #20 0x80936c5 in C_read_eval_print () at debug.d:232 #21 0x80594da in funcall_subr (fun=0x80d591a, args_on_stack=2) at eval.d:5391 #22 0x8058f58 in funcall (fun=0x80daa41, args_on_stack=2) at eval.d:5024 #23 0x805b122 in interpret_bytecode_ (closure=0x201bfac9, codeptr=0x201bfa94, byteptr_in=0x201bfaa6 "ÅP\032.\001\024.\002\024.\003\024s\003\023.\004\024q\2350\005\037\002.\006Q\031\001\031\001") at eval.d:7016 #24 0x8059c49 in funcall_closure (closure=0x201bfac9, args_on_stack=0) at eval.d:5829 #25 0x8058f3b in funcall (fun=0x201bfac9, args_on_stack=0) at eval.d:5019 #26 0x80611ea in C_driver () at control.d:1987 #27 0x805b1c4 in interpret_bytecode_ (closure=0x201bfaf5, codeptr=0x201bfa4c, byteptr_in=0x201bfa5e "Å\017\001Ü1Tdú\e \002\013") at eval.d:7022 #28 0x8059c49 in funcall_closure (closure=0x201bfaf5, args_on_stack=0) at eval.d:5829 #29 0x8058f3b in funcall (fun=0x201bfaf5, args_on_stack=0) at eval.d:5019 #30 0x8093880 in driver () at debug.d:297 #31 0x8051a5f in main (argc=8, argv=0xbffffaa8) at spvw.d:2928 From vkyr@lavielle.com Thu Jan 21 10:53:54 1999 Received: from wildfire.lavielle.com (wildfire.lavielle.com [194.64.21.43]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id KAA00980 for ; Thu, 21 Jan 1999 10:53:53 -0800 (PST) Received: from lavielle.com (localhost [127.0.0.1]) by wildfire.lavielle.com (8.8.8/8.8.8) with ESMTP id UAA14039 for ; Thu, 21 Jan 1999 20:02:48 +0100 (MET) Sender: vkyr@wildfire.lavielle.com Message-ID: <36A779D7.53BBD74C@lavielle.com> Date: Thu, 21 Jan 1999 20:02:48 +0100 From: Valentino Kyriakides Organization: Lavielle X-Mailer: Mozilla 4.04 [en] (X11; I; SunOS 5.6 sun4m) MIME-Version: 1.0 To: clisp-list@seagull.cons.org Subject: ILISP fixes for CLISP References: <369E1E3E.773B8471@lavielle.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit After spending some time with ILISP I found the following wrong CLISP settings in it: -- I had to fix the regular expressions in the file 'ilisp-chs.el' for the clisp-hs defdialect. *Note* that the dialect to use for CLISP is called 'clisp-hs', which should *not* be mixed up with the generic ILISP defined 'clisp' common lisp dialect. The standard ILISP defined "clisp" dialect is not the same with the defined "clisp-hs" dialect! -- I had to add the missing 'ilisp-chs' dialect to the 'ilisp-mak.el' file in order to compile ILISP and make it to work correctly. See also the next point! -- I had to add the missing 'ilisp-chs' dialect loading to the 'ilisp.el' file, so that autoloading of the 'clisp-hs' dialect works correctly. -- I had to change the 'get-function-arglist' function in 'cl-ilisp.lisp', for a call to Sam's 'arglist' function, in order to use the ILISP argument stuff. -- I had to use Holger Schauer's 'ilisp-easy-menu.el' in order to have also an accessable ILISP-menu in any ILISP lisp buffers. After fixing/changing the above mentioned things, I had to do a make clean and recompile ILISP. Then I've setup my '.emacs' startup file to look like: ... ... (setq load-path (cons (expand-file-name "/usr/local/lib/ilisp-5.8/") load-path)) ;;; Load the ilisp-easy-menu prior to ilisp if you want to use it (load-library "ilisp-easy-menu") (require 'completer) (autoload 'clisp-hs "ilisp" "Inferior CLISP H.S." t) (setq clisp-hs-program "/usr/local/bin/clisp -I -q") ... ... ... and so on ... ... Then after ILISP/CLISP started up in emacs, I had to make a final "M-x ilisp-compile-inits"! So far, after making the described fixes/changes, ILISP behaves well in conjunction with CLISP. I tested this with Gnu Emacs, Xemacs, ILISP-5.8 and the actual CLISP versions under Solaris (Sparc + PC), Linux and NeXTstep. BTW, it also works quite well under WindowsNT. Greetings Valentino -- Valentino Kyriakides Lavielle EDV Systemberatung GmbH & Co. Tel.: +49(0)40 / 65 80 8 - 997 Lotharstrasse 2b, D-22041 Hamburg, Germany Fax.: +49(0)40 / 65 808-202 http://www.lavielle.com/ mailto: vkyr@lavielle.com From vkyr@lavielle.com Thu Jan 21 11:15:27 1999 Received: from wildfire.lavielle.com (wildfire.lavielle.com [194.64.21.43]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id LAA01420 for ; Thu, 21 Jan 1999 11:15:26 -0800 (PST) Received: from lavielle.com (localhost [127.0.0.1]) by wildfire.lavielle.com (8.8.8/8.8.8) with ESMTP id UAA15512 for ; Thu, 21 Jan 1999 20:24:18 +0100 (MET) Sender: vkyr@wildfire.lavielle.com Message-ID: <36A77EE2.F8B58F7@lavielle.com> Date: Thu, 21 Jan 1999 20:24:18 +0100 From: Valentino Kyriakides Organization: Lavielle X-Mailer: Mozilla 4.04 [en] (X11; I; SunOS 5.6 sun4m) MIME-Version: 1.0 To: clisp-list@seagull.cons.org Subject: clisp integrated inspect? References: <199810162110.XAA00824@jaures.ilog.fr> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Some long time ago Bruno Haible wrote: > Vassili Bykov has written an INSPECT command > for Common Lisp. It works nicely in CLISP and can be downloaded from > > ftp://ftp2.cons.org/pub/lisp/clisp/contrib/inspect1.lsp.gz > > Another INSPECT implementation is in > > ftp://ftp2.cons.org/pub/lisp/clisp/contrib/inspect2.lsp.gz > > inspect1 runs in any tty or xterm, whereas inspect2 uses your web > browser as a display engine. Both are under GPL license. > > They are not yet integrated into CLISP - sorry. > Both INSPECTs (Vassili Bykov's and Bruno's) are quite nice! However, Vassili Bykov's one doesn't work if it is called from an ILISP menu, since it is an interactive one (I can't pass after a menu call to it a direct 'q' for quit). But if used in a listener it is a fun to use. Bruno's, which is also neat, doesn't terminate gracefully from inside of my OmniWeb browser, so I always have to force an emergency break from the inside of clisp. I made some changes to Bruno's INSPECT, so that it runs in any tty or xterm instead of a web browser. Will some INSPECT be now integrated into clisp? Valentino -- Valentino Kyriakides Lavielle EDV Systemberatung GmbH & Co. Tel.: +49(0)40 / 65 80 8 - 997 Lotharstrasse 2b, D-22041 Hamburg, Germany Fax.: +49(0)40 / 65 808-202 http://www.lavielle.com/ mailto: vkyr@lavielle.com From hoehle@zeus.gmd.de Fri Jan 22 02:13:59 1999 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 CAA10356 for ; Fri, 22 Jan 1999 02:13:47 -0800 (PST) Received: from zeus.gmd.de (zeus.gmd.de [129.26.145.1]) by mail.gmd.de (8.8.8/8.8.8) with ESMTP id LAA10619 for ; Fri, 22 Jan 1999 11:22:38 +0100 (MET) Received: (from hoehle@localhost) by zeus.gmd.de (8.9.1/8.9.1) id LAA24520 for clisp-list@seagull.cons.org; Fri, 22 Jan 1999 11:21:56 +0100 (MET) Date: Fri, 22 Jan 1999 11:21:56 +0100 (MET) From: Joerg Hoehle Message-Id: <199901221021.LAA24520@zeus.gmd.de> To: clisp-list@seagull.cons.org Subject: Re: clisp integrated inspect? > > Vassili Bykov has written an INSPECT command > > for Common Lisp. It works nicely in CLISP and can be downloaded from > > > > ftp://ftp2.cons.org/pub/lisp/clisp/contrib/inspect1.lsp.gz > > > > Another INSPECT implementation is in > > > > ftp://ftp2.cons.org/pub/lisp/clisp/contrib/inspect2.lsp.gz > > > > inspect1 runs in any tty or xterm, whereas inspect2 uses your web > > browser as a display engine. Both are under GPL license. > Both INSPECTs (Vassili Bykov's and Bruno's) are quite nice! > Bruno's, which is also neat, doesn't terminate gracefully from inside of my OmniWeb IIRC, Bruno's cannot know when to terminate because the browser could request more info etc. any day. Of course, one could add an EXIT button pointing to a special link. > browser, so I always have to force an emergency break from the inside of clisp. Which doesn't work on my one hour socket port to AmigaOS, as the pseudo socket-wait cannot be interrupted, only the read will, so it stops after the next request. :-( > I made some changes to Bruno's INSPECT, so that it runs in any tty or xterm > instead of a web browser. Great, a TTY inspect is useful as well, especially CMUCL's ability to return the last viewed object: you can pick an object out of an otherwise unaccessible structure slot. I just did so yesterday to on metering.cl (MON:MONITORED foo) to get to the original function :-) You couldn't do this with a browser or external interface. Where's your good work? > Will some INSPECT be now integrated into clisp? I'd vote for a TTY one and provide fancier ones in contrib/ or extras/, or switch on browser-interaction-mode at a function call or variable setting. Regards, Jorg Hohle. From hoehle@zeus.gmd.de Tue Jan 26 23:05:50 1999 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 XAA18023 for ; Tue, 26 Jan 1999 23:05:49 -0800 (PST) Received: from kir ([141.12.144.207]) by mail.gmd.de (8.8.8/8.8.8) with SMTP id IAA00345 for ; Wed, 27 Jan 1999 08:15:20 +0100 (MET) Date: Wed, 27 Jan 1999 08:15:20 +0100 (MET) Message-Id: <199901270715.IAA00345@mail.gmd.de> From: hoehle@mail.gmd.de (Jorg-Cyril Hohle) To: clisp-list@clisp.cons.org Subject: CD and DEFAULT-DIRECTORY Hello, _impnotes.txt says (DEFAULT-DIRECTORY) is equivalent to (CD), (SETF (DEFAULT-DIRECTORY) pathname) is equivalent to (CD pathname). This is not true as far as the return value is concerned. CD returns the new truename, whereas SETF returns the input value as usual. As CD's return value is quite useful, I propose to maintain the code as is and to change the documentation instead. Does anybody object to such a questionable update procedure? Regards, Jo"rg Ho"hle. Joerg.Hoehle@gmd.de http://zeus.gmd.de/~hoehle/amiga.html From hoehle@zeus.gmd.de Tue Jan 26 23:05:55 1999 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 XAA18033 for ; Tue, 26 Jan 1999 23:05:54 -0800 (PST) Received: from kir ([141.12.144.207]) by mail.gmd.de (8.8.8/8.8.8) with SMTP id IAA00152 for ; Wed, 27 Jan 1999 08:15:29 +0100 (MET) Date: Wed, 27 Jan 1999 08:15:29 +0100 (MET) Message-Id: <199901270715.IAA00152@mail.gmd.de> From: hoehle@mail.gmd.de (Jorg-Cyril Hohle) To: clisp-list@clisp.cons.org Hello, CLISP, which is usually very picky about CLtL adherence, doesn't check for badly formed a-lists, so I got trapped when porting some SW to CMUCL. > (assoc 'foo '((bar 2) grr (foo 3))) (FOO 3) > (lisp-implementation-version) "1998-07-30 (Juli 1998)" LIST.D:assoc et al appear to do insufficient checking. Regards, Jo"rg Ho"hle. Joerg.Hoehle@gmd.de http://zeus.gmd.de/~hoehle/amiga.html From Emmanuel.Mazer@inrialpes.fr Wed Jan 27 01:08:05 1999 Received: from ebene.inrialpes.fr (ebene.inrialpes.fr [194.199.18.70]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id BAA19501 for ; Wed, 27 Jan 1999 01:08:04 -0800 (PST) Received: from cephee.inrialpes.fr (cephee.inrialpes.fr [194.199.21.23]) by ebene.inrialpes.fr (8.8.5/8.8.5) with ESMTP id KAA26249 for ; Wed, 27 Jan 1999 10:17:39 +0100 (MET) Received: (from mazer@localhost) by cephee.inrialpes.fr (8.8.7/8.8.5) id KAA02193; Wed, 27 Jan 1999 10:17:40 +0100 (MET) From: Emmanuel Mazer MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <13998.55731.539281.587309@cephee.inrialpes.fr> Date: Wed, 27 Jan 1999 10:17:39 +0100 (MET) To: clisp-list@seagull.cons.org Subject: ILISP fixes for CLISP In-Reply-To: <36A779D7.53BBD74C@lavielle.com> References: <36A779D7.53BBD74C@lavielle.com> X-Mailer: VM 6.63 under Emacs 19.34.1 Reply-To: Emmanuel.Mazer@inrialpes.fr Valentino Thanks for all your comments. - I still have some problems using ILISP. One basic question is : which ILISP command should I use to escape from a Break or from a Continue ?? now the ony way I found is to evaluate (sys::debug-unwind) or (sys::debug-continue) Thanks for you help Emmanuel Mazer > -- I had to fix the regular expressions in the file 'ilisp-chs.el' for the > clisp-hs defdialect. *Note* that the dialect to use for CLISP is called > 'clisp-hs', which should *not* be mixed up with the generic ILISP defined > 'clisp' common lisp dialect. The standard ILISP defined "clisp" dialect is > not > the same with the defined "clisp-hs" dialect! OK > > -- I had to add the missing 'ilisp-chs' dialect to the 'ilisp-mak.el' file in > order > to compile ILISP and make it to work correctly. See also the next point! > > -- I had to add the missing 'ilisp-chs' dialect loading to the 'ilisp.el' file, > so > that autoloading of the 'clisp-hs' dialect works correctly. OK > > -- I had to change the 'get-function-arglist' function in 'cl-ilisp.lisp', for > a call > to Sam's 'arglist' function, in order to use the ILISP argument stuff. I use Sam function off line and it works ok. I include this function in cl-lisp.lip and I did the suggested change. It's working but I see no result on C-c a #+clisp (arglist symbol) #-(or allegro lucid kcl ibcl ecl clisp) (documentation symbol 'function))))) > > -- I had to use Holger Schauer's 'ilisp-easy-menu.el' in order to have also an > accessable ILISP-menu in any ILISP lisp buffers. how is it possible to obtain that a file with *.lsp or *.lisp is a ILISP buffers ? > > After fixing/changing the above mentioned things, I had to do a make clean and > recompile ILISP. Then I've setup my '.emacs' startup file to look like: > > .. > .. > (setq load-path > (cons > (expand-file-name "/usr/local/lib/ilisp-5.8/") load-path)) > > ;;; Load the ilisp-easy-menu prior to ilisp if you want to use it > (load-library "ilisp-easy-menu") > > (require 'completer) > (autoload 'clisp-hs "ilisp" "Inferior CLISP H.S." t) > (setq clisp-hs-program "/usr/local/bin/clisp -I -q") > .. looks like the one I use ? > .. > .. and so on ... > .. > > Then after ILISP/CLISP started up in emacs, I had to make a final > "M-x ilisp-compile-inits"! > > > So far, after making the described fixes/changes, ILISP behaves well > in conjunction with CLISP. I tested this with Gnu Emacs, Xemacs, > ILISP-5.8 and the actual CLISP versions under Solaris (Sparc + PC), > Linux and NeXTstep. BTW, it also works quite well under WindowsNT. > > > > Greetings Valentino > > > -- > Valentino Kyriakides > > Lavielle EDV Systemberatung GmbH & Co. Tel.: +49(0)40 / 65 80 8 - 997 > Lotharstrasse 2b, D-22041 Hamburg, Germany Fax.: +49(0)40 / 65 808-202 > http://www.lavielle.com/ mailto: vkyr@lavielle.com > > > > From haible@ilog.fr Wed Jan 27 05:58:09 1999 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 FAA22525 for ; Wed, 27 Jan 1999 05:58:02 -0800 (PST) Received: from ilog.ilog.fr ([172.17.4.22]) by sceaux.ilog.fr (8.9.1/8.9.1) with ESMTP id PAA20565 for ; Wed, 27 Jan 1999 15:07:25 +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 PAA20223; Wed, 27 Jan 1999 15:07:13 +0100 (MET) From: Bruno Haible Received: (from haible@localhost) by jaures.ilog.fr (8.9.0/8.9.0) id PAA05108; Wed, 27 Jan 1999 15:07:23 +0100 (MET) Date: Wed, 27 Jan 1999 15:07:23 +0100 (MET) Message-Id: <199901271407.PAA05108@jaures.ilog.fr> To: clisp-list@seagull.cons.org Subject: Re: assoc and alist checking In-Reply-To: <199901270715.IAA00152@mail.gmd.de> References: <199901270715.IAA00152@mail.gmd.de> Jörg Höhle writes: > CLISP, which is usually very picky about CLtL adherence, doesn't check > for badly formed a-lists, so I got trapped when porting some SW to > CMUCL. > > > (assoc 'foo '((bar 2) grr (foo 3))) > (FOO 3) > > LIST.D:assoc et al appear to do insufficient checking. CLHS states that an error in this case may, but need not be, signalled by the implementation. CLtL2 contains a sentence which makes me think ASSOC was meant to be liberal: if nil appears in the a-list in place of a pair ... assoc will ignore the nil in the a-list and continue to search for an actual pair (cons) whose car is ... I chose to do no error checking in that case, because that's compliant with both CLHS and CLtL2. Bruno From whitten@netcom.com Wed Jan 27 06:04:35 1999 Received: from netcom8.netcom.com (whitten@netcom8.netcom.com [192.100.81.117]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id GAA22774 for ; Wed, 27 Jan 1999 06:04:34 -0800 (PST) Received: (from whitten@localhost) by netcom8.netcom.com (8.8.5-r-beta/8.8.5/(NETCOM v1.02)) id GAA14607 for clisp-list@seagull.cons.org; Wed, 27 Jan 1999 06:14:07 -0800 (PST) From: David Whitten Message-Id: <199901271414.GAA14607@netcom8.netcom.com> Subject: Re: CD and DEFAULT-DIRECTORY To: clisp-list@seagull.cons.org Date: Wed, 27 Jan 1999 06:14:07 -0800 (PST) In-Reply-To: <199901270715.IAA00345@mail.gmd.de> from "Jorg-Cyril Hohle" at Jan 26, 99 11:07:15 pm X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit > > Hello, > > _impnotes.txt says > > (DEFAULT-DIRECTORY) is equivalent to (CD), (SETF (DEFAULT-DIRECTORY) pathname) > is equivalent to (CD pathname). > > This is not true as far as the return value is concerned. CD returns > the new truename, whereas SETF returns the input value as usual. > > As CD's return value is quite useful, I propose to maintain the code > as is and to change the documentation instead. > > Does anybody object to such a questionable update procedure? I don't object, but I wonder if this might be a case where returning multiple values would be useful. Though frankly, I'm a newbie in LISP, I was intrigued by the use of multiple values to return auxillary information (like the truename) which wouldn't be retrieved unless that extra information was needed or useful. David From haible@ilog.fr Wed Jan 27 06:05:30 1999 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 GAA22905 for ; Wed, 27 Jan 1999 06:05: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 PAA20862 for ; Wed, 27 Jan 1999 15:14:56 +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 PAA20585; Wed, 27 Jan 1999 15:14:44 +0100 (MET) From: Bruno Haible Received: (from haible@localhost) by jaures.ilog.fr (8.9.0/8.9.0) id PAA05117; Wed, 27 Jan 1999 15:14:54 +0100 (MET) Date: Wed, 27 Jan 1999 15:14:54 +0100 (MET) Message-Id: <199901271414.PAA05117@jaures.ilog.fr> To: clisp-list@seagull.cons.org Subject: Re: CD and DEFAULT-DIRECTORY In-Reply-To: <199901270715.IAA00345@mail.gmd.de> References: <199901270715.IAA00345@mail.gmd.de> Jörg Höhle writes: > _impnotes.txt says > > (DEFAULT-DIRECTORY) is equivalent to (CD), > (SETF (DEFAULT-DIRECTORY) pathname) is equivalent to (CD pathname). > > This is not true as far as the return value is concerned. CD returns > the new truename, whereas SETF returns the input value as usual. > > As CD's return value is quite useful, I propose to maintain the code > as is and to change the documentation instead. Fixed. Thanks. Bruno From vkyr@lavielle.com Wed Jan 27 07:06:01 1999 Received: from wildfire.lavielle.com (wildfire.lavielle.com [194.64.21.43]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id HAA23912 for ; Wed, 27 Jan 1999 07:06:00 -0800 (PST) Received: from lavielle.com (localhost [127.0.0.1]) by wildfire.lavielle.com (8.8.8/8.8.8) with ESMTP id QAA07647 for ; Wed, 27 Jan 1999 16:15:37 +0100 (MET) Sender: vkyr@wildfire.lavielle.com Message-ID: <36AF2D96.CD5D41B2@lavielle.com> Date: Wed, 27 Jan 1999 16:15:36 +0100 From: Valentino Kyriakides Organization: Lavielle X-Mailer: Mozilla 4.04 [en] (X11; I; SunOS 5.6 sun4m) MIME-Version: 1.0 To: clisp-list@seagull.cons.org Subject: Re: ILISP fixes for CLISP References: <13998.55731.539281.587309@cephee.inrialpes.fr> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Emmanuel Mazer wrote: > ... > > - I still have some problems using ILISP. > > One basic question is : which ILISP command should I use to escape > from a Break or from a Continue ?? > now the ony way I found is to evaluate (sys::debug-unwind) > or (sys::debug-continue) > To escape from a break loop I use (sys::debug-unwind) or as an alternative"Abort", for continuation I use (sys::debug-continue) or "Continue" in the regular expressions of the 'ilisp-chs.el' file. > ... > > I use Sam function off line and it works ok. I include this function in cl-lisp.lip and I did the suggested change. It's working but I see no result on C-c a > > #+clisp > (arglist symbol) > > #-(or allegro lucid kcl ibcl ecl clisp) > (documentation symbol 'function))))) > Try the following for Sam's arglist function: ---------------- (in-package :lisp) (defun arglist (fn) "Return the signature of the function." (values (read-from-string (multiple-value-call #'sys::describe-signature nil (sys::function-signature fn))))) (in-package :user) ---------------- and then the following in 'cl-lisp.lisp': #+clisp (lisp::arglist symbol) ... this works for me. > > > > -- I had to use Holger Schauer's 'ilisp-easy-menu.el' in order to have also an > > accessable ILISP-menu in any ILISP lisp buffers. > > how is it possible to obtain that a file with *.lsp or *.lisp is a ILISP buffers ? > The following portion in your .emacs ILISP setup section should do this for *.lisp files: ;;; In .emacs for the ILISP setup (set-default 'auto-mode-alist (append '(("\\.lisp$" . lisp-mode)) auto-mode-alist)) Greetings Valentino -- Valentino Kyriakides Lavielle EDV Systemberatung GmbH & Co. Tel.: +49(0)40 / 65 80 8 - 997 Lotharstrasse 2b, D-22041 Hamburg, Germany Fax.: +49(0)40 / 65 808-202 http://www.lavielle.com/ mailto: vkyr@lavielle.com From sds@eaglets.com Wed Jan 27 07:50:43 1999 Received: from mail.eaglets.com ([208.235.77.228]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id HAA24557 ; Wed, 27 Jan 1999 07:50:31 -0800 (PST) Received: by mail.eaglets.com from localhost (router,SLMail V3.1); Wed, 27 Jan 1999 10:58:52 -0500 Received: by mail.eaglets.com from eho.eaglets.com [208.235.77.238] (SLmail 3.1.2948 (Release Build)); Wed, 27 Jan 1999 10:58:51 -0500 Received: (from sds@localhost) by eho.eaglets.com (8.9.2/8.9.2) id JAA18469; Wed, 27 Jan 1999 09:28:27 -0500 (EST) To: clisp-list@seagull.cons.org Cc: Multiple recipients of list Subject: Re: assoc and alist checking References: <199901271407.PAA05108@jaures.ilog.fr> 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: Bruno Haible's message of "Wed, 27 Jan 1999 05:58:38 -0800 (PST)" Date: 27 Jan 1999 09:28:27 -0500 Message-ID: Lines: 66 X-Mailer: Gnus v5.5/Emacs 20.3 >>>> In message <199901271407.PAA05108@jaures.ilog.fr> >>>> On the subject of "Re: assoc and alist checking" >>>> Sent on Wed, 27 Jan 1999 05:58:38 -0800 (PST) >>>> Honorable Bruno Haible writes: >> Jvrg Hvhle writes: >> >> > CLISP, which is usually very picky about CLtL adherence, doesn't check >> > for badly formed a-lists, so I got trapped when porting some SW to >> > CMUCL. >> > >> > > (assoc 'foo '((bar 2) grr (foo 3))) >> > (FOO 3) >> > >> > LIST.D:assoc et al appear to do insufficient checking. >> >> CLHS states that an error in this case may, but need not be, signalled >> by the implementation. >> >> CLtL2 contains a sentence which makes me think ASSOC was meant to be liberal: >> >> if nil appears in the a-list in place of a pair ... assoc will >> ignore the nil in the a-list and continue to search for an actual >> pair (cons) whose car is ... >> >> I chose to do no error checking in that case, because that's compliant with >> both CLHS and CLtL2. This is one of the places when CLHS mildly contradicts itself. --- association list n. a list of conses representing an association of keys with values, where the car of each cons is the key and the cdr is the value associated with that key. --- clearly '((bar 2) grr (foo 3)) is NOT an "association list". --- fun_assoccm_a_assoc-if-not.html: Exceptional Situations: Should be prepared to signal an error of type type-error if alist is not an association list. --- Your quote is from the section "Notes", which obviously cannot override "Exceptional Situations". I would side with Joerg here and say that the current behavior is not compliant. The compliant behavior is: (assoc 'z '((1 . 2) nil (z . 3))) --> (z . 3) (assoc 'z '((1 . 2) a (z . 3))) --> type-error We gotta fix it (an add an appropriate test too). Trying to avoid effort duplication (as with weak-pointers and file-length recently), I am awaiting Bruno's explicit decision as to who will do it. -- 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. War doesn't determine who's right, just who's left. From haible@ilog.fr Wed Jan 27 08:39:07 1999 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 IAA25472 for ; Wed, 27 Jan 1999 08:39:02 -0800 (PST) Received: from ilog.ilog.fr ([172.17.4.22]) by sceaux.ilog.fr (8.9.1/8.9.1) with ESMTP id RAA26587 for ; Wed, 27 Jan 1999 17:48:22 +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 RAA00879; Wed, 27 Jan 1999 17:48:09 +0100 (MET) From: Bruno Haible Received: (from haible@localhost) by jaures.ilog.fr (8.9.0/8.9.0) id RAA05942; Wed, 27 Jan 1999 17:48:20 +0100 (MET) Date: Wed, 27 Jan 1999 17:48:20 +0100 (MET) Message-Id: <199901271648.RAA05942@jaures.ilog.fr> To: clisp-list@seagull.cons.org Subject: Re: assoc and alist checking In-Reply-To: References: Sam Steingold writes: > This is one of the places when CLHS mildly contradicts itself. I agree. > Your quote is from the section "Notes", which obviously cannot override > "Exceptional Situations". I would ... say that the current behavior > is not compliant. Under "Exceptional Situations" the wording is: "Should be prepared to signal an error", which (as defined in CLHS section 1.4.2) means that the error is not mandatory. In consequence, I think clisp should not signal an error here. Bruno ! To unsubscribe from the clisp-list mailing list, send mail to ! ! listproc@clisp.cons.org ! ! including the two words "unsubscribe clisp-list" as message body. ! From sds@eaglets.com Wed Jan 27 09:31:52 1999 Received: from mail.eaglets.com ([208.235.77.228]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id JAA26317 for ; Wed, 27 Jan 1999 09:31:47 -0800 (PST) Received: by mail.eaglets.com from localhost (router,SLMail V3.1); Wed, 27 Jan 1999 12:40:09 -0500 Received: by mail.eaglets.com from eho.eaglets.com [208.235.77.238] (SLmail 3.1.2948 (Release Build)); Wed, 27 Jan 1999 12:40:09 -0500 Received: (from sds@localhost) by eho.eaglets.com (8.9.2/8.9.2) id JAA18709; Wed, 27 Jan 1999 09:46:53 -0500 (EST) To: recipients of list Subject: Re: assoc and alist checking References: <199901271648.RAA05942@jaures.ilog.fr> 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: Bruno Haible's message of "Wed, 27 Jan 1999 08:39:32 -0800 (PST)" Date: 27 Jan 1999 09:46:53 -0500 Message-ID: Lines: 35 X-Mailer: Gnus v5.5/Emacs 20.3 >>>> In message <199901271648.RAA05942@jaures.ilog.fr> >>>> On the subject of "Re: assoc and alist checking" >>>> Sent on Wed, 27 Jan 1999 08:39:32 -0800 (PST) >>>> Honorable Bruno Haible writes: >> Sam Steingold writes: >> >> > Your quote is from the section "Notes", which obviously cannot override >> > "Exceptional Situations". I would ... say that the current behavior >> > is not compliant. >> >> Under "Exceptional Situations" the wording is: "Should be prepared to >> signal an error", which (as defined in CLHS section 1.4.2) means that >> the error is not mandatory. CLHS also says in `Notes' to accos: -- The two expressions (assoc item list :test fn) and (find item list :test fn :key #'car) are equivalent in meaning... -- clearly the second one would signal an error on '((1 . 2) a (z . 3)) PS. while technically irrelevant to the descussion, note that both ACL and CMUCL accept nil but not other atoms in alists, i.e., behave according to my interpretation of CLHS. -- 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'm a Lisp variable -- bind me! From haible@ilog.fr Wed Jan 27 09:52:29 1999 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 JAA26783 for ; Wed, 27 Jan 1999 09:52:26 -0800 (PST) Received: from ilog.ilog.fr ([172.17.4.22]) by sceaux.ilog.fr (8.9.1/8.9.1) with ESMTP id TAA29640 for ; Wed, 27 Jan 1999 19:01:53 +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 TAA05597; Wed, 27 Jan 1999 19:01:35 +0100 (MET) From: Bruno Haible Received: (from haible@localhost) by jaures.ilog.fr (8.9.0/8.9.0) id TAA09821; Wed, 27 Jan 1999 19:01:45 +0100 (MET) Date: Wed, 27 Jan 1999 19:01:45 +0100 (MET) Message-Id: <199901271801.TAA09821@jaures.ilog.fr> To: clisp-list@seagull.cons.org Subject: Re: assoc and alist checking In-Reply-To: References: Sam writes: > PS. while technically irrelevant to the descussion, note that both ACL > and CMUCL accept nil but not other atoms in alists Now this is really inconsistent: Neither ((1 . 2) a (z . 3)) nor ((1 . 2) nil (z . 3)) is an "association list" as defined in the glossary. > i.e., behave according to my interpretation of CLHS. They behave according to your interpretation in some cases only. Probably because these implementations don't think at the issue at all, and instead just blindly apply CAR. Bruno From sds@eaglets.com Wed Jan 27 10:10:54 1999 Received: from mail.eaglets.com ([208.235.77.228]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id KAA27178 for ; Wed, 27 Jan 1999 10:10:52 -0800 (PST) Received: by mail.eaglets.com from localhost (router,SLMail V3.1); Wed, 27 Jan 1999 13:19:12 -0500 Received: by mail.eaglets.com from eho.eaglets.com [208.235.77.238] (SLmail 3.1.2948 (Release Build)); Wed, 27 Jan 1999 13:19:11 -0500 Received: (from sds@localhost) by eho.eaglets.com (8.9.2/8.9.2) id MAA18789; Wed, 27 Jan 1999 12:55:49 -0500 (EST) To: recipients of list Subject: Re: assoc and alist checking References: <199901271801.TAA09821@jaures.ilog.fr> 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: Bruno Haible's message of "Wed, 27 Jan 1999 09:52:41 -0800 (PST)" Date: 27 Jan 1999 12:55:49 -0500 Message-ID: Lines: 33 X-Mailer: Gnus v5.5/Emacs 20.3 >>>> In message <199901271801.TAA09821@jaures.ilog.fr> >>>> On the subject of "Re: assoc and alist checking" >>>> Sent on Wed, 27 Jan 1999 09:52:41 -0800 (PST) >>>> Honorable Bruno Haible writes: >> Sam writes: >> >> > PS. while technically irrelevant to the descussion, note that both ACL >> > and CMUCL accept nil but not other atoms in alists >> >> Now this is really inconsistent: Neither ((1 . 2) a (z . 3)) nor >> ((1 . 2) nil (z . 3)) is an "association list" as defined in the >> glossary. yep. so? is this the only inconsistency in CLHS that you are so surprised? :-) >> > i.e., behave according to my interpretation of CLHS. >> >> They behave according to your interpretation in some cases only. in which they don't? >> Probably because these implementations don't think at the issue at >> all, and instead just blindly apply CAR. that's what one can expect from the note I quoted about `accos' and `find' equivalence. -- 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. We are born naked, wet, and hungry. Then things get worse. From pg@yahoo-inc.com Wed Jan 27 11:25:14 1999 Received: from mail-relay2.yahoo.com (mail-relay2.yahoo.com [206.251.17.77]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id LAA28374 for ; Wed, 27 Jan 1999 11:25:14 -0800 (PST) Received: from borogove.yahoo.com (borogove.yahoo.com [205.216.162.65]) by mail-relay2.yahoo.com (8.9.1a/8.8.8) with ESMTP id LAA29649 for ; Wed, 27 Jan 1999 11:34:54 -0800 (PST) Received: from yahoo-inc.com (atresia.yahoo.com [205.216.162.53]) by borogove.yahoo.com (8.8.7/8.8.8) with ESMTP id LAA20519 for ; Wed, 27 Jan 1999 11:34:48 -0800 (PST) Sender: pg@yahoo-inc.com Message-ID: <36AF6A11.8EE3841@yahoo-inc.com> Date: Wed, 27 Jan 1999 11:33:38 -0800 From: Paul Graham X-Mailer: Mozilla 4.06 [en] (X11; I; FreeBSD 2.2.7-STABLE i386) MIME-Version: 1.0 To: clisp-list@seagull.cons.org Subject: Re: assoc and alist checking References: <199901271648.RAA05942@jaures.ilog.fr> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit Bruno, I am sorry to bother you personally about this, but I have tried several times to get off the clisp-list, following the instructions at the relevant page, and it has not worked. I am on it twice: pg@das.harvard.edu pg@yahoo-inc.com I would be very grateful if you can get me off. Thanks! --pg > Sam Steingold writes: > > > This is one of the places when CLHS mildly contradicts itself. > > I agree. > > > Your quote is from the section "Notes", which obviously cannot override > > "Exceptional Situations". I would ... say that the current behavior > > is not compliant. > > Under "Exceptional Situations" the wording is: "Should be prepared to > signal an error", which (as defined in CLHS section 1.4.2) means that > the error is not mandatory. > > In consequence, I think clisp should not signal an error here. > > Bruno > > ! To unsubscribe from the clisp-list mailing list, send mail to ! > ! listproc@clisp.cons.org ! > ! including the two words "unsubscribe clisp-list" as message body. ! From wnewman@netcom.com Wed Jan 27 12:33:00 1999 Received: from netcom.com (wnewman@netcom1.netcom.com [192.100.81.100]) by seagull.cdrom.com (8.8.8/8.6.6) with ESMTP id MAA29619 for ; Wed, 27 Jan 1999 12:32:59 -0800 (PST) Received: (from wnewman@localhost) by netcom.com (8.8.5-r-beta/8.8.5/(NETCOM v1.02)) id MAA08444 for clisp-list@seagull.cons.org; Wed, 27 Jan 1999 12:42:33 -0800 (PST) From: Bill Newman Message-Id: <199901272042.MAA08444@netcom.com> Subject: wishing for MAKE-LOAD-FORM To: clisp-list@seagull.cons.org Date: Wed, 27 Jan 1999 12:42:33 -0800 (PST) In-Reply-To: from "Sam Steingold" at Jan 27, 99 10:11:00 am X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit I'm working on porting some code from CMUCL which makes heavy use of ANSI's MAKE-LOAD-FORM. Does anyone have patches/plans to add MAKE-LOAD-FORM to CLISP? or clever tricks to work around the lack of MAKE-LOAD-FORM? Thanks in advance, Bill Newman wnewman@netcom.com From hoehle@zeus.gmd.de Thu Jan 28 05:43:34 1999 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 FAA10677 for ; Thu, 28 Jan 1999 05:43:32 -0800 (PST) Received: from zeus.gmd.de (zeus.gmd.de [129.26.145.1]) by mail.gmd.de (8.8.8/8.8.8) with ESMTP id OAA28926 for ; Thu, 28 Jan 1999 14:53:15 +0100 (MET) Received: (from hoehle@localhost) by zeus.gmd.de (8.9.1/8.9.1) id OAA06637 for clisp-list@seagull.cons.org; Thu, 28 Jan 1999 14:52:32 +0100 (MET) Date: Thu, 28 Jan 1999 14:52:32 +0100 (MET) From: Joerg Hoehle Message-Id: <199901281352.OAA06637@zeus.gmd.de> To: clisp-list@seagull.cons.org Subject: Re: assoc and alist checking > > LIST.D:assoc et al appear to do insufficient checking. > > CLHS states that an error in this case may, but need not be, signalled > by the implementation. >From my experience, CLISP usually chooses to bark in such situations. > CLtL2 contains a sentence which makes me think ASSOC was meant to be liberal: > > if nil appears in the a-list in place of a pair ... assoc will > ignore the nil in the a-list and continue to search for an actual > pair (cons) whose car is ... >From my understanding, CLtL2 makes NIL a special case, but that does not say anything about other forms (the distinction is between NIL and true CONS pairs, not ATOM vs. CONSP), so other use in programs is non conforming (c.f. current discussion in cll :-) and I got an error with CMUCL. I think the NIL special case in a-lists has historical reasons. There has been some discussion about this once in cll. > I chose to do no error checking in that case, because that's compliant with > both CLHS and CLtL2. It's not too late to add it and it would still be conpliant. :-) I'd vote for going on keeping CLISP pretty picky. We'll discuss whether this is pure masochism because my project has been bitten by the unaccepted (LET ((FOO)) ...) in package "LISP" another day :-) So I'll just submit a patch some day. Bye, Jorg.