home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / coders / jËzyki_programowania / clisp / readme.amiga < prev    next >
Text File  |  1977-12-31  |  10KB  |  256 lines

  1. Short: Common Lisp, release 30.5.96
  2. Requires: OS 2.04 or newer
  3. Author: haible@ma2s2.mathematik.uni-karlsruhe.de, Joerg.Hoehle@gmd.de
  4. Uploader: Joerg.Hoehle@gmd.de
  5.  
  6. Dear lisper,
  7.  
  8. This archive contains an Amiga version of CLISP as of 30th May 1996. Please
  9. see the files README (general description, installation), clisp.man (command
  10. line switches, tooltypes, explanation of files) and impnotes.txt
  11. (differences between CLISP and the Common Lisp reference, extensions, ARexx
  12. interface documentation). See also CHANGES.LOG if you are not a new user.
  13. Aminet archive names have been shortened to fit the 20 characters limit.
  14.  
  15. Which version to choose
  16. -----------------------
  17.  
  18. There may be four distinct binary versions of CLISP. These will be referred
  19. as *-high, *-low, *-00 and *-wide. Depending on your machine, you'll not be
  20. able to run all of them on one machine.
  21.  
  22. o The *-high version:
  23.  
  24.   + has been compiled for 68020 and higher, won't run on 68000 CPUs. It
  25.     doesn't use the floating point coprocessor.
  26.  
  27.   + is able to deal with addresses from 0 to 0x07FFFFFF, thus working on most
  28.     A3000 and A4000 machines. GigaMem uses addresses between 0x20000000 and
  29.     0x60000000. VMM uses adresses at 0x40000000. CLISP cannot run with
  30.     that.
  31.  
  32.   * checks the memory it gets, reverting to MEMF_24BITDMA, like *-low.
  33.  
  34. o The *-low Version:
  35.  
  36.   + has been compiled with a 68000 in mind. It can only deal with a 16MB
  37.     address space ranging from 0 to 0x00FFFFFF. It clears the upper 8 bits of
  38.     a 32 bit address before putting it on the bus and won't forget to check
  39.     the memory it gets from the system.
  40.  
  41.   * checks whether AllocMem(MEMF_ANY) returns memory in the above range. If
  42.     not, and if the CPU is not a 68000, it uses MEMF_24BITDMA (MEMF_CHIP on
  43.     pre-2.0 machines) to ensure that it does not get memory outside the 16MB
  44.     address range. DMA-able memory is a bit too hard a requirement, but there
  45.     are no other flags.
  46.  
  47.   + can be made to run on a A3000 or A4000 by patching the executable to load
  48.     the code and data hunks into CHIP memory (24BITDMA would suffice with
  49.     >=2.0, but one can't say that easily in the load hunk structure). The
  50.     supplied ratom.rexx ARexx script can do this for you, but you really
  51.     don't want to run CLISP out of CHIP memory now that there is the *-high
  52.     version.
  53.  
  54. o The *-00 version:
  55.  
  56.   + resembles the *-low version but has been compiled for a 68000 only. It
  57.     doesn't need to clear the upper 8 bits, leading to faster execution on
  58.     these machines (I measured 8% when compiling AFFI1.LSP, not that much).
  59.  
  60.   + removing german and french language support would make the executable
  61.     size 14% smaller but not the image without new .fas files, so I
  62.     refrained from doing so and maintained .fas file compatibility among all
  63.     versions.
  64.  
  65. o The *-wide version:
  66.  
  67.   + has been compiled for 68020 and higher, won't run on 68000 CPUs. It
  68.     doesn't use the floating point coprocessor.
  69.  
  70.   + is able to deal with any address and works fine with virtual
  71.     memory (VMM) or configurations where memory is located above
  72.     0x08000000 (e.g. CSA-Derringer 030). This has been achived at the
  73.     cost of using 64-bit integers. This makes the executable and
  74.     memory files very large and run-time longer (I measured a 40%
  75.     increase in execution time compared to *-high).
  76.  
  77. o The Lisp-part of CLISP is in the CLisp-*-Part2 archive, e.g. the compiler
  78.   source can be found there. The archive also contains the compiled Lisp
  79.   files (with the .fas extension), enabling you to easily build your own
  80.   lispinit.mem file. You can generate own lispinit.mem file by executing
  81.   lisp.run -x (LOAD"init.fas")(SAVEINITMEM) in a shell, or call (SAVEINITMEM)
  82.   directly when in your Lisp world.
  83.  
  84. o The complete CLISP source can be found in the clispsrc-<date>.tar.gz
  85.   archive (see file ANNOUNCE). You need to have GNU-zip (gzip) and tar (or
  86.   GNUtar) to be able to unpack it. I rearchived it for Aminet distribution
  87.   into CLispsrc-<date>.lha.
  88.  
  89.  
  90. Installation
  91. ------------
  92.  
  93. See README.
  94.  
  95.  
  96. Notes
  97. -----
  98.  
  99. o If you start (REXX-LOOP), the only exit is the exit-loop.cl ARexx
  100.   script. I'd like comments and ideas for improvements of the ARexx
  101.   interface. See also impnotes.txt.
  102.  
  103. o CLISP always allocates its own stack (in private memory) and should
  104.   not cause MungWall or Enforcer hits. This stack allocation feature
  105.   may cause compatibility issues with future Amigas.
  106.  
  107. o The lisp.run executable contains symbolic information. Symbolic information
  108.   will help you report bugs (if you find any, CLISP has been very stable).
  109.  
  110. o Hints for your config.lsp:
  111. (defparameter *editor* "memacs")    ; Micro-Emacs editor
  112. (defparameter *editor* "ced -keepio")    ; Cygnus ED (right?)
  113.  
  114.  
  115. Changes: (_part_ of CHANGES.LOG in the source tree)
  116.  
  117. User visible changes
  118. --------------------
  119.  
  120. * REMOVE-METHOD didn't work. 
  121.   Thanks to Roger Kehr <kehr@iti.informatik.th-darmstadt.de>
  122.   and Bruno Haible for the fix.
  123.  
  124. * Fixed a bug in the compiler: A (MULTIPLE-VALUE-SETQ vars valform)
  125.   or (MULTIPLE-VALUE-BIND vars valform ...) form was miscompiled if
  126.   valform is known to produce a single value.
  127.   Thanks to Bruno Haible and Paul Graham <pg@das.harvard.edu>.  
  128.  
  129. * RENAME-FILE now does *not* result in an error if the destination
  130.   file already exists (unless the system call results in an error message).
  131.  
  132. * PROBE-FILE and TRUENAME will not issue error messages if given
  133.   directories.
  134.  
  135. * X3J13 vote <72> is implemented: all standard Common Lisp data objects 
  136.   other than symbols and lists are self-evaluating. 
  137.   Thanks to Pierpaolo Bernardi. 
  138.  
  139. * X3J13 vote <40> is partially implemented: New macro WITH-STANDARD-IO-SYNTAX.
  140.   Thanks to Pierpaolo Bernardi.
  141.  
  142. * Some FORMAT fixes:
  143.   + X3J13 vote <81> is implemented: The FORMAT ~:^ directive is more useful.
  144.     Warning: Old style "~:^" directives need to be converted to "~#:^".
  145.   + X3J13 vote <82> is implemented: The FORMAT ~D, ~B, ~O, ~X, ~R directives
  146.     accept an optional comma-interval parameter.
  147.   + X3J13 vote <84> is implemented: FORMAT ~C outputs characters with no bits
  148.     as if by WRITE-CHAR.
  149.   + Handling of ~^ within the FORMAT ~? directive.
  150.  
  151. * New function FINALIZE. (FINALIZE object function) has the effect that
  152.   function will be called when object is being garbage collected.
  153.  
  154. * The initial value of *PACKAGE* can be specified by a command line option.
  155.  
  156. * Fixed a bug in the compiler which caused LOAD-TIME-VALUE forms to be
  157.   evaluated at compile time.
  158.  
  159. * Amiga version: SCREEN package is implemented. Thanks to Jörg Höhle.
  160.  
  161. * Fixed a CLOS bug which caused (DEFCLASS FOO (STANDARD-OBJECT) ()) and
  162.   (DEFINE-CONDITION FOO (CONDITION) ()) to signal errors.
  163.  
  164. * The DEFCONSTANT warning about redefinition of a constant is also inhibited
  165.   if the constant's new and old values are the same string (in the sense of
  166.   EQUAL). Thanks to Marcus Daniels.
  167.  
  168. * X3J13 vote <64> is implemented: New macro DESTRUCTURING-BIND.
  169.  
  170. * New function UNCOMPILE. (UNCOMPILE function-name) undoes the effect of
  171.   (COMPILE function-name) if the function's definition had been entered
  172.   in interpreted form.
  173.  
  174. * (LISP-IMPLEMENTATION-VERSION) returns a more precise version string.
  175.  
  176. * X3J13 votes <115> and <114> are implemented: an elaborate LOOP macro.
  177.   New macro LOOP-FINISH.
  178.   Warning: The scoping rules for the iteration variables are hairy. If a
  179.   FOR/AS initialisation form refers to an iteration variable of a subsequent
  180.   FOR/AS clause, the effects are implementation dependent!
  181.  
  182. * X3J13 vote <79> is implemented: New constants
  183.   LEAST-POSITIVE-NORMALIZED-SHORT-FLOAT,
  184.   LEAST-NEGATIVE-NORMALIZED-SHORT-FLOAT,
  185.   LEAST-POSITIVE-NORMALIZED-SINGLE-FLOAT,
  186.   LEAST-NEGATIVE-NORMALIZED-SINGLE-FLOAT,
  187.   LEAST-POSITIVE-NORMALIZED-DOUBLE-FLOAT,
  188.   LEAST-NEGATIVE-NORMALIZED-DOUBLE-FLOAT,
  189.   LEAST-POSITIVE-NORMALIZED-LONG-FLOAT,
  190.   LEAST-NEGATIVE-NORMALIZED-LONG-FLOAT.
  191.  
  192. * Fixed a bug in the debugger which caused the BACKTRACE commands to print
  193.   garbage if the current user interface language was not english.
  194.  
  195. * French support is now complete. Thanks to Jörg Höhle.
  196.  
  197. * The user interface language (english, german or french) can now be chosen
  198.   at startup time through a command line option. The constant *LANGUAGE* has
  199.   been removed, and its value has been removed from *FEATURES*. New macros
  200.   ENGLISH, DEUTSCH, FRANCAIS and LANGUAGE-CASE.
  201.  
  202. * New functions READ-CHAR-SEQUENCE, WRITE-CHAR-SEQUENCE, READ-BYTE-SEQUENCE,
  203.   WRITE-BYTE-SEQUENCE which perform fast block I/O.
  204.  
  205. * Errors of type FLOATING-POINT-UNDERFLOW are inhibited in floating point
  206.   computations (and zero is returned instead) during execution of the new
  207.   macro WITHOUT-FLOATING-POINT-UNDERFLOW.
  208.  
  209. * PROBE-FILE doesn't report an error any more if an intermediate directory
  210.   in the path doesn't exist. NIL is returned instead.
  211.  
  212. * The function INTERACTIVE-STREAM-P knows that if the terminal stream is
  213.   referring to a regular file (via input redirection) it is not interactive.
  214.  
  215. * There is a user programmable kind of streams, called generic streams.
  216.   New functions MAKE-GENERIC-STREAM, GENERIC-STREAM-CONTROLLER,
  217.   GENERIC-STREAM-P, GENERIC-STREAM-READ-CHAR, GENERIC-STREAM-READ-BYTE,
  218.   GENERIC-STREAM-LISTEN, GENERIC-STREAM-WRITE-CHAR, GENERIC-STREAM-WRITE-BYTE,
  219.   GENERIC-STREAM-WRITE-STRING, GENERIC-STREAM-CLEAR-INPUT,
  220.   GENERIC-STREAM-CLEAR-OUTPUT, GENERIC-STREAM-FINISH-OUTPUT,
  221.   GENERIC-STREAM-FORCE-OUTPUT, GENERIC-STREAM-CLOSE.
  222.   See impnotes.txt for details. Thanks to Marcus Daniels and Don Cohen.
  223.  
  224. * Fixed a bug in the terminal stream: If several consecutive READ-LINE
  225.   operations on the terminal stream were performed without any text
  226.   containing newlines being output between them, the prompt finally got
  227.   duplicated and then became longer and longer.
  228.  
  229. Installation
  230. ------------
  231.  
  232. * All non-Unix versions: Setting the local time zone should now be much
  233.   easier. 122 time zone names are supported.
  234.  
  235. Other modifications
  236. -------------------
  237.  
  238. * Speed up compiled calls to FORMAT with literal control string by use of
  239.   FORMATTER.
  240.  
  241. * When a memory image is loaded, the terminal stream from the previous
  242.   session is closed.
  243.  
  244. * Copyright clarification.
  245.  
  246. * Miscellaneous documentation updates.
  247.  
  248.  
  249. Enjoy and send me all sorts of comments, bug reports and suggestions. Please
  250. mention your (LISP-IMPLEMENTATION-VERSION) and system (especially memory
  251. location) configuration when doing so.
  252.  
  253.       Jörg Höhle.
  254. Joerg.Hoehle@gmd.de
  255.  
  256.