About new Cog update

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

About new Cog update

Igor Stasenko
 
Hi, Eliot

is your new stuff having platform-specific files changes?

I'm asking because i'd like to merge it with VMMaker-oscog-EstebanLorenzano.50
and then bump the package versions in ConfigurationOfCog


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

Re: About new Cog update

Eliot Miranda-2
 


On Thu, Mar 17, 2011 at 7:46 AM, Igor Stasenko <[hidden email]> wrote:
Hi, Eliot

is your new stuff having platform-specific files changes?

The Sista stuff requires nothing new.   I think I've already integrated the changes necessary for the threaded VM but I've only tried to build the threaded VM against the Teleplace platforms hierarchy, not yet against the oscog platforms hierarchy.  So if you try and build the threaded VM you may hit problems, you may not.  I'll get around to doing that soon.


I'm asking because i'd like to merge it with VMMaker-oscog-EstebanLorenzano.50
and then bump the package versions in ConfigurationOfCog


--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: About new Cog update

Igor Stasenko

On 17 March 2011 18:07, Eliot Miranda <[hidden email]> wrote:

>
>
> On Thu, Mar 17, 2011 at 7:46 AM, Igor Stasenko <[hidden email]> wrote:
>>
>> Hi, Eliot
>>
>> is your new stuff having platform-specific files changes?
>
> The Sista stuff requires nothing new.   I think I've already integrated the
> changes necessary for the threaded VM but I've only tried to build the
> threaded VM against the Teleplace platforms hierarchy, not yet against the
> oscog platforms hierarchy.  So if you try and build the threaded VM you may
> hit problems, you may not.  I'll get around to doing that soon.

and sorry for ignorance..
what is the magic invocation for generating sources for threaded VMs?


>>
>> I'm asking because i'd like to merge it with
>> VMMaker-oscog-EstebanLorenzano.50
>> and then bump the package versions in ConfigurationOfCog
>>
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.
>
>



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

Re: About new Cog update

Eliot Miranda-2
 


On Thu, Mar 17, 2011 at 10:13 AM, Igor Stasenko <[hidden email]> wrote:
On 17 March 2011 18:07, Eliot Miranda <[hidden email]> wrote:
>
>
> On Thu, Mar 17, 2011 at 7:46 AM, Igor Stasenko <[hidden email]> wrote:
>>
>> Hi, Eliot
>>
>> is your new stuff having platform-specific files changes?
>
> The Sista stuff requires nothing new.   I think I've already integrated the
> changes necessary for the threaded VM but I've only tried to build the
> threaded VM against the Teleplace platforms hierarchy, not yet against the
> oscog platforms hierarchy.  So if you try and build the threaded VM you may
> hit problems, you may not.  I'll get around to doing that soon.

and sorry for ignorance..
what is the magic invocation for generating sources for threaded VMs?

Just substitute CoInterpreterMT for CoInterpreter.  Then you'll find 
    src/vm/cointerpmt.c             src/vm/gcc3x-cointerpmt.c
    src/vm/cointerpmt.h
You must also generate CoInterpreterMT second, and then src/vm/interp.h will read:

/* Automatically generated by
        CCodeGeneratorGlobalStructure VMMaker-eem.734 uuid: cf815676-05e1-44d8-be7f-62138a99b532
 */

#define COGVM 1
#if !defined(COGMTVM)
#       define COGMTVM 1
#endif
#define STACKVM 1
#define SQ_VI_BYTES_PER_WORD 4

#define PrimErrGenericFailure 1
#define PrimErrBadReceiver 2
#define PrimErrBadArgument 3
#define PrimErrBadIndex 4
#define PrimErrBadNumArgs 5
#define PrimErrInappropriate 6
#define PrimErrUnsupported 7
#define PrimErrNoModification 8
#define PrimErrNoMemory 9
#define PrimErrNoCMemory 10
#define PrimErrNotFound 11
#define PrimErrBadMethod 12
#define PrimErrNamedInternal 13
#define PrimErrObjectMayMove 14
#define PrimErrLimitExceeded 15

#define DisownVMLockOutFullGC 1

 and then in one set of makefiles use -DCOGMTVM=0 and pickup cointerp.c or gcc3x-cointerp.c and in the other use -DCOGMTVM=1 and pickup cointerpmt.c or gcc3x-cointerpmt.c

Look for #if COGMTVM & #if !COGMTVM in the platforms sources to see where the additions are.  Make sure you use the ThreadedFFIPlugin (ThreadedIA32FFIPlugin on x86).



