Hello Chris,<br><br>It seems to be, that OpenGL lib could not be found by VM. <br>Sorry, could not test it running on Linux for now.. but there was the same problem with Croquet running on Linux, the solution was to provide the correct OpenGL lib links to VM. <br>

Here is a script for Krestianstvo running on non-cog Squeak VM, look at  &quot;make libGL.so link&quot; part of the script.<br><br>----<br>#!/bin/sh<br>IMAGE=&quot;Krestianstvo.image&quot;<br>DIR=`dirname $0`<br>EXE=&quot;$DIR/Contents/Linux-i686&quot;<br>

LIB=&quot;$EXE/lib/squeak/4.0.3-2202&quot;<br>RES=&quot;$DIR/Contents/Resources&quot;<br><br># make source link if necessary<br>if [ ! -r $RES/KrestianstvoV41.sources ] ; then<br>        ln -s $RES/KrestianstvoV41.sources<br>

fi<br><br><br># make libGL.so link if necessary<br>test -f  &quot;$LIB/libGL.so&quot; || {<br>    src=$( ldd $LIB/so.vm-display-X11 | grep libGL.so | cut -d&#39; &#39; -f3)<br>|| :<br>    test -n &quot;$src&quot; -a ! -f &quot;$src&quot; &amp;&amp; src=&#39;&#39;<br>

    test -z &quot;$src&quot; -a -f /usr/lib/libGL.so &amp;&amp; src=&quot;/usr/lib/libGL.so&quot;<br>    test -z &quot;$src&quot; -a -f /usr/lib/libGL.so.1 &amp;&amp; src=&quot;/usr/lib/libGL.so.<br>1&quot;<br>    test -z &quot;$src&quot; -a -f /usr/lib/libGL.so.2 &amp;&amp; src=&quot;/usr/lib/libGL.so.<br>

2&quot;<br><br>    test -z &quot;$src&quot; &amp;&amp; {<br>        echo &quot;I cannot find any usable libGL.so.{012} library. Giving<br>up&quot; &gt;&amp;2<br>        exit 1<br>    }<br><br>    echo &quot;Creating libGL.so link in $LIB using $src&quot;<br>

    ln -snf $src &quot;${LIB}/libGL.so&quot;<br>}<br><br># Slight modification to cobalt.sh - line 26:<br># make libopenal.so link if necessary - OpenAL is a good thing<br>if [ ! -f &quot;$LIB/libopenal.so&quot; -a -f /usr/lib/libopenal.so.1 ] ; then<br>

    echo &quot;Creating libopenal.so symlink in $LIB&quot;<br>    ln -s /usr/lib/libopenal.so.1 &quot;$LIB/libopenal.so&quot;<br>elif [ ! -f &quot;$LIB/libopenal.so&quot; -a -f /usr/lib/libopenal.so.0 ] ; then<br>    echo Creating libopenal.so symlink in $LIB<br>

    ln -s /usr/lib/libopenal.so.0 &quot;$LIB/libopenal.so&quot;<br>fi<br><br><br>exec &quot;$EXE/bin/squeak&quot; -plugins &quot;$LIB&quot; \<br>                -encoding UTF-8 \<br>        -vm-display-X11 -swapbtn \<br>
        &quot;$RES/$IMAGE&quot;<br>
<br>---<br><br>Hope that helps.<br><br>Regards,<br>Nikolay<br><br><br><div class="gmail_quote">On Thu, Mar 7, 2013 at 2:44 AM, Chris Muller <span dir="ltr">&lt;<a href="mailto:ma.chris.m@gmail.com" target="_blank">ma.chris.m@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I attached a screenshot of debugger that occurs when I try to install<br>
it.  There are a few interesting things to note:<br>
<br>
  1) The difference in the osVersion being checked for (&#39;linux&#39;) vs.<br>
what mine is, (&#39;linux-gnu&#39;).  This would cause the &#39;GL&#39; option to be<br>
taken, is that right?<br>
<br>
  2) I don&#39;t understand why the debugger here -- the Message not being<br>
understood is for class BlockClosure and its selector is a<br>
single-character String of character 0.  I can print the first line of<br>
code but restarting the method did not help, same error, so it appears<br>
to be a stack corruption of some kind..<br>
<br>
      ** Oh Wait **<br>
  -- So I just restarted the method and *stepped* through it, it<br>
correctly evaluated &quot;Smalltalk osVersion = &#39;linux&#39; and then it appears<br>
there is some kind of other hidden block or character in this method,<br>
see TweakCore-debugger2.png.  At the bottom, that little blue square<br>
is the &quot;highlight&quot; and it blows up.<br>
    So I simply removed that, resaved the method and proceed, and then<br>
I got &quot;External Module not Found&quot; and I was able to paste that stack<br>
(see below).<br>
<br>
So, trying one more time, I changed that method to eliminate the<br>
hidden character and also to compare to &#39;linux-gnu&#39; but I still got a<br>
similar error.<br>
<br>
So I need to install something on my linux first?  Sorry, I&#39;m kind of<br>
a neophyte with this..  :)<br>
<br>
Thanks,<br>
  Chris<br>
<br>
<br>
<br>
<br>
<br>
<br>
Error: External module not found<br>
6 March 2013 4:34:00.764 pm<br>
<br>
VM: unix - Smalltalk<br>
Image: Squeak4.4 [latest update: #12327]<br>
<br>
SecurityManager state:<br>
Restricted: false<br>
FileAccess: true<br>
SocketAccess: true<br>
Working Dir /home/cmm/Chris/development/Squeak<br>
Trusted Dir /home/cmm/Chris/development/Squeak/secure<br>
Untrusted Dir /home/cmm/Chris/development/Squeak/My Squeak<br>
<br>
OGLUnixX11LE(Object)&gt;&gt;error:<br>
        Receiver: an OGLUnixX11LE<br>
        Arguments and temporary variables:<br>
                aString:        &#39;External module not found&#39;<br>
        Receiver&#39;s instance variables:<br>
                handle:         0<br>
                bufRect:        1@1 corner: 301@201<br>
                glExt:  a *OGLExtManager<br>
                extensions:     nil<br>
                frontFace:      2305<br>
                maxPortalDepth:         5<br>
                changeTexture:  true<br>
                test:   false<br>
                timeStamp:      0<br>
                formManager:    nil<br>
                textureManager:         an OGLTextureManager<br>
                fontManager:    an OGLFontManager<br>
                shaderManager:  an OGLShaderManager<br>
                glListRegistry:         a WeakIdentityKeyDictionary()<br>
                isMirror:       false<br>
                inPortal3D:     false<br>
                camera:         nil<br>
                forceWire:      false<br>
                numVtx:         nil<br>
                numPrims:       nil<br>
                inGLBlock:      false<br>
                distance:       nil<br>
                harness:        nil<br>
                eventPointer:   nil<br>
                avatar:         nil<br>
                forcePick:      false<br>
                forceHilite:    nil<br>
                suppressPortals:        false<br>
                noSwap:         false<br>
                fogOn:  false<br>
                transparency:   1.0<br>
                matrixStack:    nil<br>
                portalDepth:    0<br>
                bufferObjects:  a Dictionary()<br>
<br>
OGLUnixX11LE(Object)&gt;&gt;externalCallFailed<br>
        Receiver: an OGLUnixX11LE<br>
        Arguments and temporary variables:<br>
                errCode:        15<br>
        Receiver&#39;s instance variables:<br>
                handle:         0<br>
                bufRect:        1@1 corner: 301@201<br>
                glExt:  a *OGLExtManager<br>
                extensions:     nil<br>
                frontFace:      2305<br>
                maxPortalDepth:         5<br>
                changeTexture:  true<br>
                test:   false<br>
                timeStamp:      0<br>
                formManager:    nil<br>
                textureManager:         an OGLTextureManager<br>
                fontManager:    an OGLFontManager<br>
                shaderManager:  an OGLShaderManager<br>
                glListRegistry:         a WeakIdentityKeyDictionary()<br>
                isMirror:       false<br>
                inPortal3D:     false<br>
                camera:         nil<br>
                forceWire:      false<br>
                numVtx:         nil<br>
                numPrims:       nil<br>
                inGLBlock:      false<br>
                distance:       nil<br>
                harness:        nil<br>
                eventPointer:   nil<br>
                avatar:         nil<br>
                forcePick:      false<br>
                forceHilite:    nil<br>
                suppressPortals:        false<br>
                noSwap:         false<br>
                fogOn:  false<br>
                transparency:   1.0<br>
                matrixStack:    nil<br>
                portalDepth:    0<br>
                bufferObjects:  a Dictionary()<br>
<br>
OGLUnixX11LE(OpenGL)&gt;&gt;glClearColor:with:with:with:<br>
        Receiver: an OGLUnixX11LE<br>
        Arguments and temporary variables:<br>
                red:    0.0<br>
                green:  0.0<br>
                blue:   0.0<br>
                alpha:  0.0<br>
        Receiver&#39;s instance variables:<br>
                handle:         0<br>
                bufRect:        1@1 corner: 301@201<br>
                glExt:  a *OGLExtManager<br>
                extensions:     nil<br>
                frontFace:      2305<br>
                maxPortalDepth:         5<br>
                changeTexture:  true<br>
                test:   false<br>
                timeStamp:      0<br>
                formManager:    nil<br>
                textureManager:         an OGLTextureManager<br>
                fontManager:    an OGLFontManager<br>
                shaderManager:  an OGLShaderManager<br>
                glListRegistry:         a WeakIdentityKeyDictionary()<br>
                isMirror:       false<br>
                inPortal3D:     false<br>
                camera:         nil<br>
                forceWire:      false<br>
                numVtx:         nil<br>
                numPrims:       nil<br>
                inGLBlock:      false<br>
                distance:       nil<br>
                harness:        nil<br>
                eventPointer:   nil<br>
                avatar:         nil<br>
                forcePick:      false<br>
                forceHilite:    nil<br>
                suppressPortals:        false<br>
                noSwap:         false<br>
                fogOn:  false<br>
                transparency:   1.0<br>
                matrixStack:    nil<br>
                portalDepth:    0<br>
                bufferObjects:  a Dictionary()<br>
<br>
MyOGLPlayer5&gt;&gt;glRenderOn:<br>
        Receiver: MyOGLPlayer5[Wrinkle1&#39;s oglPlayer]<br>
        Arguments and temporary variables:<br>
                ogl:    an OGLUnixX11LE<br>
                dx:     300.0<br>
                dy:     200.0<br>
                scaledLoc:      nil<br>
                rotLoc:         nil<br>
                col1Loc:        nil<br>
                col2Loc:        nil<br>
        Receiver&#39;s instance variables:<br>
                myProperties:   an IdentityDictionary(#col1Factor-&gt;a Vector4(0.0 1.0<br>
1.0 1.0) #co...etc...<br>
                myScripts:      {TickMessageSend(#onTick -&gt; MyOGLPlayer5[Wrinkle1&#39;s<br>
oglPlayer]) . As...etc...<br>
                myEventMap:     an IdentityDictionary(#anOGLshaderr-&gt;a<br>
WeakArray(AsyncScriptMessage...etc...<br>
                myCostume:      a CPrimitiveCostume[MyOGLPlayer5[Wrinkle1&#39;s oglPlayer]]<br>
                myPlayer:       nil<br>
                opengl:         an OGLUnixX11LE<br>
<br>
MyOGLPlayer5(COpenGLPlayer)&gt;&gt;drawOn:in:<br>
        Receiver: MyOGLPlayer5[Wrinkle1&#39;s oglPlayer]<br>
        Arguments and temporary variables:<br>
                aCanvas:        a CTransformCanvas on: Form(290x168x32)<br>
                drawingBounds:  0@0 corner: 300@200<br>
                myRect:         1@1 corner: 301@201<br>
        Receiver&#39;s instance variables:<br>
                myProperties:   an IdentityDictionary(#col1Factor-&gt;a Vector4(0.0 1.0<br>
1.0 1.0) #co...etc...<br>
                myScripts:      {TickMessageSend(#onTick -&gt; MyOGLPlayer5[Wrinkle1&#39;s<br>
oglPlayer]) . As...etc...<br>
                myEventMap:     an IdentityDictionary(#anOGLshaderr-&gt;a<br>
WeakArray(AsyncScriptMessage...etc...<br>
                myCostume:      a CPrimitiveCostume[MyOGLPlayer5[Wrinkle1&#39;s oglPlayer]]<br>
                myPlayer:       nil<br>
                opengl:         an OGLUnixX11LE<br>
<br>
[] in CPrimitiveCostume&gt;&gt;drawOn:<br>
        Receiver: a CPrimitiveCostume[MyOGLPlayer5[Wrinkle1&#39;s oglPlayer]]<br>
        Arguments and temporary variables:<br>
                aCanvas:        a CTransformCanvas on: Form(290x168x32)<br>
                box:    0@0 corner: 300@200<br>
        Receiver&#39;s instance variables:<br>
                container:      a CPrimitiveCostume[Wrinkle1]<br>
                contents:       #()<br>
                bounds:         0@0 corner: 300@200<br>
                fill:   CostumeFill<br>
                border:         NoBorder<br>
                flags:  544<br>
                properties:     an IdentityDictionary(#layoutProperties-&gt;a<br>
CLayoutProperties #playe...etc...<br>
<br>
BlockClosure&gt;&gt;ensure:<br>
        Receiver: [closure] in CPrimitiveCostume&gt;&gt;drawOn:<br>
        Arguments and temporary variables:<br>
                aBlock:         [closure] in CPrimitiveCostume&gt;&gt;drawOn:<br>
                complete:       nil<br>
                returnValue:    nil<br>
        Receiver&#39;s instance variables:<br>
                outerContext:   CPrimitiveCostume&gt;&gt;drawOn:<br>
                startpc:        122<br>
                numArgs:        0<br>
<br>
CPrimitiveCostume&gt;&gt;drawOn:<br>
        Receiver: a CPrimitiveCostume[MyOGLPlayer5[Wrinkle1&#39;s oglPlayer]]<br>
        Arguments and temporary variables:<br>
                aCanvas:        a CTransformCanvas on: Form(290x168x32)<br>
                box:    0@0 corner: 300@200<br>
        Receiver&#39;s instance variables:<br>
                container:      a CPrimitiveCostume[Wrinkle1]<br>
                contents:       #()<br>
                bounds:         0@0 corner: 300@200<br>
                fill:   CostumeFill<br>
                border:         NoBorder<br>
                flags:  544<br>
                properties:     an IdentityDictionary(#layoutProperties-&gt;a<br>
CLayoutProperties #playe...etc...<br>
<br>
[] in [] in CPrimitiveCostume&gt;&gt;fullDrawOn:<br>
        Receiver: a CPrimitiveCostume[MyOGLPlayer5[Wrinkle1&#39;s oglPlayer]]<br>
        Arguments and temporary variables:<br>
&lt;&lt;error during printing&gt;<br>
        Receiver&#39;s instance variables:<br>
                container:      a CPrimitiveCostume[Wrinkle1]<br>
                contents:       #()<br>
                bounds:         0@0 corner: 300@200<br>
                fill:   CostumeFill<br>
                border:         NoBorder<br>
                flags:  544<br>
                properties:     an IdentityDictionary(#layoutProperties-&gt;a<br>
CLayoutProperties #playe...etc...<br>
<br>
CTransformCanvas&gt;&gt;roundCornersOf:in:during:<br>
        Receiver: a CTransformCanvas on: Form(290x168x32)<br>
        Arguments and temporary variables:<br>
                aMorph:         a CPrimitiveCostume[MyOGLPlayer5[Wrinkle1&#39;s oglPlayer]]<br>
                bounds:         0@0 corner: 300@200<br>
                aBlock:         [closure] in [] in CPrimitiveCostume&gt;&gt;fullDrawOn:<br>
        Receiver&#39;s instance variables:<br>
                target:         nil<br>
                filterSelector:         nil<br>
                origin:         0@0<br>
                clipRect:       0@0 corner: 288@166<br>
                form:   Form(290x168x32)<br>
                port:   a GrafPort<br>
                shadowColor:    nil<br>
                backup:         a CTransformCanvas on: Form(290x168x32)<br>
                transform:      a CIdentityTransform<br>
                maskCanvas:     nil<br>
                forceWarp:      true<br>
                warpTransform:  nil<br>
                font:   nil<br>
                fontColor:      nil<br>
                fontChanged:    nil<br>
                lastLinePen:    nil<br>
<br>
[] in CPrimitiveCostume&gt;&gt;fullDrawOn:<br>
        Receiver: a CPrimitiveCostume[MyOGLPlayer5[Wrinkle1&#39;s oglPlayer]]<br>
        Arguments and temporary variables:<br>
&lt;&lt;error during printing&gt;<br>
        Receiver&#39;s instance variables:<br>
                container:      a CPrimitiveCostume[Wrinkle1]<br>
                contents:       #()<br>
                bounds:         0@0 corner: 300@200<br>
                fill:   CostumeFill<br>
                border:         NoBorder<br>
                flags:  544<br>
                properties:     an IdentityDictionary(#layoutProperties-&gt;a<br>
CLayoutProperties #playe...etc...<br>
<br>
CTransformCanvas&gt;&gt;cache:using:during:<br>
        Receiver: a CTransformCanvas on: Form(290x168x32)<br>
        Arguments and temporary variables:<br>
                aRectangle:     0@0 corner: 300@200<br>
                aCache:         nil<br>
                aBlock:         [closure] in CPrimitiveCostume&gt;&gt;fullDrawOn:<br>
        Receiver&#39;s instance variables:<br>
                target:         nil<br>
                filterSelector:         nil<br>
                origin:         0@0<br>
                clipRect:       0@0 corner: 288@166<br>
                form:   Form(290x168x32)<br>
                port:   a GrafPort<br>
                shadowColor:    nil<br>
                backup:         a CTransformCanvas on: Form(290x168x32)<br>
                transform:      a CIdentityTransform<br>
                maskCanvas:     nil<br>
                forceWarp:      true<br>
                warpTransform:  nil<br>
                font:   nil<br>
                fontColor:      nil<br>
                fontChanged:    nil<br>
                lastLinePen:    nil<br>
<br>
CPrimitiveCostume&gt;&gt;fullDrawOn:<br>
        Receiver: a CPrimitiveCostume[MyOGLPlayer5[Wrinkle1&#39;s oglPlayer]]<br>
        Arguments and temporary variables:<br>
                aCanvas:        a CTransformCanvas on: Form(290x168x32)<br>
                tfm:    COffsetTransform(0@0)<br>
                box:    {0@0 corner: 300@200}<br>
        Receiver&#39;s instance variables:<br>
                container:      a CPrimitiveCostume[Wrinkle1]<br>
                contents:       #()<br>
                bounds:         0@0 corner: 300@200<br>
                fill:   CostumeFill<br>
                border:         NoBorder<br>
                flags:  544<br>
                properties:     an IdentityDictionary(#layoutProperties-&gt;a<br>
CLayoutProperties #playe...etc...<br>
<br>
CPrimitiveCostume&gt;&gt;drawContentsOn:<br>
        Receiver: a CPrimitiveCostume[Wrinkle1]<br>
        Arguments and temporary variables:<br>
                aCanvas:        a CTransformCanvas on: Form(290x168x32)<br>
                i:      1<br>
                iLimiT:         6<br>
        Receiver&#39;s instance variables:<br>
                container:      nil<br>
                contents:       {a CPrimitiveCostume[MyOGLPlayer5[Wrinkle1&#39;s oglPlayer]]<br>
. a CPrimiti...etc...<br>
                bounds:         0@0 corner: 288@166<br>
                fill:   NoFill<br>
                border:         NoBorder<br>
                flags:  608<br>
                properties:     an<br>
IdentityDictionary(#elements-&gt;PlayerCollection(MyOGLPlayer5[Wrin...etc...<br>
<br>
[] in CPrimitiveCostume&gt;&gt;localFullDrawOn:<br>
        Receiver: a CPrimitiveCostume[Wrinkle1]<br>
        Arguments and temporary variables:<br>
&lt;&lt;error during printing&gt;<br>
        Receiver&#39;s instance variables:<br>
                container:      nil<br>
                contents:       {a CPrimitiveCostume[MyOGLPlayer5[Wrinkle1&#39;s oglPlayer]]<br>
. a CPrimiti...etc...<br>
                bounds:         0@0 corner: 288@166<br>
                fill:   NoFill<br>
                border:         NoBorder<br>
                flags:  608<br>
                properties:     an<br>
IdentityDictionary(#elements-&gt;PlayerCollection(MyOGLPlayer5[Wrin...etc...<br>
<br>
CTransformCanvas&gt;&gt;clipBy:during:<br>
        Receiver: a CTransformCanvas on: Form(290x168x32)<br>
        Arguments and temporary variables:<br>
                aClipShape:     0@0 corner: 288@166<br>
                aBlock:         [closure] in CPrimitiveCostume&gt;&gt;localFullDrawOn:<br>
        Receiver&#39;s instance variables:<br>
                target:         nil<br>
                filterSelector:         nil<br>
                origin:         0@0<br>
                clipRect:       0@0 corner: 288@166<br>
                form:   Form(290x168x32)<br>
                port:   a GrafPort<br>
                shadowColor:    nil<br>
                backup:         a CTransformCanvas on: Form(290x168x32)<br>
                transform:      a CIdentityTransform<br>
                maskCanvas:     nil<br>
                forceWarp:      true<br>
                warpTransform:  nil<br>
                font:   nil<br>
                fontColor:      nil<br>
                fontChanged:    nil<br>
                lastLinePen:    nil<br>
<br>
CPrimitiveCostume&gt;&gt;localFullDrawOn:<br>
        Receiver: a CPrimitiveCostume[Wrinkle1]<br>
        Arguments and temporary variables:<br>
                transformedCanvas:      a CTransformCanvas on: Form(290x168x32)<br>
                highlights:     #()<br>
                index:  1<br>
                hl:     nil<br>
                i:      nil<br>
                iLimiT:         nil<br>
        Receiver&#39;s instance variables:<br>
                container:      nil<br>
                contents:       {a CPrimitiveCostume[MyOGLPlayer5[Wrinkle1&#39;s oglPlayer]]<br>
. a CPrimiti...etc...<br>
                bounds:         0@0 corner: 288@166<br>
                fill:   NoFill<br>
                border:         NoBorder<br>
                flags:  608<br>
                properties:     an<br>
IdentityDictionary(#elements-&gt;PlayerCollection(MyOGLPlayer5[Wrin...etc...<br>
<br>
[] in FarRef&gt;&gt;syncSend:withArguments:<br>
        Receiver: a CPrimitiveCostume[Wrinkle1]<br>
        Arguments and temporary variables:<br>
&lt;&lt;error during printing&gt;<br>
        Receiver&#39;s instance variables:<br>
                container:      nil<br>
                contents:       {a CPrimitiveCostume[MyOGLPlayer5[Wrinkle1&#39;s oglPlayer]]<br>
. a CPrimiti...etc...<br>
                bounds:         0@0 corner: 288@166<br>
                fill:   NoFill<br>
                border:         NoBorder<br>
                flags:  608<br>
                properties:     an<br>
IdentityDictionary(#elements-&gt;PlayerCollection(MyOGLPlayer5[Wrin...etc...<br>
<br>
[] in Process&gt;&gt;activateIsland:during:<br>
        Receiver: a Process in nil<br>
        Arguments and temporary variables:<br>
&lt;&lt;error during printing&gt;<br>
        Receiver&#39;s instance variables:<br>
                nextLink:       nil<br>
                suspendedContext:       nil<br>
                priority:       40<br>
                myList:         nil<br>
                threadId:       nil<br>
                name:   nil<br>
                island:         an Island(Squeak)<br>
                env:    nil<br>
<br>
<br>
--- The full stack ---<br>
OGLUnixX11LE(Object)&gt;&gt;error:<br>
OGLUnixX11LE(Object)&gt;&gt;externalCallFailed<br>
OGLUnixX11LE(OpenGL)&gt;&gt;glClearColor:with:with:with:<br>
MyOGLPlayer5&gt;&gt;glRenderOn:<br>
MyOGLPlayer5(COpenGLPlayer)&gt;&gt;drawOn:in:<br>
[] in CPrimitiveCostume&gt;&gt;drawOn:<br>
BlockClosure&gt;&gt;ensure:<br>
CPrimitiveCostume&gt;&gt;drawOn:<br>
[] in [] in CPrimitiveCostume&gt;&gt;fullDrawOn:<br>
CTransformCanvas&gt;&gt;roundCornersOf:in:during:<br>
[] in CPrimitiveCostume&gt;&gt;fullDrawOn:<br>
CTransformCanvas&gt;&gt;cache:using:during:<br>
CPrimitiveCostume&gt;&gt;fullDrawOn:<br>
CPrimitiveCostume&gt;&gt;drawContentsOn:<br>
[] in CPrimitiveCostume&gt;&gt;localFullDrawOn:<br>
CTransformCanvas&gt;&gt;clipBy:during:<br>
CPrimitiveCostume&gt;&gt;localFullDrawOn:<br>
[] in FarRef&gt;&gt;syncSend:withArguments:<br>
[] in Process&gt;&gt;activateIsland:during:<br>
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<br>
BlockClosure&gt;&gt;ensure:<br>
Process&gt;&gt;activateIsland:during:<br>
[] in Process&gt;&gt;activateIslandWithEscape:during:<br>
BlockClosure&gt;&gt;on:do:<br>
Process&gt;&gt;activateIslandWithEscape:during:<br>
FarRef&gt;&gt;syncSend:withArguments:<br>
FarRef&gt;&gt;doesNotUnderstand:<br>
CProjectMorph&gt;&gt;redraw<br>
CProjectMorph&gt;&gt;extent:<br>
CProjectMorph(Morph)&gt;&gt;bounds:<br>
CProjectMorph(Morph)&gt;&gt;layoutInBounds:<br>
CProjectMorph(Morph)&gt;&gt;layoutProportionallyIn:<br>
[] in ProportionalLayout&gt;&gt;layout:in:<br>
Array(SequenceableCollection)&gt;&gt;do:<br>
SystemWindow(Morph)&gt;&gt;submorphsDo:<br>
ProportionalLayout&gt;&gt;layout:in:<br>
SystemWindow(Morph)&gt;&gt;doLayoutIn:<br>
[] in SystemWindow(Morph)&gt;&gt;fullBounds<br>
BlockClosure&gt;&gt;on:do:<br>
SystemWindow(Morph)&gt;&gt;fullBounds<br>
CProjectMorph&gt;&gt;setExtentFromWorld<br>
CProjectMorph&gt;&gt;newProject:<br>
CProjectMorph class&gt;&gt;open:<br>
UndefinedObject&gt;&gt;DoIt<br>
Compiler&gt;&gt;evaluate:in:to:notifying:ifFail:logged:<br>
Compiler class&gt;&gt;evaluate:for:notifying:logged:<br>
Compiler class&gt;&gt;evaluate:for:logged:<br>
Compiler class&gt;&gt;evaluate:logged:<br>
[] in [] in MultiByteFileStream(PositionableStream)&gt;&gt;fileInAnnouncing:<br>
BlockClosure&gt;&gt;on:do:<br>
[] in MultiByteFileStream(PositionableStream)&gt;&gt;fileInAnnouncing:<br>
[] in [] in MorphicUIManager&gt;&gt;displayProgress:at:from:to:during:<br>
BlockClosure&gt;&gt;on:do:<br>
[] in MorphicUIManager&gt;&gt;displayProgress:at:from:to:during:<br>
BlockClosure&gt;&gt;ensure:<br>
MorphicUIManager&gt;&gt;displayProgress:at:from:to:during:<br>
ProgressInitiationException&gt;&gt;defaultResumeValue<br>
ProgressInitiationException(Exception)&gt;&gt;resume<br>
ProgressInitiationException&gt;&gt;defaultAction<br>
UndefinedObject&gt;&gt;handleSignal:<br>
MethodContext(ContextPart)&gt;&gt;handleSignal:<br>
MethodContext(ContextPart)&gt;&gt;handleSignal:<br>
-- and more not shown --<br>
<div class="HOEnZb"><div class="h5"><br>
On Wed, Mar 6, 2013 at 5:11 AM, Nikolay Suslov &lt;<a href="mailto:nsuslovi@gmail.com">nsuslovi@gmail.com</a>&gt; wrote:<br>
&gt; Chris,<br>
&gt;<br>
&gt; I have checked several times with loading TweakCore from SqueakMap and for<br>
&gt; me it just works without any problems. I used the trunk image from Jenkins<br>
&gt; and the Squeak4.4-12327 image.<br>
&gt; Please, could you say more about errors you have notice, in what<br>
&gt; configuration?<br>
&gt;<br>
&gt; Regards,<br>
&gt; Nikolay<br>
&gt;<br>
&gt;<br>
&gt; On Wed, Mar 6, 2013 at 2:01 AM, Nikolay Suslov &lt;<a href="mailto:nsuslovi@gmail.com">nsuslovi@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hello Chris,<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Wed, Mar 6, 2013 at 1:35 AM, Chris Muller &lt;<a href="mailto:asqueaker@gmail.com">asqueaker@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I made new Community-Supported catalog entries for both CroquetGL and<br>
&gt;&gt;&gt; TweakCore, with Croquet depending on FFI and TweakCore depending on<br>
&gt;&gt;&gt; CroquetGL.<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; That&#39;s great, thanks.<br>
&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; But I did get a debugger upon trying to install TweakCore:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;   (shoot I cannot even paste the stack trace because it seems to be<br>
&gt;&gt;&gt; loaded with character value: 0&#39;s)...  :(<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; These are mega-cool packages, can you check it Nikolay?<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; I&#39;ll check.<br>
&gt;&gt;<br>
&gt;&gt; Regards,<br>
&gt;&gt; Nikolay<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Tue, Mar 5, 2013 at 3:49 AM, H. Hirzel &lt;<a href="mailto:hannes.hirzel@gmail.com">hannes.hirzel@gmail.com</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt; &gt; Thank you Nikolay for making an updated installation script available<br>
&gt;&gt;&gt; &gt; for Squeak 4.4. Would it be possible to have a SqueakMap entry for it?<br>
&gt;&gt;&gt; &gt;  Chris M?<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Regards<br>
&gt;&gt;&gt; &gt; Hannes<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; On 3/5/13, Casey Ransberger &lt;<a href="mailto:casey.obrien.r@gmail.com">casey.obrien.r@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt; Nice!<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; On Mon, Mar 4, 2013 at 7:38 PM, Ken G. Brown &lt;<a href="mailto:kbrown@mac.com">kbrown@mac.com</a>&gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; Yay! Good work!<br>
&gt;&gt;&gt; &gt;&gt;&gt; It would be great to have Tweak listed in SqueakMap.<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; Ken G. Brown<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; On 2013-03-02, at 3:01 AM, Nikolay Suslov wrote:<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; Hello,<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; I have successfully proceeded in running TweakCore on the recent<br>
&gt;&gt;&gt; &gt;&gt;&gt; Squeak<br>
&gt;&gt;&gt; &gt;&gt;&gt; 4.4 trunk image (from Jenkins).<br>
&gt;&gt;&gt; &gt;&gt;&gt; And one of the famous existed applications developed in Tweak is the<br>
&gt;&gt;&gt; &gt;&gt;&gt; OpenGL procedural textures generator by David Faught.<br>
&gt;&gt;&gt; &gt;&gt;&gt; I make it also loadable to the current Squeak.<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; You could download the ready to run image from here:<br>
&gt;&gt;&gt; &gt;&gt;&gt; <a href="http://krestianstvo.org/TweakCoreOpenGL-squeak44.zip" target="_blank">http://krestianstvo.org/TweakCoreOpenGL-squeak44.zip</a><br>
&gt;&gt;&gt; &gt;&gt;&gt; or<br>
&gt;&gt;&gt; &gt;&gt;&gt; execute in the workspace in own image:<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &quot;1. Load FFI&quot;<br>
&gt;&gt;&gt; &gt;&gt;&gt; (Installer repository: &#39;<a href="http://source.squeak.org/FFI" target="_blank">http://source.squeak.org/FFI</a>&#39;<br>
&gt;&gt;&gt; &gt;&gt;&gt; )<br>
&gt;&gt;&gt; &gt;&gt;&gt;     install: &#39;FFI-Pools&#39;;<br>
&gt;&gt;&gt; &gt;&gt;&gt;     install: &#39;FFI-Kernel&#39;;<br>
&gt;&gt;&gt; &gt;&gt;&gt;     install: &#39;FFI-Tests&#39;..<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &quot;2. Load CroquetGL &quot;<br>
&gt;&gt;&gt; &gt;&gt;&gt; (Installer repository: &#39;<a href="http://www.squeaksource.com/CroquetGL" target="_blank">http://www.squeaksource.com/CroquetGL</a>&#39;)<br>
&gt;&gt;&gt; &gt;&gt;&gt;     install: &#39;3DTransform&#39;;<br>
&gt;&gt;&gt; &gt;&gt;&gt;     install: &#39;OpenGL-Pools&#39;;<br>
&gt;&gt;&gt; &gt;&gt;&gt;     install: &#39;OpenGL-Core&#39;.<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &quot;3. Load TweakCore and Procedural textures application for Tweak&quot;<br>
&gt;&gt;&gt; &gt;&gt;&gt; (Installer repository: &#39;<a href="http://sdk.krestianstvo.org/sdk/inbox" target="_blank">http://sdk.krestianstvo.org/sdk/inbox</a>&#39;)<br>
&gt;&gt;&gt; &gt;&gt;&gt;     install: &#39;tweakcore&#39;;<br>
&gt;&gt;&gt; &gt;&gt;&gt;     install: &#39;Tweak-OpenGL-sn.3&#39;.<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &quot;4. Set the default settings in Tweak&quot;<br>
&gt;&gt;&gt; &gt;&gt;&gt; CDefaultWidgetLibrary setDefaultSettings.<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &quot;5. Run one of two examples&quot;<br>
&gt;&gt;&gt; &gt;&gt;&gt; CProjectMorph open: Wrinkle1.<br>
&gt;&gt;&gt; &gt;&gt;&gt; &quot;or&quot;<br>
&gt;&gt;&gt; &gt;&gt;&gt; CProjectMorph open: Wrinkle2.<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; The attached screenshot shows the running application.<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; Regards,<br>
&gt;&gt;&gt; &gt;&gt;&gt; Nikolay<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; --<br>
&gt;&gt;&gt; &gt;&gt; Casey Ransberger<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
</div></div></blockquote></div><br>