GemStone/S 64 Bit Release Notes

  • 1. Release Notes for 3.7.2

    • Overview

    • Supported Platforms

      • Platforms for Version 3.7.2

      • GemBuilder for Smalltalk (GBS) Versions

      • VSD Version

      • Rowan

      • GemBuilder for Java

      • GemConnect

    • Installation and Upgrade

      • New script to support OS configuration

      • New script to setup a simple repository using data-conf

      • Installation Guide

      • Upgrade

      • Improvements/fixes to RPM installation process

      • TimeZone installation now supported from the image

      • Change in behavior in 3.7.2 that may affect existing application code

    • Changes in this Release

      • Updated library versions

      • 32-bit Linux no longer supported

      • Removing GemStone system locks on reboot

      • Gem log header includes additional NRS information

      • Multithreaded scan operations now have a thread limit of 128

      • Multithreaded-related query methods no longer require SystemControl

      • Improved reclaim behavior with low free space

    • 1. Collection and String changes

      • SequenceableCollection + removed

      • fillFrom:resizeTo:with: no longer usable

      • Double and QuadByteStrings disallow 16rD800..16rDFFF

      • Improvements to reduced-conflict collections

        • Improved handling for heavy reduced-conflict processing

        • RcKeyValueNoRebuildDictionary added class

        • Results of RcIdentityBag >> maxSessionId changed

        • RcIdentityBag added methods

      • Non-identity-dictionary >> keys now returns appropriate class of result

      • Optimizations and bug fixes in TreeDictionary/TreeSet

        • TreeSet audit returned false following an includesIdentical:

        • TreeSet detect: and detect:ifNone: failed

    • 2. SSH and Socket Changes and Bug fixes

      • Support for OpenSSH keys and conversion between key types

        • GsSshPrivateKey

        • GsSshPublicKey

        • Conversion between types

        • Added Testing methods

        • Examples

      • Validating an SNI name against the target host name

        • GsSecureSocket added methods

      • Other added methods for managing certificates

      • GsSftpSockets may not be nonblocking

      • GsSecureSocket examples

        • Now working on Darwin

        • Added Non-blocking examples

      • New debugging environment variable

      • GsSecureSocket secureAccept may fail with SSL error

    • 3. Other image changes

      • GsHostProcess with Arguments

        • Example

      • Support for warming AllSymbols

      • Changes in commit conflict reports

        • Changes in conflict types

        • Additional information in commit conflict reports

      • AllSymbols audit

      • System class

        • Optimization to System use of HiddenSets

        • Added methods for configuration information

        • Other added methods

        • Other Changes

      • External Session changes

        • Now supporting automatic conversion of Unicode7 return values

        • Recommendation to encode returned strings

        • GsExternalSession automatic conversion of Utf8 to Strings

        • Appropriate class for decoded Utf8 results

        • forkAndDetachBlock:/String: no longer terminates with apparant error

        • Added methods

        • Issues in GsNetworkResourceString defaultGemNRSFromCurrent handling of NetLDI

      • Other Added methods

        • UserProfile added method

        • SessionTemps added method

        • SymbolList added method

      • GsTestCase logging changes

      • JsonParser parsing of exponential notation

      • Changes in Number>>kind for some classes

      • Logging to GCI server rather than client

      • Newly deprecated methods

        • Array >> fillFrom:resizeTo:with:

        • System class >> cancelWaitForDebug

      • Removed methods

        • Repository >> listInstances:toDirectory:numThreads:objMaxSize:

        • SequenceableCollection >> +

        • Removed private, internal, and refactored methods

    • 4. Split Tranlogs Feature

      • startlogsender

      • startlogreceiver

      • Tranlog chunks

      • Image support

      • Example

      • Copydbf

      • File-based concatenation

      • Restore from Tranlogs

      • Other access

    • 5. Changes in Configuration Parameters

      • Added configuration parameter

        • GEM_TEMPOBJ_CODE_SIZE

      • GemCommitConflictDetails now accepts 0...3

      • Cache warming for X509-secured GemStone

    • 6. Utility changes

      • stopstone changes

      • startnetldi further checking for consistent port and numeric name

      • Utility failures have additional [ERROR] result

      • stoned command requires -l argument

      • startstone, startnetldi only print full usage if -h is specified

      • Topaz Changes

        • NETLDI: command now usable for standard logins

        • Trait support functions added

        • Added DISPLAY, OMIT subcommand ORIGIN

        • Change in LIST, LIST METHOD:

        • Change in TFILE

  • 2. Traits

    • Pharo-style traits in GemStone

      • Terminology

      • Creating and Using traits

        • Added Classes

        • Precedence

        • Example

    • Image support for traits

      • Fileout support for traits

      • GsFileIn support for traits

      • ClassOrganizer support for traits

      • Information on Compiled Methods from Traits

      • Distinguishing Traits

      • Trait management in Class

    • Topaz support for traits

      • Added functions for trait support

  • 3. GCI and FFI Changes

    • Added GCI functions

      • GciCheckNetldiName

      • GciExecuteStr__

      • GciFetchDateTime_

      • GciFetchGbjInfo

      • GciNewStringFromUtf16

      • GCI_OOP_TO_CHAR_

      • GciOopToFlt_

      • GciPerform__

      • GciPerformFetchOops

      • GciSetSessionId_

      • Changed Functions

        • GciHostInstallFaultHandler

    • Added Thread-safe GCI functions

      • GciTsDirtyExportedObjs

      • GciTsFetchGbjInfo

      • GciTsKeepAliveCount

      • GciTsKeyfilePermissions

      • GciTsNewStringFromUtf16

      • GciTsPerformFetchOops

    • Other GCI changes

      • GciRtlLoad, GciRtlLoadA, GciTsLoad ignored path arg

      • Linked GCI application now also looks for gem.conf

      • Int16Array, Int32Array, Int64Array at:put: did not have correct range checking

    • FFI Changes

      • Incorrect error from CByteArray >> encodeUTF8From:into:allowCodePointZero:

  • 4. Bug Fixes

    • Gem out-of-memory issues

      • Incorrect handling of code_gen space in Gem memory

      • Computed size of code_gen too small

      • Abort failed to clear references from modified committed objects to in-memory objects

      • Memory issues from fillFrom:resizeTo:with:

      • AlmostOutOfMemory handlers not effective if needed while in primitive

    • Issues in Native code generation

      • Results of ifTrue/ifFalse blocks

      • Incorrect handling of AlmostOutOfStack after process switch

    • Conflict handling in Reduced-conflict collections

      • Failure to detect write conflict after reduced-conflict replay

      • RcIdentityBag conflicts with unexpected larger sessionIds

      • RcKeyValueDictionary rebuildTable likely to cause commit conflicts

    • Issues related to reclaim

      • ReclaimGem parameter #reclaimMinFreeSpaceMb not respected

      • After commitRestore, ReclaimGem may not be restarted

    • Signal handler chaining may cause SEGV in linked session

    • Improved performance of restoreFromTranlogs

    • Insufficient information on extent write errors that succeed on retry

    • Risk of stuck spin lock on LostOt

    • Issues related to repository scan operations

      • Possible missing results from findReferencesToInstancesOfClasses, etc.

      • GsObjectInventory overstated String bytes used, especially for large strings

      • Listing instances in memory did not observe limit argument

      • Repository >> objectsInMemoryLargerThan: not working

      • Class >> instancesInMemory may incorrectly return an empty Array

    • Numerics issues

      • Values of different classes of numeric values that are close but not equal may compare as equal

      • Non-numeric arguments to comparison operators

      • Incorrect results from -1 bitShift: with arguments greater than 60

      • Some kinds of Number did not understand #isZero

      • OffsetError from ScaledDecimal >> kind

    • Issues with GsUuidV4 comparison operators with unexpected argument types

    • DateTime newWithDate:time: truncated Time to seconds

    • In solo mode, transactionMode: could cause abort

    • Stone continued running if ShrPcMon SEGV or other death

    • NetLDI in root mode reported owner as regular user

    • File descriptor leak in GsHostProcess

    • Cache Statistics Issues

      • SEGV on programmatic cache statistics access by name for ProcessName

      • Memory corruption from hostEasyStatistics*

      • System cacheStatsForGemWithName: some stats incorrectly 0

      • Cache stats of -1 may be returned as 4294967295 by stoneCacheStatistics

    • In hot standby, currentSessionNames may intermittently show an internal session

    • Repository >> addTransactionLog:size: did not correctly handle size argument

    • LostOT may result in errors described as PageLocate error

    • Issues affected X509-Secure GemStone

      • Working-set cache warming was not supported for X509-Secured caches

      • GemStoneX509Parameters >> extraGemArgs: were ignored

      • Multithreaded scan operations could hang in a remote session

      • System currentUserSessionCount included hostagent

    • SEGV handler now includes raw Smalltalk stack details

    • Darwin error "attempt to create a CByteArray or CPointer that would reference VM memory"

    • Object >> _primitiveAt:put: could incorrectly grow non-indexable objects

Copyright 2024 GemTalk Systems