Здравствуйте, коллеги-разработчики! Я Максим, и я хочу поделиться новостью из мира C++. Я смог в 15 лет собрать Clang, LLD, LLDB, clang-extra-tools нативно в Windows, и оно работает. Но начнем мы издалека: как я вообще выбрал C++; почему не остался на MSVC, G++; как я собрал LLVM; почему не скачал уже готовые сборки от Мартина Сторшё.
Рубрика «LLVM»
Как я в 15 лет собрал LLVM ToolChain на Windows без MSVC
2025-12-26 в 13:46, admin, рубрики: c++, clang, clang-extra-tools, LLD, LLDB, LLVM, mingw-w64, Без MSVC, сборкаЧто происходит после fn main() в Rust?
2025-12-03 в 7:05, admin, рубрики: cargo, LLVM, Rust, компилятор
Привет!
Хочу вместе с вами разобрать, как же код на Rust превращается в готовый исполняемый файл. Мы пишем программу, например, fn main() { println!("Hello, Habr!"); }Читать полностью »
«LLVM для AI». Крис Латтнер и язык программирования Mojo
2025-10-04 в 9:01, admin, рубрики: GPU-программирование, LLVM, mlir, Modular AI, Mojo, OpenXLA, ruvds_статьи, swift, TritonLang, Крис Латтнер
Крис Латтнер (Chris Lattner) — создатель CPU-компилятора LLVM и соавтор Swift — предложил новый язык программирования MojoЧитать полностью »
Мое видение универсального языка программирования
2025-08-29 в 14:46, admin, рубрики: dsl, LLVM, архитектура, байткод, компилятор, модульность, парадигмы программирования, универсальный, язык программированияПредисловие
В этой статье будет много моих выводов, гипотез и идей. Это моя первая статья, поэтому буду рад услышать аргументированную критику. В статье часто используется псевдокод, чей синтаксис напоминает смесь C#, C++ и Python.
Немного о терминологии
Много времени я программирую на C#, и в этом языке существуют некоторые термины, которые могут ввести в заблуждение программистов на C++:
-
Под словом коллекция я подразумеваю любой набор элементов: список, массив, стек, куча, итератор, множество и т.п.
-
Говоря список, я подразумеваю динамический массив
Язык программирования - инструмент
Golang на PlayStation 2
2025-04-30 в 14:55, admin, рубрики: clang, golang, LLVM, llvm ir, mips, playstation 2
Мне всегда хотелось творить какую-нибудь дичь с консолями. Не знаю почему, но меня всегда привлекала идея реализовывать на устройствах неожиданные возможности. Это относится и к PlayStation 2, выпущенной Sony в 2000 году.
Sony, пожалуйста, не подавайте в суд на меня за этот пост.
Развенчиваем популярные мифы и заблуждения о компиляторах
2024-12-16 в 13:01, admin, рубрики: clang, gcc, intermediate representation, ir, LLVM, ruvds_переводы, оптимизация кода, оптимизирующий компилятор
▍ Введение
Компиляторы всегда были окружены аурой загадочности и магии. Из-за этого многие из нас верят, что они делают то, чего они не делают, или что они не делают того, что делают1
Эта статья станет своего рода продолжением статьи о компиляторных оптимизациях. Я перечислю некоторые заблуждения, с которыми я сталкивался за долгие годы (многие из них были моими), и постараюсь развеять все мифы. Заранее скажу, что эта статья посвящена только крупным популярным компиляторам общего назначения наподобие LLVM, GCC и ICX. Некоторые из сделанных здесь утверждений не относятся, например, к специализированным компиляторам2, а также к мелким и средним компиляторам3.Читать полностью »
Дрю ДеВолт — автор языка Hare и платформы кодохостинга SourceHut
2024-12-09 в 9:01, admin, рубрики: aerc, chopsui, Drew DeVault, fish, Hare, Helios, Himitsu, IRC-клиент, KnightOS, LLVM, mrsh, mutt, QBE, qutebrowser, Redict, redis, ruvds_статьи, scdoc, sr.ht, sway, TrueCraft, vim, WeeChat, wlroots, Дрю ДеВолт
Дрю ДеВолт объясняет, что веб-интерфейс Github.com требует множества лишних действий. Гораздо эффективнее использовать консольный почтовый клиент, отправляя тот же пулл-реквест одной командой из консоли
Американский разработчик Дрю ДеВолт (Drew DeVault) известен как создатель и исполнительный директор платформы для хостинга проектов SourceHut, которую Фонд сохранения свободы ПО выбрал как альтернативу майкрософтовскому сервису GitHub (наряду с CodeBerg) в рамках кампании Give Up GitHub по уходу свободных проектов с этого коммерческого хостинга, задача которого — генерировать продажи Copilot.
ДеВолт также известен как автор нового языка системного программирования Hare, который похож на С, только лучше и проще его.Читать полностью »
Блеск и нищета WebAssembly
2024-09-26 в 9:06, admin, рубрики: c++, dsl, LLVM, SIEM, webassembly, xp, библиотеки, высокая производительность, Компиляторы, языки программирования
Всем привет! Сейчас за окном осенние деньки 2024 года. Вещает Пройдаков Евгений. Сейчас я руковожу группой разработки среды исполнения языка eXtraction and Processing в R&D департаменте Positive Technologies.
Опасность устарела: несколько важных нюансов в новых стандартах C++
2024-06-27 в 14:17, admin, рубрики: C, c++, C++20, cybersecurity, LLVM, qt, stm32, undefined behavior, безопасность, информационная безопасность, кибератаки, кибербезопасность, компилятор, Компиляторы, Программирование, разработка, Си, системное программирование, статический анализ кода, уязвимости, языки программированияВ этой статье я со своих позиций Senior Software Architect и Security Champion в микроядерной операционной системе KasperskyOS рассмотрю кейсы-ловушки, в которые можно попасть практически в любом из стандартов, и покажу, что меняется в С++20/23/26, — уменьшается ли количество кейсов с неопределенным поведением, и становится ли С++ безопаснее.
Передавать пустые срезы между Rust и C-C++ на удивление сложно
2024-01-26 в 13:00, admin, рубрики: C, c++, LLVM, Rust, ruvds_перевод, арифметика указателей, срезы памяти
Моя основная работа связана с браузерами и криптографией, а не компиляторами. Но я нередко сталкиваюсь с ситуацией, когда мне приходится проводить больше рабочего времени за изучением семантики языков программирования, чем за фактическим их использованием. Так что эта статья будет посвящена обсуждению острой межязыковой проблемы, касающейся С, С++ и Rust.
В общих чертах она выглядит так:
- В правила работы с указателями и
memcpyв С не заложены грамотные способы представления пустого среза памяти. - В С++ с правилами указателей проблем нет, но поведение
memcpyздесь аналогично её поведению в С. - Интерфейс внешних функций (Foreign Function Interface, FFI) в Rust не лишён накладных издержек. Rust использует несовместимое с C/C++ представление срезов, требуя их преобразования при передаче в обоих направлениях. При этом о преобразовании очень легко забыть.
- Срезы в Rust также несовместимы с арифметикой указателей, что создаёт проблемы в работе итератора срезов стандартной библиотеки. (Обновление от 2024-01-16: похоже, над этой проблемой работают).
Поскольку проблемы FFI касаются нескольких языков, я писал статью в качестве общей справки, описывающей их несогласованность. Читать полностью »

