Visual C++ Compiler Plans

Visual C++ Compiler Plans

Rate This
  • Comments 20

Hi: my name is Jonathan Caves and I’m a developer on the Visual C++ Compiler Team. I thought I'd take a few moments to let you know about the plans our team has for the next release of Visual C++.


After the last release of Visual C++ we took a long, hard look at the compiler source base and decided we needed to take the time to seriously invest in reworking our existing code base - some parts of which are over 20 years old. We have plans to really improve the development process for both our existing native C++ customers as well as our newer C++/CLI customers. Unfortunately these changes are going to take time to implement and we definitely can't do anything in the next release (called Orcas) which has a short development cycle.  


So instead of working on the next release of Visual C++ most of the compiler development team will be full steam ahead working on the future generation compiler - we are not yet sure exactly what form this compiler will take but we do know that it will really improve and re-energize the C++ development process.


This does bring up the question of what C++ compiler enhancements will be in Orcas?  Notice I said "most of the compiler development team" as we are not putting the whole team on the future generation compiler - instead we have left one developer, yours truly, to work on the current source base. We know that C++ is still one of the most widely used programming languages and that we can't just let the current Visual C++ compiler stagnate so I'll be working on keeping it ticking.  This is mostly going to involve bug fixing (and I hope that most of the bugs I fix will be ones reported by our customers) though I also think that I may find time for a few small features!


One thing we did after Whidbey, as part of analyzing our source base, was to categorize the remaining bugs in the database. This analysis showed some areas of the C++ language in which the compiler support was less than what we would have wished it to be.  We made an effort to address these areas and in some cases we think we can get this work into the next release of the compiler.  One example is the interaction between friend functions and templates.  In many other cases, however, the work became so big (like rewriting the code that handles the parsing of qualified-names) that we decided to just move it to the 'future' compiler. Going forward I know of other 'problem' areas in the compiler that I am pretty certain can be addressed without needing major reconstructive surgery.


But these small features aside, most of the work on the compiler for the next release is going to bug-fixing and I know from interacting with many of you over the last few years that you’ll be quite happy about this.  I’m sure you'll welcome a compiler that doesn't introduce a lot of new features and instead focuses on improving the quality of what we have.  So if you have a serious bug you feel we need to address you should definitely open an issue on the Product Feedback site but please be aware that I am only one person and so, unfortunately, I won't be able to fix each and every bug.  I can assure you though that as a team we will focus on the bugs we believe have the greatest impact - like compiler crashes (especially without any error message),  bad code generation,  blocking issues, etc.


I would welcome any feedback on this plan so feel free to add your comments below.


Jonathan Caves

Visual C++ Compiler Team

  • 1. I would like to see some work on COM attributes--especially cross-thread event handling, which currently requires quite a lot of work to implement.

    2. I would like to see the intellisense be as good as it is for C#.

    3. I would like to have some sort of in-line documentation capability, as it is for C#.

  • I'd love to not have to do awkward things to disable warnings microsoft have chosen to impose on the _standard_ library. Like this "Safe STL" stuff.. Either disable those kinds of extensions by default, or at least give us some proper options for it instead of some awkward compiler define you have to google for.
  • Is it planed to reduce linking time when compiling C++/CLI applications with Orcas? (linking takes up to 1 minute on my application)
    Or is this part of the future release code review?

  • here is my product feedback link  for this issue:

    Thanks again,
  • As I understand it, the Orcas version of Visual Studio is intended for use in programming the new features of Vista (or, more precisely, what is now called .NET 3.0).  Will it then be possible to write C++/CLI programs targetting WPF and WCF, or must such applications be written in VC# and/or VB?
  • Despite my disappointment that there won't be (as) many improvements in the near future, I'm glad that Microsoft is continuing to make longer-term investments in C++.

    I'd be really interested to hear why the decision to invest in a rewrite was taken. What will we, the end users, get out of it?
  • Hello, my name is Jason Lucas and I’m a senior software development engineer working on the Visual C++...
  • PingBack from
  • Hi Jonathan,

    I am wondering whether VC++ AST is open to people outside Microsoft for learning purpose? If not the exact AST can be opened, could you refer some other sample AST which we could learn C++ compiler AST technology?

    thanks in advance,
  • What is the future of VC++? MS has been focussing more on .NET now. MS does not even have a certification for VC++ now. What gives?

  • hi,  the following window opens at the initial start of notebook using windows xp.

    "Microsoft VisualC++ Runtime Library

    Runtime Error!

    Program:C:\Program Files\interMute\SpySubtract\SpySub.exe

    This application has requested the Runtime to terminate it in an unsusual way.  Please contact the application's support team for more information."

    I use 2 sing-in accounts.  The above window appears in both accts - only on the initial opening of accts once InternetExplorer opens.

    How do I elliminate this "error" window.

    Thanks - Alan

  • What are the oldest code in the Visual C++ compiler and what does it do?

  • In the 16-bit days, Visual C++ compiler's /G switches actually specified the minimum processor required to run the program produced.

    In the 16-bit days, Visual C++ compiler phases was actually separate executables. C13216.exe, C1xx3216.exe, C23216.exe... How did each phase communicate? When I actually run them, they generate an error, but did not actually display the error message.

    What about the Microsoft C/C++ 7.0 DOS extender?

    They actually require DPMI, so 386Max was bundled.

    What about the port of the 16-bit compiler and linker to Win32 performed for Visual C++ 1.0? Espicially what the team thinked about the port then.

    Also where are the Visual C++ KB articles removed from the Knowledge Base?

  • I found some of the Visual C++ 1.5 tools still are OS/2 bound programs and so runs in the OS/2 subsystem in Windows NT, which does not exist in Windows XP. Why?

  • Good design!

    [url=]My homepage[/url] | [url=]Cool site[/url]

Page 1 of 2 (20 items) 12