I forgot to update MzCOM for a new requirement (to support futures) on embedding MzScheme into a Windows executable.
I'll try this myself, but if you get to it first, try adding static __declspec(thread) void *tls_space; to the MzCOM executable, and then put scheme_register_tls_space(&tls_space, 0); before the call to scheme_main_setup() in evalLoop(). At Sun, 23 May 2010 12:12:26 +1000, Paul Steckler wrote: > Erich Neuwirth had written to me that MzCOM from the latest PLT > release crashed for him, so I went off to investigate. I hadn't run > MzCOM (or MysterX) in yonks (as they say here). > > I compiled MzCOM from sources using Visual Studio 2008, no issues > there. I couldn't get MysterX (libmysterx) > to compile, though. The thought was to load MzCOM into MysterX, but > it looked like a tough slog to fix the > compilation errors. So instead, I decided to write a little C++ > driver to load MzCOM. > > The driver compiled fine, but the Eval method in MzCOM just hung. I > haven't yet looked into that. > > Next, I tried call the About method. Indeed, I saw the About box -- > but then MzCOM crashed. > > The crash is due to a write-to-NULL error around line 368 of salloc.c, > in this block: > > # elif defined(IMPLEMENT_THREAD_LOCAL_VIA_WIN_TLS) > *scheme_get_thread_local_variables_ptr() = vars; > > Here's the driver program: > > #include "stdafx.h" > #include "mzcom.h" > > int _tmain(int argc, _TCHAR* argv[]) > { > CLSID clsid; > IMzObj *pIMzObj; > > CoInitialize(NULL); > > CLSIDFromProgID(L"MzCOM.MzObj.4.2.5.0",&clsid); > CoCreateInstance(clsid,NULL,CLSCTX_SERVER,IID_IMzObj, (void > **)&pIMzObj); > > pIMzObj->About(); > > return 0; > } > > It's a VS2008 project, and you need to add mzcom.h and mzcom_i.c from > the mzcom directory in > src/worksp. > > Any ideas? > > -- Paul > _________________________________________________ > For list-related administrative tasks: > http://list.cs.brown.edu/mailman/listinfo/plt-dev _________________________________________________ For list-related administrative tasks: http://list.cs.brown.edu/mailman/listinfo/plt-dev