[Vm-dev] Keeping things in sync...

phil at highoctane.be phil at highoctane.be
Tue Dec 3 07:55:49 UTC 2013


Beware that the PharoVM is on https://github.com/pharo-project/pharo-vm now.

Convergence would be neat indeed. (Hey, Simulators...)

Phil





On Tue, Dec 3, 2013 at 12:03 AM, Eliot Miranda <eliot.miranda at gmail.com>wrote:

>
> Hi All,
>
>     I would like to be able to converge the various VMs more, these are
>
> - the Squeak Interpreter VM, using VMMaker (e.g. VMMaker-dtl.330 on
> source.squeak.org),
>   http://squeakvm.org/svn/squeak/trunk/platforms
>   http://squeakvm.org/svn/squeak/trunk/src
>
> - the Pharo VM, using VMMaker-oscog (e.g. VMMaker-oscog-LucFabresse.306)
> on github,
>   git://gitorious.org/cogvm/blessed.git
>
> - the Cog branch, using VMMaker.oscog (e.g. VMMaker.oscog-eem.528)
>   http://www.squeakvm.org/svn/squeak/branches/Cog
>   http://squeakvm.org/svn/squeak/trunk/platforms/iOS
>   http://squeakvm.org/svn/squeak/trunk/platforms/win32/plugins
>   http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins
>
> Things are a little tricky.  I don't have write permission to trunk
> (please can I have this?).  There is some divergence in the platform files.
>
> In particular I wanted to upgrade Cog to have the directory entry
> extensions in the Pharo VM that add the posix permission and the isSymlink
> flags to a directory entry.  This is problematic for various reasons:
>
> 1. AFAIA there is no #define to mark this change in
> plugins/Cross/plugins/FilePlugin/FilePlugin.h.  If there was some define,
> e.g. DirEntryV2, then the platform files could be changed to define either
> API and still compile, e.g.:
>
> /* directories */
>
> sqInt dir_Create(char *pathString, sqInt pathStringLength);
> sqInt dir_Delete(char *pathString, sqInt pathStringLength);
> sqInt dir_Delimitor(void);
> #if DirEntryV2
> sqInt dir_Lookup(char *pathString, sqInt pathStringLength, sqInt index,
>                  /* outputs: */
>                  char *name, sqInt *nameLength, sqInt *creationDate, sqInt
> *modificationDate,
>                  sqInt *isDirectory, squeakFileOffsetType *sizeIfFile,
> sqInt *posixPermissions, sqInt *isSymlink);
> sqInt dir_EntryLookup(char *pathString, sqInt pathStringLength, char*
> nameString, sqInt nameStringLength,
>                 /* outputs: */
>                 char *name, sqInt *nameLength, sqInt *creationDate, sqInt
> *modificationDate,
>                 sqInt *isDirectory, squeakFileOffsetType *sizeIfFile,
> sqInt *posixPermissions, sqInt *isSymlink);
> #else /* DirEntryV2 */
> sqInt dir_Lookup(char *pathString, sqInt pathStringLength, sqInt index,
>         /* outputs: */
>         char *name, sqInt *nameLength, sqInt *creationDate, sqInt
> *modificationDate,
>         sqInt *isDirectory, squeakFileOffsetType *sizeIfFile);
> #endif /* DirEntryV2 */
> sqInt dir_PathToWorkingDir(char *pathName, sqInt pathNameMax);
> ...
>
>  2. the only way I can see to get my hands on the
> Monticello VMMaker-oscog package for the Pharo fork is to pull from git://
> gitorious.org/cogvm/blessed.git, run image/newImage.sh, start-up the
> downloaded image and save the Monticello package from there-in (and this
> doesn't get me what I want, it gets me a renamed copy of the Monticello
> VMMaker-oscog package).
>
> So...
>
> I wonder can we a) start using defines like the above DirEntryV2 so we
> have a chance at harmonising the various VMs?  I added COGVM and STACKVM to
> the branch of trunk I use for platforms, which at least shows what the
> changes are and insulates the trunk Interpreter from these.  Unless we take
> this approach I don't see how we can avoid costly merging instead of
> sharing.
>
> WOuld it be possible for the Pharo VM guys to occasionally push their
> VMMaker-oscog to source.squeak.org?  If this could be automated so much
> the better?
> --
> best,
> Eliot
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20131203/3254b5ec/attachment-0001.htm


More information about the Vm-dev mailing list