GemStone/S 64 Bit Release Notes

  • 1. Release Notes for 3.7

    • Overview

      • New keyfiles required

    • Supported Platforms

      • Platforms for Version 3.7

      • GemBuilder for Smalltalk (GBS) Versions

      • VSD Version

      • GemBuilder for Java (GBJ) Version

      • GemConnect Version

      • Rowan

      • Sparkle

      • Upgrade

        • isNil/notNil

      • Seaside and GsDevKit

      • Documentation Changes

    • 1.1 Library and Distribution changes

      • Updated Library Versions

        • New libraries

      • RPM distributions available

        • RPM Installation process

      • clientLibs distributions

      • $GEMSTONE/projects moved

      • Further changes in permissions within the distribution

    • 1.2 OS Configuration and Installation Changes

      • Using setcap for large pages and OOM protection on Linux

        • Large Memory Pages

        • OOM Killer protection

        • Large Memory Pages and Locking SPC in memory

      • Example scripts for setting up GemStone in systemd on Linux

      • Raw partitions on Character devices no longer supported

      • Reverse DNS lookups required for Single Sign-On (SSO)/Kerberos logins

    • 1.3 Process and Debugger Optimizations

      • New native code generation and compiler optimizations

        • Native code not reimplemented on AIX, Mac/Linux on ARM

        • Older CPU machines cannot run v3.7

      • Conditionally Optimized Selectors

      • Process Scheduling and Debugger Support

        • Scheduler now preemptive

        • Breakpoint Handling and Debugger Support

        • Interrupting sockets

        • Process and debugging bugs fixed

      • Handling asynchronous events in a designated process

      • Added and renamed Process and related methods

        • GsProcess "Step" methods renamed

        • Signaling the GCI

        • Other added methods

        • Removed Methods

  • 2. Changes in Administration

    • 2.1 One-time Password

      • One-time passwords allow login without further authentication

        • Privilege to create one-time passwords

        • One-time passwords for other UserProfiles

        • Creating and Using a one-time password

        • New topaz command

      • Tracking one-time passwords

        • Additional fields in Login log

        • Additional fields in descriptionOfSession: result

        • Added Cache Statistics

      • New privilege

      • Added methods

    • 2.2 Changes in Users and ObjectSecurityPolicies

      • CreateOnetimePassword privilege

      • MigrateObjects privilege

    • 2.3 Changes in Backup and Restore

      • Full control over compression levels

        • Consistent default for Lz4 to level 0

        • Specifying level in existing methods

        • New methods including level argument

      • Repository scan operations now allowed in solo sessions

      • In restore mode, compiler now generates arguments and temporaries as Strings

    • 2.4 Hot Standby Changes

      • Upgrade via hot standby

      • suspendCommitsForFailover no longer supported

      • Clarification on hot Standby with failover and multiple slaves

      • Repository >> failOverStatus improved report

      • continuousRestoreFromArchiveLogs* now has configurable timeout

      • Terminating logsender and logreceiver programmatically

      • commitRestoreForFailoverAfterWaitingUpTo: now stops logreceiver

      • Full details in JSON from gslist

    • 2.5 Garbage Collection Changes

      • markForCollection performance improvement for repositories with long object chains

      • ReclaimGem configuration parameters renamed

      • Number of threads configured for AdminGem

      • Renamed method to configure number of reclaim threads

      • Reclaim GcGem Logging

      • Determining sessions that have not voted

    • 2.6 Changes in Configuration File Handling

      • Added -E argument to simplify configuration file specification

      • Configuration file with GEMSTONE_DATA_DIR

    • 2.7 Other Changes related to Administrative Operations

      • Cache Warming

        • Cache warming during upgrade

        • Deprecated cache warming configuration parameters removed

      • SuperDoit scripts using GemStone base extent

      • Changes in abort behavior in solo session

        • Changes in session information for GcLock

      • Methods added to determine recursive size of an object tree

      • Fast variants of findAllReferences

    • 2.8 Changes in Environment Variables

      • Debug tracing for SSL, SSO, SSH now allowed in fast builds

      • Tracing LDAP

    • 2.9 Changes in Errors

      • Added Errors

      • Added Error and Exception Classes

        • FileSystem-related additions

      • Removed Errors

      • Cannot return now not resumable

      • OS-origin error messages changed

      • 2503 changed from FloatingPointError to NumericError

      • AbstractException >> signalToGci

      • Print GCI trace records on protocol error

      • MFC Warning now includes possibleDeadSymbols

    • 2.10 Changes in Utilities

      • Many utilities faster on Linux

      • Utilities startstone, topaz, NetLDI and gemnet* support -E argument

      • Custom gemnetobject locations

      • Changes in largememorypages

        • Argument handling changes

        • Instructions updated

      • secure_backup_extract added

      • Topaz changes

        • Default fileformat now utf8

        • Improvements to debugging using DEBUGGEM

        • Added Topaz commands to support DEBUGGEM

        • SET added option ONETIMEPASSWORD

        • LIMIT added option LEV2OOPS

    • 2.11 Configuration Parameter Changes

      • Removed configuration parameters

      • GEM_NATIVE_CODE_ENABLED

      • SHR_PAGE_CACHE_LARGE_MEMORY_PAGE_SIZE_MB

      • SHR_PAGE_CACHE_SIZE_KB default increased

      • STN_GEM_TIMEOUT

      • STN_NUM_GC_RECLAIM_SESSIONS now applies to Admin Gem

    • 2.12 Changes in Statmonitor and Cache Statistics

      • Performance improvement for Shared Page Cache Monitor

      • Improved lz4 compression and new VSD required

      • Statmonitor -z -Z arguments now accept compression level

      • Statistics Types reorganized

        • Pgsvr split

        • Stone, Page Manager, and Stone’s Restore Threads split

        • Gems split

        • Added API for PageManager statistics

      • Changes in memory statistics on Linux

        • Per-process statistics

        • Add statistic for number of memory mapped regions in use

        • Added statistics for smaps thread

        • New restrictions for per-process Statistics for configurations in root mode with s bit

        • Access from other Gems with NetLDI in authenticated mode

      • Other changes in existing statistics

        • Details for GarbageCollectionState and GcHighWaterPage

        • ReposAtMaxSize changed

        • Changes in Session*WithGcLock and GcLockKind

      • Removed Statistics

      • Added Statistics

        • "Time Since" statistics

        • Other Added Cache Statistics

  • 3. Changes in GemStone Smalltalk

    • 3.1 Changes in Classes, Compilation, and Code Management

      • ClassOrganizer >> newExcludingGlobals

      • GsNMethod >> recompileFromSource

      • Added method Behavior >> compileMethod:category:environmentId:

      • #logCreation and logging class creation

      • Improvements to filein using GsFileIn

      • SystemUser SymbolList Changes

    • 3.2 Customer-defined Special Classes

      • Money example

    • 3.3 Multithreaded Instance Migration

      • InstVarMappingArray

      • Example

    • 3.4 FileSystem

      • Differences from GsFile

      • Primary API classes

      • Supporting Classes

    • 3.5 Support for ssh and sftp using OpenSSL

      • SSH with GsSshSocket

      • SFTP with GsSftpSocket

    • 3.6 GsSecureSocket Additional Features

      • Support for pre-shared keys

        • Example in image

      • Anonymous TLS

        • Example in image

      • TLS Version handling

        • Instance methods for the TLS version

        • Class methods for maximum and minimum TLS version

      • Modified SNI example code in image

    • 3.7 Data Encryption using Azure Key Vault

      • AzureDataKeys

        • Locking

      • Encryption/decryption

      • Key rotation

      • Making a copy of a key

      • Key equality

      • Tracing Azure calls

    • 3.8 Changes in Magnitude Classes

      • Float printing improvements

      • Converting Non-specials in special range

      • highBit now ANSI-compliant

      • Other added method

    • 3.9 String and Stream-related Changes

      • New ReadByteStream classes optimized for Strings

        • readStream reimplemented to return ReadByteStream

      • In Unicode mode, String auto-conversion to Unicode16

      • codePointAt:put: now performs auto-conversion if needed

      • Empty Unicode7 string literals now canonicalized

      • Support for Lz4 encode/decode added to String and ByteArray classes

      • ByteArray read/write of binary numbers in native format

      • Added methods to return hashes as ByteArrays

      • Utf8 now disallows #readStream

      • Other Changes

        • atOrNil: added

        • Stream classes consistently return objects of their collection class

    • 3.10 JsonParser and JsonPetitParser

      • Upgrade impacts

    • 3.11 External Session Changes

      • GsTsExternalSession no longer requires cpp/gcc/g++

      • Added methods for GsTsExternalSession

      • Return value from GsTsExternalSession >> waitForReadReadyTimeOut:

      • Easier to use GEM_HALT_ON_ERROR in external sessions

    • 3.12 Other Changes and Enhancements

      • ProfMonitor improved formatting for object creation tree report

      • GsSecureSocket example updates

      • isValidIdentifier, validateIsIdentifier optimized

      • Other Added methods

    • 3.13 Deprecated and Removed Classes and Methods

      • AbstractCharacter removed

      • Newly deprecated Methods

      • Obsolete Classes not in new images

      • Removed Public Methods

      • Removed Previously-deprecated Methods

      • Removed Private Methods

  • 4. Changes in the GCI Interfaces

    • 4.1 GCI changes

      • GciDirtyTrackedObjs functionality removed

        • Removed GCI calls

        • Removed Image Methods related to TrackedObjects

        • GsBitmap hiddenSetSpecifiers

      • Added Lz4 compression functions

        • GciCompressUsingLz4

        • GciUncompressUsingLz4

      • Added variants of existing functions

        • GciDbgEstablishToFile_

      • One-time login support

      • Configuration file handling support

        • GciInit_

      • Removed Mnemonics

    • 4.2 GCI thread-safe changes

      • Added Thread-safe functions

        • GciTsDebugConnectToGem

        • GciTsDebugStartDebugService

        • GciTsNbPoll

    • 4.3 Foreign Function Interface (FFI) related changes

      • errno: unsafe; use alternate methods to access to CCallout errno

      • In-memory GC now responsive to memory use by FFI

      • CPreprocessor failed to cleanup temporary files

    • 4.4 Updated Compile and Link Information

      • Linux Compile and Link Information

      • AIX Compile and Link Information

      • DARWIN Compile and Link Information

      • Windows Compile and Link Information

  • 5. Bug Fixes

    • Checkpoint when tranlogs full can result in Stone shutdown

    • Cache warming could have caused commit record backlog

    • A stuck login with UserSecurityData locked may block further logins

    • When commits suspended, symbol creation causes SymbolGem failure

    • Finding references failed to report objects in large IdentityBags

    • Backup and Restore issues

      • Very slow restore of compressed tranlogs

      • Backup to a file could produce unclear error message

      • Commit as restoreFromBackup starts could cause Stone shutdown

    • RcIdentityBag >> remove:otherwise: errored

    • Issues with stacks and memory stats when using setcap to enable LargeMemoryPages or OOM killer protection

    • Bugs in Configuration Parameters

      • Improved distribution over extents for DBF_ALLOCATION_MODE

      • Computation of SHR_PAGE_CACHE_NUM_PROCS too small

    • Numeric and Time related issues

      • Float = and ~= always returned false for SmallScaledDecimal arguments

      • A Time did not compare equal to equivalent SmallTime

      • SmallDateAndTime passivate activate failed for years 2035-2072

      • CharacterCollection >> isDigits incorrect for empty string

      • Float >> asDecimalFloat results not as precise as possible

      • isExceptionalFloat returned true for subnormal numbers

    • $GEMSTONE paths containing symlinks

    • File handle leak in GsTsExternalSession

    • stoned exited with code 3 on clean shutdown

    • FFI structures may fault out of memory and lose C data

    • Lost InterSessionSignal or other interrupt

    • GsHostProcess could not redirect stdout and stderr to same file

    • GsSignalingSocket >> acceptTimeoutMs: may fail when receiver is a GsSecureSocket

    • asJson problems with Date, Time, DateTime, and DateAndTime

    • Upgrading did not preserve default legacy indexes

    • Class subclassed from nil did not have default doesNotUnderstand handling

    • Bitmap written by #saveWriteSetUnionToFile not readable

    • GsTestCase assert:isEquivalentTo: failed to catch errors

    • PositionableStreamLegacy positionW, positionW: did not signal Warning

    • PPParser >> child included a send to #assert:

    • gemnetobject -T, -N argument was ignored if no separator

Copyright 2023 GemTalk Systems