Category : Miscellaneous Language Source Code
Archive   : STV2.ZIP
Filename : READ_ME

 
Output of file : READ_ME contained in archive : STV2.ZIP






_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




  3 Responses to “Category : Miscellaneous Language Source Code
Archive   : STV2.ZIP
Filename : READ_ME

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/