Clang

出典: フリー百科事典『ウィキペディア(Wikipedia)』
LLVM > Clang
Clang
作者 Chris Lattner
開発元 LLVM Developer Group
初版 2007年9月26日 (16年前) (2007-09-26)[1]
最新版

18.1.7[2] ウィキデータを編集 - 2024年6月5日 (25時間前)

リポジトリ ウィキデータを編集
プログラミング
言語
C++
対応OS macOS, Unix系, Microsoft Windows
プラットフォーム クロスプラットフォーム
サポート状況 開発中
種別 コンパイラ
ライセンス イリノイ大学/NCSAオープンソースライセンス[3]
LLVM例外付きApache License 2.0 (バージョン9.0.0以降[4])
公式サイト clang.llvm.org
テンプレートを表示

Clang ([ˈklæŋ][5])  CC++Objective-CObjective-C++ OpenMP[6]OpenCL C/C++[7]LLVM使LLVM 2.6LLVM

Clang/LLVMRenderScriptCUDANVCC[8]ROCmHIP-Clang[9]C (DSL) GPGPU

GNU (GCC) [10][11]AppleMicrosoftGoogleARMAMD/NCSA9.0.0LLVMApache License 2.0[4]

macOSiOSXcodeFreeBSD

ClangClangClang-Tidy[12]

[]


2005AppleLLVM[13]AppleObjective-CGCCObjective-CGCCAppleAppleC99Objective-CC++1Clang20077

LLVMGCC使GCCGCCTrying to make the hippo dance is not really a lot of fun.[14]

[]


ClangCLLVM[15]ClangLLVMGCCClang (IDE) GUIGCC--使GCC "fold" foldGCCIDE使

ClangGCCClangIDERADClang

GCCClang使200710ClangCarbon1/5使GCC2[16]

GCC調ClangGCCClangClang使

Clang CCCC++Objective-CObjective-C++OpenCLCUDAFortranAdaGo  LLVM  GCC (dragonegg) Clang  GCC []NVIDIA Flang  Fortran [17]

[]


2023C89C++17[18][19]C99/C11/C17C23C++20

GoogleAndroidC/C++Android NDKNative Development KitGCC201211r8cClang201610r13bClang[20]20189r18bGCC

Microsoft WindowsClang使CygwinMinGWPOSIXWindowsLLVM[21]Visual Studio2019 (16.2) Windows/LinuxMSBuildC/C++Clang使[22]MSVC (cl.exe) clang-cl[23]

Microsoft DirectX (Direct3D) 126.0HLSLDirectX Shader Compiler (DXC) ClangHLSLClang[24][25]

Intel C++ Compiler (ICC/ICL) C++Builder (BCC) Clang[26][27]

歴史[編集]

