Making readable-mlatu 3500x faster*
===================================
- while (1) { I l=0; MAP(oT,l++); P(i>l-2,stp+n);
+ while (1) { P(!t->n,stp+n);
P(cond,res) is panic: if cond, return res
I used to check if I was at the end of the AST by looping through the linked list of terms to get the length, then seeing if the current index was at the end. Now, I just see if the next term is NULL. Apparently, unnecessarily looping through the AST 1.25 billion times* slows you down a lot. Who woulda thunk it?
simpler = faster!
*benchmark from my test of computing 100*100 (32m 45s 400ms -> 561ms)
~/optimize.html