[plt-scheme] Building mred 3m with VS2008
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?