scons

Scons and noweb

I was curious to see how I could integrate noweb and Scons. You can download my little Sconstruct for this, Sconstruct.example. It defines two builders. NoWeave is used to produce TeX or LaTeX documents, while NoTangle extracts the non-document artefacts, i.e. programs, config files, scripts … It also includes productions for generating a sample program about Ackermann function: ackdoc = env.NoWeave('ack.tex', 'ack.nw') ackcode = env.NoTangle('ack.py', 'ack.nw') acktest = env.NoTangle('ackTest.py', 'ack.nw') The noweb source is ack.

LaTeX, Python and Literate Programming

In my spare time (a couple of hours per weekend…!) I am implementing calcal, a Python version of calendrica-3.0.cl, the Common Lisp implementation of the calendars from N. Dershowitz, E. M. Reingold Calendrical Calculations, 3rd Edition. (In case you are interested you can find a preview in my github repo.) At some point I decided to go Literate Programming using noweb. This is an experiment in the experiment but so far it has been a good choice because I can define all I need in the same place and generate documentation, source code (Python, shell scripts …) from the same source.