Worgle 是 Web ORg TanGLEr。至少,它的目标是能够纠缠以与 org-babel 兼容的 org 标记子集编写的读写程序。这包括 noweb 风格的代码扩展,这是文学编程的一个关键方面(在其他非 emacs org 模式缠结者中似乎经常被忽略)。最终,希望引入更多类似 WEB 的语法并构建 weave 的后端(导出到 HTML、TeX 等)。
构建 Worgle 的最初动机是性能。 org-babel 完成的缠结速度慢得令人尴尬,以至于对于任何大于脚本的项目都毫无用处。 Worgle 的目标是使 org-tangle 可用于实际的软件项目。
更大的目标是构建 CWEB 的精神继承者,CWEB 是我每天用来用 C 编写文字程序的程序。它可能是最好的文字编程工具之一。如今,CWEB 已有 3 多年的历史,显然已经显露出衰老的迹象。
目前,Worgle 的功能刚刚够用。
组织模式的几乎所有高级功能都不会被实现。如果你需要的话,Emacs 非常擅长处理这个问题。
要编译,请运行make
。
要安装,请运行sudo make install
。
事实证明,这个 README就是示例代码。很酷,对吧?
C 语言的简单 hello world 程序的代码块如下所示:
#include
int main ( int argc , char * argv [])
{
<< say_the_worgle_greeting >>
return 0 ;
}
上面提到的代码有一个名为say_the_worgle_greeting
的代码块。
这被扩展为下面的代码块:
printf ( "Orgle Worgle Borgle!n" );
C 代码使用orgle
bootstrapper 进行纠缠,然后可以使用 GCC 等 C 编译器进行编译和运行。
./orgle README.org
gcc hello.c -o hello
./hello
一项非常随意的性能测试表明,Worgle 的缠结速度比 Emacs 快 1300 倍(!)。该测试是使用 shell 脚本measure_performance.sh 完成的。
下面打印的结果来自运行 High Sierra 的 2015 年中期 MacBook pro。
Org-babel-tangle(通过 Emacs):0m1.318s 蠕动:0m0.001s
该项目属于公共领域。人类,黑客快乐。