{"id":5966,"date":"2012-07-05T17:28:27","date_gmt":"2012-07-05T16:28:27","guid":{"rendered":"http:\/\/www.itwriting.com\/blog\/?p=5966"},"modified":"2012-07-05T17:28:27","modified_gmt":"2012-07-05T16:28:27","slug":"embarcadero-adopts-open-source-clang-for-future-c-versions","status":"publish","type":"post","link":"https:\/\/www.itwriting.com\/blog\/5966-embarcadero-adopts-open-source-clang-for-future-c-versions.html","title":{"rendered":"Embarcadero adopts open source Clang for future C++ versions"},"content":{"rendered":"<p>A couple of months ago Embarcadero\u2019s John Ray Thomas published a <a href=\"http:\/\/edn.embarcadero.com\/article\/42275\" target=\"_blank\">roadmap<\/a> for the company\u2019s C++ tools. Coming soon: not only a long-awaited 64-bit compiler for Windows, but also native iOS and Android support. On top of that, there are plans for \u201cthe very best in C++11 and C99 language and library compliance in the industry.\u201d<\/p>\n<p>Sounds good; but this forthcoming upgrade is not quite what it seems. I spoke to technical evangelist David Intersimone about the changes. The company is adopting <a href=\"http:\/\/clang.llvm.org\/\" target=\"_blank\">Clang<\/a>, an open source project which creates a C\/C++\/Objective C front-end for the <a href=\"http:\/\/www.llvm.org\/\" target=\"_blank\">LLVM<\/a> compiler. \u201cWe\u2019re integrating all that into our IDE,\u201d said Intersimone. \u201cWe\u2019re also going to be using that same toolchain world with our Delphi compiler as well.\u201d<\/p>\n<p>\u201cWe have analysed what to do about C++. Our compilers both for Delphi and C++ have been around for a lot of years, and over time it just got harder and harder to add new capabilities to make programming simpler and also to add power and richness to the languages. In C++ in particular the language continues to be updated, with now C++ 11. So we made the decision to use Clang and LLVM on the C++ side, for the 64-bit compiler. We\u2019re going to keep our existing compiler for 32-bit Windows for now, and then eventually replace that. <\/p>\n<p>\u201cFor Delphi we\u2019re still using our existing compiler to do some of the work, but we\u2019ve been working on a next-generation compiler for Delphi and that is still in the works. For a while we\u2019ll have two compilers, the existing architecture compilers, and then new compilers.\u201d<\/p>\n<p>Embarcadero has its own C++ extensions to support component development, and is working on adding them to Clang. \u201cWe\u2019re leveraging and extending the Clang compiler with the property-method-event extensions that we added to our own C++ compiler.\u201d<\/p>\n<p>It is a sad moment in some ways, bearing in mind the long history of what was once the Borland C++ compiler. Equally, it is a sensible move. Intersimone said that the work of keeping up with the evolving C++ specification was disproportionate to the benefits. \u201cIt\u2019s a monster language, with a lot of power and a lot of complexity. It made perfect sense to fit our extensions [to Clang] versus building a compiler from scratch and having to continue to track the language into the future.\u201d<\/p>\n<p>Embarcadero can focus instead on its IDE and tools, and on the frameworks for Windows and for cross-platform.<\/p>\n<p>Look out for a more detailed interview with David Intersimone in a future article for <a href=\"http:\/\/www.softwareknowhow.info\/HardCopyMagazine.aspx\" target=\"_blank\">Hardcopy<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A couple of months ago Embarcadero\u2019s John Ray Thomas published a roadmap for the company\u2019s C++ tools. Coming soon: not only a long-awaited 64-bit compiler for Windows, but also native iOS and Android support. On top of that, there are plans for \u201cthe very best in C++11 and C99 language and library compliance in the &hellip; <a href=\"https:\/\/www.itwriting.com\/blog\/5966-embarcadero-adopts-open-source-clang-for-future-c-versions.html\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Embarcadero adopts open source Clang for future C++ versions<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,24,67,80,97],"tags":[236,239,318,363],"class_list":["post-5966","post","type-post","status-publish","format-standard","hentry","category-c","category-delphi","category-professional","category-software-development","category-windows","tag-c","tag-c-builder","tag-delphi","tag-embarcadero"],"_links":{"self":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/5966","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/comments?post=5966"}],"version-history":[{"count":0,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/5966\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/media?parent=5966"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/categories?post=5966"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/tags?post=5966"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}