Worgle es la organización web TanGLEr. Como mínimo, su objetivo es poder buscar programas alfabetizados escritos en un subconjunto de marcado de organización que sea compatible con org-babel. Esto incluye la expansión del código de estilo no web, un aspecto crucial para la programación alfabetizada (que a menudo parece ignorarse en otros tanglers en modo organización que no son de Emacs). Con el tiempo, la esperanza es introducir una sintaxis más similar a la WEB y construir un backend para weave (exportar a HTML, TeX, etc.).
La motivación inicial para construir Worgle es el rendimiento. El enredo realizado por org-babel es vergonzosamente lento hasta el punto de resultar inútil para proyectos más grandes que un guión. Worgle tiene como objetivo hacer que org-tangle sea utilizable para proyectos de software reales.
El objetivo más amplio es construir un sucesor espiritual de CWEB, un programa que uso a diario para escribir programas alfabetizados en C. Es quizás una de las mejores herramientas de programación alfabetizadas que existen. Ahora con más de 3 décadas de existencia, CWEB definitivamente está mostrando signos de vejez.
En este momento, Worgle tiene suficientes funciones para ser útil.
Prácticamente ninguna de las funciones avanzadas del modo organización no se implementará. Emacs es muy bueno para manejar eso si lo necesita.
Para compilar, ejecute make
.
Para instalar, ejecute sudo make install
.
Resulta que este README es el código de muestra. Genial, ¿verdad?
Un bloque de código para un programa simple de Hola Mundo en C se ve así:
#include
int main ( int argc , char * argv [])
{
<< say_the_worgle_greeting >>
return 0 ;
}
El código mencionado anteriormente tiene un bloque de código llamado say_the_worgle_greeting
.
Esto se expande a este bloque de código a continuación:
printf ( "Orgle Worgle Borgle!n" );
El código C se enreda usando el programa previo orgle
, que luego se puede compilar y ejecutar usando un compilador de C como GCC.
./orgle README.org
gcc hello.c -o hello
./hello
Una prueba de rendimiento muy informal indica que Worgle es capaz de enredarse más rápido que Emacs en un factor de 1300x (!). La prueba se realiza utilizando el script de shell Measure_Performance.sh.
Los resultados impresos a continuación son de una MacBook pro de mediados de 2015 con High Sierra.
Org-babel-tangle (a través de Emacs): 0m1.318s Wórgle: 0m0.001s
Este proyecto se encuentra bajo el dominio público. Feliz piratería, humanos.