[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