Cog VM continuous integration: update

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

Cog VM continuous integration: update

Igor Stasenko
Hello, all.

Last few weeks i concentrated my efforts to make Windows slave working
and merge the updates made by Eliot and
synchronize source with svn.
It took quite a bit time to set up windows slaves (multiple people
were involved). I don't want to go into details, but there was some
technical issues,
as well as complications with connecting windows with non-windows,
firewalls etc etc.
At least now it is working and we can build windows VMs.

A merge also costed me quite of a time, since Andreas reorganized
sources and merged cross and win32 plugin codebase with squeak branch
using of svn:externals.
And while i, no doubt, welcome the merge, i had to spend time learning
how i could mirror that on git.
The only thing which i can say after this: git is superior tool. Its a
pity that i had to waste my time fighting with svn, while its only a
question of couple of minutes
for developer(s) to clone sources from git and start using it instead of svn.

So, after couple of hiccups and show-stoppers now everything more-or
less run smoothly on Hudson, (except from stack vm on win32).

Here the list of builds which currently available for download.

Mac:

Cog/Mac Carbon
https://pharo-ic.lille.inria.fr/hudson/view/Cog/job/Cog%20Mac%20Carbon/

Stack VM/ Mac Carbon
https://pharo-ic.lille.inria.fr/hudson/view/Cog/job/StackVM%20Mac%20Carbon/

Linux:
Cog
https://pharo-ic.lille.inria.fr/hudson/view/Cog/job/Cog%20Unix/
Stack VM/ Unix
https://pharo-ic.lille.inria.fr/hudson/view/Cog/job/Stack%20VM%20Unix/


A new kid on the block Windows:

Cog/Win32
https://pharo-ic.lille.inria.fr/hudson/view/Cog/job/CogWin32/

(the Stack VM has linking problems which is yet to be solved, see my
post on vm-dev list)


To download VM just follow one of the links and then pick the .zip with VM.

As for Mac Cocoa VMs: they are broken for now, because yet unmerged.
Hopefully Esteban will find time to update
his branch soon.

The next step is to run tests for built VMs. For this i planning to
create a specialized package, which will contain code snippets for
loading & firing off various tests,
because currently all tests are a bunch of .st scripts, and managing
files over dozen of networked machines is not fun.
So, i think i will just take these snippets and put them into single
MC package, so then it could be managed much easier.

--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: Cog VM continuous integration: update

Marcus Denker-4

On Jul 1, 2011, at 2:55 PM, Igor Stasenko wrote:
>
> So, after couple of hiccups and show-stoppers now everything more-or
> less run smoothly on Hudson, (except from stack vm on win32).
>
Very nice!!!

What this VM has (as it merges all changes of Igor) is support for Ephemerons.

The ephemerons-imageside.3.cs from http://code.google.com/p/cog/issues/detail?id=44
has the image side.

        Marcus


--
Marcus Denker  -- http://www.marcusdenker.de
INRIA Lille -- Nord Europe. Team RMoD.


Reply | Threaded
Open this post in threaded view
|

Re: Cog VM continuous integration: update

Igor Stasenko
On 1 July 2011 15:56, Marcus Denker <[hidden email]> wrote:

>
> On Jul 1, 2011, at 2:55 PM, Igor Stasenko wrote:
>>
>> So, after couple of hiccups and show-stoppers now everything more-or
>> less run smoothly on Hudson, (except from stack vm on win32).
>>
> Very nice!!!
>
> What this VM has (as it merges all changes of Igor) is support for Ephemerons.
>
> The ephemerons-imageside.3.cs from http://code.google.com/p/cog/issues/detail?id=44
> has the image side.
>

Yes, and it contains a long awaited fix for problems with large images
on windows. So i'd like to hear from Tudor if it works for him.
http://code.google.com/p/cog/issues/detail?id=46



--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: Cog VM continuous integration: update

Mariano Martinez Peck
Igor, thank you so much for the push. I know that the merge was not easy at all and neither setting up the windows slave.
I cannot say more than just thank you.


On Fri, Jul 1, 2011 at 4:16 PM, Igor Stasenko <[hidden email]> wrote:
On 1 July 2011 15:56, Marcus Denker <[hidden email]> wrote:
>
> On Jul 1, 2011, at 2:55 PM, Igor Stasenko wrote:
>>
>> So, after couple of hiccups and show-stoppers now everything more-or
>> less run smoothly on Hudson, (except from stack vm on win32).
>>
> Very nice!!!
>
> What this VM has (as it merges all changes of Igor) is support for Ephemerons.
>
> The ephemerons-imageside.3.cs from http://code.google.com/p/cog/issues/detail?id=44
> has the image side.
>

