Separate TeaTime (was Re: [squeak-dev] Re: Teleplace is hiring...)

Eliot Miranda eliot.miranda at gmail.com
Sat Jan 8 17:52:15 UTC 2011


On Sat, Jan 8, 2011 at 9:18 AM, Frank Shearar
<frank.shearar at angband.za.org>wrote:

> On 2010/12/08 02:10, Tony Garnock-Jones wrote:
>
>> On 2010-12-07 4:00 AM, Lawson English wrote:
>>
>>> Don't I wish.
>>>
>>
>> What's stopping it? Is it as simple as a lack of people familiar enough
>> with the system to extract it and/or write it up for others?
>>
>
> It's easy enough to file out the Islands packages. After that comes the
> hard part, trying to figure out the structure of the package etc.
>
> The Islands class comment says one can install Islands by executing
> "Islands install", but it's not that simple. For starters, there is no
> "Islands install".
>
> If you play around, and execute "Island default", you find that Islands
> depends on TMutex, defined in Croquet-Kernel-Objects.
>
> (I have to say, it still blows me away that I can be in the debugger
> looking at a method referring to an undefined TMutex class, cut across to
> Cobalt, file out TMutex, cut back to my image, file in the class, and just
> hit restart, and proceed from there.)
>
> Then, Island default quickly runs into an infinite loop, bouncing between
> Process(Object)>>island and ProcessorScheduler>>activeIsland. The chain of
> events looks like this:
>
> Island class>>default instantiates Default (an Island), and then tries to
> find Processor activeProcess island. That, in Process(Object)>>island, says
> "^Processor activeIsland", which runs "^activeProcess island ifNil: [Island
> default]", which calls Process(Object)>>island, closing the circle.
>
> IslandDeepCopier class>>test refers to CTileDefinition (from
> Tweak-Tiles-Definition). That looks like an easily removable dependency.
>
> Island>>scheduleMessage:future: is an empty, uncalled method.
>
> FarRef>>copyToCurrentIsland refers to CDeepCopier (from
> Tweak-Basic-Support).
>
> IslandReader and IslandWriter refer indirectly to CCursorLibrary
> (Tweak-Basic-Support), CIconLibrary (Tweak-Basic-Support), MenuIcons
> (Morphic-Menus), ScriptingSystem (Morphic-Scripting), CIdentityTransform
> (Tweak-Costume-Transforms), IdentityTransform (Graphics-Transformations).
> These references are of the form "Smalltalk at: Foo ifPresent: []", so they
> don't necessarily need to be removed.
>
> IslandTests>>testImplicitIsland refers in the #at:ifPresent: manner to
> CWindow (Tweak-Widgets-Basic)
>
> SnapshotTracer>>printPath: refers to CObject (Tweak-Core-Object).
>
> In summary then:
>
> * I don't (yet) know how to solve the infinite loop mentioned above. It
> blows all the IslandTests but, thanks to TestRunner's timeouts, your image
> doesn't grow without bound running the tests.
>
> * Islands has some easily-removed or ignorable dependencies on
> ** Graphics-Transformations (IdentityTransform)
> ** Morphic-Menus (MenuIcons)
> ** Morphic-Scripting (ScriptingSystem)
> ** Tweak-Tiles-Definition (CTileDefinition)
> ** Tweak-Basic-Suppport (CCursorLibrary, CIconLibrary)
> ** Tweak-Costum-Transforms (CIdentityTransform)
>
> * Islands has some probably removable dependencies on
> ** Tweak-Core-Objects (CObject)
> ** Tweak-Basic-Support (CDeepCopier)
> ** Croquet-Kernel-Objects (TMutex)
>
> * A number of methods use primitives (especially in FarRef, which looks
> like it duplicates a bunch of stuff from Object - #instVarAt:,
> #instVarAt:put:, and similar). I haven't noted the primitive numbers, nor
> compared them against, say, the primitives Object uses, so I haven't
> verified that Islands doesn't use special numbered primitives. (I presume
> not, although I try run Cobalt on a Cog VM, only for the VM to choke on a
> missing bytecode 204.)
>

Are you sure it chokes on 204?  204 is special selector #new and Cog of
course does recognize that bytecode.  200 is blockCopy: for old blocks and
Cog does not implement this primitively so it'll send #blockCopy:, create a
BlockContext which won't be evaluable because the value primitives are
missing.


> There may be further dependencies; I read through the source, but didn't
> chase every message send for a lack of implementors.
>
> frank
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20110108/48b0d1a2/attachment.htm


More information about the Squeak-dev mailing list