1. Release Notes for GemBuilder for Smalltalk 5.4.7

GemBuilderfor Smalltalk (GBS) version 5.4.7 is a new version of the GemBuilder for Smalltalk product, adding support for GemStone/S 64 Bit version 3.7, as well as 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.6, and version 5.4.7. If you are upgrading from a version prior to 5.4.6, 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 VAST Platform (VA Smalltalk) only. Version 5.4.7 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.7, follow the instructions in the GemBuilder for Smalltalk Installation Guide for version 5.4.7.

Supported Platforms and Versions

The following tables describe the client Smalltalk versions and platforms supported by GBS 5.4.7, 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.7.

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



VAST Platform


VAST Platform


VA Smalltalk

Windows 16

3.7, 3.6.6

3.7, 3.6.6

3.7, 3.6.6

Windows 10

3.7, 3.6.6

3.7, 3.6.6

3.7, 3.6.6

Changes in this Release

Support for GemStone/S 64 Bit v3.7

This release adds support for GemStone/S 64 Bit v3.7.

Customer-defined special classes

GBS v5.4.7 handles the new customer-defined special classes introduced in GemStone/S 64 Bit v3.7. Note that these specials cannot be replicated, but inspectors can display them as server objects.

Add User changes

The User Dialog has some changes in behavior and labels.

  • The OK button previously performed a commit before adding a new user, but did not commit the added user to the repository. Now, the OK button adds the user without performing any commits. This spurious commit did not occur when editing a user.
  • The Commit And Apply button previously performed a commit before adding the new user, but did not commit the new user. Now this button is labeled Apply And Commit, and does commit the new user.
  • The Close button is now Cancel, for clarity. As before, changes are discarded.

Security Policy Tool updated

Configuring TrackReads supported

