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

  1. Short: CLISP release 30.5.96 construction kit
  2. Requires: OS 2.04 or newer, GNU linker (ld)
  3. Author: Joerg.Hoehle@gmd.de
  4. Uploader: Joerg.Hoehle@gmd.de
  5. Type: dev/lang
  6.  
  7.  
  8. This archive contains both a ready-to-run Amiga-CLISP binary and a link kit
  9. with which to build an extended CLISP containing your own C (or whatever
  10. language) functions.
  11.  
  12. This archive contains a link kit with which to build an extended CLISP
  13. containing your own C (or whatever language) functions.
  14.  
  15. This archive corresponds to the -high version of Amiga-CLISP (i.e. 68020 or
  16. better, addresses upto 0x7fffffff).  It is the only distributed binary
  17. archive that contains the standard CLISP FFI (which is different from the
  18. AFFI common to all Amiga versions).
  19.  
  20. The FFI is huge but more powerful than the AFFI. It can call arbitrary C
  21. functions.  It allows callbacks (not yet with parameters in registers)
  22. foreign structure and type definitions. It is documented in FOREIGN.TXT.
  23. However, its support for calling Amiga shared library functions is
  24. incomplete.  Therefore FOREIGN.D and FOREIGN1.(LSP|FAS) are provided as well
  25. for reference purposes and extensions.
  26.  
  27. Extending CLISP is done by adding another module definition in MODULES.H (a
  28. line saying MODULE(<name>)) and building a new LISP.RUN binary.  An
  29. interesting feature of modules is that an old image file generated by a
  30. LISP.RUN without a given module is accepted by an extended LISP.RUN.  Thus,
  31. you can use the supplied LISPINIT.MEM file even after building a LISP.RUN
  32. that contains QUEENS.
  33.  
  34. The GNU linker (ld) is required to build an own lisp.run binary from the
  35. supplied link libraries.  GCC is required for adding compiling modules.
  36.  
  37. After extracting the archive and setting a large stack,
  38.     make -f Makefile.kit KITOBJECTS= lisp.run
  39. will generate an executable containing no additional module, as the initial
  40. MODULES.H only contains the line
  41.     MODULE(affi)
  42. The lisp.run I then generate is 694448 bytes in size (not stripped).
  43.  
  44. QUEENS is provided as a module demo.  It's module interface (QUEENS-FFI.C)
  45. is generated by compiling QUEENS-FFI.LSP.
  46.     lisp.run -M lispinit.mem -c queens-ffi.lsp
  47. Add a line saying MODULE(queens_ffi) to MODULES.H.
  48. If "make -f Makefile.kit" works, after (LOAD "queens-ffi"),
  49. (FFI-DEMOS::QUEENS 8) will return 92.
  50.  
  51. Note that CLISP has been built with my tiny startup code and without any
  52. standard C library stdio or malloc() functions, so if you need them you may
  53. run into trouble as they may not be initialized when CLISP's main() is
  54. entered.
  55.  
  56. Note that this CLISP has been compiled with Gcc-2.5.8 using the
  57. non-reentrant static struct return convention whereas newer Gcc-2.7.2 have
  58. finally been switched to stack struct return (like Gcc-2.3.3).  This will
  59. cause problems with struct return types or arguments (but not with pointers
  60. to structures).
  61.