What version of the compiler does Raymond use?

Raymond Chen

From the suggestion box, BrianK asks, “What compiler do you and other developers use? Are you using VS2005 yet?” To be honest, I don’t know what compiler I use. There is a separate part of the team that worries about things like “What compiler should we use?” They deal with nitty-gritty details like “What version of the compiler should we use and what optimizations should we enable?” as well as higher-level planning like “How are we going to organize our source code so that different parts of the project can take advantage of each others’ work while still not requiring all members of the Windows team to compile the entire operating system from scratch when they want to test their changes?” I am not a member of that team, nor am I invited to their meetings, nor would I be interested in attending their meetings. I’m perfectly happy to let them make these decisions. They pick a compiler version and add it to the toolset that gets installed to your computer when you enlist in the Windows project. That way nobody needs to care what version, service pack, and patch number of the compiler they need to obtain. It just comes with the development environment. As I’ve noted in an earlier column in TechNet Magazine, the operating systems division will at times call upon the languages division to produce a special not-found-in-nature version of the compiler in order to satisfy a specific need. Windows (at least the 32-bit version) contains a 16-bit emulator and a miniature copy of 16-bit Windows. Since no modern version of Visual Studio targets 16-bit Windows any more, the compilers that the Windows team uses for 16-bit Windows necessarily must come from somewhere else. Changing the compiler version is a risky operation, because doing so will most likely expose subtle bugs in the code which erroneously relied upon unspecified behavior, such as order of evaluation or the location of memory barriers. Not the sort of thing you want to spring on a project one week before pencils down. Yes, if all the code were written perfectly, then this wouldn’t be a problem. But few people write perfect code.

(And just as a favor to you, I dug through the source code history for Windows and requested the 32-bit native compiler that was in use on August 28, 2006. And then I extracted the version strings and compared it to the version strings that came with Visual Studio 8, and they seemed to match. So I guess it’s Visual Studio 8. What relationship that has to VS2005 I don’t know.)


Discussion is closed.

Feedback usabilla icon