I have encountered many problems [and did not succeed yet] in making
Python Stackless work correctly in ARM or MIPS architectures.
Even admitting that it is possible, the python interpreter itself is
quite memory consuming. This makes many/most embedded devices out of
luck for netsukuku.
The main points in favor of using Stackless instead of C, at least for
me, have been:
- fast prototyping
- co-routine support (that is, tasklets in stackless terminology)
Recently I have made some research on alternatives. The first
requirement of course was support of co-routines.
The most portable framework for this support is GNU Pth. [0]
The second requirement was a good-enough high-level language that
could allow the developer to focus on functional details.
And possibly have a near one-to-one mapping of the features of python
interpreter that we mostly used in our program.
I think Vala does. [1]
And it has many good points over other languages. It has modern
features while producing old style C API/ABI compatible machine code.
Long story short, I started to organize the basis for a port of
current python implementation of netsukuku to Vala.
The first task was producing a binding (vapi file) for the Pth
library. I made one that does the job for what we need - could be
improved, though.
Right now there is a working implementation of tasklets ("microfunc"
in our python code) scheduling, switching, inter-communication
(Channels in our python code) and events (for free in Vala as
signals).
I promise to post updates soon when I can make some tests on my little
mipsel-based router. [2]
Soooo, to get to the point.
This work is not going to be quick and simple. Any help with the
development is welcome, especially right now or soon.
I could organize the work and assign little tasks to anyone that has
some expertise on vala.
I am a vala newbie myself.
Knowledge of python is not a requirement, because reading the old code
is quite straightforward and one can ask when in doubt.
Knowledge of current workings of netsukuku is not a requirement
either. Sure, it could help. But I would assign very specific tasks
and coordinate the rest, so that also "new entry" developers can help
a lot.
Have a look at the initial code [3] and please get involved!
--Luca
[0] http://www.gnu.org/software/pth/
[1] http://live.gnome.org/Vala
[2] http://www.omnima.co.uk/store/catalog/Embedded-controller-p-16140.html
and a review here:
http://www.kelvinsthunderstorm.com/omnima-embedded-controller-and-openwrt/
[3]
http://dev.hinezumi.org/browser/netsukuku/sandbox/lukisi/branches/multipleip/valantk
_______________________________________________
Netsukuku mailing list
[email protected]
http://lists.dyne.org/mailman/listinfo/netsukuku