With constant demands for
cost-savings, it is rewarding for us to have a development tool that is both appropriate and productive.

Lennart Stenberg, Swedish National Tax Authority

Cincom Smalltalk Support Tidbits

Here are some interesting tidbits of information from Cincom Smalltalk Support that you might find useful.

Cincom® ObjectStudio® 8.3 –
Prevent Double Instances of Controllers after Using RTP

Using the Designer to edit the application controller creates a new instance of the controller class.  The new instance becomes the value assigned to the corresponding global variable and the value associated with the corresponding icon on the ObjectStudio Desktop.  Saving in the Designer will again create a new instance of the controller class, assign it to the corresponding global variable and associate it to the corresponding icon on the ObjectStudio Desktop.

If you then run RTP to create a runtime image, the older instances of the application controller class may not always be garbage collected, and so the runtime image may contain more than one instance.

If executing

      Core.ObjectMemory compactingGC.

in a workspace before running RTP does not collect all of the extra instances, then a workaround is to run RTP in a fresh ObjectStudio session in which the UI Designer has not been used. 

  • Publish your changes
  • Exit the ObjectStudio session
  • Begin a new ObjectStudio session
  • Load your application
  • Load RTP
  • Run RTP

Cincom® VisualWorks® 7.8 –
Adding Namespace Imports to a ChangeSet

There are a few ways to accomplish this.  One example follows, with an imaginary example namespace of FOO:

| newChangeSet |
newChangeSet := NamedChangeSet withName: #Res100031Example.
NamedChangeSet addChangeSet: newChangeSet.
ChangeSet
withCurrent: newChangeSet
do:
[Smalltalk
evaluateAndRemember:
'Smalltalk addImport:
(GeneralNameSpaceImport path: #(#FOO))'.]

This will evaluate the change within the image, record it in the change log and add the change to the current (or by this particular usage, the new and temporarily current ChangeSet #Res100031Example).

“Smalltalking is fun!”