In case you didn&#39;t see my embedded reply, I&#39;d appreciate having commenting privileges on the blog, so I can continue this discussion there.<br><br><div class="gmail_quote">On Tue, Mar 15, 2011 at 6:37 PM, Geoffrey Romer <span dir="ltr">&lt;<a href="mailto:geoff.romer@gmail.com">geoff.romer@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Lee-<div><br></div><div>Thanks for your prompt and helpful reply. I&#39;m glad I&#39;m not missing anything obvious, at least.<br>
<br><div class="gmail_quote"><div class="im">On Tue, Mar 15, 2011 at 9:25 AM, Lee Spector <span dir="ltr">&lt;<a href="mailto:lspector@hampshire.edu" target="_blank">lspector@hampshire.edu</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Geoffrey,<br>
<br>
Great question.<br>
<br>
I don&#39;t think you&#39;re missing anything.<br>
<br>
There have been some recent developments on the Push modularity front -- a few related comments are at <a href="http://push.i3ci.hampshire.edu" target="_blank">push.i3ci.hampshire.edu</a>, and there is an article on this under review -- but nothing so well developed (or at least written up) on locality/isolation, which I agree is important.<br>


<br>
That said, a couple of years ago Maarten Keijzer developed an &quot;ENV&quot; (= environment) stack that can be used to store whole states of the interpreter. One can easily imagine using something like this to create local environments for function calls and to provide various other kinds of isolation/protection. As I recall there were a couple of slightly tricky issues to resolve, e.g. regarding return values, and I don&#39;t recall feeling like we had worked out the perfect solution to those. But I&#39;m not sure -- Maarten might well have had good ways to do everything.</blockquote>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Maarten, if you&#39;re reading this then I&#39;d love to have my memory refreshed on this, maybe with an <a href="http://push.i3ci.hampshire.edu" target="_blank">push.i3ci.hampshire.edu</a> post?<br>
<br>
And Geoffrey and any others: I&#39;d love to see progress on this and to contribute in any related discussions.</blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<br>
 -Lee<br>
<br>
PS Geoffrey I think your message bounced from the list because you&#39;re not a member, but I&#39;ve added you to the &quot;can post anyway&quot; list and if you want you could join at <a href="https://lists.hampshire.edu/mailman/listinfo/push" target="_blank">https://lists.hampshire.edu/mailman/listinfo/push</a>.  Also let me know if you want to have posting privileges at <a href="http://push.i3ci.hampshire.edu" target="_blank">push.i3ci.hampshire.edu</a>.<br>

</blockquote><div><br></div></div><div>I don&#39;t know about _posting_ privileges, but commenting privileges would come in handy- I see Maarten has posted a discussion of ENV to the blog, so it might make more sense to continue the discussion there.</div>
<div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div></div><div><br>
<br>
<br>
<br>
On Mar 14, 2011, at 11:21 PM, Geoffrey Romer wrote:<br>
<br>
&gt; Dr. Spector et al-<br>
&gt;<br>
&gt; I came across Push while investigating genetic programming languages as part of a hobbyist alife project I&#39;m tinkering with. I&#39;m really impressed and excited by what I&#39;ve seen so far- Push seems to neatly solve a lot of problems that I&#39;ve been wrestling with. However, one problem has been nagging at me, and I was hoping you might be able to help me with it.<br>


&gt;<br>
&gt; The problem is this: I more or less understand how Push supports the evolution of reusable code, control structures, and so forth, but as far as I can see, it doesn&#39;t seem to support one other aspect of modularity, namely isolation. Push &quot;functions&quot; are defined by the cumulative effect of their constituent operations, not by any abstraction boundary like a function signature, and the language doesn&#39;t seem to provide any notion of data that is local to a module or unit of code. This seems particularly problematic in a genetic programming context: it means that any mutation which results in a different stack depth after executing the mutated region (as compared to the unmutated code) will have a cascading effect through all subsequent code, probably largely invalidating it.<br>


&gt;<br>
&gt; Do I understand this correctly, or am I missing something? The manual refers to local arguments, binding spaces, and environments as possible future features, all of which sound promising in this regard- have there been any developments on those fronts?<br>


<br>
</div></div><font color="#888888">--<br>
Lee Spector, Professor of Computer Science<br>
Cognitive Science, Hampshire College<br>
893 West Street, Amherst, MA 01002-3359<br>
<a href="mailto:lspector@hampshire.edu" target="_blank">lspector@hampshire.edu</a>, <a href="http://hampshire.edu/lspector/" target="_blank">http://hampshire.edu/lspector/</a><br>
Phone: <a href="tel:413-559-5352" target="_blank">413-559-5352</a>, Fax: <a href="tel:413-559-5438" target="_blank">413-559-5438</a><br>
<br>
</font></blockquote></div></div><br></div>
</blockquote></div><br>