>>
>> I'm asking because i'd like to merge it with
>> VMMaker-oscog-EstebanLorenzano.50
>> and then bump the package versions in ConfigurationOfCog
>>
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.
>
>



--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: About new Cog update

Igor Stasenko

On 17 March 2011 18:22, Eliot Miranda <[hidden email]> wrote:

>
>
> On Thu, Mar 17, 2011 at 10:13 AM, Igor Stasenko <[hidden email]> wrote:
>>
>> On 17 March 2011 18:07, Eliot Miranda <[hidden email]> wrote:
>> >
>> >
>> > On Thu, Mar 17, 2011 at 7:46 AM, Igor Stasenko <[hidden email]>
>> > wrote:
>> >>
>> >> Hi, Eliot
>> >>
>> >> is your new stuff having platform-specific files changes?
>> >
>> > The Sista stuff requires nothing new.   I think I've already integrated
>> > the
>> > changes necessary for the threaded VM but I've only tried to build the
>> > threaded VM against the Teleplace platforms hierarchy, not yet against
>> > the
>> > oscog platforms hierarchy.  So if you try and build the threaded VM you
>> > may
>> > hit problems, you may not.  I'll get around to doing that soon.
>>
>> and sorry for ignorance..
>> what is the magic invocation for generating sources for threaded VMs?
>
> Just substitute CoInterpreterMT for CoInterpreter.  Then you'll find
>     src/vm/cointerpmt.c             src/vm/gcc3x-cointerpmt.c
>     src/vm/cointerpmt.h
> You must also generate CoInterpreterMT second, and then src/vm/interp.h will
> read:
> /* Automatically generated by
>         CCodeGeneratorGlobalStructure VMMaker-eem.734 uuid:
> cf815676-05e1-44d8-be7f-62138a99b532
>  */
> #define COGVM 1
> #if !defined(COGMTVM)
> #       define COGMTVM 1
> #endif
> #define STACKVM 1
> #define SQ_VI_BYTES_PER_WORD 4
> #define PrimErrGenericFailure 1
> #define PrimErrBadReceiver 2
> #define PrimErrBadArgument 3
> #define PrimErrBadIndex 4
> #define PrimErrBadNumArgs 5
> #define PrimErrInappropriate 6
> #define PrimErrUnsupported 7
> #define PrimErrNoModification 8
> #define PrimErrNoMemory 9
> #define PrimErrNoCMemory 10
> #define PrimErrNotFound 11
> #define PrimErrBadMethod 12
> #define PrimErrNamedInternal 13
> #define PrimErrObjectMayMove 14
> #define PrimErrLimitExceeded 15
> #define DisownVMLockOutFullGC 1
>  and then in one set of makefiles use -DCOGMTVM=0 and pickup cointerp.c or
> gcc3x-cointerp.c and in the other use -DCOGMTVM=1 and pickup cointerpmt.c or
> gcc3x-cointerpmt.c
> Look for #if COGMTVM & #if !COGMTVM in the platforms sources to see where
> the additions are.  Make sure you use the ThreadedFFIPlugin
> (ThreadedIA32FFIPlugin on x86).


Thanks. The idea is as usual is to  gather this information into separate
CogMT<Platform>Config in CMakeVMMaker package

so people could reproduce and build this kind of VMs without much hassle.

:P


>>
>>
>> >>
>> >> I'm asking because i'd like to merge it with
>> >> VMMaker-oscog-EstebanLorenzano.50
>> >> and then bump the package versions in ConfigurationOfCog
>> >>
>> >>
>> >> --
>> >> Best regards,
>> >> Igor Stasenko AKA sig.
>> >
>> >
>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.
>
>



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

Re: About new Cog update

Eliot Miranda-2
 


