home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / prgramer / setl2 / setl2doc.txt < prev    next >
Text File  |  1992-06-24  |  12KB  |  261 lines

  1. From cs.nyu.edu via anonymous ftp, directory /pub/setl2.
  2.  
  3.                                 SETL2
  4.                                 =====
  5.  
  6. This directory contains all the distribution files for the SETL2
  7. programming system.  It's implemented on a number of machines and all of
  8. the binaries can be found in the various files here.  As usual, this
  9. entire system is provided free of charge, but WITHOUT ANY WARRANTY.  Use it
  10. at your own risk.
  11.  
  12. There are separate distribution files for each supported system, but this
  13. README file covers all of them.  Look through what follows for the system
  14. in which you are interested, and ignore the rest.  You should find the
  15. following systems supported:
  16.  
  17.    MS-DOS (versions 3.1 and higher)
  18.    Extended MS-DOS (80286 and higher processors with extended memory)
  19.    Apple Macintosh (with the MPW environment)
  20.    Sun 3 (SunOS 4)
  21.    Sun 4 (SunOS 4)
  22.    IBM RS/6000 (AIX 3.1)
  23.    DEC RISC product line (Ultrix 4.0)
  24.    DEC Vaxen (Mt. Xinu Unix)
  25.    DEC Vaxen (VMS)
  26. [and OS/2.]
  27.  
  28. Please report any bugs or problems to:
  29.  
  30.    Kirk Snyder
  31.    Courant Institute of Mathematical Sciences
  32.    New York University
  33.    251 Mercer Street
  34.    New York, NY  10012
  35.  
  36.    e-mail:  snyder@cs.nyu.edu
  37.  
  38. PLEASE SEND ME AN EMAIL MESSAGE IF YOU FTP THE SETL2 SYSTEM.  This is not
  39. intended to restrict access in any way, just to let me know who is using
  40. it.  I keep a mailing list of users to send out occasional notices, and
  41. if you don't let me know you're using SETL2 then I can't put you on the
  42. list.
  43.  
  44. I expect this archive to move around Aug-Sept, 1992.  I will send out
  45. a notice to anyone who sends me email.  I will finish my Ph.D. this year
  46. and get a job elsewhere.  The SETL2 system will move with me.  If
  47. anyone hears of an academic job available for someone interested in 
  48. programming language design and implementation I'd appreciate it if you'd
  49. let me know.
  50.  
  51. Thanks
  52.  
  53. -- Kirk
  54.  
  55. MS-DOS
  56. ======
  57.  
  58. MS-DOS is a somewhat uncomfortable environment for SETL2, due to the
  59. severe memory limitation.  You will find two distinct sets of distribution
  60. files here.  One for systems with 8086 processors or no more than 640K of
  61. memory, the other for systems with an 80286 or higher model processor and
  62. some EXTENDED (not expanded) memory.
  63.  
  64. If your computer has an 8086 (or 8088) processor, then you should get the
  65. files dos-1.zoo, dos-2.zoo, dos-3.zoo, and dos-4.zoo, along with zoo.exe
  66. and zoo.doc, if you don't already have them.  Install all of these files
  67. on your disk, then execute
  68.  
  69.    zoo x// dos-1
  70.    zoo x// dos-2
  71.    zoo x// dos-3
  72.    zoo x// dos-4
  73.  
  74. This will create a setl2 directory with several subdirectories. The first
  75. thing you'll want to do is print the documentation (it's distributed in
  76. Postscript form), then follow the installation instructions.
  77.  
  78. The big weakness of the DOS implementation is the 640K barrier.  SETL2
  79. programs can easily consume much more memory than that.  There is another
  80. set of files called dos286-1.zoo, dos286-2.zoo, dos286-3.zoo, and
  81. dos286-4.zoo which may or may not help.  This implementation uses a piece
  82. of software called a DOS extender to run programs in 286 protected mode,
  83. which allows access to as much as 16M of extended memory.  DOS extenders
  84. don't really fit comfortably in DOS, perhaps in part because IBM and
  85. Microsoft would much rather you buy OS/2.  But in the cases in which they
  86. do work they are fairly nice.
  87.  
  88. The version supplied here is written by Lattice and distributed with their
  89. 80286 development system.  There are competing products, but the wonderful
  90. thing about Lattice's is that I can distribute it with SETL2 without
  91. paying Lattice a royalty.  To my knowledge this is the only DOS extender
  92. which is royalty-free.  Anyway, here's how you install it.
  93.  
  94. Under the bin directory, you should find the programs "tune.exe" and
  95. "ex286.exe".  Tune will examine your system and customize the ex286
  96. program for your system.  Make the bin directory current and execute
  97. tune.  Tune will ask you to press some keys, AND MAY HANG YOUR SYSTEM.
  98. This hanging is normal.  Just reboot and try again.  Tune keeps track
  99. of what it was doing in files, so will continue from where it left off.
  100.  
  101. After you do all this, move all the files in the bin directory to some
  102. directory in your path.  Before using SETL2 execute ex286 to install the
  103. DOS extender.  When you're finished execute "ex286 rem" to remove it.  You
  104. may want to create batch files which do this for you.  Other than this
  105. complication the instructions in the documentation should work as usual.
  106.  
  107. If you'd like to find out if all this is working, try the test286 program
  108. included on the bin directory.  Basically, it keeps consuming memory until
  109. an abort.  If it aborts at the same place with and without the extender
  110. installed, then something didn't work.
  111.  
  112. A caveat: DOS extenders are somewhat risky and fragile things.  If your
  113. system is unusual it might not work, due to conflicts with TSR's, device
  114. drivers, etc.  DON'T BOTHER ME WITH REPORTS ABOUT THIS.  It seems to me
  115. that Lattice has done a great job on the DOS extender, but I'm not about
  116. to support it for them, particularly since I don't charge for this.  If
  117. you desperately need the DOS extender to work and are having severe
  118. trouble, then buy the Lattice C 286 Development System, and complain
  119. directly to Lattice.  They have top notch support, and the system is very
  120. nice, so you probably won't be wasting your money.  If you work for a
  121. school then call them and ask about their educational discounts before
  122. calling the mail order companies.  They really are nice people to deal
  123. with, in spite of the flames they've been getting on the net about their
  124. dongle.
  125.  
  126. Macintosh
  127. =========
  128.  
  129. The Macintosh implementation is distributed as a `binhex'ed stuffit
  130. archive.  To decompress you'll need stuffit, which is available on many
  131. archives.
  132.  
  133. The Macintosh implementation requires the Macintosh Programmer's
  134. Workbench, which you will have to get from the Apple Program Developers
  135. Association, which is owned by Apple.  Unfortunately, you'll have to join
  136. APDA first.  I'm sorry about this, but I'm unwilling to abandon the
  137. command line, and Apple doesn't provide one without buying MPW.
  138.  
  139. In the stuffit file you'll find MPW tool versions of the compiler and
  140. interpreter, and a number of scripts which make MPW a fairly comfortable
  141. environment for SETL2.  We are currently working on extensions to allow
  142. access to the Mac Toolbox (still in MPW, though).  If you'd like to be
  143. informed when that is available, send me email.
  144.  
  145. Unix
  146. ====
  147.  
  148. Unix is clearly the most comfortable environment for SETL2.  We get a
  149. command line and all the memory we can afford, without standing on our
  150. head.  The system is distributed as a compressed tar file, and I think it
  151. should be obvious from the names on the archive which you should get.
  152.  
  153. One hopefully nice addition in the Unix environment is a SETL2 mode for
  154. Gnu Emacs, which is included in each file.  I'm still working on this,
  155. but I think what I've got so far will be useful so I'm including it now.
  156. It assumes that you are familiar enough with Emacs LISP to change
  157. keyboard maps.  I'm not about to try to come up with an assignment of
  158. keystrokes which won't conflict with other packages and will be available
  159. on all systems.  The keymap provided is the one I use, but that's certain
  160. to be terrible for anyone else (I don't hesitate to change standard
  161. keymaps, so the keystrokes I use in the SETL2 mode conflict spectacularly
  162. with standard keymaps).  Anyway, here are the functions available.  All
  163. you have to do is bind them to keystrokes you like.
  164.  
  165.    setl2::compile-buffer        => Compile the current buffer, saving
  166.                                    first if necessary.  The cursor will
  167.                                    be placed at the first error if there
  168.                                    is one.
  169.  
  170.    setl2::next-error            => Move the cursor to the next error,
  171.                                    displaying the message in the
  172.                                    minibuffer.
  173.  
  174.    setl2::previous-error        => Move the cursor to the previous
  175.                                    error, displaying the message in the
  176.                                    minibuffer.
  177.  
  178.    setl2::install-template      => Begin entering one of the following
  179.                                    structures:
  180.  
  181.                                          program
  182.                                          package
  183.                                          class
  184.                                          procedure
  185.                                          lambda
  186.                                          for
  187.                                          while
  188.                                          until
  189.                                          loop
  190.                                          if
  191.                                          case
  192.  
  193.                                    After you initiate this, start typing
  194.                                    the structure you want.  The macro will
  195.                                    try to complete the keyword as far as
  196.                                    it can.  When it has a complete keyword
  197.                                    it will enter the structure.  For
  198.                                    example, to enter "program" you would
  199.                                    actually type "prg".
  200.  
  201.    setl2::next-component        => The structures above all have some
  202.                                    variable stuff.  The previous function
  203.                                    writes the skeleton, this one jumps
  204.                                    to places where you need to fill in
  205.                                    things.
  206.  
  207.    setl2::pull-comment          => Find the next comment, then look for
  208.                                    all successive lines with comments
  209.                                    in the same column, like this:
  210.  
  211.                                       --  this is a two
  212.                                       --  line comment.
  213.  
  214.                                    Yank out the text of the comment, and
  215.                                    install it in a scratch buffer, in
  216.                                    word processing mode.  The width of
  217.                                    the buffer depends on the column in
  218.                                    which the comment was found.
  219.  
  220.    setl2::replace-comment       => Only works in a comment buffer
  221.                                    described in the previous function.
  222.                                    removes some extra blanks around the
  223.                                    comment and replaces the orginal.
  224.  
  225.    setl2::new-comment           => Enter a -- at the cursor postion,
  226.                                    back up and call pull-comment.
  227.  
  228.    setl2::wrap-in-comment       => Prefix all lines between point and
  229.                                    mark with --.
  230.  
  231.    setl2::expose-comment        => On all lines between point and mark
  232.                                    beginning with --, remove the --.
  233.  
  234.    setl2::inline-comment        => Jump to column 40 on the current line,
  235.                                    and enter "-- ".  I use this for
  236.                                    describing variables in a var.
  237.  
  238. VMS
  239. ===
  240.  
  241. The VMS implementation is about the same as Unix, and also includes the
  242. SETL2 mode for Emacs.  The only complication here is in the distribution
  243. format.  I'm not really a VMS expert, but I talked to one and was told
  244. that there isn't really a standard format for distributing VMS files.  I
  245. used zoo, since that's my favorite.  You can get it on many archives, but
  246. not this one.
  247.  
  248. You'll have to use defines to allow this to be called normally.  Something
  249. like this:
  250.  
  251.    stll :== $ disk$cs:[?????]stll.exe
  252.    stlc :== $ disk$cs:[?????]stlc.exe
  253.    stlx :== $ disk$cs:[?????]stlx.exe
  254.  
  255. You'll have to change the file names to whatever you normally use, of
  256. course.
  257.  
  258.  
  259.  
  260.  
  261.