home *** CD-ROM | disk | FTP | other *** search
/ Il CD di internet / CD.iso / SOURCE / D / CLISP / CLISPSRC.TAR / clisp-1995-01-01 / amiga / README.Amiga < prev   
Encoding:
Text File  |  1994-09-19  |  9.6 KB  |  232 lines

  1. Dear lisper,
  2.  
  3. This archive contains an Amiga version of CLISP as of 8th January 1994 (with
  4. patches from 25th January), slightly modified on 7th of February. Please see
  5. the files clisp.man and README too. Aminet archive names have been shortened
  6. to fit the 20 characters limit.
  7.  
  8. There are three distinct binary versions of CLISP. These will be referred as
  9. *-high, *-low and *-wide. Depending on your machine, you'll be able to run
  10. one or the other, or all of them for testing purposes.
  11.  
  12. o The *-low Version:
  13.  
  14.   + has been compiled with a 68000 in mind. It can only deal with a 16MB
  15.     address space ranging from 0 to 0x00FFFFFF. It clears the upper 8 bits of
  16.     a 32 bit address before putting it on the bus and won't forget to check
  17.     the memory it gets from the system.
  18.  
  19.   * checks whether AllocMem(MEMF_ANY) returns memory in the above range. If
  20.     not, and if the CPU is not a 68000, it uses MEMF_24BITDMA (MEMF_CHIP on
  21.     pre-2.0 machines) to ensure that it does not get memory outside the 16MB
  22.     address range. DMA-able memory is a bit too hard a requirement, but there
  23.     are no other flags.
  24.  
  25.   + can be made to run on a A3000 or A4000 by patching the executable to load
  26.     the code and data hunks into CHIP memory (24BITDMA would suffice with
  27.     >=2.0, but one can't say that easily in the load hunk structure). The
  28.     supplied ratom.rexx ARexx script can do this for you, but you really
  29.     don't want to run CLISP out of CHIP memory now that there is the *-high
  30.     version.
  31.  
  32. o The *-high version:
  33.  
  34.   + has been compiled for 68020 and higher, won't run on 68000 CPUs. It
  35.     doesn't use the floating point coprocessor.
  36.  
  37.   + is able to deal with addresses from 0 to 0x07FFFFFF, thus working on some
  38.     A3000 and A4000 machines. GigaMem uses addresses between 0x20000000 and
  39.     0x60000000. VMM40 uses adresses at 0x40000000. CLISP cannot run with
  40.     that.
  41.  
  42.   * checks the memory it gets, reverting to MEMF_24BITDMA (>2.0, otherwise
  43.     MEMF_CHIP), like above.
  44.  
  45. o The *-wide version:
  46.  
  47.   + has been compiled for 68020 and higher, won't run on 68000 CPUs. It
  48.     doesn't use the floating point coprocessor.
  49.  
  50.   + is able to deal with any address and works fine with virtual memory or
  51.     configurations where memory is located above 0x08000000
  52.     (e.g. CSA-Derringer 030). This has been achived at the cost of using
  53.     64-bit integers. This makes the executable and memory files very large.
  54.  
  55. o The Lisp-part of CLISP is in the CLisp-*-Part2 archive, e.g. the compiler
  56.   source can be found there. The archive also contains the compiled Lisp
  57.   files (with the .fas extension), enabling you to easily build your own
  58.   lispinit.mem file. You can generate own lispinit.mem file by executing
  59.   lisp.run -x (LOAD"init.fas")(SAVEINITMEM) in a shell, or call (SAVEINITMEM)
  60.   directly when in your Lisp world.
  61.  
  62. o The complete CLISP source can be found in the clispsrc-<date>.tar.gz
  63.   archive (see file ANNOUNCE). You need to have GNU-zip (gzip) and tar (or
  64.   gtar) to be able to unpack it. I rearchived it for Aminet distribution into
  65.   CLispsrc-<date>.lha.
  66.  
  67. o If you start (REXX-LOOP), the only exit is the exit-loop.cl ARexx
  68.   script. I'd like comments and ideas for improvements of the ARexx
  69.   interface. See also impnotes.txt.
  70.  
  71. o CLISP always allocates its own stack and should not cause MungWall or
  72.   Enforcer hits. I don't know whether this stack allocation feature may cause
  73.   compatibility issues with future Amigas.
  74.  
  75. o The lisp.run executable contains symbolic information. Symbolic information
  76.   will help you report bugs (if you find any, CLISP has been very stable).
  77.  
  78. o Hints for your config.lsp:
  79. (defparameter *editor* "ttx WAIT")    ; Turbotext editor
  80. (defparameter *editor* "ced -keepio")    ; Cygnus ED (right?)
  81. (defparameter *default-time-zone* -1)    ; default set in defs1.lsp
  82.  
  83.  
  84. Changes: (_PART_ of CHANGES.LOG in the source tree)
  85.  
  86. User visible changes
  87. --------------------
  88.  
  89. * X3J13 vote <64> is implemented: New macro DESTRUCTURING-BIND.
  90.  
  91. * The function ED can now edit functions that have been entered in
  92.   interpreted form even if they have later been compiled.
  93.  
  94. * New function UNCOMPILE. (UNCOMPILE function-name) undoes the effect of
  95.   (COMPILE function-name) if the function's definition had been entered
  96.   in interpreted form.
  97.  
  98. * The OPEN option :IF-EXISTS :RENAME-AND-DELETE now deletes the renamed
  99.   file. Previously :RENAME-AND-DELETE was equivalent to :RENAME.
  100.  
  101. * (LISP-IMPLEMENTATION-VERSION) returns a more precise version string.
  102.  
  103. * X3J13 votes <115> and <114> are implemented: an elaborate LOOP macro.
  104.   New macro LOOP-FINISH.
  105.   Warning: The scoping rules for the iteration variables are hairy. If a
  106.   FOR/AS initialisation form refers to an iteration variable of a subsequent
  107.   FOR/AS clause, the effects are implementation dependent!
  108.  
  109. * X3J13 vote <120> is implemented: New function MAP-INTO.
  110.  
  111. * X3J13 vote <79> is implemented: New constants
  112.   LEAST-POSITIVE-NORMALIZED-SHORT-FLOAT,
  113.   LEAST-NEGATIVE-NORMALIZED-SHORT-FLOAT,
  114.   LEAST-POSITIVE-NORMALIZED-SINGLE-FLOAT,
  115.   LEAST-NEGATIVE-NORMALIZED-SINGLE-FLOAT,
  116.   LEAST-POSITIVE-NORMALIZED-DOUBLE-FLOAT,
  117.   LEAST-NEGATIVE-NORMALIZED-DOUBLE-FLOAT,
  118.   LEAST-POSITIVE-NORMALIZED-LONG-FLOAT,
  119.   LEAST-NEGATIVE-NORMALIZED-LONG-FLOAT.
  120.  
  121. * Fixed a bug in DO-SYMBOLS: A symbol which is exported from a used package
  122.   was considered accessible in the using package even if it was shadowed by
  123.   another present symbol of the same name.
  124.  
  125. * Fixed a bug in the debugger which caused the BACKTRACE commands to print
  126.   garbage if the current user interface language was not english.
  127.  
  128. * French support is now complete. Thanks to J÷rg H÷hle.
  129.  
  130. * The user interface language (english, german or french) can now be chosen
  131.   at startup time through a command line option. The constant *LANGUAGE* has
  132.   been removed, and its value has been removed from *FEATURES*. New macros
  133.   ENGLISH, DEUTSCH, FRANCAIS and LANGUAGE-CASE.
  134.  
  135. * There is a command line option that makes CLISP behave more like what
  136.   ILISP (a popular Emacs LISP interface) expects.
  137.  
  138. * The function CLOS:CALL-NEXT-METHOD can now be called with arguments, but
  139.   the check that the set of applicable methods must be the same as for the
  140.   original arguments will be bypassed.
  141.  
  142. * New functions READ-CHAR-SEQUENCE, WRITE-CHAR-SEQUENCE, READ-BYTE-SEQUENCE,
  143.   WRITE-BYTE-SEQUENCE which perform fast block I/O.
  144.  
  145. * Errors of type FLOATING-POINT-UNDERFLOW are inhibited in floating point
  146.   computations (and zero is returned instead) during execution of the new
  147.   macro WITHOUT-FLOATING-POINT-UNDERFLOW.
  148.  
  149. * X3J13 vote <95> is implemented: If the readtable argument passed to
  150.   GET-MACRO-CHARACTER and GET-DISPATCH-MACRO-CHARACTER is NIL, the standard
  151.   readtable is used.
  152.  
  153. * PROBE-FILE doesn't report an error any more if an intermediate directory
  154.   in the path doesn't exist. NIL is returned instead.
  155.  
  156. * The DEFCONSTANT warning about redefinition of a constant is inhibited if
  157.   the constant's new and old values are the same (in the sense of EQL).
  158.   Thanks to Marcus Daniels.
  159.  
  160. * The function INTERACTIVE-STREAM-P knows that if the terminal stream is
  161.   referring to a regular file (via input redirection) it is not interactive.
  162.  
  163. * There is a user programmable kind of streams, called generic streams.
  164.   New functions MAKE-GENERIC-STREAM, GENERIC-STREAM-CONTROLLER,
  165.   GENERIC-STREAM-P, GENERIC-STREAM-READ-CHAR, GENERIC-STREAM-READ-BYTE,
  166.   GENERIC-STREAM-LISTEN, GENERIC-STREAM-WRITE-CHAR, GENERIC-STREAM-WRITE-BYTE,
  167.   GENERIC-STREAM-WRITE-STRING, GENERIC-STREAM-CLEAR-INPUT,
  168.   GENERIC-STREAM-CLEAR-OUTPUT, GENERIC-STREAM-FINISH-OUTPUT,
  169.   GENERIC-STREAM-FORCE-OUTPUT, GENERIC-STREAM-CLOSE.
  170.   See impnotes.txt for details. Thanks to Marcus Daniels and Don Cohen.
  171.  
  172. * Fixed a CLOS bug: Generic functions with both optional and keyword
  173.   arguments didn't work.
  174.  
  175. * Fixed a serious bug in the compiler which caused incorrect code to be
  176.   generated for functions like (LAMBDA (X) (SETQ X 1)).
  177.  
  178. * Fixed a serious bug in the compiler which caused the compiler to crash
  179.   when compiling functions which contain two or more calls to ASSERT.
  180.  
  181. * Fixed a bug: The macroexpander of MULTIPLE-VALUE-SETQ built up a
  182.   syntactically illegal form.
  183.  
  184. * Fixed a bug in the reader: When reading pathnames from the syntax
  185.   #S(PATHNAME ...), #n# references in pathname components were not
  186.   resolved prior to calling MAKE-PATHNAME.
  187.  
  188. * Fixed a bug in the reader: (read-from-string "1/") signalled an error
  189.   of type DIVISION-BY-ZERO.
  190.  
  191. * Fixed a bug in the terminal stream: If several consecutive READ-LINE
  192.   operations on the terminal stream were performed without any text
  193.   containing newlines being output between them, the prompt finally got
  194.   duplicated and then became longer and longer.
  195.  
  196. Installation
  197. ------------
  198.  
  199. * All non-Unix versions: Setting the local time zone should now be much
  200.   easier. 122 time zone names are supported.
  201.  
  202. Other modifications
  203. -------------------
  204.  
  205. * Copyright clarification.
  206.  
  207. * Miscellaneous documentation updates.
  208.  
  209. * Speedup SUBLIS and NSUBLIS.
  210.  
  211. * Let all known versions of gcc2 emit dbra instructions for loops. Thanks
  212.   to J÷rg H÷hle.
  213.  
  214.  
  215. Patches:
  216.  
  217.   Gcc-2.3.3 -O2 -fomit-frame-pointer put several bugs in the compiler
  218.   output. I previously corrected two of them by hand-patching the assembly
  219.   files. Gcc-2.5.7 produces correct output but for 68020 and above machines
  220.   only. The low version is compiled with gcc-2.3.3 and the high and
  221.   wide-versions with gcc-2.5.8. Gcc-2.5.8 put a bug in the -DWIDE version of
  222.   control.d:_C_go. It seemed to me that beta versions of gcc-2.6.0 were not
  223.   stable enough for compilation of the wide version.
  224.  
  225. Enjoy and send me all sorts of comments, bug reports and suggestions. Please
  226. mention your (LISP-IMPLEMENTATION-VERSION) and system (especially memory
  227. location) configuration when doing so.
  228.  
  229.       Joerg Hoehle.
  230. hoehle@inf-wiss.uni-konstanz.de
  231.  
  232.