Worgle é o Web ORg TanGLEr. No mínimo, o objetivo é ser capaz de encontrar programas alfabetizados escritos em um subconjunto de marcação org que seja compatível com org-babel. Isso inclui a expansão de código no estilo noweb, um aspecto crucial para a programação alfabetizada (que muitas vezes parece ser ignorada em outros emaranhados de modo organizacional não-emacs). Eventualmente, a esperança é introduzir uma sintaxe mais semelhante à WEB e construir um backend para weave (exportar para HTML, TeX, etc).
A motivação inicial para construir o Worgle é o desempenho. O emaranhado feito pelo org-babel é embaraçosamente lento a ponto de ser inútil para qualquer projeto maior que um script. Worgle tem como objetivo tornar o org-tangle utilizável para projetos de software reais.
O objetivo maior é construir um sucessor espiritual do CWEB, um programa que uso diariamente para escrever programas alfabetizados em C. É talvez uma das melhores ferramentas de programação alfabetizada que existe. Agora com mais de 3 décadas, o CWEB está definitivamente mostrando sinais de velhice.
No momento, o Worgle tem recursos suficientes para ser útil.
Praticamente nenhum dos recursos avançados do modo organizacional não será implementado. O Emacs é muito bom em lidar com isso, se você precisar.
Para compilar, execute make
.
Para instalar, execute sudo make install
.
Acontece que este README é o código de exemplo. Legal, certo?
Um bloco de código para um programa simples de Olá Mundo em C se parece com este:
#include
int main ( int argc , char * argv [])
{
<< say_the_worgle_greeting >>
return 0 ;
}
O código mencionado acima possui um bloco de código chamado say_the_worgle_greeting
.
Isso é expandido para este bloco de código abaixo:
printf ( "Orgle Worgle Borgle!n" );
O código C é emaranhado usando o bootstrapper orgle
, que pode então ser compilado e executado usando um compilador C como o GCC.
./orgle README.org
gcc hello.c -o hello
./hello
Um teste de desempenho muito casual indica que o Worgle é capaz de se enredar mais rápido que o Emacs por um fator de 1300x (!). O teste é feito usando o script shell Measure_Performance.sh.
Os resultados impressos abaixo são de um MacBook Pro de meados de 2015 rodando High Sierra.
Org-babel-tangle (via Emacs): 0m1.318s Worgle: 0m0.001s
Este projeto é colocado sob domínio público. Feliz hacking, humanos.