home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
- _G_e_n_e_r_a_l _O_v_e_r_v_i_e_w
-
- First, the obvious facts. This is not Smalltalk-80,
- nor even Smalltalk-V. This is the second version of the
- Little Smalltalk system, the first version of which is
- described in the book recently published by Addison-Wesley*.
- Version two is smaller and faster; does more in Smalltalk,
- less in C; and is designed to be more portable to a wider
- variety of machines (we are working on versions now for
- various PCs).
-
- My attitude towards the language has been rather
- cavalier; what I liked I kept and what I didn't like I
- tossed out. This is explained in more detail in my book and
- in the end of this note. As a consequence, individuals fam-
- iliar with ST-80 or Smalltalk-V will be struck by how much
- they are missing, and I make no apologies for this. On the
- other hand, you don't find Smalltalk-V posted to
- comp.source.unix. Among the features you won't find here are
- metaclasses, class methods, windows, graphics support, and
- more.
-
- What you will find is a small language that does give
- you the flavor of object oriented programming at very little
- cost. We are working to improve the system, and hope to
- distribute new versions as we develop them, as well as port-
- ing it to a wide range of machines. If you find (and
- preferably, fix!) bugs let us know. If you make nice addi-
- tions let us know. If you want to make complements let us
- know. If you want to make complaints let us know. If you
- want support you just might be out of luck.
-
- This software is entirely public domain. You are
- encouraged to give it to as many friends as you may have.
- As a courtesy, I would appreciate it if you left my name on
- the code as the author, but I make no other claims to it (I
- also, of course, disavow any liability for any bizarre
- things you may choose to do with it). Enjoy.
-
- _B_u_i_l_d_i_n_g _t_h_e _S_y_s_t_e_m
-
- The first step in building the system is to unpack the
- sources. The fact that you are reading this means you have
- probably already figured out how to do this.
-
- The next step is to tailor the system to the type of
- enviornment it will be run in. For most users, this should
- mean only changing at most three lines in the file env.h.
- These three lines are near the front of the file and are
- clearly marked. Two are hard paths; for the default initial
- _________________________
- * _A _L_i_t_t_l_e _S_m_a_l_l_t_a_l_k, by Timothy A. Budd. Published by
- Addison Wesley, 1987. In better bookshops everywhere.
-
-
-
-
- October 26, 1987
-
-
-
-
-
- - 2 -
-
-
- object image and for a temporary file to be used when edit-
- ing. The third line is a ``meta-define'' which indicates
- the type of machine and/or operating system to be used. You
- should examine the rest of the file to see the variety of
- systems supported. If you are unable to find anything
- appropriate, you will have to look in the document
- install.ms for further instructions. In this latter case,
- if you are sucessful in porting the software to a new
- machine, I would be pleased if you could let me know the
- nature of the changes required.
-
- Once you have tailored the system, there are then three
- steps involving in building the system; making the parser
- (the component used to generate the initial object image),
- making the bytecode interpreter, and making the object
- image. Typing _m_a_k_e, with no arguments, will do all three.
- For more detailed instructions on making the system consult
- install.ms.
-
- Once you have sucessfully created the parser, the
- bytecode compiler, and an object image, type
-
- st
-
-
- to run the system. Now would be a very good time to go read
- explore.ms, which would tell you more how to find your way
- around.
-
- _C_h_a_n_g_e_s _f_r_o_m _L_i_t_t_l_e _S_m_a_l_l_t_a_l_k _v_e_r_s_i_o_n _o_n_e
-
- The following changes have been made from version one
- to version two:
-
- o+ The user interface is slightly different. This is most
- apparent in the way new classes are added (see
- explore.ms), and in the fact that expressions will not
- be printed unless you explicitly request printing, and
- in the fact that new global variables cannot be created
- at the command level merely by assignment.
-
- o+ Much (very much) more of the system is now written in
- Smalltalk, rather than C. This allows the user to see,
- and modify it if they wish. This also means that the
- virtual machine is now much smaller.
-
- o+ The pseudo variable selfProcess is no longer supported.
- The variables true, false and nil are now treated as
- global variables, not pseudo variables (see below).
- There are plans for adding processes to version two,
- but they have not been formalized yet.
-
- o+ Global variables are now supported; in fact classes are
- now simply global variables, as are the variables true,
-
-
-
- October 26, 1987
-
-
-
-
-
- - 3 -
-
-
- false, smalltalk and nil. The global variable global-
- Names contains the dictionary of all currently known
- global variables and their values. (Pool variables are
- still not supported).
-
- o+ The internal bytecodes are slightly different. In par-
- ticular, the bytecode representing ``send to super''
- has been eliminated, and a bytecode representing ``do a
- primitive'' has been added.
-
- o+ The internal representation of objects is different.
- Instead of the ``super-object'' chain, objects are now
- created big enough to hold all the instance variables
- for all their superclasses. (This is the way it is
- done in Smalltalk-80, and, to the best of my knowledge,
- in Smalltalk-V).
-
- o+ The Collection hierarchy has been rearranged. The
- rational for this change is explained in more detail in
- another essay. (possibly not written yet).
-
- o+ Some methods, most notably the error message methods,
- have been moved out of class Object and into class
- Smalltalk.
-
- o+ The syntax for primitives is different; the keyword
- primitive has been eliminated, and named primitives are
- now gone as well. Fewer actions are performed by prim-
- itives, having been replaced by Smalltalk methods.
-
- o+ Command line options, such as the fast load feature,
- have been eliminated. However, since version two reads
- in a binary object image, not a textual file, loading
- should be considerably faster.
-
- _E_l_e_c_t_r_o_n_i_c _C_o_m_m_u_n_i_c_a_t_i_o_n
-
- Here is my address, various net addresses:
-
- Tim Budd
- Oregon State University
- Department of Computer Science
- Corvallis, Oregon 97331 USA
- (503) 754-3273
-
- budd@ cs.orst.edu
-
- {tektronix, hp-pcd} !orstcs!budd
-
-
- _C_h_a_n_g_e_s
-
- I want to emphasize that this is not even a beta-test
- version (does that make it an alpha or a gamma version?). I
-
-
-
- October 26, 1987
-
-
-
-
-
- - 4 -
-
-
- will be making a number of changes, hopefully just additions
- to the initial image, in the next few months. In addition,
- I hope to prepare versions for other machines, notably the
- Macintosh and the IBM PC. I am also encouraging others to
- port the system to new machines. If you have done so,
- please let me know.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- October 26, 1987
-
-
-