Repolode
root-project

root-project/cling

ClangとLLVMを基盤とする対話型C++インタープリター。REPLでC++コードを1行ずつ実行できます。

スター
4,201
フォーク
313
未解決の Issue
138
最終コミット
7 日前

これは何?

Clingはread-eval-print loop(REPL)を実装した対話型C++インタープリターです。C++コードを入力するたびに実行できるため、コンパイル・リンク・実行を一通り行う必要がありません。LLVMとClangの拡張として構築されており、Clangのコンパイラー診断を再利用します。

既存のLLVM/Clang環境に対して単独でビルドできるほか、専用のllvm-projectブランチからLLVMと一緒にビルドすることもできます。clingバイナリを起動すると、C++の文やincludeディレクティブを直接入力でき、対話的に利用するための.helpなどのドットで始まるコマンドも用意されています。

CLING_DEBUGおよびCLING_PROFILE環境変数を使って、インタープリターで実行される(JITコンパイルされた)コードのデバッグやプロファイリングも行えます。また、ビルド後にインストールできるJupyterカーネルも提供しています。

主な機能

  • 01C++の文や宣言を逐次実行できる対話型REPL。
  • 02ClangとLLVMを基盤とし、Clangのコンパイラー診断を再利用。
  • 03#includeディレクティブに対応し、コマンドラインから対話的にコードを実行可能。
  • 04環境変数を使って、JITコンパイルされたコードのデバッグシンボル出力とperfプロファイリングに対応。
  • 05ノートブックで使えるJupyterカーネルを提供。

ユースケース

  • プログラム全体を書かずに、C++のコード断片やライブラリAPIを手早く試す。
  • ヘッダーやC++言語の挙動を対話的に調べる。
  • JupyterノートブックでC++を使ってデータを探索する。
  • 実行時にJITコンパイルされるコードをデバッグまたはプロファイリングする。

クイックスタート

  1. 1

    llvm-projectリポジトリをcloneし、cling-latestをチェックアウトします

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

    clingをcloneし、CMakeを使ってLLVMおよびClangと一緒にビルドします

    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

    clangおよびclingのターゲットをビルドします

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

    ビルドフォルダーから対話型インタープリターを起動します

    ./bin/cling

使う前に知っておきたいこと

  • ビルドにはLLVMとClangをソースからコンパイルする必要があり、時間がかかります。
  • 現在、ナイトリーバイナリスナップショットは利用できないため、ソースからビルドする必要があります。
  • リンクされているドキュメントや講演の一部は古く、READMEによると、そこに記載された制限事項は最新ではありません。

トピック

よくある質問

cling とは?
ClangとLLVMを基盤とする対話型C++インタープリター。REPLでC++コードを1行ずつ実行できます。 Clingはread-eval-print loop(REPL)を実装した対話型C++インタープリターです。C++コードを入力するたびに実行できるため、コンパイル・リンク・実行を一通り行う必要がありません。LLVMとClangの拡張として構築されており、Clangのコンパイラー診断を再利用します。
cling は無料で使えますか?ライセンスは?
cling は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
cling は今もメンテナンスされていますか?
活発にメンテナンス中。cling の最終コミットは 2026年10月15日 です。
cling は何に使えますか?
プログラム全体を書かずに、C++のコード断片やライブラリAPIを手早く試す。 ヘッダーやC++言語の挙動を対話的に調べる。 JupyterノートブックでC++を使ってデータを探索する。 実行時にJITコンパイルされるコードをデバッグまたはプロファイリングする。
cling のインストール方法は?
llvm-projectリポジトリをcloneし、cling-latestをチェックアウトします: git clone https://github.com/root-project/llvm-project.git clingをcloneし、CMakeを使ってLLVMおよびClangと一緒にビルドします: 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 clangおよびclingのターゲットをビルドします: cmake --build . --target clang cling ビルドフォルダーから対話型インタープリターを起動します: ./bin/cling
cling はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/root-project/cling

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト