[PREVIEW] orogen 0.5

OK, since I'm talking about that for a while now, I'll push some code for
people to look at. It's not a proper release, simply because the installation
process is far from being streamlined. I'll fix that part later.

Orogen is a specification/code generator for Orocos/RTT. It lets you
- specify your toolkits
- specify your task contexts (they get compiled into a so-called "task
library")
- optionally, specify a "static deployment", i.e. a deployment that ends up
in a single process.

Moreover, for convenience reasons, it also allows to specify build-time
dependencies between the current orogen project, other toolkits, other "task
libraries" and other libraries. All dependencies are managed through pkg-
config.

The tool is written in Ruby, with C++ behind the scene for C/C++ parsing (type
specifications). For now, it is compatible only with my RTT new_data_flow
branch. The need for it came mostly from my experience with genom. I could not
live without being able to write modules in less than 10 minutes.

I know that there is a lot of stuff missing, and I also know that some renaming
is required (for instance what is named "component" right now should actually
be named "project")

I just pushed the code to github:
http://github.com/doudou/orogen/

The goal of this mail is to allow you to get a feeling for what's in there.
You can more specifically look at
- the readme (README.txt)
- the test modules (test/data/modules)

[PREVIEW] orogen 0.5

Sylvain,

Thanks for sharing!

On Thu, Apr 23, 2009 at 10:34:50AM +0200, Sylvain Joyeux wrote:
> OK, since I'm talking about that for a while now, I'll push some code for
> people to look at. It's not a proper release, simply because the installation
> process is far from being streamlined. I'll fix that part later.
>
> Orogen is a specification/code generator for Orocos/RTT. It lets you
> - specify your toolkits
> - specify your task contexts (they get compiled into a so-called "task
> library")
> - optionally, specify a "static deployment", i.e. a deployment that ends up
> in a single process.
>
> Moreover, for convenience reasons, it also allows to specify build-time
> dependencies between the current orogen project, other toolkits, other "task
> libraries" and other libraries. All dependencies are managed through pkg-
> config.
>
> The tool is written in Ruby, with C++ behind the scene for C/C++ parsing (type
> specifications). For now, it is compatible only with my RTT new_data_flow
> branch. The need for it came mostly from my experience with genom. I could not
> live without being able to write modules in less than 10 minutes.
>
> I know that there is a lot of stuff missing, and I also know that some renaming
> is required (for instance what is named "component" right now should actually
> be named "project")
>
> I just pushed the code to github:
> http://github.com/doudou/orogen/

Just a first comment, the repo seems corrupted:

x61 ~/src/git $ git clone git://github.com/doudou/orogen.git
Initialized empty Git repository in /home/mk/src/git/orogen/.git/
remote: Counting objects: 2363, done.
bjects: 100% (889/889), done.
remote: Total 2363 (delta 1293), reused 2337 (delta 1280)
Receiving objects: 100% (2363/2363), 359.35 KiB | 13 KiB/s, done.
Resolving deltas: 100% (1293/1293), done.
warning: remote HEAD refers to nonexistent ref, unable to checkout.

> The goal of this mail is to allow you to get a feeling for what's in there.
> You can more specifically look at
> - the readme (README.txt)
> - the test modules (test/data/modules)

Regards
Markus

[PREVIEW] orogen 0.5

> Just a first comment, the repo seems corrupted:
This is just that the branch I pushed is not called 'master' (because my
master branch is old stuff, but is used by people here so I can't switch right
now).

Anyway, doing
git checkout -b new_data_flow origin/new_data_flow
after the clone should do the trick.

I did not think you would actually clone, given that nothing will work without
proper dependencies installed ...

[PREVIEW] orogen 0.5

On Thu, Apr 23, 2009 at 03:55:36PM +0200, Sylvain Joyeux wrote:
> > Just a first comment, the repo seems corrupted:
> This is just that the branch I pushed is not called 'master' (because my
> master branch is old stuff, but is used by people here so I can't switch right
> now).
>
> Anyway, doing
> git checkout -b new_data_flow origin/new_data_flow
> after the clone should do the trick.

Thanks!

> I did not think you would actually clone, given that nothing will work without
> proper dependencies installed ...

I'm curious how you implemented it :-). I don't really know Ruby, but
I believe it has some similarities to Scheme (which i've really come
to like). And for MDE purposes I just recently learned about the
ruby-gen[1] modeling and generator framework, so I might be taking a
closer look at Ruby soon.

I think we both agree that we need a set of sharp cmdline tools that
optional GUIs can be built on top, and your work could be a first
step.

BTW, what's the license?

Regards
Markus

[1] http://ruby-gen.org/

[PREVIEW] orogen 0.5

> BTW, what's the license?
Mmmm ... forgot to add a license file :(

I'll push as soon as the test suite passes. See the LICENSE.txt file in the
repo (also reproduced below)

Copyright 2008-2009 DFKI <robotik [..] ...>

The main part of orogen is licensed under the GPLv2 or later

The templates (everything under lib/orogen/templates) is licensed under the
BSD license. The spirit is that no parts of the generated modules should be
licensed under GPL.