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
Hi Karl,On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg <karlramberg@gmail.com> wrote:This change set make the project ALMOST load in a 32 bit 6.0 Squeak image.But there are some conversion issues I have not figured out.NOTE: Image will probably crash. USE WITH CAREUsing 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,KarlOn Mon, Apr 30, 2018 at 3:37 PM, H. Hirzel <hannes.hirzel@gmail.com> wrote:Unfortunately the dynamic essay MorphLayoutArticle.019.pr did not load
in a fairly recent Squeak 6.0a trunk image.
an OrderedCollection(ImageSegment(Object)>>doesNotUnderstand:
#scanFrom: ObjectScanner>>scanFrom: [] in [] in
MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnou ncing:
BlockClosure>>on:do: [] in
MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnou ncing: []
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)>>fileInAnnou ncing:
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:clearOr iginFlag:
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)>>processEv ent:
[] in [] in [] in HandMorph>>sendEvent:focus:clear:
BlockClosure>>ensure:
DropFilesEvent(MorphicEvent)>>becomeActiveDuring: [] in [] in
HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure:
HandMorph>>becomeActiveDuring: [] in HandMorph>>sendEvent:focus:clear:
BlockClosure>>ensure: PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendEvent:focus:clear: HandMorph>>sendEvent:focus:
HandMorph>>handleEvent: HandMorph>>processEvents [] in
WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do:
WorldState>>handsDo: WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in
MorphicProject>>spawnNewProcess [] in BlockClosure>>newProcess)
On 4/30/18, H. Hirzel <hannes.hirzel@gmail.com> wrote:
> Hi Tim
>
> Implementing your suggestion [1] worked to make
> MorphLayoutArticle.019.pr load into
> Squeak 3.8.1, see screen shot.
>
> What I aiming at next at is to load it into Squeak 6.0a trunk. I
> assume this should be possible quite easily because of the
> enhancements done last year [2][3].
>
> Regards
> Hannes
>
>
>
>
>
> [1] Extend #initKnownRenames
>
> SmartRefStream>>initKnownRenames
> renamed
> at: #AlansTextPlusMorph put: #TextPlusMorph;
> at: #FlasherMorph put: #Flasher;
> yourself
>
> made MorphLayoutArticle.019.pr to load.
>
>
> [2] 6502 format
> http://wiki.squeak.org/squeak/6502
>
> ImageFormat of the interpreter Virtual Machine.
> May be loaded transparently into Squeak 6.0a through the help of
> LegacyImageSegment.
>
> [3]
> http://wiki.squeak.org/squeak/6579
> LegacyImageSegment
> A new class introduced in March 2017 in Squeak 6.0a to enable the
> loading of the older 6502 image segment format type .
>
> More see Smalltalk imageFormatVersion http://wiki.squeak.org/squeak/873
>
>
> On 4/30/18, Tm Jhnsn <digit@sonic.net> wrote:
>> Hi Hannes,
>>
>> In 5.1 there is SmartRefStream>>#initKnownRenames which includes:
>>
>> at: #AlansTextPlusMorph put: #TextPlusMorph;
>>
>> HTH,
>> Tim
>>
>>
>> On 4/30/2018 7:33 AM, H. Hirzel wrote:
>>> Hi Bob
>>>
>>> It still loads fine in Squeak 3.2. Thank you.
>>>
>>> In Squeak 3.8.1 the SmartRefStream needs a new class for
>>>
>>> AlansTextPlusMorph
>>>
>>>
>>> SmartRefStream>>
>>> alansTextPlusMorphbosfcebbmsopssrsggshtt0
>>>
>>> ^ PutNewClassHere
>>>
>>>
>>> Any suggestions what I should put as a new class?
>>>
>>> Regards
>>> Hannes
>>>
>>>
>>>
>>>
>>> On 4/30/18, Bob Arning <arning315@comcast.net> wrote:
>>>> Here is the latest one I have. It loaded fine in 3.2.
>>>>
>>>>
>>>> On 4/29/18 10:20 PM, H. Hirzel wrote:
>>>>> Hello
>>>>>
>>>>> Is there a backup-copy/mirror available of the
>>>>>
>>>>> MorphLayoutArticle
>>>>>
>>>>> project which was on Bob's SuperSwiki? [1]
>>>>>
>>>>> Regards
>>>>> Hannes
>>>>>
>>>>>
>>>>>
>>>>> ----------------------------------
>>>>> [1]
>>>>> http://wiki.squeak.org/squeak/2141
>>>>>
>>>>> How to lay out submorphs
>>>>>
>>>>> Please read the excellent dynamic essay project MorphLayoutArticle
>>>>> (broken link) on Bob's SuperSwiki.
>>>>>
>>>>> Every Morph now has the capability to layout it's submorphs.
>>>>> (Previously, only the AlignmentMorph could implement layout policies.
>>>>> AlignmentMorph is still available because of compatibility reasons and
>>>>> some utility methods it implements.
>>>>>
>>>>
>>>>
>>>>
>>
>>
>
--_,,,^..^,,,_best, Eliot