[squeak-dev] Dynamic essay project MorphLayoutArticle on Bob's SuperSwiki?

H. Hirzel hannes.hirzel at gmail.com
Thu May 10 03:47:17 UTC 2018


Hello Karl

Good to read about the progress which was possible in a short time.

Where in the code do you set the color depth?

Regards
Hannes

On 5/6/18, karl ramberg <karlramberg at gmail.com> wrote:
> The drawing error was because of wrong color depth. When I change to 16 bit
> before loading project it comes up fine :-)
>
> Now I have to look at the code that mangles the GeeMailMorph so badly
>
> Best,
> Karl
>
>
> On Thu, May 3, 2018 at 9:12 PM, karl ramberg <karlramberg at gmail.com> wrote:
>
>> I have added the stuff I had in the change set.
>> I downloaded the latest VM
>>   squeak.cog.spur_win64x64_201805030152.zip
>> <https://bintray.com/opensmalltalk/vm/download_file?file_path=squeak.cog.spur_win64x64_201805030152.zip>
>>
>> I still get a drawing error with the opened project when loaded.
>> It's like resolution is screwed and screen is displayed in 4 quadrants.
>> See attached screen shot.
>> I'm on windows.
>>
>> Best,
>> Karl
>>
>> On Thu, May 3, 2018 at 4:48 AM, Eliot Miranda <eliot.miranda at gmail.com>
>> wrote:
>>
>>> Hi Karl,
>>>
>>> On Mon, Apr 30, 2018 at 11:17 AM, karl ramberg <karlramberg at gmail.com>
>>> wrote:
>>>
>>>> This change set make the project ALMOST load in a 32 bit 6.0 Squeak
>>>> image.
>>>> But there are some conversion issues I have not figured out.
>>>>
>>>> NOTE: Image will probably crash. USE WITH CARE
>>>>
>>>
>>> Using all of your change set except ObjectScanner>>#scanFrom:, and the
>>> changes I committed to trunk today I was able to load
>>> MorphLayoutArticle.019.pr into a 64-bit Spur image (thanks Bert!!).  The
>>> image locks up due to a drawing error in
>>> GeeMailMorph(ScrollPane)>>innerBounds
>>> where UndefinedObject doesn't understand #-.  So things are close.  May
>>> I
>>> suggest that you add RenamedSourceClassReader in System-Object Storage,
>>> and
>>> move the other segment-specific scanning methods
>>> (ClassCategoryReader>>#scanFromNoCompile:[forSegment:]) too?
>>>
>>> This is cool :-)
>>>
>>>
>>> BTW, there was a compiler bug with the native image segment loading code
>>> in 64-bit Spur.  This is fixed if you grab the last 64-bit Spur VMs from
>>> Travis.
>>>
>>>
>>>>
>>>> Best,
>>>> Karl
>>>>
>>>> On Mon, Apr 30, 2018 at 3:37 PM, H. Hirzel <hannes.hirzel at gmail.com>
>>>> wrote:
>>>>
>>>>> Unfortunately the dynamic essay MorphLayoutArticle.019.pr did not load
>>>>> in a fairly recent Squeak 6.0a trunk image.
>>>>>
>>>>> an OrderedCollection(ImageSegment(Object)>>doesNotUnderstand:
>>>>> #scanFrom: ObjectScanner>>scanFrom: [] in [] in
>>>>> MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
>>>>> BlockClosure>>on:do: [] in
>>>>> MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing: []
>>>>> in [] in MorphicUIManager>>displayProgress:at:from:to:during:
>>>>> BlockClosure>>on:do: [] in
>>>>> MorphicUIManager>>displayProgress:at:from:to:during:
>>>>> BlockClosure>>ensure:
>>>>> MorphicUIManager>>displayProgress:at:from:to:during:
>>>>> ProgressInitiationException>>defaultResumeValue
>>>>> ProgressInitiationException(Exception)>>resume
>>>>> ProgressInitiationException>>defaultAction
>>>>> UndefinedObject>>handleSignal: Context>>handleSignal:
>>>>> Context>>handleSignal: Context>>handleSignal:
>>>>> ProgressInitiationException(Exception)>>signal
>>>>> ProgressInitiationException>>display:at:from:to:during:
>>>>> ProgressInitiationException class>>display:at:from:to:during:
>>>>> ByteString(String)>>displayProgressAt:from:to:during:
>>>>> ByteString(String)>>displayProgressFrom:to:during:
>>>>> MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
>>>>> MultiByteBinaryOrTextStream(PositionableStream)>>fileIn
>>>>> MultiByteBinaryOrTextStream>>fileInProject
>>>>> MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [] in [] in
>>>>> ProjectLoading class>>fileInName:archive:morphOrList:
>>>>> BlockClosure>>on:do: [] in ProjectLoading
>>>>> class>>fileInName:archive:morphOrList: BlockClosure>>ensure:
>>>>> ProjectLoading class>>fileInName:archive:morphOrList: ProjectLoading
>>>>> class>>openName:stream:fromDirectory:withProjectView:clearOriginFlag:
>>>>> ProjectLoading class>>openName:stream:fromDirectory:withProjectView:
>>>>> [] in ProjectLoading class>>openOn: BlockClosure>>on:do: [] in
>>>>> ByteString(String)>>displaySequentialProgress: [] in [] in
>>>>> MorphicUIManager>>displayProgress:at:from:to:during:
>>>>> BlockClosure>>on:do: [] in
>>>>> MorphicUIManager>>displayProgress:at:from:to:during:
>>>>> BlockClosure>>ensure:
>>>>> MorphicUIManager>>displayProgress:at:from:to:during:
>>>>> ProgressInitiationException>>defaultResumeValue
>>>>> ProgressInitiationException(Exception)>>resume
>>>>> ProgressInitiationException>>defaultAction
>>>>> UndefinedObject>>handleSignal:
>>>>> ProgressInitiationException(Exception)>>signal
>>>>> ProgressInitiationException>>display:at:from:to:during:
>>>>> ProgressInitiationException class>>display:at:from:to:during:
>>>>> ProgressInitiationException class>>display:from:to:during:
>>>>> ByteString(String)>>displaySequentialProgress: ProjectLoading
>>>>> class>>openOn: [] in ExternalDropHandler class>>defaultProjectHandler
>>>>> ExternalDropHandler>>handle:in:dropEvent:
>>>>> PasteUpMorph>>handleDroppedItem:event: [] in PasteUpMorph>>dropFiles:
>>>>> BlockClosure>>ensure: PasteUpMorph>>dropFiles:
>>>>> PasteUpMorph(Morph)>>handleDropFiles: DropFilesEvent>>sentTo:
>>>>> PasteUpMorph(Morph)>>handleEvent:
>>>>> MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:
>>>>> MorphicEventDispatcher>>dispatchDefault:with:
>>>>> MorphicEventDispatcher>>dispatchEvent:with:
>>>>> PasteUpMorph(Morph)>>processEvent:using: [] in
>>>>> PasteUpMorph>>processEvent:using: BlockClosure>>ensure:
>>>>> PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent:
>>>>> [] in [] in [] in HandMorph>>sendEvent:focus:clear:
>>>>> BlockClosure>>ensure:
>>>>> DropFilesEvent(MorphicEvent)>>becomeActiveDuring: [] in [] in
>>>>> HandMorph>>sendEvent:focus:clear: BlockClosure>>ensure:
>>>>> HandMorph>>becomeActiveDuring: [] in HandMorph>>sendEvent:focus:clear:
>>>>> BlockClosure>>ensure: PasteUpMorph>>becomeActiveDuring:
>>>>> HandMorph>>sendEvent:focus:clear: HandMorph>>sendEvent:focus:
>>>>> HandMorph>>handleEvent: HandMorph>>processEvents [] in
>>>>> WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do:
>>>>> WorldState>>handsDo: WorldState>>doOneCycleNowFor:
>>>>> WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in
>>>>> MorphicProject>>spawnNewProcess [] in BlockClosure>>newProcess)
>>>>>
>>>>> On 4/30/18, H. Hirzel <hannes.hirzel at 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 at 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 at 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
>>>
>>>
>>>
>>>
>>
>


More information about the Squeak-dev mailing list