Hi
I've asked John how do I know from the VM version string of the Mac VM which VMMaker version and platform sources version was used to build the VM. Below is his response. Cheers Gabriel In the 90's and early part of 2000 all the source code to build the macintosh VM and to run VMMaker actually was in the image. So when you asked for the vmVersion the string you got back "Squeak4.1 of 17 April 2010 [latest update: #9957]" which told you every you needed to know since the image was tied to the vm development. When I made adjustments to the VM that was actually pushed to the update stream for inclusion in everyone's image. This changed when we decoupled VMMaker from the image, but unfortunately we did not consider how that affected the vmVersion string since as you see it actually does not say which version of VMMaker was used. Now the Squeak VM 4.2.5b1 comes from the bundle information string found in info.plist, but anyone can change that. The other vm version info is via 1006,1007,1008 where for 1006 we return a unique string that the vm builder has to update. This was Andreas idea to have something that could identify the VM version so an image could decide if it was certified to run on a particular VM.. I decided to return the fact it was a macintosh VM, which platform type which would be Carbon or Cocoa now, the version number, the date it was created and the UUID of the machine it was built on. if (id == 1006) { return "Mac Carbon 4.2.5b1 15-Jun-10 >85D9C693-2A2A-4C33-B05C-C20B2A63B166<"; or in the 5.x series case 1006: {/* vm build string also info.plist */ #if (SQ_VI_BYTES_PER_WORD == 4) #if STACKVM return "Mac Cocoa Cog 5.8b12 21-Sep-10 >1B0534FA-246C-47C5-AB29-7A76C81CCDCB<"; case 1007: { /* vm build string also info.plist */ #if STACKVM extern char *__interpBuildInfo; return __interpBuildInfo; #endif break; } case 1008: { /* vm build string also info.plist */ # if COGVM extern char *__cogitBuildInfo; return __cogitBuildInfo; #endif break; } I note that Eliot did resolve the issue by returning 1007, 1008 that shows the vmmaker build info for his COG fork. Now in order to decide what VMMaker source to use. I'm afraid you have to look at the SVN data, In general my process was to update the image used for VMMaker to the current VMMaker on the date of the build, then after it was shown to be a viable VM, I would check in all my changes. See for example #2213 "Mac Carbon VM 4.2.5b1 Update FFI plugin to latest code base. Bring other code base up to VMMaker-jcg.182" or #2158 "64bit work merging from V5 Macintosh Cocoa Squeak VM microsecond & utc clock updates Mac Carbon 4.2.4b1" or #2156 "Mac Carbon 4.2.3b1U VMMaker 160. MicroSecond clock, compiler warning fixes" Sometimes I would include the version info for the vmmaker used. For earlier builds sometimes I would keep a copy of the source code and vmmaker output as an archived file. Those files are part of various GB of folders that I sent Esteban. _______________________________________________ VM-beginners mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/vm-beginners |
Free forum by Nabble | Edit this page |