On Thu, Mar 17, 2011 at 10:32 AM, Igor Stasenko <[hidden email]> wrote:
On 17 March 2011 18:22, Eliot Miranda <[hidden email]> wrote:
>
>
> On Thu, Mar 17, 2011 at 10:13 AM, Igor Stasenko <[hidden email]> wrote:
>>
>> On 17 March 2011 18:07, Eliot Miranda <[hidden email]> wrote:
>> >
>> >
>> > On Thu, Mar 17, 2011 at 7:46 AM, Igor Stasenko <[hidden email]>
>> > wrote:
>> >>
>> >> Hi, Eliot
>> >>
>> >> is your new stuff having platform-specific files changes?
>> >
>> > The Sista stuff requires nothing new.   I think I've already integrated
>> > the
>> > changes necessary for the threaded VM but I've only tried to build the
>> > threaded VM against the Teleplace platforms hierarchy, not yet against
>> > the
>> > oscog platforms hierarchy.  So if you try and build the threaded VM you
>> > may
>> > hit problems, you may not.  I'll get around to doing that soon.
>>
>> and sorry for ignorance..
>> what is the magic invocation for generating sources for threaded VMs?
>
> Just substitute CoInterpreterMT for CoInterpreter.  Then you'll find
>     src/vm/cointerpmt.c             src/vm/gcc3x-cointerpmt.c
>     src/vm/cointerpmt.h
> You must also generate CoInterpreterMT second, and then src/vm/interp.h will
> read:
> /* Automatically generated by
>         CCodeGeneratorGlobalStructure VMMaker-eem.734 uuid:
> cf815676-05e1-44d8-be7f-62138a99b532
>  */
> #define COGVM 1
> #if !defined(COGMTVM)
> #       define COGMTVM 1
> #endif
> #define STACKVM 1
> #define SQ_VI_BYTES_PER_WORD 4
> #define PrimErrGenericFailure 1
> #define PrimErrBadReceiver 2
> #define PrimErrBadArgument 3
> #define PrimErrBadIndex 4
> #define PrimErrBadNumArgs 5
> #define PrimErrInappropriate 6
> #define PrimErrUnsupported 7
> #define PrimErrNoModification 8
> #define PrimErrNoMemory 9
> #define PrimErrNoCMemory 10
> #define PrimErrNotFound 11
> #define PrimErrBadMethod 12
> #define PrimErrNamedInternal 13
> #define PrimErrObjectMayMove 14
> #define PrimErrLimitExceeded 15
> #define DisownVMLockOutFullGC 1
>  and then in one set of makefiles use -DCOGMTVM=0 and pickup cointerp.c or
> gcc3x-cointerp.c and in the other use -DCOGMTVM=1 and pickup cointerpmt.c or
> gcc3x-cointerpmt.c
> Look for #if COGMTVM & #if !COGMTVM in the platforms sources to see where
> the additions are.  Make sure you use the ThreadedFFIPlugin
> (ThreadedIA32FFIPlugin on x86).


Thanks. The idea is as usual is to  gather this information into separate
CogMT<Platform>Config in CMakeVMMaker package

so people could reproduce and build this kind of VMs without much hassle.

:P

You understand how that's done so you go do it.  I understand how to write the VM and build it in a crappy way but I'm still contributing.  I don't /have/ to do things your way.  I would like to use Hudson but will need handholding (and I presume a login) before I can do so.  I hope to get a little help.

best
Eliot 


>>
>>
>> >>
>> >> I'm asking because i'd like to merge it with
>> >> VMMaker-oscog-EstebanLorenzano.50
>> >> and then bump the package versions in ConfigurationOfCog
>> >>
>> >>
>> >> --
>> >> Best regards,
>> >> Igor Stasenko AKA sig.
>> >
>> >
>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.
>
>



--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: About new Cog update

Igor Stasenko

On 17 March 2011 18:35, Eliot Miranda <[hidden email]> wrote:
>
>
>
> You understand how that's done so you go do it.  I understand how to write
> the VM and build it in a crappy way but I'm still contributing.

The configs i made (and Esteban too) is crappy too.. but it is a step
forward comparing
to using files to track everything. And making it working out of the box.

All these various options mapping quite nicely to classes ,where each
config is a single class,
responsible for creating a single artifact (VM) on specific
OS/architecture and specific flags.

But i would appreciate if you take time and review it.

> I don't /have/ to do things your way.  I would like to use Hudson but will need
> handholding (and I presume a login) before I can do so.  I hope to get a
> little help.

Just ask.
I don't remember how to get login on Hudson (will ask Marcus tomorrow about it).


> best
> Eliot
>>

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

Re: About new Cog update

Eliot Miranda-2
 


On Thu, Mar 17, 2011 at 10:47 AM, Igor Stasenko <[hidden email]> wrote:
On 17 March 2011 18:35, Eliot Miranda <[hidden email]> wrote:
>
>
>
> You understand how that's done so you go do it.  I understand how to write
> the VM and build it in a crappy way but I'm still contributing.

