8

通常的安装说明告诉我,我需要运行 Pharo 至少三个文件:

  1. 图像文件
  2. 更改文件
  3. 源文件(例如 PharoV10.sources)

我已经在没有源文件的情况下运行了 Pharo 2,但没有发现任何问题。所有来源似乎都是可用的。

那么,为什么我需要源文件(例如 PharoV10.sources)?

4

3 回答 3

8

镜像文件只包含编译后的代码,不包含原始源代码。更改文件包含您自己添加到系统中的内容的源代码,但不包含现有系统类的源代码。要获取现有系统类的源代码,您需要源文件。

话虽如此,如果源文件不可用,Smalltalk 可以反编译代码并生成看起来像源代码的内容。此代码将缺少正确的变量名称、注释和间距。您真的不想使用反编译的源代码,因此您需要访问源文件。

于 2012-11-06T05:32:48.860 回答
6

3 种可能的解释,试着找出这个笑话:

  1. 浏览器足够智能,可以向您显示从 CompiledMethod 字节码重构(反编译)的源代码。提示:在这种情况下,您会丢失所有评论
  2. 有一个源文件的搜索路径,并且可以在磁盘的某个位置找到一个
  3. Pharo 变化如此之快,以至于现在可以在 .changes 文件中找到每个源

为了验证 1.,您可以尝试浏览对 Decompiler 的引用(我自己的口味有点太多用途)。

为了验证 2.,您可以开始浏览 #openSourceFiles 的实现者

为了验证 3.,您可以评估此​​代码段:

| nSources nChanges |
nSources := nChanges := 0.
SystemNavigation default allBehaviorsDo: [:b |
    b selectorsDo: [:s |
        (b compiledMethodAt: s) fileIndex = 1
            ifTrue: [nSources := nSources+1]
            ifFalse: [nChanges := nChanges+1]]].
^{nSources. nChanges}
于 2012-11-05T21:40:36.183 回答
4

Pharo 也有可能自动下载 PharoV10.sources。

于 2012-11-06T08:37:17.913 回答