Object Read Tracking (see https://docs.gemtalksystems.com/current/objectreadtracking) can now be configured using the security policy too1.

Some Security Policies did not report the correct name

There were some GemStone kernel security polices which did not display their name.

SecurityPolicies displayed incorrect owner

Security Policy Tool displayed the current user as owner of all GsObjectSecurityPolicies. (#50373)

VAST 11.x new UnicodeStrings mapped to server Unicode strings

VAST 11 introduced the class UnicodeStrings, and support for converting Strings to UnicodeStrings. With v5.4.7, server instances of Unicode7, Unicode16 and Unicode32 map to client UnicodeStrings.

Removed methods

GbsSessionManager >> gbxWaitForRebinding removed

This method was required to avoid transaction protocol errors with some much older versions of VA Smalltalk, but is no longer needed, and has been removed.

Deprecated GBSM methods removed

The following deprecated methods have been removed. These methods were pass-throughs to the equivalent GbsConfiguration methods, which should be used instead.

GbsSessionManager >> assertionChecks
GbsSessionManager >> assertionChecks:
GbsSessionManager >> autoMarkDirty
GbsSessionManager >> autoMarkDirty:
GbsSessionManager >> blockingProtocolRpc
GbsSessionManager >> blockingProtocolRpc:
GbsSessionManager >> blockReplicationEnabled
GbsSessionManager >> blockReplicationEnabled:
GbsSessionManager >> blockReplicationPolicy
GbsSessionManager >> blockReplicationPolicy:
GbsSessionManager >> bulkLoad
GbsSessionManager >> bulkLoad:
GbsSessionManager >> confirm
GbsSessionManager >> confirm:
GbsSessionManager >> connectorNilling
GbsSessionManager >> connectorNilling:
GbsSessionManager >> connectVerification
GbsSessionManager >> connectVerification:
GbsSessionManager >> defaultFaultPolicy
GbsSessionManager >> defaultFaultPolicy:
GbsSessionManager >> eventPollingFrequency
GbsSessionManager >> eventPollingFrequency:
GbsSessionManager >> eventPriority
GbsSessionManager >> eventPriority:
GbsSessionManager >> faultLevelRpc
GbsSessionManager >> faultLevelRpc:
GbsSessionManager >> forwarderDebugging
GbsSessionManager >> forwarderDebugging:
GbsSessionManager >> freeOopEncoding
GbsSessionManager >> freeOopEncoding:
GbsSessionManager >> freeSlotsOnStubbing
GbsSessionManager >> freeSlotsOnStubbing:
GbsSessionManager >> fullCompression
GbsSessionManager >> fullCompression:
GbsSessionManager >> generateClassConnectors
GbsSessionManager >> generateClassConnectors:
GbsSessionManager >> generateGSClasses
GbsSessionManager >> generateGSClasses:
GbsSessionManager >> generateSTClasses
GbsSessionManager >> generateSTClasses:
GbsSessionManager >> initialCacheSize
GbsSessionManager >> initialCacheSize:
GbsSessionManager >> initialDirtyPoolSize
GbsSessionManager >> initialDirtyPoolSize:
GbsSessionManager >> removeInvalidConnectors
GbsSessionManager >> removeInvalidConnectors:
GbsSessionManager >> traversalBufferSize
GbsSessionManager >> traversalBufferSize:
GbsSessionManager >> verbose
GbsSessionManager >> verbose:
GbsSession class >> assertionChecks
GbsSession class >> assertionChecks:
GbsSession class >> eventPollingFrequency
GbsSession class >> eventPollingFrequency:
GbsSession class >> eventPriority
GbsSession class >> eventPriority:
GbsSession class >> generateClassConnectors
GbsSession class >> generateClassConnectors:
GbsSession class >> generateGSClasses
GbsSession class >> generateGSClasses:
GbsSession class >> generateSTClasses
GbsSession class >> generateSTClasses:
GbsSession class >> removeInvalidConnectors
GbsSession class >> removeInvalidConnectors:
GbsSession class >> verbose
GbsSession class >> verbose:
GbsConnector class >> connectVerification
GbsConnector >> connectVerification
GbsConnector >> connectVerification:
GbsConfiguration >> generateGSClasses
GbsConfiguration >> generateGSClasses:
GbsConfiguration >> generateSTClasses
GbsConfiguration >> #generateSTClasses: 

Bugs Fixed

GS-file In did not handle server fileout format

The server default class fileout format changed in v3.6 to use topaz commands rather than GemStone execution to remove existing methods. This topaz command was not handled correctly in GBS; using the popup menu item GS-file In or GemStone > Tools > GS File in would error. (#50354)

isENVYImage incorrectly used

The method isENVYImage was used in places to detect a VAST image, rather than the more appropriate isVisualAgeImage. #(49391)

Server configuration for GEM_HALT_ON_ERROR unset during login

The GEM_HALT_ON_ERROR configuration parameters can be set in the Gem to allow stacks to be dumped for a server error. This setting was overridden and disabled on login from GBS. (#50417)

Building ICs for packaging a runtime application created problems for method overrides

During runtime application IC packaging, GBS's method overrides were creating problems. The method override functionality signaled a method notification, which signalled back to the framework, creating a stack overflow. Now, the method change notifications are ignored while installing method overrides. (#49405)

Compiler errors in method text not handled correctly

Compiler errors in method text should insert the appropriate error message in the place within the method text that the error is found. Due to changes in the information returned by the server, an incorrect messages was being inserted in the incorrect location. CHECK FOR UPGRADED SYSTEM (#49419)

Improved resizing in Classes Browser

The center radio buttons and class/instance button resized proportionally. Now, these keep their size as the window is larger or smaller. (#49788)

Click in method text selected text

In the Classes browser, when left-clicking within the method text pane that had not been clicked within previously, all or part of the method text from start up to the click location was highlighted. (#49776)

Inspector Errors with server strings containing characters over 255

GemStone DoubleByteStrings, and Unicode16 strings that contained characters with codePoints greater than 255, would cause Inspector errors. (#49789)

Selecting a SymbolDictionary with many classes could be slow to display classes

Selected a SymbolDictionary that contained a large number of classes, such as Globals, could take a considerable time to display the list of classes over slower connections. (#50410)

Classes > Browse Class on a class method in Method List Browser broken

When a Class method is selected in a Method List Browser, the Classes menu item Browse Class resulted in a walkback. (#50429)

Privileges dialog did not handle added privileges

The privileges dialog was not sized to accommodate all privileges. (#49908)

Issues with server methods that include server-only elements

GBS was using the VAST parser to identify the method selector from within the method text. If the method text included sever-only elements such as class names, this returned nil but did not error. (#49410)

Lose selection in classes browser

Compiling a method in the classes browser correctly compiled the method on the server. However, when the classes browser was updated, the selector was not found and the newly compiled method was not selected. (#49778)

Implementors/Senders browsers did not update method text

When a method was recompiled in the senders or implementors browser, the original method text continued to be displayed, although the method itself had been updated with the new source. (#49777)

Extra stacks while editing server code in the debugger

When editing GemStone server method code in a debugger, extra stacks may appears with top frames "GbsObject does not understand classVarNames". This was due to VA Code Assist incorrectly trying to determine information about the server method. (#49806)

LargeIntegers converted to a denormalized server representation

LargeIntegers in the range 16r8000000000000000 through 16rFFFFFFFFFFFFFFFF were converted to a denormalized form with four trailing 0s, as a result of incorrect handling between the VA and server representations (#50484)

Analysis of server Class format could result in wrong match comparison

GBS determines if a server and client classes match (that is, are the same) by analyzing information such as class name, instance variables, and server format bits. The analysis of the format bits was not correct, resulting in classes failing to match and requiring re-syncing. (#40436)

Classes Browser stuck if server SymbolDictionary with unmatched key to classname

If a server SymbolDictionary contains a key referencing a Class whose name is different, and there is no key with that Class’s name in that SymbolDictionary, the Browser reported an error and retried. (#50689)