Hello
Is there a backup-copy/mirror available of the
MorphLayoutArticle
project which was on Bob's SuperSwiki? [1]
Regards Hannes
---------------------------------- [1] http://wiki.squeak.org/squeak/2141
How to lay out submorphs
Please read the excellent dynamic essay project MorphLayoutArticle (broken link) on Bob's SuperSwiki.
Every Morph now has the capability to layout it's submorphs. (Previously, only the AlignmentMorph could implement layout policies. AlignmentMorph is still available because of compatibility reasons and some utility methods it implements.
Here is the latest one I have. It loaded fine in 3.2.
On 4/29/18 10:20 PM, H. Hirzel wrote:
Hello
Is there a backup-copy/mirror available of the
MorphLayoutArticle
project which was on Bob's SuperSwiki? [1]
Regards Hannes
[1] http://wiki.squeak.org/squeak/2141
How to lay out submorphs
Please read the excellent dynamic essay project MorphLayoutArticle (broken link) on Bob's SuperSwiki.
Every Morph now has the capability to layout it's submorphs. (Previously, only the AlignmentMorph could implement layout policies. AlignmentMorph is still available because of compatibility reasons and some utility methods it implements.
Hi Bob
It still loads fine in Squeak 3.2. Thank you.
In Squeak 3.8.1 the SmartRefStream needs a new class for
AlansTextPlusMorph
SmartRefStream>> alansTextPlusMorphbosfcebbmsopssrsggshtt0
^ PutNewClassHere
Any suggestions what I should put as a new class?
Regards Hannes
On 4/30/18, Bob Arning arning315@comcast.net wrote:
Here is the latest one I have. It loaded fine in 3.2.
On 4/29/18 10:20 PM, H. Hirzel wrote:
Hello
Is there a backup-copy/mirror available of the
MorphLayoutArticle
project which was on Bob's SuperSwiki? [1]
Regards Hannes
[1] http://wiki.squeak.org/squeak/2141
How to lay out submorphs
Please read the excellent dynamic essay project MorphLayoutArticle (broken link) on Bob's SuperSwiki.
Every Morph now has the capability to layout it's submorphs. (Previously, only the AlignmentMorph could implement layout policies. AlignmentMorph is still available because of compatibility reasons and some utility methods it implements.
Hi Hannes,
In 5.1 there is SmartRefStream>>#initKnownRenames which includes:
at: #AlansTextPlusMorph put: #TextPlusMorph;
HTH, Tim
On 4/30/2018 7:33 AM, H. Hirzel wrote:
Hi Bob
It still loads fine in Squeak 3.2. Thank you.
In Squeak 3.8.1 the SmartRefStream needs a new class for
AlansTextPlusMorph
SmartRefStream>> alansTextPlusMorphbosfcebbmsopssrsggshtt0
^ PutNewClassHere
Any suggestions what I should put as a new class?
Regards Hannes
On 4/30/18, Bob Arning arning315@comcast.net wrote:
Here is the latest one I have. It loaded fine in 3.2.
On 4/29/18 10:20 PM, H. Hirzel wrote:
Hello
Is there a backup-copy/mirror available of the
MorphLayoutArticle
project which was on Bob's SuperSwiki? [1]
Regards Hannes
[1] http://wiki.squeak.org/squeak/2141
How to lay out submorphs
Please read the excellent dynamic essay project MorphLayoutArticle (broken link) on Bob's SuperSwiki.
Every Morph now has the capability to layout it's submorphs. (Previously, only the AlignmentMorph could implement layout policies. AlignmentMorph is still available because of compatibility reasons and some utility methods it implements.
Hi Tim
Implementing your suggestion [1] worked to make MorphLayoutArticle.019.pr load into Squeak 3.8.1, see screen shot.
What I aiming at next at is to load it into Squeak 6.0a trunk. I assume this should be possible quite easily because of the enhancements done last year [2][3].
Regards Hannes
[1] Extend #initKnownRenames
SmartRefStream>>initKnownRenames renamed at: #AlansTextPlusMorph put: #TextPlusMorph; at: #FlasherMorph put: #Flasher; yourself
made MorphLayoutArticle.019.pr to load.
[2] 6502 format http://wiki.squeak.org/squeak/6502
ImageFormat of the interpreter Virtual Machine. May be loaded transparently into Squeak 6.0a through the help of LegacyImageSegment.
[3] http://wiki.squeak.org/squeak/6579 LegacyImageSegment A new class introduced in March 2017 in Squeak 6.0a to enable the loading of the older 6502 image segment format type .
More see Smalltalk imageFormatVersion http://wiki.squeak.org/squeak/873
On 4/30/18, Tm Jhnsn digit@sonic.net wrote:
Hi Hannes,
In 5.1 there is SmartRefStream>>#initKnownRenames which includes:
at: #AlansTextPlusMorph put: #TextPlusMorph;
HTH, Tim
On 4/30/2018 7:33 AM, H. Hirzel wrote:
Hi Bob
It still loads fine in Squeak 3.2. Thank you.
In Squeak 3.8.1 the SmartRefStream needs a new class for
AlansTextPlusMorph
SmartRefStream>> alansTextPlusMorphbosfcebbmsopssrsggshtt0
^ PutNewClassHere
Any suggestions what I should put as a new class?
Regards Hannes
On 4/30/18, Bob Arning arning315@comcast.net wrote:
Here is the latest one I have. It loaded fine in 3.2.
On 4/29/18 10:20 PM, H. Hirzel wrote:
Hello
Is there a backup-copy/mirror available of the
MorphLayoutArticle
project which was on Bob's SuperSwiki? [1]
Regards Hannes
[1] http://wiki.squeak.org/squeak/2141
How to lay out submorphs
Please read the excellent dynamic essay project MorphLayoutArticle (broken link) on Bob's SuperSwiki.
Every Morph now has the capability to layout it's submorphs. (Previously, only the AlignmentMorph could implement layout policies. AlignmentMorph is still available because of compatibility reasons and some utility methods it implements.
Unfortunately the dynamic essay MorphLayoutArticle.019.pr did not load in a fairly recent Squeak 6.0a trunk image.
an OrderedCollection(ImageSegment(Object)>>doesNotUnderstand: #scanFrom: ObjectScanner>>scanFrom: [] in [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: BlockClosure>>on:do: [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ByteString(String)>>displayProgressAt:from:to:during: ByteString(String)>>displayProgressFrom:to:during: MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: MultiByteBinaryOrTextStream(PositionableStream)>>fileIn MultiByteBinaryOrTextStream>>fileInProject MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [] in [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>on:do: [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>ensure: ProjectLoading class>>fileInName:archive:morphOrList: ProjectLoading class>>openName:stream:fromDirectory:withProjectView:clearOriginFlag: ProjectLoading class>>openName:stream:fromDirectory:withProjectView: [] in ProjectLoading class>>openOn: BlockClosure>>on:do: [] in ByteString(String)>>displaySequentialProgress: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ProgressInitiationException class>>display:from:to:during: ByteString(String)>>displaySequentialProgress: ProjectLoading class>>openOn: [] in ExternalDropHandler class>>defaultProjectHandler ExternalDropHandler>>handle:in:dropEvent: PasteUpMorph>>handleDroppedItem:event: [] in PasteUpMorph>>dropFiles: BlockClosure>>ensure: PasteUpMorph>>dropFiles: PasteUpMorph(Morph)>>handleDropFiles: DropFilesEvent>>sentTo: PasteUpMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PasteUpMorph(Morph)>>processEvent:using: [] in PasteUpMorph>>processEvent:using: BlockClosure>>ensure: PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent: [] in [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: DropFilesEvent(MorphicEvent)>>becomeActiveDuring: [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: HandMorph>>becomeActiveDuring: [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendEvent:focus:clear: HandMorph>>sendEvent:focus: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in MorphicProject>>spawnNewProcess [] in BlockClosure>>newProcess)
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
Hi Tim
Implementing your suggestion [1] worked to make MorphLayoutArticle.019.pr load into Squeak 3.8.1, see screen shot.
What I aiming at next at is to load it into Squeak 6.0a trunk. I assume this should be possible quite easily because of the enhancements done last year [2][3].
Regards Hannes
[1] Extend #initKnownRenames
SmartRefStream>>initKnownRenames renamed at: #AlansTextPlusMorph put: #TextPlusMorph; at: #FlasherMorph put: #Flasher; yourself
made MorphLayoutArticle.019.pr to load.
[2] 6502 format http://wiki.squeak.org/squeak/6502
ImageFormat of the interpreter Virtual Machine. May be loaded transparently into Squeak 6.0a through the help of LegacyImageSegment.
[3] http://wiki.squeak.org/squeak/6579 LegacyImageSegment A new class introduced in March 2017 in Squeak 6.0a to enable the loading of the older 6502 image segment format type .
More see Smalltalk imageFormatVersion http://wiki.squeak.org/squeak/873
On 4/30/18, Tm Jhnsn digit@sonic.net wrote:
Hi Hannes,
In 5.1 there is SmartRefStream>>#initKnownRenames which includes:
at: #AlansTextPlusMorph put: #TextPlusMorph;
HTH, Tim
On 4/30/2018 7:33 AM, H. Hirzel wrote:
Hi Bob
It still loads fine in Squeak 3.2. Thank you.
In Squeak 3.8.1 the SmartRefStream needs a new class for
AlansTextPlusMorph
SmartRefStream>> alansTextPlusMorphbosfcebbmsopssrsggshtt0
^ PutNewClassHere
Any suggestions what I should put as a new class?
Regards Hannes
On 4/30/18, Bob Arning arning315@comcast.net wrote:
Here is the latest one I have. It loaded fine in 3.2.
On 4/29/18 10:20 PM, H. Hirzel wrote:
Hello
Is there a backup-copy/mirror available of the
MorphLayoutArticle
project which was on Bob's SuperSwiki? [1]
Regards Hannes
[1] http://wiki.squeak.org/squeak/2141
How to lay out submorphs
Please read the excellent dynamic essay project MorphLayoutArticle (broken link) on Bob's SuperSwiki.
Every Morph now has the capability to layout it's submorphs. (Previously, only the AlignmentMorph could implement layout policies. AlignmentMorph is still available because of compatibility reasons and some utility methods it implements.
Loading it into Squeak 4.4. asks for
SmartRefStream componentLikeModelbosfcebbmsop0
^ PutNewClassHere
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
Unfortunately the dynamic essay MorphLayoutArticle.019.pr did not load in a fairly recent Squeak 6.0a trunk image.
an OrderedCollection(ImageSegment(Object)>>doesNotUnderstand: #scanFrom: ObjectScanner>>scanFrom: [] in [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: BlockClosure>>on:do: [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ByteString(String)>>displayProgressAt:from:to:during: ByteString(String)>>displayProgressFrom:to:during: MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: MultiByteBinaryOrTextStream(PositionableStream)>>fileIn MultiByteBinaryOrTextStream>>fileInProject MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [] in [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>on:do: [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>ensure: ProjectLoading class>>fileInName:archive:morphOrList: ProjectLoading class>>openName:stream:fromDirectory:withProjectView:clearOriginFlag: ProjectLoading class>>openName:stream:fromDirectory:withProjectView: [] in ProjectLoading class>>openOn: BlockClosure>>on:do: [] in ByteString(String)>>displaySequentialProgress: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ProgressInitiationException class>>display:from:to:during: ByteString(String)>>displaySequentialProgress: ProjectLoading class>>openOn: [] in ExternalDropHandler class>>defaultProjectHandler ExternalDropHandler>>handle:in:dropEvent: PasteUpMorph>>handleDroppedItem:event: [] in PasteUpMorph>>dropFiles: BlockClosure>>ensure: PasteUpMorph>>dropFiles: PasteUpMorph(Morph)>>handleDropFiles: DropFilesEvent>>sentTo: PasteUpMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PasteUpMorph(Morph)>>processEvent:using: [] in PasteUpMorph>>processEvent:using: BlockClosure>>ensure: PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent: [] in [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: DropFilesEvent(MorphicEvent)>>becomeActiveDuring: [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: HandMorph>>becomeActiveDuring: [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendEvent:focus:clear: HandMorph>>sendEvent:focus: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in MorphicProject>>spawnNewProcess [] in BlockClosure>>newProcess)
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
Hi Tim
Implementing your suggestion [1] worked to make MorphLayoutArticle.019.pr load into Squeak 3.8.1, see screen shot.
What I aiming at next at is to load it into Squeak 6.0a trunk. I assume this should be possible quite easily because of the enhancements done last year [2][3].
Regards Hannes
[1] Extend #initKnownRenames
SmartRefStream>>initKnownRenames renamed at: #AlansTextPlusMorph put: #TextPlusMorph; at: #FlasherMorph put: #Flasher; yourself
made MorphLayoutArticle.019.pr to load.
[2] 6502 format http://wiki.squeak.org/squeak/6502
ImageFormat of the interpreter Virtual Machine. May be loaded transparently into Squeak 6.0a through the help of LegacyImageSegment.
[3] http://wiki.squeak.org/squeak/6579 LegacyImageSegment A new class introduced in March 2017 in Squeak 6.0a to enable the loading of the older 6502 image segment format type .
More see Smalltalk imageFormatVersion http://wiki.squeak.org/squeak/873
On 4/30/18, Tm Jhnsn digit@sonic.net wrote:
Hi Hannes,
In 5.1 there is SmartRefStream>>#initKnownRenames which includes:
at: #AlansTextPlusMorph put: #TextPlusMorph;
HTH, Tim
On 4/30/2018 7:33 AM, H. Hirzel wrote:
Hi Bob
It still loads fine in Squeak 3.2. Thank you.
In Squeak 3.8.1 the SmartRefStream needs a new class for
AlansTextPlusMorph
SmartRefStream>> alansTextPlusMorphbosfcebbmsopssrsggshtt0
^ PutNewClassHere
Any suggestions what I should put as a new class?
Regards Hannes
On 4/30/18, Bob Arning arning315@comcast.net wrote:
Here is the latest one I have. It loaded fine in 3.2.
On 4/29/18 10:20 PM, H. Hirzel wrote:
Hello
Is there a backup-copy/mirror available of the
MorphLayoutArticle
project which was on Bob's SuperSwiki? [1]
Regards Hannes
[1] http://wiki.squeak.org/squeak/2141
How to lay out submorphs
Please read the excellent dynamic essay project MorphLayoutArticle (broken link) on Bob's SuperSwiki.
Every Morph now has the capability to layout it's submorphs. (Previously, only the AlignmentMorph could implement layout policies. AlignmentMorph is still available because of compatibility reasons and some utility methods it implements.
This change set make the project ALMOST load in a 32 bit 6.0 Squeak image. But there are some conversion issues I have not figured out.
NOTE: Image will probably crash. USE WITH CARE
Best, Karl
On Mon, Apr 30, 2018 at 3:37 PM, H. Hirzel hannes.hirzel@gmail.com wrote:
Unfortunately the dynamic essay MorphLayoutArticle.019.pr did not load in a fairly recent Squeak 6.0a trunk image.
an OrderedCollection(ImageSegment(Object)>>doesNotUnderstand: #scanFrom: ObjectScanner>>scanFrom: [] in [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: BlockClosure>>on:do: [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ByteString(String)>>displayProgressAt:from:to:during: ByteString(String)>>displayProgressFrom:to:during: MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: MultiByteBinaryOrTextStream(PositionableStream)>>fileIn MultiByteBinaryOrTextStream>>fileInProject MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [] in [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>on:do: [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>ensure: ProjectLoading class>>fileInName:archive:morphOrList: ProjectLoading class>>openName:stream:fromDirectory:withProjectView:clearOriginFlag: ProjectLoading class>>openName:stream:fromDirectory:withProjectView: [] in ProjectLoading class>>openOn: BlockClosure>>on:do: [] in ByteString(String)>>displaySequentialProgress: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ProgressInitiationException class>>display:from:to:during: ByteString(String)>>displaySequentialProgress: ProjectLoading class>>openOn: [] in ExternalDropHandler class>>defaultProjectHandler ExternalDropHandler>>handle:in:dropEvent: PasteUpMorph>>handleDroppedItem:event: [] in PasteUpMorph>>dropFiles: BlockClosure>>ensure: PasteUpMorph>>dropFiles: PasteUpMorph(Morph)>>handleDropFiles: DropFilesEvent>>sentTo: PasteUpMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PasteUpMorph(Morph)>>processEvent:using: [] in PasteUpMorph>>processEvent:using: BlockClosure>>ensure: PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent: [] in [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: DropFilesEvent(MorphicEvent)>>becomeActiveDuring: [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: HandMorph>>becomeActiveDuring: [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendEvent:focus:clear: HandMorph>>sendEvent:focus: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in MorphicProject>>spawnNewProcess [] in BlockClosure>>newProcess)
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
Hi Tim
Implementing your suggestion [1] worked to make MorphLayoutArticle.019.pr load into Squeak 3.8.1, see screen shot.
What I aiming at next at is to load it into Squeak 6.0a trunk. I assume this should be possible quite easily because of the enhancements done last year [2][3].
Regards Hannes
[1] Extend #initKnownRenames
SmartRefStream>>initKnownRenames renamed at: #AlansTextPlusMorph put: #TextPlusMorph; at: #FlasherMorph put: #Flasher; yourself
made MorphLayoutArticle.019.pr to load.
[2] 6502 format http://wiki.squeak.org/squeak/6502
ImageFormat of the interpreter Virtual Machine. May be loaded transparently into Squeak 6.0a through the help of LegacyImageSegment.
[3] http://wiki.squeak.org/squeak/6579 LegacyImageSegment A new class introduced in March 2017 in Squeak 6.0a to enable the loading of the older 6502 image segment format type .
More see Smalltalk imageFormatVersion http://wiki.squeak.org/squeak/873
On 4/30/18, Tm Jhnsn digit@sonic.net wrote:
Hi Hannes,
In 5.1 there is SmartRefStream>>#initKnownRenames which includes:
at: #AlansTextPlusMorph put: #TextPlusMorph;
HTH, Tim
On 4/30/2018 7:33 AM, H. Hirzel wrote:
Hi Bob
It still loads fine in Squeak 3.2. Thank you.
In Squeak 3.8.1 the SmartRefStream needs a new class for
AlansTextPlusMorph
SmartRefStream>> alansTextPlusMorphbosfcebbmsopssrsggshtt0
^ PutNewClassHere
Any suggestions what I should put as a new class?
Regards Hannes
On 4/30/18, Bob Arning arning315@comcast.net wrote:
Here is the latest one I have. It loaded fine in 3.2.
On 4/29/18 10:20 PM, H. Hirzel wrote:
Hello
Is there a backup-copy/mirror available of the
MorphLayoutArticle
project which was on Bob's SuperSwiki? [1]
Regards Hannes
[1] http://wiki.squeak.org/squeak/2141
How to lay out submorphs
Please read the excellent dynamic essay project MorphLayoutArticle (broken link) on Bob's SuperSwiki.
Every Morph now has the capability to layout it's submorphs. (Previously, only the AlignmentMorph could implement layout policies. AlignmentMorph is still available because of compatibility reasons
and
some utility methods it implements.
This change set make the project ALMOST load in a 32 bit 6.0 Squeak image. But there are some conversion issues I have not figured out.
NOTE: Image will probably crash. USE WITH CARE
Best, Karl
Thanks Karl. Take time on this for see
Edgar @morplenauta
Hi Karl,
On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg karlramberg@gmail.com wrote:
This change set make the project ALMOST load in a 32 bit 6.0 Squeak image. But there are some conversion issues I have not figured out.
Looking at this change:
ObjectScanner>>scanFrom: aByteStream "Sieze control of the fileIn. Put myself in as the context. If any UniClasses (for just one instance) are defined, they will do it through me, and I will look for conflicting class names. If so, install the old name as a class var of me, so the compile will work. Tell my SmartRefStream about renaming the class."
| valWithOddName47 scannerNamed53 chunkNamed117 | pvt3SmartRefStrm := SmartRefStream on: aByteStream. aByteStream ascii. [aByteStream atEnd] whileFalse: [aByteStream skipSeparators. valWithOddName47 := (aByteStream peekFor: $!) ifTrue: [chunkNamed117 := aByteStream nextChunk. "debug" chunkNamed117 = 'ImageSegment new' ifTrue:[ chunkNamed117 := 'NativeImageSegment new']. scannerNamed53 := Compiler evaluate: chunkNamed117 for: self logged: false. scannerNamed53 class == self class ifTrue: ["I already am the scanner for this file"] ifFalse: [scannerNamed53 scanFrom: aByteStream]] ifFalse: [chunkNamed117 := aByteStream nextChunk. chunkNamed117 := self lookAhead: chunkNamed117. Compiler evaluate: chunkNamed117 for: self logged: true]. aByteStream skipStyleChunk]. ^ valWithOddName47
you introduced the lines:
chunkNamed117 = 'ImageSegment new' ifTrue:[ chunkNamed117 := 'NativeImageSegment new'].
I think this is not going to work. The issue being at this point we won't know whether we have a legacy image segment or a native image segment. If you look at the hierarchy, there is ImageSegment NativeImageSegment LegacyImageSegment and intentionally all the list vars are in ImageSegment so that when the scan of the actual binary data, embedded in the .pr file occurs, we can use something like (legacy ifTrue: [LegacyImageSegment] ifFalse: [NativeImageSegment]) adoptInstance: themageSegment to become the right kind of image segment. So the way to proceed is to make ImageSegment intelligent enough to get you as far as the point where the kind of image segment, V3 or Spur, is apparent, and then make the switch.
HTH
NOTE: Image will probably crash. USE WITH CARE
Best, Karl
On Mon, Apr 30, 2018 at 3:37 PM, H. Hirzel hannes.hirzel@gmail.com wrote:
Unfortunately the dynamic essay MorphLayoutArticle.019.pr did not load in a fairly recent Squeak 6.0a trunk image.
an OrderedCollection(ImageSegment(Object)>>doesNotUnderstand: #scanFrom: ObjectScanner>>scanFrom: [] in [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: BlockClosure>>on:do: [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ByteString(String)>>displayProgressAt:from:to:during: ByteString(String)>>displayProgressFrom:to:during: MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: MultiByteBinaryOrTextStream(PositionableStream)>>fileIn MultiByteBinaryOrTextStream>>fileInProject MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [] in [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>on:do: [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>ensure: ProjectLoading class>>fileInName:archive:morphOrList: ProjectLoading class>>openName:stream:fromDirectory:withProjectView:clearOriginFlag: ProjectLoading class>>openName:stream:fromDirectory:withProjectView: [] in ProjectLoading class>>openOn: BlockClosure>>on:do: [] in ByteString(String)>>displaySequentialProgress: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ProgressInitiationException class>>display:from:to:during: ByteString(String)>>displaySequentialProgress: ProjectLoading class>>openOn: [] in ExternalDropHandler class>>defaultProjectHandler ExternalDropHandler>>handle:in:dropEvent: PasteUpMorph>>handleDroppedItem:event: [] in PasteUpMorph>>dropFiles: BlockClosure>>ensure: PasteUpMorph>>dropFiles: PasteUpMorph(Morph)>>handleDropFiles: DropFilesEvent>>sentTo: PasteUpMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PasteUpMorph(Morph)>>processEvent:using: [] in PasteUpMorph>>processEvent:using: BlockClosure>>ensure: PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent: [] in [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: DropFilesEvent(MorphicEvent)>>becomeActiveDuring: [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: HandMorph>>becomeActiveDuring: [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendEvent:focus:clear: HandMorph>>sendEvent:focus: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in MorphicProject>>spawnNewProcess [] in BlockClosure>>newProcess)
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
Hi Tim
Implementing your suggestion [1] worked to make MorphLayoutArticle.019.pr load into Squeak 3.8.1, see screen shot.
What I aiming at next at is to load it into Squeak 6.0a trunk. I assume this should be possible quite easily because of the enhancements done last year [2][3].
Regards Hannes
[1] Extend #initKnownRenames
SmartRefStream>>initKnownRenames renamed at: #AlansTextPlusMorph put: #TextPlusMorph; at: #FlasherMorph put: #Flasher; yourself
made MorphLayoutArticle.019.pr to load.
[2] 6502 format http://wiki.squeak.org/squeak/6502
ImageFormat of the interpreter Virtual Machine. May be loaded transparently into Squeak 6.0a through the help of LegacyImageSegment.
[3] http://wiki.squeak.org/squeak/6579 LegacyImageSegment A new class introduced in March 2017 in Squeak 6.0a to enable the loading of the older 6502 image segment format type .
More see Smalltalk imageFormatVersion http://wiki.squeak.org/squeak/
873
On 4/30/18, Tm Jhnsn digit@sonic.net wrote:
Hi Hannes,
In 5.1 there is SmartRefStream>>#initKnownRenames which includes:
at: #AlansTextPlusMorph put: #TextPlusMorph;
HTH, Tim
On 4/30/2018 7:33 AM, H. Hirzel wrote:
Hi Bob
It still loads fine in Squeak 3.2. Thank you.
In Squeak 3.8.1 the SmartRefStream needs a new class for
AlansTextPlusMorph
SmartRefStream>> alansTextPlusMorphbosfcebbmsopssrsggshtt0
^ PutNewClassHere
Any suggestions what I should put as a new class?
Regards Hannes
On 4/30/18, Bob Arning arning315@comcast.net wrote:
Here is the latest one I have. It loaded fine in 3.2.
On 4/29/18 10:20 PM, H. Hirzel wrote: > Hello > > Is there a backup-copy/mirror available of the > > MorphLayoutArticle > > project which was on Bob's SuperSwiki? [1] > > Regards > Hannes > > > > ---------------------------------- > [1] > http://wiki.squeak.org/squeak/2141 > > How to lay out submorphs > > Please read the excellent dynamic essay project MorphLayoutArticle > (broken link) on Bob's SuperSwiki. > > Every Morph now has the capability to layout it's submorphs. > (Previously, only the AlignmentMorph could implement layout
policies.
> AlignmentMorph is still available because of compatibility reasons
and
> some utility methods it implements. >
Yes, you most likely right. I did some preliminary hacking and got it to partly work, but I don't know the real issues the image segment loading and converting entails.
Best, Karl
On Wed, May 2, 2018 at 7:00 PM, Eliot Miranda eliot.miranda@gmail.com wrote:
Hi Karl,
On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg karlramberg@gmail.com wrote:
This change set make the project ALMOST load in a 32 bit 6.0 Squeak image. But there are some conversion issues I have not figured out.
Looking at this change:
ObjectScanner>>scanFrom: aByteStream "Sieze control of the fileIn. Put myself in as the context. If any UniClasses (for just one instance) are defined, they will do it through me, and I will look for conflicting class names. If so, install the old name as a class var of me, so the compile will work. Tell my SmartRefStream about renaming the class."
| valWithOddName47 scannerNamed53 chunkNamed117 | pvt3SmartRefStrm := SmartRefStream on: aByteStream. aByteStream ascii. [aByteStream atEnd] whileFalse: [aByteStream skipSeparators. valWithOddName47 := (aByteStream peekFor: $!) ifTrue: [chunkNamed117 := aByteStream nextChunk. "debug" chunkNamed117 = 'ImageSegment new' ifTrue:[ chunkNamed117 := 'NativeImageSegment new']. scannerNamed53 := Compiler evaluate: chunkNamed117 for: self logged: false. scannerNamed53 class == self class ifTrue: ["I already am the scanner for this file"] ifFalse: [scannerNamed53 scanFrom: aByteStream]] ifFalse: [chunkNamed117 := aByteStream nextChunk. chunkNamed117 := self lookAhead: chunkNamed117. Compiler evaluate: chunkNamed117 for: self logged: true]. aByteStream skipStyleChunk]. ^ valWithOddName47
you introduced the lines:
chunkNamed117 = 'ImageSegment new' ifTrue:[ chunkNamed117 := 'NativeImageSegment new'].
I think this is not going to work. The issue being at this point we won't know whether we have a legacy image segment or a native image segment. If you look at the hierarchy, there is ImageSegment NativeImageSegment LegacyImageSegment and intentionally all the list vars are in ImageSegment so that when the scan of the actual binary data, embedded in the .pr file occurs, we can use something like (legacy ifTrue: [LegacyImageSegment] ifFalse: [NativeImageSegment]) adoptInstance: themageSegment to become the right kind of image segment. So the way to proceed is to make ImageSegment intelligent enough to get you as far as the point where the kind of image segment, V3 or Spur, is apparent, and then make the switch.
HTH
NOTE: Image will probably crash. USE WITH CARE
Best, Karl
On Mon, Apr 30, 2018 at 3:37 PM, H. Hirzel hannes.hirzel@gmail.com wrote:
Unfortunately the dynamic essay MorphLayoutArticle.019.pr did not load in a fairly recent Squeak 6.0a trunk image.
an OrderedCollection(ImageSegment(Object)>>doesNotUnderstand: #scanFrom: ObjectScanner>>scanFrom: [] in [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: BlockClosure>>on:do: [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ByteString(String)>>displayProgressAt:from:to:during: ByteString(String)>>displayProgressFrom:to:during: MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: MultiByteBinaryOrTextStream(PositionableStream)>>fileIn MultiByteBinaryOrTextStream>>fileInProject MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [] in [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>on:do: [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>ensure: ProjectLoading class>>fileInName:archive:morphOrList: ProjectLoading class>>openName:stream:fromDirectory:withProjectView:clearOriginFlag: ProjectLoading class>>openName:stream:fromDirectory:withProjectView: [] in ProjectLoading class>>openOn: BlockClosure>>on:do: [] in ByteString(String)>>displaySequentialProgress: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ProgressInitiationException class>>display:from:to:during: ByteString(String)>>displaySequentialProgress: ProjectLoading class>>openOn: [] in ExternalDropHandler class>>defaultProjectHandler ExternalDropHandler>>handle:in:dropEvent: PasteUpMorph>>handleDroppedItem:event: [] in PasteUpMorph>>dropFiles: BlockClosure>>ensure: PasteUpMorph>>dropFiles: PasteUpMorph(Morph)>>handleDropFiles: DropFilesEvent>>sentTo: PasteUpMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PasteUpMorph(Morph)>>processEvent:using: [] in PasteUpMorph>>processEvent:using: BlockClosure>>ensure: PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent: [] in [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: DropFilesEvent(MorphicEvent)>>becomeActiveDuring: [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: HandMorph>>becomeActiveDuring: [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendEvent:focus:clear: HandMorph>>sendEvent:focus: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in MorphicProject>>spawnNewProcess [] in BlockClosure>>newProcess)
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
Hi Tim
Implementing your suggestion [1] worked to make MorphLayoutArticle.019.pr load into Squeak 3.8.1, see screen shot.
What I aiming at next at is to load it into Squeak 6.0a trunk. I assume this should be possible quite easily because of the enhancements done last year [2][3].
Regards Hannes
[1] Extend #initKnownRenames
SmartRefStream>>initKnownRenames renamed at: #AlansTextPlusMorph put: #TextPlusMorph; at: #FlasherMorph put: #Flasher; yourself
made MorphLayoutArticle.019.pr to load.
[2] 6502 format http://wiki.squeak.org/squeak/6502
ImageFormat of the interpreter Virtual Machine. May be loaded transparently into Squeak 6.0a through the help of LegacyImageSegment.
[3] http://wiki.squeak.org/squeak/6579 LegacyImageSegment A new class introduced in March 2017 in Squeak 6.0a to enable the loading of the older 6502 image segment format type .
More see Smalltalk imageFormatVersion http://wiki.squeak.org/squeak/
873
On 4/30/18, Tm Jhnsn digit@sonic.net wrote:
Hi Hannes,
In 5.1 there is SmartRefStream>>#initKnownRenames which includes:
at: #AlansTextPlusMorph put: #TextPlusMorph;
HTH, Tim
On 4/30/2018 7:33 AM, H. Hirzel wrote:
Hi Bob
It still loads fine in Squeak 3.2. Thank you.
In Squeak 3.8.1 the SmartRefStream needs a new class for
AlansTextPlusMorph
SmartRefStream>> alansTextPlusMorphbosfcebbmsopssrsggshtt0
^ PutNewClassHere
Any suggestions what I should put as a new class?
Regards Hannes
On 4/30/18, Bob Arning arning315@comcast.net wrote: > Here is the latest one I have. It loaded fine in 3.2. > > > On 4/29/18 10:20 PM, H. Hirzel wrote: >> Hello >> >> Is there a backup-copy/mirror available of the >> >> MorphLayoutArticle >> >> project which was on Bob's SuperSwiki? [1] >> >> Regards >> Hannes >> >> >> >> ---------------------------------- >> [1] >> http://wiki.squeak.org/squeak/2141 >> >> How to lay out submorphs >> >> Please read the excellent dynamic essay project MorphLayoutArticle >> (broken link) on Bob's SuperSwiki. >> >> Every Morph now has the capability to layout it's submorphs. >> (Previously, only the AlignmentMorph could implement layout
policies.
>> AlignmentMorph is still available because of compatibility reasons
and
>> some utility methods it implements. >> > > >
-- _,,,^..^,,,_ best, Eliot
Hi Karl,
On Wed, May 2, 2018 at 10:07 AM, karl ramberg karlramberg@gmail.com wrote:
Yes, you most likely right. I did some preliminary hacking and got it to partly work, but I don't know the real issues the image segment loading and converting entails.
It seems that lots of the reading methods are down in NativeImageSegment when they need to be in ImageSegment. I've just committed a version that moves some of the methods up. But I think there's still a lot to do. If you do move methods up try and preserve version stamps The easy way is to file out a method and then open a file browser, edit "NativeImageSegment" to "ImageSegment" and use ctrl-G/command-G to bring the method back in.
Best, Karl
On Wed, May 2, 2018 at 7:00 PM, Eliot Miranda eliot.miranda@gmail.com wrote:
Hi Karl,
On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg karlramberg@gmail.com wrote:
This change set make the project ALMOST load in a 32 bit 6.0 Squeak image. But there are some conversion issues I have not figured out.
Looking at this change:
ObjectScanner>>scanFrom: aByteStream "Sieze control of the fileIn. Put myself in as the context. If any UniClasses (for just one instance) are defined, they will do it through me, and I will look for conflicting class names. If so, install the old name as a class var of me, so the compile will work. Tell my SmartRefStream about renaming the class."
| valWithOddName47 scannerNamed53 chunkNamed117 | pvt3SmartRefStrm := SmartRefStream on: aByteStream. aByteStream ascii. [aByteStream atEnd] whileFalse: [aByteStream skipSeparators. valWithOddName47 := (aByteStream peekFor: $!) ifTrue: [chunkNamed117 := aByteStream nextChunk. "debug" chunkNamed117 = 'ImageSegment new' ifTrue:[ chunkNamed117 := 'NativeImageSegment new']. scannerNamed53 := Compiler evaluate: chunkNamed117 for: self logged: false. scannerNamed53 class == self class ifTrue: ["I already am the scanner for this file"] ifFalse: [scannerNamed53 scanFrom: aByteStream]] ifFalse: [chunkNamed117 := aByteStream nextChunk. chunkNamed117 := self lookAhead: chunkNamed117. Compiler evaluate: chunkNamed117 for: self logged: true]. aByteStream skipStyleChunk]. ^ valWithOddName47
you introduced the lines:
chunkNamed117 = 'ImageSegment new' ifTrue:[ chunkNamed117 := 'NativeImageSegment new'].
I think this is not going to work. The issue being at this point we won't know whether we have a legacy image segment or a native image segment. If you look at the hierarchy, there is ImageSegment NativeImageSegment LegacyImageSegment and intentionally all the list vars are in ImageSegment so that when the scan of the actual binary data, embedded in the .pr file occurs, we can use something like (legacy ifTrue: [LegacyImageSegment] ifFalse: [NativeImageSegment]) adoptInstance: themageSegment to become the right kind of image segment. So the way to proceed is to make ImageSegment intelligent enough to get you as far as the point where the kind of image segment, V3 or Spur, is apparent, and then make the switch.
HTH
NOTE: Image will probably crash. USE WITH CARE
Best, Karl
On Mon, Apr 30, 2018 at 3:37 PM, H. Hirzel hannes.hirzel@gmail.com wrote:
Unfortunately the dynamic essay MorphLayoutArticle.019.pr did not load in a fairly recent Squeak 6.0a trunk image.
an OrderedCollection(ImageSegment(Object)>>doesNotUnderstand: #scanFrom: ObjectScanner>>scanFrom: [] in [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: BlockClosure>>on:do: [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ByteString(String)>>displayProgressAt:from:to:during: ByteString(String)>>displayProgressFrom:to:during: MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: MultiByteBinaryOrTextStream(PositionableStream)>>fileIn MultiByteBinaryOrTextStream>>fileInProject MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [] in [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>on:do: [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>ensure: ProjectLoading class>>fileInName:archive:morphOrList: ProjectLoading class>>openName:stream:fromDirectory:withProjectView:clearOriginFlag: ProjectLoading class>>openName:stream:fromDirectory:withProjectView: [] in ProjectLoading class>>openOn: BlockClosure>>on:do: [] in ByteString(String)>>displaySequentialProgress: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ProgressInitiationException class>>display:from:to:during: ByteString(String)>>displaySequentialProgress: ProjectLoading class>>openOn: [] in ExternalDropHandler class>>defaultProjectHandler ExternalDropHandler>>handle:in:dropEvent: PasteUpMorph>>handleDroppedItem:event: [] in PasteUpMorph>>dropFiles: BlockClosure>>ensure: PasteUpMorph>>dropFiles: PasteUpMorph(Morph)>>handleDropFiles: DropFilesEvent>>sentTo: PasteUpMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PasteUpMorph(Morph)>>processEvent:using: [] in PasteUpMorph>>processEvent:using: BlockClosure>>ensure: PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent: [] in [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: DropFilesEvent(MorphicEvent)>>becomeActiveDuring: [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: HandMorph>>becomeActiveDuring: [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendEvent:focus:clear: HandMorph>>sendEvent:focus: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in MorphicProject>>spawnNewProcess [] in BlockClosure>>newProcess)
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
Hi Tim
Implementing your suggestion [1] worked to make MorphLayoutArticle.019.pr load into Squeak 3.8.1, see screen shot.
What I aiming at next at is to load it into Squeak 6.0a trunk. I assume this should be possible quite easily because of the enhancements done last year [2][3].
Regards Hannes
[1] Extend #initKnownRenames
SmartRefStream>>initKnownRenames renamed at: #AlansTextPlusMorph put: #TextPlusMorph; at: #FlasherMorph put: #Flasher; yourself
made MorphLayoutArticle.019.pr to load.
[2] 6502 format http://wiki.squeak.org/squeak/6502
ImageFormat of the interpreter Virtual Machine. May be loaded transparently into Squeak 6.0a through the help of LegacyImageSegment.
[3] http://wiki.squeak.org/squeak/6579 LegacyImageSegment A new class introduced in March 2017 in Squeak 6.0a to enable the loading of the older 6502 image segment format type .
More see Smalltalk imageFormatVersion http://wiki.squeak.org/squeak/
873
On 4/30/18, Tm Jhnsn digit@sonic.net wrote:
Hi Hannes,
In 5.1 there is SmartRefStream>>#initKnownRenames which includes:
at: #AlansTextPlusMorph put: #TextPlusMorph;
HTH, Tim
On 4/30/2018 7:33 AM, H. Hirzel wrote: > Hi Bob > > It still loads fine in Squeak 3.2. Thank you. > > In Squeak 3.8.1 the SmartRefStream needs a new class for > > AlansTextPlusMorph > > > SmartRefStream>> > alansTextPlusMorphbosfcebbmsopssrsggshtt0 > > ^ PutNewClassHere > > > Any suggestions what I should put as a new class? > > Regards > Hannes > > > > > On 4/30/18, Bob Arning arning315@comcast.net wrote: >> Here is the latest one I have. It loaded fine in 3.2. >> >> >> On 4/29/18 10:20 PM, H. Hirzel wrote: >>> Hello >>> >>> Is there a backup-copy/mirror available of the >>> >>> MorphLayoutArticle >>> >>> project which was on Bob's SuperSwiki? [1] >>> >>> Regards >>> Hannes >>> >>> >>> >>> ---------------------------------- >>> [1] >>> http://wiki.squeak.org/squeak/2141 >>> >>> How to lay out submorphs >>> >>> Please read the excellent dynamic essay project MorphLayoutArticle >>> (broken link) on Bob's SuperSwiki. >>> >>> Every Morph now has the capability to layout it's submorphs. >>> (Previously, only the AlignmentMorph could implement layout
policies.
>>> AlignmentMorph is still available because of compatibility
reasons and
>>> some utility methods it implements. >>> >> >> >>
-- _,,,^..^,,,_ best, Eliot
Hi Karl,
On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg karlramberg@gmail.com wrote:
This change set make the project ALMOST load in a 32 bit 6.0 Squeak image. But there are some conversion issues I have not figured out.
NOTE: Image will probably crash. USE WITH CARE
Using all of your change set except ObjectScanner>>#scanFrom:, and the changes I committed to trunk today I was able to load MorphLayoutArticle.019.pr into a 64-bit Spur image (thanks Bert!!). The image locks up due to a drawing error in GeeMailMorph(ScrollPane)>>innerBounds where UndefinedObject doesn't understand #-. So things are close. May I suggest that you add RenamedSourceClassReader in System-Object Storage, and move the other segment-specific scanning methods (ClassCategoryReader>>#scanFromNoCompile:[forSegment:]) too?
This is cool :-)
BTW, there was a compiler bug with the native image segment loading code in 64-bit Spur. This is fixed if you grab the last 64-bit Spur VMs from Travis.
Best, Karl
On Mon, Apr 30, 2018 at 3:37 PM, H. Hirzel hannes.hirzel@gmail.com wrote:
Unfortunately the dynamic essay MorphLayoutArticle.019.pr did not load in a fairly recent Squeak 6.0a trunk image.
an OrderedCollection(ImageSegment(Object)>>doesNotUnderstand: #scanFrom: ObjectScanner>>scanFrom: [] in [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: BlockClosure>>on:do: [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ByteString(String)>>displayProgressAt:from:to:during: ByteString(String)>>displayProgressFrom:to:during: MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: MultiByteBinaryOrTextStream(PositionableStream)>>fileIn MultiByteBinaryOrTextStream>>fileInProject MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [] in [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>on:do: [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>ensure: ProjectLoading class>>fileInName:archive:morphOrList: ProjectLoading class>>openName:stream:fromDirectory:withProjectView:clearOriginFlag: ProjectLoading class>>openName:stream:fromDirectory:withProjectView: [] in ProjectLoading class>>openOn: BlockClosure>>on:do: [] in ByteString(String)>>displaySequentialProgress: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ProgressInitiationException class>>display:from:to:during: ByteString(String)>>displaySequentialProgress: ProjectLoading class>>openOn: [] in ExternalDropHandler class>>defaultProjectHandler ExternalDropHandler>>handle:in:dropEvent: PasteUpMorph>>handleDroppedItem:event: [] in PasteUpMorph>>dropFiles: BlockClosure>>ensure: PasteUpMorph>>dropFiles: PasteUpMorph(Morph)>>handleDropFiles: DropFilesEvent>>sentTo: PasteUpMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PasteUpMorph(Morph)>>processEvent:using: [] in PasteUpMorph>>processEvent:using: BlockClosure>>ensure: PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent: [] in [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: DropFilesEvent(MorphicEvent)>>becomeActiveDuring: [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: HandMorph>>becomeActiveDuring: [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendEvent:focus:clear: HandMorph>>sendEvent:focus: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in MorphicProject>>spawnNewProcess [] in BlockClosure>>newProcess)
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
Hi Tim
Implementing your suggestion [1] worked to make MorphLayoutArticle.019.pr load into Squeak 3.8.1, see screen shot.
What I aiming at next at is to load it into Squeak 6.0a trunk. I assume this should be possible quite easily because of the enhancements done last year [2][3].
Regards Hannes
[1] Extend #initKnownRenames
SmartRefStream>>initKnownRenames renamed at: #AlansTextPlusMorph put: #TextPlusMorph; at: #FlasherMorph put: #Flasher; yourself
made MorphLayoutArticle.019.pr to load.
[2] 6502 format http://wiki.squeak.org/squeak/6502
ImageFormat of the interpreter Virtual Machine. May be loaded transparently into Squeak 6.0a through the help of LegacyImageSegment.
[3] http://wiki.squeak.org/squeak/6579 LegacyImageSegment A new class introduced in March 2017 in Squeak 6.0a to enable the loading of the older 6502 image segment format type .
More see Smalltalk imageFormatVersion http://wiki.squeak.org/squeak/
873
On 4/30/18, Tm Jhnsn digit@sonic.net wrote:
Hi Hannes,
In 5.1 there is SmartRefStream>>#initKnownRenames which includes:
at: #AlansTextPlusMorph put: #TextPlusMorph;
HTH, Tim
On 4/30/2018 7:33 AM, H. Hirzel wrote:
Hi Bob
It still loads fine in Squeak 3.2. Thank you.
In Squeak 3.8.1 the SmartRefStream needs a new class for
AlansTextPlusMorph
SmartRefStream>> alansTextPlusMorphbosfcebbmsopssrsggshtt0
^ PutNewClassHere
Any suggestions what I should put as a new class?
Regards Hannes
On 4/30/18, Bob Arning arning315@comcast.net wrote:
Here is the latest one I have. It loaded fine in 3.2.
On 4/29/18 10:20 PM, H. Hirzel wrote: > Hello > > Is there a backup-copy/mirror available of the > > MorphLayoutArticle > > project which was on Bob's SuperSwiki? [1] > > Regards > Hannes > > > > ---------------------------------- > [1] > http://wiki.squeak.org/squeak/2141 > > How to lay out submorphs > > Please read the excellent dynamic essay project MorphLayoutArticle > (broken link) on Bob's SuperSwiki. > > Every Morph now has the capability to layout it's submorphs. > (Previously, only the AlignmentMorph could implement layout
policies.
> AlignmentMorph is still available because of compatibility reasons
and
> some utility methods it implements. >
Hi David,
see below on the thread about loading od projects. Currently the system freezes with drawing errors. I'm reminded that you were developing changes to exit a project on drawing errors. That would make debugging a lot easier. Specifically I mean the following message. But I can't find a preference that causes drawing errors to exit the project. Did I misunderstand? If you have such code could you post it here? If not, how much effort would it be to get drawing errors to exit a sub-project if a suitable preference were set?
On Thu, Dec 14, 2017 at 7:00 PM, David T. Lewis lewis@mail.msen.com wrote:
Marcel,
Much better, thanks :-)
After moving the EmergencyRecoveryRequested recursion guard reset from #finalExitActions: to #enter:revert:saveForRevert: the Morphic and ST80 dependencies are gone. The end result is a total of three changed methods in Project, plus the new EmergencyRecoveryRequested class variable.
Since they are no longer needed, I moved the Morphic and ST80 parts from inbox to treated inbox. All of the remaining changes are in the inbox as System-dtl.985.
To summarize the changes: The original behavior of seaching for a parent MVCProject or MorphicProject to host the emergency evaluator works as originally designed. If no project is found, then search for any suitable project elsewhere in the project hierarchy. If that is not found then fall back on the traditional emergency evaluator. If error handling fails in the project for emergency evaluation, the also fall back on the traditional emergency evaluator.
I expect this to work with other kinds of Project such as SqueakShellProject or EtoysProject, although I have not tested these so well.
Dave
On Thu, Dec 14, 2017 at 12:50:06PM -0500, David T. Lewis wrote:
Hi Marcel,
Oh - now I understand what you mean (d'oh!). You are right. I will follow up on your suggestion of putting it in #enter:revert:saveForRevert: (but maybe not today).
Thanks, Dave
Hi Dave,
#finalExitActions: should not contain such critical code. That's what I meant. :) I see it more like a "Template Method" that does nothing
serious
by default.
Maybe we could reset????EmergencyRecoveryRequested in #enter:revert:saveForRevert: so that #finalExitActions: becomes free again. :-)
Best, Marcel
On Wed, May 2, 2018 at 7:48 PM, Eliot Miranda eliot.miranda@gmail.com wrote:
Hi Karl,
On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg karlramberg@gmail.com wrote:
This change set make the project ALMOST load in a 32 bit 6.0 Squeak image. But there are some conversion issues I have not figured out.
NOTE: Image will probably crash. USE WITH CARE
Using all of your change set except ObjectScanner>>#scanFrom:, and the changes I committed to trunk today I was able to load MorphLayoutArticle.019.pr into a 64-bit Spur image (thanks Bert!!). The image locks up due to a drawing error in GeeMailMorph(ScrollPane)>>innerBounds where UndefinedObject doesn't understand #-. So things are close. May I suggest that you add RenamedSourceClassReader in System-Object Storage, and move the other segment-specific scanning methods (ClassCategoryReader>># scanFromNoCompile:[forSegment:]) too?
This is cool :-)
BTW, there was a compiler bug with the native image segment loading code in 64-bit Spur. This is fixed if you grab the last 64-bit Spur VMs from Travis.
Best, Karl
On Mon, Apr 30, 2018 at 3:37 PM, H. Hirzel hannes.hirzel@gmail.com wrote:
Unfortunately the dynamic essay MorphLayoutArticle.019.pr did not load in a fairly recent Squeak 6.0a trunk image.
an OrderedCollection(ImageSegment(Object)>>doesNotUnderstand: #scanFrom: ObjectScanner>>scanFrom: [] in [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: BlockClosure>>on:do: [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ByteString(String)>>displayProgressAt:from:to:during: ByteString(String)>>displayProgressFrom:to:during: MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: MultiByteBinaryOrTextStream(PositionableStream)>>fileIn MultiByteBinaryOrTextStream>>fileInProject MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [] in [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>on:do: [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>ensure: ProjectLoading class>>fileInName:archive:morphOrList: ProjectLoading class>>openName:stream:fromDirectory:withProjectView:clearOriginFlag: ProjectLoading class>>openName:stream:fromDirectory:withProjectView: [] in ProjectLoading class>>openOn: BlockClosure>>on:do: [] in ByteString(String)>>displaySequentialProgress: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ProgressInitiationException class>>display:from:to:during: ByteString(String)>>displaySequentialProgress: ProjectLoading class>>openOn: [] in ExternalDropHandler class>>defaultProjectHandler ExternalDropHandler>>handle:in:dropEvent: PasteUpMorph>>handleDroppedItem:event: [] in PasteUpMorph>>dropFiles: BlockClosure>>ensure: PasteUpMorph>>dropFiles: PasteUpMorph(Morph)>>handleDropFiles: DropFilesEvent>>sentTo: PasteUpMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PasteUpMorph(Morph)>>processEvent:using: [] in PasteUpMorph>>processEvent:using: BlockClosure>>ensure: PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent: [] in [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: DropFilesEvent(MorphicEvent)>>becomeActiveDuring: [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: HandMorph>>becomeActiveDuring: [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendEvent:focus:clear: HandMorph>>sendEvent:focus: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in MorphicProject>>spawnNewProcess [] in BlockClosure>>newProcess)
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
Hi Tim
Implementing your suggestion [1] worked to make MorphLayoutArticle.019.pr load into Squeak 3.8.1, see screen shot.
What I aiming at next at is to load it into Squeak 6.0a trunk. I assume this should be possible quite easily because of the enhancements done last year [2][3].
Regards Hannes
[1] Extend #initKnownRenames
SmartRefStream>>initKnownRenames renamed at: #AlansTextPlusMorph put: #TextPlusMorph; at: #FlasherMorph put: #Flasher; yourself
made MorphLayoutArticle.019.pr to load.
[2] 6502 format http://wiki.squeak.org/squeak/6502
ImageFormat of the interpreter Virtual Machine. May be loaded transparently into Squeak 6.0a through the help of LegacyImageSegment.
[3] http://wiki.squeak.org/squeak/6579 LegacyImageSegment A new class introduced in March 2017 in Squeak 6.0a to enable the loading of the older 6502 image segment format type .
More see Smalltalk imageFormatVersion http://wiki.squeak.org/squeak/
873
On 4/30/18, Tm Jhnsn digit@sonic.net wrote:
Hi Hannes,
In 5.1 there is SmartRefStream>>#initKnownRenames which includes:
at: #AlansTextPlusMorph put: #TextPlusMorph;
HTH, Tim
On 4/30/2018 7:33 AM, H. Hirzel wrote:
Hi Bob
It still loads fine in Squeak 3.2. Thank you.
In Squeak 3.8.1 the SmartRefStream needs a new class for
AlansTextPlusMorph
SmartRefStream>> alansTextPlusMorphbosfcebbmsopssrsggshtt0
^ PutNewClassHere
Any suggestions what I should put as a new class?
Regards Hannes
On 4/30/18, Bob Arning arning315@comcast.net wrote: > Here is the latest one I have. It loaded fine in 3.2. > > > On 4/29/18 10:20 PM, H. Hirzel wrote: >> Hello >> >> Is there a backup-copy/mirror available of the >> >> MorphLayoutArticle >> >> project which was on Bob's SuperSwiki? [1] >> >> Regards >> Hannes >> >> >> >> ---------------------------------- >> [1] >> http://wiki.squeak.org/squeak/2141 >> >> How to lay out submorphs >> >> Please read the excellent dynamic essay project MorphLayoutArticle >> (broken link) on Bob's SuperSwiki. >> >> Every Morph now has the capability to layout it's submorphs. >> (Previously, only the AlignmentMorph could implement layout
policies.
>> AlignmentMorph is still available because of compatibility reasons
and
>> some utility methods it implements. >> > > >
-- _,,,^..^,,,_ best, Eliot
Hi Eliot,
Marcel had developed a way for a Morphic project to drop into a debugger in MVC, which worked when the MVC project (or other non-Morphic project) was a parent of the Morphic project. This is good, but it required that you, as a Morphic developer, think ahead to open a non-Morphic project and then work in a Morphic project that is a child of that project.
The changes discussed in the thread below allow the emergency evaluator to first look for a non-Morphic project (usually MVC) that is a parent of the current project. If found, use that to host the debugger, otherwise search all known projects for any project that is not Morphic and use that to host the debugger, and if all that fails, drop into the traditional emergency evaluator.
For your case, try just opening an MVC project anywhere in your project hierarchy. Assuming the mechanism below works as advertised, you will be able to work in a Morphic project and have it drop into that MVC debugger when things go wrong. If the error is such that it breaks MVC also, then you will then find yourself back in the old emergency evaluator.
There are no preferences involved, just make sure there is some MVC project opened in your image, and hopefully it will just work.
Dave
On Wed, May 02, 2018 at 08:25:47PM -0700, Eliot Miranda wrote:
Hi David,
see below on the thread about loading od projects. Currently the system freezes with drawing errors. I'm reminded that you were developing changes to exit a project on drawing errors. That would make debugging a lot easier. Specifically I mean the following message. But I can't find a preference that causes drawing errors to exit the project. Did I misunderstand? If you have such code could you post it here? If not, how much effort would it be to get drawing errors to exit a sub-project if a suitable preference were set?
On Thu, Dec 14, 2017 at 7:00 PM, David T. Lewis lewis@mail.msen.com wrote:
Marcel,
Much better, thanks :-)
After moving the EmergencyRecoveryRequested recursion guard reset from #finalExitActions: to #enter:revert:saveForRevert: the Morphic and ST80 dependencies are gone. The end result is a total of three changed methods in Project, plus the new EmergencyRecoveryRequested class variable.
Since they are no longer needed, I moved the Morphic and ST80 parts from inbox to treated inbox. All of the remaining changes are in the inbox as System-dtl.985.
To summarize the changes: The original behavior of seaching for a parent MVCProject or MorphicProject to host the emergency evaluator works as originally designed. If no project is found, then search for any suitable project elsewhere in the project hierarchy. If that is not found then fall back on the traditional emergency evaluator. If error handling fails in the project for emergency evaluation, the also fall back on the traditional emergency evaluator.
I expect this to work with other kinds of Project such as SqueakShellProject or EtoysProject, although I have not tested these so well.
Dave
On Thu, Dec 14, 2017 at 12:50:06PM -0500, David T. Lewis wrote:
Hi Marcel,
Oh - now I understand what you mean (d'oh!). You are right. I will follow up on your suggestion of putting it in #enter:revert:saveForRevert: (but maybe not today).
Thanks, Dave
Hi Dave,
#finalExitActions: should not contain such critical code. That's what I meant. :) I see it more like a "Template Method" that does nothing
serious
by default.
Maybe we could reset????EmergencyRecoveryRequested in #enter:revert:saveForRevert: so that #finalExitActions: becomes free again. :-)
Best, Marcel
On Wed, May 2, 2018 at 7:48 PM, Eliot Miranda eliot.miranda@gmail.com wrote:
Hi Karl,
On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg karlramberg@gmail.com wrote:
This change set make the project ALMOST load in a 32 bit 6.0 Squeak image. But there are some conversion issues I have not figured out.
NOTE: Image will probably crash. USE WITH CARE
Using all of your change set except ObjectScanner>>#scanFrom:, and the changes I committed to trunk today I was able to load MorphLayoutArticle.019.pr into a 64-bit Spur image (thanks Bert!!). The image locks up due to a drawing error in GeeMailMorph(ScrollPane)>>innerBounds where UndefinedObject doesn't understand #-. So things are close. May I suggest that you add RenamedSourceClassReader in System-Object Storage, and move the other segment-specific scanning methods (ClassCategoryReader>># scanFromNoCompile:[forSegment:]) too?
This is cool :-)
BTW, there was a compiler bug with the native image segment loading code in 64-bit Spur. This is fixed if you grab the last 64-bit Spur VMs from Travis.
Best, Karl
On Mon, Apr 30, 2018 at 3:37 PM, H. Hirzel hannes.hirzel@gmail.com wrote:
Unfortunately the dynamic essay MorphLayoutArticle.019.pr did not load in a fairly recent Squeak 6.0a trunk image.
an OrderedCollection(ImageSegment(Object)>>doesNotUnderstand: #scanFrom: ObjectScanner>>scanFrom: [] in [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: BlockClosure>>on:do: [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ByteString(String)>>displayProgressAt:from:to:during: ByteString(String)>>displayProgressFrom:to:during: MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: MultiByteBinaryOrTextStream(PositionableStream)>>fileIn MultiByteBinaryOrTextStream>>fileInProject MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [] in [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>on:do: [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>ensure: ProjectLoading class>>fileInName:archive:morphOrList: ProjectLoading class>>openName:stream:fromDirectory:withProjectView:clearOriginFlag: ProjectLoading class>>openName:stream:fromDirectory:withProjectView: [] in ProjectLoading class>>openOn: BlockClosure>>on:do: [] in ByteString(String)>>displaySequentialProgress: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ProgressInitiationException class>>display:from:to:during: ByteString(String)>>displaySequentialProgress: ProjectLoading class>>openOn: [] in ExternalDropHandler class>>defaultProjectHandler ExternalDropHandler>>handle:in:dropEvent: PasteUpMorph>>handleDroppedItem:event: [] in PasteUpMorph>>dropFiles: BlockClosure>>ensure: PasteUpMorph>>dropFiles: PasteUpMorph(Morph)>>handleDropFiles: DropFilesEvent>>sentTo: PasteUpMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PasteUpMorph(Morph)>>processEvent:using: [] in PasteUpMorph>>processEvent:using: BlockClosure>>ensure: PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent: [] in [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: DropFilesEvent(MorphicEvent)>>becomeActiveDuring: [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: HandMorph>>becomeActiveDuring: [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendEvent:focus:clear: HandMorph>>sendEvent:focus: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in MorphicProject>>spawnNewProcess [] in BlockClosure>>newProcess)
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
Hi Tim
Implementing your suggestion [1] worked to make MorphLayoutArticle.019.pr load into Squeak 3.8.1, see screen shot.
What I aiming at next at is to load it into Squeak 6.0a trunk. I assume this should be possible quite easily because of the enhancements done last year [2][3].
Regards Hannes
[1] Extend #initKnownRenames
SmartRefStream>>initKnownRenames renamed at: #AlansTextPlusMorph put: #TextPlusMorph; at: #FlasherMorph put: #Flasher; yourself
made MorphLayoutArticle.019.pr to load.
[2] 6502 format http://wiki.squeak.org/squeak/6502
ImageFormat of the interpreter Virtual Machine. May be loaded transparently into Squeak 6.0a through the help of LegacyImageSegment.
[3] http://wiki.squeak.org/squeak/6579 LegacyImageSegment A new class introduced in March 2017 in Squeak 6.0a to enable the loading of the older 6502 image segment format type .
More see Smalltalk imageFormatVersion http://wiki.squeak.org/squeak/
873
On 4/30/18, Tm Jhnsn digit@sonic.net wrote:
Hi Hannes,
In 5.1 there is SmartRefStream>>#initKnownRenames which includes:
at: #AlansTextPlusMorph put: #TextPlusMorph;
HTH, Tim
On 4/30/2018 7:33 AM, H. Hirzel wrote: > Hi Bob > > It still loads fine in Squeak 3.2. Thank you. > > In Squeak 3.8.1 the SmartRefStream needs a new class for > > AlansTextPlusMorph > > > SmartRefStream>> > alansTextPlusMorphbosfcebbmsopssrsggshtt0 > > ^ PutNewClassHere > > > Any suggestions what I should put as a new class? > > Regards > Hannes > > > > > On 4/30/18, Bob Arning arning315@comcast.net wrote: >> Here is the latest one I have. It loaded fine in 3.2. >> >> >> On 4/29/18 10:20 PM, H. Hirzel wrote: >>> Hello >>> >>> Is there a backup-copy/mirror available of the >>> >>> MorphLayoutArticle >>> >>> project which was on Bob's SuperSwiki? [1] >>> >>> Regards >>> Hannes >>> >>> >>> >>> ---------------------------------- >>> [1] >>> http://wiki.squeak.org/squeak/2141 >>> >>> How to lay out submorphs >>> >>> Please read the excellent dynamic essay project MorphLayoutArticle >>> (broken link) on Bob's SuperSwiki. >>> >>> Every Morph now has the capability to layout it's submorphs. >>> (Previously, only the AlignmentMorph could implement layout
policies.
>>> AlignmentMorph is still available because of compatibility reasons
and
>>> some utility methods it implements. >>> >> >> >>
-- _,,,^..^,,,_ best, Eliot
-- _,,,^..^,,,_ best, Eliot
Hi David, Hi Marcel,
how about a preference that causes the root project to be entered on a drawing error? That way all one has to do is use projects to test new morphs and keep one's root project populated with unbroken morphs. It won't fix every situation but it is simple and natural. If you both agree I may have a go at adapting Marcel's code. I want to do this quickly to unblock Karl with the legacy project loading work.
On Wed, May 2, 2018 at 9:40 PM, David T. Lewis lewis@mail.msen.com wrote:
Hi Eliot,
Marcel had developed a way for a Morphic project to drop into a debugger in MVC, which worked when the MVC project (or other non-Morphic project) was a parent of the Morphic project. This is good, but it required that you, as a Morphic developer, think ahead to open a non-Morphic project and then work in a Morphic project that is a child of that project.
The changes discussed in the thread below allow the emergency evaluator to first look for a non-Morphic project (usually MVC) that is a parent of the current project. If found, use that to host the debugger, otherwise search all known projects for any project that is not Morphic and use that to host the debugger, and if all that fails, drop into the traditional emergency evaluator.
For your case, try just opening an MVC project anywhere in your project hierarchy. Assuming the mechanism below works as advertised, you will be able to work in a Morphic project and have it drop into that MVC debugger when things go wrong. If the error is such that it breaks MVC also, then you will then find yourself back in the old emergency evaluator.
There are no preferences involved, just make sure there is some MVC project opened in your image, and hopefully it will just work.
Dave
On Wed, May 02, 2018 at 08:25:47PM -0700, Eliot Miranda wrote:
Hi David,
see below on the thread about loading od projects. Currently the system freezes with drawing errors. I'm reminded that you were developing
changes
to exit a project on drawing errors. That would make debugging a lot easier. Specifically I mean the following message. But I can't find a preference that causes drawing errors to exit the project. Did I misunderstand? If you have such code could you post it here? If not,
how
much effort would it be to get drawing errors to exit a sub-project if a suitable preference were set?
On Thu, Dec 14, 2017 at 7:00 PM, David T. Lewis lewis@mail.msen.com
wrote:
Marcel,
Much better, thanks :-)
After moving the EmergencyRecoveryRequested recursion guard reset from #finalExitActions: to #enter:revert:saveForRevert: the Morphic and ST80 dependencies are gone. The end result is a total of three changed
methods
in Project, plus the new EmergencyRecoveryRequested class variable.
Since they are no longer needed, I moved the Morphic and ST80 parts
from
inbox to treated inbox. All of the remaining changes are in the inbox as System-dtl.985.
To summarize the changes: The original behavior of seaching for a
parent
MVCProject or MorphicProject to host the emergency evaluator works as originally designed. If no project is found, then search for any
suitable
project elsewhere in the project hierarchy. If that is not found then fall back on the traditional emergency evaluator. If error handling
fails
in the project for emergency evaluation, the also fall back on the traditional emergency evaluator.
I expect this to work with other kinds of Project such as SqueakShellProject or EtoysProject, although I have not tested these so well.
Dave
On Thu, Dec 14, 2017 at 12:50:06PM -0500, David T. Lewis wrote:
Hi Marcel,
Oh - now I understand what you mean (d'oh!). You are right. I will
follow
up on your suggestion of putting it in #enter:revert:saveForRevert:
(but
maybe not today).
Thanks, Dave
Hi Dave,
#finalExitActions: should not contain such critical code. That's
what I
meant. :) I see it more like a "Template Method" that does nothing
serious
by default.
Maybe we could reset????EmergencyRecoveryRequested in #enter:revert:saveForRevert: so that #finalExitActions: becomes
free
again. :-)
Best, Marcel
On Wed, May 2, 2018 at 7:48 PM, Eliot Miranda eliot.miranda@gmail.com wrote:
Hi Karl,
On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg karlramberg@gmail.com wrote:
This change set make the project ALMOST load in a 32 bit 6.0 Squeak
image.
But there are some conversion issues I have not figured out.
NOTE: Image will probably crash. USE WITH CARE
Using all of your change set except ObjectScanner>>#scanFrom:, and the changes I committed to trunk today I was able to load MorphLayoutArticle.019.pr into a 64-bit Spur image (thanks Bert!!).
The
image locks up due to a drawing error in GeeMailMorph(ScrollPane)>>
innerBounds
where UndefinedObject doesn't understand #-. So things are close.
May I
suggest that you add RenamedSourceClassReader in System-Object
Storage, and
move the other segment-specific scanning methods
(ClassCategoryReader>>#
scanFromNoCompile:[forSegment:]) too?
This is cool :-)
BTW, there was a compiler bug with the native image segment loading
code
in 64-bit Spur. This is fixed if you grab the last 64-bit Spur VMs
from
Travis.
Best, Karl
On Mon, Apr 30, 2018 at 3:37 PM, H. Hirzel hannes.hirzel@gmail.com wrote:
Unfortunately the dynamic essay MorphLayoutArticle.019.pr did not
load
in a fairly recent Squeak 6.0a trunk image.
an OrderedCollection(ImageSegment(Object)>>doesNotUnderstand: #scanFrom: ObjectScanner>>scanFrom: [] in [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: BlockClosure>>on:do: [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
[]
in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ByteString(String)>>displayProgressAt:from:to:during: ByteString(String)>>displayProgressFrom:to:during: MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: MultiByteBinaryOrTextStream(PositionableStream)>>fileIn MultiByteBinaryOrTextStream>>fileInProject MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [] in []
in
ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>on:do: [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>ensure: ProjectLoading class>>fileInName:archive:morphOrList: ProjectLoading class>>openName:stream:fromDirectory:withProjectView:
clearOriginFlag:
ProjectLoading class>>openName:stream:fromDirectory:withProjectView: [] in ProjectLoading class>>openOn: BlockClosure>>on:do: [] in ByteString(String)>>displaySequentialProgress: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ProgressInitiationException class>>display:from:to:during: ByteString(String)>>displaySequentialProgress: ProjectLoading class>>openOn: [] in ExternalDropHandler class>>defaultProjectHandler ExternalDropHandler>>handle:in:dropEvent: PasteUpMorph>>handleDroppedItem:event: [] in
PasteUpMorph>>dropFiles:
BlockClosure>>ensure: PasteUpMorph>>dropFiles: PasteUpMorph(Morph)>>handleDropFiles: DropFilesEvent>>sentTo: PasteUpMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PasteUpMorph(Morph)>>processEvent:using: [] in PasteUpMorph>>processEvent:using: BlockClosure>>ensure: PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent: [] in [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: DropFilesEvent(MorphicEvent)>>becomeActiveDuring: [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: HandMorph>>becomeActiveDuring: [] in HandMorph>>sendEvent:focus:
clear:
BlockClosure>>ensure: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendEvent:focus:clear: HandMorph>>sendEvent:focus: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in MorphicProject>>spawnNewProcess [] in BlockClosure>>newProcess)
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
Hi Tim
Implementing your suggestion [1] worked to make MorphLayoutArticle.019.pr load into Squeak 3.8.1, see screen shot.
What I aiming at next at is to load it into Squeak 6.0a trunk. I assume this should be possible quite easily because of the enhancements done last year [2][3].
Regards Hannes
[1] Extend #initKnownRenames
SmartRefStream>>initKnownRenames renamed at: #AlansTextPlusMorph put: #TextPlusMorph; at: #FlasherMorph put: #Flasher; yourself
made MorphLayoutArticle.019.pr to load.
[2] 6502 format http://wiki.squeak.org/squeak/6502
ImageFormat of the interpreter Virtual Machine. May be loaded transparently into Squeak 6.0a through the help of LegacyImageSegment.
[3] http://wiki.squeak.org/squeak/6579 LegacyImageSegment A new class introduced in March 2017 in Squeak 6.0a to enable the loading of the older 6502 image segment format type .
More see Smalltalk imageFormatVersion
http://wiki.squeak.org/squeak/
873
On 4/30/18, Tm Jhnsn digit@sonic.net wrote: > Hi Hannes, > > In 5.1 there is SmartRefStream>>#initKnownRenames which includes: > > at: #AlansTextPlusMorph put: #TextPlusMorph; > > HTH, > Tim > > > On 4/30/2018 7:33 AM, H. Hirzel wrote: >> Hi Bob >> >> It still loads fine in Squeak 3.2. Thank you. >> >> In Squeak 3.8.1 the SmartRefStream needs a new class for >> >> AlansTextPlusMorph >> >> >> SmartRefStream>> >> alansTextPlusMorphbosfcebbmsopssrsggshtt0 >> >> ^ PutNewClassHere >> >> >> Any suggestions what I should put as a new class? >> >> Regards >> Hannes >> >> >> >> >> On 4/30/18, Bob Arning arning315@comcast.net wrote: >>> Here is the latest one I have. It loaded fine in 3.2. >>> >>> >>> On 4/29/18 10:20 PM, H. Hirzel wrote: >>>> Hello >>>> >>>> Is there a backup-copy/mirror available of the >>>> >>>> MorphLayoutArticle >>>> >>>> project which was on Bob's SuperSwiki? [1] >>>> >>>> Regards >>>> Hannes >>>> >>>> >>>> >>>> ---------------------------------- >>>> [1] >>>> http://wiki.squeak.org/squeak/2141 >>>> >>>> How to lay out submorphs >>>> >>>> Please read the excellent dynamic essay project
MorphLayoutArticle
>>>> (broken link) on Bob's SuperSwiki. >>>> >>>> Every Morph now has the capability to layout it's submorphs. >>>> (Previously, only the AlignmentMorph could implement layout
policies.
>>>> AlignmentMorph is still available because of compatibility
reasons
and
>>>> some utility methods it implements. >>>> >>> >>> >>> > >
-- _,,,^..^,,,_ best, Eliot
-- _,,,^..^,,,_ best, Eliot
Well, that's what the Squeak Shell could be used for. :-) At the moment, Squeak will try to enter the first parent project that is of a different kind. There should be no need to add another preference... Or am I missing something here?
Best, Marcel Am 03.05.2018 09:59:31 schrieb Eliot Miranda eliot.miranda@gmail.com: Hi David, Hi Marcel,
how about a preference that causes the root project to be entered on a drawing error? That way all one has to do is use projects to test new morphs and keep one's root project populated with unbroken morphs. It won't fix every situation but it is simple and natural. If you both agree I may have a go at adapting Marcel's code. I want to do this quickly to unblock Karl with the legacy project loading work.
On Wed, May 2, 2018 at 9:40 PM, David T. Lewis <lewis@mail.msen.com [mailto:lewis@mail.msen.com]> wrote:
Hi Eliot,
Marcel had developed a way for a Morphic project to drop into a debugger in MVC, which worked when the MVC project (or other non-Morphic project) was a parent of the Morphic project. This is good, but it required that you, as a Morphic developer, think ahead to open a non-Morphic project and then work in a Morphic project that is a child of that project.
The changes discussed in the thread below allow the emergency evaluator to first look for a non-Morphic project (usually MVC) that is a parent of the current project. If found, use that to host the debugger, otherwise search all known projects for any project that is not Morphic and use that to host the debugger, and if all that fails, drop into the traditional emergency evaluator.
For your case, try just opening an MVC project anywhere in your project hierarchy. Assuming the mechanism below works as advertised, you will be able to work in a Morphic project and have it drop into that MVC debugger when things go wrong. If the error is such that it breaks MVC also, then you will then find yourself back in the old emergency evaluator.
There are no preferences involved, just make sure there is some MVC project opened in your image, and hopefully it will just work.
Dave
On Wed, May 02, 2018 at 08:25:47PM -0700, Eliot Miranda wrote:
Hi David,
see below on the thread about loading od projects. Currently the system freezes with drawing errors. I'm reminded that you were developing changes to exit a project on drawing errors. That would make debugging a lot easier. Specifically I mean the following message. But I can't find a preference that causes drawing errors to exit the project. Did I misunderstand? If you have such code could you post it here? If not, how much effort would it be to get drawing errors to exit a sub-project if a suitable preference were set?
On Thu, Dec 14, 2017 at 7:00 PM, David T. Lewis <lewis@mail.msen.com [mailto:lewis@mail.msen.com]> wrote:
Marcel,
Much better, thanks :-)
After moving the EmergencyRecoveryRequested recursion guard reset from #finalExitActions: to #enter:revert:saveForRevert: the Morphic and ST80 dependencies are gone. The end result is a total of three changed methods in Project, plus the new EmergencyRecoveryRequested class variable.
Since they are no longer needed, I moved the Morphic and ST80 parts from inbox to treated inbox. All of the remaining changes are in the inbox as System-dtl.985.
To summarize the changes: The original behavior of seaching for a parent MVCProject or MorphicProject to host the emergency evaluator works as originally designed. If no project is found, then search for any suitable project elsewhere in the project hierarchy. If that is not found then fall back on the traditional emergency evaluator. If error handling fails in the project for emergency evaluation, the also fall back on the traditional emergency evaluator.
I expect this to work with other kinds of Project such as SqueakShellProject or EtoysProject, although I have not tested these so well.
Dave
On Thu, Dec 14, 2017 at 12:50:06PM -0500, David T. Lewis wrote:
Hi Marcel,
Oh - now I understand what you mean (d'oh!). You are right. I will follow up on your suggestion of putting it in #enter:revert:saveForRevert: (but maybe not today).
Thanks, Dave
Hi Dave,
#finalExitActions: should not contain such critical code. That's what I meant. :) I see it more like a "Template Method" that does nothing
serious
by default.
Maybe we could reset????EmergencyRecoveryRequested in #enter:revert:saveForRevert: so that #finalExitActions: becomes free again. :-)
Best, Marcel
On Wed, May 2, 2018 at 7:48 PM, Eliot Miranda <eliot.miranda@gmail.com [mailto:eliot.miranda@gmail.com]> wrote:
Hi Karl,
On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg <karlramberg@gmail.com [mailto:karlramberg@gmail.com]> wrote:
This change set make the project ALMOST load in a 32 bit 6.0 Squeak image. But there are some conversion issues I have not figured out.
NOTE: Image will probably crash. USE WITH CARE
Using all of your change set except ObjectScanner>>#scanFrom:, and the changes I committed to trunk today I was able to load MorphLayoutArticle.019.pr [http://MorphLayoutArticle.019.pr] into a 64-bit Spur image (thanks Bert!!). The image locks up due to a drawing error in GeeMailMorph(ScrollPane)>>innerBounds where UndefinedObject doesn't understand #-. So things are close. May I suggest that you add RenamedSourceClassReader in System-Object Storage, and move the other segment-specific scanning methods (ClassCategoryReader>># scanFromNoCompile:[forSegment:]) too?
This is cool :-)
BTW, there was a compiler bug with the native image segment loading code in 64-bit Spur. This is fixed if you grab the last 64-bit Spur VMs from Travis.
Best, Karl
On Mon, Apr 30, 2018 at 3:37 PM, H. Hirzel <hannes.hirzel@gmail.com [mailto:hannes.hirzel@gmail.com]> wrote:
Unfortunately the dynamic essay MorphLayoutArticle.019.pr [http://MorphLayoutArticle.019.pr] did not load in a fairly recent Squeak 6.0a trunk image.
an OrderedCollection(ImageSegment(Object)>>doesNotUnderstand: #scanFrom: ObjectScanner>>scanFrom: [] in [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: BlockClosure>>on:do: [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ByteString(String)>>displayProgressAt:from:to:during: ByteString(String)>>displayProgressFrom:to:during: MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: MultiByteBinaryOrTextStream(PositionableStream)>>fileIn MultiByteBinaryOrTextStream>>fileInProject MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [] in [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>on:do: [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>ensure: ProjectLoading class>>fileInName:archive:morphOrList: ProjectLoading class>>openName:stream:fromDirectory:withProjectView:clearOriginFlag: ProjectLoading class>>openName:stream:fromDirectory:withProjectView: [] in ProjectLoading class>>openOn: BlockClosure>>on:do: [] in ByteString(String)>>displaySequentialProgress: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ProgressInitiationException class>>display:from:to:during: ByteString(String)>>displaySequentialProgress: ProjectLoading class>>openOn: [] in ExternalDropHandler class>>defaultProjectHandler ExternalDropHandler>>handle:in:dropEvent: PasteUpMorph>>handleDroppedItem:event: [] in PasteUpMorph>>dropFiles: BlockClosure>>ensure: PasteUpMorph>>dropFiles: PasteUpMorph(Morph)>>handleDropFiles: DropFilesEvent>>sentTo: PasteUpMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PasteUpMorph(Morph)>>processEvent:using: [] in PasteUpMorph>>processEvent:using: BlockClosure>>ensure: PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent: [] in [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: DropFilesEvent(MorphicEvent)>>becomeActiveDuring: [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: HandMorph>>becomeActiveDuring: [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendEvent:focus:clear: HandMorph>>sendEvent:focus: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in MorphicProject>>spawnNewProcess [] in BlockClosure>>newProcess)
On 4/30/18, H. Hirzel <hannes.hirzel@gmail.com [mailto:hannes.hirzel@gmail.com]> wrote:
Hi Tim
Implementing your suggestion [1] worked to make MorphLayoutArticle.019.pr [http://MorphLayoutArticle.019.pr] load into Squeak 3.8.1, see screen shot.
What I aiming at next at is to load it into Squeak 6.0a trunk. I assume this should be possible quite easily because of the enhancements done last year [2][3].
Regards Hannes
[1] Extend #initKnownRenames
SmartRefStream>>initKnownRenames renamed at: #AlansTextPlusMorph put: #TextPlusMorph; at: #FlasherMorph put: #Flasher; yourself
made MorphLayoutArticle.019.pr [http://MorphLayoutArticle.019.pr] to load.
[2] 6502 format http://wiki.squeak.org/squeak/6502 [http://wiki.squeak.org/squeak/6502]
ImageFormat of the interpreter Virtual Machine. May be loaded transparently into Squeak 6.0a through the help of LegacyImageSegment.
[3] http://wiki.squeak.org/squeak/6579 [http://wiki.squeak.org/squeak/6579] LegacyImageSegment A new class introduced in March 2017 in Squeak 6.0a to enable the loading of the older 6502 image segment format type .
More see Smalltalk imageFormatVersion http://wiki.squeak.org/squeak/ [http://wiki.squeak.org/squeak/]
873
On 4/30/18, Tm Jhnsn <digit@sonic.net [mailto:digit@sonic.net]> wrote:
Hi Hannes,
In 5.1 there is SmartRefStream>>#initKnownRenames which includes:
at: #AlansTextPlusMorph put: #TextPlusMorph;
HTH, Tim
On 4/30/2018 7:33 AM, H. Hirzel wrote: > Hi Bob > > It still loads fine in Squeak 3.2. Thank you. > > In Squeak 3.8.1 the SmartRefStream needs a new class for > > AlansTextPlusMorph > > > SmartRefStream>> > alansTextPlusMorphbosfcebbmsopssrsggshtt0 > > ^ PutNewClassHere > > > Any suggestions what I should put as a new class? > > Regards > Hannes > > > > > On 4/30/18, Bob Arning <arning315@comcast.net [mailto:arning315@comcast.net]> wrote: >> Here is the latest one I have. It loaded fine in 3.2. >> >> >> On 4/29/18 10:20 PM, H. Hirzel wrote: >>> Hello >>> >>> Is there a backup-copy/mirror available of the >>> >>> MorphLayoutArticle >>> >>> project which was on Bob's SuperSwiki? [1] >>> >>> Regards >>> Hannes >>> >>> >>> >>> ---------------------------------- >>> [1] >>> http://wiki.squeak.org/squeak/2141 [http://wiki.squeak.org/squeak/2141] >>> >>> How to lay out submorphs >>> >>> Please read the excellent dynamic essay project MorphLayoutArticle >>> (broken link) on Bob's SuperSwiki. >>> >>> Every Morph now has the capability to layout it's submorphs. >>> (Previously, only the AlignmentMorph could implement layout
policies.
>>> AlignmentMorph is still available because of compatibility reasons
and
>>> some utility methods it implements. >>> >> >> >>
-- _,,,^..^,,,_ best, Eliot
-- _,,,^..^,,,_ best, Eliot
--
_,,,^..^,,,_
best, Eliot
Hi Eliot,
A typical scenario for entering emergency recovery is that you have changed something that breaks your UI completely. In these cases, if you have broken e.g. the Morphic UI, then attempting to open a debugger in any other Morphic project will also fail. Your next best hope is to find some other kind of project for which the debugger still works. If that does not work, then your last resort is the traditional emergency evaluator.
A policy of using the root project for emergency evaluation would do the wrong thing in many cases.
The problem of how to handle errors when loading a project may be a different case, and I really don't know if trying to recover in another Morphic project would work. If it does work, then it might justify adding the preference you suggest. I suspect that the only way to know if it will work is to try it.
If you do implement it, it should probably spend a few days in the inbox so that those of us who are expert UI-breakers can see what happens.
Dave
On Thu, May 03, 2018 at 12:59:19AM -0700, Eliot Miranda wrote:
Hi David, Hi Marcel,
how about a preference that causes the root project to be entered on a
drawing error? That way all one has to do is use projects to test new morphs and keep one's root project populated with unbroken morphs. It won't fix every situation but it is simple and natural. If you both agree I may have a go at adapting Marcel's code. I want to do this quickly to unblock Karl with the legacy project loading work.
On Wed, May 2, 2018 at 9:40 PM, David T. Lewis lewis@mail.msen.com wrote:
Hi Eliot,
Marcel had developed a way for a Morphic project to drop into a debugger in MVC, which worked when the MVC project (or other non-Morphic project) was a parent of the Morphic project. This is good, but it required that you, as a Morphic developer, think ahead to open a non-Morphic project and then work in a Morphic project that is a child of that project.
The changes discussed in the thread below allow the emergency evaluator to first look for a non-Morphic project (usually MVC) that is a parent of the current project. If found, use that to host the debugger, otherwise search all known projects for any project that is not Morphic and use that to host the debugger, and if all that fails, drop into the traditional emergency evaluator.
For your case, try just opening an MVC project anywhere in your project hierarchy. Assuming the mechanism below works as advertised, you will be able to work in a Morphic project and have it drop into that MVC debugger when things go wrong. If the error is such that it breaks MVC also, then you will then find yourself back in the old emergency evaluator.
There are no preferences involved, just make sure there is some MVC project opened in your image, and hopefully it will just work.
Dave
On Wed, May 02, 2018 at 08:25:47PM -0700, Eliot Miranda wrote:
Hi David,
see below on the thread about loading od projects. Currently the system freezes with drawing errors. I'm reminded that you were developing
changes
to exit a project on drawing errors. That would make debugging a lot easier. Specifically I mean the following message. But I can't find a preference that causes drawing errors to exit the project. Did I misunderstand? If you have such code could you post it here? If not,
how
much effort would it be to get drawing errors to exit a sub-project if a suitable preference were set?
On Thu, Dec 14, 2017 at 7:00 PM, David T. Lewis lewis@mail.msen.com
wrote:
Marcel,
Much better, thanks :-)
After moving the EmergencyRecoveryRequested recursion guard reset from #finalExitActions: to #enter:revert:saveForRevert: the Morphic and ST80 dependencies are gone. The end result is a total of three changed
methods
in Project, plus the new EmergencyRecoveryRequested class variable.
Since they are no longer needed, I moved the Morphic and ST80 parts
from
inbox to treated inbox. All of the remaining changes are in the inbox as System-dtl.985.
To summarize the changes: The original behavior of seaching for a
parent
MVCProject or MorphicProject to host the emergency evaluator works as originally designed. If no project is found, then search for any
suitable
project elsewhere in the project hierarchy. If that is not found then fall back on the traditional emergency evaluator. If error handling
fails
in the project for emergency evaluation, the also fall back on the traditional emergency evaluator.
I expect this to work with other kinds of Project such as SqueakShellProject or EtoysProject, although I have not tested these so well.
Dave
On Thu, Dec 14, 2017 at 12:50:06PM -0500, David T. Lewis wrote:
Hi Marcel,
Oh - now I understand what you mean (d'oh!). You are right. I will
follow
up on your suggestion of putting it in #enter:revert:saveForRevert:
(but
maybe not today).
Thanks, Dave
Hi Dave,
#finalExitActions: should not contain such critical code. That's
what I
meant. :) I see it more like a "Template Method" that does nothing
serious
by default.
Maybe we could reset????EmergencyRecoveryRequested in #enter:revert:saveForRevert: so that #finalExitActions: becomes
free
again. :-)
Best, Marcel
On Wed, May 2, 2018 at 7:48 PM, Eliot Miranda eliot.miranda@gmail.com wrote:
Hi Karl,
On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg karlramberg@gmail.com wrote:
This change set make the project ALMOST load in a 32 bit 6.0 Squeak
image.
But there are some conversion issues I have not figured out.
NOTE: Image will probably crash. USE WITH CARE
Using all of your change set except ObjectScanner>>#scanFrom:, and the changes I committed to trunk today I was able to load MorphLayoutArticle.019.pr into a 64-bit Spur image (thanks Bert!!).
The
image locks up due to a drawing error in GeeMailMorph(ScrollPane)>>
innerBounds
where UndefinedObject doesn't understand #-. So things are close.
May I
suggest that you add RenamedSourceClassReader in System-Object
Storage, and
move the other segment-specific scanning methods
(ClassCategoryReader>>#
scanFromNoCompile:[forSegment:]) too?
This is cool :-)
BTW, there was a compiler bug with the native image segment loading
code
in 64-bit Spur. This is fixed if you grab the last 64-bit Spur VMs
from
Travis.
Best, Karl
On Mon, Apr 30, 2018 at 3:37 PM, H. Hirzel hannes.hirzel@gmail.com wrote:
Unfortunately the dynamic essay MorphLayoutArticle.019.pr did not
load
in a fairly recent Squeak 6.0a trunk image.
an OrderedCollection(ImageSegment(Object)>>doesNotUnderstand: #scanFrom: ObjectScanner>>scanFrom: [] in [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: BlockClosure>>on:do: [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
[]
in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ByteString(String)>>displayProgressAt:from:to:during: ByteString(String)>>displayProgressFrom:to:during: MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: MultiByteBinaryOrTextStream(PositionableStream)>>fileIn MultiByteBinaryOrTextStream>>fileInProject MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [] in []
in
ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>on:do: [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>ensure: ProjectLoading class>>fileInName:archive:morphOrList: ProjectLoading class>>openName:stream:fromDirectory:withProjectView:
clearOriginFlag:
ProjectLoading class>>openName:stream:fromDirectory:withProjectView: [] in ProjectLoading class>>openOn: BlockClosure>>on:do: [] in ByteString(String)>>displaySequentialProgress: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ProgressInitiationException class>>display:from:to:during: ByteString(String)>>displaySequentialProgress: ProjectLoading class>>openOn: [] in ExternalDropHandler class>>defaultProjectHandler ExternalDropHandler>>handle:in:dropEvent: PasteUpMorph>>handleDroppedItem:event: [] in
PasteUpMorph>>dropFiles:
BlockClosure>>ensure: PasteUpMorph>>dropFiles: PasteUpMorph(Morph)>>handleDropFiles: DropFilesEvent>>sentTo: PasteUpMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PasteUpMorph(Morph)>>processEvent:using: [] in PasteUpMorph>>processEvent:using: BlockClosure>>ensure: PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent: [] in [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: DropFilesEvent(MorphicEvent)>>becomeActiveDuring: [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: HandMorph>>becomeActiveDuring: [] in HandMorph>>sendEvent:focus:
clear:
BlockClosure>>ensure: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendEvent:focus:clear: HandMorph>>sendEvent:focus: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in MorphicProject>>spawnNewProcess [] in BlockClosure>>newProcess)
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote: > Hi Tim > > Implementing your suggestion [1] worked to make > MorphLayoutArticle.019.pr load into > Squeak 3.8.1, see screen shot. > > What I aiming at next at is to load it into Squeak 6.0a trunk. I > assume this should be possible quite easily because of the > enhancements done last year [2][3]. > > Regards > Hannes > > > > > > [1] Extend #initKnownRenames > > SmartRefStream>>initKnownRenames > renamed > at: #AlansTextPlusMorph put: #TextPlusMorph; > at: #FlasherMorph put: #Flasher; > yourself > > made MorphLayoutArticle.019.pr to load. > > > [2] 6502 format > http://wiki.squeak.org/squeak/6502 > > ImageFormat of the interpreter Virtual Machine. > May be loaded transparently into Squeak 6.0a through the help of > LegacyImageSegment. > > [3] > http://wiki.squeak.org/squeak/6579 > LegacyImageSegment > A new class introduced in March 2017 in Squeak 6.0a to enable the > loading of the older 6502 image segment format type . > > More see Smalltalk imageFormatVersion
http://wiki.squeak.org/squeak/
873 > > > On 4/30/18, Tm Jhnsn digit@sonic.net wrote: >> Hi Hannes, >> >> In 5.1 there is SmartRefStream>>#initKnownRenames which includes: >> >> at: #AlansTextPlusMorph put: #TextPlusMorph; >> >> HTH, >> Tim >> >> >> On 4/30/2018 7:33 AM, H. Hirzel wrote: >>> Hi Bob >>> >>> It still loads fine in Squeak 3.2. Thank you. >>> >>> In Squeak 3.8.1 the SmartRefStream needs a new class for >>> >>> AlansTextPlusMorph >>> >>> >>> SmartRefStream>> >>> alansTextPlusMorphbosfcebbmsopssrsggshtt0 >>> >>> ^ PutNewClassHere >>> >>> >>> Any suggestions what I should put as a new class? >>> >>> Regards >>> Hannes >>> >>> >>> >>> >>> On 4/30/18, Bob Arning arning315@comcast.net wrote: >>>> Here is the latest one I have. It loaded fine in 3.2. >>>> >>>> >>>> On 4/29/18 10:20 PM, H. Hirzel wrote: >>>>> Hello >>>>> >>>>> Is there a backup-copy/mirror available of the >>>>> >>>>> MorphLayoutArticle >>>>> >>>>> project which was on Bob's SuperSwiki? [1] >>>>> >>>>> Regards >>>>> Hannes >>>>> >>>>> >>>>> >>>>> ---------------------------------- >>>>> [1] >>>>> http://wiki.squeak.org/squeak/2141 >>>>> >>>>> How to lay out submorphs >>>>> >>>>> Please read the excellent dynamic essay project
MorphLayoutArticle
>>>>> (broken link) on Bob's SuperSwiki. >>>>> >>>>> Every Morph now has the capability to layout it's submorphs. >>>>> (Previously, only the AlignmentMorph could implement layout policies. >>>>> AlignmentMorph is still available because of compatibility
reasons
and >>>>> some utility methods it implements. >>>>> >>>> >>>> >>>> >> >> >
-- _,,,^..^,,,_ best, Eliot
-- _,,,^..^,,,_ best, Eliot
-- _,,,^..^,,,_ best, Eliot
I have added the stuff I had in the change set. I downloaded the latest VM squeak.cog.spur_win64x64_201805030152.zip https://bintray.com/opensmalltalk/vm/download_file?file_path=squeak.cog.spur_win64x64_201805030152.zip
I still get a drawing error with the opened project when loaded. It's like resolution is screwed and screen is displayed in 4 quadrants. See attached screen shot. I'm on windows.
Best, Karl
On Thu, May 3, 2018 at 4:48 AM, Eliot Miranda eliot.miranda@gmail.com wrote:
Hi Karl,
On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg karlramberg@gmail.com wrote:
This change set make the project ALMOST load in a 32 bit 6.0 Squeak image. But there are some conversion issues I have not figured out.
NOTE: Image will probably crash. USE WITH CARE
Using all of your change set except ObjectScanner>>#scanFrom:, and the changes I committed to trunk today I was able to load MorphLayoutArticle.019.pr into a 64-bit Spur image (thanks Bert!!). The image locks up due to a drawing error in GeeMailMorph(ScrollPane)>>innerBounds where UndefinedObject doesn't understand #-. So things are close. May I suggest that you add RenamedSourceClassReader in System-Object Storage, and move the other segment-specific scanning methods (ClassCategoryReader>># scanFromNoCompile:[forSegment:]) too?
This is cool :-)
BTW, there was a compiler bug with the native image segment loading code in 64-bit Spur. This is fixed if you grab the last 64-bit Spur VMs from Travis.
Best, Karl
On Mon, Apr 30, 2018 at 3:37 PM, H. Hirzel hannes.hirzel@gmail.com wrote:
Unfortunately the dynamic essay MorphLayoutArticle.019.pr did not load in a fairly recent Squeak 6.0a trunk image.
an OrderedCollection(ImageSegment(Object)>>doesNotUnderstand: #scanFrom: ObjectScanner>>scanFrom: [] in [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: BlockClosure>>on:do: [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ByteString(String)>>displayProgressAt:from:to:during: ByteString(String)>>displayProgressFrom:to:during: MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: MultiByteBinaryOrTextStream(PositionableStream)>>fileIn MultiByteBinaryOrTextStream>>fileInProject MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [] in [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>on:do: [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>ensure: ProjectLoading class>>fileInName:archive:morphOrList: ProjectLoading class>>openName:stream:fromDirectory:withProjectView:clearOriginFlag: ProjectLoading class>>openName:stream:fromDirectory:withProjectView: [] in ProjectLoading class>>openOn: BlockClosure>>on:do: [] in ByteString(String)>>displaySequentialProgress: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ProgressInitiationException class>>display:from:to:during: ByteString(String)>>displaySequentialProgress: ProjectLoading class>>openOn: [] in ExternalDropHandler class>>defaultProjectHandler ExternalDropHandler>>handle:in:dropEvent: PasteUpMorph>>handleDroppedItem:event: [] in PasteUpMorph>>dropFiles: BlockClosure>>ensure: PasteUpMorph>>dropFiles: PasteUpMorph(Morph)>>handleDropFiles: DropFilesEvent>>sentTo: PasteUpMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PasteUpMorph(Morph)>>processEvent:using: [] in PasteUpMorph>>processEvent:using: BlockClosure>>ensure: PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent: [] in [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: DropFilesEvent(MorphicEvent)>>becomeActiveDuring: [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: HandMorph>>becomeActiveDuring: [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendEvent:focus:clear: HandMorph>>sendEvent:focus: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in MorphicProject>>spawnNewProcess [] in BlockClosure>>newProcess)
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
Hi Tim
Implementing your suggestion [1] worked to make MorphLayoutArticle.019.pr load into Squeak 3.8.1, see screen shot.
What I aiming at next at is to load it into Squeak 6.0a trunk. I assume this should be possible quite easily because of the enhancements done last year [2][3].
Regards Hannes
[1] Extend #initKnownRenames
SmartRefStream>>initKnownRenames renamed at: #AlansTextPlusMorph put: #TextPlusMorph; at: #FlasherMorph put: #Flasher; yourself
made MorphLayoutArticle.019.pr to load.
[2] 6502 format http://wiki.squeak.org/squeak/6502
ImageFormat of the interpreter Virtual Machine. May be loaded transparently into Squeak 6.0a through the help of LegacyImageSegment.
[3] http://wiki.squeak.org/squeak/6579 LegacyImageSegment A new class introduced in March 2017 in Squeak 6.0a to enable the loading of the older 6502 image segment format type .
More see Smalltalk imageFormatVersion http://wiki.squeak.org/squeak/
873
On 4/30/18, Tm Jhnsn digit@sonic.net wrote:
Hi Hannes,
In 5.1 there is SmartRefStream>>#initKnownRenames which includes:
at: #AlansTextPlusMorph put: #TextPlusMorph;
HTH, Tim
On 4/30/2018 7:33 AM, H. Hirzel wrote:
Hi Bob
It still loads fine in Squeak 3.2. Thank you.
In Squeak 3.8.1 the SmartRefStream needs a new class for
AlansTextPlusMorph
SmartRefStream>> alansTextPlusMorphbosfcebbmsopssrsggshtt0
^ PutNewClassHere
Any suggestions what I should put as a new class?
Regards Hannes
On 4/30/18, Bob Arning arning315@comcast.net wrote: > Here is the latest one I have. It loaded fine in 3.2. > > > On 4/29/18 10:20 PM, H. Hirzel wrote: >> Hello >> >> Is there a backup-copy/mirror available of the >> >> MorphLayoutArticle >> >> project which was on Bob's SuperSwiki? [1] >> >> Regards >> Hannes >> >> >> >> ---------------------------------- >> [1] >> http://wiki.squeak.org/squeak/2141 >> >> How to lay out submorphs >> >> Please read the excellent dynamic essay project MorphLayoutArticle >> (broken link) on Bob's SuperSwiki. >> >> Every Morph now has the capability to layout it's submorphs. >> (Previously, only the AlignmentMorph could implement layout
policies.
>> AlignmentMorph is still available because of compatibility reasons
and
>> some utility methods it implements. >> > > >
-- _,,,^..^,,,_ best, Eliot
The drawing error was because of wrong color depth. When I change to 16 bit before loading project it comes up fine :-)
Now I have to look at the code that mangles the GeeMailMorph so badly
Best, Karl
On Thu, May 3, 2018 at 9:12 PM, karl ramberg karlramberg@gmail.com wrote:
I have added the stuff I had in the change set. I downloaded the latest VM squeak.cog.spur_win64x64_201805030152.zip https://bintray.com/opensmalltalk/vm/download_file?file_path=squeak.cog.spur_win64x64_201805030152.zip
I still get a drawing error with the opened project when loaded. It's like resolution is screwed and screen is displayed in 4 quadrants. See attached screen shot. I'm on windows.
Best, Karl
On Thu, May 3, 2018 at 4:48 AM, Eliot Miranda eliot.miranda@gmail.com wrote:
Hi Karl,
On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg karlramberg@gmail.com wrote:
This change set make the project ALMOST load in a 32 bit 6.0 Squeak image. But there are some conversion issues I have not figured out.
NOTE: Image will probably crash. USE WITH CARE
Using all of your change set except ObjectScanner>>#scanFrom:, and the changes I committed to trunk today I was able to load MorphLayoutArticle.019.pr into a 64-bit Spur image (thanks Bert!!). The image locks up due to a drawing error in GeeMailMorph(ScrollPane)>>innerBounds where UndefinedObject doesn't understand #-. So things are close. May I suggest that you add RenamedSourceClassReader in System-Object Storage, and move the other segment-specific scanning methods (ClassCategoryReader>>#scanFromNoCompile:[forSegment:]) too?
This is cool :-)
BTW, there was a compiler bug with the native image segment loading code in 64-bit Spur. This is fixed if you grab the last 64-bit Spur VMs from Travis.
Best, Karl
On Mon, Apr 30, 2018 at 3:37 PM, H. Hirzel hannes.hirzel@gmail.com wrote:
Unfortunately the dynamic essay MorphLayoutArticle.019.pr did not load in a fairly recent Squeak 6.0a trunk image.
an OrderedCollection(ImageSegment(Object)>>doesNotUnderstand: #scanFrom: ObjectScanner>>scanFrom: [] in [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: BlockClosure>>on:do: [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ByteString(String)>>displayProgressAt:from:to:during: ByteString(String)>>displayProgressFrom:to:during: MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: MultiByteBinaryOrTextStream(PositionableStream)>>fileIn MultiByteBinaryOrTextStream>>fileInProject MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [] in [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>on:do: [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>ensure: ProjectLoading class>>fileInName:archive:morphOrList: ProjectLoading class>>openName:stream:fromDirectory:withProjectView:clearOriginFlag: ProjectLoading class>>openName:stream:fromDirectory:withProjectView: [] in ProjectLoading class>>openOn: BlockClosure>>on:do: [] in ByteString(String)>>displaySequentialProgress: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ProgressInitiationException class>>display:from:to:during: ByteString(String)>>displaySequentialProgress: ProjectLoading class>>openOn: [] in ExternalDropHandler class>>defaultProjectHandler ExternalDropHandler>>handle:in:dropEvent: PasteUpMorph>>handleDroppedItem:event: [] in PasteUpMorph>>dropFiles: BlockClosure>>ensure: PasteUpMorph>>dropFiles: PasteUpMorph(Morph)>>handleDropFiles: DropFilesEvent>>sentTo: PasteUpMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PasteUpMorph(Morph)>>processEvent:using: [] in PasteUpMorph>>processEvent:using: BlockClosure>>ensure: PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent: [] in [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: DropFilesEvent(MorphicEvent)>>becomeActiveDuring: [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: HandMorph>>becomeActiveDuring: [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendEvent:focus:clear: HandMorph>>sendEvent:focus: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in MorphicProject>>spawnNewProcess [] in BlockClosure>>newProcess)
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
Hi Tim
Implementing your suggestion [1] worked to make MorphLayoutArticle.019.pr load into Squeak 3.8.1, see screen shot.
What I aiming at next at is to load it into Squeak 6.0a trunk. I assume this should be possible quite easily because of the enhancements done last year [2][3].
Regards Hannes
[1] Extend #initKnownRenames
SmartRefStream>>initKnownRenames renamed at: #AlansTextPlusMorph put: #TextPlusMorph; at: #FlasherMorph put: #Flasher; yourself
made MorphLayoutArticle.019.pr to load.
[2] 6502 format http://wiki.squeak.org/squeak/6502
ImageFormat of the interpreter Virtual Machine. May be loaded transparently into Squeak 6.0a through the help of LegacyImageSegment.
[3] http://wiki.squeak.org/squeak/6579 LegacyImageSegment A new class introduced in March 2017 in Squeak 6.0a to enable the loading of the older 6502 image segment format type .
More see Smalltalk imageFormatVersion http://wiki.squeak.org/squeak/
873
On 4/30/18, Tm Jhnsn digit@sonic.net wrote:
Hi Hannes,
In 5.1 there is SmartRefStream>>#initKnownRenames which includes:
at: #AlansTextPlusMorph put: #TextPlusMorph;
HTH, Tim
On 4/30/2018 7:33 AM, H. Hirzel wrote: > Hi Bob > > It still loads fine in Squeak 3.2. Thank you. > > In Squeak 3.8.1 the SmartRefStream needs a new class for > > AlansTextPlusMorph > > > SmartRefStream>> > alansTextPlusMorphbosfcebbmsopssrsggshtt0 > > ^ PutNewClassHere > > > Any suggestions what I should put as a new class? > > Regards > Hannes > > > > > On 4/30/18, Bob Arning arning315@comcast.net wrote: >> Here is the latest one I have. It loaded fine in 3.2. >> >> >> On 4/29/18 10:20 PM, H. Hirzel wrote: >>> Hello >>> >>> Is there a backup-copy/mirror available of the >>> >>> MorphLayoutArticle >>> >>> project which was on Bob's SuperSwiki? [1] >>> >>> Regards >>> Hannes >>> >>> >>> >>> ---------------------------------- >>> [1] >>> http://wiki.squeak.org/squeak/2141 >>> >>> How to lay out submorphs >>> >>> Please read the excellent dynamic essay project MorphLayoutArticle >>> (broken link) on Bob's SuperSwiki. >>> >>> Every Morph now has the capability to layout it's submorphs. >>> (Previously, only the AlignmentMorph could implement layout
policies.
>>> AlignmentMorph is still available because of compatibility
reasons and
>>> some utility methods it implements. >>> >> >> >>
-- _,,,^..^,,,_ best, Eliot
Hello Karl
Good to read about the progress which was possible in a short time.
Where in the code do you set the color depth?
Regards Hannes
On 5/6/18, karl ramberg karlramberg@gmail.com wrote:
The drawing error was because of wrong color depth. When I change to 16 bit before loading project it comes up fine :-)
Now I have to look at the code that mangles the GeeMailMorph so badly
Best, Karl
On Thu, May 3, 2018 at 9:12 PM, karl ramberg karlramberg@gmail.com wrote:
I have added the stuff I had in the change set. I downloaded the latest VM squeak.cog.spur_win64x64_201805030152.zip https://bintray.com/opensmalltalk/vm/download_file?file_path=squeak.cog.spur_win64x64_201805030152.zip
I still get a drawing error with the opened project when loaded. It's like resolution is screwed and screen is displayed in 4 quadrants. See attached screen shot. I'm on windows.
Best, Karl
On Thu, May 3, 2018 at 4:48 AM, Eliot Miranda eliot.miranda@gmail.com wrote:
Hi Karl,
On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg karlramberg@gmail.com wrote:
This change set make the project ALMOST load in a 32 bit 6.0 Squeak image. But there are some conversion issues I have not figured out.
NOTE: Image will probably crash. USE WITH CARE
Using all of your change set except ObjectScanner>>#scanFrom:, and the changes I committed to trunk today I was able to load MorphLayoutArticle.019.pr into a 64-bit Spur image (thanks Bert!!). The image locks up due to a drawing error in GeeMailMorph(ScrollPane)>>innerBounds where UndefinedObject doesn't understand #-. So things are close. May I suggest that you add RenamedSourceClassReader in System-Object Storage, and move the other segment-specific scanning methods (ClassCategoryReader>>#scanFromNoCompile:[forSegment:]) too?
This is cool :-)
BTW, there was a compiler bug with the native image segment loading code in 64-bit Spur. This is fixed if you grab the last 64-bit Spur VMs from Travis.
Best, Karl
On Mon, Apr 30, 2018 at 3:37 PM, H. Hirzel hannes.hirzel@gmail.com wrote:
Unfortunately the dynamic essay MorphLayoutArticle.019.pr did not load in a fairly recent Squeak 6.0a trunk image.
an OrderedCollection(ImageSegment(Object)>>doesNotUnderstand: #scanFrom: ObjectScanner>>scanFrom: [] in [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: BlockClosure>>on:do: [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ByteString(String)>>displayProgressAt:from:to:during: ByteString(String)>>displayProgressFrom:to:during: MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: MultiByteBinaryOrTextStream(PositionableStream)>>fileIn MultiByteBinaryOrTextStream>>fileInProject MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [] in [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>on:do: [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>ensure: ProjectLoading class>>fileInName:archive:morphOrList: ProjectLoading class>>openName:stream:fromDirectory:withProjectView:clearOriginFlag: ProjectLoading class>>openName:stream:fromDirectory:withProjectView: [] in ProjectLoading class>>openOn: BlockClosure>>on:do: [] in ByteString(String)>>displaySequentialProgress: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ProgressInitiationException class>>display:from:to:during: ByteString(String)>>displaySequentialProgress: ProjectLoading class>>openOn: [] in ExternalDropHandler class>>defaultProjectHandler ExternalDropHandler>>handle:in:dropEvent: PasteUpMorph>>handleDroppedItem:event: [] in PasteUpMorph>>dropFiles: BlockClosure>>ensure: PasteUpMorph>>dropFiles: PasteUpMorph(Morph)>>handleDropFiles: DropFilesEvent>>sentTo: PasteUpMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PasteUpMorph(Morph)>>processEvent:using: [] in PasteUpMorph>>processEvent:using: BlockClosure>>ensure: PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent: [] in [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: DropFilesEvent(MorphicEvent)>>becomeActiveDuring: [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: HandMorph>>becomeActiveDuring: [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendEvent:focus:clear: HandMorph>>sendEvent:focus: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in MorphicProject>>spawnNewProcess [] in BlockClosure>>newProcess)
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
Hi Tim
Implementing your suggestion [1] worked to make MorphLayoutArticle.019.pr load into Squeak 3.8.1, see screen shot.
What I aiming at next at is to load it into Squeak 6.0a trunk. I assume this should be possible quite easily because of the enhancements done last year [2][3].
Regards Hannes
[1] Extend #initKnownRenames
SmartRefStream>>initKnownRenames renamed at: #AlansTextPlusMorph put: #TextPlusMorph; at: #FlasherMorph put: #Flasher; yourself
made MorphLayoutArticle.019.pr to load.
[2] 6502 format http://wiki.squeak.org/squeak/6502
ImageFormat of the interpreter Virtual Machine. May be loaded transparently into Squeak 6.0a through the help of LegacyImageSegment.
[3] http://wiki.squeak.org/squeak/6579 LegacyImageSegment A new class introduced in March 2017 in Squeak 6.0a to enable the loading of the older 6502 image segment format type .
More see Smalltalk imageFormatVersion http://wiki.squeak.org/squeak/
873
On 4/30/18, Tm Jhnsn digit@sonic.net wrote: > Hi Hannes, > > In 5.1 there is SmartRefStream>>#initKnownRenames which includes: > > at: #AlansTextPlusMorph put: #TextPlusMorph; > > HTH, > Tim > > > On 4/30/2018 7:33 AM, H. Hirzel wrote: >> Hi Bob >> >> It still loads fine in Squeak 3.2. Thank you. >> >> In Squeak 3.8.1 the SmartRefStream needs a new class for >> >> AlansTextPlusMorph >> >> >> SmartRefStream>> >> alansTextPlusMorphbosfcebbmsopssrsggshtt0 >> >> ^ PutNewClassHere >> >> >> Any suggestions what I should put as a new class? >> >> Regards >> Hannes >> >> >> >> >> On 4/30/18, Bob Arning arning315@comcast.net wrote: >>> Here is the latest one I have. It loaded fine in 3.2. >>> >>> >>> On 4/29/18 10:20 PM, H. Hirzel wrote: >>>> Hello >>>> >>>> Is there a backup-copy/mirror available of the >>>> >>>> MorphLayoutArticle >>>> >>>> project which was on Bob's SuperSwiki? [1] >>>> >>>> Regards >>>> Hannes >>>> >>>> >>>> >>>> ---------------------------------- >>>> [1] >>>> http://wiki.squeak.org/squeak/2141 >>>> >>>> How to lay out submorphs >>>> >>>> Please read the excellent dynamic essay project >>>> MorphLayoutArticle >>>> (broken link) on Bob's SuperSwiki. >>>> >>>> Every Morph now has the capability to layout it's submorphs. >>>> (Previously, only the AlignmentMorph could implement layout
policies.
>>>> AlignmentMorph is still available because of compatibility
reasons and
>>>> some utility methods it implements. >>>> >>> >>> >>> > >
-- _,,,^..^,,,_ best, Eliot
I just changed to 16 bit in world menu / appearance / set display depth
Best, Karl
On Thu, May 10, 2018 at 5:47 AM, H. Hirzel hannes.hirzel@gmail.com wrote:
Hello Karl
Good to read about the progress which was possible in a short time.
Where in the code do you set the color depth?
Regards Hannes
On 5/6/18, karl ramberg karlramberg@gmail.com wrote:
The drawing error was because of wrong color depth. When I change to 16
bit
before loading project it comes up fine :-)
Now I have to look at the code that mangles the GeeMailMorph so badly
Best, Karl
On Thu, May 3, 2018 at 9:12 PM, karl ramberg karlramberg@gmail.com
wrote:
I have added the stuff I had in the change set. I downloaded the latest VM squeak.cog.spur_win64x64_201805030152.zip <https://bintray.com/opensmalltalk/vm/download_
file?file_path=squeak.cog.spur_win64x64_201805030152.zip>
I still get a drawing error with the opened project when loaded. It's like resolution is screwed and screen is displayed in 4 quadrants. See attached screen shot. I'm on windows.
Best, Karl
On Thu, May 3, 2018 at 4:48 AM, Eliot Miranda eliot.miranda@gmail.com wrote:
Hi Karl,
On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg karlramberg@gmail.com wrote:
This change set make the project ALMOST load in a 32 bit 6.0 Squeak image. But there are some conversion issues I have not figured out.
NOTE: Image will probably crash. USE WITH CARE
Using all of your change set except ObjectScanner>>#scanFrom:, and the changes I committed to trunk today I was able to load MorphLayoutArticle.019.pr into a 64-bit Spur image (thanks Bert!!).
The
image locks up due to a drawing error in GeeMailMorph(ScrollPane)>>innerBounds where UndefinedObject doesn't understand #-. So things are close. May I suggest that you add RenamedSourceClassReader in System-Object Storage, and move the other segment-specific scanning methods (ClassCategoryReader>>#scanFromNoCompile:[forSegment:]) too?
This is cool :-)
BTW, there was a compiler bug with the native image segment loading
code
in 64-bit Spur. This is fixed if you grab the last 64-bit Spur VMs
from
Travis.
Best, Karl
On Mon, Apr 30, 2018 at 3:37 PM, H. Hirzel hannes.hirzel@gmail.com wrote:
Unfortunately the dynamic essay MorphLayoutArticle.019.pr did not
load
in a fairly recent Squeak 6.0a trunk image.
an OrderedCollection(ImageSegment(Object)>>doesNotUnderstand: #scanFrom: ObjectScanner>>scanFrom: [] in [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: BlockClosure>>on:do: [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
[]
in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ByteString(String)>>displayProgressAt:from:to:during: ByteString(String)>>displayProgressFrom:to:during: MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: MultiByteBinaryOrTextStream(PositionableStream)>>fileIn MultiByteBinaryOrTextStream>>fileInProject MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [] in []
in
ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>on:do: [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>ensure: ProjectLoading class>>fileInName:archive:morphOrList: ProjectLoading class>>openName:stream:fromDirectory:withProjectView:
clearOriginFlag:
ProjectLoading class>>openName:stream:fromDirectory:withProjectView: [] in ProjectLoading class>>openOn: BlockClosure>>on:do: [] in ByteString(String)>>displaySequentialProgress: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ProgressInitiationException class>>display:from:to:during: ByteString(String)>>displaySequentialProgress: ProjectLoading class>>openOn: [] in ExternalDropHandler class>>defaultProjectHandler ExternalDropHandler>>handle:in:dropEvent: PasteUpMorph>>handleDroppedItem:event: [] in
PasteUpMorph>>dropFiles:
BlockClosure>>ensure: PasteUpMorph>>dropFiles: PasteUpMorph(Morph)>>handleDropFiles: DropFilesEvent>>sentTo: PasteUpMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PasteUpMorph(Morph)>>processEvent:using: [] in PasteUpMorph>>processEvent:using: BlockClosure>>ensure: PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent: [] in [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: DropFilesEvent(MorphicEvent)>>becomeActiveDuring: [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: HandMorph>>becomeActiveDuring: [] in HandMorph>>sendEvent:focus:
clear:
BlockClosure>>ensure: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendEvent:focus:clear: HandMorph>>sendEvent:focus: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in MorphicProject>>spawnNewProcess [] in BlockClosure>>newProcess)
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote: > Hi Tim > > Implementing your suggestion [1] worked to make > MorphLayoutArticle.019.pr load into > Squeak 3.8.1, see screen shot. > > What I aiming at next at is to load it into Squeak 6.0a trunk. I > assume this should be possible quite easily because of the > enhancements done last year [2][3]. > > Regards > Hannes > > > > > > [1] Extend #initKnownRenames > > SmartRefStream>>initKnownRenames > renamed > at: #AlansTextPlusMorph put: #TextPlusMorph; > at: #FlasherMorph put: #Flasher; > yourself > > made MorphLayoutArticle.019.pr to load. > > > [2] 6502 format > http://wiki.squeak.org/squeak/6502 > > ImageFormat of the interpreter Virtual Machine. > May be loaded transparently into Squeak 6.0a through the help of > LegacyImageSegment. > > [3] > http://wiki.squeak.org/squeak/6579 > LegacyImageSegment > A new class introduced in March 2017 in Squeak 6.0a to enable the > loading of the older 6502 image segment format type . > > More see Smalltalk imageFormatVersion > http://wiki.squeak.org/squeak/ 873 > > > On 4/30/18, Tm Jhnsn digit@sonic.net wrote: >> Hi Hannes, >> >> In 5.1 there is SmartRefStream>>#initKnownRenames which includes: >> >> at: #AlansTextPlusMorph put: #TextPlusMorph; >> >> HTH, >> Tim >> >> >> On 4/30/2018 7:33 AM, H. Hirzel wrote: >>> Hi Bob >>> >>> It still loads fine in Squeak 3.2. Thank you. >>> >>> In Squeak 3.8.1 the SmartRefStream needs a new class for >>> >>> AlansTextPlusMorph >>> >>> >>> SmartRefStream>> >>> alansTextPlusMorphbosfcebbmsopssrsggshtt0 >>> >>> ^ PutNewClassHere >>> >>> >>> Any suggestions what I should put as a new class? >>> >>> Regards >>> Hannes >>> >>> >>> >>> >>> On 4/30/18, Bob Arning arning315@comcast.net wrote: >>>> Here is the latest one I have. It loaded fine in 3.2. >>>> >>>> >>>> On 4/29/18 10:20 PM, H. Hirzel wrote: >>>>> Hello >>>>> >>>>> Is there a backup-copy/mirror available of the >>>>> >>>>> MorphLayoutArticle >>>>> >>>>> project which was on Bob's SuperSwiki? [1] >>>>> >>>>> Regards >>>>> Hannes >>>>> >>>>> >>>>> >>>>> ---------------------------------- >>>>> [1] >>>>> http://wiki.squeak.org/squeak/2141 >>>>> >>>>> How to lay out submorphs >>>>> >>>>> Please read the excellent dynamic essay project >>>>> MorphLayoutArticle >>>>> (broken link) on Bob's SuperSwiki. >>>>> >>>>> Every Morph now has the capability to layout it's submorphs. >>>>> (Previously, only the AlignmentMorph could implement layout policies. >>>>> AlignmentMorph is still available because of compatibility reasons and >>>>> some utility methods it implements. >>>>> >>>> >>>> >>>> >> >> >
-- _,,,^..^,,,_ best, Eliot
Update / Retest:
Page 1183: Etoys ProjectLoading tests in 5.2 http://wiki.squeak.org/squeak/1183
lists 10 projects (*.pr files) from SqueakLand which load fine! This is due to recent work on project loading.
The file MorphLayoutArticle.pr still gives problems.
Loading MorphLayoutArticle.pr (Test 11 on page 1183) brings up with an emergency evaluator. After reverting the last method with it the project shows up (see screen shot) but the project is frozen.
An earlier analysis by Karl shows that the following morphs are involved
Player5 -- 1 instance, named yellowRectangle Player6067 -- 1 instance, named greenRect Player6466 -- 1 instance, named Parent1 Player65 -- 1 instance, named Parent2 Player59 -- 1 instance, named yellowRect Player8 -- 1 instance, named redRect
Further analysis is needed.
--Hannes
On 5/6/18, karl ramberg karlramberg@gmail.com wrote:
The drawing error was because of wrong color depth. When I change to 16 bit before loading project it comes up fine :-)
Now I have to look at the code that mangles the GeeMailMorph so badly
Best, Karl
On Thu, May 3, 2018 at 9:12 PM, karl ramberg karlramberg@gmail.com wrote:
I have added the stuff I had in the change set. I downloaded the latest VM squeak.cog.spur_win64x64_201805030152.zip https://bintray.com/opensmalltalk/vm/download_file?file_path=squeak.cog.spur_win64x64_201805030152.zip
I still get a drawing error with the opened project when loaded. It's like resolution is screwed and screen is displayed in 4 quadrants. See attached screen shot. I'm on windows.
Best, Karl
On Thu, May 3, 2018 at 4:48 AM, Eliot Miranda eliot.miranda@gmail.com wrote:
Hi Karl,
On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg karlramberg@gmail.com wrote:
This change set make the project ALMOST load in a 32 bit 6.0 Squeak image. But there are some conversion issues I have not figured out.
NOTE: Image will probably crash. USE WITH CARE
Using all of your change set except ObjectScanner>>#scanFrom:, and the changes I committed to trunk today I was able to load MorphLayoutArticle.019.pr into a 64-bit Spur image (thanks Bert!!). The image locks up due to a drawing error in GeeMailMorph(ScrollPane)>>innerBounds where UndefinedObject doesn't understand #-. So things are close. May I suggest that you add RenamedSourceClassReader in System-Object Storage, and move the other segment-specific scanning methods (ClassCategoryReader>>#scanFromNoCompile:[forSegment:]) too?
This is cool :-)
BTW, there was a compiler bug with the native image segment loading code in 64-bit Spur. This is fixed if you grab the last 64-bit Spur VMs from Travis.
Best, Karl
On Mon, Apr 30, 2018 at 3:37 PM, H. Hirzel hannes.hirzel@gmail.com wrote:
Unfortunately the dynamic essay MorphLayoutArticle.019.pr did not load in a fairly recent Squeak 6.0a trunk image.
an OrderedCollection(ImageSegment(Object)>>doesNotUnderstand: #scanFrom: ObjectScanner>>scanFrom: [] in [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: BlockClosure>>on:do: [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ByteString(String)>>displayProgressAt:from:to:during: ByteString(String)>>displayProgressFrom:to:during: MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: MultiByteBinaryOrTextStream(PositionableStream)>>fileIn MultiByteBinaryOrTextStream>>fileInProject MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [] in [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>on:do: [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>ensure: ProjectLoading class>>fileInName:archive:morphOrList: ProjectLoading class>>openName:stream:fromDirectory:withProjectView:clearOriginFlag: ProjectLoading class>>openName:stream:fromDirectory:withProjectView: [] in ProjectLoading class>>openOn: BlockClosure>>on:do: [] in ByteString(String)>>displaySequentialProgress: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ProgressInitiationException class>>display:from:to:during: ByteString(String)>>displaySequentialProgress: ProjectLoading class>>openOn: [] in ExternalDropHandler class>>defaultProjectHandler ExternalDropHandler>>handle:in:dropEvent: PasteUpMorph>>handleDroppedItem:event: [] in PasteUpMorph>>dropFiles: BlockClosure>>ensure: PasteUpMorph>>dropFiles: PasteUpMorph(Morph)>>handleDropFiles: DropFilesEvent>>sentTo: PasteUpMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PasteUpMorph(Morph)>>processEvent:using: [] in PasteUpMorph>>processEvent:using: BlockClosure>>ensure: PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent: [] in [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: DropFilesEvent(MorphicEvent)>>becomeActiveDuring: [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: HandMorph>>becomeActiveDuring: [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendEvent:focus:clear: HandMorph>>sendEvent:focus: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in MorphicProject>>spawnNewProcess [] in BlockClosure>>newProcess)
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
Hi Tim
Implementing your suggestion [1] worked to make MorphLayoutArticle.019.pr load into Squeak 3.8.1, see screen shot.
What I aiming at next at is to load it into Squeak 6.0a trunk. I assume this should be possible quite easily because of the enhancements done last year [2][3].
Regards Hannes
[1] Extend #initKnownRenames
SmartRefStream>>initKnownRenames renamed at: #AlansTextPlusMorph put: #TextPlusMorph; at: #FlasherMorph put: #Flasher; yourself
made MorphLayoutArticle.019.pr to load.
[2] 6502 format http://wiki.squeak.org/squeak/6502
ImageFormat of the interpreter Virtual Machine. May be loaded transparently into Squeak 6.0a through the help of LegacyImageSegment.
[3] http://wiki.squeak.org/squeak/6579 LegacyImageSegment A new class introduced in March 2017 in Squeak 6.0a to enable the loading of the older 6502 image segment format type .
More see Smalltalk imageFormatVersion http://wiki.squeak.org/squeak/
873
On 4/30/18, Tm Jhnsn digit@sonic.net wrote: > Hi Hannes, > > In 5.1 there is SmartRefStream>>#initKnownRenames which includes: > > at: #AlansTextPlusMorph put: #TextPlusMorph; > > HTH, > Tim > > > On 4/30/2018 7:33 AM, H. Hirzel wrote: >> Hi Bob >> >> It still loads fine in Squeak 3.2. Thank you. >> >> In Squeak 3.8.1 the SmartRefStream needs a new class for >> >> AlansTextPlusMorph >> >> >> SmartRefStream>> >> alansTextPlusMorphbosfcebbmsopssrsggshtt0 >> >> ^ PutNewClassHere >> >> >> Any suggestions what I should put as a new class? >> >> Regards >> Hannes >> >> >> >> >> On 4/30/18, Bob Arning arning315@comcast.net wrote: >>> Here is the latest one I have. It loaded fine in 3.2. >>> >>> >>> On 4/29/18 10:20 PM, H. Hirzel wrote: >>>> Hello >>>> >>>> Is there a backup-copy/mirror available of the >>>> >>>> MorphLayoutArticle >>>> >>>> project which was on Bob's SuperSwiki? [1] >>>> >>>> Regards >>>> Hannes >>>> >>>> >>>> >>>> ---------------------------------- >>>> [1] >>>> http://wiki.squeak.org/squeak/2141 >>>> >>>> How to lay out submorphs >>>> >>>> Please read the excellent dynamic essay project >>>> MorphLayoutArticle >>>> (broken link) on Bob's SuperSwiki. >>>> >>>> Every Morph now has the capability to layout it's submorphs. >>>> (Previously, only the AlignmentMorph could implement layout
policies.
>>>> AlignmentMorph is still available because of compatibility
reasons and
>>>> some utility methods it implements. >>>> >>> >>> >>> > >
-- _,,,^..^,,,_ best, Eliot
Also note that after some time the project was no longer frozen and it was possible to exit the project.
On 6/28/18, H. Hirzel hannes.hirzel@gmail.com wrote:
Update / Retest:
Page 1183: Etoys ProjectLoading tests in 5.2 http://wiki.squeak.org/squeak/1183
lists 10 projects (*.pr files) from SqueakLand which load fine! This is due to recent work on project loading.
The file MorphLayoutArticle.pr still gives problems.
Loading MorphLayoutArticle.pr (Test 11 on page 1183) brings up with an emergency evaluator. After reverting the last method with it the project shows up (see screen shot) but the project is frozen.
An earlier analysis by Karl shows that the following morphs are involved
Player5 -- 1 instance, named yellowRectangle Player6067 -- 1 instance, named greenRect Player6466 -- 1 instance, named Parent1 Player65 -- 1 instance, named Parent2 Player59 -- 1 instance, named yellowRect Player8 -- 1 instance, named redRect
Further analysis is needed.
--Hannes
On 5/6/18, karl ramberg karlramberg@gmail.com wrote:
The drawing error was because of wrong color depth. When I change to 16 bit before loading project it comes up fine :-)
Now I have to look at the code that mangles the GeeMailMorph so badly
Best, Karl
On Thu, May 3, 2018 at 9:12 PM, karl ramberg karlramberg@gmail.com wrote:
I have added the stuff I had in the change set. I downloaded the latest VM squeak.cog.spur_win64x64_201805030152.zip https://bintray.com/opensmalltalk/vm/download_file?file_path=squeak.cog.spur_win64x64_201805030152.zip
I still get a drawing error with the opened project when loaded. It's like resolution is screwed and screen is displayed in 4 quadrants. See attached screen shot. I'm on windows.
Best, Karl
On Thu, May 3, 2018 at 4:48 AM, Eliot Miranda eliot.miranda@gmail.com wrote:
Hi Karl,
On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg karlramberg@gmail.com wrote:
This change set make the project ALMOST load in a 32 bit 6.0 Squeak image. But there are some conversion issues I have not figured out.
NOTE: Image will probably crash. USE WITH CARE
Using all of your change set except ObjectScanner>>#scanFrom:, and the changes I committed to trunk today I was able to load MorphLayoutArticle.019.pr into a 64-bit Spur image (thanks Bert!!). The image locks up due to a drawing error in GeeMailMorph(ScrollPane)>>innerBounds where UndefinedObject doesn't understand #-. So things are close. May I suggest that you add RenamedSourceClassReader in System-Object Storage, and move the other segment-specific scanning methods (ClassCategoryReader>>#scanFromNoCompile:[forSegment:]) too?
This is cool :-)
BTW, there was a compiler bug with the native image segment loading code in 64-bit Spur. This is fixed if you grab the last 64-bit Spur VMs from Travis.
Best, Karl
On Mon, Apr 30, 2018 at 3:37 PM, H. Hirzel hannes.hirzel@gmail.com wrote:
Unfortunately the dynamic essay MorphLayoutArticle.019.pr did not load in a fairly recent Squeak 6.0a trunk image.
an OrderedCollection(ImageSegment(Object)>>doesNotUnderstand: #scanFrom: ObjectScanner>>scanFrom: [] in [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: BlockClosure>>on:do: [] in MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: Context>>handleSignal: Context>>handleSignal: Context>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ByteString(String)>>displayProgressAt:from:to:during: ByteString(String)>>displayProgressFrom:to:during: MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: MultiByteBinaryOrTextStream(PositionableStream)>>fileIn MultiByteBinaryOrTextStream>>fileInProject MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [] in [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>on:do: [] in ProjectLoading class>>fileInName:archive:morphOrList: BlockClosure>>ensure: ProjectLoading class>>fileInName:archive:morphOrList: ProjectLoading class>>openName:stream:fromDirectory:withProjectView:clearOriginFlag: ProjectLoading class>>openName:stream:fromDirectory:withProjectView: [] in ProjectLoading class>>openOn: BlockClosure>>on:do: [] in ByteString(String)>>displaySequentialProgress: [] in [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>on:do: [] in MorphicUIManager>>displayProgress:at:from:to:during: BlockClosure>>ensure: MorphicUIManager>>displayProgress:at:from:to:during: ProgressInitiationException>>defaultResumeValue ProgressInitiationException(Exception)>>resume ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ProgressInitiationException class>>display:from:to:during: ByteString(String)>>displaySequentialProgress: ProjectLoading class>>openOn: [] in ExternalDropHandler class>>defaultProjectHandler ExternalDropHandler>>handle:in:dropEvent: PasteUpMorph>>handleDroppedItem:event: [] in PasteUpMorph>>dropFiles: BlockClosure>>ensure: PasteUpMorph>>dropFiles: PasteUpMorph(Morph)>>handleDropFiles: DropFilesEvent>>sentTo: PasteUpMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PasteUpMorph(Morph)>>processEvent:using: [] in PasteUpMorph>>processEvent:using: BlockClosure>>ensure: PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent: [] in [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: DropFilesEvent(MorphicEvent)>>becomeActiveDuring: [] in [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: HandMorph>>becomeActiveDuring: [] in HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendEvent:focus:clear: HandMorph>>sendEvent:focus: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in MorphicProject>>spawnNewProcess [] in BlockClosure>>newProcess)
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote: > Hi Tim > > Implementing your suggestion [1] worked to make > MorphLayoutArticle.019.pr load into > Squeak 3.8.1, see screen shot. > > What I aiming at next at is to load it into Squeak 6.0a trunk. I > assume this should be possible quite easily because of the > enhancements done last year [2][3]. > > Regards > Hannes > > > > > > [1] Extend #initKnownRenames > > SmartRefStream>>initKnownRenames > renamed > at: #AlansTextPlusMorph put: #TextPlusMorph; > at: #FlasherMorph put: #Flasher; > yourself > > made MorphLayoutArticle.019.pr to load. > > > [2] 6502 format > http://wiki.squeak.org/squeak/6502 > > ImageFormat of the interpreter Virtual Machine. > May be loaded transparently into Squeak 6.0a through the help of > LegacyImageSegment. > > [3] > http://wiki.squeak.org/squeak/6579 > LegacyImageSegment > A new class introduced in March 2017 in Squeak 6.0a to enable the > loading of the older 6502 image segment format type . > > More see Smalltalk imageFormatVersion > http://wiki.squeak.org/squeak/ 873 > > > On 4/30/18, Tm Jhnsn digit@sonic.net wrote: >> Hi Hannes, >> >> In 5.1 there is SmartRefStream>>#initKnownRenames which includes: >> >> at: #AlansTextPlusMorph put: #TextPlusMorph; >> >> HTH, >> Tim >> >> >> On 4/30/2018 7:33 AM, H. Hirzel wrote: >>> Hi Bob >>> >>> It still loads fine in Squeak 3.2. Thank you. >>> >>> In Squeak 3.8.1 the SmartRefStream needs a new class for >>> >>> AlansTextPlusMorph >>> >>> >>> SmartRefStream>> >>> alansTextPlusMorphbosfcebbmsopssrsggshtt0 >>> >>> ^ PutNewClassHere >>> >>> >>> Any suggestions what I should put as a new class? >>> >>> Regards >>> Hannes >>> >>> >>> >>> >>> On 4/30/18, Bob Arning arning315@comcast.net wrote: >>>> Here is the latest one I have. It loaded fine in 3.2. >>>> >>>> >>>> On 4/29/18 10:20 PM, H. Hirzel wrote: >>>>> Hello >>>>> >>>>> Is there a backup-copy/mirror available of the >>>>> >>>>> MorphLayoutArticle >>>>> >>>>> project which was on Bob's SuperSwiki? [1] >>>>> >>>>> Regards >>>>> Hannes >>>>> >>>>> >>>>> >>>>> ---------------------------------- >>>>> [1] >>>>> http://wiki.squeak.org/squeak/2141 >>>>> >>>>> How to lay out submorphs >>>>> >>>>> Please read the excellent dynamic essay project >>>>> MorphLayoutArticle >>>>> (broken link) on Bob's SuperSwiki. >>>>> >>>>> Every Morph now has the capability to layout it's submorphs. >>>>> (Previously, only the AlignmentMorph could implement layout policies. >>>>> AlignmentMorph is still available because of compatibility reasons and >>>>> some utility methods it implements. >>>>> >>>> >>>> >>>> >> >> >
-- _,,,^..^,,,_ best, Eliot
As I have a huge collection of old stuff, here I attach which clases was in 3.2 and was ripped or changed later In the past my idea is to have some on web like we made for 3.10
http://ftp.squeak.org/Experiments/3dot8/ http://ftp.squeak.org/Experiments/3dot9/ http://ftp.squeak.org/Experiments/3dot10/
Later I extent this in my http://squeakros.org/4dot4 http://squeakros.org/4dot5 The idea is with a recursive dnu mechanisms you go back from XdotY until you found the class.
Today I open my first FunSqueak3.10, never published and was able to load the MorphLayoutArticle.019.pr
In FunSqueak 4.2, 4.3 and 4.6 fails and using Karl ImageSegmentLoading.3.cs also fail. Some with Cog, maybe ?
On 30/04/2018, 15:17, "karl ramberg" karlramberg@gmail.com wrote:
This change set make the project ALMOST load in a 32 bit 6.0 Squeak image. But there are some conversion issues I have not figured out.
On Thu, May 03, 2018 at 09:30:10AM -0300, Edgar J. De Cleene wrote:
As I have a huge collection of old stuff, here I attach which clases was in 3.2 and was ripped or changed later In the past my idea is to have some on web like we made for 3.10
http://ftp.squeak.org/Experiments/3dot8/ http://ftp.squeak.org/Experiments/3dot9/ http://ftp.squeak.org/Experiments/3dot10/
Later I extent this in my http://squeakros.org/4dot4 http://squeakros.org/4dot5 The idea is with a recursive dnu mechanisms you go back from XdotY until you found the class.
This is a really interesting idea.
Backward compatibility is a hard problem to solve, but it is a really interesting challenge. I love being able to explore old Squeak images and projects, it is like having a reference library for ideas and experiments.
Dave
Today I open my first FunSqueak3.10, never published and was able to load the MorphLayoutArticle.019.pr
In FunSqueak 4.2, 4.3 and 4.6 fails and using Karl ImageSegmentLoading.3.cs also fail. Some with Cog, maybe ?
On 30/04/2018, 15:17, "karl ramberg" karlramberg@gmail.com wrote:
This change set make the project ALMOST load in a 32 bit 6.0 Squeak image. But there are some conversion issues I have not figured out.
'From Squeak3.2gamma of 15 January 2002 [latest update: #4743] on 3 May 2018 at 8:21:55 am'!
ScrollPane subclass: #AlansTextPlusMorph instanceVariableNames: 'theTextMorph thePasteUp ' classVariableNames: '' poolDictionaries: '' category: 'Morphic-GeeMail'! !AlansTextPlusMorph commentStamp: '<historical>' prior: 0! The code is here, but the class you really want to use is GeeMailMorph (nicer name).!
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 5/3/2001 17:50'! addCustomMenuItems: aCustomMenu hand: aHandMorph
super addCustomMenuItems: aCustomMenu hand: aHandMorph. self addGeeMailMenuItemsTo: aCustomMenu.! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 5/3/2001 17:49'! addGeeMailMenuItemsTo: menu
self flag: #convertToBook. "<-- no longer used" menu addUpdating: #showPageBreaksString action: #togglePageBreaks; addUpdating: #keepScrollbarString action: #toggleKeepScrollbar; addLine; add: 'Print...' action: #printPSToFile; addLine. thePasteUp allTextPlusMorphs size = 1 ifTrue: [ menu add: 'make 1-column book' selector: #makeBookStyle: argument: 1. menu add: 'make 2-column book' selector: #makeBookStyle: argument: 2. menu add: 'make 3-column book' selector: #makeBookStyle: argument: 3. menu add: 'make 4-column book' selector: #makeBookStyle: argument: 4. ] ifFalse: [ menu add: 'make a galley of me' action: #makeGalleyStyle. ]. ^menu! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 10/30/2000 15:06'! adjustPasteUpSize
| newBottom |
thePasteUp ifNil: [^self]. newBottom _ thePasteUp bottom max: thePasteUp boundingBoxOfSubmorphs bottom + 20. thePasteUp height: (newBottom - thePasteUp top max: self height). thePasteUp width: (thePasteUp width max: scroller innerBounds width - 5).! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 5/3/2001 17:42'! allTextPlusMorphs
^thePasteUp allTextPlusMorphs! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 10/3/2000 12:03'! convertToBook
GeeBookMorph new geeMail: thePasteUp; rebuildPages; openInWorld! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 3/5/2001 23:19'! doLayoutIn: layoutBounds "layout has changed. update scroll deltas or whatever else"
self adjustPasteUpSize. scroller ifNotNil: [self setScrollDeltas]. super doLayoutIn: layoutBounds. ! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'JW 2/21/2001 22:54'! extraScrollRange ^ bounds height ! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 5/3/2001 17:50'! getMenu: shiftKeyState
| menu |
self flag: #convertToBook. "<-- no longer used"
menu _ MenuMorph new defaultTarget: self. self addGeeMailMenuItemsTo: menu. ^menu! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 5/3/2001 17:33'! handlesMouseDown: evt
^evt yellowButtonPressed ! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 2/21/2001 12:57'! hideScrollBar
self keepScrollBarAlways ifTrue: [^self]. ^super hideScrollBar! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 5/2/2001 14:11'! initialize
super initialize. color _ Color white. thePasteUp _ TextPlusPasteUpMorph new borderWidth: 0; color: color. scroller addMorph: thePasteUp. self position: 100@100. self extent: Display extent // 3. self useRoundedCorners. ! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 2/21/2001 12:57'! keepScrollBarAlways
^self valueOfProperty: #keepScrollBarAlways ifAbsent: [false]! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 2/21/2001 12:59'! keepScrollbarString
^self keepScrollBarAlways ifTrue: ['<on>scrollbar stays up'] ifFalse: ['<off>scrollbar stays up']! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 12/5/2001 11:15'! makeBookStyle: nColumns
| all totalWidth second columnWidth currY prev columnHeight currX currColumn pageBreakRectangles r rm columnGap pageGap starter |
pageBreakRectangles _ OrderedCollection new. all _ thePasteUp allTextPlusMorphs. all size = 1 ifFalse: [^self]. Cursor wait show. starter _ prev _ all first. totalWidth _ self width - 16. columnGap _ 32. pageGap _ 16. columnWidth _ totalWidth - (columnGap * (nColumns - 1)) // nColumns. columnHeight _ self height - 12. currY _ 4. currX _ 4. currColumn _ 1. prev position: currX@currY; width: columnWidth. [ second _ prev makeSuccessorMorph. thePasteUp addMorphBack: second. prev setProperty: #autoFitContents toValue: false; height: columnHeight. (currColumn _ currColumn + 1) <= nColumns ifTrue: [ currX _ currX + columnWidth + columnGap. ] ifFalse: [ r _ 4@(prev bottom + 4) corner: (self right - 4 @ (prev bottom + pageGap - 4)). rm _ RectangleMorph new bounds: r; color: (Color gray alpha: 0.3); borderWidth: 0. pageBreakRectangles add: rm beSticky. thePasteUp addMorphBack: rm. currColumn _ 1. currX _ 4. currY _ prev bottom + pageGap. ]. second autoFit: true; position: currX@currY; width: columnWidth. prev recomposeChain. "was commented" prev _ second. prev height > columnHeight ] whileTrue. prev autoFit: true. thePasteUp height: (prev bottom + 20 - self top). self layoutChanged. self setProperty: #pageBreakRectangles toValue: pageBreakRectangles. thePasteUp allTextPlusMorphs do: [ :each | each repositionAnchoredMorphs ]. Cursor normal show. ! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 11/30/2001 12:12'! makeGalleyStyle
| all first theRest |
(self valueOfProperty: #pageBreakRectangles ifAbsent: [#()]) do: [ :each | each delete ]. self removeProperty: #pageBreakRectangles. all _ thePasteUp allTextPlusMorphs. first _ all select: [ :x | x predecessor isNil]. first size = 1 ifFalse: [^self]. Cursor wait show. first _ first first. theRest _ all reject: [ :x | x predecessor isNil]. theRest do: [ :each | each delete]. first autoFit: true. first width: self width - 8. first recomposeChain. first repositionAnchoredMorphs. Cursor normal show. ! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'ar 10/6/2000 16:36'! mouseUp: evt inMorph: aMorph
evt hand grabMorph: aMorph "old instances may have a handler we no longer use"! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 5/7/2001 13:25'! pageRectanglesForPrinting
| pageBreaks prevBottom pageRects r |
pageBreaks _ self valueOfProperty: #pageBreakRectangles ifAbsent: [^nil]. prevBottom _ 0. pageRects _ pageBreaks collect: [ :each | r _ 0@prevBottom corner: self width @ each top. prevBottom _ each bottom. r ]. pageRects add: (0@prevBottom corner: self width @ thePasteUp bottom). ^pageRects! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 5/7/2001 12:20'! printPSToFile
thePasteUp printer geeMail: self; doPages! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 5/3/2001 16:16'! scrollBarValue: scrollValue
| newPt pageBreaks topOfPage |
scroller hasSubmorphs ifFalse: [^ self]. newPt _ -3 @ (self leftoverScrollRange * scrollValue).
pageBreaks _ self valueOfProperty: #pageBreakRectangles ifAbsent: [#()]. pageBreaks isEmpty ifTrue: [ ^scroller offset: newPt. ]. topOfPage _ pageBreaks inject: (0@0 corner: 0@0) into: [ :closest :each | (each bottom - newPt y) abs < (closest bottom - newPt y) abs ifTrue: [ each ] ifFalse: [ closest ]. ]. topOfPage ifNotNil: [ newPt _ newPt x @ topOfPage bottom. scrollBar value: newPt y / self leftoverScrollRange. ]. scroller offset: newPt.! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 5/4/2001 09:21'! scrollSelectionIntoView: event alignTop: alignTop inTextMorph: tm "Scroll my text into view if necessary and return true, else return false"
| selRects delta selRect rectToTest transform cpHere |
selRects _ tm paragraph selectionRects. selRects isEmpty ifTrue: [^ false]. rectToTest _ selRects first merge: selRects last. transform _ scroller transformFrom: self. (event notNil and: [event isMouse and: [event anyButtonPressed]]) ifTrue: "Check for autoscroll" [cpHere _ transform localPointToGlobal: event cursorPoint. cpHere y <= self top ifTrue: [rectToTest _ selRects first topLeft extent: 2@2] ifFalse: [cpHere y >= self bottom ifTrue: [rectToTest _ selRects last bottomRight extent: 2@2] ifFalse: [^ false]]]. selRect _ transform localBoundsToGlobal: rectToTest. selRect height > bounds height ifTrue: [^ false]. "Would not fit, even if we tried to scroll" alignTop ifTrue: [ self scrollBy: 0@(bounds top - selRect top). ^ true ]. selRect bottom > bounds bottom ifTrue: [ self scrollBy: 0@(bounds bottom - selRect bottom - 30). ^ true ]. (delta _ selRect amountToTranslateWithin: self bounds) y ~= 0 ifTrue: [ "Scroll end of selection into view if necessary" self scrollBy: 0@delta y. ^ true]. ^ false! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 5/3/2001 13:06'! scrollToPage: pageNumber
| rects oneRect |
rects _ self valueOfProperty: #pageBreakRectangles ifAbsent: [#()]. oneRect _ rects at: pageNumber - 1 ifAbsent: [0@0 extent: 0@0]. self scrollToYAbsolute: oneRect bottom. ! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 5/3/2001 13:01'! scrollToYAbsolute: yValue
| transform transformedPoint |
transform _ scroller transformFrom: self. transformedPoint _ transform localPointToGlobal: 0@yValue.
self scrollBy: 0@(bounds top - transformedPoint y). ! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 2/20/2001 17:10'! showPageBreaksString
^(thePasteUp ifNil: [^'???']) showPageBreaksString! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 2/21/2001 12:58'! toggleKeepScrollbar
self setProperty: #keepScrollBarAlways toValue: self keepScrollBarAlways not! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 2/20/2001 17:12'! togglePageBreaks
(thePasteUp ifNil: [^self]) togglePageBreaks! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 9/7/2000 11:42'! wantsDroppedMorph: aMorph event: evt "Return true if the receiver wishes to accept the given morph, which is being dropped by a hand in response to the given event. The default implementation returns false. NOTE: the event is assumed to be in global (world) coordinates."
^false! !
!AlansTextPlusMorph methodsFor: 'as yet unclassified' stamp: 'RAA 9/6/2000 16:25'! wantsSlot
^false! !
"-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!
AlansTextPlusMorph class instanceVariableNames: ''!
!AlansTextPlusMorph class methodsFor: 'as yet unclassified' stamp: 'RAA 9/10/2000 12:52'! includeInNewMorphMenu
^ false "to encourage the use of GeeMail instead"! !
'From Squeak3.2gamma of 15 January 2002 [latest update: #4743] on 3 May 2018 at 8:33:49 am'!
TextAnchor subclass: #TextAnchorPlus instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Morphic-GeeMail'!
!TextAnchorPlus methodsFor: 'as yet unclassified' stamp: 'ar 12/31/2001 02:22'! emphasizeScanner: scanner
anchoredMorph ifNil: [^self]. (anchoredMorph owner isKindOf: TextPlusPasteUpMorph) ifFalse: [^anchoredMorph _ nil]. "follwing has been removed - there was no implementation for it" "scanner setYFor: anchoredMorph"
! !
'From Squeak3.2gamma of 15 January 2002 [latest update: #4743] on 3 May 2018 at 8:40:41 am'!
ClassCategoryReader subclass: #RenamedClassSourceReader instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Kernel-Classes'!
!RenamedClassSourceReader methodsFor: 'as yet unclassified' stamp: 'RAA 6/22/2000 15:14'! scanFrom: aStream
self flag: #bob. "should this ever happen?" self halt.! !
!RenamedClassSourceReader methodsFor: 'as yet unclassified' stamp: 'RAA 6/22/2000 16:28'! scanFromNoCompile: aStream
self flag: #bob. "should this ever happen?" self halt.! !
!RenamedClassSourceReader methodsFor: 'as yet unclassified' stamp: 'RAA 6/22/2000 16:35'! scanFromNoCompile: aStream forSegment: anImageSegment "Just move the source code for the methods from aStream." | methodText d |
[ (methodText _ aStream nextChunkText) size > 0 ] whileTrue: [ (SourceFiles at: 2) ifNotNil: [ d _ Dictionary new. d at: #oldClassName put: class; "may be 'Player1' or 'Player1 class'" at: #methodText put: methodText; at: #changeStamp put: changeStamp; at: #category put: category. anImageSegment acceptSingleMethodSource: d. ] ]! !
"-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!
RenamedClassSourceReader class instanceVariableNames: ''!
!RenamedClassSourceReader class methodsFor: 'as yet unclassified' stamp: 'RAA 6/22/2000 15:35'! formerClassName: formerClassName methodsFor: aCategory stamp: aString
^self new setClass: formerClassName category: aCategory changeStamp: aString! !
!RenamedClassSourceReader class methodsFor: 'as yet unclassified' stamp: 'RAA 6/22/2000 15:18'! scanner
^self new! !
I upload a video of 2009 showing how load Etoys in a .image without https://youtu.be/5aMIrkVDC_g
Looking old videos fos some more and add to You Tube. If not try to made some experiment with modified 6.0 becoming "SqueakRosCore5dot2" where I put my own crazy ideas and share with all
On 03/05/2018, 21:03, "David T. Lewis" lewis@mail.msen.com wrote:
This is a really interesting idea.
Backward compatibility is a hard problem
to solve, but it is a really
interesting challenge. I love being able to
explore old Squeak images
and projects, it is like having a reference library
for ideas and experiments.
Dave
As I have a huge collection of old stuff, here I attach which clases was in 3.2 and was ripped or changed later In the past my idea is to have some on web like we made for 3.10
http://ftp.squeak.org/Experiments/3dot8/ http://ftp.squeak.org/Experiments/3dot9/ http://ftp.squeak.org/Experiments/3dot10/
Later I extent this in my http://squeakros.org/4dot4 http://squeakros.org/4dot5 The idea is with a recursive dnu mechanisms you go back from XdotY until you found the class.
This is a really interesting idea.
Backward compatibility is a hard problem to solve, but it is a really interesting challenge. I love being able to explore old Squeak images and projects, it is like having a reference library for ideas and experiments.
+1
Stef
GeeMailMorph would be the likely one
On 4/30/18 8:33 AM, H. Hirzel wrote:
Hi Bob
It still loads fine in Squeak 3.2. Thank you.
In Squeak 3.8.1 the SmartRefStream needs a new class for
AlansTextPlusMorph
SmartRefStream>> alansTextPlusMorphbosfcebbmsopssrsggshtt0
^ PutNewClassHere
Any suggestions what I should put as a new class?
Regards Hannes
On 4/30/18, Bob Arning arning315@comcast.net wrote:
Here is the latest one I have. It loaded fine in 3.2.
On 4/29/18 10:20 PM, H. Hirzel wrote:
Hello
Is there a backup-copy/mirror available of the
MorphLayoutArticle
project which was on Bob's SuperSwiki? [1]
Regards Hannes
[1] http://wiki.squeak.org/squeak/2141
How to lay out submorphs
Please read the excellent dynamic essay project MorphLayoutArticle (broken link) on Bob's SuperSwiki.
Every Morph now has the capability to layout it's submorphs. (Previously, only the AlignmentMorph could implement layout policies. AlignmentMorph is still available because of compatibility reasons and some utility methods it implements.
I will leave the server up for a short while in case you would like to harvest anything else
http://73.172.58.69:9116/super
On 4/29/18 10:20 PM, H. Hirzel wrote:
Hello
Is there a backup-copy/mirror available of the
MorphLayoutArticle
project which was on Bob's SuperSwiki? [1]
Regards Hannes
[1] http://wiki.squeak.org/squeak/2141
How to lay out submorphs
Please read the excellent dynamic essay project MorphLayoutArticle (broken link) on Bob's SuperSwiki.
Every Morph now has the capability to layout it's submorphs. (Previously, only the AlignmentMorph could implement layout policies. AlignmentMorph is still available because of compatibility reasons and some utility methods it implements.
Thank you, Bob
a short while = 24 hours?
Interesting content : Highlights http://73.172.58.69:9116/super/35
HH
On 4/30/18, Bob Arning arning315@comcast.net wrote:
I will leave the server up for a short while in case you would like to harvest anything else
http://73.172.58.69:9116/super
On 4/29/18 10:20 PM, H. Hirzel wrote:
Hello
Is there a backup-copy/mirror available of the
MorphLayoutArticle
project which was on Bob's SuperSwiki? [1]
Regards Hannes
[1] http://wiki.squeak.org/squeak/2141
How to lay out submorphs
Please read the excellent dynamic essay project MorphLayoutArticle (broken link) on Bob's SuperSwiki.
Every Morph now has the capability to layout it's submorphs. (Previously, only the AlignmentMorph could implement layout policies. AlignmentMorph is still available because of compatibility reasons and some utility methods it implements.
And this one would also be fine to copied to http://wiki.squeak.org/squeak/
project management http://73.172.58.69:9116/super/39
Description: Provides capability to perform some useful project functions. A rename function is provided in the primary projects... menu. It has also been added to the Publish menu.
A tool to easily move projects around between parents has been added.
And a cleanup facility for aligning morphic project views on the desktop either horizontal or vertical, depending on a user set preference.
A "scrub projects" menu item has been added to the projects menu too. It searches for projects that have defined parents which themselves do not include the project as a child, and removes them. I found tyhis got rid of a lot of the dangling projects from aborts and other problems encoutered while transfering projects to the super-swiki.
Author: Stephan B. Wessels
http://73.172.58.69:9116/super/39
I'll do it later today.
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
Thank you, Bob
a short while = 24 hours?
Interesting content : Highlights http://73.172.58.69:9116/super/35
HH
On 4/30/18, Bob Arning arning315@comcast.net wrote:
I will leave the server up for a short while in case you would like to harvest anything else
http://73.172.58.69:9116/super
On 4/29/18 10:20 PM, H. Hirzel wrote:
Hello
Is there a backup-copy/mirror available of the
MorphLayoutArticle
project which was on Bob's SuperSwiki? [1]
Regards Hannes
[1] http://wiki.squeak.org/squeak/2141
How to lay out submorphs
Please read the excellent dynamic essay project MorphLayoutArticle (broken link) on Bob's SuperSwiki.
Every Morph now has the capability to layout it's submorphs. (Previously, only the AlignmentMorph could implement layout policies. AlignmentMorph is still available because of compatibility reasons and some utility methods it implements.
A gallery of 477 Projects
http://73.172.58.69:9116/super/gallery1
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
And this one would also be fine to copied to http://wiki.squeak.org/squeak/
project management http://73.172.58.69:9116/super/39
Description: Provides capability to perform some useful project functions. A rename function is provided in the primary projects... menu. It has also been added to the Publish menu.
A tool to easily move projects around between parents has been added.
And a cleanup facility for aligning morphic project views on the desktop either horizontal or vertical, depending on a user set preference.
A "scrub projects" menu item has been added to the projects menu too. It searches for projects that have defined parents which themselves do not include the project as a child, and removes them. I found tyhis got rid of a lot of the dangling projects from aborts and other problems encoutered while transfering projects to the super-swiki.
Author: Stephan B. Wessels
http://73.172.58.69:9116/super/39
I'll do it later today.
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
Thank you, Bob
a short while = 24 hours?
Interesting content : Highlights http://73.172.58.69:9116/super/35
HH
On 4/30/18, Bob Arning arning315@comcast.net wrote:
I will leave the server up for a short while in case you would like to harvest anything else
http://73.172.58.69:9116/super
On 4/29/18 10:20 PM, H. Hirzel wrote:
Hello
Is there a backup-copy/mirror available of the
MorphLayoutArticle
project which was on Bob's SuperSwiki? [1]
Regards Hannes
[1] http://wiki.squeak.org/squeak/2141
How to lay out submorphs
Please read the excellent dynamic essay project MorphLayoutArticle (broken link) on Bob's SuperSwiki.
Every Morph now has the capability to layout it's submorphs. (Previously, only the AlignmentMorph could implement layout policies. AlignmentMorph is still available because of compatibility reasons and some utility methods it implements.
Hi Hannes,
On Mon, Apr 30, 2018 at 4:24 AM, H. Hirzel hannes.hirzel@gmail.com wrote:
A gallery of 477 Projects
Has anyone crawled the page to download all the projects or provide URLs to them? I'd like to test this and see which ones can be fixed. I introduced Spur, so I broke all this, and so I should at least be part of the fix.
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
And this one would also be fine to copied to
http://wiki.squeak.org/squeak/
project management http://73.172.58.69:9116/super/39
Description: Provides capability to perform some useful project
functions.
A rename function is provided in the primary projects... menu. It has also been added to the Publish menu.
A tool to easily move projects around between parents has been added.
And a cleanup facility for aligning morphic project views on the desktop either horizontal or vertical, depending on a user set preference.
A "scrub projects" menu item has been added to the projects menu too. It searches for projects that have defined parents which themselves do not include the project as a child, and removes them. I found tyhis got rid
of
a lot of the dangling projects from aborts and other problems encoutered while transfering projects to the super-swiki.
Author: Stephan B. Wessels
http://73.172.58.69:9116/super/39
I'll do it later today.
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
Thank you, Bob
a short while = 24 hours?
Interesting content : Highlights http://73.172.58.69:9116/super/35
HH
On 4/30/18, Bob Arning arning315@comcast.net wrote:
I will leave the server up for a short while in case you would like to harvest anything else
http://73.172.58.69:9116/super
On 4/29/18 10:20 PM, H. Hirzel wrote:
Hello
Is there a backup-copy/mirror available of the
MorphLayoutArticle
project which was on Bob's SuperSwiki? [1]
Regards Hannes
[1] http://wiki.squeak.org/squeak/2141
How to lay out submorphs
Please read the excellent dynamic essay project MorphLayoutArticle (broken link) on Bob's SuperSwiki.
Every Morph now has the capability to layout it's submorphs. (Previously, only the AlignmentMorph could implement layout policies. AlignmentMorph is still available because of compatibility reasons and some utility methods it implements.
I have all and plan use as test with Karl code as starting
Enviado desde mi iPhone
El 2 may. 2018, a la(s) 13:52, Eliot Miranda eliot.miranda@gmail.com escribió:
Hi Hannes,
On Mon, Apr 30, 2018 at 4:24 AM, H. Hirzel hannes.hirzel@gmail.com wrote: A gallery of 477 Projects
Has anyone crawled the page to download all the projects or provide URLs to them? I'd like to test this and see which ones can be fixed. I introduced Spur, so I broke all this, and so I should at least be part of the fix.
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
And this one would also be fine to copied to http://wiki.squeak.org/squeak/
project management http://73.172.58.69:9116/super/39
Description: Provides capability to perform some useful project functions. A rename function is provided in the primary projects... menu. It has also been added to the Publish menu.
A tool to easily move projects around between parents has been added.
And a cleanup facility for aligning morphic project views on the desktop either horizontal or vertical, depending on a user set preference.
A "scrub projects" menu item has been added to the projects menu too. It searches for projects that have defined parents which themselves do not include the project as a child, and removes them. I found tyhis got rid of a lot of the dangling projects from aborts and other problems encoutered while transfering projects to the super-swiki.
Author: Stephan B. Wessels
http://73.172.58.69:9116/super/39
I'll do it later today.
On 4/30/18, H. Hirzel hannes.hirzel@gmail.com wrote:
Thank you, Bob
a short while = 24 hours?
Interesting content : Highlights http://73.172.58.69:9116/super/35
HH
On 4/30/18, Bob Arning arning315@comcast.net wrote:
I will leave the server up for a short while in case you would like to harvest anything else
http://73.172.58.69:9116/super
On 4/29/18 10:20 PM, H. Hirzel wrote:
Hello
Is there a backup-copy/mirror available of the
MorphLayoutArticle
project which was on Bob's SuperSwiki? [1]
Regards Hannes
[1] http://wiki.squeak.org/squeak/2141
How to lay out submorphs
Please read the excellent dynamic essay project MorphLayoutArticle (broken link) on Bob's SuperSwiki.
Every Morph now has the capability to layout it's submorphs. (Previously, only the AlignmentMorph could implement layout policies. AlignmentMorph is still available because of compatibility reasons and some utility methods it implements.
-- _,,,^..^,,,_ best, Eliot
Ah, nice ! Lots of fun stuff here :-)
Best, Karl
On Mon, Apr 30, 2018 at 12:39 PM, Bob Arning arning315@comcast.net wrote:
I will leave the server up for a short while in case you would like to harvest anything else
http://73.172.58.69:9116/super
On 4/29/18 10:20 PM, H. Hirzel wrote:
Hello
Is there a backup-copy/mirror available of the
MorphLayoutArticle
project which was on Bob's SuperSwiki? [1]
Regards Hannes
[1]http://wiki.squeak.org/squeak/2141
How to lay out submorphs
Please read the excellent dynamic essay project MorphLayoutArticle (broken link) on Bob's SuperSwiki.
Every Morph now has the capability to layout it's submorphs. (Previously, only the AlignmentMorph could implement layout policies. AlignmentMorph is still available because of compatibility reasons and some utility methods it implements.
squeak-dev@lists.squeakfoundation.org