<br><br><div class="gmail_quote">On Tue, Mar 19, 2013 at 5:19 AM, David T. Lewis <span dir="ltr">&lt;<a href="mailto:lewis@mail.msen.com" target="_blank">lewis@mail.msen.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im"><br>
On Tue, Mar 19, 2013 at 12:51:02PM +0100, Esteban Lorenzano wrote:<br>
&gt;<br>
&gt; yes... in that case, since some time now I want to propose a VMMaker package split.<br>
&gt; I still do not have a real suggestion now, but looks to me that we should be able to split it in something like:<br>
&gt;<br>
&gt; VMMaker-Core<br>
&gt;       VMMaker-Cog<br>
&gt;       VMMaker-Interpreter<br>
&gt;       VMMaker-Plugins<br>
&gt;               VMMaker-Plugin1<br>
&gt;               ...<br>
&gt;               VMMaker-PluginN<br>
&gt; VMMaker-InterpreterSimulation<br>
&gt; VMMaker-JITSimulation<br>
&gt;<br>
&gt; etc...<br>
&gt;<br>
&gt; (hierarchy for dependences)<br>
&gt;<br>
&gt; this time we can reduce the granularity and restrain the changes just to where it is needed...<br>
&gt;<br>
&gt; what do you think?<br>
&gt;<br>
<br>
</div>This will be a good idea when, and only when, we have achieved real progress<br>
in merging the oscog and trunk branches. We are not there yet.<br>
<br>
I would be interested to hear from Eliot, but from my point of view this would<br>
make it much more difficult to manage the changes between the two branches.<br>
<br>
I have some experience in dealing with this in the OSProcess and CommandShell,<br>
and I found that in some cases splitting things into too many packages can<br>
cause a lot of unnecessary work with little real benefit. I would rather live<br>
with the wasted disk space and rely on Monticello to manage the changes.<br>
<br>
Clearly though it is a good objective longer term, and we will get there.<br>
<br>
Dave<br></blockquote><div><br></div><div>Personally I like the following broad separation:</div><div><br></div><div>1. VM (Interpreter, StackInterpreter, CoInterpreter, Cogit, Simulation)</div><div>2. Plugins</div><div>3. Slang + VMMaker</div>
<div><br></div><div>The VM and the simulator are too tightly bound to separate and I don&#39;t see much use in separating off the simulator; it&#39;s not that large.  Note that the processor support for simulation of the Cog VM is in Cog already.</div>
<div><br></div><div>Plugins are logically distinct and it would be a step towards merging the trunk interpreter and Cog if plugins were in a separate package and merged.  I&#39;d be for doing this quite soon.</div><div><br>
</div><div>With Slang + VMMaker separated we might find it easier to experiment with e.g. using the Cog Slag on the Interpreter (the other way round isn&#39;t going to work, sicne Cog requires lots of Slang extensions, especially with record types such as CogMethod).</div>
<div><br></div><div>But the main problem I see here is that there&#39;s lots of Slang dependencies on the class side of Interpreter classes, all of the translation protocol for example.  That might be quite hard to tease out.  I think separating plugins is the worthwhile step now.  What do y&#39;all think?</div>
</div>-- <br>best,<div>Eliot</div>