From: <don...@is...> - 2014-03-28 16:07:52
|
I'm just trying to record history - what was typed in to be evaluated (either to top level or break loop) and when. This is not as easy as I think it ought to be, largely due to the fact that the functions I'd like to redefine are not defined in lisp. For instance, this seems to make sense: (defun read-eval-print (prompt &optional (command-list nil)) ;;debug.d !! (multiple-value-bind (form flag) (read-form *standard-output* *standard-input* prompt command-list) ;; insert here: (record-history form) ... but it doesn't work. Any advice from those more familiar with this code? |
From: Pascal J. B. <pj...@in...> - 2014-03-28 16:28:50
|
don...@is... (Don Cohen) writes: > I'm just trying to record history - what was typed in to be evaluated > (either to top level or break loop) and when. > This is not as easy as I think it ought to be, largely due to the > fact that the functions I'd like to redefine are not defined in > lisp. For instance, this seems to make sense: > (defun read-eval-print (prompt &optional (command-list nil)) ;;debug.d !! > (multiple-value-bind (form flag) > (read-form *standard-output* *standard-input* prompt command-list) > ;; insert here: (record-history form) > ... > but it doesn't work. > > Any advice from those more familiar with this code? The standard API to do that is (CL:DRIBBLE "file") If you mean readline history, I guess you'd have to patch clisp to add saving of readline history. -- __Pascal Bourguignon__ http://www.informatimago.com/ "Le mercure monte ? C'est le moment d'acheter !" |
From: Sam S. <sd...@gn...> - 2014-03-28 17:11:07
|
> * Pascal J. Bourguignon <cwo@vasbezngvzntb.pbz> [2014-03-28 17:25:32 +0100]: > > don...@is... (Don Cohen) writes: > >> I'm just trying to record history - what was typed in to be evaluated >> (either to top level or break loop) and when. >> This is not as easy as I think it ought to be, largely due to the >> fact that the functions I'd like to redefine are not defined in >> lisp. For instance, this seems to make sense: >> (defun read-eval-print (prompt &optional (command-list nil)) ;;debug.d !! >> (multiple-value-bind (form flag) >> (read-form *standard-output* *standard-input* prompt command-list) >> ;; insert here: (record-history form) >> ... >> but it doesn't work. >> >> Any advice from those more familiar with this code? > > The standard API to do that is (CL:DRIBBLE "file") > > If you mean readline history, I guess you'd have to patch clisp to add > saving of readline history. I think the readline module provides that already. -- Sam Steingold (http://sds.podval.org/) on darwin Ns 10.3.1265 http://www.childpsy.net/ http://pmw.org.il http://jihadwatch.org http://www.memritv.org http://memri.org http://americancensorship.org The force of gravity doubles when acting on a body on a couch. |
From: <don...@is...> - 2014-03-28 20:24:41
|
Pascal J. Bourguignon writes: > don...@is... (Don Cohen) writes: > > > I'm just trying to record history - what was typed in to be evaluated > > (either to top level or break loop) and when. > > This is not as easy as I think it ought to be, largely due to the > > fact that the functions I'd like to redefine are not defined in > > lisp. For instance, this seems to make sense: > > (defun read-eval-print (prompt &optional (command-list nil)) ;;debug.d !! > > (multiple-value-bind (form flag) > > (read-form *standard-output* *standard-input* prompt command-list) > > ;; insert here: (record-history form) > > ... > > but it doesn't work. > > > > Any advice from those more familiar with this code? > > The standard API to do that is (CL:DRIBBLE "file") > > If you mean readline history, I guess you'd have to patch clisp to add > saving of readline history. Dribble does nothing of the sort. It does not record time of input, and does record lots of output. I'm looking for something like .bash_history or .mysql_history. |
From: Sam S. <sd...@gn...> - 2014-03-28 20:43:52
|
> * Don Cohen <qba...@vf...3-vap.pbz> [2014-03-28 12:24:34 -0800]: > > Pascal J. Bourguignon writes: > > don...@is... (Don Cohen) writes: > > > > > I'm just trying to record history - what was typed in to be evaluated > > > (either to top level or break loop) and when. > > > This is not as easy as I think it ought to be, largely due to the > > > fact that the functions I'd like to redefine are not defined in > > > lisp. For instance, this seems to make sense: > > > (defun read-eval-print (prompt &optional (command-list nil)) ;;debug.d !! > > > (multiple-value-bind (form flag) > > > (read-form *standard-output* *standard-input* prompt command-list) > > > ;; insert here: (record-history form) > > > ... > > > but it doesn't work. > > > > > > Any advice from those more familiar with this code? > > > > The standard API to do that is (CL:DRIBBLE "file") > > > > If you mean readline history, I guess you'd have to patch clisp to add > > saving of readline history. > > Dribble does nothing of the sort. > It does not record time of input, and does record lots of output. > I'm looking for something like .bash_history or .mysql_history. http://clisp.org/impnotes/readline-mod.html -> test.tst (readline:write-history *history-file*) 0 (readline:append-history 1000 *history-file*) 0 (readline:read-history *history-file*) 0 (readline:read-history-range *history-file* 0 -1) 0 -- Sam Steingold (http://sds.podval.org/) on darwin Ns 10.3.1265 http://www.childpsy.net/ http://thereligionofpeace.com http://memri.org https://www.facebook.com/TheIslamicThreat http://iris.org.il Feynman: 'Philosophy of science is as useful to scientists as ornithology is to birds' |
From: <don...@is...> - 2014-03-28 23:11:28
|
Sam Steingold writes: > http://clisp.org/impnotes/readline-mod.html > -> test.tst ok I see sample usage, not that it tells me what it actually does. But when I try it I see that it's not recording timestamps. Also it's not clear how to get it to record on each input. So the questions remain - how to get what I want - how to make it easier to do such things in lisp (even if I want something a little different) |
From: Pascal J. B. <pj...@in...> - 2014-03-29 00:06:33
|
don...@is... (Don Cohen) writes: > Sam Steingold writes: > > http://clisp.org/impnotes/readline-mod.html > > -> test.tst > ok I see sample usage, not that it tells me what it actually does. > But when I try it I see that it's not recording timestamps. > Also it's not clear how to get it to record on each input. > > So the questions remain > - how to get what I want Implement your own REPL. > - how to make it easier to do such things in lisp > (even if I want something a little different) What? (defvar *history-file-pathname* #P"/tmp/history.sexp") (defun record-input (form) (let ((date (get-universal-time))) (with-open-file (history *history-file-pathname* :direction :output :if-does-not-exist :create :if-exists :append) (with-standard-io-syntax (print (list date form) history))))) (defmacro handling-errors (&body body) " DO: Execute the BODY with a handler for CONDITION and SIMPLE-CONDITION reporting the conditions. " `(handler-case (progn ,@body) (simple-condition (err) (format *error-output* "~&~A:~%~?~&" (class-name (class-of err)) (simple-condition-format-control err) (simple-condition-format-arguments err)) (finish-output *error-output*)) (condition (err) (format *error-output* "~&~A:~%~A~%" (class-name (class-of err)) err) (finish-output *error-output*)))) (defun repl () (do ((hist 1 (1+ hist)) (+eof+ (gensym))) (nil) (format t "~%~A[~D]> " (package-name *package*) hist) (handling-errors (let ((input (read *standard-input* nil +eof+))) (when (or (equal '(exit) input) (equal '(quit) input) (eq +eof+ input)) (return-from repl)) (record-input input) (setf +++ ++ ++ + + - - input) (setf /// // // / / (multiple-value-list (eval -))) (setf *** ** ** * * (first /)) (format t "~& --> ~{~S~^ ;~% ~}~%" /))))) cl-user> (repl) COMMON-LISP-USER[1]> (+ 1 2) --> 3 COMMON-LISP-USER[2]> (list 1 2) --> (1 2) COMMON-LISP-USER[3]> (quit) nil cl-user> (cat "/tmp/history.sexp") (3605040153 (+ 1 2)) (3605040156 (LIST 1 2)) ; No value cl-user> -- __Pascal Bourguignon__ http://www.informatimago.com/ "Le mercure monte ? C'est le moment d'acheter !" |
From: <don...@is...> - 2014-03-29 01:15:37
|
Pascal J. Bourguignon writes: > don...@is... (Don Cohen) writes: > > > Sam Steingold writes: > > > http://clisp.org/impnotes/readline-mod.html > > > -> test.tst > > ok I see sample usage, not that it tells me what it actually does. > > But when I try it I see that it's not recording timestamps. > > Also it's not clear how to get it to record on each input. > > > > So the questions remain > > - how to get what I want > > Implement your own REPL. > > > - how to make it easier to do such things in lisp > > (even if I want something a little different) > > What? ... The clisp top level is clearly much more than the one you show. If it were what you show I'd be able to make small changes to it that suit my needs. I would like to do that with the top level already in clisp. Why do I have to start over from scratch? |
From: Pascal J. B. <pj...@in...> - 2014-03-29 03:22:01
|
don...@is... (Don Cohen) writes: > Pascal J. Bourguignon writes: > > don...@is... (Don Cohen) writes: > > > > > Sam Steingold writes: > > > > http://clisp.org/impnotes/readline-mod.html > > > > -> test.tst > > > ok I see sample usage, not that it tells me what it actually does. > > > But when I try it I see that it's not recording timestamps. > > > Also it's not clear how to get it to record on each input. > > > > > > So the questions remain > > > - how to get what I want > > > > Implement your own REPL. > > > > > - how to make it easier to do such things in lisp > > > (even if I want something a little different) > > > > What? > ... > > The clisp top level is clearly much more than the one you show. > If it were what you show I'd be able to make small changes to > it that suit my needs. > I would like to do that with the top level already in clisp. > Why do I have to start over from scratch? Because you don't seem to be wanting to take charge yourself of looking at the sources of clisp and patching them to suit your needs. -- __Pascal Bourguignon__ http://www.informatimago.com/ "Le mercure monte ? C'est le moment d'acheter !" |
From: <don...@is...> - 2014-03-29 04:50:52
|
Pascal J. Bourguignon writes: > > Why do I have to start over from scratch? > > Because you don't seem to be wanting to take charge yourself of looking > at the sources of clisp and patching them to suit your needs. On the contrary. When I failed to find useful information in the documentation (I tried redefining some of the prompt functions but that didn't work out), I looked at the source, which showed me things like the call to read-eval-print in main-loop and break-loop. However, changing those things written in lisp doesn't help me. If I could take the commented lisp definition of read-eval-print in debug.d and alter that, I could get what I want by inserting a log function call after read-form. But that also does not work. And that's what I'm complaining about. I would have expected that the clisp top level would have been written entirely in lisp. On a related topic, is there a way to use readline with an arbitrary lisp stream (as in generic stream) ? |
From: Pascal J. B. <pj...@in...> - 2014-03-29 13:26:22
|
don...@is... (Don Cohen) writes: > Pascal J. Bourguignon writes: > > > Why do I have to start over from scratch? > > > > Because you don't seem to be wanting to take charge yourself of looking > > at the sources of clisp and patching them to suit your needs. > > On the contrary. When I failed to find useful information in > the documentation (I tried redefining some of the prompt functions > but that didn't work out), I looked at the source, which showed me > things like the call to read-eval-print in main-loop and break-loop. > However, changing those things written in lisp doesn't help me. > If I could take the commented lisp definition of read-eval-print > in debug.d and alter that, I could get what I want by inserting > a log function call after read-form. But that also does not work. > And that's what I'm complaining about. > > I would have expected that the clisp top level would have been > written entirely in lisp. [pjb@kuiper :0.0 clisp-hg]$ hg diff diff -r 97c19a70b668 modules/bindings/glibc/link.sh --- a/modules/bindings/glibc/link.sh Sun Apr 14 17:59:02 2013 -0400 +++ b/modules/bindings/glibc/link.sh Sat Mar 29 14:22:25 2014 +0100 @@ -2,6 +2,6 @@ CC="${CC}" CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" \ CLISP_LINKKIT="$absolute_linkkitdir" CLISP="${CLISP}" NEW_FILES="linux.o" -NEW_LIBS="${NEW_FILES} -lm" +NEW_LIBS="${NEW_FILES} libgnu.a -lm" NEW_MODULES="linux" TO_LOAD='linux wrap' diff -r 97c19a70b668 src/constsym.d --- a/src/constsym.d Sun Apr 14 17:59:02 2013 -0400 +++ b/src/constsym.d Sat Mar 29 14:22:25 2014 +0100 @@ -257,6 +257,7 @@ LISPSYM(values,"VALUES",lisp) LISPSYM(values_list,"VALUES-LIST",lisp) LISPSYM(driver,"DRIVER",system) +LISPSYM(save_history,"SAVE-HISTORY",system) LISPSYM(unwind_to_driver,"UNWIND-TO-DRIVER",system) LISPSYM(macro_function,"MACRO-FUNCTION",lisp) LISPSYM(macroexpand,"MACROEXPAND",lisp) diff -r 97c19a70b668 src/debug.d --- a/src/debug.d Sun Apr 14 17:59:02 2013 -0400 +++ b/src/debug.d Sat Mar 29 14:22:25 2014 +0100 @@ -402,6 +402,13 @@ if (!nullp(value2)) { /* flag ? */ mv_count=1; skipSTACK(2); return; /* return T as value */ } + pushSTACK(value1); /* save the form */ + pushSTACK(S(save_history)); funcall(S(fboundp),1); + if(!nullp(value1)){ + funcall(S(save_history),1); /* returns the form to evaluate */ + }else{ + value1=popSTACK(); + } Symbol_value(S(plus3)) = Symbol_value(S(plus2)); /* (SETQ +++ ++) */ Symbol_value(S(plus2)) = Symbol_value(S(plus)); /* (SETQ ++ +) */ Symbol_value(S(plus)) = Symbol_value(S(minus)); /* (SETQ + -) */ diff -r 97c19a70b668 src/dribble.lisp --- a/src/dribble.lisp Sun Apr 14 17:59:02 2013 -0400 +++ b/src/dribble.lisp Sat Mar 29 14:22:25 2014 +0100 @@ -67,3 +67,16 @@ (unless file (close target)) ; dribble off (setq *terminal-io* source)) target)) + + +(defvar *history-file-pathname* #P"/tmp/history.sexp") + +(defun save-history (form) + (let ((date (get-universal-time))) + (with-open-file (history *history-file-pathname* + :direction :output + :if-does-not-exist :create + :if-exists :append) + (with-standard-io-syntax + (print (list date form) history)))) + form #|to be evaluated|#) [pjb@kuiper :0.0 clisp-hg]$ ../compile-clisp-hg // Configuring and Compiling // Making all // Installing [pjb@kuiper :0.0 clisp-hg]$ /data/languages/clisp-hg-hist/bin/clisp -norc 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 8 8 8 8 8 8 \ `-+-' / 8 8 8 ooooo 8oooo `-__|__-' 8 8 8 8 8 | 8 o 8 8 o 8 8 ------+------ ooooo 8oooooo ooo8ooo ooooo 8 Welcome to GNU CLISP 2.49+ (2010-07-17) <http://clisp.org/> Copyright (c) Bruno Haible, Michael Stoll 1992, 1993 Copyright (c) Bruno Haible, Marcus Daniels 1994-1997 Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998 Copyright (c) Bruno Haible, Sam Steingold 1999-2000 Copyright (c) Sam Steingold, Bruno Haible 2001-2010 Type :h and hit Enter for context help. [1]> (+ 1 2) 3 [2]> (car (list 1 2 3)) 1 [3]> (howdy?) *** - EVAL: undefined function HOWDY? The following restarts are available: USE-VALUE :R1 Input a value to be used instead of (FDEFINITION 'HOWDY?). RETRY :R2 Retry STORE-VALUE :R3 Input a new value for (FDEFINITION 'HOWDY?). ABORT :R4 Abort main loop ABORT :R5 ABORT Break 1 [4]> :q [5]> (/ 0) *** - /: division by zero The following restarts are available: ABORT :R1 Abort main loop ABORT :R2 ABORT Break 1 [6]> 'in-debugger IN-DEBUGGER Break 1 [6]> :q [7]> (quit) Bye. [pjb@kuiper :0.0 clisp-hg]$ cat /tmp/history.sexp (3605087929. (|COMMON-LISP|::|PROGN| (|COMMON-LISP|::|PRINC| "GNU CLISP ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|LISP-IMPLEMENTATION-VERSION|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "Software: ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|SOFTWARE-VERSION|)) (|COMMON-LISP|::|PRINC| " ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|SOFTWARE-TYPE|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "Features: ") (|COMMON-LISP|::|PRINC| |COMMON-LISP|::|*FEATURES*|) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "C Modules: ") (|COMMON-LISP|::|PRINC| (|EXT|::|MODULE-INFO|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "Installation directory: ") (|COMMON-LISP|::|PRINC| (|SYSTEM|::|LIB-DIRECTORY|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "User language: ") (|COMMON-LISP|::|PRINC| (|SYSTEM|::|CURRENT-LANGUAGE|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "Machine: ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|MACHINE-TYPE|)) (|COMMON-LISP|::|PRINC| " (") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|MACHINE-VERSION|)) (|COMMON-LISP|::|PRINC| ") ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|MACHINE-INSTANCE|)) (|COMMON-LISP|::|TERPRI|) (|SYSTEM|::|%EXIT|))) (3605087929. (|EXT|::|SAVEINITMEM| "base/lispinit.mem")) (3605087930. (|EXT|::|SAVEINITMEM| "base/lispinit.mem")) (3605087930. (|COMMON-LISP|::|PROGN| (|COMMON-LISP|::|PRINC| "GNU CLISP ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|LISP-IMPLEMENTATION-VERSION|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "Software: ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|SOFTWARE-VERSION|)) (|COMMON-LISP|::|PRINC| " ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|SOFTWARE-TYPE|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "Features: ") (|COMMON-LISP|::|PRINC| |COMMON-LISP|::|*FEATURES*|) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "C Modules: ") (|COMMON-LISP|::|PRINC| (|EXT|::|MODULE-INFO|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "Installation directory: ") (|COMMON-LISP|::|PRINC| (|SYSTEM|::|LIB-DIRECTORY|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "User language: ") (|COMMON-LISP|::|PRINC| (|SYSTEM|::|CURRENT-LANGUAGE|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "Machine: ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|MACHINE-TYPE|)) (|COMMON-LISP|::|PRINC| " (") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|MACHINE-VERSION|)) (|COMMON-LISP|::|PRINC| ") ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|MACHINE-INSTANCE|)) (|COMMON-LISP|::|TERPRI|) (|SYSTEM|::|%EXIT|))) (3605087932. (|EXT|::|SAVEINITMEM| "full/lispinit.mem")) (3605087934. (|EXT|::|SAVEINITMEM| "full/lispinit.mem")) (3605087959. (|COMMON-LISP|::|PROGN| (|COMMON-LISP|::|PRINC| "GNU CLISP ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|LISP-IMPLEMENTATION-VERSION|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "Software: ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|SOFTWARE-VERSION|)) (|COMMON-LISP|::|PRINC| " ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|SOFTWARE-TYPE|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "Features: ") (|COMMON-LISP|::|PRINC| |COMMON-LISP|::|*FEATURES*|) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "C Modules: ") (|COMMON-LISP|::|PRINC| (|EXT|::|MODULE-INFO|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "Installation directory: ") (|COMMON-LISP|::|PRINC| (|SYSTEM|::|LIB-DIRECTORY|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "User language: ") (|COMMON-LISP|::|PRINC| (|SYSTEM|::|CURRENT-LANGUAGE|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "Machine: ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|MACHINE-TYPE|)) (|COMMON-LISP|::|PRINC| " (") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|MACHINE-VERSION|)) (|COMMON-LISP|::|PRINC| ") ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|MACHINE-INSTANCE|)) (|COMMON-LISP|::|TERPRI|) (|SYSTEM|::|%EXIT|))) (3605087959. (|EXT|::|SAVEINITMEM| "base/lispinit.mem")) (3605087960. (|EXT|::|SAVEINITMEM| "base/lispinit.mem")) (3605087960. (|COMMON-LISP|::|PROGN| (|COMMON-LISP|::|PRINC| "GNU CLISP ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|LISP-IMPLEMENTATION-VERSION|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "Software: ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|SOFTWARE-VERSION|)) (|COMMON-LISP|::|PRINC| " ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|SOFTWARE-TYPE|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "Features: ") (|COMMON-LISP|::|PRINC| |COMMON-LISP|::|*FEATURES*|) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "C Modules: ") (|COMMON-LISP|::|PRINC| (|EXT|::|MODULE-INFO|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "Installation directory: ") (|COMMON-LISP|::|PRINC| (|SYSTEM|::|LIB-DIRECTORY|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "User language: ") (|COMMON-LISP|::|PRINC| (|SYSTEM|::|CURRENT-LANGUAGE|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "Machine: ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|MACHINE-TYPE|)) (|COMMON-LISP|::|PRINC| " (") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|MACHINE-VERSION|)) (|COMMON-LISP|::|PRINC| ") ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|MACHINE-INSTANCE|)) (|COMMON-LISP|::|TERPRI|) (|SYSTEM|::|%EXIT|))) (3605087961. (|EXT|::|SAVEINITMEM| "full/lispinit.mem")) (3605087962. (|EXT|::|SAVEINITMEM| "full/lispinit.mem")) (3605087963. (|COMMON-LISP|::|PROGN| (|COMMON-LISP|::|PRINC| "GNU CLISP ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|LISP-IMPLEMENTATION-VERSION|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "Software: ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|SOFTWARE-VERSION|)) (|COMMON-LISP|::|PRINC| " ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|SOFTWARE-TYPE|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "Features: ") (|COMMON-LISP|::|PRINC| |COMMON-LISP|::|*FEATURES*|) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "C Modules: ") (|COMMON-LISP|::|PRINC| (|EXT|::|MODULE-INFO|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "Installation directory: ") (|COMMON-LISP|::|PRINC| (|SYSTEM|::|LIB-DIRECTORY|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "User language: ") (|COMMON-LISP|::|PRINC| (|SYSTEM|::|CURRENT-LANGUAGE|)) (|COMMON-LISP|::|TERPRI|) (|COMMON-LISP|::|PRINC| "Machine: ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|MACHINE-TYPE|)) (|COMMON-LISP|::|PRINC| " (") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|MACHINE-VERSION|)) (|COMMON-LISP|::|PRINC| ") ") (|COMMON-LISP|::|PRINC| (|COMMON-LISP|::|MACHINE-INSTANCE|)) (|COMMON-LISP|::|TERPRI|) (|SYSTEM|::|%EXIT|))) (3605087963. (|SYSTEM|::|PROGRAM-NAME|)) (3605087991. (|COMMON-LISP|::|+| 1. 2.)) (3605087997. (|COMMON-LISP|::|CAR| (|COMMON-LISP|::|LIST| 1. 2. 3.))) (3605088006. (|COMMON-LISP-USER|::|HOWDY?|)) (3605088011. (|COMMON-LISP|::|/| 0.)) (3605088018. '|COMMON-LISP-USER|::|IN-DEBUGGER|) (3605088022. (|EXT|::|QUIT|)) [pjb@kuiper :0.0 clisp-hg]$ -- __Pascal Bourguignon__ http://www.informatimago.com/ "Le mercure monte ? C'est le moment d'acheter !" |