7

Pharo に取り込みたい GNU Smalltalk コードが約 1800 行あります。クラスごと、セレクタごとにやり始めましたが、非常に時間がかかり退屈です。

プロジェクトを一括インポートする方法はありますか? vi事前に GST ソース ファイルのフォーマットをより Pharo らしくなるように簡単に調整することができました。

私が考えたもう1つのことは、「スターター」ファイルをコピーし、ファイル.mczの形式を感じてから、ファイルs と. しかし、ソースも含まれているように見えるファイルがあり、それを困難な道にしています。もっと簡単な方法があるはずです。さまざまなフレーズで Google で検索しましたが、何もヒットしませんでした。source.stsource.stcatvisnapshot.bin

4

2 に答える 2

8

これをモンティセロ (.mcz) 形式にするのは、移行にはやり過ぎです。それを fileout 形式 ( http://wiki.squeak.org/squeak/1105 ) にして、filein 経由で Pharo にロードしたら、必要に応じて GUI を使用して Monticello パッケージを作成できます。

どのファイルアウト形式が含まれているかを簡単に確認する方法 (主に、適切な場所に「!」を配置するだけです):

  1. ファロをロード
  2. ブラウザを開く
  3. クラスを右クリックし、メニューから「ファイル出力」を選択します
  4. [Classname].st というファイルが、Pharo を起動したディレクトリにあるはずです。
于 2016-06-08T05:57:52.513 に答える
3

LuckyClass1のサブクラスObjectとのLuckyClass2サブクラスの2 つのクラスがあるとしLuckyClass1ます。そして、あなたの名前が であるとしましょうLuckyName。そして、コードを package に入れたいとしましょうLucky-Package1

Object subclass: #LuckyClass1
LuckyClass1 subclass: #LuckyClass2

LuckyClass1インスタンス側メソッドluckyInstanceSideMethod1、クラス側メソッド、luckyClassSideMethod1インスタンス側変数luckyInstanceSideVariable1、クラス側変数を持つクラスLuckyClassSideVariable1

同様LuckyClass2に、インスタンス側メソッドluckyInstanceSideMethod1、クラス側メソッドluckyClassSideMethod1、および追加のインスタンス側変数luckyInstanceSideVariable2とクラス側変数を持つクラスLuckyClassSideVariable2

メソッド参照は次のようになります

LuckyClass1>>#luckyInstanceSideMethod1
LuckyClass1 class>>#luckyClassSideMethod1
LuckyClass2>>#luckyInstanceSideMethod1
LuckyClass2 class>>#luckyClassSideMethod1

Linux/Mac OS X では、

vi Lucky-Package1-unix.st

Lucky-Package1-unix.st のような名前のファイルに入れる

Object subclass: #LuckyClass1
    instanceVariableNames: 'luckyInstanceSideVariable1'
    classVariableNames: 'LuckyClassSideVariable1'
    poolDictionaries: ''
    category: 'Lucky-Package1'!

!LuckyClass1 methodsFor: 'lucky instance side protocol 1' stamp: 'LuckyName 6/8/2016 17:05'!
luckyInstanceSideMethod1
    ^ luckyInstanceSideVariable1 := 'lucky instance side'
! !

!LuckyClass1 class methodsFor: 'lucky class side protocol 1' stamp: 'LuckyName 6/8/2016 17:06'!
luckyClassSideMethod1
    ^ LuckyClassSideVariable1 := 'lucky class side'
! !

LuckyClass1 subclass: #LuckyClass2
    instanceVariableNames: 'luckyInstanceSideVariable2'
    classVariableNames: 'LuckyClassSideVariable2'
    poolDictionaries: ''
    category: 'Lucky-Package1'!

!LuckyClass2 methodsFor: 'lucky instance side protocol 1' stamp: 'LuckyName 6/8/2016 17:15'!
luckyInstanceSideMethod1
    ^ super luckyInstanceSideMethod1, ' subclass'
! !

!LuckyClass2 class methodsFor: 'lucky class side protocol 1' stamp: 'LuckyName 6/8/2016 17:17'!
luckyClassSideMethod1
    ^ super luckyClassSideMethod1, ' subclass'
! !

実際、前のブロックをカット アンド ペーストできます。

次に、改行を改行に変換しないと、Pharo が文句を言います。これは重要。Linux/Mac OS X を使用している場合は、次を使用できます。

cat Lucky-Package1-unix.st | tr \\n \\r > Lucky-Package1-pharo.st

Windowsでは、git-scm https://git-scm.com/download/winのbash、vi、cat、trを引き続き使用します

次に、ファイルしLucky-Package1-pharo.stます。Lucky-Package1システム ブラウザーのパッケージに表示されるはずです。

于 2016-06-08T16:03:06.597 に答える