Lightweight Concurrency in Lua
wingolog.org
Lightweight Concurrency in Lua
1–10 of 10 posts
Re: Lightweight Concurrency in Lua
#2One thing from the previous thread is that Andy has the time and the brains to dive deeply into this stuff. Andy is smart, but what I think sets him apart, is that he relentlessly drives to the root and he revisits the topic over long time scales.
Here is a talk Andy gave back in 2017. https://www.youtube.com/watch?v=iskjbi0lNQY
Now that you know the secret, Go Forth!
Update, if you find this stuff fascinating, I really recommend that you watch and follow along all of David Beazley's wonderful tutorial session, "A Curious Course on Coroutines and Concurrency" that ends in section 7 with making an OS scheduler loop.
Re: Lightweight Concurrency in Lua
#3Previous discussion, https://news.ycombinator.com/item?id=14664150 One thing from the previous thread is that Andy has the time and the brains to dive deeply into this stuff. Andy is smart, but what I think sets him apart, is that he relentlessly drives to the root and he revisits the topic over long time scales. Here is a talk Andy gave back in 2017. https://www.youtube.com/watch?v=iskjbi0lNQY Now that you know the…
Re: Lightweight Concurrency in Lua
#4Previous discussion, https://news.ycombinator.com/item?id=14664150 One thing from the previous thread is that Andy has the time and the brains to dive deeply into this stuff. Andy is smart, but what I think sets him apart, is that he relentlessly drives to the root and he revisits the topic over long time scales. Here is a talk Andy gave back in 2017. https://www.youtube.com/watch?v=iskjbi0lNQY Now that you know the…
Warning! The one called the "previous discussion" is not about the same article as this now. This now is:
"lightweight concurrency in lua, 16 May 2018"
Whereas the one linked behind https://news.ycombinator.com/item?id=14664150 is
"a new concurrent ml, 29 June 2017"
so it can be just a "previous article by the same author which was discussed on HN" or something like that.
This one, here now, is not a second go on the same topic, this one here is a brand new topic: it involves Lua, Luajit and Snabb
https://github.com/snabbco/snabb
the latest also something I've just learned that it even exists, and it's quite interesting to me.
Re: Lightweight Concurrency in Lua
#5Previous discussion, https://news.ycombinator.com/item?id=14664150 One thing from the previous thread is that Andy has the time and the brains to dive deeply into this stuff. Andy is smart, but what I think sets him apart, is that he relentlessly drives to the root and he revisits the topic over long time scales. Here is a talk Andy gave back in 2017. https://www.youtube.com/watch?v=iskjbi0lNQY Now that you know the…
It is rare to see such lucid communication and such a clean commit history for hard technical development.
http://git.savannah.gnu.org/cgit/guile.git/log/
https://lists.gnu.org/archive/html/guile-devel/2018-05/msg00...
In a few years, all the cool kids will switch from Graal to Guile for language development.
Re: Lightweight Concurrency in Lua
#6Re: Lightweight Concurrency in Lua
#7Re: Lightweight Concurrency in Lua
#8But with this you can't share memory directly between fibers right?
Re: Lightweight Concurrency in Lua
#9As a high performance packet tool, I was expecting something less abstract, for example a special hash or structures to speed computations, or going to assembler in critical parts, but I only see general stuff, nothing that is specialized for high performance packet transformation / inspection.
It's normal here to write things you would think would need C (or asm!) only to discover that DynaASM and the JIT make them 'fast enough'
Next time you're thinking "fast enough for what?": fast enough for real-time high-bandwidth packet inspection.
Re: Lightweight Concurrency in Lua
#10But with this you can't share memory directly between fibers right?
You can. These "fibers" are just built on the typical lua coroutines.
My guess is you can't because sharing memory between threads is hard.
Co-routines usually can't, atleast not in rust/go etc. and those are more advanced than lua.