Worgle est le TangLEr de l'ORg Web. À tout le moins, il vise à être capable de rechercher des programmes alphabétisés écrits dans un sous-ensemble de balisage d'organisation compatible avec org-babel. Cela inclut l'expansion du code de style noweb, un aspect crucial pour maîtriser la programmation (qui semble souvent ignoré dans d'autres enchevêtrements en mode organisation non-emacs). À terme, l'espoir est d'introduire une syntaxe plus proche du WEB et de construire un backend pour le tissage (exportation vers HTML, TeX, etc.).
La motivation initiale pour construire Worgle est la performance. L'enchevêtrement effectué par org-babel est d'une lenteur embarrassante au point d'être inutile pour tout projet plus grand qu'un script. Worgle vise à rendre org-tangle utilisable pour des projets logiciels réels.
L'objectif plus large est de créer un successeur spirituel à CWEB, un programme que j'utilise quotidiennement pour écrire des programmes alphabétisés en C. C'est peut-être l'un des meilleurs outils de programmation alphabétisés qui existent. Aujourd’hui âgé de plus de trois décennies, CWEB montre définitivement des signes de vieillesse.
À l'heure actuelle, Worgle a juste assez de fonctionnalités pour être utile.
Quasiment aucune des fonctionnalités avancées du mode org ne sera implémentée. Emacs est très efficace pour gérer cela si vous en avez besoin.
Pour compiler, exécutez make
.
Pour installer, exécutez sudo make install
.
Il s'avère que ce README est l'exemple de code. Cool, non ?
Un bloc de code pour un simple programme Hello World en C ressemble à ceci :
#include
int main ( int argc , char * argv [])
{
<< say_the_worgle_greeting >>
return 0 ;
}
Le code mentionné ci-dessus possède un bloc de code appelé say_the_worgle_greeting
.
Ceci est étendu à ce bloc de code ci-dessous :
printf ( "Orgle Worgle Borgle!n" );
Le code C est emmêlé à l'aide du programme d'amorçage orgle
, qui peut ensuite être compilé et exécuté à l'aide d'un compilateur C comme GCC.
./orgle README.org
gcc hello.c -o hello
./hello
Un test de performances très simple indique que Worgle est capable de s'emmêler plus rapidement qu'Emacs, un facteur 1300x (!). Le test est effectué à l'aide du script shell Measure_performance.sh.
Les résultats imprimés ci-dessous proviennent d'un MacBook pro mi-2015 exécutant High Sierra.
Org-babel-tangle (via Emacs) : 0m1.318s Worgle : 0m0,001s
Ce projet est placé sous le domaine public. Bon piratage, les humains.