Repolode
root-project

root-project/cling

Um interpretador interativo de C++ baseado em Clang e LLVM, com um REPL para executar código C++ linha por linha.

Estrelas
4,201
Forks
313
Issues abertas
138
Último commit
há 7 dias

O que é?

Cling é um interpretador interativo de C++ que implementa um loop de leitura, avaliação e impressão (REPL), permitindo inserir e executar código C++ incrementalmente, sem passar por um ciclo completo de compilação, linkedição e execução. Ele é desenvolvido como uma extensão do LLVM e do Clang e reutiliza os diagnósticos do compilador do Clang.

O projeto pode ser compilado de forma independente usando uma instalação existente do LLVM/Clang ou junto com o LLVM a partir de uma branch dedicada do llvm-project. Ao executar o binário cling, é possível inserir diretamente instruções C++ e diretivas include, além de usar comandos iniciados por ponto, como .help, durante a interação.

Cling também oferece suporte à depuração e à criação de perfil de código interpretado (compilado com JIT) por meio das variáveis de ambiente CLING_DEBUG e CLING_PROFILE, além de disponibilizar um kernel Jupyter que pode ser instalado após a compilação.

Recursos principais

  • 01REPL interativo para executar instruções e declarações C++ incrementalmente.
  • 02Desenvolvido com Clang e LLVM, reutilizando os diagnósticos do compilador do Clang.
  • 03Oferece suporte a diretivas #include e à execução interativa de código pela linha de comando.
  • 04Emissão de símbolos de depuração e criação de perfil com perf para código compilado com JIT, por meio de variáveis de ambiente.
  • 05Kernel Jupyter disponível para uso em notebooks.

Casos de uso

  • Testar rapidamente trechos de código C++ ou APIs de bibliotecas sem escrever um programa completo.
  • Explorar headers e o comportamento da linguagem C++ de forma interativa.
  • Usar C++ em notebooks Jupyter para explorar dados.
  • Depurar ou criar perfis de código compilado com JIT durante a execução.

Início rápido

  1. 1

    Clone o repositório llvm-project e faça checkout de cling-latest

    git clone https://github.com/root-project/llvm-project.git
  2. 2

    Clone cling e compile-o junto com LLVM e Clang usando CMake

    cmake -DLLVM_EXTERNAL_PROJECTS=cling -DLLVM_EXTERNAL_CLING_SOURCE_DIR=../cling/ -DLLVM_ENABLE_PROJECTS="clang" -DLLVM_TARGETS_TO_BUILD="host;NVPTX" -DCMAKE_BUILD_TYPE=Release ../llvm-project/llvm
  3. 3

    Compile os alvos clang e cling

    cmake --build . --target clang cling
  4. 4

    Inicie o interpretador interativo na pasta de build

    ./bin/cling

Antes de usar

  • A compilação exige compilar LLVM e Clang a partir do código-fonte, o que leva tempo.
  • No momento, não há snapshots binários nightly disponíveis, então é necessário compilar a partir do código-fonte.
  • Parte da documentação e das palestras vinculadas é antiga, e o README informa que as limitações mencionadas nelas estão desatualizadas.

Tópicos

Perguntas frequentes

O que é cling?
Um interpretador interativo de C++ baseado em Clang e LLVM, com um REPL para executar código C++ linha por linha. Cling é um interpretador interativo de C++ que implementa um loop de leitura, avaliação e impressão (REPL), permitindo inserir e executar código C++ incrementalmente, sem passar por um ciclo completo de compilação, linkedição e execução. Ele é desenvolvido como uma extensão do LLVM e do Clang e reutiliza os diagnósticos do compilador do Clang.
cling é gratuito? Qual é a licença?
cling é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
cling ainda é mantido?
Manutenção ativa. O último commit de cling foi em 15 de out. de 2026.
Para que posso usar cling?
Testar rapidamente trechos de código C++ ou APIs de bibliotecas sem escrever um programa completo. Explorar headers e o comportamento da linguagem C++ de forma interativa. Usar C++ em notebooks Jupyter para explorar dados. Depurar ou criar perfis de código compilado com JIT durante a execução.
Como instalar cling?
Clone o repositório llvm-project e faça checkout de cling-latest: git clone https://github.com/root-project/llvm-project.git Clone cling e compile-o junto com LLVM e Clang usando CMake: cmake -DLLVM_EXTERNAL_PROJECTS=cling -DLLVM_EXTERNAL_CLING_SOURCE_DIR=../cling/ -DLLVM_ENABLE_PROJECTS="clang" -DLLVM_TARGETS_TO_BUILD="host;NVPTX" -DCMAKE_BUILD_TYPE=Release ../llvm-project/llvm Compile os alvos clang e cling: cmake --build . --target clang cling Inicie o interpretador interativo na pasta de build: ./bin/cling
Onde consigo cling?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/root-project/cling

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados