 --  --
  
  
  
  1. Installation Instructions
  
 _  The following lists installation instructions for those systems to which Version 3 of Little
  i Smalltalk has been ported at present. Note that installation involves the creation of two programs. The
  o first, called ``initial'', is run once to create the initial object image (usually a filed called ``systemIm-
  e age''). The second program is the smalltalk interpreter. To run smalltalk, both these files must be
  i accessible. Systems that use the supplied Makefile run initial automatically; in some other systems you
   may need to do this manually.
   
 `  If you receive the distribution on Mac or IBM disks and you want to run the system under Unix
 8 you must ``undo'' some of the changes described below.
  
  1.1. Atari
  
 c  I've been told (no first hand exprience) that the code works on the atari. I've set up a minimal
  i description in env.h - could somebody tell me if the atari supports prototypes, signals, or some of the
   other features?
   
 ^  You do have to make the 'rb' changes described for the IBM PC (below), however you keep the
 ] rm instruction instead of DEL, and change the editor to whatever your system has (memacs?).
   
 ' 1.2. Gnu C Compiler (Sequent Balance)
   
 b  If at all possible, Use the Gnu C Compiler. I have found the code to be much smaller (up to 1/3
 g smaller) and much faster (up to twice as fast). So far this has been used on the Sequent Balance sys-
   tem.
  
 a  Note that these sources support old style prototypes, as are used in Lightspeed C and Turbo C,
  ` and not the newer ANSI prototypes as are used in the gcc compiler. So do not define PROTO when
  using the gcc compiler
  
  1.3. HP-UX
  
 a  Simply say ``make sysvtty'' to make a version with the tty interface. (As of yet, I don't have
  U access to a system v system with an X-window interface, so I can't test that code).
   
   1.4. IBM PC / Turbo C compiler
  
 f Note: If you receive the sources on 5\(12 disks containing both source and executable, the following
 / changes have already been made to the system.
   
 ?  Define the symbol TURBOC at the beginning of the file env.h.
   
 d  Edit the file file.st, changing the command used to delete files from rm to del (notice the space
  following the del):
   
 
   delete
     ('del ', name) unixCommand
   
 Q In the file file.st change the mode on the command to save images from w to wb.
   
    saveImage: name 
     scheduler critical: [
 *     " first get rid of our own process "
 8     scheduler removeProcess: scheduler currentProcess.
     File new;
      name: name;
       open: 'wb';
       saveImage;
 
     close ]
   
 h In a similar manner change the mode on the file open in the initialize method in file tty.st to use wb
  instead of w.
   
  
  
  
  --  --
  
   - 2 -
  
  
  
    initialize
 ,    " initialize the initial object image "
     self createGlobals.
     File new;
      name: 'systemImage';
      open: 'wb';
       saveImage;
      close.
  
 f And also in tty.st change the editor from vi to me (or whatever your favorite editor happens to be).
  
     editor \(<- 'me'.
  
  
 a  Because of segmentation limits it is not possible to have an object table any larger than 6500
  P objects (the current default). This value is set by a define found in memory.h
  
   # define ObjectTableMax 6500
   
  
 8  Compile in the compact mode (small code, large data).
  
  1.5. Macintosh Lightspeed C
   
 _  NOTE: If you get the distribution on 3\(14 MAC Disks the source code changes described below
  * have probably already been made for you.
  
 3  The mac distrubtion disk contains the following.
   
 P (a) A folder called ``C Sources'' that contains (naturally) all the C sources.
  
 f (b) A folder called ``ST Sources'' that contains (also naturally) all the Smalltalk sources, plus an
 e  application called ``initial'' that can be used to create or recreate the initial object image. To
  d  make changes to the image, simply edit the appropriate smalltalk files, run initial, and move the
 4  file ``systemImage'' to the appropriate location.
  
 d (c) Two Lightspeed C projects called ``TextEdit'' and ``Stdwin'', containing code taken from Guido
 (  van Rossums Standard Windows package.
  
 Y (d) A file called ``systemImage'', which is the output of the application from part (b)
   
 G (e) An application called ``st'', which is the smalltalk interpreter.
   
 e (f) A folder called ``misc'' that contains various different files, such as documentation and other
  
  things.
  
 `  It is only necessary to recompile if you make changes to the C source. If you make changes to
 f the Smalltalk source you only need to rerun the application called ``initial'' contained in the ``ST
  Sources'' folder.
   
 a  If you get the sources from some other location (say off the net), you must make the following
  j alterations. Change the mode on the file open in the saveImage command (in file.st) and in the initalize
 e command (file stdwin.st). Define the symbol LIGHTC at the beginning of the file env.h (See instruc-
  7 tions for the IBM PC above for a fuller explanation).
   
 ]  To compile you need guido van rossums Standard Windows package. Follow his instructions to
  k create the stdwin and textedit projects (these are already on the distribution disk). To make the initial
  j program, create a project ``initialProj'' with segments as follows. In the first segment place MacTraps.
 f In the second segment place Stdwin. In the third place TextEdit. In the forth place the Unix library
 m files math, stdio, storage, strings and unix. In the fifth place the sources filein.c, initial.c, interp.c,
  h memory.c, names.c, news.c, primitives.c, unixio.c and winprims.c. In the sixth and final segment place
 j lex.c and parser.c. To create the st program use the same structure, subsituting st.c for initial.c. You
 ; must check the ``separate STRS'' option on both projects.
   
 e  Make sure when you run the initial object that all the smalltalk sources are in the current direc-
  n tory; it does not complain if it can't open a file, it simply goes on. Also when you fileIn a file, the file
  
  
  
  --  --
  
   - 3 -
  
  
 # must be in the current directory.
   
 a  The Mac version uses the windowing interface. It is currently very fragile. (A few known bugs;
  g can't restore from saved image files, output sometimes goes wrong places, output often doesn't appear
   until you click the mouse).
   
 d  [ It would be nice if clicking on an image file would start the smalltalk application. If anybody
 @ knows how to make Lightspeed C do this, let me know. Thanks ].
  
  1.6. Sequent Balance
  
 6  Say ``make bsdtty'' to make a tty interface system.
  
 - 1.7. TekTronix 4315, Green Hills C Compiler
   
 _  Say ``make bsdtty'' to make a tty interface system. Say ``make bsdx11'' to make an x-windows
  * interface system (still somewhat buggy).
  
  1.8. VAX / VMS
  
 a  Since VMS doesn't understand Unix Makefiles, the distribution tape supplies a command file you
  d can use. First define the symbol VMS near the begining of the file env.h, then execute the command
 _ file called vms.com. This makes a version using the tty interface. A VMS version using the X-
  - windows interface has not been created yet.
   
  2. Test Cases
   
 a  One you have a running system; the following can be used to run the standard test cases. First
  j load the file test.st. If you are using the windowing interface select the fileIn menu item and the file
 h ``test.st'' (from the ST Sources folder), if you are using the tty interface use the following command
  
   File new; fileIn: 'test.st'
  
 . Then give the command to run all test cases.
  
   Test new all
   
 U Messages will be displayed as test cases are performed, and if any test cases fail.
   
   3. The Standard Window Package
  
 ^  There is an experimental windows style interface based on Guido van rossums standard window
 e package. This permits the system to work on top of X-windows, as well as the macintosh. Information
  a on standard windows can be obtained directly from guido at guido@mcvax.uucp, or mcvax!guido, or
 sb possibly gvr@src.dec.com. His paper mail address is Guido van Rossum, Center for Mathematics and
 _ Computer Science, P.O. Box 4079, 1009 AB Amsterdam, The Netherlands. Sources for the standard
 ie window package are not included on the Little Smalltalk distribution, but they are available public
 nb domain by ftp from DEC SRC, machine gatekeeper.dec.com (address [128.45.9.52]). The subdirectory
 0 is pub/stdwin. Contact guido for more details.
  
 b  To make the projects for the macintosh version, follow guidos instructions. For other versions,
 d make a file stdw.o by linking together all of guidos sources for your particular system. Here is a
 , makefile for the X11 version, for example.
  
  
  
  
  --  --
  
   - 4 -
  
  
  
  #
 ' # X11 version of stdwins
  #
 o x11 = caret.o draw.o font.o menu.o timer.o cutbuffer.o error.o general.o scroll.o window.o dialog.o event.o llevent.o system.o
 S alfa = bind.o draw.o event.o keymap.o measure.o menu.o scroll.o stdwin.o syswin.o
   gen = askfile.o perror.o
 ? textedit = editwin.o textdbg.o textedit.o textlow.o textbrk.o
 
= tools = endian.o getopt.o glob.o monocase.o strdup.o swap.o
 l/ x11files = ${x11} ${gen} ${textedit} ${tools}
 h 
  stdw.o: ${x11files}
 u  ld -r -o stdw.o ${x11files}
  
  
  
 .  I emphasize this interface is very fragile.
  
  4. Possible Changes
 e 
 a  There are a couple of easy changes you may want to make at your site. The default editor is vi
 Ce (indicated by the value of the global variable set in the routine createGlobals in either tty.st or
  i stdwin.st); this can be changed to any other editor you like. The system also prints the current object
  d count prior to asking for commands from the user. This can be eliminated by removing the primitive
 ? <2> from the method initialize, class Scheduler, file tty.st.
   
  
  
  
  --  --
 