Hi Blake,
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 McBrideOn Sun, Dec 2, 2012 at 7:55 PM, Eliot Miranda <eliot.miranda@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