Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

A Smalltalk implementation with the perfect feature set

I prefer interfacing with programming languages through a standard bash terminal. While Squeak and Pharo are well documented, they don't seem to have a CLI, just a VM GUI.

GNU Smalltalk and Slate have a normal CLI but no installers for Linux, Mac, or Windows--and they require a complicated MSYS configuration on Windows.

There seems to be no Smalltalk implementation that has both a CLI and multiplatform installers. I'd love to pick up this language, but I can't seem to find a Smalltalk that suits me.

Do Squeak and Pharo have secret CLI modes? Does anyone know where GST or Slate installers are posted? Are there other free, open source Smalltalks that have these two features?

like image 862
mcandre Avatar asked Aug 04 '11 08:08

mcandre


2 Answers

Yes, Pharo has a "secret" CLI mode. It is called Coral.

like image 123
Lukas Renggli Avatar answered Oct 04 '22 10:10

Lukas Renggli


Extending on Lukas' answer, here's a script to load Coral into Squeak:

Installer ss
    project: 'OSProcess';
    install: 'OSProcess-dtl.63'.
Installer ss
    project: 'rb';
    install: 'AST-Core-lr.88'.
Installer lukas
    project: 'petit';
    install: 'PetitParser-lr.218';
    install: 'PetitTests-lr.34';
    install: 'PetitSmalltalk-lr.47'.
Installer ss
    project: 'fs';
    install: 'FS-Core-StephaneDucasse.4';
    install: 'FS-AnsiStreams-cwp.1';
    install: 'FS-FileStream-cwp.1';
    install: 'FS-Disk-cwp.1'.
Installer ss
    project: 'CoralSqueak';
    install: 'Coralsqueak-fbs.2';
    install: 'Coral-fbs.55'.

It's based on a near-to-head version of Coral (Damien's just started on a redesign of parts of Coral), and adds a few methods to Squeak that Coral expects.

Once installed, follow the standard instructions:

SmalltalkImage current saveAs: 'coral.image'.
CoralInstaller generateCoralScript.
CoralInstaller generateCoralDebugScript.
"Optionally: CoralInstaller generateAllExamples."

And then from your command line:

$ chmod +x coral.sh coralDebug.sh
$ ./coral.sh scriptCarpet.cst
like image 30
Frank Shearar Avatar answered Oct 04 '22 10:10

Frank Shearar