Worgle ist der Web ORg TangLER. Zumindest zielt es darauf ab, nach kompetenten Programmen zu suchen, die in einer Teilmenge des Org-Markups geschrieben sind, die mit Org-Babel kompatibel ist. Dazu gehört die Codeerweiterung im NoWeb-Stil, ein entscheidender Aspekt für die Alphabetisierung (der in anderen Nicht-Emacs-Organisationsmodus-Tanglern oft ignoriert zu werden scheint). Letztendlich besteht die Hoffnung darin, eine WEB-ähnlichere Syntax einzuführen und ein Backend für Weave zu erstellen (Export nach HTML, TeX usw.).
Die anfängliche Motivation für den Aufbau von Worgle ist die Leistung. Das von org-babel durchgeführte Tangling ist so peinlich langsam, dass es für Projekte, die größer als ein Skript sind, unbrauchbar ist. Ziel von Worgle ist es, Org-Tangle für konkrete Softwareprojekte nutzbar zu machen.
Das größere Ziel besteht darin, einen spirituellen Nachfolger von CWEB zu entwickeln, einem Programm, das ich täglich verwende, um Leseprogramme in C zu schreiben. Es ist vielleicht eines der besten Programmiertools auf dem Markt. Mittlerweile über drei Jahrzehnte alt, zeigt CWEB definitiv Alterserscheinungen.
Im Moment verfügt Worgle über gerade genug Funktionen, um nützlich zu sein.
So gut wie alle erweiterten Funktionen des Organisationsmodus werden nicht implementiert. Emacs kann damit gut umgehen, wenn Sie es brauchen.
Führen Sie zum Kompilieren make
aus.
Führen Sie zur Installation sudo make install
.
Wie sich herausstellt, handelt es sich bei dieser README-Datei um den Beispielcode. Cool, oder?
Ein Codeblock für ein einfaches Hallo-Welt-Programm in C sieht folgendermaßen aus:
#include
int main ( int argc , char * argv [])
{
<< say_the_worgle_greeting >>
return 0 ;
}
Der oben erwähnte Code verfügt über einen Codeblock namens say_the_worgle_greeting
.
Dies wird auf den folgenden Codeblock erweitert:
printf ( "Orgle Worgle Borgle!n" );
Der C-Code wird mit dem orgle
Bootstrapper verwickelt, der dann mit einem C-Compiler wie GCC kompiliert und ausgeführt werden kann.
./orgle README.org
gcc hello.c -o hello
./hello
Ein sehr beiläufiger Leistungstest zeigt, dass Worgle in der Lage ist, sich um den Faktor 1300 (!) schneller zu verwirren als Emacs. Der Test erfolgt mit dem Shell-Skript Measure_performance.sh.
Die unten gedruckten Ergebnisse stammen von einem MacBook Pro Mitte 2015 mit High Sierra.
Org-babel-tangle (über Emacs): 0:1,318 Sekunden Worgle: 0m0,001s
Dieses Projekt ist gemeinfrei. Viel Spaß beim Hacken, Leute.