Smalltalk and ObjectStudio
have enabled us to build a true small-business framework which we can reutilize and tailor for each new customer context.

Serge Lehmann, EBC Informatique Project Manager

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!”