[up]

Compatibility Notes (How to migrate from an older ST/X version

This page leads you towards possible incompatibility problems, when migrating from an older ST/X version.
Although we try to mention all possible trouble spots, we can neither guarantee 100% compatibility not to not forget trouble spots in this list.


5.1.4 to 5.1.5

HTTPService authentication changed from #authenticationFor: which returns a boolean to #authenticateFor: which reports the error directly. This was changed to allow for the service to generate its own error message and/or to return an alternative fallback document.

5.1.1 to 5.1.2

Subclasses of HTTPService

The inheritance of the HTTPService hierarchy has changed, and another abstract class named HTTPSelecorService was added. You might have to change the superclass of your HTTPService subclasses from HTTPService to HTTPSelecorService.

4.x to 5.x

PositionableStream and Subclasses

The major incompatible change relates to stream positioning: ST/X used to define the initial read/write position as 1, while all other smalltalks defined it to be 0. (i.e. ST/X defined the position as "the position of the next element", whereas all others defined it as "the position of the last processed element".)
This incompatibility was due to the fact that the stream positioning was not defined in the blue book, and 1-based positions seem to be logical w.r.t. the 1-based indexing of collections.
The position-bias has been changed in order to make porting of code from other smalltalks systems easier.

Starting with 4.1.9, 4 methods were added to aid in writing portable code:

    position0Based / position0Based:
    position1Based / position1Based:
These methods are still (and will still be) present, to allow for code to be written which works on any system.

All code which computes a stream position or takes a stream position as collection index, using position and/or position: should either:

Error Handling when opening FileStreams

Prior to release 5 no error exception has been raised when opening or creating of a FileStream failed. A Notification has been signaled to those, who explicitly handled this notification. Most classes did not handle this notification and got a nil-return, when doing e.g. '/nonExistingFile' asFilename readStream.

From Release 5 on, FileStream openErrorSignal is an error exception and the same as ExternalStream openErrorSignal.

For conversion of old programs expecting (and checking for) nil, a new method Filename>>readStreamOrNil has been introduced. Please use the Filename interface, and avoid using FileStreams directly.

Class

The layout of Classes has changed, by removing unused instance variables. This means, that old binary class libraries and object files are no longer compatible. You must stc-recompile your own machine code libraries and object files.

Bytecode binaries, source files or autoloaded classes are not affected, and do not need special care.


[stx-logo]
Copyright © 1996 Claus Gittinger Development & Consulting, all rights reserved
Copyright © 2003 eXept Software AG, all rights reserved

<info@exept.de>

Doc $Revision: 1.8 $ $Date: 2003/11/25 23:04:46 $