Keeping things in sync...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Keeping things in sync...

Eliot Miranda-2
 
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),

- the Pharo VM, using VMMaker-oscog (e.g. VMMaker-oscog-LucFabresse.306) on github,

- the Cog branch, using VMMaker.oscog (e.g. VMMaker.oscog-eem.528)

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
Reply | Threaded
Open this post in threaded view
|

Re: Keeping things in sync...

Igor Stasenko
 



On 3 December 2013 00:03, Eliot Miranda <[hidden email]> 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),

- the Pharo VM, using VMMaker-oscog (e.g. VMMaker-oscog-LucFabresse.306) on github,

nooo.. wrong since (3 months?)

The Pharo VM is on github now:

https://github.com/pharo-project/pharo-vm

the github repository not deleted obviously because there are not
just pharo users of it, and because originally it was intended to be used by
everyone, not just for Pharo and by Pharo.

But we moved on new place, so don't expect anyone from Pharo team
taking care updating gitorious repository.

 
- the Cog branch, using VMMaker.oscog (e.g. VMMaker.oscog-eem.528)

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?

i was quite a while out of VM context, so i let others (@Esteban) to reply to this one.
 
--
best,
Eliot




--
Best regards,
Igor Stasenko.
Reply | Threaded
Open this post in threaded view
|

Re: Keeping things in sync...

philippeback
In reply to this post by Eliot Miranda-2
 
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 <[hidden email]> 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),

- the Pharo VM, using VMMaker-oscog (e.g. VMMaker-oscog-LucFabresse.306) on github,

- the Cog branch, using VMMaker.oscog (e.g. VMMaker.oscog-eem.528)

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


Reply | Threaded
Open this post in threaded view
|

Re: Keeping things in sync...

EstebanLM
In reply to this post by Eliot Miranda-2
 
Hi Eliot, 

I think we can set a process to commit to source.squeak.org time to time... but that will still not solve the problem with the platform sources. Those ones will still be at github. 
(Now I'm full of work, give me one week to set the process). 

btw, If you do now want to do the git clone, etc. process, you can always download:


this packages have all the structure (sources + generated image). 

cheers, 
Esteban

On Tue, Dec 3, 2013 at 12:03 AM, Eliot Miranda <[hidden email]> 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),

- the Pharo VM, using VMMaker-oscog (e.g. VMMaker-oscog-LucFabresse.306) on github,

- the Cog branch, using VMMaker.oscog (e.g. VMMaker.oscog-eem.528)

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


Reply | Threaded
Open this post in threaded view
|

Re: Keeping things in sync...

Igor Stasenko
 



On 4 December 2013 13:04, Esteban Lorenzano <[hidden email]> wrote:
 
Hi Eliot, 

I think we can set a process to commit to source.squeak.org time to time... but that will still not solve the problem with the platform sources. Those ones will still be at github. 
(Now I'm full of work, give me one week to set the process). 

btw, If you do now want to do the git clone, etc. process, you can always download:

i guess you meant 'do not want' ?
 

this packages have all the structure (sources + generated image). 

cheers, 
Esteban

On Tue, Dec 3, 2013 at 12:03 AM, Eliot Miranda <[hidden email]> 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),

- the Pharo VM, using VMMaker-oscog (e.g. VMMaker-oscog-LucFabresse.306) on github,

- the Cog branch, using VMMaker.oscog (e.g. VMMaker.oscog-eem.528)

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






--
Best regards,
Igor Stasenko.