[Netsukuku] Netsukuku port to Vala. Work in progress, help wanted.

Luca Dionisi luca.dionisi at gmail.com
Mon Mar 21 09:21:48 PDT 2011


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
Netsukuku at lists.dyne.org
http://lists.dyne.org/mailman/listinfo/netsukuku

----- End forwarded message -----
-- 
Eugen* Leitl <a href="http://leitl.org">leitl</a> http://leitl.org
______________________________________________________________
ICBM: 48.07100, 11.36820 http://www.ativel.com http://postbiota.org
8B29F6BE: 099D 78BA 2FD3 B014 B08A  7779 75B0 2443 8B29 F6BE





More information about the cypherpunks-legacy mailing list