On a more mundane level Was: "Open Implementations

staypufd at gte.net staypufd at gte.net
Mon Mar 2 03:34:56 UTC 1998

In your msg you said,

>At 03:52 PM 3/1/98 -0800, Alan C. Kay wrote:
>>At 3:36 PM -0800 3/1/98, Bruce Cohen wrote:
>I have a more mundane question than the those
>that normally are posted to this list...however
>I would like to know WHAT I am supposed to do 
>about the fact that ver 1.31 seems to capriciously
>change my carefully chosen temporary variable names
>to t1, t2,.... This is a royal waste of my time to
>have to go back an change this. I have tried everything
>in the "documentation" to no avail. I even created a
>changes folder before I saved as something else...
>nothing seems to work. Also I have had a problem
>saving workspaces to an external text editor sometimes
>it works and sometimes it does not.
>I am used to C++ (OK throw MUD now) where everything may 
>be very verbose and dangerous for the inexperienced but 
>at least it is fast and reliable...maybe that explains 
>part of my frustration. Now you guys are most likely going
>to say it is a bug in the C compiler used to create Squeak 
>that is to blame. I do not care just answer the question 
>I would appreciate it.
>Cindy Nelson
>PS. I would like to try the sound capabilities since I am a
>professional musician but first the "nuts and bolts' have to
>work before I spend my time...and NO I do not use a Mac.
>Cynthia L. Nelson                                 Phone:  (770) 622-6805   
>P.O. Box 846                                      Fax:    (770) 622-2779
>Duluth, GA 30096                                  e-mail:
>cindynelson at abraxis.com
When you add things to the Squeak environment they get put into the 
'changes' file.  When you upgrade to a diffrent version of squeak, you 
must make sure you move your changes also.

The best way to do this is to take each of the new classes that you've 
created and file it out to it's own '.st' file.  Then you can file them 
in to the new version you are using.

You can see the 'file out' menu option when you pop up the menu in the 
classes browser.  It will file out the selected class catagory, selected 
class, selected method category or selected method depending on what pane 
you pop up the menu in.

You can also see all the changes you've made by opening a changes sorter. 
 This is done by doing using 'open' on the main menu, then 'changes 
sorter'.  This shows which classes etc. you've changed.  If you pop up 
the menu <ctrl or alt> in the section of the browser that says "New 
Changes", you will see options to 'file out".

Alot of this is detailed more in a book called "Smalltalk-80 - The 
Environment" or something close.  It is also commonly reffered to as the 
"Orange Book".  The squeak environment is farther along than this book, 
but the changes stuff is still mostly the same.

Also, some of the online tutorials show examples of this with graphics.

Some of the most important things to remember with Squeak are:
It works with an image file, not off of text files.  File outs are the 
equivalent of the .c or .cpp files in C and C++ respectively.
All changes made to an image are logged into the changes file.  From 
there you can reload things if something goes wrong.
When going to a new release of the tool, you need to have your old "file 
outs" to load into the image.  This is because in a new release, you get 
a new image.  So you load your code in and then get working again.
Squeak is the execution environment.  You don't create an executable per 
say.  You load your code into a image and then make that image what you 
want.  Then you distribute the image and VM as the application.

Finally, with your situation of loosing your variable names.  You need to 
make sure that your Squeak environment has the following:

The VM
a '.image' file
a '.changes' file
a '.sources' file.

If you don't have a sources file, you will see funny variable names.  And 
if you mix ad match theses between releases, you will see those funny 
variable names also, as the variable names are stored in the sources or 
changes files, and the image references them through offsets basically.  
The image is the bytecode to run and the sources and changes are the 
actual text/code that has been written.  (This is very similiar to Java 
and how it works.  In Java if you do not have the .java file, the 
debugger can't show you the source.)

Hope this helps,

More information about the Squeak-dev mailing list