1. Release Notes for GemBuilder for Smalltalk 5.4.5

GemBuilderfor Smalltalk (GBS) version 5.4.5 is a new version of the GemBuilder for Smalltalk product, adding support for GemStone/S 64 Bit version 3.5, VA Smalltalk 9.1, 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 5.4.4, and version 5.4.5. If you are upgrading from a version prior to 5.4.4, please also review the release notes for each intermediate release to see the full set of changes.

This release supports applications running with Instantiation’s VA Smalltalk only. Version 5.4.5 does not support VisualWorks, nor can it be used with GemStone/S 64 Bit 2.x or 32-bit GemStone/S. Support for these servers is provided in separate GBS releases.

To install GemBuilder for Smalltalk 5.4.5, follow the instructions in the GemBuilder for Smalltalk Installation Guide for version 5.4.5.

Supported Platforms and Versions

The following tables describe the client Smalltalk versions and platforms supported by GBS 5.4.5, and the GemStone server versions that can be used with each. For more details, see the GemBuilder for Smalltalk Installation Guide for version 5.4.5.

Table 1 Supported GemStone/S 64 Bit Server versions - RPC logins only


VA Smalltalk 9.1

VA Smalltalk 8.6.3

Windows 10


3.5, 3.4.3

Windows 8.1, Professional or above


3.5, 3.4.3

Windows 7, Professional or above


3.5, 3.4.3

Changes in this Release

Support for GemStone/S 64 Bit version 3.5

Support for the latest version of the GemStone/S 64 Bit server, v3.5, has been added. If you are upgrading to v3.5 as well, please read through the Release Notes for v3.5 for changes that impact your GBS application.

Support for VA Smalltalk version 9.1

Support for the latest version of VA Smalltalk, v9.1, has been added. While GBS v5.4.5 has been certified on VA Smalltalk v9.1 with 3.5, it is expected to work with 3.4.3.

Performance improvement with reduced Delay interrupts

The Delay interrupt was scheduled for 100ms, effectively creating a minimum Delay of 100ms. This has been reduced to 10ms, the VA engine’s clock lower limit. (#48134).

This improves performance significantly for cases involving GBS executions of GemStone server code.

Replicating a header-only report for a LargeInteger corrupts client cached copy

When a a header-only report is returned to the client containing a LargeInteger that is already replicated on the client, the LargeInteger may be corrupted such that all bits are 0. (#47870)

GbsObject class>>#fromFraction: did not generate SmallFractions

With GemStone/S 64 Bit v3.3 and later, many fractional values are expressed as special SmallFractions. GbsObject class>>#fromFraction: did not generate a SmallFraction for Fractions in the SmallFraction range. (#47939)

Session notification error on process not found could be suppressed

A long-standing GemStone/S 64 Bit bug, bug #48016, resulted in spurious errors signalled when inter-gem signalling encountered a session in termination. GBS was incorrectly quietly discarding these signals. The server bug is fixed in v3.5, and signals are no longer suppressed in GBS. (#41962)

Server object changes can break GBS hash tables

When an already replicated Array is resized on the server, the changed object is replicated back to the client. In order to increase the size of the client object, replication creates a new instance and uses become: which fails to preserve the identity hash of the original. GBS hash tables containing the object detected this as misplaced object, and broke. A similar problem can occur when the Array contains stub for a class or metaclass. (#48144)

Replication using asLocal* may not handle all special objects correctly

Some special Objects, such as SmallFraction, were not handled by direct replication using asLocalObject and related methods. (#47940, #47791)

Server DoubleByteStrings created from client DBStrings had wrong byte order

Client DBStrings that were sent to the server were serialized in big-endian form. This is incorrect (on little-endian clients, including Windows), since the server DoubleByteString interprets this using the client byte order. (#47938)

Recursion handling client stack overflow

When handling a client stack overflow, the GBS code that handles presenting the error stack could make a recursive call, which effectively locked up the client. (#48048)

User tools are unreasonably slow with many users

When the number of users becomes large, the UserList, UserProfile Editor, and SymbolList tool performance became so slow as to be unusable. (#48042, #48043)