Subject: [clisp-list] Arglists.

From: Johannes Groedem <[email-masked]>
Date: Sun Aug 31 15:00:04 2003

Hi,

I'm curious if there is something I can do (e.g. a build-option or
whatever) to get CLISP to give me names of required arguments to
functions.  Key-arguments and optional arguments of compiled functions
are named, but required arguments show up as arg0, arg1, etc.

-- 
Johannes Groedem <OpenPGP: 5055654C>

---

From: Sam Steingold <[email-masked]>
Date: Sun Aug 31 16:41:02 2003

> * In message <[email-masked]>
> * On the subject of "Arglists."
> * Sent on Sun, 31 Aug 2003 23:59:54 +0200
> * Honorable Johannes Groedem <[email-masked]> writes:
>

CLISP does not keep this information.
It only knows the number of required and optional arguments, not the
lists of names.
keeping the names would require much work for little (IMO) gain, but
you are, of course, welcome to work on this (although I think the time
is better spent on other projects).

-- 
Sam Steingold (http://www.podval.org/~sds) running w2k
<http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/>
<http://www.mideasttruth.com/> <http://www.honestreporting.com>
In C you can make mistakes, while in C++ you can also inherit them!

---

From: amit phalgune <[email-masked]>
Date: Mon Sep 1 16:09:04 2003

I am trying to do the following in CLISP , Windows :

(defvar         $jvStream *null-stream*)

I get the following error.
*** - EVAL: variable *NULL-STREAM* has no value.

Can anyone please help !
Amit

---

From: Arseny Slobodjuck <[email-masked]>
Date: Mon Sep 1 17:36:02 2003

Hello amit,

Tuesday, September 2, 2003, 10:08:08 AM, you wrote:

amit> I am trying to do the following in CLISP , Windows :
amit> (defvar         $jvStream *null-stream*)
amit> I get the following error.
amit> *** - EVAL: variable *NULL-STREAM* has no value.

Why it should ? There's no *NULL-STREAM* mention in HyperSpec nor in
impnotes. But I believe (open "nul" :direction :output) makes what do
you want on Windows.

-- 
Best regards,
 Arseny                            mailto:[email-masked]

---

From: amit phalgune <[email-masked]>
Date: Mon Sep 1 20:03:02 2003

Hi,
Ya , I could figure out that there is no NULL-STREAM. But I was looking
for a corresponding expression in CLISP..
Amit

On Tue, 2 Sep 2003, Arseny Slobodjuck wrote:

> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> clisp-list mailing list
> [email-masked]
> https://lists.sourceforge.net/lists/listinfo/clisp-list
>

---

From: Sam Steingold <[email-masked]>
Date: Mon Sep 1 21:55:02 2003

> * In message <[email-masked]>
> * On the subject of "Re: Null -stream."
> * Sent on Mon, 1 Sep 2003 19:59:39 -0700 (PDT)
> * Honorable amit phalgune <[email-masked]> writes:
>

(make-two-way-stream
 (make-concatenated-stream)
 (make-broadcast-stream))

-- 
Sam Steingold (http://www.podval.org/~sds) running w2k
<http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/>
<http://www.mideasttruth.com/> <http://www.honestreporting.com>
Isn't "Microsoft Works" an advertisement lie?

---

From: amit phalgune <[email-masked]>
Date: Mon Sep 1 22:40:04 2003

Hi guys,
Sorry for bothering you guys a lot.
I tried to go through  the socumentation of command line options for CLISP
and could not find anything useful.
e.g : in CMUCL we have a -noinit , -load  and -eval options.

Does CLISP have similar command line options ?
Can anyone provide me with the link or document. I am particuarly
interested in the -noinit, -load and -eval options using CLISP

Thanks
Amit

---

From: Pascal J.Bourguignon <[email-masked]>
Date: Mon Sep 1 23:52:03 2003

> for a corresponding expression in CLISP..

In Common-Lisp, for  output, you could use a  broadcast stream with no
attached output stream:

       (defvar *null-stream-output* (make-broadcast-stream))

For input, you could use a string stream on an empty string:

       (defvar *null-stream-input* (make-string-input-stream ""))

And of course, if you need an input/output stream, you can join both:

       (defvar *null-stream* (make-two-way-stream 
                                    (make-string-input-stream "")
                                    (make-broadcast-stream)))

(dotimes (n 10) (print "Hello" *null-stream*) (listen *null-stream*))

-- 
__Pascal_Bourguignon__                   http://www.informatimago.com/
----------------------------------------------------------------------
Do not adjust your mind, there is a fault in reality.

---

From: Pascal J.Bourguignon <[email-masked]>
Date: Mon Sep 1 23:55:19 2003

> interested in the -noinit, -load and -eval options using CLISP

Of course it has: man clisp

CLISP(1)                                                 CLISP(1)

NAME
       clisp - Common Lisp language interpreter and compiler

SYNOPSIS
       clisp  [  -h  |  --help ] [ --version ] [ --license ] [ -B
       lisplibdir ] [ -K linking-set ] [ -M memfile ] [  -m  mem
       size  ] [ -L language ] [ -N localedir ] [ -Edomain encod
       ing ] [ -q | --quiet | --silent ] [ -w ] [ -I ] [ -a  ]  [
       -p  packagename  ] [ -C ] [ -norc ] [ -i initfile ...  ] [
       -c [ -l ] lispfile [ -o outputfile ] ...  ] [  -x  expres
       sion ] [ lispfile [ argument ] ]

DESCRIPTION
       Invokes the common lisp interpreter and compiler.  Invoked
       without arguments, executes  a  read-eval-print  loop,  in
       which  expressions  are  in turn read from standard input,
       evaluated by the lisp interpreter, and their results  out
       put  to  standard  output.  Invoked with -c, the specified
       lisp files are compiled to a bytecode that can be executed
       more efficiently.

OPTIONS
       -h, --help
              Displays a help message on how to use clisp.

       --version
              Displays  the clisp version number, as given by the
              function call (lisp-implementation-version).

       --license
              Displays a summary of  the  licensing  information,
              the GNU GPL.

       -B lisplibdir
              Specifies  the  installation directory. This is the
              directory containing the  linking  sets  and  other
              data files.  This option is normally not necessary,
              because  the  installation  directory  is   already
              built-in in the clisp executable.

       -K linking-set
              Specifies  the  linking  set  to  be run. This is a
              directory containing at least a main executable and
              an  initial memory image. Possible values are base,
              full, and fullnox.  The default is base.

       -M memfile
              Specifies the initial memory image.  This must be a
              memory  dump  produced by the saveinitmem function.
              It may have been compressed using GNU gzip.

       -m memsize
              Sets the amount of memory clisp tries  to  grab  on
              startup.   The amount may be given as nnnnnnn (mea
              sured in bytes), nnnnK or nnnnKB (measured in kilo
              bytes)  or  nM  or  nMB  (measured  in  megabytes).
              Default is  2  megabytes.   The  argument  is  con
              strained above 100 KB.  -- This version of clisp is
              not likely to actually use the entire memsize since
              garbage  collection  will  periodically  reduce the
              amount of used memory.  It is therefore  common  to
              specify  10  MB  even  if only 2 MB are going to be
              used.

       -L language
              Specifies the language clisp  uses  to  communicate
              with  the user. This may be english, deutsch, fran
              cais, espanol.  Other languages  may  be  specified
              through the environment variable LANG, provided the
              corresponding message catalog is installed.

       -N localedir
              Specifies  the  base  directory  of  locale  files.
              clisp   will   search   its   message  catalogs  in
              localedir/language/LC_MESSAGES/clisp.mo.

       -Edomain encoding
              Specifies the encoding used  for  a  given  domain,
              overriding  the  default which depends on the envi
              ronment variables LC_ALL, LC_CTYPE,  LANG.   domain
              can  be file, affecting *default-file-encoding*, or
              pathname, affecting *pathname-encoding*, or  termi
              nal,  affecting  *terminal-encoding*,  or  foreign,
              affecting *foreign-encoding*,  or  misc,  affecting
              *misc-encoding*.

       -q, --quiet, --silent
              Quiet:  clisp  displays no banner at startup and no
              good-bye message when quitting.

       -w     Wait for keypress after program termination.

       -I     Be ILISP friendly. ILISP is  an  alternative  Emacs
              interface to Common Lisp systems. With this option,
              clisp interacts in a way that ILISP can deal  with.
              Currently  the only effect of this is that unneces
              sary prompts are not suppressed.  Furthermore,  the
              GNU  readline  library treats Tab as a normal self-
              inserting character.

       -a     ANSI CL compliant: Comply with the ANSI CL specifi
              cation  even  on those issues where ANSI CL is bro
              ken. This option is provided for maximum  portabil
              ity  of Lisp programs, and is not useful for actual
              everyday work. It sets the  variable  *package*  to
              COMMON-LISP-USER, and the symbol macro *ansi* to t.
              See impnotes.html, section "Maximum ANSI CL compli
              ance", for details.

       -p packagename
              At startup the value of the variable *package* will
              be set  to  the  package  named  packagename.   The
              default  is  the  package which was active when the
              image was saved, normally USER, or COMMON-LISP-USER
              if the option -a was specified.

       -C     Compile  when  load:  At  startup  the value of the
              variable *load-compiling* will be set to  t.   Code
              being loaded will then be compiled on the fly. This
              results in slower loading, but faster execution.

       -norc  Normally clisp loads a user run control  (RC)  file
              on  startup  (this  happens  after the -C option is
              processed).       The      file      loaded      is
              ${HOME}/.clisprc.lisp    or   ${HOME}/.clisprc.fas,
              whichever is newest. This option,  -norc,  prevents
              loading of the RC file.

       -i initfile ...
              Specifies  initialization  files  to  be  loaded at
              startup. These should be lisp files (source or com
              piled).  Several  -i  options can be given; all the
              specified files will be loaded in order.

       -c lispfile ...
              Compiles  the  specified  lispfiles   to   bytecode
              (*.fas).  The  compiled  files  can  then be loaded
              instead of the sources to gain efficiency.

       -o outputfile
              Specifies the output file or directory for the com
              pilation of the last specified lispfile.

       -l     A  bytecode listing (*.lis) of the files being com
              piled will be produced.  Useful only for  debugging
              purposes. See the documentation of compile-file for
              details.

       -x expressions
              Executes a series of arbitrary expressions  instead
              of  a  read-eval-print  loop.   The  values  of the
              expressions will be output to standard output.  Due
              to  the  argument processing done by the shell, the
              expressions must be enclosed in double quotes,  and
              double  quotes  and backslashes must be preceded by
              backslashes.

       lispfile [argument ...]
              Loads and executes a lispfile.  There  will  be  no
              read-eval-print  loop.  Before  lispfile is loaded,
              the variable *args* will be  bound  to  a  list  of
              strings,  representing  the  arguments.   The first
              line of lispfile may start with #!, thus permitting
              clisp to be used as a script interpreter.  If lisp
              file is -, the standard input is used instead of  a
              file.  This option must be the last one. No RC file
              will be executed.

REFERENCE
       The language implemented mostly conforms to
              ANSI Common Lisp standard X3.226-1994
              http://www.x3.org/tc_home/j13sd4.htm
       available online as the
              Common Lisp HyperSpec
              http://www.lisp.org/HyperSpec/
              ("CLHS" for short)
       which supersedes the earlier specifications
              Guy L. Steele Jr.: Common Lisp - The Language.
              Digital Press. 2nd edition 1990, 1032 pages.
              http://www.cs.cmu.edu/afs/cs.cmu.edu/project/ai-
        repository/ai/html/cltl/cltl2.html
              ("CLtL2" for short)
       and
              Guy L. Steele Jr.: Common Lisp - The Language.
              Digital Press. 1st edition 1984, 465 pages.
              ("CLtL1" for short)

USE
       help   to get some on-line help.

       (apropos name)
              lists the symbols relating to name.

       (exit) or (quit) or (bye)
              to quit clisp.

       EOF (Ctrl-D)
              to leave the current read-eval-print loop.

       arrow keys
              for editing and viewing the input history.

       Tab key
              to  complete the symbol's name you are just typing.

FILES
       clisp  startup script

       lisp.run
              main executable

       lispinit.mem
              initial memory image

       config.lisp
              site-dependent configuration

       *.lisp lisp source

       *.fas  lisp code, compiled by clisp

       *.lib  lisp source library information, generated and used
              by the clisp compiler

       *.c    C code, compiled from lisp source by clisp

ENVIRONMENT
       CLISP_LANGUAGE
              specifies  the  language  clisp uses to communicate
              with the user. The value may be  english,  deutsch,
              francais  and  defaults  to english.  The -L option
              can be used to override this environment  variable.

       LC_CTYPE
              specifies the locale which determines the character
              set in use.  The value can be of the form  language
              or  language_country  or  language_country.charset,
              where language is a  two-letter  ISO  639  language
              code  (lower case), and country is a two-letter ISO
              3166 country code  (upper  case).   charset  is  an
              optional  character  set  specification,  and needs
              normally not be given because the character set can
              be inferred from the language and country.

       LANG   specifies  the  language  clisp uses to communicate
              with the  user,  unless  it  is  already  specified
              through  the environment variable CLISP_LANGUAGE or
              the -L option.  It also specifies the locale deter
              mining  the  character  set  in use, unless already
              specified   through   the   environment    variable
              LC_CTYPE.   The  value  may begin with a two-letter
              ISO 639 language code, for example en, de, fr.

       HOME and USER
              are used for determining the value of the  function
              user-homedir-pathname.  (Unix implementation only.)

       SHELL (Unix implementation only)
              is used to find the interactive command interpreter
              called by (shell).

       TERM   determines the screen size recognized by the pretty
              printer.  This environment variable is also  manda
              tory for the built-in screen editor.

SEE ALSO
       impnotes.html, cmucl(1), xemacs(1).

BUGS
       Not all extensions from CLtL2 are supported.

       No  on-line  documentation  beyond apropos and describe is
       available.

PROJECTS
       Writing on-line documentation.

       Enhance the compiler such that it can inline  local  func
       tions.

       Specify  a portable set of window and graphics operations.

AUTHORS
       Bruno Haible and Michael Stoll.

                          31 March 2000                  CLISP(1)

---

From: Sam Steingold <[email-masked]>
Date: Tue Sep 2 12:05:08 2003

> * In message <[email-masked]>
> * On the subject of "CLISP command line options."
> * Sent on Mon, 1 Sep 2003 22:38:59 -0700 (PDT)
that's OK.
just don't CC your messages to me and try poking around the web site.

> I tried to go through the socumentation of command line options for
> CLISP and could not find anything useful.

did you look at the FAQ?
<http://clisp.cons.org/faq.html#opt>.

-- 
Sam Steingold (http://www.podval.org/~sds) running w2k
<http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/>
<http://www.mideasttruth.com/> <http://www.honestreporting.com>
Lisp is a language for doing what you've been told is impossible. - Kent Pitman