Cuis-Smalltalk / Cuis-Smalltalk-Dev

Active development of Cuis Smalltalk
MIT License
433 stars 71 forks source link

[Failure] Occasional VectorEnginePlugin failures #203

Closed ghost closed 2 years ago

ghost commented 2 years ago

I experience occasional failures -- failing primitives and SegFaults -- with the VectorGraphicsPlugin. I will add my findings and debug-logs to this ticket.

ghost commented 2 years ago

SegFault


/home/bear/smallworks/cuis/vm-linux-x86_64-2021-08-25/squeak
Squeak VM version: 5.0-202108251651-HVR_MVP_ALPHA3_VEP_2021-08-25  Wed Aug 25 18:55:27 CEST 2021 clang [Production Spur 64-bit VM]
Built from: CoInterpreter * VMMaker.oscog-eem.3047, VMMaker.oscog-mt.2987 uuid: 548d0a5b-eb23-4df6-bbb1-0b431cc840b3 Aug 25 2021
With: StackToRegisterMappingCogit * VMMaker.oscog-eem.3047, VMMaker.oscog-mt.2987 uuid: 548d0a5b-eb23-4df6-bbb1-0b431cc840b3 Aug 25 2021
Revision: VM: 202108251651-HVR_MVP_ALPHA3_VEP_2021-08-25 bear@speedy:gitwork/opensmalltalk-vm
Date: Wed Aug 25 18:51:41 2021 CommitHash: 7edd12790
Plugins: 202108251651-HVR_MVP_ALPHA3_VEP_2021-08-25 bear@speedy:gitwork/opensmalltalk-vm
Build host: Linux speedy 5.4.0-81-generic #91~18.04.1-Ubuntu SMP Fri Jul 23 13:36:29 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
plugin path: /home/bear/smallworks/cuis/vm-linux-x86_64-2021-08-25/ [default: /home/bear/smallworks/cuis/vm-linux-x86_64-2021-08-25/]

C stack backtrace & registers:
    rax 0xff2b2d2eff2b2d2e rbx 0x13ef6c48 rcx 0x00000006 rdx 0x2b2d2eff2b2d2e
    rdi 0x0fff3690 rsi 0x000000ff rbp 0xfffffffffffffffe rsp 0x7ffd0bff7bc0
    r8  0x0000000d r9  0x8000000000000001 r10 0x00000006 r11 0x00000000
    r12 0x0000001f r13 0xffffffffffffff r14 0x014c4f30 r15 0x00000001
    rip 0x00472db9
*../vm-linux-x86_64-2021-08-25/squeak[0x472db9]
../vm-linux-x86_64-2021-08-25/squeak[0x41ad58]
../vm-linux-x86_64-2021-08-25/squeak[0x41cf10]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x12980)[0x7fb8674a4980]
../vm-linux-x86_64-2021-08-25/squeak[0x472db9]
../vm-linux-x86_64-2021-08-25/squeak[0x472509]
../vm-linux-x86_64-2021-08-25/squeak[0x463f08]
../vm-linux-x86_64-2021-08-25/squeak(interpret+0x6633)[0x424b93]
../vm-linux-x86_64-2021-08-25/squeak(interpret+0x68c)[0x41ebec]
[0x200eec9]
[0x0]

Smalltalk stack dump:
    0x7ffd0c01fc70 I [] in SystemDictionary>snapshot:andQuit:embedded:clearAllClassState: 0x1a6a278: a(n) SystemDictionary
    0x7ffd0c01fcb0 I [] in BlockClosure>newProcess 0x14900e0: a(n) BlockClosure

Most recent primitives
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
wait
value
signal
wait
signal
value:
value:
value:
value:
value:
value:
value:
basicNew
basicNew:
=
basicNew
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
basicNew
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
size
installCursorWithMask:
snapshotPrimitive

stack page bytes 8192 available headroom 5576 minimum unused headroom 5992

    (Segmentation fault)
ghost commented 2 years ago

DebugLog:

Error: Error: primTargetBits:morphIds:edgeCounts:alphaMask:contour:targetWidth:targetHeight: failed
27 August 2021 7:16:41.035201 pm

