[plt-scheme] Building mred 3m with VS2008
At Mon, 01 Sep 2008 10:03:55 -0700, Ben Goetter wrote:
> I'm building PLT Scheme with Microsoft Visual Studio 2008 ("VS2008"
> hereafter), or rather working toward same, but have hit a snag during
> the 3m build process. The transformation that decorates C++ source
> with 3m GC information is choking on function calls in the global
> namespace, e.g. ::ReleaseDC(), emitting the diagnostic
>
> Error [DECL] <line> in <file>: Variable declaration (:: () not at the
> beginning of a block.
>
> This message originates from collects/compiler/private/xform.ss, line
> 2680 or so, and it's calling double-colon a type, left-paren a var. The
> token sequence that provokes this looks like
>
> tok :: <line> <file>
> tok ReleaseDC
> parens (
> tok ;
> tok DELETE <next line in sequence>
> parens (
> tok ;
>
> Removing the global namespace qualifier from function calls in files
> such as wxwindow/src/base/wb_print.cxx lets xform proceed with its
> business as usual. However, I'm a little baffled as to how VS2008 could
> be provoking this behavior. Presumably something from the preprocessor
> pass in the preceding token stream has sent xform to a place where
> ordinarily it would not go. Any ideas?
>
> Also, once I get this build working, may I submit it as a patch against
> the official sources? How would you like it packaged?
I'm puzzled too.
I guess mzschemecgc (as compiled by VS2008) is working correctly
otherwise? Is it possible to drop in a "mzschemecgc.exe" from the
nightly build to check that the 3m-creating "make.ss" program still
fails in the same way (i.e., it's not just that mzschemecgc is somehow
broken)?
A diff that I can apply with `patch' is the best way to submit patches.
Matthew