Реализация Smalltalk с идеальным набором функций - PullRequest
4 голосов
/ 04 августа 2011

Я предпочитаю взаимодействие с языками программирования через стандартный терминал bash.Хотя Squeak и Pharo хорошо документированы, у них нет CLI, а только графический интерфейс виртуальной машины.

GNU Smalltalk и Slate имеют обычный CLI, но не имеют инсталляторов для Linux, Mac или Windows - идля них требуется сложная конфигурация MSYS в Windows.

Похоже, что не существует реализации Smalltalk, которая бы содержала как CLI, так и многоплатформенные установщики.Я бы хотел выбрать этот язык, но я не могу найти Smalltalk, который мне подходит.

Есть ли в Squeak и Pharo секретные режимы CLI?Кто-нибудь знает, где размещены установщики GST или Slate?Существуют ли другие бесплатные Smalltalks с открытым исходным кодом, обладающие этими двумя функциями?

Ответы [ 2 ]

5 голосов
/ 04 августа 2011

Да, Pharo имеет «секретный» режим CLI.Называется Коралл .

4 голосов
/ 05 августа 2011

Продолжая ответ Лукаса, вот скрипт для загрузки Коралла в 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'.

Он основан на непосредственной версии Коралла (Дэмиен только что начал редизайн частей Коралла).) и добавляет в Squeak несколько методов, ожидаемых Coral.

После установки следуйте стандартным инструкциям:

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

И затем из командной строки:

$ chmod +x coral.sh coralDebug.sh
$ ./coral.sh scriptCarpet.cst
...