axiom
luatex
axiom | luatex | |
---|---|---|
3 | 3 | |
352 | 5 | |
- | - | |
0.0 | 0.0 | |
9 months ago | about 1 year ago | |
PostScript | C | |
- | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
axiom
-
Sile: A Modern Rewrite of TeX
The literate macro is just standard latex. The command line extraction functions are:
Lisp program to extract latex chunks: https://github.com/daly/axiom/blob/master/books/tangle.lisp
C program to extract latex chunks: https://github.com/daly/axiom/blob/master/books/tanglec.c
Note that the C program is just a hand translation of the Lisp code.
The lisp code has an explanation and the necessary latex macros. The idea is to scan the latex, find each named code 'chunk', and add each one to a hash table. Then the hash table is scanned to dump the requested chunk to stdout. For example:
\begin{chunk}{part1}
-
tex.web – Version 3.141592653
I think one "unfortunate" side effect of literate programming with a "stupid" procedual language like C, Pascal or even Java - is that your lp system tends toward becoming your macro system.
It does allow straightforward, short procedual/structured programs to become very readable and easily understandable - but for bigger "piles of code" - it's probably not that good a fit in practice.
I guess https://github.com/daly/axiom is both an argument for this being true (I seem to recall there was an effort to get away from lp) - and against (proof of existence: it's a big system, it's old, it seems to not be dead).
Then there's the other thing - I don't recall who's quote it is - but it is along the lines of: "There are few good programmers, there are few good writers of prose/technical documentation - therefore the subset of people that are both great programmers and great writers are tiny - and that is the subset for whom literate programming is a great fit".
I do think there's a middle ground though, and "notebooks" for "executable, repeatable" research papers is one such middle ground (or: to write a great cs paper your team need to have both skills anyway).
But there are certainly great programmers that can't write documentation on how to escape a wet paper bag.
-
"FriCAS algebra library, the largest and most advanced free general purpose computer algebra system" (as of September 2007)
From the code point of view, Axiom seems more interesting to me, but I need to study it more.
luatex
-
tex.web – Version 3.141592653
Notice that the TeX you have installed locally is many conversion steps removed from the WEB source.
Pascal code is extracted from the WEB. Then the Pascal is translated into C. Afterwards, years of development have accumulated on that C source to handle utf-8, modern fonts, PDF output, etc.
Most work nowadays happens on top of LuaTeX that replaces and extends pdfTeX.
There are shockingly few people maintaining that core of the TeX environment.
The source control is mirrored here: https://github.com/TeX-Live/luatex/tree/experimental
-
How many lines of code has Luatex?
git clone --depth 1 https://github.com/TeX-Live/luatex.git
What are some alternatives?
fricas - Official repository of the FriCAS computer algebra system
KeenTeX - Java API for displaying mathematical formulas using TeX notation
SATySFi - A statically-typed, functional typesetting system
MathJax - Beautiful and accessible math in all browsers
sile - The SILE Typesetter — Simon’s Improved Layout Engine
literate-lisp - Load Common Lisp code blocks from Org files
literate-elisp - Load Emacs Lisp code blocks from Org files
webWEB - WEB/CWEB on the web
github-orgmode-tests - This is a test project where you can explore how github interprets Org-mode files
KaTeX - Fast math typesetting for the web.