[squeak-dev] The Inbox: Morphic-hjh.1349.mcz

H. Hirzel hannes.hirzel at gmail.com
Fri Oct 13 20:52:14 UTC 2017


According to Bert F. this change and the load test [1]
seems to be the only necessary thing to do to tell the SmartRefStream
to replace

        MultiNewParagraph  -> NewParagraph

Regarding the instance variables of MultiNewParagraph and NewParagraph
SmartRefStream takes care of the rest.


[1] test done in the thread 'MorphicProject subclass: #EtoysProject'

Drop project
     https://freudenbergs.de/bert/squeakjs/Etoys/Home.007.pr
onto desktop


Could somebody please commit this?

On 10/9/17, H. Hirzel <hannes.hirzel at gmail.com> wrote:
> Details see thread 'The Trunk: EToys-nice.292.mcz'
>
> In particular the mail by Tobias Pape
>
> http://lists.squeakfoundation.org/pipermail/squeak-dev/2017-October/195597.html
>
>
> The 'funny' name #multiNewParagraphttfclpomsswfp
>
> originates  from
>
>        	sel := sel, oldVer.
>
>
> See
>
> SmartRefStream>>mapClass:
>
> mapClass: incoming
> 	"See if the old class named nm exists.  If so, return it.  If not,
> map it to a new class, and save the mapping in renamed.  "
>
> 	| cls oldVer sel nm |
>
> 	self flag: #bobconv.	
>
>
> 	nm := renamed at: incoming ifAbsent: [incoming].	"allow pre-mapping
> around collisions"
> 	(nm endsWith: ' class')
> 		ifFalse: [cls := Smalltalk at: nm ifAbsent: [nil].
> 			cls ifNotNil: [^ cls]]  	"Known class.  It will know how to
> translate the instance."
> 		ifTrue: [cls := Smalltalk at: nm substrings first asSymbol ifAbsent:
> [nil].
> 			cls ifNotNil: [^ cls class]]. 	"Known class.  It will know how to
> translate the instance."
> 	oldVer := self versionSymbol: (structures at: nm).
> 	sel := nm asString.
> 	sel at: 1 put: (sel at: 1) asLowercase.
> 	sel := sel, oldVer.	"i.e. #rectangleoc4"
> 	Symbol hasInterned: sel ifTrue: [:symb |
> 		(self class canUnderstand: sel asSymbol) ifTrue: [
> 			reshaped ifNil: [reshaped := Dictionary new].
> 			cls := self perform: sel asSymbol]].	"This class will take
> responsibility"
> 	cls ifNil: [cls := self writeClassRenameMethod: sel was: nm
> 					fromInstVars: (structures at: nm).
> 			   cls isString ifTrue: [cls := nil]].
> 	cls ifNotNil: [renamed at: nm put: cls name].
> 	^ cls
>
>
> On Mon, 9 Oct 2017 19:46:19 0000, commits at source.squeak.org
> <commits at source.squeak.org> wrote:
>> A new version of Morphic was added to project The Inbox:
>> http://source.squeak.org/inbox/Morphic-hjh.1349.mcz
>>
>> ==================== Summary ====================
>>
>> Name: Morphic-hjh.1349
>> Author: hjh
>> Time: 9 October 2017, 9:45:19.910726 pm
>> UUID: 15492c5f-dfb8-43f5-b6c9-7b91b963907c
>> Ancestors: Morphic-tpr.1348
>>
>> Fix in SmartRefStream
>>
>>     MultiNewParagraph
>>
>> instances have to be converted to
>>
>>     NewParagraph
>>
>> instances.
>>
>> Example: Load Etoys project file
>>
>> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr
>>
>> =============== Diff against Morphic-tpr.1348 ===============
>>
>> Item was added:
>> + ----- Method: SmartRefStream>>multiNewParagraphttfclpomsswfpp0 (in
>> category '*Morphic-conversion') -----
>> + multiNewParagraphttfclpomsswfpp0
>> +
>> + 	^ NewParagraph!
>>
>>
>>
>


More information about the Squeak-dev mailing list