smalltalk – 使用Squeak从shell
发布时间:2020-12-15 20:07:30 所属栏目:安全 来源:网络整理
导读:我可以启动Squeak作为REPL(没有GUI),在哪里可以输入和评估Smalltalk表达式?我知道默认图像不允许这样。是否有任何文档如何构建可以从命令行shell访问的最小映像? 这里是(hackish)解决方案: 首先,您需要OSProcess,因此在Workspace中运行: Gofer new sq
我可以启动Squeak作为REPL(没有GUI),在哪里可以输入和评估Smalltalk表达式?我知道默认图像不允许这样。是否有任何文档如何构建可以从命令行shell访问的最小映像?
这里是(hackish)解决方案:
首先,您需要OSProcess,因此在Workspace中运行: Gofer new squeaksource:'OSProcess'; package:'OSProcess';load. 接下来,将其放在文件repl.st中: OSProcess thisOSProcess stdOut nextPutAll: 'Welcome to the simple Smalltalk REPL'; nextPut: Character lf; nextPut: $>; flush. [ |input| [ input := OSProcess readFromStdIn. input size > 0 ifTrue: [ OSProcess thisOSProcess stdOut nextPutAll: ((Compiler evaluate: input) asString; nextPut: Character lf; nextPut: $>; flush ] ] repeat. ]forkAt: (Processor userBackgroundPriority) 最后,运行这个命令: squeak -headless path/to/squeak.image /absolute/path/to/repl.st 你现在可以有一个Smalltalk REPL的乐趣。不要忘记键入命令: Smalltalk snapshot:true andQuit:true 如果要保存您的更改。 现在,对这个解决方案的解释: 接下来,在userBackgroundPriority(运行其他进程)上运行无限循环。在这个无限循环中,使用Compiler evaluate:执行输入。 你运行在一个无头的图像的脚本。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |