Microsoft will add support of the compiler Clang in the noyabrsky Visual Studio updating 2015 — it has been declared at the CPPCon 2015 conference which is taking place now in the city of Belvyyu, the USA.
Clang is the code compiler on With, With ++ and Objective-C which together with LLVM allows to collect programs under different platforms. The Visual Studio 2015 already supports Clang for development of Android and iOS-applications. When developing for Android it is possible to select between GCC and Clang, and for iOS it is necessary to use external Mac as the bild-server.
The planned updating will bring support of Clang at qualitatively new level — now they can collect normal Windows applications.
Kompilator of the Visual C ++ consists of several parts: the frontend-part which is responsible for generation of AST (abstract syntax tree) corresponding to code of the program and bekend-part which reads AST and generates executable code. Frontend-chast calls C1, the bekend-part is called as C2 and different teams work on them.
Clang is going to add as replacement of C1 while C2 will be used according to the destination further. As Jim Redigan has told timlid bekend-parts, Clang will create intermediate representation of code which then will be converted in the format compatible to input of C2 which Jim called set of trains. Further C2 will generate executable code by means of the universal compiler of trains (Universal Tuple Compiler).
The main task of creation of linking of Clang/C2 is simplification of cross-platform development of application both for Microsoft, and for third-party developers. Many applications could take out the non-visual parts in separate components which would gather uniformly, the same compiler Clang under different operating systems.
As example Microsoft Office which mobile version is available under Android, iOS and Windows 10 Universal Windows Platform today has been specified. When using Clang as the frontend-compiler the general code of all these applications could gather equally, excepting emergence of bugs because of differences in Clang and C1.
Developers have to accept well support of Clang because of its best compliance to the last standards C ++. That less, Microsoft does not stop support of C1, its development will be continued as in the version of the standard C ++ from Microsft there are some specific additions and to those programs which use them, still to be necessary for C1 for assembly. Besides, the speed of assembly of code in is slightly higher than the rolled combination of C1\C2 for a long time.
Jim Redigan has noted that Microsoft will not do fork Clang, and will concentrate on adding of code for the Windows platform in its main branch. Thus from Clang C2, special for support, will not be required to do something, all necessary for compatibility of Microsoft will make on the party.
The updating planned in November with support of Clang will have the status of "preview", and the main release is planned for February of the 2016th year.
Except support of Clang also other innovations, for example support of "await" according to the current sentence from Microsoft are planned.
Also the new version of the compiler allowing to involve linking of Clang/C2 from command line will be issued (without need to buy and set IDE Visual Studio).
This article is a translation of the original post at habrahabr.ru/post/269313/
If you have any questions regarding the material covered in the article above, please, contact the original author of the post.
If you have any complaints about this article or you want this article to be deleted, please, drop an email here: email@example.com.
We believe that the knowledge, which is available at the most popular Russian IT blog habrahabr.ru, should be accessed by everyone, even though it is poorly translated.
Shared knowledge makes the world better.