Clangプロジェクト略史
日付 できごと
2009年2月25日 Clang/LLVMが、動作するFreeBSDカーネルをコンパイルできたことが発表された[28][29]
2009年3月16日 Clang/LLVMが、動作するDragonFly BSDカーネルをコンパイルできたことが発表された[30][31]。しかし、Linuxカーネルのコンパイルには更なる作業が必要である[32]
2009年5月9日 FreeBSD Status Reportにおいて、FreeBSDプロジェクトがGCCをClangで置き換えられるかどうか調査していることが報告された[33]
2009年10月23日 Clang 1.0が、初めてLLVM本体 (LLVM 2.6) と同時にリリース。
2009年12月 CおよびObjective-Cのコード生成能力は製品レベルに達した。しかし、C++、Objective-C++のサポートは不完全であった。Clang C++はGCC 4.2のlibstdc++をパースし、小規模なプログラムのコードを生成でき[15]、自分自身をコンパイル可能となった[34]
2010年2月5日 LLVM Project Blogにおいて、Clangがセルフホスティングのコンパイラとなったことが発表された[35]
2010年2月20日 HelenOSのソースコードを修正することでClangでコンパイルに成功した。また、IA-32環境のカーネルとユーザランドの回帰テストに全て合格した。[36]
2010年4月27日 Clang 2.7リリース。CIndex APIとPythonバインディングのサポート。[37]
2010年5月20日 最新バージョンのClangでBoost C++ライブラリのビルドに成功し、ほぼ全てのテストに合格した。[38]
2010年6月9日 Clang/LLVMがFreeBSDのソースコードツリーに取り込まれた。最初は、デフォルトのコンパイラにはならないが、外部コンパイラによるビルドをサポートした上で、デフォルトのシステムコンパイラになる予定である。[39]
2010年10月5日 Clang 2.8リリース。C++98、C++03の機能の実装完了。Objective-C++のサポート。[40]
2010年10月25日 Clang/LLVMがLinuxカーネルをコンパイルし動作したと発表された。[41]
2011年1月 C++0xドラフトのサポート準備が完了した。また、開発バージョンでドラフトの新しい機能をサポート。[42][43]
2011年2月10日 HotSpot Java仮想マシンをコンパイルし、動作させることが出来た。[44]
2011年4月6日 Clang 2.9リリース。C11 の機能を一部サポート。[45]
2011年12月1日 Clang 3.0リリース。GCC互換のコマンドラインドライバを改善。[46]
2012年2月28日 Clang 3.0によってDebianアーカイブの91%以上をリビルドすることが出来た。[47]
2012年5月12日 FreeBSD Quarterly Status Reportにおいて、FreeBSDはGCCをClang/LLVMで置き換えると発表した。[48]
2012年5月22日 Clang 3.1リリース。100%互換ではないものの C++11 規格に従う機能の大半を実装。[49]
2012年12月1日 Clang 3.2リリース。エラーメッセージの改善、C11, C++11 の対応の改善。[50]
2013年4月 安定版としては未リリースだが、C++11規格に従う機能をすべて実装を完了。[51]
2013年6月17日 Clang 3.3リリース。識別子でのUnicode文字対応、C++11 の対応改善。[52]
2014年1月6日 Clang 3.4リリース。C++14 の現時点でドラフトに書いてある部分を実装。[53]
2014年9月4日 Clang 3.5リリース。C++17の機能を実験的にサポート。[54]
2015年2月27日 Clang 3.6リリース。C言語のデフォルトモードをC99からC11に変更。[55]
2015年9月1日 Clang 3.7リリース。OpenMP 3.1のサポート。OpenMP 4.0の一部サポート。[56]
2016年3月8日 Clang 3.8リリース。CUDAの実験的サポート。OpenMP 4.0/4.5、OpenCL 2.0の一部サポート。[57]
2016年9月2日 Clang 3.9リリース。OpenCL 2.0のサポート。オフロード機能を除くOpenMP 3.1およびOpenMP 4.0/4.5をサポート。[58]
2017年3月13日 Clang 4.0.0 リリース。ThinLTOの改善。[59]
2017年9月7日 Clang 5.0.0 リリース。C++17機能の実装完了。[60]
2018年3月8日 Clang 6.0.0 リリース。Spectre対策のためにretpolinesをサポート。C++のデフォルトモードをC++98からC++14に変更。C++2a機能の一部サポート。[61]
2018年9月19日 Clang 7.0.0 リリース。DWARFv5の実験的サポート。[62]
2019年3月20日 Clang 8.0.0 リリース。自動変数の初期化オプション。プロファイルの再マッピングファイルの利用をサポート。OpenMP 5.0の一部サポート。[63]
2019年9月19日 Clang 9.0.0 リリース。OpenCL向けのC++機能の実験的サポート。GCCのインラインアセンブラにおける独自拡張asm gotoをサポートしx64向けLinuxカーネルなどのビルドが可能になった。[64]
2020年3月24日 Clang 10.0.0 リリース。C++2aのコンセプト (Concepts) をサポート。Windows Control Flow Guard (CFG) に対応[65]
2020年10月12日 Clang 11.0.0 リリース。C言語のデフォルトモードをC11からC17に変更。[66]
2020年12月21日 OpenBSD 6.9 の mips64el で、Clang がデフォルトのコンパイラとなった[67]
2021年4月14日 Clang 12.0.0 リリース。アトミック操作を実装するヘルパー関数の呼び出しを有効/無効にするAArch64オプションと、ターゲットとなるbinutilsのバージョンを指定するオプションが追加された[68]
2021年10月4日 Clang 13.0.0 リリース[69]
2022年3月25日 Clang 14.0.0 リリース[70]
2022年9月6日 Clang 15.0.0 リリース[71]

参考文献[編集]



(一)^ https://www.llvm.org/releases/2.1/docs/ReleaseNotes.html

(二)^ "LLVM 18.1.7"; : 202465; : 202465.

(三)^ LLVM Release License

(四)^ abLICENSE.TXT.  llvm.org. 2019924

(五)^ Christopher, Eric (3 July 2008). "simply wonder pronunciation of Clang". LLVMdev (Mailing list). 200879

(六)^ OpenMP Support. The LLVM Project Blog. 2016328

