[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Paparazzi-devel] Tr : Building system

From: Gautier Hattenberger
Subject: Re: [Paparazzi-devel] Tr : Building system
Date: Mon, 02 Mar 2015 18:13:39 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.4.0


I'm not sure that something based on eclipse is really nice if it has to run on light embedded computers like Beagle Bone. Also, people may not want to work with eclipse or a specific IDE (including myself).

As Felix said, Java would drag a lot of new dependencies, and I don't think using C to parse and generate code is really nice ("higher" level language would be more appropriate).
Considering the existing tools in Paparazzi, Python is probably the best candidate.

Please just consider these few points:
- generators is not the part that should be changed very often since it may break things here and there
- they are not the most complex part of the Ocaml code, since they are pretty short and mostly self-contained (I can admit a small lack of comments, but GCS code is much worse...)
- adding a small new feature is usually not that hard, even in Ocaml
- I'm working with a colleague to improve the handling of modules (gen_aircraft), so it is not the best time I think to rewrite this one

From my point of view, and not considering that most people feel uneasy with Ocaml, the main drawback at short term is the difficulty to compile/run Ocaml code on exotic platforms (assuming it is easier in Python). Until now, we have been able to do it on linux based systems (except Android) or Mac OS, and it might be the easiest thing to make working on Windows since it should not require low level functionalities.

On the long term, the drawback seems to be the possible lack of (good willing) maintainers for this part if I have to stop doing it...


Le 02/03/2015 10:19, Karoly Molnar a écrit :
Hi Felix and Chris,

I am working in a commercial project that is also using XML based configuration files for code generation. This is a transportantion project but not avionics.
We are using Eclipse / EMF for XML handling, our configuration generators are also Eclipse based. Some toughts on this:
- It is relatively easy to maintain, also Eclipse as an integrated environment could serve both as XML editing frontend AND eventually a C development environment with integrated debugger. This works really well. 
- Certainly implementing the absolute minimum in e.g. Python would be so much simpler.

Still, If I should do it from scratch again, I would choose Eclipse/EMF again because of the versatility of Eclipse. You could use e.g. XTEXT or JET/M2T for the configuration generators, the latter would be a very straight forward solution IMHO.


Date: Sat, 28 Feb 2015 15:45:21 +0100
From: address@hidden
To: address@hidden
Subject: Re: [Paparazzi-devel] Tr : Building system

Hi Chris,

personally I'm not in favour of writing basic things like the generators in Java, as that adds another _major_ dependency.
But then I'm also biased as I don't write/use Java often...

Cheers, Felix

On Sat, Feb 28, 2015 at 3:40 PM, <address@hidden> wrote:

Hi Felix,

I started in Java for several reasons: first I'm used to it, then it provides high level libraries and tools making the code shorter and more readable, and finally, it is portable. I also considered interesting to allow for an easy integration into an IDE like Eclipse.
Of course, all these are personnal choices (Java and Eclipse), but are the options with which I feel confortable.


De : Felix Ruess <address@hidden>
À : address@hidden; Paparazzi UAV devel list <address@hidden>
Envoyé le : Samedi 28 février 2015 12h53
Objet : Re: [Paparazzi-devel] (no subject)

Hi Christophe,

I totally agree on your observations about the build system and maintainability.
We are trying to improve this step by step, but it is a slow process... so help here is definitely very welcome!

Regarding the generators: personally I would very much like it if they were written in Python or C, so that building a firmware does not have any OCaml dependencies in the end.
What language did you write it in, what dependencies does it have?

Cheers, Felix

On Sat, Feb 28, 2015 at 12:40 PM, <address@hidden> wrote:

Hi everyone,

I am new to paparazzi, so I will first shortly introduce myself: I'm Christophe, I work at ENAC school, teaching networks and data link technologies, and I am more familiar with computer science than with electronics.

Before I enter in the core subject of my mail, I would like to say that, as a newcomer I may question some well established things. My intent is not to break anything or criticize the work of others for the sake of a "holly-rule-of-thumb", but just to find a way to contribute to the project.

So now, lets jump right into the core subject!

As I do not have anything to send flying, I had a look at the building system and at some of the opened issues. I first have to admit that I am discovering OCaml, so diving into all this was not an easy task.
I will not discuss in this mail my feeling about the hole building systems and tooling (, mainly because I miss experience in building and customizing, so maybe my understanding is not accurate enough to have pertinent proposals.
But as I went through the code, I think you will agree, I found it really difficult to maintain and improve, except from maybe one or two specialists. IMHO it is not desirable for an open source project like paparazzi.
This lack of maintainability is primarily bound to the lack of comments in the code, and secondary to the quite exotic language (OCaml) used all over the building tools (especially generators). OCaml is certainly a very interesting and powerfull language, but it may not be the most appropriate for a maintainable xml file parsing code.
So I started looking at alternative solutions and already have a partial airframe generator: a more or less one to one function rewriting of the current OCaml
Some open issues already call for some more in-depth redesign of the building system, so it may also be an oportunity to do so.
I think I could try contributing on these subjects (which are quite remote from the core UAV stuff), but I would like to be sure that there is a common aggreement from the insiders that it is worth working on that and maybe gather some improvement ideas from you.


Paparazzi-devel mailing list

Paparazzi-devel mailing list

_______________________________________________ Paparazzi-devel mailing list address@hidden

Paparazzi-devel mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]