You are currently browsing the category archive for the ‘GemTools’ category.

Video of my talk on tODE at STIC 2013:

Link to my slides.


GemStone 3.1.0

GemStone/S 64 3.1.0 was released July 5, 2012.GemStone/S 64 Bit 3.1.0 is a major new version, including many new features as well as enhancements to existing features and bug fixes. A quick highlight of features is as follows:

  • IPv6 support
  • multi-threaded, highly performant backup and restore
  • increased security for remote logins using SRP and SSL
  • a new hot standby interface, providing continuous automatic synchronization
  • powerful locale-specific collation using the ICU libraries
  • full support for upgrade of Seaside applications
  • API for secure SSL sockets from Smalltalk

Release notes, Install Guide and manuals are available here. Be sure to carefully read the GemStone 3.1.0 release notes, if this is the first time you have used GemStone/S 3.x as there are significant differences between GemStone3.x and GemStone 2.x.

Before attempting an upgrade  you will want to make sure that your application loads into a virgin 3.1 repository (extent0.seaside.dbf) and passes unit tests before attempting the upgrade.

GLASS 1.0-beta.8.7.2

GemStone 3.1.0 ships with GLASS 1.0-beta.8.7.2 pre-installed in $GEMSTONE/bin/extent0.seaside.dbf.

With the GemStone 3.1.0 release, there is an upgrade path from Gemstone 2.x and GemStone 3.0.1. See the Linux or Mac Install  Guide for detailed upgrade instructions.

Download and Installation

You can download the binaries from, use the script to download and install GemStone 3.1.0 on your machine(highly recommended), or visit downloads page.

Starting a 3.1.0 stone

Once you’ve installed Gemstone in /opt/gemstone/product, follow these steps to start and stop the stone:

  1. Define GEMSTONE environment variables  ($GEMSTONE/bin and $GEMSTONE/seaside/bin added to your $PATH environment variable):
    source /opt/gemstone/product/seaside/defSeaside

    It is recommended that you add this step to your .bashrc.

  2. Copy the system.conf and GLASS extent0.dbf files to data directory:
    cp $GEMSTONE/seaside/system.conf \
    chmod +w $GEMSTONE/seaside/data/system.conf
    cp $GEMSTONE/bin/extent0.seaside.dbf \
    chmod +w $GEMSTONE/seaside/data/extent0.dbf

    This step is performed as part of the script.

  3. Start netldi and stone processes:
  4. Ensure stone process is running:
    gslist -lcv
  5. Stop stone process:

Check the Starting a stone page on the glass db wiki for updates to the above procedure.

GemTools 1.0-beta.8.7

A One-Click GemTools 1.0-beta.8.7 for GemStone 3.1.0 can be obtained from the downloads page or you can download GemTools 1.0-beta.8.7 for Gemstone/S 3.1.0 all platforms directly.

You can build a custom GemTools image by following these steps on the glass db wiki.


[1] / CC BY 2.0

DGJ_1453 - Murano Glass[1]

GemTools 1.0-beta.8.6 has been released. With this release the GLASS upgrade process has been improved, yet again.

One-Click 1.0-beta.8.6 GemTools

One-Click GemTools images are available on the GLASS downloads page. GemTools images are available for use with GemStone/S 2.3.xGemStone/S 2.4.4.x, and GemStone/S 3.0.1.x,

GLASS Upgrade Cha Cha

I suppose it is a little known fact that the GemTools code base includes code that is used to drive the GLASS upgrade process, although my constant entreaties to “upgrade GemTools to the latest version before upgrading GLASS” may have given you a clue or two.

I thought I’d take this opportunity to describe what goes on behind the scenes when you select the  Update > Update GLASS menu item in GemTools. This section should be especially useful if you prefer to upgrade your system without running GemTools.

For a complete upgrade script, take a look at the GLASS upgrade script page on the glass db wiki. The GLASS upgrade script page will always have the latest and greatest upgrade script.

Through the ‘Update GLASS’