VM: unix - Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives * VMMaker.oscog-eem.3047, VMMaker.oscog-mt.2987]
Image: Haver 5.0 [latest update: #4809]

VectorEngineWithPluginWholePixel(Object)>>error:
    Receiver: a VectorEngineWithPluginWholePixel
    Arguments and temporary variables: 
        aString:    'Error: primTargetBits:morphIds:edgeCounts:alphaMask:contour:targetWid[..]
    Receiver's instance variables: 
        canvas:     a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        antiAliasingWidth:  1.6
        geometryTransformation:     MorphicTranslation(translation 2273.0@858.0) 
        strokeWidth:    0.0
        morphBoundsLeft:    4311
        morphBoundsTop:     3826
        morphBoundsRight:   0
        morphBoundsBottom:  0
        hop:    0.5
        firstX:     NaN
        firstY:     NaN
        currentX:   0.0
        currentY:   0.0
        targetForm:     DisplayScreen(4312x3827x32)
        targetWidth:    4312
        targetHeight:   3827
        morphIds:   a WordArray:16502024(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        edgeCounts:     true
        alphaMask:  #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        contour:    a Float32Array:7168(4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0[..]
        strokeColor:    nil
        fillColor:  (Color r: 0.996 g: 0.329 b: 0.329)
        clipLeft:   0
        clipTop:    0
        clipRight:  4311
        clipBottom:     3826
        currentMorphId:     2182
        currentClipsSubmorphs:  false
        clipCurrentMorph:   false

[] in WorldMorph>>displayWorldSafely
    Receiver:  [world]
    Arguments and temporary variables: 
        err:    'Error: primTargetBits:morphIds:edgeCounts:alphaMask:contour:targetWidth:t[..]
        rcvr:   a VectorEngineWithPluginWholePixel
    Receiver's instance variables: 
        owner:  nil
        submorphs:  #(Browser for package: PackageIntegrator Installed Packages ChangeSe[..]
        properties:     nil
        id:     267
        privateDisplayBounds:   nil
        location:   MorphicTranslation(translation 0.0@0.0) 
        layoutSpec:     nil
        extent:     4312@3827
        color:  (Color r: 0.215 g: 0.215 b: 0.215)
        backgroundImage:    nil
        backgroundImageData:    nil
        activeHand:     a HandMorph(3748314)
        hands:  #(a HandMorph(3748314))
        canvas:     a HybridCanvas on: DisplayScreen(4312x3827x32)
        damageRecorder:     a DamageRecorder
        stepList:   a Heap(StepMessage(#stepAt: -> an UpdatingLabelMorph(3723927)'19:16:4[..]
        lastCycleTime:  3807544600779
        alarms:     a Heap()
        lastAlarmTime:  3807544600778
        deferredUIMessages:     a SharedQueue(0)
        drawingFailingMorphs:   a WeakIdentitySet(a PluggableButtonMorph(3502688))
        waitDelay:  a Delay(20 msecs)
        pause:  20
        lastCycleHadAnyEvent:   true
        taskbar:    a TaskbarMorph(2206855)

BlockClosure>>valueWithPossibleArgument:and:
    Receiver: [closure] in WorldMorph>>displayWorldSafely
    Arguments and temporary variables: 
        anArg:  'Error: primTargetBits:morphIds:edgeCounts:alphaMask:contour:targetWidth[..]
        secondArg:  a VectorEngineWithPluginWholePixel
    Receiver's instance variables: 
        outerContext:   WorldMorph>>displayWorldSafely
        startpc:    76
        numArgs:    2

[] in BlockClosure>>ifErrorOrHalt:
    Receiver: [closure] in WorldMorph>>displayWorldSafely
    Arguments and temporary variables: 
        errorHandlerBlock:  Error: primTargetBits:morphIds:edgeCounts:alphaMask:contour:[..]
        ex:     [closure] in WorldMorph>>displayWorldSafely
    Receiver's instance variables: 
        outerContext:   WorldMorph>>displayWorldSafely
        startpc:    69
        numArgs:    0

BlockClosure>>valueWithPossibleArgument:
    Receiver: [closure] in BlockClosure>>ifErrorOrHalt:
    Arguments and temporary variables: 
        anArg:  Error: primTargetBits:morphIds:edgeCounts:alphaMask:contour:targetWidth:[..]
    Receiver's instance variables: 
        outerContext:   BlockClosure>>ifErrorOrHalt:
        startpc:    90
        numArgs:    1

[] in [] in Error(Exception)>>evaluateHandlerBlock:
    Receiver: Error: primTargetBits:morphIds:edgeCounts:alphaMask:contour:targ[..]
    Arguments and temporary variables: 
<<error during printing>
    Receiver's instance variables: 
        messageText:    'primTargetBits:morphIds:edgeCounts:alphaMask:contour:targetWidth:[..]
        tag:    nil
        signalContext:  Error(Exception)>>signal
        handlerContexts:    an OrderedCollection(BlockClosure>>on:do:)
        outerContext:   nil
        handlerBlockNotCurtailed:   false

BlockClosure>>on:do:
    Receiver: [closure] in [] in Error(Exception)>>evaluateHandlerBlock:
    Arguments and temporary variables: 
        exception:  Exception
        handlerAction:  [closure] in [] in Error(Exception)>>evaluateHandlerBlock:
    Receiver's instance variables: 
        outerContext:   [] in Error(Exception)>>evaluateHandlerBlock:
        startpc:    202
        numArgs:    0

[] in Error(Exception)>>evaluateHandlerBlock:
    Receiver: Error: primTargetBits:morphIds:edgeCounts:alphaMask:contour:targ[..]
    Arguments and temporary variables: 
        aBlock:     [closure] in BlockClosure>>ifErrorOrHalt:
        handlerEx:  #(UnhandledError)
        answer:     nil
    Receiver's instance variables: 
        messageText:    'primTargetBits:morphIds:edgeCounts:alphaMask:contour:targetWidth:[..]
        tag:    nil
        signalContext:  Error(Exception)>>signal
        handlerContexts:    an OrderedCollection(BlockClosure>>on:do:)
        outerContext:   nil
        handlerBlockNotCurtailed:   false

BlockClosure>>ifCurtailed:
    Receiver: [closure] in Error(Exception)>>evaluateHandlerBlock:
    Arguments and temporary variables: 
        aBlock:     [closure] in Error(Exception)>>evaluateHandlerBlock:
        complete:   nil
        result:     nil
    Receiver's instance variables: 
        outerContext:   Error(Exception)>>evaluateHandlerBlock:
        startpc:    196
        numArgs:    0

Error(Exception)>>evaluateHandlerBlock:
    Receiver: Error: primTargetBits:morphIds:edgeCounts:alphaMask:contour:targ[..]
    Arguments and temporary variables: 
        aBlock:     [closure] in BlockClosure>>ifErrorOrHalt:
        handlerEx:  #(UnhandledError)
    Receiver's instance variables: 
        messageText:    'primTargetBits:morphIds:edgeCounts:alphaMask:contour:targetWidth:[..]
        tag:    nil
        signalContext:  Error(Exception)>>signal
        handlerContexts:    an OrderedCollection(BlockClosure>>on:do:)
        outerContext:   nil
        handlerBlockNotCurtailed:   false

MethodContext(ContextPart)>>evaluateSignal:
    Receiver: BlockClosure>>on:do:
    Arguments and temporary variables: 
        exception:  Error: primTargetBits:morphIds:edgeCounts:alphaMask:contour:targetWi[..]
        value:  nil
    Receiver's instance variables: 
        sender:     BlockClosure>>ifErrorOrHalt:
        pc:     30
        stackp:     2
        method:     (BlockClosure>>#on:do: "a CompiledMethod:34(3015545)")
        closureOrNil:   nil
        receiver:   [closure] in WorldMorph>>displayWorldSafely

MethodContext(ContextPart)>>handleSignal:
    Receiver: BlockClosure>>on:do:
    Arguments and temporary variables: 
        exception:  Error: primTargetBits:morphIds:edgeCounts:alphaMask:contour:targetWi[..]
    Receiver's instance variables: 
        sender:     BlockClosure>>ifErrorOrHalt:
        pc:     30
        stackp:     2
        method:     (BlockClosure>>#on:do: "a CompiledMethod:34(3015545)")
        closureOrNil:   nil
        receiver:   [closure] in WorldMorph>>displayWorldSafely

Error(Exception)>>signalIn:
    Receiver: Error: primTargetBits:morphIds:edgeCounts:alphaMask:contour:targ[..]
    Arguments and temporary variables: 
        aContext:   Error(Exception)>>signal
    Receiver's instance variables: 
        messageText:    'primTargetBits:morphIds:edgeCounts:alphaMask:contour:targetWidth:[..]
        tag:    nil
        signalContext:  Error(Exception)>>signal
        handlerContexts:    an OrderedCollection(BlockClosure>>on:do:)
        outerContext:   nil
        handlerBlockNotCurtailed:   false

Error(Exception)>>signal
    Receiver: Error: primTargetBits:morphIds:edgeCounts:alphaMask:contour:targ[..]
    Arguments and temporary variables: 

    Receiver's instance variables: 
        messageText:    'primTargetBits:morphIds:edgeCounts:alphaMask:contour:targetWidth:[..]
        tag:    nil
        signalContext:  Error(Exception)>>signal
        handlerContexts:    an OrderedCollection(BlockClosure>>on:do:)
        outerContext:   nil
        handlerBlockNotCurtailed:   false

Error(Exception)>>signal:
    Receiver: Error: primTargetBits:morphIds:edgeCounts:alphaMask:contour:targ[..]
    Arguments and temporary variables: 
        signalerText:   'primTargetBits:morphIds:edgeCounts:alphaMask:contour:targetWidth[..]
    Receiver's instance variables: 
        messageText:    'primTargetBits:morphIds:edgeCounts:alphaMask:contour:targetWidth:[..]
        tag:    nil
        signalContext:  Error(Exception)>>signal
        handlerContexts:    an OrderedCollection(BlockClosure>>on:do:)
        outerContext:   nil
        handlerBlockNotCurtailed:   false

VectorEngineWithPluginWholePixel(Object)>>error:
    Receiver: a VectorEngineWithPluginWholePixel
    Arguments and temporary variables: 
        aString:    'primTargetBits:morphIds:edgeCounts:alphaMask:contour:targetWidth:targ[..]
    Receiver's instance variables: 
        canvas:     a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        antiAliasingWidth:  1.6
        geometryTransformation:     MorphicTranslation(translation 2273.0@858.0) 
        strokeWidth:    0.0
        morphBoundsLeft:    4311
        morphBoundsTop:     3826
        morphBoundsRight:   0
        morphBoundsBottom:  0
        hop:    0.5
        firstX:     NaN
        firstY:     NaN
        currentX:   0.0
        currentY:   0.0
        targetForm:     DisplayScreen(4312x3827x32)
        targetWidth:    4312
        targetHeight:   3827
        morphIds:   a WordArray:16502024(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        edgeCounts:     true
        alphaMask:  #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        contour:    a Float32Array:7168(4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0[..]
        strokeColor:    nil
        fillColor:  (Color r: 0.996 g: 0.329 b: 0.329)
        clipLeft:   0
        clipTop:    0
        clipRight:  4311
        clipBottom:     3826
        currentMorphId:     2182
        currentClipsSubmorphs:  false
        clipCurrentMorph:   false

VectorEngineWithPluginWholePixel(Object)>>primitiveFailed:
    Receiver: a VectorEngineWithPluginWholePixel
    Arguments and temporary variables: 
        selector:   #primTargetBits:morphIds:edgeCounts:alphaMask:contour:targetWidth:tar[..]
    Receiver's instance variables: 
        canvas:     a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        antiAliasingWidth:  1.6
        geometryTransformation:     MorphicTranslation(translation 2273.0@858.0) 
        strokeWidth:    0.0
        morphBoundsLeft:    4311
        morphBoundsTop:     3826
        morphBoundsRight:   0
        morphBoundsBottom:  0
        hop:    0.5
        firstX:     NaN
        firstY:     NaN
        currentX:   0.0
        currentY:   0.0
        targetForm:     DisplayScreen(4312x3827x32)
        targetWidth:    4312
        targetHeight:   3827
        morphIds:   a WordArray:16502024(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        edgeCounts:     true
        alphaMask:  #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        contour:    a Float32Array:7168(4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0[..]
        strokeColor:    nil
        fillColor:  (Color r: 0.996 g: 0.329 b: 0.329)
        clipLeft:   0
        clipTop:    0
        clipRight:  4311
        clipBottom:     3826
        currentMorphId:     2182
        currentClipsSubmorphs:  false
        clipCurrentMorph:   false

VectorEngineWithPluginWholePixel(Object)>>primitiveFailed
    Receiver: a VectorEngineWithPluginWholePixel
    Arguments and temporary variables: 

    Receiver's instance variables: 
        canvas:     a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        antiAliasingWidth:  1.6
        geometryTransformation:     MorphicTranslation(translation 2273.0@858.0) 
        strokeWidth:    0.0
        morphBoundsLeft:    4311
        morphBoundsTop:     3826
        morphBoundsRight:   0
        morphBoundsBottom:  0
        hop:    0.5
        firstX:     NaN
        firstY:     NaN
        currentX:   0.0
        currentY:   0.0
        targetForm:     DisplayScreen(4312x3827x32)
        targetWidth:    4312
        targetHeight:   3827
        morphIds:   a WordArray:16502024(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        edgeCounts:     true
        alphaMask:  #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        contour:    a Float32Array:7168(4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0[..]
        strokeColor:    nil
        fillColor:  (Color r: 0.996 g: 0.329 b: 0.329)
        clipLeft:   0
        clipTop:    0
        clipRight:  4311
        clipBottom:     3826
        currentMorphId:     2182
        currentClipsSubmorphs:  false
        clipCurrentMorph:   false

VectorEngineWithPluginWholePixel>>primTargetBits:morphIds:edgeCounts:alphaMask:contour:targetWidth:targetHeight:
    Receiver: a VectorEngineWithPluginWholePixel
    Arguments and temporary variables: 
        aBitmap:    a Bitmap:16502024 of length 16502024
        aWordArray:     a WordArray:16502024(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        otherByteArray:     true
        anotherByteArray:   #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0[..]
        aFloat32Array:  a Float32Array:7168(4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0 0.0 [..]
        aNumber:    4312
        otherNumber:    3827
    Receiver's instance variables: 
        canvas:     a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        antiAliasingWidth:  1.6
        geometryTransformation:     MorphicTranslation(translation 2273.0@858.0) 
        strokeWidth:    0.0
        morphBoundsLeft:    4311
        morphBoundsTop:     3826
        morphBoundsRight:   0
        morphBoundsBottom:  0
        hop:    0.5
        firstX:     NaN
        firstY:     NaN
        currentX:   0.0
        currentY:   0.0
        targetForm:     DisplayScreen(4312x3827x32)
        targetWidth:    4312
        targetHeight:   3827
        morphIds:   a WordArray:16502024(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        edgeCounts:     true
        alphaMask:  #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        contour:    a Float32Array:7168(4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0[..]
        strokeColor:    nil
        fillColor:  (Color r: 0.996 g: 0.329 b: 0.329)
        clipLeft:   0
        clipTop:    0
        clipRight:  4311
        clipBottom:     3826
        currentMorphId:     2182
        currentClipsSubmorphs:  false
        clipCurrentMorph:   false

VectorEngineWithPluginWholePixel(VectorEngineWithPlugin)>>initializePath
    Receiver: a VectorEngineWithPluginWholePixel
    Arguments and temporary variables: 

    Receiver's instance variables: 
        canvas:     a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        antiAliasingWidth:  1.6
        geometryTransformation:     MorphicTranslation(translation 2273.0@858.0) 
        strokeWidth:    0.0
        morphBoundsLeft:    4311
        morphBoundsTop:     3826
        morphBoundsRight:   0
        morphBoundsBottom:  0
        hop:    0.5
        firstX:     NaN
        firstY:     NaN
        currentX:   0.0
        currentY:   0.0
        targetForm:     DisplayScreen(4312x3827x32)
        targetWidth:    4312
        targetHeight:   3827
        morphIds:   a WordArray:16502024(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        edgeCounts:     true
        alphaMask:  #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        contour:    a Float32Array:7168(4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0[..]
        strokeColor:    nil
        fillColor:  (Color r: 0.996 g: 0.329 b: 0.329)
        clipLeft:   0
        clipTop:    0
        clipRight:  4311
        clipBottom:     3826
        currentMorphId:     2182
        currentClipsSubmorphs:  false
        clipCurrentMorph:   false

[] in VectorEngineWithPluginWholePixel(VectorEngineWithPlugin)>>doPath:ensureClosePath:
    Receiver: a VectorEngineWithPluginWholePixel
    Arguments and temporary variables: 
        pathCommandsBlock:  [closure] in VectorDrawingCanvas(VectorCanvas)>>drawCloseIco[..]
        ensureClosePath:    true
    Receiver's instance variables: 
        canvas:     a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        antiAliasingWidth:  1.6
        geometryTransformation:     MorphicTranslation(translation 2273.0@858.0) 
        strokeWidth:    0.0
        morphBoundsLeft:    4311
        morphBoundsTop:     3826
        morphBoundsRight:   0
        morphBoundsBottom:  0
        hop:    0.5
        firstX:     NaN
        firstY:     NaN
        currentX:   0.0
        currentY:   0.0
        targetForm:     DisplayScreen(4312x3827x32)
        targetWidth:    4312
        targetHeight:   3827
        morphIds:   a WordArray:16502024(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        edgeCounts:     true
        alphaMask:  #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        contour:    a Float32Array:7168(4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0[..]
        strokeColor:    nil
        fillColor:  (Color r: 0.996 g: 0.329 b: 0.329)
        clipLeft:   0
        clipTop:    0
        clipRight:  4311
        clipBottom:     3826
        currentMorphId:     2182
        currentClipsSubmorphs:  false
        clipCurrentMorph:   false

BlockClosure>>ensure:
    Receiver: [closure] in VectorEngineWithPluginWholePixel(VectorEngineWithPl[..]
    Arguments and temporary variables: 
        aBlock:     [closure] in [] in Mutex>>critical:
        complete:   nil
        returnValue:    nil
    Receiver's instance variables: 
        outerContext:   VectorEngineWithPluginWholePixel(VectorEngineWithPlugin)>>doPath:[..]
        startpc:    91
        numArgs:    0

[] in Mutex>>critical:
    Receiver: a Mutex
    Arguments and temporary variables: 
        aBlock:     [closure] in VectorEngineWithPluginWholePixel(VectorEngineWithPlugin)>>[..]
        activeProcess:  a Process 40 (1170652) Morphic UI -  [world]
    Receiver's instance variables: 
        semaphore:  a Semaphore() with 0 signals
        owner:  a Process 40 (1170652) Morphic UI -  [world]

[] in Semaphore>>critical:
    Receiver: a Semaphore() with 0 signals
    Arguments and temporary variables: 
        mutuallyExcludedBlock:  [closure] in Mutex>>critical:
        caught:     #(true)
    Receiver's instance variables: 
        firstLink:  nil
        lastLink:   nil
        excessSignals:  0

BlockClosure>>ensure:
    Receiver: [closure] in Semaphore>>critical:
    Arguments and temporary variables: 
        aBlock:     [closure] in Semaphore>>critical:
        complete:   nil
        returnValue:    nil
    Receiver's instance variables: 
        outerContext:   Semaphore>>critical:
        startpc:    70
        numArgs:    0

Semaphore>>critical:
    Receiver: a Semaphore() with 0 signals
    Arguments and temporary variables: 
        mutuallyExcludedBlock:  [closure] in Mutex>>critical:
        caught:     #(true)
    Receiver's instance variables: 
        firstLink:  nil
        lastLink:   nil
        excessSignals:  0

Mutex>>critical:
    Receiver: a Mutex
    Arguments and temporary variables: 
        aBlock:     [closure] in VectorEngineWithPluginWholePixel(VectorEngineWithPlugin)>>[..]
        activeProcess:  a Process 40 (1170652) Morphic UI -  [world]
    Receiver's instance variables: 
        semaphore:  a Semaphore() with 0 signals
        owner:  a Process 40 (1170652) Morphic UI -  [world]

VectorEngineWithPluginWholePixel(VectorEngineWithPlugin)>>doPath:ensureClosePath:
    Receiver: a VectorEngineWithPluginWholePixel
    Arguments and temporary variables: 
        pathCommandsBlock:  [closure] in VectorDrawingCanvas(VectorCanvas)>>drawCloseIco[..]
        ensureClosePath:    true
    Receiver's instance variables: 
        canvas:     a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        antiAliasingWidth:  1.6
        geometryTransformation:     MorphicTranslation(translation 2273.0@858.0) 
        strokeWidth:    0.0
        morphBoundsLeft:    4311
        morphBoundsTop:     3826
        morphBoundsRight:   0
        morphBoundsBottom:  0
        hop:    0.5
        firstX:     NaN
        firstY:     NaN
        currentX:   0.0
        currentY:   0.0
        targetForm:     DisplayScreen(4312x3827x32)
        targetWidth:    4312
        targetHeight:   3827
        morphIds:   a WordArray:16502024(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        edgeCounts:     true
        alphaMask:  #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        contour:    a Float32Array:7168(4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0[..]
        strokeColor:    nil
        fillColor:  (Color r: 0.996 g: 0.329 b: 0.329)
        clipLeft:   0
        clipTop:    0
        clipRight:  4311
        clipBottom:     3826
        currentMorphId:     2182
        currentClipsSubmorphs:  false
        clipCurrentMorph:   false

VectorEngineWithPluginWholePixel(VectorEngineDrawer)>>fillColor:do:
    Receiver: a VectorEngineWithPluginWholePixel
    Arguments and temporary variables: 
        aFillColor:     (Color r: 0.996 g: 0.329 b: 0.329)
        pathCommandsBlock:  [closure] in VectorDrawingCanvas(VectorCanvas)>>drawCloseIco[..]
    Receiver's instance variables: 
        canvas:     a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        antiAliasingWidth:  1.6
        geometryTransformation:     MorphicTranslation(translation 2273.0@858.0) 
        strokeWidth:    0.0
        morphBoundsLeft:    4311
        morphBoundsTop:     3826
        morphBoundsRight:   0
        morphBoundsBottom:  0
        hop:    0.5
        firstX:     NaN
        firstY:     NaN
        currentX:   0.0
        currentY:   0.0
        targetForm:     DisplayScreen(4312x3827x32)
        targetWidth:    4312
        targetHeight:   3827
        morphIds:   a WordArray:16502024(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        edgeCounts:     true
        alphaMask:  #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        contour:    a Float32Array:7168(4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0[..]
        strokeColor:    nil
        fillColor:  (Color r: 0.996 g: 0.329 b: 0.329)
        clipLeft:   0
        clipTop:    0
        clipRight:  4311
        clipBottom:     3826
        currentMorphId:     2182
        currentClipsSubmorphs:  false
        clipCurrentMorph:   false

VectorEngineWithPluginWholePixel(VectorEngineDrawer)>>basicStrokeWidth:color:fillColor:do:
    Receiver: a VectorEngineWithPluginWholePixel
    Arguments and temporary variables: 
        aStrokeWidth:   0.5
        aStrokeColor:   (Color r: 0.500 g: 0.500 b: 0.500)
        aFillColor:     (Color r: 0.996 g: 0.329 b: 0.329)
        pathCommandsBlock:  [closure] in VectorDrawingCanvas(VectorCanvas)>>drawCloseIco[..]
    Receiver's instance variables: 
        canvas:     a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        antiAliasingWidth:  1.6
        geometryTransformation:     MorphicTranslation(translation 2273.0@858.0) 
        strokeWidth:    0.0
        morphBoundsLeft:    4311
        morphBoundsTop:     3826
        morphBoundsRight:   0
        morphBoundsBottom:  0
        hop:    0.5
        firstX:     NaN
        firstY:     NaN
        currentX:   0.0
        currentY:   0.0
        targetForm:     DisplayScreen(4312x3827x32)
        targetWidth:    4312
        targetHeight:   3827
        morphIds:   a WordArray:16502024(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        edgeCounts:     true
        alphaMask:  #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        contour:    a Float32Array:7168(4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0[..]
        strokeColor:    nil
        fillColor:  (Color r: 0.996 g: 0.329 b: 0.329)
        clipLeft:   0
        clipTop:    0
        clipRight:  4311
        clipBottom:     3826
        currentMorphId:     2182
        currentClipsSubmorphs:  false
        clipCurrentMorph:   false

VectorEngineWithPluginWholePixel(VectorEngineDrawer)>>strokeWidth:color:fillColor:do:
    Receiver: a VectorEngineWithPluginWholePixel
    Arguments and temporary variables: 
        clientStrokeWidth:  0.5
        aStrokeColor:   (Color r: 0.500 g: 0.500 b: 0.500)
        aFillColor:     (Color r: 0.996 g: 0.329 b: 0.329)
        pathCommandsBlock:  [closure] in VectorDrawingCanvas(VectorCanvas)>>drawCloseIco[..]
    Receiver's instance variables: 
        canvas:     a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        antiAliasingWidth:  1.6
        geometryTransformation:     MorphicTranslation(translation 2273.0@858.0) 
        strokeWidth:    0.0
        morphBoundsLeft:    4311
        morphBoundsTop:     3826
        morphBoundsRight:   0
        morphBoundsBottom:  0
        hop:    0.5
        firstX:     NaN
        firstY:     NaN
        currentX:   0.0
        currentY:   0.0
        targetForm:     DisplayScreen(4312x3827x32)
        targetWidth:    4312
        targetHeight:   3827
        morphIds:   a WordArray:16502024(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        edgeCounts:     true
        alphaMask:  #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [..]
        contour:    a Float32Array:7168(4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0 0.0 4312.0[..]
        strokeColor:    nil
        fillColor:  (Color r: 0.996 g: 0.329 b: 0.329)
        clipLeft:   0
        clipTop:    0
        clipRight:  4311
        clipBottom:     3826
        currentMorphId:     2182
        currentClipsSubmorphs:  false
        clipCurrentMorph:   false

VectorDrawingCanvas(VectorCanvas)>>strokeWidth:color:fillColor:do:
    Receiver: a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
    Arguments and temporary variables: 
        strokeWidth:    0.5
        aStrokeColor:   (Color r: 0.500 g: 0.500 b: 0.500)
        aFillColor:     (Color r: 0.996 g: 0.329 b: 0.329)
        pathCommandsBlock:  [closure] in VectorDrawingCanvas(VectorCanvas)>>drawCloseIco[..]
    Receiver's instance variables: 
        world:   [world]
        form:   DisplayScreen(4312x3827x32)
        clipRect:   0@0 corner: 4312@3827
        transformations:    an OrderedCollection(MorphicTranslation(translation 0.0@0.0)  [..]
        currentTransformation:  MorphicTranslation(translation 2273.0@858.0) 
        cti:    6
        currentMorph:   a PluggableButtonMorph(3502688)
        drawingMorphStack:  an OrderedCollection(nil  [world]  [world] a HandMorph(37483[..]
        engine:     a VectorEngineWithPluginWholePixel
        clippingMorphDisplayBounds:     nil
        firstPoint:     nil
        lastControlPoint:   0.0@0.0
        currentPoint:   0.0@0.0
        boundsFinderCanvas:     a BoundsFinderCanvas on: nil

VectorDrawingCanvas(VectorCanvas)>>drawCloseIcon
    Receiver: a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
    Arguments and temporary variables: 
        c:  (Color r: 0.996 g: 0.329 b: 0.329)
    Receiver's instance variables: 
        world:   [world]
        form:   DisplayScreen(4312x3827x32)
        clipRect:   0@0 corner: 4312@3827
        transformations:    an OrderedCollection(MorphicTranslation(translation 0.0@0.0)  [..]
        currentTransformation:  MorphicTranslation(translation 2273.0@858.0) 
        cti:    6
        currentMorph:   a PluggableButtonMorph(3502688)
        drawingMorphStack:  an OrderedCollection(nil  [world]  [world] a HandMorph(37483[..]
        engine:     a VectorEngineWithPluginWholePixel
        clippingMorphDisplayBounds:     nil
        firstPoint:     nil
        lastControlPoint:   0.0@0.0
        currentPoint:   0.0@0.0
        boundsFinderCanvas:     a BoundsFinderCanvas on: nil

HybridCanvas>>drawCloseIcon
    Receiver: a HybridCanvas on: DisplayScreen(4312x3827x32)
    Arguments and temporary variables: 

    Receiver's instance variables: 
        world:   [world]
        form:   DisplayScreen(4312x3827x32)
        clipRect:   0@0 corner: 4312@3827
        transformations:    an OrderedCollection(MorphicTranslation(translation 0.0@0.0)  [..]
        currentTransformation:  MorphicTranslation(translation 2273.0@858.0) 
        cti:    5
        currentMorph:   a PluggableButtonMorph(3502688)
        drawingMorphStack:  an OrderedCollection(nil  [world] a HandMorph(3748314) /home[..]
        engine:     a BitBltCanvasEngine
        clippingMorphDisplayBounds:     nil
        boundsFinderCanvas:     a BitBltBoundsFinderCanvas on: nil
        vectorCanvas:   a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        morphIDsForm:   Form(4312x3827x32)
        drawingOnMorphIDs:  false

HybridCanvas(MorphicCanvas)>>drawButtonIconFromCurrentMorph
    Receiver: a HybridCanvas on: DisplayScreen(4312x3827x32)
    Arguments and temporary variables: 
        selector:   #drawCloseIcon
        theIcon:    nil
    Receiver's instance variables: 
        world:   [world]
        form:   DisplayScreen(4312x3827x32)
        clipRect:   0@0 corner: 4312@3827
        transformations:    an OrderedCollection(MorphicTranslation(translation 0.0@0.0)  [..]
        currentTransformation:  MorphicTranslation(translation 2273.0@858.0) 
        cti:    5
        currentMorph:   a PluggableButtonMorph(3502688)
        drawingMorphStack:  an OrderedCollection(nil  [world] a HandMorph(3748314) /home[..]
        engine:     a BitBltCanvasEngine
        clippingMorphDisplayBounds:     nil
        boundsFinderCanvas:     a BitBltBoundsFinderCanvas on: nil
        vectorCanvas:   a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        morphIDsForm:   Form(4312x3827x32)
        drawingOnMorphIDs:  false

PluggableButtonMorph>>drawOn:
    Receiver: a PluggableButtonMorph(3502688)
    Arguments and temporary variables: 
        aCanvas:    a HybridCanvas on: DisplayScreen(4312x3827x32)
    Receiver's instance variables: 
        owner:  /home/bear/smallworks/cuis/Environments/HaverOnCuis/haver/packaging
        submorphs:  #()
        properties:     an IdentityDictionary(#balloonText->'close this window' )
        id:     558593
        privateDisplayBounds:   616@1322 corner: 638@1344
        location:   MorphicTranslation(translation 6.0@6.0) 
        layoutSpec:     nil
        extent:     22@22
        color:  (Color r: 0.347 g: 0.348 b: 0.349)
        borderWidth:    1
        borderColor:    (Color r: 0.500 g: 0.500 b: 0.500)
        model:  /home/bear/smallworks/cuis/Environments/HaverOnCuis/haver/packaging
        label:  nil
        font:   nil
        icon:   nil
        getStateSelector:   nil
        actionSelector:     #closeBoxHit
        isPressed:  false
        mouseIsOver:    false
        magnifiedIcon:  nil
        actWhen:    #buttonUp
        roundButtonStyle:   nil
        iconName:   #drawCloseIcon
        secondaryActionSelector:    nil

HybridCanvas>>drawCurrentAndSubmorphs
    Receiver: a HybridCanvas on: DisplayScreen(4312x3827x32)
    Arguments and temporary variables: 

    Receiver's instance variables: 
        world:   [world]
        form:   DisplayScreen(4312x3827x32)
        clipRect:   0@0 corner: 4312@3827
        transformations:    an OrderedCollection(MorphicTranslation(translation 0.0@0.0)  [..]
        currentTransformation:  MorphicTranslation(translation 2273.0@858.0) 
        cti:    5
        currentMorph:   a PluggableButtonMorph(3502688)
        drawingMorphStack:  an OrderedCollection(nil  [world] a HandMorph(3748314) /home[..]
        engine:     a BitBltCanvasEngine
        clippingMorphDisplayBounds:     nil
        boundsFinderCanvas:     a BitBltBoundsFinderCanvas on: nil
        vectorCanvas:   a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        morphIDsForm:   Form(4312x3827x32)
        drawingOnMorphIDs:  false

HybridCanvas(MorphicCanvas)>>fullDraw:
    Receiver: a HybridCanvas on: DisplayScreen(4312x3827x32)
    Arguments and temporary variables: 
        aMorph:     a PluggableButtonMorph(3502688)
    Receiver's instance variables: 
        world:   [world]
        form:   DisplayScreen(4312x3827x32)
        clipRect:   0@0 corner: 4312@3827
        transformations:    an OrderedCollection(MorphicTranslation(translation 0.0@0.0)  [..]
        currentTransformation:  MorphicTranslation(translation 2273.0@858.0) 
        cti:    5
        currentMorph:   a PluggableButtonMorph(3502688)
        drawingMorphStack:  an OrderedCollection(nil  [world] a HandMorph(3748314) /home[..]
        engine:     a BitBltCanvasEngine
        clippingMorphDisplayBounds:     nil
        boundsFinderCanvas:     a BitBltBoundsFinderCanvas on: nil
        vectorCanvas:   a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        morphIDsForm:   Form(4312x3827x32)
        drawingOnMorphIDs:  false

[] in [] in HybridCanvas>>drawCurrentAndSubmorphs
    Receiver: a HybridCanvas on: DisplayScreen(4312x3827x32)
    Arguments and temporary variables: 
        m:  a PluggableButtonMorph(3502688)
    Receiver's instance variables: 
        world:   [world]
        form:   DisplayScreen(4312x3827x32)
        clipRect:   0@0 corner: 4312@3827
        transformations:    an OrderedCollection(MorphicTranslation(translation 0.0@0.0)  [..]
        currentTransformation:  MorphicTranslation(translation 2273.0@858.0) 
        cti:    5
        currentMorph:   a PluggableButtonMorph(3502688)
        drawingMorphStack:  an OrderedCollection(nil  [world] a HandMorph(3748314) /home[..]
        engine:     a BitBltCanvasEngine
        clippingMorphDisplayBounds:     nil
        boundsFinderCanvas:     a BitBltBoundsFinderCanvas on: nil
        vectorCanvas:   a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        morphIDsForm:   Form(4312x3827x32)
        drawingOnMorphIDs:  false

Array(SequenceableCollection)>>reverseDo:
    Receiver: #(a LayoutMorph(3054296) a WindowEdgeAdjustingMorph(3914233) a W[..]
    Arguments and temporary variables: 
        aBlock:     [closure] in [] in HybridCanvas>>drawCurrentAndSubmorphs
        index:  13
    Receiver's instance variables: 
#(a LayoutMorph(3054296) a WindowEdgeAdjustingMorph(3914233) a W[..]
FileListWindow(Morph)>>submorphsReverseDo:
    Receiver: /home/bear/smallworks/cuis/Environments/HaverOnCuis/haver/packag[..]
    Arguments and temporary variables: 
        aBlock:     [closure] in [] in HybridCanvas>>drawCurrentAndSubmorphs
    Receiver's instance variables: 
        owner:  a HandMorph(3748314)
        submorphs:  #(a LayoutMorph(3054296) a WindowEdgeAdjustingMorph(3914233) a Windo[..]
        properties:     an IdentityDictionary(#taskbarButtonIcon->Form(67x54x32) )
        id:     558339
        privateDisplayBounds:   2267@852 corner: 3429@1746
        location:   MorphicTranslation(translation -510.0@-20.0) 
        layoutSpec:     nil
        extent:     1162@894
        color:  (Color r: 0.171 g: 0.176 b: 0.181)
        borderWidth:    5
        borderColor:    (Color r: 0.244 g: 0.251 b: 0.259)
        model:  a FileList
        labelString:    '/home/bear/smallworks/cuis/Environments/HaverOnCuis/haver/packagi[..]
        layoutMorph:    a LayoutMorph(3054296)
        adjusters:  a Dictionary(#bottomAdjuster->a WindowEdgeAdjustingMorph(2351932) #b[..]

[] in HybridCanvas>>drawCurrentAndSubmorphs
    Receiver: a HybridCanvas on: DisplayScreen(4312x3827x32)
    Arguments and temporary variables: 

    Receiver's instance variables: 
        world:   [world]
        form:   DisplayScreen(4312x3827x32)
        clipRect:   0@0 corner: 4312@3827
        transformations:    an OrderedCollection(MorphicTranslation(translation 0.0@0.0)  [..]
        currentTransformation:  MorphicTranslation(translation 2273.0@858.0) 
        cti:    5
        currentMorph:   a PluggableButtonMorph(3502688)
        drawingMorphStack:  an OrderedCollection(nil  [world] a HandMorph(3748314) /home[..]
        engine:     a BitBltCanvasEngine
        clippingMorphDisplayBounds:     nil
        boundsFinderCanvas:     a BitBltBoundsFinderCanvas on: nil
        vectorCanvas:   a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        morphIDsForm:   Form(4312x3827x32)
        drawingOnMorphIDs:  false

HybridCanvas(MorphicCanvas)>>clippingByCurrentMorphDo:
    Receiver: a HybridCanvas on: DisplayScreen(4312x3827x32)
    Arguments and temporary variables: 
        aBlock:     [closure] in HybridCanvas>>drawCurrentAndSubmorphs
        prevClipRect:   nil
        prevClippingMorphRect:  nil
    Receiver's instance variables: 
        world:   [world]
        form:   DisplayScreen(4312x3827x32)
        clipRect:   0@0 corner: 4312@3827
        transformations:    an OrderedCollection(MorphicTranslation(translation 0.0@0.0)  [..]
        currentTransformation:  MorphicTranslation(translation 2273.0@858.0) 
        cti:    5
        currentMorph:   a PluggableButtonMorph(3502688)
        drawingMorphStack:  an OrderedCollection(nil  [world] a HandMorph(3748314) /home[..]
        engine:     a BitBltCanvasEngine
        clippingMorphDisplayBounds:     nil
        boundsFinderCanvas:     a BitBltBoundsFinderCanvas on: nil
        vectorCanvas:   a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        morphIDsForm:   Form(4312x3827x32)
        drawingOnMorphIDs:  false

HybridCanvas>>drawCurrentAndSubmorphs
    Receiver: a HybridCanvas on: DisplayScreen(4312x3827x32)
    Arguments and temporary variables: 

    Receiver's instance variables: 
        world:   [world]
        form:   DisplayScreen(4312x3827x32)
        clipRect:   0@0 corner: 4312@3827
        transformations:    an OrderedCollection(MorphicTranslation(translation 0.0@0.0)  [..]
        currentTransformation:  MorphicTranslation(translation 2273.0@858.0) 
        cti:    5
        currentMorph:   a PluggableButtonMorph(3502688)
        drawingMorphStack:  an OrderedCollection(nil  [world] a HandMorph(3748314) /home[..]
        engine:     a BitBltCanvasEngine
        clippingMorphDisplayBounds:     nil
        boundsFinderCanvas:     a BitBltBoundsFinderCanvas on: nil
        vectorCanvas:   a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        morphIDsForm:   Form(4312x3827x32)
        drawingOnMorphIDs:  false

HybridCanvas(MorphicCanvas)>>fullDraw:
    Receiver: a HybridCanvas on: DisplayScreen(4312x3827x32)
    Arguments and temporary variables: 
        aMorph:     /home/bear/smallworks/cuis/Environments/HaverOnCuis/haver/packaging
    Receiver's instance variables: 
        world:   [world]
        form:   DisplayScreen(4312x3827x32)
        clipRect:   0@0 corner: 4312@3827
        transformations:    an OrderedCollection(MorphicTranslation(translation 0.0@0.0)  [..]
        currentTransformation:  MorphicTranslation(translation 2273.0@858.0) 
        cti:    5
        currentMorph:   a PluggableButtonMorph(3502688)
        drawingMorphStack:  an OrderedCollection(nil  [world] a HandMorph(3748314) /home[..]
        engine:     a BitBltCanvasEngine
        clippingMorphDisplayBounds:     nil
        boundsFinderCanvas:     a BitBltBoundsFinderCanvas on: nil
        vectorCanvas:   a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        morphIDsForm:   Form(4312x3827x32)
        drawingOnMorphIDs:  false

[] in HandMorph>>fullDrawHandOn:
    Receiver: a HandMorph(3748314)
    Arguments and temporary variables: 
        aCanvas:    /home/bear/smallworks/cuis/Environments/HaverOnCuis/haver/packaging
        m:  a HybridCanvas on: DisplayScreen(4312x3827x32)
    Receiver's instance variables: 
        owner:   [world]
        submorphs:  #(/home/bear/smallworks/cuis/Environments/HaverOnCuis/haver/packagin[..]
        properties:     nil
        id:     7435
        privateDisplayBounds:   nil
        location:   MorphicTranslation(translation 2777.0@872.0) 
        layoutSpec:     nil
        extent:     16@16
        color:  (Color r: 0.976 g: 0.451 b: 0.024)
        mouseFocus:     nil
        keyboardFocus:  an InnerTextMorph(929717)
        mouseClickState:    nil
        mouseOverHandler:   a MouseOverHandler
        lastMouseEvent:     a MouseMoveEvent
        hasChanged:     true
        savedPatch:     #(Form(2112x2005x32) Form(2112x2005x32))
        lastEventBuffer:    #(1 91646017 1120 1337 4 0 0 0)
        lastKeyDownValue:   13
        lastMouseEventTime:     3807544600778
        prevFullBounds:     2267@403 corner: 4312@1746
        grabMorphData:  an IdentityDictionary(/home/bear/smallworks/cuis/Environments/Ha[..]
        lastPosition:   1120.0@1336.0

Array(SequenceableCollection)>>reverseDo:
    Receiver: #(/home/bear/smallworks/cuis/Environments/HaverOnCuis/haver/pack[..]
    Arguments and temporary variables: 
        aBlock:     [closure] in HandMorph>>fullDrawHandOn:
        index:  1
    Receiver's instance variables: 
#(/home/bear/smallworks/cuis/Environments/HaverOnCuis/haver/pack[..]
HandMorph>>fullDrawHandOn:
    Receiver: a HandMorph(3748314)
    Arguments and temporary variables: 
        aCanvas:    a HybridCanvas on: DisplayScreen(4312x3827x32)
    Receiver's instance variables: 
        owner:   [world]
        submorphs:  #(/home/bear/smallworks/cuis/Environments/HaverOnCuis/haver/packagin[..]
        properties:     nil
        id:     7435
        privateDisplayBounds:   nil
        location:   MorphicTranslation(translation 2777.0@872.0) 
        layoutSpec:     nil
        extent:     16@16
        color:  (Color r: 0.976 g: 0.451 b: 0.024)
        mouseFocus:     nil
        keyboardFocus:  an InnerTextMorph(929717)
        mouseClickState:    nil
        mouseOverHandler:   a MouseOverHandler
        lastMouseEvent:     a MouseMoveEvent
        hasChanged:     true
        savedPatch:     #(Form(2112x2005x32) Form(2112x2005x32))
        lastEventBuffer:    #(1 91646017 1120 1337 4 0 0 0)
        lastKeyDownValue:   13
        lastMouseEventTime:     3807544600778
        prevFullBounds:     2267@403 corner: 4312@1746
        grabMorphData:  an IdentityDictionary(/home/bear/smallworks/cuis/Environments/Ha[..]
        lastPosition:   1120.0@1336.0

HybridCanvas(MorphicCanvas)>>fullDrawHand:
    Receiver: a HybridCanvas on: DisplayScreen(4312x3827x32)
    Arguments and temporary variables: 
        aHandMorph:     a HandMorph(3748314)
    Receiver's instance variables: 
        world:   [world]
        form:   DisplayScreen(4312x3827x32)
        clipRect:   0@0 corner: 4312@3827
        transformations:    an OrderedCollection(MorphicTranslation(translation 0.0@0.0)  [..]
        currentTransformation:  MorphicTranslation(translation 2273.0@858.0) 
        cti:    5
        currentMorph:   a PluggableButtonMorph(3502688)
        drawingMorphStack:  an OrderedCollection(nil  [world] a HandMorph(3748314) /home[..]
        engine:     a BitBltCanvasEngine
        clippingMorphDisplayBounds:     nil
        boundsFinderCanvas:     a BitBltBoundsFinderCanvas on: nil
        vectorCanvas:   a VectorDrawingCanvas on: DisplayScreen(4312x3827x32)
        morphIDsForm:   Form(4312x3827x32)
        drawingOnMorphIDs:  false

--- The full stack ---
VectorEngineWithPluginWholePixel(Object)>>error:
[] in WorldMorph>>displayWorldSafely
BlockClosure>>valueWithPossibleArgument:and:
[] in BlockClosure>>ifErrorOrHalt:
BlockClosure>>valueWithPossibleArgument:
[] in [] in Error(Exception)>>evaluateHandlerBlock:
BlockClosure>>on:do:
[] in Error(Exception)>>evaluateHandlerBlock:
BlockClosure>>ifCurtailed:
Error(Exception)>>evaluateHandlerBlock:
MethodContext(ContextPart)>>evaluateSignal:
MethodContext(ContextPart)>>handleSignal:
Error(Exception)>>signalIn:
Error(Exception)>>signal
Error(Exception)>>signal:
VectorEngineWithPluginWholePixel(Object)>>error:
VectorEngineWithPluginWholePixel(Object)>>primitiveFailed:
VectorEngineWithPluginWholePixel(Object)>>primitiveFailed
VectorEngineWithPluginWholePixel>>primTargetBits:morphIds:edgeCounts:alphaMask:contour:targetWidth:targetHeight:
VectorEngineWithPluginWholePixel(VectorEngineWithPlugin)>>initializePath
[] in VectorEngineWithPluginWholePixel(VectorEngineWithPlugin)>>doPath:ensureClosePath:
BlockClosure>>ensure:
[] in Mutex>>critical:
[] in Semaphore>>critical:
BlockClosure>>ensure:
Semaphore>>critical:
Mutex>>critical:
VectorEngineWithPluginWholePixel(VectorEngineWithPlugin)>>doPath:ensureClosePath:
VectorEngineWithPluginWholePixel(VectorEngineDrawer)>>fillColor:do:
VectorEngineWithPluginWholePixel(VectorEngineDrawer)>>basicStrokeWidth:color:fillColor:do:
VectorEngineWithPluginWholePixel(VectorEngineDrawer)>>strokeWidth:color:fillColor:do:
VectorDrawingCanvas(VectorCanvas)>>strokeWidth:color:fillColor:do:
VectorDrawingCanvas(VectorCanvas)>>drawCloseIcon
HybridCanvas>>drawCloseIcon
HybridCanvas(MorphicCanvas)>>drawButtonIconFromCurrentMorph
PluggableButtonMorph>>drawOn:
HybridCanvas>>drawCurrentAndSubmorphs
HybridCanvas(MorphicCanvas)>>fullDraw:
[] in [] in HybridCanvas>>drawCurrentAndSubmorphs
Array(SequenceableCollection)>>reverseDo:
FileListWindow(Morph)>>submorphsReverseDo:
[] in HybridCanvas>>drawCurrentAndSubmorphs
HybridCanvas(MorphicCanvas)>>clippingByCurrentMorphDo:
HybridCanvas>>drawCurrentAndSubmorphs
HybridCanvas(MorphicCanvas)>>fullDraw:
[] in HandMorph>>fullDrawHandOn:
...etc...
ghost commented 2 years ago
  firstX:     NaN
  firstY:     NaN

NaN? Would not be surprised if the primitive can not handle that.

ghost commented 2 years ago

Another one, this time when saving the image:


Segmentation fault Mon Aug 30 14:19:20 2021

/home/bear/smallworks/cuis/vm-linux-x86_64-2021-08-25/squeak
Squeak VM version: 5.0-202108251651-HVR_MVP_ALPHA3_VEP_2021-08-25  Wed Aug 25 18:55:27 CEST 2021 clang [Production Spur 64-bit VM]
Built from: CoInterpreter * VMMaker.oscog-eem.3047, VMMaker.oscog-mt.2987 uuid: 548d0a5b-eb23-4df6-bbb1-0b431cc840b3 Aug 25 2021
With: StackToRegisterMappingCogit * VMMaker.oscog-eem.3047, VMMaker.oscog-mt.2987 uuid: 548d0a5b-eb23-4df6-bbb1-0b431cc840b3 Aug 25 2021
Revision: VM: 202108251651-HVR_MVP_ALPHA3_VEP_2021-08-25 bear@speedy:gitwork/opensmalltalk-vm
Date: Wed Aug 25 18:51:41 2021 CommitHash: 7edd12790
Plugins: 202108251651-HVR_MVP_ALPHA3_VEP_2021-08-25 bear@speedy:gitwork/opensmalltalk-vm
Build host: Linux speedy 5.4.0-81-generic #91~18.04.1-Ubuntu SMP Fri Jul 23 13:36:29 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
plugin path: /home/bear/smallworks/cuis/vm-linux-x86_64-2021-08-25/ [default: /home/bear/smallworks/cuis/vm-linux-x86_64-2021-08-25/]

C stack backtrace & registers:
    rax 0xff6d6c6cff6d6c6c rbx 0x14bc4e28 rcx 0x00000004 rdx 0x6d6c6cff6d6c6c
    rdi 0x0cd3abb0 rsi 0x000000ff rbp 0xfffffffffffffffd rsp 0x7fff61a00f10
    r8  0x0000000e r9  0x8000000000000001 r10 0x00000006 r11 0x00000000
    r12 0x0000001f r13 0xffffffffffffff r14 0x01cac030 r15 0x00000001
    rip 0x00472db9
*../vm-linux-x86_64-2021-08-25/squeak[0x472db9]
../vm-linux-x86_64-2021-08-25/squeak[0x41ad58]
../vm-linux-x86_64-2021-08-25/squeak[0x41cf10]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x12980)[0x7f6f0944e980]
../vm-linux-x86_64-2021-08-25/squeak[0x472db9]
../vm-linux-x86_64-2021-08-25/squeak[0x472509]
../vm-linux-x86_64-2021-08-25/squeak[0x463f08]
../vm-linux-x86_64-2021-08-25/squeak(interpret+0x6633)[0x424b93]
../vm-linux-x86_64-2021-08-25/squeak(interpret+0x68c)[0x41ebec]
[0x270b4c9]
[0x0]

Smalltalk stack dump:
    0x7fff61a50fc0 I [] in SystemDictionary>snapshot:andQuit:embedded:clearAllClassState: 0x216a278: a(n) SystemDictionary
    0x7fff61a51000 I [] in BlockClosure>newProcess 0x1c67c50: a(n) BlockClosure

Most recent primitives
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
wait
value
signal
wait
signal
value:
value:
value:
value:
value:
value:
value:
basicNew
basicNew:
basicNew
=
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
value:
size
installCursorWithMask:
snapshotPrimitive

stack page bytes 8192 available headroom 5576 minimum unused headroom 5808

    (Segmentation fault)
ghost commented 2 years ago

Yet another one with Haver on a Raspi, looks like out of memory:


Segmentation fault Wed Sep  1 09:09:52 2021

/home/bear/smallworks/5.0-202109010629-HVR_MVP_ALPHA3_VEP_2021-09-01/squeak
Squeak VM version: 5.0-202109010629-HVR_MVP_ALPHA3_VEP_2021-09-01  Mi 1. Sep 08:51:50 CEST 2021 gcc 8 [Production Spur VM]
Built from: CoInterpreter VMMaker.oscog-eem.3050 uuid: 735b9bfc-cf40-4a45-b98e-7f9a2b979b5e Sep  1 2021
With: StackToRegisterMappingCogit VMMaker.oscog-eem.3050 uuid: 735b9bfc-cf40-4a45-b98e-7f9a2b979b5e Sep  1 2021
Revision: VM: 202109010629-HVR_MVP_ALPHA3_VEP_2021-09-01 bear@pie02:gitwork/opensmalltalk-vm
Date: Wed Sep 1 08:29:37 2021 CommitHash: 83e9030c2
Plugins: 202109010629-HVR_MVP_ALPHA3_VEP_2021-09-01 bear@pie02:gitwork/opensmalltalk-vm
Build host: Linux pie02 5.10.52-v8+ #1441 SMP PREEMPT Tue Aug 3 18:14:03 BST 2021 aarch64 GNU/Linux
plugin path: /home/bear/smallworks/5.0-202109010629-HVR_MVP_ALPHA3_VEP_2021-09-01/ [default: /home/bear/smallworks/5.0-202109010629-HVR_MVP_ALPHA3_VEP_2021-09-01/]

C stack backtrace & registers:
     r0 0xf694d628 r1 0x03ff01cc r2 0x00000184 r3 0x03ff01c0
     r4 0x0000001a r5 0x03ff01cc r6 0x00001930 r7 0x00000284
     r8 0x00000284 r9 0x00000020 r10 0x000043ec fp 0x000002d7
     ip 0x00000018 sp 0xffca6dc0 lr 0x00000000 pc 0xf7cef418
*/usr/lib/arm-linux-gnueabihf/libarmmem-v8l.so(+0x1418)[0xf7cef418]
[0x0]

Smalltalk stack dump:
0xffcbd054 M DisplayScreen(Object)>triggerEvent: 0xe92490: a(n) DisplayScreen
0xffcbd070 M DisplayScreen>setExtent:depth: 0xe92490: a(n) DisplayScreen
0xffcbd090 M DisplayScreen class>startUp 0x1387178: a(n) DisplayScreen class
0xffcbd0b0 M UISupervisor class>restoreDisplay 0x1368658: a(n) UISupervisor class
0xffcbd0c8 M DisplayScreen class>checkForNewScreenSize 0x1387178: a(n) DisplayScreen class
0xffcbd0e4 M WorldMorph>doOneCycleNow 0x176de68: a(n) WorldMorph
0xffcbd108 M WorldMorph>doOneCycle 0x176de68: a(n) WorldMorph
0xffcbd120 M WorldMorph>mainLoop 0x176de68: a(n) WorldMorph
0xffcbd140 I [] in WorldMorph>runProcess 0x176de68: a(n) WorldMorph
0xffcbd160 I [] in BlockClosure>newProcess 0xe938f0: a(n) BlockClosure

Most recent primitives
truncated
-
truncated
-
truncated
-
truncated
truncated
truncated
at:put:
copyBits
truncated
-
truncated
-
truncated
-
truncated
-
truncated
-
truncated
truncated
truncated
at:put:
copyBits
copyBits
truncated
truncated
truncated
at:put:
truncated
truncated
truncated
truncated
maxIdentityHash
+
+
truncated
-
truncated
-
**StackOverflow**
**StackOverflow**
**StackOverflow**
primDisplayString:from:to:map:xTable:kern:
truncated
truncated
truncated
truncated
maxIdentityHash
-
truncated
-
truncated
-
truncated
-
truncated
-
truncated
-
truncated
truncated
truncated
at:put:
copyBits
copyBits
truncated
truncated
truncated
at:put:
truncated
truncated
truncated
truncated
maxIdentityHash
-
truncated
-
truncated
-
truncated
-
truncated
-
truncated
-
truncated
truncated
truncated
at:put:
copyBits
copyBits
truncated
truncated
truncated
at:put:
truncated
truncated
truncated
truncated
wait
signal
primShowRectLeft:right:top:bottom:
wait
signal
wait
maxIdentityHash
maxIdentityHash
signal
wait
signal
installCursorWithMask:
-
<=
primLocalMicrosecondClock
//
primGetNextEvent:
+
<
primLocalMicrosecondClock
//
-
signal
primMillisecondClock
privateFlagAt:put:
<=
signal
primMillisecondClock
primSignal:atMilliseconds:
primMillisecondClock
wait
wait
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
primMillisecondClock
signal
<=
<=
at:put:
primSignal:atMilliseconds:
primMillisecondClock
wait
wait
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
relinquishProcessorForMicroseconds:
primMillisecondClock
signal
primSignal:atMilliseconds:
primMillisecondClock
wait
primLocalMicrosecondClock
//
at:
at:
actualScreenSize
maxIdentityHash
maxIdentityHash
perform:withArguments:
actualScreenSize
suspend
specialObjectsArray
findNextUnwindContextUpTo:
specialObjectsArray
findNextUnwindContextUpTo:
actualScreenSize
supportsDisplayDepth:
basicNew:
handleFailingBasicNew:
byteSizeOfInstanceOfSize:
value:value:
maxIdentityHash
maxIdentityHash
maxIdentityHash
maxIdentityHash
maxIdentityHash
at:
at:
at:put:
at:
at:
at:
at:
at:
at:
at:
at:
at:
at:
maxIdentityHash
identityHash
at:
size
size
//
//
//
\\
\\
maxIdentityHash
maxIdentityHash
maxIdentityHash
primitiveGarbageCollect
**FullGC**
handleFailingFailingBasicNew:

stack page bytes 4096 available headroom 2788 minimum unused headroom 2964

    (Segmentation fault)
jvuletich commented 2 years ago

I assume that later updates have solved these issues, as there are no comments in almost a year.