チェリー・ヴァニラなイメージでアップデートを掛けてみた.クラスは 3 個減ったがこいつらは CardPlayer55, CardPlayer57, Player56 という Player のサブクラス群だった.メソッド数は 5 つほど増えている.
SystemVersion newVersion: 'Squeak3.8.1'. Utilities updateUrlLists setContents: #(#('Squeak FTP Updates' #('ftp.squeak.org/'))). Utilities updateFromServer.
上記をワークスペースなりにペーストして do it. 最後チェンジセット 6744FastSocketStream-gk.cs で removeSelectorSimply: を呼んでいるんだが,こいつは deprecated: であり,五月蝿うてならぬので,最初のウォークバックで basicRemoveSelector: に書き換えるよろし.
チェリー・ヴァニラなイメージで書き出す.
| classes stream |classes := OrderedCollection new: Metaclass allInstances size.Smalltalk do: [:each | (each isKindOf: Behavior) ifTrue: [classes add: each name]].stream := FileStream newFileNamed: 'Squeak3.8.1.classes'.classes asSortedCollection do: [:each | stream nextPutAll: each name. stream cr.].stream close.
3.8.1 から比較する.
| newClasses oldClasses stream newOnly oldOnly aStream aModel diffBlock outBlock |stream := (FileStream oldFileNamed: 'Squeak3.8.classes') contentsOfEntireFile. oldClasses := stream findTokens: String cr.newClasses := OrderedCollection new: Metaclass allInstances size.Smalltalk do: [:each | (each isKindOf: Behavior) ifTrue: [newClasses add: each name printString]].newOnly := IdentitySet new.oldOnly := IdentitySet new.diffBlock := [:classes :comparativeClasses :targetClasses | classes asSortedCollection do: [:class | (comparativeClasses includes: class) ifFalse: [targetClasses add: class]]].diffBlock value: newClasses value: oldClasses value: newOnly.diffBlock value: oldClasses value: newClasses value: oldOnly.outBlock := [:head :classes :outStream | outStream nextPutAll: head; cr. classes asSortedCollection do: [:class | outStream tab; nextPutAll: class; cr]].aStream := WriteStream on: (String new: 10000).outBlock value: 'Classes: Added on Squeak 3.8.1' value: newOnly value: aStream.aStream cr; cr.outBlock value: 'Classes: Deleted on Squeak 3.8.1 (exists 3.8)' value: oldOnly value: aStream.aModel := (StringHolder new) contents: aStream contents.StringHolderView open: aModel.^aModel
このコード, 1.31 と 2.0 のクラスの差異を調べるために 8 年ぐらい前に書いたコードだけど,まだ動くんだ (笑).
0 件のコメント:
コメントを投稿