【问题标题】:How to load VMMaker in Squeak?如何在 Squeak 中加载 VMMaker?
【发布时间】:2013-01-05 20:51:50
【问题描述】:

我正在使用 Squeak 4.4 更新 12327 和 VM 版本 4.1.1。我尝试使用 ConfigurationOf 脚本加载 VMMaker,但总是失败,主要是在 Freetype 包中出现异常。

Gofer new
       squeaksource: 'MetacelloRepository';
       package: 'ConfigurationOfVMMaker';
       load.
((Smalltalk at: #ConfigurationOfVMMaker) project version: '1.4') load

Gofer new
squeaksource: 'MetacelloRepository';
package: 'ConfigurationOfVMMaker';
load.

(Smalltalk at:#ConfigurationOfVMMaker) project lastVersion load.

Gofer new
     squeaksource: 'MetacelloRepository';
     package: 'ConfigurationOfVMMaker';
     load.

(ConfigurationOfVMMaker project version: '1.5') load.

repository page 包和 wiki pagesthis onethis one)都没有包含加载 VMMaker 的说明或链接,尽管包含很多解释。

【问题讨论】:

  • 您对VMMaker的哪个分支感兴趣?经典 VM(解释器)还是 COG VM(JIT /StackInterpreter)?
  • 它将是经典虚拟机(解释器),我使用的是虚拟机版本 4.1.1。但是有关加载 COG VM 的信息也将不胜感激
  • 那就是更新 MCM,看我的回答。我也在 vm-dev 邮件列表上问过这个问题...
  • 顺便说一句,我找到了一个提到该过程的 wiki 页面,wiki.squeak.org/squeak/6177 虽然它并没有用明亮的标题突出显示...

标签: virtual-machine smalltalk squeak


【解决方案1】:

这要感谢 David Lewis,在我们用来测试 Interpreter VM 的 CI 脚本中:

MCMcmUpdater updateFromRepositories: #('http://source.squeak.org/VMMaker').
(Smalltalk at: #VMMaker) initializeBrowserSupport. "activate Slang browsing"

【讨论】:

    【解决方案2】:

    不幸的是,到目前为止,Metacello 配置仅由以 Pharo 为中心的用户创建和使用...
    您最终可以更正配置中的 Squeak 分支,但这并不容易从那里启动。

    如果您对 oscog VM 分支感兴趣,那么在这个 svn 存储库中分发了一个带有预加载包的预构建 4.3 映像

    http://squeakvm.org/svn/squeak/branches/Cog

    查看 image 子目录下,打开 CogTrunk43.image,有一个工作区解释如何在图像中加载包。

    如果您对经典解释器感兴趣,那么加载它的方式是使用更新 MCM:

    1. 打开蒙蒂塞洛浏览器
    2. 添加 VMMaker 存储库
      (MCHttpRepository location: 'http://source.squeak.org/trunk' user: 'squeak' password: 'squeak')
    3. 选择并打开 VMMaker 存储库
    4. 在左侧窗格中,选择“更新”(底部项目)
    5. 在右侧窗格中选择顶部项目 (update-dtl.12.mcm)
    6. 选择“浏览”按钮
    7. 您会看到显示的软件包列表,单击“安装”按钮

    虽然更新配置晚了几个版本,不知道是否还在维护,最好也去“Squeak虚拟机开发讨论”问问

    编辑我认为这个神奇的咒语可以代替上面所有面向GUI的操作:

    MCMcmUpdater updateFromRepositories: {'http://source.squeak.org/VMMaker'}.
    

    【讨论】:

    • 谢谢,但更新程序在 FreeTypeCacheLinkedList addFirst: aLink ([^lastLink firstLink End of block expected -> aLink]) 中抛出语法错误。我以前见过这种情况,即使手动修复该方法并接受更改,也会在以后抛出两个调试器。顺便说一句,更新过程用大量带有黄线的红框破坏了所有图像。
    • 我尝试使用版本 12320,并选择了这两个编译器首选项,并且没有下载问题...Allow block argument assignmentAllow underscore assignments
    • 只需要Allow underscore assignment。请注意,MCMcmUpdater 将下载 AFAIR 编号最高的版本,因此该版本应该通过脚本保持最新(最终是前沿)。
    • 即使启用了允许下划线分配设置,我的图像也会挂起。我认为这个问题需要进一步调查。
    【解决方案3】:

    或者您可以打开SqueakMap 包浏览器并加载VMMaker 'head' 版本。这与如上所述从蒙蒂塞洛加载更新的作用相同。无论哪种方式,您都将获得最新版本的 VMMaker 和相关软件包。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-23
      • 1970-01-01
      • 1970-01-01
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多