<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html><body>
<p> </p>
<div class="AppleOriginalContents">
<div>On 12/12/2011, at 10:13 PM, Thorsten Dittmar wrote:</div>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px; width:100%">
<div>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px; width:100%">
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px; width:100%">For that reason I thought that the Klein VM would be one of the right steps.</blockquote>
</blockquote>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px; width:100%">Maybe in the longer term, I think.</blockquote>
<br />ok, so in parallel I will start to search for some research money from the german or european government for that. That always takes some month, so it will perfectly address the "long term" aspect ;-)</div>
</blockquote>
<div class="AppleOriginalContents">Sounds good to me.</div>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px; width:100%">
<div>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px; width:100%">[Cleaning the VM] is necessary, otherwise Apple or Ubuntu or GCC will make some change and we won't be able to compile and that'll be the end. Try finding money or resources to resurrect a platform that no longer compiles or runs - it would be impossible. Bitrot is our enemy.</blockquote>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px; width:100%">That should also as a side effect give us easier bindings to existing third party libraries such as QT or SDL, which gives us better and easier graphics, fonts, sounds, movie playing etc on Linux and Mac, Libevent which gives us high quality networking etc.</blockquote>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px; width:100%">It also gives us opportunities for other interesting stuff. Personally I'd like to try baking SQLite into the VM and making snapshots actual databases including the saved objects. That gives us easy versioning and ability to create baked in object databases, while still retaining a single file snapshot with all its advantages, including the advantage that a wide variety of third party tools could read it in a pinch.</blockquote>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px; width:100%">But all this needs the groundwork done.</blockquote>
<br />So somebody should estimate the effort respectively the money needed. Russel, can you define a little bit more in detail what cleanup here really means? To be honest I have no idea. My last line of C++ was…. before the iron curtain came done...</div>
</blockquote>
<div class="AppleOriginalContents">First step would be to get the VM building cleanly on the current build setup on the latest MacOS X and Ubuntu and the latest XCode and GCC. There are some warnings that the compiler is giving which can be ignored, and some which are about to (or have) turned into errors as features are deprecated by OSX and/or GCC. Part of this would be documenting what is needed to build the VM, and how the build works.</div>
<div class="AppleOriginalContents">I think the next step would be to re-engineer the build system so that the makedeps stage (ie the stuff under $SELF-HOME/bin) is removed and replaced with something less brittle. From experience I have found this to be a big barrier to working on the VM, because it generates various C++ files for me based on the phases of the moon (at least that's what it feels like).  Not all of the stuff under $SELF-HOME/bin is easily compilable itself, which makes compiling the VM proper more difficult. This step is tied in with the foreign objects system used for many primitives.</div>
<div class="AppleOriginalContents">I think many of our problems keeping the VM ticking along come from the complexity of the build and the source tree, which includes a fair amount of the source code equivalents of appendixes - they may have had a use at some stage...</div>
<div class="AppleOriginalContents">I would say the third step would be to replace the Self droplet (currently a compiled AppleScript) so that we can build the Mac OS X VM either as a commandline or as a proper GUI app - as opposed to the half commandline half GUI VM we have now.</div>
<div class="AppleOriginalContents">I'd be interested in David Ungar's perspective on this, as he knows the VM source tree better than anyone!</div>
<div class="AppleOriginalContents">- Russell</div>
</div>
<p> </p>
<div> </div>
</body></html>