Repolode
root-project

root-project/cling

Intérprete interactivo de C++ basado en Clang y LLVM que ofrece un REPL para ejecutar código C++ línea por línea.

Estrellas
4,201
Forks
313
Issues abiertos
138
Último commit
hace 7 días

¿Qué es?

Cling es un intérprete interactivo de C++ que implementa un bucle de lectura, evaluación e impresión (REPL), por lo que permite introducir y ejecutar código C++ de forma incremental, sin tener que completar el ciclo de compilación, enlace y ejecución. Está desarrollado como una extensión de LLVM y Clang, y reutiliza los diagnósticos del compilador de Clang.

El proyecto se puede compilar de forma independiente con una instalación existente de LLVM/Clang o junto con LLVM desde una rama específica de llvm-project. Al ejecutar el binario cling, se pueden introducir directamente sentencias de C++ y directivas include. También ofrece comandos con prefijo de punto, como .help, para el uso interactivo.

Cling también permite depurar y perfilar código interpretado (compilado con JIT) mediante las variables de entorno CLING_DEBUG y CLING_PROFILE, y proporciona un kernel de Jupyter que se puede instalar después de compilarlo.

Funciones clave

  • 01REPL interactivo para ejecutar sentencias y declaraciones de C++ de forma incremental.
  • 02Basado en Clang y LLVM, y reutiliza los diagnósticos del compilador de Clang.
  • 03Admite directivas #include y la ejecución interactiva de código desde la línea de comandos.
  • 04Emisión de símbolos de depuración y perfilado con perf del código compilado con JIT mediante variables de entorno.
  • 05Incluye un kernel de Jupyter para usar en notebooks.

Casos de uso

  • Probar rápidamente fragmentos de C++ o API de bibliotecas sin escribir un programa completo.
  • Explorar headers y el comportamiento del lenguaje C++ de forma interactiva.
  • Usar C++ en notebooks de Jupyter para explorar datos.
  • Depurar o perfilar código compilado con JIT en tiempo de ejecución.

Inicio rápido

  1. 1

    Clona el repositorio llvm-project y cambia a la rama cling-latest

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

    Clona cling y compílalo junto con LLVM y 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

    Compila los objetivos clang y cling

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

    Inicia el intérprete interactivo desde la carpeta de compilación

    ./bin/cling

Antes de usarlo

  • La compilación requiere compilar LLVM y Clang desde el código fuente, lo que lleva tiempo.
  • Actualmente no hay instantáneas binarias nightly disponibles, por lo que debes compilar desde el código fuente.
  • Parte de la documentación y de las charlas enlazadas es antigua, y el README indica que las limitaciones que mencionan ya no están actualizadas.

Temas

Preguntas frecuentes

¿Qué es cling?
Intérprete interactivo de C++ basado en Clang y LLVM que ofrece un REPL para ejecutar código C++ línea por línea. Cling es un intérprete interactivo de C++ que implementa un bucle de lectura, evaluación e impresión (REPL), por lo que permite introducir y ejecutar código C++ de forma incremental, sin tener que completar el ciclo de compilación, enlace y ejecución. Está desarrollado como una extensión de LLVM y Clang, y reutiliza los diagnósticos del compilador de Clang.
¿cling es gratuito? ¿Qué licencia tiene?
cling es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿cling sigue mantenido?
Mantenimiento activo. El último commit de cling fue el 15 oct 2026.
¿Para qué puedo usar cling?
Probar rápidamente fragmentos de C++ o API de bibliotecas sin escribir un programa completo. Explorar headers y el comportamiento del lenguaje C++ de forma interactiva. Usar C++ en notebooks de Jupyter para explorar datos. Depurar o perfilar código compilado con JIT en tiempo de ejecución.
¿Cómo se instala cling?
Clona el repositorio llvm-project y cambia a la rama cling-latest: git clone https://github.com/root-project/llvm-project.git Clona cling y compílalo junto con LLVM y 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 Compila los objetivos clang y cling: cmake --build . --target clang cling Inicia el intérprete interactivo desde la carpeta de compilación: ./bin/cling
¿Dónde consigo cling?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/root-project/cling

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados