We were thinking about using Hydra for a recent project for this reason. Our FFI calls were doing network I/O that made it impossible to maintain an acceptable frame rate in Croquet.<br><br>Unfortunately I didn&#39;t find the time to dig into this but our image size was already a problem and I assumed that this approach would make that problem worse. Maybe a Pharo image could exist on one thread to do network I/O and a regular Croquet thread could run on another thread?<br>
<br>I recall that Hydra was released early because it was unexpectedly successful, but I haven&#39;t heard much about it since then.<br><br>Steve<br><br><div class="gmail_quote">On Fri, Feb 6, 2009 at 12:59 PM, Eliot Miranda <span dir="ltr">&lt;<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br><br><div class="gmail_quote"><div><div></div><div class="Wj3C7c">On Fri, Feb 6, 2009 at 11:32 AM, Igor Stasenko <span dir="ltr">&lt;<a href="mailto:siguctua@gmail.com" target="_blank">siguctua@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
2009/2/6 Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt;:<br>
<div><div></div><div>&gt;<br>
&gt;<br>
&gt; On Fri, Feb 6, 2009 at 10:13 AM, Igor Stasenko &lt;<a href="mailto:siguctua@gmail.com" target="_blank">siguctua@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; The main reason, which prevents squeak to use as embedded solution is<br>
&gt;&gt; a structure of VM.<br>
&gt;&gt; - there are many points when it assuming that it runs standalone<br>
&gt;&gt; - the main interpret() function is an endless loop and not reentrant,<br>
&gt;&gt; which makes it hard to interoperate with host process , like Lua does.<br>
&gt;&gt; recent updates added a callbacks, so they can be used as a kind of<br>
&gt;&gt; workaround to solve that issue.<br>
&gt;<br>
&gt; I either solved these issues or found they were non-issues in the context of<br>
&gt; VisualWorks in 1997/98 and made it function as a Web browser plugin. &nbsp;I used<br>
&gt; my threaded FFI that allows different threads to call-in and out of the VM,<br>
&gt; so that the Smalltalk image was fully active all the time even when the<br>
&gt; browser was not calling into it. &nbsp;The VM was loadable as a DLL and was<br>
&gt; supplied with an image file (which can be embedded as data, e.g. in a<br>
&gt; Windows exe&#39;s resources) in an init call which returns once the image as<br>
&gt; loaded. &nbsp;The entry-points in the DLL can then be called from code that has<br>
&gt; loaded the DLL. &nbsp;Inside these entry-points are rendezvous-style call-backs<br>
&gt; that the single-threaded Vm responds to.<br>
&gt; I think (ok, know) the issue is not the image but the lack of a threaded<br>
&gt; FFI.<br>
&gt; For reference, the external doc to my thrteaded interconnect is at<br>
&gt; &nbsp; &nbsp; <a href="http://www.cincomsmalltalk.com/CincomSmalltalkWiki/VisualWorks+THAPI" target="_blank">http://www.cincomsmalltalk.com/CincomSmalltalkWiki/VisualWorks+THAPI</a><br>
&gt; I have internal doc somewhere which belongs to Cincom so if anyone is<br>
&gt; interested I&#39;ll ask Cincom for permission to publish it and if they say yes<br>
&gt; then I&#39;ll make it available, e.g. on my web site.<br>
<br>
</div></div>i know there is a squeak browser plugin for a while. But its not<br>
really a solution.<br>
Its mainly a patches everywhere in VM to allow it to interoperate with<br>
browser, but nothing more. There is no any API which can be used to<br>
speak with VM from any host application.<br>
Of course, a host application may disguise itself as a plugin and use<br>
a plugin interpreter proxy protocol.<br>
So, it can be seen as an embedded VM, with only exception, that scheme<br>
is reverse: VM plays role as a master, and your application - slave,<br>
and VM telling you what to do by calling primitives.<br>
The most significant part of functionality is lacking: there is no<br>
support of a message send from host application to VM. Making it<br>
available would make writing a host applications much easier.</blockquote><div><br></div></div></div><div>I understand. &nbsp;My message said that I have solved the problem of allowing &quot;a&nbsp;message send from host application to VM&quot; in the VisualWorks VM using a threaded FFI. &nbsp;This solution is also applicable to Squeak.</div>

<div><br></div><div>So if you want to solve this in the current Squeak a low-cost way is to write a threaded FFI, i.e. extend the current FFI to support threads.</div><div><div></div><div class="Wj3C7c"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<br>
<div><div></div><div><br>
&gt;&gt;<br>
&gt;&gt; 2009/2/6 Steve Wart &lt;<a href="mailto:steve.wart@gmail.com" target="_blank">steve.wart@gmail.com</a>&gt;:<br>
&gt;&gt; &gt; That&#39;s an interesting idea. Quite a lot of the momentum in Python, Lua,<br>
&gt;&gt; &gt; ECMAScript, etc. come from their embedded-ness.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Smalltalk was built embedded in an OS that it was never entirely<br>
&gt;&gt; &gt; comfortable<br>
&gt;&gt; &gt; with, although there have been many attempts at scripting Smalltalk from<br>
&gt;&gt; &gt; other programs, Seaside being the most notable success.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I suggest that this ideal already exists. The benefits come from<br>
&gt;&gt; &gt; specific<br>
&gt;&gt; &gt; implementations.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; It would be interesting to see a Croquet variant with a modern game<br>
&gt;&gt; &gt; engine.<br>
&gt;&gt; &gt; Smalltalk and C++ should be able to play well together.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Steve<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Fri, Feb 6, 2009 at 8:53 AM, askoh &lt;<a href="mailto:askoh@askoh.com" target="_blank">askoh@askoh.com</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; I think it is good you dare to speak your mind. I also think that the<br>
&gt;&gt; &gt;&gt; Squeak<br>
&gt;&gt; &gt;&gt; community can take that. Keep your ideas coming.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; I would like Squeak to be callable from other programs so that it can<br>
&gt;&gt; &gt;&gt; be<br>
&gt;&gt; &gt;&gt; used as plugins.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Aik-Siong Koh<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Giuseppe Luigi Punzi Ruiz wrote:<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; We have elections soon.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; I&#39;ts time to think about the project. What we search? What new<br>
&gt;&gt; &gt;&gt; &gt; developers search?<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; I think, probably, Squeak, needs a refactoring on the ideas behind.<br>
&gt;&gt; &gt;&gt; &gt; The<br>
&gt;&gt; &gt;&gt; &gt; people thath wants etoys, use etoys image. Croquet uses his own<br>
&gt;&gt; &gt;&gt; &gt; image.<br>
&gt;&gt; &gt;&gt; &gt; Now, at the moment (2009), I&#39;m 90% sure, the people thath go to<br>
&gt;&gt; &gt;&gt; &gt; <a href="http://squeak.org" target="_blank">squeak.org</a>, and get the latest Squeak, now, are developers searching<br>
&gt;&gt; &gt;&gt; &gt; a<br>
&gt;&gt; &gt;&gt; &gt; good smalltalk (something similar to VW but opensource I means) to<br>
&gt;&gt; &gt;&gt; &gt; use<br>
&gt;&gt; &gt;&gt; &gt; in their projects, not the use of Squeak as multimedia, or something<br>
&gt;&gt; &gt;&gt; &gt; similar. I know this for all spanish people ask me about Squeak, or<br>
&gt;&gt; &gt;&gt; &gt; developers &quot;going out the list&quot; searching Pharo, an approach to the<br>
&gt;&gt; &gt;&gt; &gt; things I say.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; I like the idea about a console squeak (like GST) with the objects<br>
&gt;&gt; &gt;&gt; &gt; living in memory, but not dependent of the &quot;World&quot;, launching the<br>
&gt;&gt; &gt;&gt; &gt; actual<br>
&gt;&gt; &gt;&gt; &gt; Squeak World as an object (I don&#39;t know if is the actual behaviour, I<br>
&gt;&gt; &gt;&gt; &gt; only dream) if you want, or launching something like VW (or Dolphin)<br>
&gt;&gt; &gt;&gt; &gt; working over TK or GTK or WxWidgets or technologys like XUL<br>
&gt;&gt; &gt;&gt; &gt; instead.....I like the idea of an UI Painter....I like the idea of<br>
&gt;&gt; &gt;&gt; &gt; all<br>
&gt;&gt; &gt;&gt; &gt; Squeak tools running over web too..well, this idea don&#39;t like it very<br>
&gt;&gt; &gt;&gt; &gt; much :)..but I don&#39;t have the skills for all of this, for this I<br>
&gt;&gt; &gt;&gt; &gt; offer<br>
&gt;&gt; &gt;&gt; &gt; the ideas. But most important, is the community has vote for this<br>
&gt;&gt; &gt;&gt; &gt; things. The community needs to stay informed about the movements. I<br>
&gt;&gt; &gt;&gt; &gt; think, this, is the right direction.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; I don&#39;t know what you all think, but IMHO, it&#39;s the moment to get a<br>
&gt;&gt; &gt;&gt; &gt; new<br>
&gt;&gt; &gt;&gt; &gt; Squeak 4 from zero, trying to preserve the core classes, with new<br>
&gt;&gt; &gt;&gt; &gt; ideas<br>
&gt;&gt; &gt;&gt; &gt; and ambitions.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; I don&#39;t like very much the idea about all list hating me, but, after<br>
&gt;&gt; &gt;&gt; &gt; this mail, I know you hate me :P<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; P.D.: Yes, probably, I&#39;m crazy too.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; --<br>
&gt;&gt; &gt;&gt; View this message in context:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; <a href="http://www.nabble.com/-squeak-dev--Winds-of-change-tp21872826p21876368.html" target="_blank">http://www.nabble.com/-squeak-dev--Winds-of-change-tp21872826p21876368.html</a><br>
&gt;&gt; &gt;&gt; Sent from the Squeak - Dev mailing list archive at Nabble.com.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Best regards,<br>
&gt;&gt; Igor Stasenko AKA sig.<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
</div></div>--<br>
<div><div></div><div>Best regards,<br>
Igor Stasenko AKA sig.<br>
<br>
</div></div></blockquote></div></div></div><br>
<br><br>
<br></blockquote></div><br>