7 Make sure that when you use VMSTAR you use the command:    $tar nm=<v>xvf smtalk43.tar    To install on VMS enter:   $set def [.smtalk43.vmsmake] $@build_make $@make_startup $set command make  $set def [-.smtalk.src]  $make/makefile=makefile.vms       . 		Release 4.3 of Little Smalltalk for XWindows  H Note: This version has been built and tested on the following platforms:   	INTEL 386	(LINUX) 	INTEL 486	(SYSVR4)  	INTEL 486	(NEXT)  	CRAY XMP	(UNICOS 6) 	SPARC 2		(SUNOS 4.1.3)  	AMDAHL		(UTS 1.4.1) SYSV  	DECStation	(ULTRIX 4.2)! 	SEQUENT		(DYNIX/ptx V2.1.0) SYSV  	ALPHA AXP	(OSF/1) 	VAX		(VMS 5.5-2)     = Origin: Little Smalltalk V3.04 and STDWIN for Xwindows V0.9.5    	Little Smalltalk from Tim Budd  	STDWIN from Guido van Rossum   E 	I could not get the latest version of STDWIN 0.9.6 to work under any  	circumstances.   
 Requirements:    	K + R compatible C compiler 	XWindows X.V11R4 or X.V11R5 	8 MBytes of disk storage   
 Installation:      	tar -xvf smtalk42.tar 	cd smtalk42 	make zzzzz    	Where zzzzz can be:   		linux  		sunos  		ultrix	 		scounix  		unicos 		uts 	 		sequent  		osf1      A 	The Smalltalk image(systemImage) will be created in the smtalk42 A 	directory along with the XWindow version of the Little Smalltalk  	interpretor(xst).  	 Good Luck 
 Tom McCune temccune@rockwell.com     I The following improvements have been made to Little Smalltalk and the Van  Guido X window interface:      Release 4.3    o Support for VMS    o General bug fixes    Release 4.2   H o Fixes to the memory management that caused crashes when number objects:   exceeded the memory allocation block size of 6000 bytes.  . o Performance balance the multitasking system.  J o Integrate all platform code into one source code tar file. All platforms&   now have all fixes and new features.   o Improvements to the makefile.   H o Stress test against over 33000 objects, e.g. input, parse, and processJ   the objects. Passes with flying colors. wish I could display all of them>   at once in a browser window. Sorry, limitations of XWindows.     o Add window edit feature.  > o Remove Window debugging code. My fixes appear to be working.  B o Add modified QuickSort to the Array class and add a primitive to   speed it up.   Release 4.1     E o Improvements to the scheduler. Fixes of several problems related to !   the window management software.   L o Add sanity checks to the graphics primitives to prevent drawing conflicts.   Release 4.0    o Clipping regions  K   A problem in clipping regions manifested itself as highlighted text being F   redrawn incorrectly when an expose event occurred, .e.g. a partiallyI   covered Smalltalk window would find highlighted text clobbered when the J   window was exposed again. This was fixed by forcing a complete redraw ofG   the window(no clipping). This was an aesthetic nuisance really, and I I   believe there could actually be a bug in XWindows since experimentation I   with the routines led me to believe that Guido knew  what he was doing.    o Scrollbars  L   Scrollbars were not being added properly to text windows when the documentN   size exceeded the window size as in the Workspace window. Actually, for textL   windows anyway, the call to update the document size was never being done.N   I added this to the routine terecompute (which is called as lines get added),   and now you get scroll bars appropriately.   o Horizontal Scrollbar  I   The horizontal scrollbar was not being aligned properly which showed up J   on some workstations(SUN) but not others. The fix worked may it work for7   all workstations tested. Besides, the code was wrong.    o Saveimage   K   When the saveimage menu item is activated, selecting cancel would cause a K   core dump because nothing was returned from the routine. I added a return O   of the  nilobject and changed Little Smalltalk to do nothing when a nilobject +   was returned (user did cancel after all).   & o Application Dictionary and Menu Item  H   Created a global applications dictionary and matching menu item so oneJ   could create applications on the fly and activate them via the Workspace   menu item.    o Errors in handling the Windows  K   The windows are reserved by placing themselves in an array. Then when the J   window is closed, a nil is stored in the array. Unfortunately, the checkG   to store nil there is whether the window variable itself isNIL. Oops! F   This caused situations where opening and closing windows willy nillyI   could cause the close of a window to actually store a nil over anothers I   newly created window array item. This was validated by placing a couple @   of sanity checks in the system. Things appear very stable now.     o Output interrupt  N   Another nuisance related to XWindows was resolved in two ways. When printingO   to a text window, the printing would often just stop until the user "clicked" @   on the window. The Smalltalk interpretor has a loop counter toM   perform so many intructions for a Smalltalk process before allowing a yield L   to the Window system, e.g. wait-for-a-window-event. The process would thenG   continue. This happened more often when numbers were printed. Further L   investigation revealed that conversion of integers to strings for printingK   was being done by Smalltalk code causing literally thousands of Smalltalk K   instructions to be executed(though quite correctly). To fix this, I added H   another primitive to perform a sprintf and return the resulting stringK   object. The maximum steps allowed a Smalltalk program was also increased. H   The problem/nuisance still occurrs when a failure triggers a SmalltalkK   traceback. The Smalltalk traceback code must yield to the next process to F   update the process link pointers. Xwindows then gains control till aG   mouse event occurrs. The traceback then continues, albeit on whatever    window you click on.   o Multitasking  K   Multitaksing was severely hampered by the above XWindow getevent problem. J   With that fixed, multitasking could be tuned to actually work. You could4   fork one Smalltalk code block and go on to others.   o Sorted List Window as Browser   2   Added sorted list browser for the class browser.  8 o Problems with clicking on window while output is going  G   While output was going to one window and another was clicked to start I   another task (or browse), the output would go to the new window. Yikes!    This was fixed also.   o Carriage Return displayed   M   On some window systems(SUN), carriage return is displayed as a funky little 6   symbol. I added code to not display Carriage Return.   o Integer arithmetic  A   All integers are now 32 bits, allowing for more objects. I have E   the maximum number of objects set to 64000. Be careful, all objects F   are intialized to nilobject at program startup. So choosing a largerD   number could result in a long wait before seeing your window. The D   arithmetic was changed to use double float arithmetic to check forJ   overflow. Some may cry foul and  want to use another more scientificallyJ   correct mult/carry/check-for-overflow  method. I have been reviewing theI   latest Dr. Dobbs journal on arbitray precision arithmetic IEEE routines K   and I like what I see. But they are  slow. Another choice would be to use L   GNU C as I understand that long long is supported as will the SUN compiler   in the near future.    o GNU C   I   I have tried compiling and running the Little Smalltalk system with the H   SUNOS 4.1.1 c compiler on a SPARC and the GNU c compiler. Both provideH   the same results and pass the tests as provided with the system, which   is encouraging.    o DECstation with ULTRIX 4.2  G   Same as above. The only other change was use the mBlockAlloc macro in K   memory.h instead of the system mBlockAlloc which fails on the DECStation.    o Syntax of Name Binding  J   Name binding has been changed to support with the "<-" syntax as in some'   implementations or ":=" as in others.    o Bag class   L   Implementing a Bag class required only a few lines of Smalltalk code since8   a Bag is just a Set with no retrictions on duplicates.   o Transcipt Window  M   Adding a transcript window in Little Smalltalk is a rather trivial process.o   For example:     In the Workspace enter:   7   Transcript <- TextWindow new;title: 'Transcript';open[  K   Go to the menu and select do it. Your transcript window will appear. ThenlL   using the browser, select the print method for the string class and changeF   printer to Transcript. From now on, print of any text will go to theL   transcript window. This saves deleting your output text from the WorkspaceC   menu when you just wish to repeat or modify the previous command.   
 o addSubClass)  N   For those more adventurous, you might wish to change addSubClass to addclassJ   as in other Smalltalk systems. This seems to work, but for now I felt it8   best to leave it so that it matches the documentation.  	 o Futures      BTrees and Sparse arrays  J   There are enough primitives left over to implement such important thingsJ   as sparse arrays, B+trees, and therefore virtual objects. I have most ofG   the code to do this already but wish to be sure I do it right: simple I   fast, and without bugs. If nothing else, this could serve as a base foreH   a better Dictionary container or Association (which is heavily used in
   Smalltalk).   	   Streams   (   Streams look fairly easy to implement.     Better browser  O   The class browser currently just displays all classes (not even sorted). With K   a little bit of work, the display could be made to collapse and expand orMG   change to use indentation to display the classes as they are related.e