Squeak 2.8 available

John M McIntosh johnmci at smalltalkconsulting.com
Sun Aug 20 00:48:23 UTC 2000


> I have been asked for a "What's new in 2.8" summary, and this is something I
> would love to delegate.
> 

Below are some notes about what's changed in the macintosh 2.8 VM. Someone
could? add them to a swiki somewhere?

Macintosh VM Changes in the 2.8 Final edition.

There are a number of significant changes to the Squeak VM on the Macintosh.
 
First an attempt has been made to make Squeak more mac friendly by finally
adding Icons for the image 'STim', the change file 'STch', the sources file
'STch', and Squeak Objects 'SOBJ'. You should now experience a more friendly
look for your old friend in the Finder. This also means you can double click
any of these files and Squeak should run. Older change sets maybe missing
the required file type tag, but you can use any handy file utility tool to
fix them if you wish. Some Smalltalk changes were also made to ensure Squeak
uses the proper file types when building a new change set, or source file on
the Macintosh. 

Squeak now contains a version string for the Macintosh, it doesn't have a
useless close box on it's main window, and Balloon help will give you a
little blurb when examining Squeak.

Internally a SqueakTerminate routine was added that is invoked by the Mac OS
CFM Loader at task termination time. This routine calls ioShutdownAllModules
which then asks plugins like the networking support to cleanup things. This
allows the VM termination code to run even if you force terminate Squeak via
a command key combination or a debugger. This prevents the network from
being broken after a forced Squeak termination.

Next some tuning was done to how Squeak gets the millisecond and microsecond
clock. In the past a fairly expensive timer was used, this has been changed
to use the PowerPC's internal CPU clock which has a much lower overhead, of
course 68K machines fall back to using the old expensive timer.

In 2.8 we introduced the use of Apple's Open Transport as the platform for
TPC/IP communications, versus the older macTCP. Therefore to start the
network with Squeak 2.8 you must have at least Open Transport 1.1.2
installed on your Power MacIntosh. Older versions of Open Transport are
buggy and prevent the network from starting. 1.1.2 of OT can be gotten from
Apple's FTP site and installed on systems as far back as mac OS 7.1

The new network support gives you better performance on the PowerPCs and
features like proper listen/accept logic, and UDP support are now available.
This has been available in the 2.8alpha since June and based on feedback
since then a change was made to the network code so if you attempt to
connect to a non-existent port on a remote host the failure is properly
noted and you get control back right away, the version from June waited for
the connection timeout to occur.

68K machines still will use the older MacTCP but a custom VM could be built
using OT if there is demand.

A fix was done with how Squeak handles the menu bar when switching
applications in full screen mode, now the menu bar isn't messed up.

Speaking of full screen, the browser plugin now support Full Screen on the
macintosh.

Some of the work done for 2.9Alpha event driven architecture was rolled into
the 2.8 VM. This means if you run a 1.9Alpha image with the 2.8 final
Macintosh VM, then events are dispatched to the image, versus the current
2.8 polling.  {On Aug21/2000 a VM change was pending in 2.8 to actually make
this work} It should be noted that with a 2.8 image event polling still
occurs. 

The majority of the plugins were compiled into the VM to enable the best out
of the box experience without having to supply a 1/2 dozen plugins to
confuse people.

Lastly some work was done to Carbonize the source code. Carbon is an API
platform for system 8, 9, and OS X. With some further work you can build a
Carbon version of Squeak under Apple's Mac OSX development environment.
Further work will continue on this project as Apple makes the operating
system more available to a larger audience.


So the raw details are:

We rebuilt the CW PPC Squeak App Project it was corrupt.

sqMacAsyncFilePrims.c

Carbonization work:
c2pstr and p2cstr changes.
Changed FSOpen (obsolete) to HOpenDF
Changed Create (obsolete) to HCreate
Usage of a PBOpenSync was changed to HOpenDF

Note a smalltalk change set was create to fix a problem with the the
AsyncFilePrim plugin interface. That change isn't platform specific.

Fixed: routine did not dispose of the asyncFileCompletionProc when finished
with it.


sqMacDirectory.c
Carbonization work:
c2pstr and p2cstr changes.
Use of GetFInfo was changed to HGetFInfo
Use of SetFInfo was changed to HSetFInfo

sqMacJoystickAndTable.c
Carbonization work:
IFDEFS to ignore stuff if building for Carbon.

sqMacNetworks.c
Carbonization work:
c2pstr and p2cstr changes.
use NewOTNotifyUPP
use StringToNum versus older stringtonum
test logging gets HCreate and HOpenDF

Fixed: A fix to abort a connection if a disconnect flows at the same time.
Note we have been unable to test this feature.

Fixed: A fix for the macintosh Socket plugin to quickly abort a connection
if the port is invalid

Fixed: Added diagnostic logging for UDP (A recompile is required to turn
this on)

Change: Dropped the OT libraries from the 68K version of the build. The 68k
version builds with MacTCP, effort is required if you want an OT version


sqMacSerialAndMIDIPort.c
Carbonization work:
c2pstr and p2cstr changes.

sqMacWindows.c
Carbonization work:
A step towards Carbonization was done (not yet complete). Accessors are now
used when dealing with window structures and bitmap internals, p2cstr/c2pstr
usage was reviewed, scrap manger rewritten, menu logic examined.

Use HGetVol versus GetVInfo
Use FSMakeFSSpec versus manally making a FSSpec
Use HOpenDF versus FSOPen
Use HCreate versus Create


Fixed: A number of issues with document opening via the finder if Squeak is
starting up, or is running

Change: Use WaitNextEvent versus GetNextEvent/SystemTask

Fixed: Logic was added to fix the problem with the menu bar when switching
applications in full screen mode

Change: No the Squeak window should not have a close box.

Change: use event state record versus calling Button() to get button state

Change: Location of Browser plugin support folder. This folder is now in the
System Folder, Preferences, Squeak, Internet

Change: Rewrote ioMicroMSec and ioMSecs to use the PowerPC UpTime clock.
This took the Call overhead from 5 msec to 1.8 msec on a 500mhz G3 machine

Change: Tuned ioProcessEvents to avoid unnecessary calculation

Change: For a plugin don't open macTCP

Change: for sqImageFileOpen we obey the request to open the image as read
only, before it did an open as read/write

Added: SqueakTerminate routine.

sqMacNSPlugin.c 
Carbonization:
A few changes. 

{Work is ongoing to fix some issues with full screen mode, and performance}

Added: Full screen support under the macintosh browser.

Changed: The location where we look for the image/change/source file is
different. It is now in the preference folder., System
Folder:Preferences:Squeak:Internet

--
===========================================================================
John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================
Custom Macintosh programming & various Smalltalk dialects
PGP Key: DSS/Diff/46FC3BE6
Fingerprint=B22F 7D67 92B7 5D52 72D7  E94A EE69 2D21 46FC 3BE6
===========================================================================





More information about the Squeak-dev mailing list