Cling 是一款交互式 C++ 解释器,以 LLVM 和 Clang 为基础构建,其目标是通过超越编码 - 编译 - 运行 - 调试这个惯常的 C++ 工作流程提供生产力的飞跃。
Cling 提供了一个读取 - 求值 - 输出循环(REPL),类似常见的 Unix shell,并支持 Emacs 绑定。使用 Cling 可以测试 C++ 代码片段,而不需要创建文件、包含头文件等等。使用 REPL 的主要好处是可以在极短的时间内测试一个想法,而不需要等待构建系统编译代码。REPL 在学习一门语言时也非常有用,因为它让试用语言特性变得更简单。
ROOT 是 Cern 的数据分析框架,Cling 即是由该框架背后的团队开发完成,作为现有的命令行 C/C++ 解释器 CINT 的一个替代方案。目前,在粒子物理学领域中,许多实验中都用到了ROOT,包括大型“强子对撞器(Large Hadron Collider)”。
Cling 可以解析 Clang 所能解析的一切内容,并且还支持一些 CINT 特有的 C++ 扩展。ROOT 开发团队列举了Cling 提供的主要好处,其中包括使用生产级解析器、JIT 允许不使用封装器直接进行库调用、使用独立的解析器和执行引擎。
Cling 在 GitHub 上开源。用户既可以使用每日构建的二进制包进行安装,也可以从源代码构建。官方的一体化构建脚本支持基于Unix 的系统,而Windows 上的手动构建过程可以借助CMake 实现。此外,Gallagher Pryor介绍了针对ARM 平台构建Cling 的步骤,这比针对x86 平台进行构建要复杂得多,因为开发团队没有在他们的构建脚本中直接提供这种支持选项。
评论