Hi Ian,<br><br><div class="gmail_quote">On Mon, Aug 31, 2009 at 2:08 AM, Ian Piumarta <span dir="ltr">&lt;<a href="mailto:piumarta@speakeasy.net">piumarta@speakeasy.net</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
Unix VM hackers,<br>
<br>
I&#39;ve published a preview of the 3.11.3 Unix VM for the amusement of alpha testers everywhere.  Lots of things are bound to be broken and/or forgotten and/or incomplete and/or begging for improvement.  I&#39;m not quite finished tweaking but comments and suggestions are definitely welcome at this stage!<br>
</blockquote><div><br></div><div>Does the build still create symbolic links, i.e. </div><div>    plugins -&gt; lib/squeak/3.9-7/</div><div>    squeak -&gt; bin/squeak</div><div>    bin/squeak -&gt; ../lib/squeak/3.9-7/squeak</div>
<div><br></div><div>If so, can I suggest trying to do without these?  The rationale is svn on Windows, which is horribly broken by symbolic links.</div><div><br></div><div>At Qwaq we build Linux, Mac OS X and Win32 VMs that live in a single svn tree for the release VMs (the &quot;binary&quot; tree).  Because of the symbolic links in the unix build we have to keep the Unix vm in a gzipped tar file to avoid including symbolic links in a check-out of the build tree on Win32.  That means that checking whether a component such as an external plugin is up-to-date involves unpacking the tar, and doing a diff -r, which is tedious.</div>
<div><br></div><div>Maybe the creation of these symbolic links could be deferred until &quot;make install&quot; time so that doing a simple &quot;make&quot; produces somethign Win32 can live with.</div><div><br></div><div>
cheers</div><div>Eliot</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
Grab sources from the trunk of Subversion, or look in<br>
<br>
  <a href="http://squeakvm.org/unix/alpha" target="_blank">http://squeakvm.org/unix/alpha</a><br>
<br>
for archives of sources and binaries for i386 (Linux, NetBSD, FreeBSD and Solaris) and powerpc (Darwin).  (Files ending in &#39;.sh&#39; are self-extracting archives; run as shell script and follow instructions.)<br>
<br>
The noticeable changes since 3.10 are:<br>
<br>
0. Plugins have been regenerated from latest releases<br>
<br>
At least for those on squeaksource.  Any hiding in more obscure places might still be stale.<br>
<br>
1. New build process based on CMake<br>
<br>
See README in the source archive or platforms/unix/README.CMake in the repository.<br></blockquote><div><br></div><div>Woo hoo!</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
2. Different plugin and FFI library search strategy<br>
<br>
The default plugin directory is now the VM binary directory.  This is correct for installed VMs where the binary lives alongside the plugins in /usr/.../lib/squeak/version/squeakvm.  A launcher script installed as /usr/.../bin/squeak figures out where the VM is (either installed or running from a build directory) and adds a -plugins option appropriately.  The script also does the pulse audio OSS kludge if necessary.  (Another script, squeak.sh, is intended to launch Squeak from a menu.  It&#39;s begging for improvement.)<br>

<br>
SQUEAK_PLUGINS (or the argument to -plugins) can be set to a colon-separated list of places to look for plugins.  (Dave can debug one plugin at a time using &#39;squeakvm -plugins bld/%n:/usr/lib/squeak/&lt;version&gt;&#39;.)<br>

<br>
Libraries are searched only by whatever mechanisms dlopen() uses.  Applications that used to rely on the VM searching every nook and cranny for FFI callouts may have to set LD_LIBRARY_PATH, or whatever local equivalent is provided, to ensure their external functions&#39; libraries are found.<br>

<br>
3. New numbering scheme<br>
<br>
The VM is now numbered X.Y.Z-R where X.Y.Z are the version of VMMaker used to generate the Interpreter and plugins, and R is the Subversion repository revision of the Unix support code.  (The archives are named X.Y.Z.R, just because rpmbuild is grumpy otherwise.)<br>

<br>
Cheers,<br><font color="#888888">
Ian<br>
<br>
</font></blockquote></div><br>