8

通常のインストールの説明では、Pharo を少なくとも 3 つのファイルで実行する必要があると書かれています。

  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.を検証するために、逆コンパイラーへの参照を参照することを試みることができます(私自身の好みには少し多すぎる使用法があります)。

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 に答える