[Cerowrt-devel] Adopting lua

Dave Taht dave.taht at gmail.com
Tue Dec 13 17:52:38 EST 2011

On Tue, Dec 13, 2011 at 10:52 PM, Dave Taht <dave.taht at gmail.com> wrote:

> 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.

translated the c into lua (t minus whenever I sent this message)

time ./htb-bt-qfq-red-4mbit > /dev/null

real    0m1.762s
user    0m0.180s
sys    0m0.330s

d at cruithne:~/git/deBloat/src$ time ./a.out > /dev/null

real    0m0.025s
user    0m0.020s
sys    0m0.000s

d at cruithne:~/git/deBloat/src$ time ./test.lua > /dev/null

real    0m0.090s
user    0m0.083s
sys    0m0.007s

Moving to lua, I think, is wise.

> --
> Dave Täht
> SKYPE: davetaht
> US Tel: 1-239-829-5608
> FR Tel: 0638645374
> http://www.bufferbloat.net

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

More information about the Cerowrt-devel mailing list