On 6/10/2012 7:10 PM, Roman D. Boiko wrote:
On Sunday, 10 June 2012 at 16:51:23 UTC, Rainer Schuetze wrote:
As you don't need the VS2012 SDK or the Windows 8 SDK to build Visual
D, it does not seem urgent to do the translations, but it might be
nice to have them as this is a fast way to update the interface
headers to a new OS version. The recent version of the converter also
translates "#ifdef _WIN64" to "version(Win64)" instead of throwing the
code out, but I have not done a lot with it yet.
I wanted to experiment with VisualD a bit to check whether it is
possible to make use of my other project
(https://github.com/roman-d-boiko/dct, currently very early draft) from
VisualD.
I have recently refactored the code so that the parser and the semantic
analysis can run in an different process (a local COM server). This was
mainly to avoid GC stalls within the IDE, but could also be used to
plugin other code for semantic analysis. The current interface is here:
https://github.com/rainers/visuald/blob/master/vdc/ivdserver.d
Are these SDKs needed for developing VisualD on Windows 8 RC with Visual
Studio 11 RC? This setup is the one I use most often.
You can also use the SDKs that come with VS2008 or VS2010.
Basically, either a block of text from some file is commented out when
it generates compiler error, or some block (`open`) is replaced with
equivalent starting from `/+`, and the other (`close`) with the one
ending `+/`, so that everything between them is commented out.
I think some blocks could be converted to the D equivalents, but I don't
have experience with this.
Those _null_terminated_ annotations (and similar) should probably be
translated to their Win7 SDK version identifier __nullterminated. That
way they might get handled correctly by the regex expressions.
Would be nice to know the correct mapping for various annotations. So
far I tried to mimic code already present in VisualD.
The annotations are usually commented out by the converter to keep them
as documentation. But that means they can still confuse some conversion
rules (e.g. calls to replaceTokenSequence that contain __nulltermiatated).