Development issues regarding the cerowrt test router project
 help / color / mirror / Atom feed
From: Dave Taht <dave.taht@gmail.com>
To: cerowrt-devel@lists.bufferbloat.net
Subject: Re: [Cerowrt-devel] Adopting lua
Date: Tue, 13 Dec 2011 23:52:38 +0100	[thread overview]
Message-ID: <CAA93jw6oyviLXMGOc_TEYvj83Y+uRuPCtNenOm9+Y+Xp0jHVeQ@mail.gmail.com> (raw)
In-Reply-To: <CAA93jw5hn-13BGxBVfNTmwLwn879V4p+dNYM6exaEP7D8qzzkA@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2485 bytes --]

On Tue, Dec 13, 2011 at 10:52 PM, Dave Taht <dave.taht@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@cruithne:~/git/deBloat/src$ time ./a.out > /dev/null

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

d@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
http://www.bufferbloat.net

[-- Attachment #2: Type: text/html, Size: 3414 bytes --]

      reply	other threads:[~2011-12-13 22:52 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-13 21:52 Dave Taht
2011-12-13 22:52 ` Dave Taht [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.bufferbloat.net/postorius/lists/cerowrt-devel.lists.bufferbloat.net/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAA93jw6oyviLXMGOc_TEYvj83Y+uRuPCtNenOm9+Y+Xp0jHVeQ@mail.gmail.com \
    --to=dave.taht@gmail.com \
    --cc=cerowrt-devel@lists.bufferbloat.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox