[Vm-dev] Re: [squeak-dev] New Cog VMs available

Blake McBride blake at mcbride.name
Mon Dec 3 19:39:51 UTC 2012


Hello Eliot,

On Mon, Dec 3, 2012 at 1:09 PM, Eliot Miranda <eliot.miranda at gmail.com>wrote:

>
> Hi Blake,
>
> On Mon, Dec 3, 2012 at 7:10 AM, Blake McBride <blake at mcbride.name> wrote:
>
>> Greetings,
>>
>> I tried to integrate Squeak to a C based application more than six years
>> ago.  The project failed because we were not able to have our application
>> call Squeak, then have Squeak call the application, and then the
>> application call Squeak again recursively.  An analysis of the Squeak VM
>> revealed a kernel design consisting of a lot of global variables - quite
>> unnecessarily.  The unnecessary use of global variables over a localized
>> structure for example unnecessarily prevented the use of Squeak as an
>> extension language (unless you had no recursion).  I spent several days
>> trying to re-structure the Squeak kernel but I kept running into problems
>> and just ran out of time.
>>
>> As a side note, that company I was with ended up making a lot of
>> investment in Scheme because we were easily able to integrate that language
>> with our application.  Now, not only is Scheme used heavily within that
>> company but many of their clients use it too to customize their application.
>>
>> This brings me to my question, is COG reentrant?
>>
>
> Yes it is.  It supports call-outs and call-ins.  But currently there is no
> support for Cog to be packaged as a DLL.  You have to start by calling C
> from Squeak.
>

I believe the regular Squeak supports call-outs and call-ins as well.  The
real question is if it can be done recursively.

Can you initialize a new instance of the VM in the middle of a nested
call-in / callout?

Can an instance be cloned?  Destroyed?


Thanks.

Blake



>
>
>
>
>>  If not, as the author of COG, I would think it relatively easy to
>> restructure it to be so.  Such a design capability can make a huge
>> difference to COG's acceptance to many.  It may even be the reason to
>> switch to COG.
>>
>
> Yes indeed.   The issue is of course funding to spend the time to make the
> necessary changes.
>
>
>> Just sharing some thoughts.  Thanks.
>>
>> Blake McBride
>>
>> On Sun, Dec 2, 2012 at 7:55 PM, Eliot Miranda <eliot.miranda at gmail.com>wrote:
>>
>>> ...in http://www.mirandabanda.org/files/Cog/VM/VM.r2628.
>>>
>>> These fix a bug with pc mapping that could cause the Vm to crash on
>>> simple loops containing arithmetic on constants (e.g. 1 to: 20 do: [:i|
>>> 1=1]).  They also cause the instantiation primitives to pop all their
>>> arguments rather than assume their argument count is 0 or 1.  More change
>>> info available in the directory.
>>> --
>>> best,
>>> Eliot
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>
>
> --
> best,
> Eliot
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20121203/0abfccdd/attachment-0001.htm


More information about the Vm-dev mailing list