<div dir="ltr"><div><div><div></div><div>Hi,<br><br></div>I have been tinkering with Pharo and Squeak 
for a few weeks and I am very enthusiastic with these great pieces of 
software! I would like to ask questions to check my understanding. I am 
refering from time to time to Squeak as it runs on the same VM as Pharo 
but my questions are focused on Pharo.<br></div><div><br>As an exercice 
to learn, I am trying to compile Pharo VMs and get the VM simulator run 
in a Pharo image (first a 32-bit image+VM and later a 64-bit image+VM).<br></div><div>I am doing this both under Ubuntu 14.04 LTS and Mac OS X 10.12.6.<br></div><div>What I succeeded in doing:<br></div><div>-
 compiling the squeak and pharo VM using the state of their respective 
git repo as of about 20 July 2017: on Mac both 32 and 64 bits, on Linux 
only 64 bits (mainly because I did not want to spend the time to fix the
 32-bit libraries which do not coexist well with their 64-bit 
counterparts),<br></div><div>- on Mac, generating the VM development 
image (SpurVMMaker) for Squeak on top a (32 bits) V5 image, launch it 
and run the VM simulator,<br></div><div>- on Mac, generating the VM 
development image (generator.image) for Pharo on top of a (32 bits) V5 
image, launch it and starting to run a CogVMSimulator (which currently 
fails, but I am debugging it and learning along the way.)<br></div><div><br>So, my questions:<br><br>1)
 About the Pharo VM compilation (Below "the" Pharo VM means the official
 VMs that are published on the Pharo website but if VM developers use a 
different process between 2 releases I would be happy to know the 
differences.)<br></div><div>a) is it correct that the Pharo VM is built using the github pharo-vm repository?<br></div><div>b)
 in the pharo-vm tree, is it correct that "build" and "results" 
directories are remnant of the build process before Pharo reunited with 
Squeak on opensmalltalk vm and that the builder classes in the 
generator.image (PharoVMSpur32Builder and co) do not create the build.sh
 script in the "build" directory any more.<br></div><div>c) is it 
correct that the Pharo VM is now built with the pharo.cog.spur (for 
example) make process in the various build sub-directories of the 
"opensmalltalk-vm" directory?<br></div><div><br>2) When running a Pharo VM compiled on Mac, the GUI was noticeably slower that the official VM downloaded from <a href="http://pharo.org" target="_blank">pharo.org</a>.
 (I compared running the official image.) I did not see such slow down 
when compiling a Squeak VM. My educated guess is that it is related to 
libcairo and dependencies. Are there compiler optimisations that I 
should have manually added? Should I generate a XCode project with cmake
 and compile in XCode (I currently use ./mvm make script)? I have not 
had this problem under Linux.<br></div><div><br>3) On Mac, is the difference
 between having the plugins as Mach-O bundle in Squeak and as dylib 
libraries in Pharo only a packaging choice or does it have deeper 
implications? (Does it change for example the way FFI is done?)<br></div><div><br>4)
 Do I understand well that currently the simplest way to convert a 
32-bit image to a 64-bit one is to use Spur32to64BitBootstrap class in a
 VM development image? (As far as I understand, the other way is to use 
SystemTracer.)<br></div><div><br></div><div>A remark: when manually 
compiling a Pharo VM in the pharo-vm repo following Eliot's 
instructions, the updateSCCSVersions script does not work (because it is
 one level down with respect to the top of the git tree as compared to 
the opensmalltalk-vm repository). I eventually understood that the 
correct build procedure is in the travis scripts but as I do not know 
well the CI tools, it took a long time before I thought of looking into 
these scripts. If pharo-vm is used to build the Pharo VM (see question 
1.a) I think it would be good to update the build process in README.md 
in pharo-vm tree (and I can do it).<br><br></div><div>Thanks,<br></div>Bruno<br><br></div>PS: Torsten Bergmann advised to repost here (initially posted on pharo-users).<br></div>