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
該項目屬於公共領域。人類,駭客快樂。