The upgrade process has been greatly simplified since I first started using Metacello for bootstrapping GLASS 1.0-beta.0, back in November of 2009, but the basic steps have remained the same:

  1. bootstrap the latest version of Metacello
  2. bootstrap the latest version of Monticello
  3. upgrade GLASS

Bootstrap Metacello

Currently Metacello 1.0-beta.31.1 is the version that is needed for a smooth upgrade process:

ConfigurationOfMetacello project currentVersion versionNumber < '1.0-beta.31.1' asMetacelloVersionNumber ifTrue: [
        (Gofer new)
            gemsource: 'metacello';
            version: 'Gofer-Core.gemstone-dkh.135';
            version: 'Metacello-Base-DaleHenrichs.19';
            version: 'Metacello-Core-dkh.468';
            version: 'Metacello-MC-dkh.531';
            version: 'Metacello-Platform.gemstone-dkh.23';
            load ].

It turns out that the best formula for bootstrapping Metacello is to directly load the key packages. I would have liked to use Metacello to bootstrap itself, but for GLASS we need to upgrade a wide range of Metacello releases dating back to over a year ago and there are several bugs that make it impractical to do anything but load the packages directly.

Bootstrap Monticello

To bootstrap Monticello, we use the GLASS configuration and load the ‘Core’ and ‘Monticello’ projects:

MCPlatformSupport commitOnAlmostOutOfMemoryDuring: [[[
    (ConfigurationOfGLASS project version: '1.0-beta.8.7.1') 
        load: #( 'Core' 'Monticello' )
    on: MetacelloSkipDirtyPackageLoad
    do: [:ex | ex resume: false ]]
        on: Warning
        do: [:ex | 
            Transcript cr; show: ex description.
            ex resume ]].

We wrap the load with an out-of-memory handler.

The MetacelloSkipDirtyPackageLoad handler is there to compensate for a bug in the Monticello package loader that occasionally resulted in a package being marked dirty after a successful load.

The Warning handler is also there to ensure that packages needed for the upgrade are loaded whether or not they are marked dirty.

Upgrade GLASS

The GLASS upgrade is completed by doing a simple load:

MCPlatformSupport commitOnAlmostOutOfMemoryDuring: [[[
    (ConfigurationOfGLASS project version: '1.0-beta.8.7.1') 
    on: MetacelloSkipDirtyPackageLoad
    do: [:ex | ex resume: false ]]
        on: Warning
        do: [:ex | 
            Transcript cr; show: ex description.
            ex resume ]].


[1] / CC BY-SA 2.0

Auto Kit Wrench Set[1]

GemTools 1.0-beta.8.5 has been released. With this release there have been several bugfixes:

  • Issue 132 : Use System class>>#”cacheName:” to make session recognizable in vsd
  • Issue 250 : order and size of args asociated with #halt changed in Gci3xErrStype64 (GemStone 3.0)
  • Issue 280: GemTools login error: ”Network error – text follows”, does not follow with error message…
  • Issue 291: Maintenance Gem Topaz Exit 3.0 / GemStone 3.0

as well as some tweaks to the GLASS upgrade process.


I always recommend that you update GemTools before upgrading GLASS, because the GLASS upgrade process is driven by code included in GemTools. When you select the Update GLASS menu item, the class OGUpgradeJadeServer (included in the GemTools distribution) is compiled on the server and is then used to control the upgrade process.

Speaking of upgrading GLASS… If you are interested in doing a GLASS upgrade from a topaz script take a look at this page on the glassdb wiki has the most up-to-date instructions.


Don’t forget that when you load GemTools into Pharo and Squeak, a set of Help Browser pages are created to provide the most up-to-date information on getting started with GemStone and the GemTools image.


Before releasing 1.0-beta.8.5, I tried loading GemTools into some of the more recent Pharo releases, like Pharo 1.3 and Pharo 1.2, but unfortunately the OmniBrowser implementation in those images is incompatible with the OmniBrowser required for GemTools. The latest version of Pharo that I found that works with GemTools is Pharo1.1.2-11422.

Squeak VM versions

While we’re on the subject, you should also be aware that in order to connect to GemStone, you must use an older version of the Squeak vms (4.2.2 or older) to avoid an FFI bug. For more details, see Issue 258.

—– / CC BY-NC 2.0

SpeedyI have written in the past about my attempt to increase the responsiveness of GemTools when used over the WAN, but there are still more roundtrips than I would like.

Ramon Leon has found a way to speed up the remote performance of GemTools on LInux:

Now GemTools will run fast enough that you could actually develop directly in Gemstone if you like. Not that I actually would, Pharo has much better tool support.

Photo by / CC BY NC ND 2.0

Lighthouse (Leuchturm) WittenbergenThanks to the hard work of Norbert Hartl, GemTools can now be loaded into Pharo 1.1.

If you’d like to build your own GemTools on top of Pharo 1.1, then download Pharo 1.1 image (core or dev) and follow the installation instructions here.

If you are using GemTools 1.0-beta.8.2 on Pharo 1.0 or Squeak 4.1, you can upgrade to 1.0-beta.8.3, but there should be no functional differences.

Photo by / CC BY NC ND 2.0

Me and MaulOnce the GemTools 1.0-beta.6 configuration was released, James Foster took a Pharo 1.0 one-click image and transformed it into a GemTools 1.0-beta.6 one-click(zip) for OS X, Linux and Windows.

The one-click image is available on the GLASS downloads page.

Photo by / CC BY 2.0


GemTools 1.0-beta.6 is a prerequisite for GLASS 1.0-beta.8.

GemTools 1.0-beta.6 features:

  • fixed highlighting for class definition/creation template
  • enabled syntax highlighting in workspaces
  • double click includes leading $_. In package GemTools-Overrides that is not loaded by default, because it stomps on a method in Character.
  • GsOBColumnPanel>>currentNode sends #currentNode to server-side, fixing a couple of ancient bugs
  • reset GLASS version after doing a Server update
  • exclude #baseline versions from update glass client version list
  • add proportional splitters to inspectors (resize panes vertically)
  • Use Help System instead of ProfStef
  • fix Issue 54 “Typos and unclear instructions in GemTools ProfStef tutorial”
  • add ”Admin>>Doit…>>Version Report” menu item (included in bug report template) that shows versions of all installed configs
  • add toggle ”Admin>>Commit on Almost Out of Memory” command
  • upgrade path from 0.231, 0.232.2 and 1.0-beta.0 through 1.0-beta.7 to 1.0-beta.8

The Terse Guide to the (new) GLASS Tools has been transferred (and updated) to the glassdb wiki see the GemTools Launcher Guide page.

For GemTools  installation instructions see the Getting started with GLASS page (steps 3 through 6).

For GemTools update instructions see the Update GemTools Launcher page.

GemTools Client 1.0-beta.6 has been tested with:

  • Pharo 1.0
  • Squeak 4.1

Let me know if you run into problems.

—– / CC BY-NC-ND 2.0


Well the time has finally come, or nearly come.

It’s been nearly a year since I’ve released a GLASS Beta Update. Last April, when I released the SOAP Preview for GLASS, it was obvious to me that the days were numbered for the GLASS.230-dkh umbrella package and that I would have to find a better solution for making releases in Smalltalk. I just didn’t realize that the number would top 300:)

In my defense, starting in November of last year I did initiate a series of Bootstrap releases (1.0-beta.0, 1.0-beta.4, and 1.0-beta.5), but over the last 10 months I’ve really focussed on getting Metacello up to snuff.

The good news is that I am in the final steps of the year long release cha cha.

Metacello 1.0-beta.25

Metacello is nearly ready for 1.0, but there are a handful of things that have to be done before release. I’ve outlined most of them in The road to 1.0. I will release 1.0-beta.25 later today (fingers crossed) and will spend a day or so writing up additional documentation on some of the new Metacello features.

GemTools 1.0-beta.6

Once Metacello 1.0-beta.25 is out the door, I will polish up GemTools 1.0-beta.6.

The big news with GemTools 1.0-beta.6 is that I have transitioned to using the Help System for documenting the update steps for GemTools and GLASS. I will continue to announce releases on my blog, but the details for doing an update will be included in a Help System browser available via GemTools. This means that you won’t have to try to cross reference the versions of GemTools and GLASS with ancient blog posts to figure out how to upgrade to later versions.

Continuing the process started over a year ago, you will need to update to GemTools 1.0-beta.6 in order to update to GLASS 1.0-beta.8.

BTW, when Pharo releases version 1.0, we’ll release a new one-click for GemTools.

GLASS 1.0-beta.8

I plan to push GemTools 1.0-beta.6 out right before I release GLASS 1.0-beta.8. At this point I’ve got most of the major port and testing load behind me:

There are a few more details that I need to cover and quite a bit of documentation to write about for 1.0-beta.8 before release, but I thought it was worth letting you know that I am in the final approach for releasing 1.0-beta.8

[1]Photo by / CC BY-NC-ND 2.0


GemTools 1.0-beta.3 features:

  • improve ”Show Object log” output format
  • add ”List backup files” command
  • add some missing icon definitions for Squeak
  • load OB/Shout if not present
  • ProfStef tutorials (Pharo only for the moment)

The major change with this version is that the installation instructions are included as part of GemTools release. The last statement in install expression opens an interactive tutorial (created with ProfStef) in the Smalltalk image to guide you through the necessary steps to finish the GemTools install. The tutorial provides guidance for several different tasks from installing GemStone/S to opening the GemTools Launcher. A How To… button has been added to the GemTools Launcher with step by step tutorials for the following topics (so far):

  • How to finish the GemTools installation
  • How to define a GemTools session to log into your GemStone server
  • How to update your GemStone server code (GLASS.230-dkh.164 through GLASS.230-dkh.231)
  • How to open GemTools Launcher
  • How to install and start a GemStone Server
  • How to build a custom extent (GLASS 1.0-beta.4 and later)
  • How to update your GLASS software after building a custom extent (GLASS 1.0-beta.4 and later)
  • How to update your GemTools client software

Here’s a sample screen from the ‘How to finish the GemTools installation’:

What this means for you is that the installation instructions will match the version of GemTools that you are installing and you won’t have to guess which blog post has the right instructions for your situation. I will be updating the tutorials to cover more subjects and I welcome the contributions of tutorials from others (just let me know and I’ll add you as a developer to GemTools repository).

Wiki and Bug Reports

In the last week or so, I created a Google Code project for GLASS called glassdb. The project provides a public wiki and a public issue reporting system. I encourage you to submit a bug if you run into issues using GemTools or GLASS.

With a public bug reporting system it is now possible for you to contribute bugfixes as well as bug reports. If you want to contribute let me know and I’ll you to the glassdb project and add you to the GLASS DEVS group on GemSource.

Update GemTools

Execute the following code in a Squeak or Pharo workspace:

ConfigurationOfGemTools loadLatestVersion

Or click on  the Update… button in the GemTools Launcher and select Update GemTools Client menu item.

Install GemTools

Execute the following code in a Pharo workspace after downloading a recent version of Pharo (tested with Pharo1.0-10508-rc2dev10.01.2 and PharoCore-1.0-10508rc2 images):

Gofer new
        squeaksource: 'MetacelloRepository';
        package: 'ConfigurationOfGemTools';
(Smalltalk at: #ConfigurationOfGemTools) perform: #loadLatestVersion.
(Smalltalk at: #ProfStef) perform: #goOn: with: (Smalltalk at: #OGFinishGemToolsInstall)

Until ProfStef  is ported to Squeak and Gofer is installed in the trunk, you’ll have to follow these instructions (tested with Squeak3.10.2-Trunk-090912).


[1] / CC BY-NC-ND 2.0

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 445 other followers


RSS GLASS updates

  • An error has occurred; the feed is probably down. Try again later.

RSS Metacello Updates

  • An error has occurred; the feed is probably down. Try again later.

RSS Twitterings

  • An error has occurred; the feed is probably down. Try again later.
February 2017
« May