[squeak-dev] New Cog VMs available
Bob Arning
arning315 at comcast.net
Mon Dec 3 16:25:15 UTC 2012
On 12/3/12 11:01 AM, Blake McBride wrote:
> The interaction would be slower, and the installation / integration
> would be more complex.
I'd like to understand better what sort of calls you wanted to make from
C to Squeak. I was thinking the reason you wanted Squeak included was
for some non-trivial processing, so the socket time might not matter
much. If you are calling Squeak to convert a character from upper to
lowercase, then interaction would be noticeably slower. Could you give
an example or two?
> Back then, all we did was install the exe on the server. Client
> computer connection merely loaded the latest exe. No need to startup
> another app and share a socket, etc.. This would never work in
> instances where you have 100 users all on different machines. You'd
> have one conflict after another.
So, in your ideal world, where did Squeak get installed? Bundled in the
C app on each client? As a separate app on each client? Once on a server
somewhere?
>
> Also, doing it in a client/server motif as you describe means that any
> global state information made by one call would affect other calls.
Why would there be any global information? If client #27 sent a request
to the squeak app, the squeak app could limit its response to data that
client would need to know.
> In true reentrancy each recursive call would essentially get their
> own VM.
They could, but what's in the VM that they really need a separate copy of?
Cheers,
Bob
>
> Thanks.
>
> Blake
>
>
>
> On Mon, Dec 3, 2012 at 9:39 AM, Bob Arning <arning315 at comcast.net
> <mailto:arning315 at comcast.net>> wrote:
>
> Seems like you could do that fairly easily without making the VM
> re-entrant (whatever that might mean/entail). If you thought of
> your Squeak app and your C app as two computers on a network, they
> could send each other requests and responses all day long. No
> magic required.
>
> Cheers,
> Bob
>
>
> On 12/3/12 10:10 AM, Blake McBride 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? 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.
>>
>> Just sharing some thoughts. Thanks.
>>
>> Blake McBride
>>
>> On Sun, Dec 2, 2012 at 7:55 PM, Eliot Miranda
>> <eliot.miranda at gmail.com <mailto:eliot.miranda at gmail.com>> wrote:
>>
>> ...in http://www.mirandabanda.org/files/Cog/VM/VM.r2628
>> <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
>>
>>
>>
>>
>>
>>
>>
>
>
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20121203/5f19071f/attachment.htm
More information about the Squeak-dev
mailing list
|