[Cerowrt-devel] Adopting lua

Dave Taht dave.taht at gmail.com
Tue Dec 13 13:52:05 PST 2011


One both good and horrible thing I did back in june...

http://lists.noise.gatech.edu/pipermail/bismark-devel/2011-July/000251.html

was to swap the default gui from xwrt to luci. Good, in that that GUI keeps
getting better and better. Bad, because neither jim, nor I, know lua the
language at all, and can't add features nor fix gui issues.

I've learned  a lot of languages in my life, but can write shell and C and
SQL in my sleep. In olden days I could count LISP among those, too, and a
dozen others, but not of late.

Recently I shot myself in the foot, trying to scale kleinrock up and down
by doing a simple lookup table for 'sqrt' for various amounts of flows in
the various AQM attempts I have going using 'tc' in the deBloat.git repo.
The numbers were so off from correct, that I realized that I really needed
to take a sqrt directly...

and the only way to do that (or so I thought) was to write a shell script
wrapper around 'bc'...

and to get bc, I needed to compile and install it on cerowrt.

Not only that, but the shell script was horribly slow, taking 2 minutes in
one version, to create the tc rules. I rewrote it in C, cutting that time
down to 6 ms (and getting my !@! sqrt function for free), but that lacks
the run time flexibility of an interpreter.

Then I realized that lua could do the job...

lua -e "print(math.sqrt(12))"

and then I realized, why not try writing the AQM stuff entirely in lua and
see if I got a good compromise between shell and C.

and finally be able to do gui stuff, eventually.

It's an odd way to bite the bullet and decide to try to learn a new
language, but, there it is.


-- 
Dave Täht
SKYPE: davetaht
US Tel: 1-239-829-5608
FR Tel: 0638645374
http://www.bufferbloat.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.bufferbloat.net/pipermail/cerowrt-devel/attachments/20111213/5eb9dcf3/attachment.html>


More information about the Cerowrt-devel mailing list