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. |
On Thu, Mar 17, 2011 at 7:46 AM, Igor Stasenko <[hidden email]> wrote: Hi, Eliot 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.
|
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. |
On Thu, Mar 17, 2011 at 10:13 AM, Igor Stasenko <[hidden email]> wrote:
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).
|
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. |
On Thu, Mar 17, 2011 at 10:32 AM, Igor Stasenko <[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. 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
|
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. |
On Thu, Mar 17, 2011 at 10:47 AM, Igor Stasenko <[hidden email]> wrote:
Thanks. Will do soon! I don't remember how to get login on Hudson (will ask Marcus tomorrow about it). |
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. |
oh, and btw, does that MT thingy works with StackInterpreter, or only in pair with CoInterpreter/cogit? -- Best regards, Igor Stasenko AKA sig. |
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.. Hmm... ok, fixed and checking in.
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!
|
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 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
|
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. |
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). Levente > > -- > Best regards, > Igor Stasenko AKA sig. > |
2011/3/18 Levente Uzonyi <[hidden email]>
I had not moved across the up-to-date version from my Teleplace build. Correct version checked-in now.
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..
|
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. |
Free forum by Nabble | Edit this page |