Модульный набор технологий для компиляторов и инструментальных цепочек, включающий LLVM core, фронтенд Clang для C/C++, libc++ и линкер LLD.
root-project/cling
Интерактивный интерпретатор C++ на базе Clang и LLVM с REPL для выполнения кода построчно.
- Звёзды
- 4,201
- Форки
- 313
- Открытые issues
- 138
- Последний коммит
- 7 дней назад
Что это?
Cling — это интерактивный интерпретатор C++, реализующий цикл чтения, вычисления и вывода (REPL). Благодаря этому код на C++ можно вводить и выполнять по частям, без полного цикла компиляции, компоновки и запуска. Проект создан как расширение LLVM и Clang и использует диагностику компилятора Clang.
Проект можно собрать отдельно, используя уже установленный LLVM/Clang, или вместе с LLVM из специальной ветки llvm-project. При запуске бинарного файла cling можно напрямую вводить инструкции C++ и директивы include; для интерактивной работы также доступны команды с точкой в начале, например .help.
Cling также поддерживает отладку и профилирование интерпретируемого (скомпилированного JIT-компилятором) кода с помощью переменных окружения CLING_DEBUG и CLING_PROFILE. После сборки можно установить и предоставляемое проектом ядро Jupyter.
Ключевые возможности
- 01Интерактивный REPL для выполнения инструкций и объявлений C++ по частям.
- 02Создан на базе Clang и LLVM и использует диагностику компилятора Clang.
- 03Поддерживает директивы #include и интерактивный запуск кода из командной строки.
- 04Генерация отладочных символов и профилирование с помощью perf для кода, скомпилированного JIT-компилятором; настройки задаются через переменные окружения.
- 05Доступно ядро Jupyter для работы в ноутбуках.
Сценарии использования
- Быстрая проверка фрагментов кода C++ или API библиотек без написания полноценной программы.
- Интерактивное изучение заголовочных файлов и поведения языка C++.
- Использование C++ в ноутбуках Jupyter для исследования данных.
- Отладка и профилирование кода, компилируемого JIT-компилятором во время выполнения.
Темы
Частые вопросы
- Что такое cling?
- Интерактивный интерпретатор C++ на базе Clang и LLVM с REPL для выполнения кода построчно. Cling — это интерактивный интерпретатор C++, реализующий цикл чтения, вычисления и вывода (REPL). Благодаря этому код на C++ можно вводить и выполнять по частям, без полного цикла компиляции, компоновки и запуска. Проект создан как расширение LLVM и Clang и использует диагностику компилятора Clang.
- cling можно использовать бесплатно? Какая у него лицензия?
- cling распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- cling всё ещё поддерживается?
- Активно поддерживается. Последний коммит в cling — 15 окт. 2026 г..
- Для чего можно использовать cling?
- Быстрая проверка фрагментов кода C++ или API библиотек без написания полноценной программы. Интерактивное изучение заголовочных файлов и поведения языка C++. Использование C++ в ноутбуках Jupyter для исследования данных. Отладка и профилирование кода, компилируемого JIT-компилятором во время выполнения.
- Где скачать cling?
- Исходный код и инструкции по установке — на GitHub: https://github.com/root-project/cling
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Среда для вычислений на Rust с Jupyter-ядром и REPL в командной строке для интерактивного запуска кода.
Ядро Haskell для Jupyter: позволяет запускать код на Haskell в ноутбуках, консоли и других интерфейсах Jupyter.
Набор инструментов компиляции, который преобразует код на C и C++ в WebAssembly для запуска в браузерах, Node.js и других Wasm-средах.
Компилятор Go на базе LLVM для микроконтроллеров, WebAssembly (WASM/WASI) и инструментов командной строки.
Движок JavaScript на чистом Go с поддержкой ECMAScript 5.1 для встраивания выполнения JS-кода в приложения на Go.