<div>Looks good except one thing: you really wouldn&#39;t want to gc environment (see MZ_GC_CHECK) before registering  it with MZ_REGISTER_STATIC.</div><div><br></div><div>BTW are there any guarantees that MZ_REGISTER_STATIC doesn&#39;t trigger garbage collection?</div>

<div><br></div>@@ -861,6 +865,12 @@<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>     scheme_set_stack_base(stack_base, 1);</div>

<div> #endif</div><div> </div><div>+#ifndef TRAMPOLINED_MZVIM_STARTUP</div><div>+    /* in newer versions of precise GC the initial env has been created */</div>
<div>+    environment = scheme_basic_env();</div><div>+#endif</div><div>+    MZ_GC_CHECK();</div><div>+</div><div>     MZ_REGISTER_STATIC(environment);</div><div>     MZ_REGISTER_STATIC(curout);</div><div>     MZ_REGISTER_STATIC(curerr);</div>


<div>@@ -869,10 +879,6 @@</div><div>     MZ_REGISTER_STATIC(exn_message);</div><div>     MZ_REGISTER_STATIC(vim_exn);</div><div> </div><div>-#ifndef TRAMPOLINED_MZVIM_STARTUP</div><div>-    /* in newer versions of precise GC the initial env has been created */</div>


<div>-    environment = scheme_basic_env();</div><div>-#endif</div><div>     MZ_GC_CHECK();</div><div> </div><div><br></div></div></blockquote></div>