(七)^ OpenCL Support  Clang git documentation

(八)^ CUDA LLVM Compiler | NVIDIA Developer

(九)^ C++ Heterogeneous-Compute Interface for Portability. 2020218

(十)^ Clang Language Extensions. 2017118 In addition to the language extensions listed here, Clang aims to support a broad range of GCC extensions.

(11)^  Clang - Features and Goals: GCC Compatibility, (15 April 2013), https://clang.llvm.org/features.html#gcccompat 

(12)^ Clang Static Analyzer.  LLVM. 200993

(13)^ Adam Treat, mkspecs and patches for LLVM compile of Qt4

(14)^ Kenneth Zadeck - Re: LLVM/GCC Integration Proposal

(15)^ abClang team, clang: a C language family frontend for LLVM

(16)^ Clang - Features and Goals: Fast compiles and Low Memory Use. 200710

(17)^ FLANG: NVIDIA Brings Fortran To LLVM

(18)^ Clang - C Programming Language Status

(19)^ Clang - C++ Programming Language Status

(20)^ NDK Revision History

(21)^ LLVM Download Page

(22)^ Visual Studio  Clang/LLVM  | Microsoft Docs

(23)^ Hans Wennborg, Google (20144). clang-cl / What it is, how it works, and how to use it (Euro-LLVM 2014) (PDF). 2021518

(24)^ Opening HLSL Planning - DirectX Developer Blog

(25)^ HLSL Support  Clang git documentation

(26)^ ® C/C++  LLVM  | iSUS

(27)^ Clang  C++  - RAD Studio

(28)^ Roman Divacky, [ANNOUNCE] clang/LLVM can compile booting FreeBSD kernel on i386/amd64

(29)^ http://wiki.freebsd.org/BuildingFreeBSDWithClang

(30)^ Alex Hornung, "llvm/clang once more

(31)^ http://www.dragonflybsd.org/docs/developer/clang/

(32)^ Bug 4068  [META] Compiling the Linux kernel with clang

(33)^ Brad Davis, "FreeBSD Status Reports January - March, 2009"

(34)^ LLVM Blog, Clang can compile LLVM and Clang

(35)^ LLVM Project Blog, "Clang Successfully Self-Hosts!"

(36)^ HelenOS mainline changeset head,294

(37)^ LLVM 2.7 Release Notes

(38)^ Clang++ Builds Boost!

(39)^ Roman Divacky "Import the build makefiles for clang/LLVM" 

(40)^ LLVM 2.8 Release Notes

(41)^ [ANNOUNCE] Clang builds a working Linux Kernel (Boots to RL5 with SMP, networking and X, self hosts)

(42)^ New C++0x feature support in Clang

(43)^ C++ and C++'0x Support in Clang

(44)^ Compiling the HotSpot VM with Clang

(45)^ LLVM 2.9 Release Notes

(46)^ Clang 3.0 Release Notes

(47)^ Rebuild of the Debian archive with clang

(48)^ FreeBSD Quarterly Status Report January-March, 2012

(49)^ Clang 3.1 Release Notes

(50)^ Clang 3.2 Release Notes

(51)^ GitHub C++11 support is now feature-complete.

(52)^ Clang 3.3 Release Notes

(53)^ Clang 3.4 Release Notes

(54)^ Clang 3.5.0 Release Notes

(55)^ Clang 3.6.0 Release Notes

(56)^ Clang 3.7.0 Release Notes

(57)^ Clang 3.8.0 Release Notes

(58)^ Clang 3.9.0 Release Notes

(59)^ Clang 4.0.0 Release Notes

(60)^ Clang 5.0.0 Release Notes

(61)^ Clang 6.0.0 Release Notes

(62)^ Clang 7.0.0 Release Notes

(63)^ Clang 8.0.0 Release Notes

(64)^ Clang 9.0.0 Release Notes

(65)^ Clang 10.0.0 Release Notes

(66)^ Clang 11.0.0 Release Notes

(67)^ Hankala, Visa (21 December 2020). "Make clang the default compiler on loongson" (Mailing list). 202188

(68)^ released

(69)^ Clang 13.0.0 Release Notes  Clang 13 documentation. releases.llvm.org. 2022419

(70)^ Clang 14.0.0 Release Notes  Clang 14.0.0 documentation. releases.llvm.org. 2022419

(71)^ Clang 15.0.0 Release Notes  Clang 15.0.0 documentation. releases.llvm.org. 20221024

関連項目[編集]

外部リンク[編集]