Dynamic essay project MorphLayoutArticle on Bob's SuperSwiki?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
36 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: Dynamic essay project MorphLayoutArticle on Bob's SuperSwiki?

Eliot Miranda-2
Hi Karl,

On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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


Reply | Threaded
Open this post in threaded view
|

Re: Dynamic essay project MorphLayoutArticle on Bob's SuperSwiki?

Eliot Miranda-2
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 <[hidden email]> 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 <[hidden email]> wrote:
Hi Karl,

On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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


Reply | Threaded
Open this post in threaded view
|

Re: Dynamic essay project MorphLayoutArticle on Bob's SuperSwiki?

David T. Lewis
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 <[hidden email]> 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 <[hidden email]>
> wrote:
>
> > Hi Karl,
> >
> > On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg <[hidden email]>
> > 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 <[hidden email]>
> >> 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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

Reply | Threaded
Open this post in threaded view
|

Re: Dynamic essay project MorphLayoutArticle on Bob's SuperSwiki?

Eliot Miranda-2
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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]>
> wrote:
>
> > Hi Karl,
> >
> > On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg <[hidden email]>
> > 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 <[hidden email]>
> >> 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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


Reply | Threaded
Open this post in threaded view
|

Re: Dynamic essay project MorphLayoutArticle on Bob's SuperSwiki?

marcel.taeumel
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 <[hidden email]>:

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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]>
> wrote:
>
> > Hi Karl,
> >
> > On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg <[hidden email]>
> > 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 <[hidden email]>
> >> 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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


Reply | Threaded
Open this post in threaded view
|

Re: Dynamic essay project MorphLayoutArticle on Bob's SuperSwiki?

David T. Lewis
In reply to this post by Eliot Miranda-2
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 <[hidden email]> 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 <[hidden email]>
> > 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 <[hidden email]>
> > > wrote:
> > >
> > > > Hi Karl,
> > > >
> > > > On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg <[hidden email]>
> > > > 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 <[hidden email]>
> > > >> 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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

>


Reply | Threaded
Open this post in threaded view
|

Re: Dynamic essay project MorphLayoutArticle on Bob's SuperSwiki?

Edgar De Cleene
In reply to this post by Karl Ramberg
Re: [squeak-dev] Dynamic essay project MorphLayoutArticle on Bob's SuperSwiki? 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" <[hidden email]> 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.



AlansTextPlusMorph.st (14K) Download Attachment
TextAnchorPlus.st (774 bytes) Download Attachment
RenamedClassSourceReader.st (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Dynamic essay project MorphLayoutArticle on Bob's SuperSwiki?

Karl Ramberg
In reply to this post by Eliot Miranda-2
I have added the stuff I had in the change set. 
I downloaded the latest VM   

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 <[hidden email]> wrote:
Hi Karl,

On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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







klipp.JPG (338K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Dynamic essay project MorphLayoutArticle on Bob's SuperSwiki?

David T. Lewis
In reply to this post by Edgar De Cleene
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" <[hidden email]> 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! !
>


Reply | Threaded
Open this post in threaded view
|

Re: Dynamic essay project MorphLayoutArticle on Bob's SuperSwiki?

Edgar De Cleene
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" <[hidden email]> 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



Reply | Threaded
Open this post in threaded view
|

Re: Dynamic essay project MorphLayoutArticle on Bob's SuperSwiki?

Stéphane Rollandin
In reply to this post by David T. Lewis
>> 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


Reply | Threaded
Open this post in threaded view
|

Re: Dynamic essay project MorphLayoutArticle on Bob's SuperSwiki?

Karl Ramberg
In reply to this post by Karl Ramberg
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 <[hidden email]> wrote:
I have added the stuff I had in the change set. 
I downloaded the latest VM   

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 <[hidden email]> wrote:
Hi Karl,

On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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







Reply | Threaded
Open this post in threaded view
|

Re: Dynamic essay project MorphLayoutArticle on Bob's SuperSwiki?

Hannes Hirzel
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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]>
>> wrote:
>>
>>> Hi Karl,
>>>
>>> On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg <[hidden email]>
>>> 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 <[hidden email]>
>>>> 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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
>>>
>>>
>>>
>>>
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: Dynamic essay project MorphLayoutArticle on Bob's SuperSwiki?

Karl Ramberg
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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]>
>> wrote:
>>
>>> Hi Karl,
>>>
>>> On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg <[hidden email]>
>>> 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 <[hidden email]>
>>>> 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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
>>>
>>>
>>>
>>>
>>
>



Reply | Threaded
Open this post in threaded view
|

Re: Dynamic essay project MorphLayoutArticle on Bob's SuperSwiki?

Hannes Hirzel
In reply to this post by Karl Ramberg
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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]>
>> wrote:
>>
>>> Hi Karl,
>>>
>>> On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg <[hidden email]>
>>> 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 <[hidden email]>
>>>> 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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
>>>
>>>
>>>
>>>
>>
>



TestResultOfLoading_MorphicLayout.pr_Screenshot_2018-06-28.png (66K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Dynamic essay project MorphLayoutArticle on Bob's SuperSwiki?

Hannes Hirzel
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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]>
>> 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 <[hidden email]>
>>> wrote:
>>>
>>>> Hi Karl,
>>>>
>>>> On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg <[hidden email]>
>>>> 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 <[hidden email]>
>>>>> 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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
>>>>
>>>>
>>>>
>>>>
>>>
>>
>



MorphicLayoutArticle_Screenshot_2018-06-28.png (151K) Download Attachment
12