{"id":6273,"date":"2006-06-29T20:56:00","date_gmt":"2006-06-29T20:56:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/vcblog\/2006\/06\/29\/visual-c-compiler-plans\/"},"modified":"2019-02-18T18:54:47","modified_gmt":"2019-02-18T18:54:47","slug":"visual-c-compiler-plans","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/visual-c-compiler-plans\/","title":{"rendered":"Visual C++ Compiler Plans"},"content":{"rendered":"<p class=\"MsoNormal\"><span><font color=\"#000000\"><font face=\"Arial\"><font size=\"2\">Hi: my name is Jonathan Caves and I&rsquo;m a developer on the Visual C++ Compiler Team. I thought I&#8217;d take a few moments to let you know about the plans&nbsp;our team&nbsp;has for the next release of Visual C++.<\/p>\n<p><\/font><\/font><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><\/p>\n<p><font face=\"Arial\" color=\"#000000\" size=\"2\">&nbsp;<\/font><\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span><font color=\"#000000\"><font face=\"Arial\"><font size=\"2\">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 &#8211; 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&#8217;t do anything in the next release (called Orcas) which has a short development cycle. <span>&nbsp;<\/span><\/p>\n<p><\/font><\/font><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><\/p>\n<p><font face=\"Arial\" color=\"#000000\" size=\"2\">&nbsp;<\/font><\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span><font color=\"#000000\"><font face=\"Arial\"><font size=\"2\">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 &#8211; 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.<\/p>\n<p><\/font><\/font><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><\/p>\n<p><font face=\"Arial\" color=\"#000000\" size=\"2\">&nbsp;<\/font><\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span><font color=\"#000000\"><font face=\"Arial\"><font size=\"2\">This does bring up the question of what C++ compiler enhancements will be in Orcas?<span>&nbsp; <\/span>Notice I said &#8220;most of the compiler development team&#8221; as we are not putting the whole team on the future generation compiler &#8211; 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&#8217;t just let the current Visual C++ compiler stagnate so I&#8217;ll be working on keeping it ticking.<span>&nbsp; <\/span>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!<\/p>\n<p><\/font><\/font><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><\/p>\n<p><font face=\"Arial\" color=\"#000000\" size=\"2\">&nbsp;<\/font><\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span><font color=\"#000000\"><font face=\"Arial\"><font size=\"2\">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.<span>&nbsp; <\/span>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.<span>&nbsp; <\/span>One example is the interaction between friend functions and templates.<span>&nbsp; <\/span>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 &#8216;future&#8217; compiler. Going forward I know of other &#8216;problem&#8217;<span>&nbsp;<\/span>areas in the compiler that I am pretty certain can be addressed without needing major reconstructive surgery.<\/p>\n<p><\/font><\/font><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><\/p>\n<p><font face=\"Arial\" color=\"#000000\" size=\"2\">&nbsp;<\/font><\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span><font face=\"Arial\" color=\"#000000\" size=\"2\">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&rsquo;ll be quite happy about this.<span>&nbsp; <\/span>I&rsquo;m sure you&#8217;ll welcome a compiler that doesn&#8217;t introduce a lot of new features and instead focuses on improving the quality of what we have.<span>&nbsp; <\/span>So if you have a serious bug you feel we&nbsp;need to address you should definitely open an issue on the <a href=\"http:\/\/connect.microsoft.com\/feedback\/default.aspx?SiteID=210\">Product Feedback site <\/a><\/font><font color=\"#000000\"><font face=\"Arial\"><font size=\"2\">but please be aware that I am only one person and so, unfortunately, I won&#8217;t be able to fix each and every bug.<span>&nbsp; <\/span>I can assure you though that as a team we will focus on the bugs we believe have the greatest impact &#8211; like compiler crashes (especially without any error message),<span>&nbsp; <\/span>bad code generation,<span>&nbsp; <\/span>blocking issues, etc.<\/p>\n<p><\/font><\/font><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><\/p>\n<p><font face=\"Arial\" color=\"#000000\" size=\"2\">&nbsp;<\/font><\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span><font color=\"#000000\"><font face=\"Arial\"><font size=\"2\">I would welcome any feedback on this plan so feel free to add your comments below.<\/p>\n<p><\/font><\/font><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><\/p>\n<p><font face=\"Arial\" color=\"#000000\" size=\"2\">&nbsp;<\/font><\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><font color=\"#000000\"><font face=\"Arial\"><font size=\"2\"><span>Jonathan<\/span><span> C\naves<\/span><span><\/p>\n<p><\/span><\/font><\/font><\/font><\/p>\n<p class=\"MsoNormal\"><span><font color=\"#000000\"><font face=\"Arial\"><font size=\"2\">Visual C++ Compiler Team<b><\/p>\n<p><\/b><\/font><\/font><\/font><\/span><\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hi: my name is Jonathan Caves and I&rsquo;m a developer on the Visual C++ Compiler Team. I thought I&#8217;d take a few moments to let you know about the plans&nbsp;our team&nbsp;has for the next release of Visual C++. &nbsp; After the last release of Visual C++ we took a long, hard look at the compiler [&hellip;]<\/p>\n","protected":false},"author":289,"featured_media":35994,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[3],"class_list":["post-6273","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cplusplus","tag-dev"],"acf":[],"blog_post_summary":"<p>Hi: my name is Jonathan Caves and I&rsquo;m a developer on the Visual C++ Compiler Team. I thought I&#8217;d take a few moments to let you know about the plans&nbsp;our team&nbsp;has for the next release of Visual C++. &nbsp; After the last release of Visual C++ we took a long, hard look at the compiler [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/6273","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/users\/289"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=6273"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/6273\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/35994"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=6273"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=6273"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=6273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}