The configs i made (and Esteban too) is crappy too.. but it is a step
forward comparing
to using files to track everything. And making it working out of the box.

All these various options mapping quite nicely to classes ,where each
config is a single class,
responsible for creating a single artifact (VM) on specific
OS/architecture and specific flags.

But i would appreciate if you take time and review it.

> I don't /have/ to do things your way.  I would like to use Hudson but will need
> handholding (and I presume a login) before I can do so.  I hope to get a
> little help.

Just ask.

Thanks.  Will do soon!
 
I don't remember how to get login on Hudson (will ask Marcus tomorrow about it).


> best
> Eliot
>>

--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: About new Cog update

Igor Stasenko
 
Oookay.. dum-di-doo..

i already having a configuration .. and now there are some roughness:


[ 92%] Building C object
CMakeFiles/Cog.dir/C_/projects/cog/sig-cog/platforms/win32/vm/sqWin32Intel.c.obj
c:/projects/cog/sig-cog/platforms/win32/vm/sqWin32Intel.c:26:23: fatal
error: cointerp.h: No such file or directory
compilation terminated.
make[2]: *** [CMakeFiles/Cog.dir/C_/projects/cog/sig-cog/platforms/win32/vm/sqWin32Intel.c.obj]
Error 1
make[1]: *** [CMakeFiles/Cog.dir/all] Error 2
make: *** [all] Error 2


so, it wants
cointerp.h
but VMMaker generates
cointerpmt.h
instead..

its easy to fix by hand.. but i guess there should be general solution
to this, no?

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

Re: About new Cog update

Igor Stasenko
 
oh, and btw, does that MT thingy works with StackInterpreter, or only
in pair with CoInterpreter/cogit?




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

Re: About new Cog update

Eliot Miranda-2
In reply to this post by Igor Stasenko
 


On Thu, Mar 17, 2011 at 5:33 PM, Igor Stasenko <[hidden email]> wrote:
Oookay.. dum-di-doo..

i already having a configuration .. and now there are some roughness:


[ 92%] Building C object
CMakeFiles/Cog.dir/C_/projects/cog/sig-cog/platforms/win32/vm/sqWin32Intel.c.obj
c:/projects/cog/sig-cog/platforms/win32/vm/sqWin32Intel.c:26:23: fatal
error: cointerp.h: No such file or directory
compilation terminated.
make[2]: *** [CMakeFiles/Cog.dir/C_/projects/cog/sig-cog/platforms/win32/vm/sqWin32Intel.c.obj]
Error 1
make[1]: *** [CMakeFiles/Cog.dir/all] Error 2
make: *** [all] Error 2


so, it wants
cointerp.h
but VMMaker generates
cointerpmt.h
instead..

Hmm...  ok, fixed and checking in. 

its easy to fix by hand.. but i guess there should be general solution 
to this, no?

I think the one-off is fine.  Up until now I've always generated the mt source alongside the regular one and so never noticed this. Thanks!
 

--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: About new Cog update

Eliot Miranda-2
In reply to this post by Igor Stasenko
 


On Thu, Mar 17, 2011 at 5:38 PM, Igor Stasenko <[hidden email]> wrote:
oh, and btw, does that MT thingy works with StackInterpreter, or only
in pair with CoInterpreter/cogit?

Right now with CoInterpreterMT only.  The rewrite engine could probably be used to generate a StackInterpreterMT automatically from CoInterpreterMT.  But that's not somethign I'm interested in putting any effort into.  Anyone else is of course more than welcome!

best
Eliot




--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: About new Cog update

Igor Stasenko

One more thing, now on Macs:

/Users/sig/projects/cog/sig-cog/platforms/Cross/plugins/FilePlugin/sqFilePluginBasicPrims.c:
In function ‘sqFileReadIntoAt’:
/Users/sig/projects/cog/sig-cog/platforms/Cross/plugins/FilePlugin/sqFilePluginBasicPrims.c:325:
error: too few arguments to function ‘interpreterProxy->disownVM’
make[2]: *** [FilePlugin/CMakeFiles/FilePlugin.dir/Users/sig/projects/cog/sig-cog/platforms/Cross/plugins/FilePlugin/sqFilePluginBasicPrims.c.o]
Error 1
make[1]: *** [FilePlugin/CMakeFiles/FilePlugin.dir/all] Error 2
make: *** [all] Error 2

Strange that it won't appear on Windoze (or maybe i didn't got to it
because of previous error).

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

