The trick to installing Cincom Smalltalk on Ubuntu

I’d easily gotten Cincom Smalltalk (also known as VisualWorks) working on my PowerBook, but it would not install on my Ubuntu (Dapper Drake) Linux box. It took a while but I eventually found the solution.

The symptom was that when I ran the installer and picked “Typical Install”, it started contacting the Cincom FTP server and then the window disappeared and I ended up with an error.log file that starts like this:

==2006/10/9==18:36:23==BEGIN RUNTIME DIAGNOSTIC DUMP
Note: this file stored in VisualWorks #UTF8 (UTF-8) encoding

Cause of Dump: Unhandled exception: Arguments invalid -- wrong class
Image Identification: 'Image created January 9, 2006  10:35:56 am'
Smalltalk Version: 'VisualWorks®, 7.4 of December 5, 2005'
Object Memory versionId: #[59 40 59 64 74 0 0 0 59 40 59 64]
Class creating this dump: RuntimeImageDumper
Command Line: ./visual -noherald VWInstaller.im -installSelf
------------------------------------------------------------
Active Process
Context Stack:
[1]     HandleRegistry>>evaluateWithFullProtection:
[2]     HandleRegistry>>registerValueOf:
[3]     UnixProcess class(OSHandle class)>>handleValue:
[4]     UnixProcess class>>forkJob:arguments:environment:descriptors:
[5]     UnixProcess class>>forkJob:arguments:descriptors:
[6]     optimized [] in UnixProcess class>>pipeConnectionFor:arguments:setProcessDescriptor:
[7]     BlockClosure>>ifCurtailed:
[8]     UnixProcess class>>pipeConnectionFor:arguments:setProcessDescriptor:
[9]     UnixProcess class>>cshOne:
[10]    VisualWorks.InstallMap>>vmComponentsForPlatform
[11]    VisualWorks.InstallMap>>defaultSelections
[12]    optimized [] in VisualWorks.InstallerMainApplication>>setSeedFileOptions
[13]    optimized [] in VisualWorks.InstallOptions>>selectionsOr:
[14]    UndefinedObject>>ifNil:
[15]    VisualWorks.InstallOptions>>selectionsOr:
[16]    VisualWorks.VWInstallerApplication(VisualWorks.InstallerMainApplication)>>setSeedFileOptions
[17]    optimized [] in VisualWorks.InstallerMainApplication>>update:with:from:
[18]    optimized [] in DeferrableAction>>execute
[19]    BlockClosure>>ensure:
[20]    DeferrableAction>>execute
[21]    DeferrableAction>>dispatch
[22]    DeferrableAction(Event)>>dispatchForWindowManager:
[23]    optimized [] in WindowManager>>safelyDispatchForWindowManager:
[24]    BlockClosure>>on:do:
[25]    WindowManager>>safelyDispatchForWindowManager:
[26]    WindowManager>>processNextEvent
[27]    optimized [] in [] in WindowManager>>newProcess
[28]    BlockClosure>>on:do:
[29]    optimized [] in WindowManager>>newProcess
[30]    BlockClosure>>on:do:
[31]    optimized [] in Process class>>forBlock:priority:

------------------------------------------------------------
Unhandled Exception:
       class: UnhandledException
       creator: UnhandledException
       errorString: Unhandled exception: Arguments invalid -- wrong class
       parameter: an OsInvalidArgumentsError

The solution for this installer crash was simple. All I had to do was install csh:

sudo apt-get install csh

Voila! Now the installer works fine and Cincom installed smooth as silk.

The program actually seems snappier and more usable under Linux than under Mac OS X. Case in point: on OS X, I could not resize windows by dragging the lower right corner; I had to use one of the context menus and even that was extremely funky and not reliable. On Linux, resizing was no problem at all. In general the app looks more at home in my GNOME environment than it did in OS X, where it seemed decidedly unAqua-like and out of place.

This sounds like something that should be added to the FAQ.

2 thoughts on “The trick to installing Cincom Smalltalk on Ubuntu

  1. Thanks – I liked Ubuntu but decided to go to Debian – you
    might think that your instructions would work on Debian
    too but they don’t seem to.

    Still trying.

    Will report back if I get it successfully installed.

    It installed perfectly on the one last computer that I have XP
    on but I want to get rid of XP!!!!!

Leave a Reply

Your email address will not be published. Required fields are marked *