<div>Looks good except one thing: you really wouldn'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'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>