Re: About new Cog update

Levente Uzonyi-2
 
On Fri, 18 Mar 2011, Igor Stasenko wrote:

>
> One more thing, now on Macs:
>
> /Users/sig/projects/cog/sig-cog/platforms/Cross/plugins/FilePlugin/sqFilePluginBasicPrims.c:
> In function ˙˙sqFileReadIntoAt˙˙:
> /Users/sig/projects/cog/sig-cog/platforms/Cross/plugins/FilePlugin/sqFilePluginBasicPrims.c:325:
> error: too few arguments to function ˙˙interpreterProxy->disownVM˙˙
> make[2]: *** [FilePlugin/CMakeFiles/FilePlugin.dir/Users/sig/projects/cog/sig-cog/platforms/Cross/plugins/FilePlugin/sqFilePluginBasicPrims.c.o]
> Error 1
> make[1]: *** [FilePlugin/CMakeFiles/FilePlugin.dir/all] Error 2
> make: *** [all] Error 2
>
> Strange that it won't appear on Windoze (or maybe i didn't got to it
> because of previous error).
I guess this file is not used on Windows, only sqWin32FilePrims.c.


Levente

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

Re: About new Cog update

Eliot Miranda-2
 


2011/3/18 Levente Uzonyi <[hidden email]>
On Fri, 18 Mar 2011, Igor Stasenko wrote:


One more thing, now on Macs:

/Users/sig/projects/cog/sig-cog/platforms/Cross/plugins/FilePlugin/sqFilePluginBasicPrims.c:
In function ˙˙sqFileReadIntoAt˙˙:
/Users/sig/projects/cog/sig-cog/platforms/Cross/plugins/FilePlugin/sqFilePluginBasicPrims.c:325:
error: too few arguments to function ˙˙interpreterProxy->disownVM˙˙
make[2]: *** [FilePlugin/CMakeFiles/FilePlugin.dir/Users/sig/projects/cog/sig-cog/platforms/Cross/plugins/FilePlugin/sqFilePluginBasicPrims.c.o]
Error 1
make[1]: *** [FilePlugin/CMakeFiles/FilePlugin.dir/all] Error 2
make: *** [all] Error 2

Strange that it won't appear on Windoze (or maybe i didn't got to it
because of previous error).

I had not moved across the up-to-date version from my Teleplace build.  Correct version checked-in now.
 

I guess this file is not used on Windows, only sqWin32FilePrims.c.

Looking at my cygwinbuild builds both are used strangely enough.  But you're right its not necessary.  win32 defines NO_STD_FILE_SUPPORT which prevents the body of sqFilePluginBasicPrims.c being compiled.  I'd eliminate it in the win32 builds, except that the gmake strategy makes this problematic, hence I think it best to just live with it..



Levente



--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: About new Cog update

Igor Stasenko
 
okay, im back on windoze and have a bit more progress with MT-enabled
build.. Almost there.. :)

Linking C executable results/Cog.exe
Creating library file: results/libCog.dll.a
Warning: resolving _Sleep by linking to _Sleep@4
Use --enable-stdcall-fixup to disable these warnings
Use --disable-stdcall-fixup to disable these fixups
Warning: resolving _TlsGetValue by linking to _TlsGetValue@4
Warning: resolving _TlsSetValue by linking to _TlsSetValue@8
CMakeFiles/Cog.dir/objects.a(gcc3x-cointerpmt.c.obj): In function
`ownVMFromUnidentifiedThread':
c:/projects/cog/sig-cog/src/vm/gcc3x-cointerpmt.c:23058: undefined
reference to `ioMilliSleep'
CMakeFiles/Cog.dir/objects.a(sqWin32Intel.c.obj): In function
`printCrashDebugInformation':
c:/projects/cog/sig-cog/platforms/win32/vm/sqWin32Intel.c:958:
undefined reference to `ifValidWriteBackStackPointers'
collect2: ld returned 1 exit status
make[2]: *** [results/Cog.exe] Error 1
make[1]: *** [CMakeFiles/Cog.dir/all] Error 2
make: *** [all] Error 2


The ifValidWriteBackStackPointers already fixed (need to fetch your
latest SVN commit)

But not ioMilliSleep.. the only definition of it i found in Mac
OS/vm/sqPlatformSpecific.h:

#  define ioMilliSleep(ms) usleep((ms) * 1000)

but nowhere for win32 platform.


--
Best regards,
Igor Stasenko AKA sig.