Yes, and it contains a long awaited fix for problems with large images
on windows. So i'd like to hear from Tudor if it works for him.
http://code.google.com/p/cog/issues/detail?id=46



--
Best regards,
Igor Stasenko AKA sig.




--
Mariano
http://marianopeck.wordpress.com

Reply | Threaded
Open this post in threaded view
|

Re: Cog VM continuous integration: update

Tudor Girba-2
In reply to this post by Igor Stasenko
Great work!

I will test the VM as soon as I can.

Thanks,
Doru


On 1 Jul 2011, at 16:16, Igor Stasenko wrote:

> On 1 July 2011 15:56, Marcus Denker <[hidden email]> wrote:
>>
>> On Jul 1, 2011, at 2:55 PM, Igor Stasenko wrote:
>>>
>>> So, after couple of hiccups and show-stoppers now everything more-or
>>> less run smoothly on Hudson, (except from stack vm on win32).
>>>
>> Very nice!!!
>>
>> What this VM has (as it merges all changes of Igor) is support for Ephemerons.
>>
>> The ephemerons-imageside.3.cs from http://code.google.com/p/cog/issues/detail?id=44
>> has the image side.
>>
>
> Yes, and it contains a long awaited fix for problems with large images
> on windows. So i'd like to hear from Tudor if it works for him.
> http://code.google.com/p/cog/issues/detail?id=46
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>

--
www.tudorgirba.com

"One cannot do more than one can do."




Reply | Threaded
Open this post in threaded view
|

Re: Cog VM continuous integration: update

Yanni Chiu
In reply to this post by Igor Stasenko
On 01/07/11 8:54 AM, Igor Stasenko wrote:
>
> The next step is to run tests for built VMs. For this i planning to
> create a specialized package, which will contain code snippets for
> loading&  firing off various tests,
> because currently all tests are a bunch of .st scripts, and managing
> files over dozen of networked machines is not fun.
> So, i think i will just take these snippets and put them into single
> MC package, so then it could be managed much easier.

Building VM's on CI server is a great step forward. Thanks for making it
happen.

I'm curious about how to test each build. For a C compiler, typically a
fixed-point is done - i.e. compile the new compiler (yielding stage1
compiler), then use the stage1 compiler to compile the new compiler
again (yielding stage2 compiler). Repeat to get stage3 compiler. The
stage2 and stage3 compiler binaries are supposed to be identical. Then,
in a C/UNIX system, recompiling the OS and tools was a good test suite.

There may be some equivalent thing to do for a JIT/VM + image, but I
can't figure out what it is. Maybe all the method dictionaries need to
be written out in canonical order, then the stage2 and stage3 results
compared. But, that would only test the compiler, not the JIT
functionality. Anyways, just some random thoughts...


Reply | Threaded
Open this post in threaded view
|

Re: Cog VM continuous integration: update

Eliot Miranda-2


On Fri, Jul 1, 2011 at 12:40 PM, Yanni Chiu <[hidden email]> wrote:
On 01/07/11 8:54 AM, Igor Stasenko wrote:

The next step is to run tests for built VMs. For this i planning to
create a specialized package, which will contain code snippets for
loading&  firing off various tests,
because currently all tests are a bunch of .st scripts, and managing
files over dozen of networked machines is not fun.
So, i think i will just take these snippets and put them into single
MC package, so then it could be managed much easier.

Building VM's on CI server is a great step forward. Thanks for making it happen.

I'm curious about how to test each build. For a C compiler, typically a fixed-point is done - i.e. compile the new compiler (yielding stage1 compiler), then use the stage1 compiler to compile the new compiler again (yielding stage2 compiler). Repeat to get stage3 compiler. The stage2 and stage3 compiler binaries are supposed to be identical. Then, in a C/UNIX system, recompiling the OS and tools was a good test suite.

There may be some equivalent thing to do for a JIT/VM + image, but I can't figure out what it is. Maybe all the method dictionaries need to be written out in canonical order, then the stage2 and stage3 results compared. But, that would only test the compiler, not the JIT functionality. Anyways, just some random thoughts...

?

The VM source is generated in a canonical order (essentially alphabetic by function, but with exceptions; the interpret interpreter main loop comes first).  This source is pure C and compiled with the C compiler.  The VM is tested by running tests in the image while running above the VM.

HTH
-- 
best,
Eliot