home *** CD-ROM | disk | FTP | other *** search
- From cs.nyu.edu via anonymous ftp, directory /pub/setl2.
-
- SETL2
- =====
-
- This directory contains all the distribution files for the SETL2
- programming system. It's implemented on a number of machines and all of
- the binaries can be found in the various files here. As usual, this
- entire system is provided free of charge, but WITHOUT ANY WARRANTY. Use it
- at your own risk.
-
- There are separate distribution files for each supported system, but this
- README file covers all of them. Look through what follows for the system
- in which you are interested, and ignore the rest. You should find the
- following systems supported:
-
- MS-DOS (versions 3.1 and higher)
- Extended MS-DOS (80286 and higher processors with extended memory)
- Apple Macintosh (with the MPW environment)
- Sun 3 (SunOS 4)
- Sun 4 (SunOS 4)
- IBM RS/6000 (AIX 3.1)
- DEC RISC product line (Ultrix 4.0)
- DEC Vaxen (Mt. Xinu Unix)
- DEC Vaxen (VMS)
- [and OS/2.]
-
- Please report any bugs or problems to:
-
- Kirk Snyder
- Courant Institute of Mathematical Sciences
- New York University
- 251 Mercer Street
- New York, NY 10012
-
- e-mail: snyder@cs.nyu.edu
-
- PLEASE SEND ME AN EMAIL MESSAGE IF YOU FTP THE SETL2 SYSTEM. This is not
- intended to restrict access in any way, just to let me know who is using
- it. I keep a mailing list of users to send out occasional notices, and
- if you don't let me know you're using SETL2 then I can't put you on the
- list.
-
- I expect this archive to move around Aug-Sept, 1992. I will send out
- a notice to anyone who sends me email. I will finish my Ph.D. this year
- and get a job elsewhere. The SETL2 system will move with me. If
- anyone hears of an academic job available for someone interested in
- programming language design and implementation I'd appreciate it if you'd
- let me know.
-
- Thanks
-
- -- Kirk
-
- MS-DOS
- ======
-
- MS-DOS is a somewhat uncomfortable environment for SETL2, due to the
- severe memory limitation. You will find two distinct sets of distribution
- files here. One for systems with 8086 processors or no more than 640K of
- memory, the other for systems with an 80286 or higher model processor and
- some EXTENDED (not expanded) memory.
-
- If your computer has an 8086 (or 8088) processor, then you should get the
- files dos-1.zoo, dos-2.zoo, dos-3.zoo, and dos-4.zoo, along with zoo.exe
- and zoo.doc, if you don't already have them. Install all of these files
- on your disk, then execute
-
- zoo x// dos-1
- zoo x// dos-2
- zoo x// dos-3
- zoo x// dos-4
-
- This will create a setl2 directory with several subdirectories. The first
- thing you'll want to do is print the documentation (it's distributed in
- Postscript form), then follow the installation instructions.
-
- The big weakness of the DOS implementation is the 640K barrier. SETL2
- programs can easily consume much more memory than that. There is another
- set of files called dos286-1.zoo, dos286-2.zoo, dos286-3.zoo, and
- dos286-4.zoo which may or may not help. This implementation uses a piece
- of software called a DOS extender to run programs in 286 protected mode,
- which allows access to as much as 16M of extended memory. DOS extenders
- don't really fit comfortably in DOS, perhaps in part because IBM and
- Microsoft would much rather you buy OS/2. But in the cases in which they
- do work they are fairly nice.
-
- The version supplied here is written by Lattice and distributed with their
- 80286 development system. There are competing products, but the wonderful
- thing about Lattice's is that I can distribute it with SETL2 without
- paying Lattice a royalty. To my knowledge this is the only DOS extender
- which is royalty-free. Anyway, here's how you install it.
-
- Under the bin directory, you should find the programs "tune.exe" and
- "ex286.exe". Tune will examine your system and customize the ex286
- program for your system. Make the bin directory current and execute
- tune. Tune will ask you to press some keys, AND MAY HANG YOUR SYSTEM.
- This hanging is normal. Just reboot and try again. Tune keeps track
- of what it was doing in files, so will continue from where it left off.
-
- After you do all this, move all the files in the bin directory to some
- directory in your path. Before using SETL2 execute ex286 to install the
- DOS extender. When you're finished execute "ex286 rem" to remove it. You
- may want to create batch files which do this for you. Other than this
- complication the instructions in the documentation should work as usual.
-
- If you'd like to find out if all this is working, try the test286 program
- included on the bin directory. Basically, it keeps consuming memory until
- an abort. If it aborts at the same place with and without the extender
- installed, then something didn't work.
-
- A caveat: DOS extenders are somewhat risky and fragile things. If your
- system is unusual it might not work, due to conflicts with TSR's, device
- drivers, etc. DON'T BOTHER ME WITH REPORTS ABOUT THIS. It seems to me
- that Lattice has done a great job on the DOS extender, but I'm not about
- to support it for them, particularly since I don't charge for this. If
- you desperately need the DOS extender to work and are having severe
- trouble, then buy the Lattice C 286 Development System, and complain
- directly to Lattice. They have top notch support, and the system is very
- nice, so you probably won't be wasting your money. If you work for a
- school then call them and ask about their educational discounts before
- calling the mail order companies. They really are nice people to deal
- with, in spite of the flames they've been getting on the net about their
- dongle.
-
- Macintosh
- =========
-
- The Macintosh implementation is distributed as a `binhex'ed stuffit
- archive. To decompress you'll need stuffit, which is available on many
- archives.
-
- The Macintosh implementation requires the Macintosh Programmer's
- Workbench, which you will have to get from the Apple Program Developers
- Association, which is owned by Apple. Unfortunately, you'll have to join
- APDA first. I'm sorry about this, but I'm unwilling to abandon the
- command line, and Apple doesn't provide one without buying MPW.
-
- In the stuffit file you'll find MPW tool versions of the compiler and
- interpreter, and a number of scripts which make MPW a fairly comfortable
- environment for SETL2. We are currently working on extensions to allow
- access to the Mac Toolbox (still in MPW, though). If you'd like to be
- informed when that is available, send me email.
-
- Unix
- ====
-
- Unix is clearly the most comfortable environment for SETL2. We get a
- command line and all the memory we can afford, without standing on our
- head. The system is distributed as a compressed tar file, and I think it
- should be obvious from the names on the archive which you should get.
-
- One hopefully nice addition in the Unix environment is a SETL2 mode for
- Gnu Emacs, which is included in each file. I'm still working on this,
- but I think what I've got so far will be useful so I'm including it now.
- It assumes that you are familiar enough with Emacs LISP to change
- keyboard maps. I'm not about to try to come up with an assignment of
- keystrokes which won't conflict with other packages and will be available
- on all systems. The keymap provided is the one I use, but that's certain
- to be terrible for anyone else (I don't hesitate to change standard
- keymaps, so the keystrokes I use in the SETL2 mode conflict spectacularly
- with standard keymaps). Anyway, here are the functions available. All
- you have to do is bind them to keystrokes you like.
-
- setl2::compile-buffer => Compile the current buffer, saving
- first if necessary. The cursor will
- be placed at the first error if there
- is one.
-
- setl2::next-error => Move the cursor to the next error,
- displaying the message in the
- minibuffer.
-
- setl2::previous-error => Move the cursor to the previous
- error, displaying the message in the
- minibuffer.
-
- setl2::install-template => Begin entering one of the following
- structures:
-
- program
- package
- class
- procedure
- lambda
- for
- while
- until
- loop
- if
- case
-
- After you initiate this, start typing
- the structure you want. The macro will
- try to complete the keyword as far as
- it can. When it has a complete keyword
- it will enter the structure. For
- example, to enter "program" you would
- actually type "prg".
-
- setl2::next-component => The structures above all have some
- variable stuff. The previous function
- writes the skeleton, this one jumps
- to places where you need to fill in
- things.
-
- setl2::pull-comment => Find the next comment, then look for
- all successive lines with comments
- in the same column, like this:
-
- -- this is a two
- -- line comment.
-
- Yank out the text of the comment, and
- install it in a scratch buffer, in
- word processing mode. The width of
- the buffer depends on the column in
- which the comment was found.
-
- setl2::replace-comment => Only works in a comment buffer
- described in the previous function.
- removes some extra blanks around the
- comment and replaces the orginal.
-
- setl2::new-comment => Enter a -- at the cursor postion,
- back up and call pull-comment.
-
- setl2::wrap-in-comment => Prefix all lines between point and
- mark with --.
-
- setl2::expose-comment => On all lines between point and mark
- beginning with --, remove the --.
-
- setl2::inline-comment => Jump to column 40 on the current line,
- and enter "-- ". I use this for
- describing variables in a var.
-
- VMS
- ===
-
- The VMS implementation is about the same as Unix, and also includes the
- SETL2 mode for Emacs. The only complication here is in the distribution
- format. I'm not really a VMS expert, but I talked to one and was told
- that there isn't really a standard format for distributing VMS files. I
- used zoo, since that's my favorite. You can get it on many archives, but
- not this one.
-
- You'll have to use defines to allow this to be called normally. Something
- like this:
-
- stll :== $ disk$cs:[?????]stll.exe
- stlc :== $ disk$cs:[?????]stlc.exe
- stlx :== $ disk$cs:[?????]stlx.exe
-
- You'll have to change the file names to whatever you normally use, of
- course.
-
-
-
-
-