GemBuilder™ for Smalltalk (GBS) version 8.5 is a new version of the GemBuilder for Smalltalk product, adding support for GemStone/S 64 Bit version 3.6 and providing limited preview support for VisualWorks 9.0, and fixing a number of bugs. Please take time to read through these release notes before installing or upgrading, to acquaint yourself with the changes.
These release notes provide changes between the previous version of GBS, version 8.4, and version 8.5. If you are upgrading from a version prior to 8.4, please also review the release notes for each intermediate release between your version and 8.5, to see the full set of changes.
This release supports GemStone/S 64 Bit only, with VisualWorks 8.x and 9.x. GBS 8.5 does not support 32-bit GemStone/S, nor VA Smalltalk.
To install GemBuilder for Smalltalk 8.5, follow the instructions in the GemBuilder for Smalltalk Installation Guide for version 8.5.
The following tables describe the client Smalltalk versions and platforms supported by GBS 8.5, and the GemStone server product shared library versions that can be used with each.
For more details, including the specific required client libraries for each server product and versions, refer to the GemBuilder for Smalltalk Installation Guide for version 8.5.
VisualWorks 9.0 is a “preview” platform with GBS 8.5. It is expected to work, but the GUI has not had sufficient testing for full support.
The following changes are in version 8.5:
Support for the latest version of the GemStone/S 64 Bit server, v3.6, has been added.
If you are upgrading to v3.6 as well as upgrading to GBS v8.5, please read through the Release Notes for v3.6 for changes that impact your GBS application.
GBS 8.5 includes support for replicating the special data types added in GemStone/S 64 Bit v3.6:
These are replicated as immutable instances of client objects. Note that while the v3.6 server also adds the new special SmallDateAndTime, the superclass DateAndTime is not supported for replication in GBS, so SmallDateAndTime is also not supported for replication.
Note that, because the new server classes are immediate, GBS does not map them to client objects. This means that two server objects that reference the same (identical) Time will replicate as client objects referencing the same (identical) client Time. However, two server objects referencing the same SmallTime will replicate as client objects referencing *different* (but equal) client Time objects.
Equivalent replication happens for all server immediates that are not client immediates: SmallDate, SmallTime, SmallScaledDecimal, SmallIntegers (beyond 32-bit VW SmallInteger range), SmallDoubles (in 32-bit VW), and SmallFraction.
The following bugs have been fixed in version 8.5:
There was a codepath where an error could occur while attempting to create the stack dump, that was not itself reported in the resulting stack. This resulted in a mysteriously incomplete stack. (#48076)
The login arguments that were specified on login had the side effect of disabling the Gem’s setting for the configuration parameter GEM_HALT_ON_ERROR. (#48154)
Many classes did an import of GemStone.Gbs.SpecialGemStoneObjects that was not necessary. These imports have been cleaned up, and the import for classes that still required this has been simplified. (#48191)
In the Debugger, modifying a method temporary variable of a server method in the context inspector would error. (#49105)
GBS replaces the default finalization mechanism with its own GbxFinalizer. This was being replaced by the default finalizer on image started; so while after the first load of GBS the correct finalization was done, if the image was saved and restarted it reverted to the default finalizer. (#48334)
In older versions of VW, the Time class had integral seconds, so the server Time class would truncate from milliseconds on the server to integral seconds in the GBS replicate. VW 7.10.1 and later have nanosecond resolution, so this is not only unnecessary, but creates loss of information. (#48711)
Now, client Times will be rounded to milliseconds when flushing to versions earlier than 3.6, and to microseconds when flushing to v3.6 or later servers.
Also, out of range client Times (negative times, or times of more than 24 hours), were previously left out of range; these are now replicated to the server as modulo 24 hours.
When clustering moves the page of an immutable byte object such as a Float, it is put in the write set for tracking, although it is not actually modified. The checks in GBS were too general and triggered an error. (#48541)
In the Hierarchy Browser, the Class > Browse Versions menu operation errored. (#49001)
The menu item on the GemStone Launcher, Parameters > Copy, did not have an effect. The equivalent Copy button works correctly to copy a SessionParameters. (#48882)
The case in which an inspector is opened on an object, but the object printing code signals an exception, is handled better in this release. Warnings and Notifications will no longer create an incorrect string, and Errors will be printed with minimal detail. (#48284)
When connecting a class variable connector, if the server class exists but does not have the specified class variable, the condition is not properly detected, resulting in the error UndefinedObject does not understand #value. (#48700)