> On 11 Aug 2017, at 12:08, Bruno Durin <bruno.du...@gmail.com> wrote:
> 
> Hi,
> 
> 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.
> 
> 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).
> I am doing this both under Ubuntu 14.04 LTS and Mac OS X 10.12.6.
> What I succeeded in doing:
> - 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)
> - on Mac, generating the VM development image (SpurVMMaker) for Squeak on top 
> a (32 bits) V5 image, launch it and run the VM simulator,
> - 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.)
> 
> So, my questions:
> 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.)
> a) is it correct that the Pharo VM is built using the github pharo-vm 
> repository?

yes and no.
- the officially distributed pharo-vm is built on 
opensmalltalk/opensmalltalk-vm and published into our servers. 
- we keep pharo-vm (in which opensmalltalk-vm is a subtree) repo as a 
CI/testing platform (that produces the “nightly-built” VMs from 
files.pharo.org/vm/nigthtly-builds 
<http://files.pharo.org/vm/nigthtly-builds>), but this is used just for testing 
results, etc. the VMs that people should use are produced in the main 
repository.
 
> 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.

yes.

> 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?

yes.

> 2) When running a Pharo VM compiled on Mac, the GUI was noticeably slower 
> that the official VM downloaded from pharo.org <http://pharo.org/>. (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.

no. I have no idea why you have a slower UI but
- it is not related to cairo since standard pharo does not use it (just athens 
does)
- you should not need to do anything manually (besides executing ./mvm -f)
- you do not need to generate an Xcode project either…

> 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?)

it's just a packaging choice.

> 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.)

yes.
I don’t even know if it is *possible* with system tracer right now :)

> 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).

yes, that’s right :)

cheers,
Esteban

> 
> Thanks,
> Bruno
> 
> 

Reply via email to