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 >
Wrap
Text File
|
1986-11-20
|
8KB
|
167 lines
.\" information on Little Smalltalk, version 2, beta release
.SH
General Overview
.PP
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*.
.FS
* \fIA Little Smalltalk\fP, by Timothy A. Budd. Published by Addison
Wesley, 1987. In better bookshops everywhere.
.FE
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).
.PP
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 familiar 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.
.PP
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 porting it to a wide range of machines.
If you find (and preferably, fix!) bugs let us know.
If you make nice additions 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.
.PP
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.
.SH
Building the System
.PP
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.
.PP
There are various different types of files sent with the distribution.
Files ending in .c and .h are C sources, for both the parser and the bytecode
interpreter. Files ending in .ms are manuscripts, in troff format using
the ms macro package (this file is a good example). Files ending in .st
are smalltalk sources, compiled by the parser to make the initial object
image. Finally, there are a few small files that don't fall into any
category, BUGS for listing notable bugs, the make file, and so on.
.PP
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 object image
and for a temporary file to be used when editing. 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.
.PP
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 \fImake\fP, with
no arguments, will do all three. For more detailed instructions on making
the system consult install.ms.
.PP
Once you have sucessfully created the parser, the bytecode compiler, and
an object image, type
.DS I
st
.DE
.LP
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.
.SH
Changes from Little Smalltalk version one
.PP
The following changes have been made from version one to version two:
.IP \(bu
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.
.IP \(bu
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.
.IP \(bu
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.
.IP \(bu
Global variables are now supported; in fact classes are now simply global
variables, as are the variables true, false, smalltalk and nil.
The global variable globalNames contains the dictionary of all currently
known global variables and their values.
(Pool variables are still not supported).
.IP \(bu
Numbers are a little more robust. If integer operations overflow, they are
automatically converted into floating point numbers. This is under control
of Smalltalk code, so if I (or, preferably, somebody else) ever get around
to implementing infinite precision numbers, they can easily be added in.
.IP \(bu
The internal bytecodes are slightly different. In particular, the bytecode
representing ``send to super'' has been eliminated, and a bytecode representing
``do a primitive'' has been added.
.IP \(bu
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).
.IP \(bu
The Collection hierarchy has been rearranged. The rational for this change
is explained in more detail in another essay.
(possibly not written yet).
.IP \(bu
Some methods, most notably the error message methods, have been moved out
of class Object and into class Smalltalk.
.IP \(bu
The syntax for primitives is different; the keyword \fBprimitive\fP has been
eliminated, and named primitives are now gone as well.
Fewer actions are performed by primitives, having been
replaced by Smalltalk methods.
.IP \(bu
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.
.SH
Electronic Communication
.PP
Here is my address, various net addresses:
.DS I
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
.DE
.SH
Changes
.PP
I want to emphasize that this is not even a beta-test version (does that
make it an alpha or a gamma version?). I 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.