Worgle は Web 組織 TanGLEr です。少なくとも、org-babel と互換性のある org マークアップのサブセットで書かれたリテラシーのあるプログラムをタングラーできるようにすることを目的としています。これには、noweb スタイルのコード拡張が含まれます。これは、読み書きできるプログラミングにとって重要な側面です (これは、他の非 emacs org-mode tangler では無視されることが多いようです)。最終的には、より WEB に似た構文を導入し、Weave のバックエンド (HTML、TeX などへのエクスポート) を構築することが期待されています。
Worgle を構築する最初の動機はパフォーマンスです。 org-babel によって行われるもつれは、スクリプトよりも大きなプロジェクトには役に立たないほど、恥ずかしいほど遅いです。 Worgle は、org-tangle を実際のソフトウェア プロジェクトで使用できるようにすることを目指しています。
より大きな目標は、CWEB の精神的な後継者を構築することです。CWEB は、C で読み書き可能なプログラムを作成するために私が日常的に使用しているプログラムです。これはおそらく、世の中で読み書き可能なプログラミング ツールの中で最も優れたツールの 1 つです。設立から 30 年以上が経過した CWEB は、明らかに老朽化の兆しを見せています。
現時点では、Worgle には役立つのに十分な機能が備わっています。
org-mode の高度な機能のほとんどは実装されません。 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
ブートストラップを使用して結合され、GCC などの C コンパイラを使用してコンパイルして実行できます。
./orgle README.org
gcc hello.c -o hello
./hello
非常にカジュアルなパフォーマンス テストでは、Worgle が Emacs よりも 1300 倍 (!) 速く自身をもつれさせることができることが示されています。テストはシェル スクリプトmeasure_performance.shを使用して行われます。
以下に印刷された結果は、High Sierra を実行している 2015 年半ばの MacBook pro からのものです。
Org-babel-tangle (Emacs 経由): 0m1.318s ワーグル: 0分0.001秒
このプロジェクトはパブリックドメインの下に置かれています。皆さん、ハッキングを楽しんでください。