home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 116.lha / SmallTalk / Manual / GENERAL.MS < prev    next >
Text File  |  1986-11-20  |  8KB  |  167 lines

  1. .\" information on Little Smalltalk, version 2, beta release
  2. .SH
  3. General Overview
  4. .PP
  5. First, the obvious facts.  This is not Smalltalk-80, nor even Smalltalk-V.
  6. This is the second version of the Little Smalltalk system, the first version
  7. of which is described in the book recently published by Addison-Wesley*.
  8. .FS
  9. * \fIA Little Smalltalk\fP, by Timothy A. Budd.  Published by Addison
  10. Wesley, 1987.  In better bookshops everywhere.
  11. .FE
  12. Version two is smaller and faster; does more in Smalltalk, less in C; and is
  13. designed to be more portable to a wider variety of machines (we are working
  14. on versions now for various PCs).  
  15. .PP
  16. My attitude towards the language has been
  17. rather cavalier; what I liked I kept and what I didn't like I tossed out.
  18. This is explained in more detail in my book and in the end of this note.
  19. As a consequence, individuals familiar with ST-80 or Smalltalk-V will be struck 
  20. by how much they are missing, and I make no apologies for this.  On the
  21. other hand, you don't find Smalltalk-V posted to comp.source.unix.  
  22. Among the features
  23. you won't find here are metaclasses, class methods, windows, graphics 
  24. support, and more.
  25. .PP
  26. What you will find is a small language that does give you the flavor of
  27. object oriented programming at very little cost.  We are working to improve
  28. the system, and hope to distribute new versions as we develop them, 
  29. as well as porting it to a wide range of machines.
  30. If you find (and preferably, fix!) bugs let us know.
  31. If you make nice additions let us know.
  32. If you want to make complements let us know.
  33. If you want to make complaints let us know.
  34. If you want support you just might be out of luck.
  35. .PP
  36. This software is entirely public domain.  You are encouraged to give it
  37. to as many friends as you may have.  As a courtesy, I would appreciate it
  38. if you left my name on the code as the author, but I make no other claims
  39. to it (I also, of course, disavow any liability for any bizarre things you
  40. may choose to do with it).  Enjoy.
  41. .SH
  42. Building the System
  43. .PP
  44. The first step in building the system is to unpack the sources.
  45. The fact that you are reading this means you have probably already figured
  46. out how to do this.
  47. .PP
  48. There are various different types of files sent with the distribution.
  49. Files ending in .c and .h are C sources, for both the parser and the bytecode
  50. interpreter.  Files ending in .ms are manuscripts, in troff format using
  51. the ms macro package (this file is a good example).  Files ending in .st
  52. are smalltalk sources, compiled by the parser to make the initial object
  53. image.  Finally, there are a few small files that don't fall into any
  54. category, BUGS for listing notable bugs, the make file, and so on.
  55. .PP
  56. The next step is to tailor the system to the type of enviornment it will be
  57. run in.
  58. For most users, this should mean only changing at most three lines in the
  59. file env.h.  These three lines are near the front of the file and are
  60. clearly marked.  Two are hard paths; for the default initial object image
  61. and for a temporary file to be used when editing.  The third line is a
  62. ``meta-define'' which indicates the type of machine and/or operating system
  63. to be used.  You should examine the rest of the file to see the variety of
  64. systems supported.  If you are unable to find anything appropriate, you will
  65. have to look in the document install.ms for further instructions.  In this
  66. latter case, if you are sucessful in porting the software to a new machine,
  67. I would be pleased if you could let me know the nature of the changes
  68. required.
  69. .PP
  70. Once you have tailored the system, there are then
  71. three steps involving in building the system; making the parser
  72. (the component used to generate the initial object image), making the
  73. bytecode interpreter, and making the object image.  Typing \fImake\fP, with
  74. no arguments, will do all three.  For more detailed instructions on making
  75. the system consult install.ms.
  76. .PP
  77. Once you have sucessfully created the parser, the bytecode compiler, and
  78. an object image, type 
  79. .DS I
  80. st
  81. .DE
  82. .LP
  83. to run the system.
  84. Now would be a very good time to go read explore.ms, which would tell you
  85. more how to find your way around.
  86. .SH
  87. Changes from Little Smalltalk version one
  88. .PP
  89. The following changes have been made from version one to version two:
  90. .IP \(bu
  91. The user interface is slightly different.  This is most apparent in the way
  92. new classes are added (see explore.ms), and in the fact that expressions will
  93. not be printed unless you explicitly request printing, and in the fact that
  94. new global variables cannot be created at the command level merely by
  95. assignment.
  96. .IP \(bu
  97. Much (very much) more of the system is now written in Smalltalk, rather
  98. than C.  This allows the user to see, and modify it if they wish.
  99. This also means that the virtual machine is now much smaller.
  100. .IP \(bu
  101. The pseudo variable selfProcess is no longer supported.
  102. The variables true, false and nil are now treated as global variables, not
  103. pseudo variables (see below).
  104. There are plans for adding processes to version two, but they have not
  105. been formalized yet.
  106. .IP \(bu
  107. Global variables are now supported; in fact classes are now simply global
  108. variables, as are the variables true, false, smalltalk and nil.
  109. The global variable globalNames contains the dictionary of all currently
  110. known global variables and their values.
  111. (Pool variables are still not supported).
  112. .IP \(bu
  113. Numbers are a little more robust.  If integer operations overflow, they are
  114. automatically converted into floating point numbers.  This is under control
  115. of Smalltalk code, so if I (or, preferably, somebody else) ever get around
  116. to implementing infinite precision numbers, they can easily be added in.
  117. .IP \(bu
  118. The internal bytecodes are slightly different.  In particular, the bytecode
  119. representing ``send to super'' has been eliminated, and a bytecode representing
  120. ``do a primitive'' has been added.
  121. .IP \(bu
  122. The internal representation of objects is different.  Instead of the
  123. ``super-object'' chain, objects are now created big enough to hold all the
  124. instance variables for all their superclasses.  (This is the way it is done
  125. in Smalltalk-80, and, to the best of my knowledge, in Smalltalk-V).
  126. .IP \(bu
  127. The Collection hierarchy has been rearranged.  The rational for this change
  128. is explained in more detail in another essay.
  129. (possibly not written yet).
  130. .IP \(bu
  131. Some methods, most notably the error message methods, have been moved out
  132. of class Object and into class Smalltalk.
  133. .IP \(bu
  134. The syntax for primitives is different; the keyword \fBprimitive\fP has been
  135. eliminated, and named primitives are now gone as well.
  136. Fewer actions are performed by primitives, having been
  137. replaced by Smalltalk methods.
  138. .IP \(bu
  139. Command line options, such as the fast load feature, have been eliminated.
  140. However, since version two reads in a binary object image, not a textual
  141. file, loading should be considerably faster.
  142. .SH
  143. Electronic Communication
  144. .PP
  145. Here is my address, various net addresses:
  146. .DS I
  147. Tim Budd
  148. Oregon State University
  149. Department of Computer Science
  150. Corvallis, Oregon 97331 USA
  151. (503) 754-3273
  152.  
  153. budd@ cs.orst.edu
  154.  
  155. {tektronix, hp-pcd} !orstcs!budd
  156. .DE
  157. .SH
  158. Changes
  159. .PP
  160. I want to emphasize that this is not even a beta-test version (does that
  161. make it an alpha or a gamma version?).  I will be making a number of
  162. changes, hopefully just additions to the initial image, in the next
  163. few months.  In addition, I hope to prepare versions for other machines,
  164. notably the Macintosh and the IBM PC.  I am also encouraging others to
  165. port the system to new machines.  If you have done so, please let me
  166. know.
  167.