Hi bruno Welcome. Do not hesitate to ask questions.
Stef On Fri, Aug 11, 2017 at 4:49 PM, Esteban Lorenzano <esteba...@gmail.com> wrote: > > 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), 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. (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 > > >