Clang: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Содержимое удалено Содержимое добавлено
Excelland (обсуждение | вклад) Функция «Добавить ссылку»: добавлено 3 ссылки. |
РобоСтася (обсуждение | вклад) |
||
(не показано 26 промежуточных версий 14 участников) | |||
Строка 12:
| языки интерфейса =
| первый выпуск = 26 сентября 2007
| последняя версия = 18.1.8<ref>{{Cite news|title=LLVM 16.0.0 Release|url=https://discourse.llvm.org/t/llvm-16-0-0-release/69326|accessdate=2023-03-17|archivedate=2023-03-18|archiveurl=https://web.archive.org/web/20230318081420/https://discourse.llvm.org/t/llvm-16-0-0-release/69326}}</ref>
| дата последней версии = {{Start date and age|
| состояние = Активное
| лицензия = [[лицензия Университета Иллинойса]] ([[:en:University of Illinois/NCSA Open Source License|англ.]])
| сайт = http://clang.llvm.org/
}}
'''Clang''' (произносится «клэнг»<ref>[http://lists.cs.uiuc.edu/pipermail/llvmdev/2008-July/015624.html Обсуждение произношения названия на рассылке llvmdev] {{webarchive|url=https://web.archive.org/web/20120208050747/http://lists.cs.uiuc.edu/pipermail/llvmdev/2008-July/015624.html |date=2012-02-08 }}</ref>) является [[Front and back ends|фронтендом]] для [[язык программирования|языков программирования]] [[Си (язык программирования)|C]], [[C++]], [[Objective-C]], [[Objective-C++]] ([[:en:Objective-C++|англ.]]) и [[OpenCL|OpenCL C]], использующимся совместно с [[фреймворк]]ом [[LLVM]]. Clang транслирует [[Исходный код|исходные коды]] в [[байт-код]] LLVM, затем фреймворк производит оптимизации и [[кодогенерация|кодогенерацию]].
Целью проекта является создание замены GNU Compiler Collection ([[GCC]]). Разработка ведётся согласно концепции [[Открытое программное обеспечение|open source]] в рамках проекта LLVM.
Clang 12
В проекте участвуют работники нескольких корпораций, в том числе [[Google (компания)|Google]] и [[Apple]]. Исходный код доступен на условиях [[Лицензия BSD|BSD]]-подобной лицензии.
== Обзор ==
Clang — это [[транслятор]] для C-подобных языков, созданный специально для работы на базе LLVM. Комбинация Clang и LLVM представляет собой полноценный компилятор и предоставляет набор инструментов, позволяющих полностью заменить GCC. Благодаря архитектуре, основанной на [[Библиотека (программирование)|библиотеках]], Clang (как и LLVM) легко встраивается в другие приложения.
Строка 52:
|archivedate = 2012-04-30
|deadurl = yes
}}</ref><ref>
|-
|-
Строка 63:
|archivedate = 2012-04-30
|deadurl = yes
}}</ref><ref>
|-
|23 октября 2009||Clang 1.0 впервые выпущен в составе LLVM 2.6.
|-
|Декабрь 2009||Кодогенерация для языков C и Objective-C достигла промышленного качества (поддержка C++ и Objective-C++ ещё не завершена). Компилятор C++ может осуществлять лексический разбор [[libstdc++]] из GCC 4.2 и генерировать работоспособный код для нетривиальных программ<ref name=clang>Clang team, ''[http://clang.llvm.org/ clang: a C language family frontend for LLVM] {{Wayback|url=http://clang.llvm.org/ |date=20110313095638 }}''</ref>, а также компилирует себя<ref>{{cite web
|publisher = Блог проекта LLVM
|url = http://blog.llvm.org/2009/12/clang-builds-llvm.html
Строка 76:
}}</ref>.
|-
|2 февраля 2010||Clang осуществил [[
|publisher = Блог проекта LLVM
|url = http://blog.llvm.org/2010/02/clang-successfully-self-hosts.html
Строка 114:
}}</ref>.
|-
|25 октября 2010||Clang/LLVM успешно компилирует ядро [[Linux]] (частично)<ref>[http://lists.cs.uiuc.edu/pipermail/cfe-dev/2010-October/011711.html [ANNOUNCE] Clang builds a working Linux Kernel (Boots to RL5 with SMP, networking and X, self hosts)] {{webarchive|url=https://web.archive.org/web/20150907044958/http://lists.cs.uiuc.edu/pipermail/cfe-dev/2010-October/011711.html |date=2015-09-07 }}</ref>. До полной поддержки остаётся исправить несколько ошибок в clang<ref>{{Cite web |url=http://llvm.org/bugs/show_bug.cgi?id=4068 |title=Страница отслеживания ошибок llvm, препятствующих сборке ядра Linux |access-date=2011-10-17 |archive-date=2014-06-09 |archive-url=https://web.archive.org/web/20140609150754/http://llvm.org/bugs/show_bug.cgi?id=4068 |deadlink=no }}</ref> и избавиться от некоторых gnu-специфичных конструкций в ядре.
|-
|Январь 2011||Проведена предварительная работа по поддержке черновика стандарта [[C++0x]], в разрабатываемой версии Clang поддерживаются некоторые новые возможности<ref>{{cite mailing list
Строка 122 ⟶ 121 :
| last=Gregor
| title=New C++0x feature support in Clang
|
| accessdate=
|
| archiveurl=https://web.archive.org/web/20110130065354/http://lists.cs.uiuc.edu/pipermail/cfe-dev/2011-January/013013.html
| archivedate=2011-01-30
Строка 141 ⟶ 140 :
|last = Simonis
|title = Compiling the HotSpot VM with Clang
|date =
|quote = ''While the overall GCC compatibility is excellent and the compile times are impressive, the performance of the generated code is still lacking behind a recent GCC version. ''
|accessdate =
|archiveurl = https://www.webcitation.org/67JxM051z?url=http://weblogs.java.net/blog/simonis/archive/2011/02/10/compiling-hotspot-vm-clang
|archivedate = 2012-04-30
Строка 154 ⟶ 153 :
|last = Criswell
|title = [LLVMdev] Clang + SAFECode Release Announcement
|date =
|accessdate =
|archiveurl = https://www.webcitation.org/67JxMWDqM?url=http://lists.cs.uiuc.edu/pipermail/llvmdev/2011-August/042506.html
|archivedate = 2012-04-30
Строка 164 ⟶ 163 :
|url = http://lists.freedesktop.org/archives/libreoffice/2011-October/019632.html
|title = Building LibreOffice with Clang
|date =
|accessdate =
|archiveurl = https://www.webcitation.org/67JxN1ZVJ?url=http://lists.freedesktop.org/archives/libreoffice/2011-October/019632.html
|archivedate = 2012-04-30
Строка 215 ⟶ 214 :
| url=https://twitter.com/sdt_intel/status/325289093170864129
| title=Clang is C++11 feature complete as of *just now*!
| access-date=2013-04-22
}}</ref>.▼
| archive-date=2019-09-24
| archive-url=https://web.archive.org/web/20190924204137/https://twitter.com/stefanusdutoit/status/325289093170864129
| deadlink=no
▲ }}</ref>.
|-
|18 июня 2013||Релиз Clang 3.3 поддерживает 100 % возможностей C++11.
|-
|07 ноября 2013||Clang поддерживает 100 % возможностей C++14<ref>[http://llvm.org/viewvc/llvm-project?view=revision&revision=194194
|-
|11 сентября 2014
|С помощью Clang 3.5 можно пересобрать 94,3 % архива Debian. Доля неудач при сборках снизилась с января 2013 г. на 1,2 % на релиз, в основном вследствие повышения совместимости с флагами GCC<ref>{{Cite web|url=http://sylvestre.ledru.info/blog/2014/09/11/rebuild-of-debian-using-clang-3-5|title=Rebuild of Debian using Clang 3.5.0|publisher=sylvestre.ledru.info|accessdate=2016-05-06|archive-date=2016-04-19|archive-url=https://web.archive.org/web/20160419003014/http://sylvestre.ledru.info/blog/2014/09/11/rebuild-of-debian-using-clang-3-5|deadlink=no}}</ref>.
|-
|13 марта 2017
Строка 232 ⟶ 235 :
| last=Nagy
| title=switch the default compiler on amd64 and i386 to clang
|
| accessdate=
| archivedate=2018-10-25
| archiveurl=https://web.archive.org/web/20181025144820/https://marc.info/?l=openbsd-cvs&m=150109829003860&w=2
}}</ref>.
|-
|7 сентября 2017
|Clang 5.0.0 [https://releases.llvm.org/5.0.0/tools/clang/docs/ReleaseNotes.html Релиз].
|-
|5 марта 2018||Clang становится компилятором по умолчанию сборок [[Google Chrome]] для всех поддерживаемых платформ.<ref>{{Cite web|url=http://blog.llvm.org/2018/03/clang-is-now-used-to-build-chrome-for.html|title=Clang is now used to build Chrome for Windows|accessdate=2018-03-06|archive-date=2018-03-05|archive-url=https://web.archive.org/web/20180305220009/http://blog.llvm.org/2018/03/clang-is-now-used-to-build-chrome-for.html|deadlink=no}}</ref>
|-
|8 марта 2018
Строка 260 ⟶ 266 :
|14 апреля 2021
|Clang 12.0.0 [https://releases.llvm.org/12.0.0/tools/clang/docs/ReleaseNotes.html Релиз]
|-
|4 октября 2021
|Clang 13.0.0 [https://releases.llvm.org/13.0.0/tools/clang/docs/ReleaseNotes.html Релиз]
|-
|25 марта 2022
|Clang 14.0.0 [https://releases.llvm.org/14.0.0/tools/clang/docs/ReleaseNotes.html Релиз]
|-
|6 сентября 2022
|Clang 15.0.0 [https://releases.llvm.org/15.0.0/tools/clang/docs/ReleaseNotes.html Релиз]
|-
|17 марта 2023
|Clang 16.0.0 [https://releases.llvm.org/16.0.0/tools/clang/docs/ReleaseNotes.html Релиз]
|}
Строка 266 ⟶ 284 :
== Ссылки ==
* [http://clang.llvm.org/ Официальная страница проекта]
|