Hi Koh,<div><br></div><div>    yes it can.  The question is will anybody have the time to do it?  It is not part of the plan at Qwaq.  I would love to see the Squeak VM and/or Cog evolve into something loadable as a DLL but need to be in some context where I am funded to do the work or can mentor someone else to do the work.  This is perhaps a project to suggest for the Google summer of code, although porting to ARM and/or PowerPC would be my first priorities.</div>
<div><br></div><div>Here is a rough list of projects I would like to see done in Cog:</div><div><br></div><div>- replace the object model with a simpler two-word header design with class indices in the header and with immedate chjaracters (as discussed here or on vm-dev recently)</div>
<div><br></div><div>- port to AMD64/EMT64 with a 64-bit object representation that uses the two-word header format in the new object model and immediate doubles (as I did in 64-bit VW).<br></div><div><br></div><div>- port the new JIT to ARM and iPhone</div>
<div><br></div><div>- port the new JIT to PowerPC and PlayStation3 (and older Macs)</div><div><br></div><div>- replace the existing garbage collector with</div><div>    - a proper scavenging ephemeral collector</div><div>
    - a proper segmented memory model that can add new segments via memory-mapping (mmap/VirtualAlloc) and release these back to the OS, i.e. can grow and shrink, and that can scale to large heaps</div><div><br></div><div>
- revamp the FFI</div><div>    - replace the FFI/Alien interpreted call-out back-end with one based on an image level ABI compiler that uses Alien-like mechanisms to allocate marshalling code for call-outs and call-backs.</div>
<div>    - merge FFI and Alien so that teh Alien model is used for data management</div><div>    - add threaded call-out/call-back support so that the VM can make multiple concurrent (and hence non-blocking) call-outs, and receiver multiple call-backs, even though the core VM is running at most one Smalltalk process concurrently.</div>
<div>    - use the threaded facilities to allow the VM to be packaged as a DLL which can receive &quot;send-backs&quot;, sends into declared entry-points in the image from a client that loads an image+vm combination as a DLL.</div>
<div><br></div><div>- port Cog beneath other Smalltalks or Smalltalk-like languages</div><div><br><div class="gmail_quote">On Fri, Mar 13, 2009 at 3:16 PM, askoh <span dir="ltr">&lt;<a href="mailto:askoh@askoh.com">askoh@askoh.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br>
Can Cog, the new VM, be made into a DLL that is callable by external<br>
programs? Such a capability will allow Squeak Smalltalk to be used as<br>
plugins or addons in many established programs like CAD, spreadsheets, etc.<br>
<br>
Aik-Siong Koh<br>
<font color="#888888">--<br>
View this message in context: <a href="http://www.nabble.com/Cog-as-DLL-tp22506070p22506070.html" target="_blank">http://www.nabble.com/Cog-as-DLL-tp22506070p22506070.html</a><br>
Sent from the Squeak - Dev mailing list archive at Nabble.com.<br>
<br>
<br>
</font></blockquote></div><br></div>