comp.lang.ada
 help / color / mirror / Atom feed
From: "Alex R. Mosteo" <alejandro@mosteo.invalid>
Subject: Re: C++/cmake project, injecting Ada...
Date: Fri, 29 Apr 2011 10:17:18 +0200
Date: 2011-04-29T10:17:18+02:00	[thread overview]
Message-ID: <ipds6h$pns$1@dont-email.me> (raw)
In-Reply-To: 87liyugwsf.fsf@ludovic-brenta.org

Ludovic Brenta wrote:

> "Alex R. Mosteo" <alejandro@mosteo.invalid> writes:
>> As I was writing this reply, I realized that focusing in a particular
>> case at hand may provide better food for though and more precise
>> solutions. So I have renamed the thread accordingly. Now, the scenario
>> is like this:
>>
>> A fairly conventional open source project for doing some high-level
>> simulations. C++ based, using cmake for building. Developers using an
>> assortment of linux OSses: Ubuntu 10.04, 10.10, Fedora (last 2 or 3
>> versions). Eventually, MacOSX could enter the fray. Remember, this is
>> loosely cooperative research, nobody mandates the devel platform to a
>> particularly tight version.
>>
>> The project uses several libraries: boost, YARP, opencv, etc, which
>> are located by cmake. Somehow all this compiles in such varied
>> environments.
>>
>> Now, let's suppose the contributions are fairly self-contained (e.g.,
>> providing a particular class instance for an abstract base class). I
>> know how to interface Ada and C/C++, don't mind to write glue code as
>> needed, etc.
>>
>> The challenge: throwing Ada into this mix without disrupting
>> everyone's workflow to an unreasonable level. The obstacles that I
>> see, and for which your ideas are most welcome:
> 
> My first reaction is: don't do it.  The chances of failure are very
> high, if only because of the diversity of platforms and the absence of a
> "stock" Ada compiler on each.  The integration between Ada and cmake is
> another potential hurdle.  Any failure will be promptly blamed on "your
> non-standard language and tools" even though cmake is just as
> "non-standard" as gprbuild; you'll end up being the only person in
> charge of debugging everyone else's build problems.

I see my fears are then reasonable, because that's how I feel too. It's not 
bad enough that few people know/use Ada, one is further excluded by things 
like this.

> It should be possible, however, to create separate add-ons in Ada.
> Compile these add-ons independently from the main project, using
> gnatmake or gprmake; do not require any developer not interested in your
> add-ons to change anything to their toolchain.  The interfacing between
> the add-ons and the main project is the crux of the matter; if you could
> do it via some sort of interprocess communications, you would be able to
> isolate your add-ons from the main project very well.  Otherwise,
> provide a shared library that the main project can dlopen() and call
> (use pragma Export to expose the API to the shared library).

This is an interesting possibility, and in fact IPC in this particular lab 
is many times done via YARP (tell about killing flies with cannons), 
meaning, if you don't know it, that processes are totally independent, 
communicating over sockets. So this is a possibility to keep in mind. Also 
the dlopen possibility is interesting, although a bit less attractive 
because dlopen shenaningans are not used right now (I suspect). Still worth 
to keep in mind, thanks. 

> A last resort perhaps: fork the open source project; do anything you
> like in Ada, replace cmake with gprbuild or whatever.  Merge from the
> open source project from time to time.  Care only about your platform;
> if anyone is interested in building on another, provide assistance as
> needed.  Publish your sources in a separate branch in their version
> control system if you can (and if the VCS supports merges well, i.e. it
> is not CVS or subversion...) or in a monotone database if you must.

Last resort indeed :) Although interesting from the POV of seeing how 
gprbuild would deal with a large complex cmake project. Perhaps worth it 
(once) only for that part of the experience.

Thank for your opinions, much valued because I know you're deeply 
experienced into the Debian/open source community. I see that basically my 
understanding of the situation was on target :(

Going again over it, I still think that perhaps exploring the cmake+Ada way 
is the more promising in terms of achieving something with relative ease? I 
see two venues here:

1) Just drop all advantages of gprbuild dependency management, and compile 
each Ada file to object code. Problems I see: what happens with gnatbind?

2) Somehow massage cmake into using a single call to gprbuild, and normally 
use it to compile the Ada part into a library. I guess this library can be 
easily linked with the rest of C/C++ compiled sources, since I have seen 
cmake projects which build many intermediate libraries. Since there's only 
one interaction between cmake and Ada (launching gprbuild), perhaps the 
problem of debugging everyone's else builds would be a reasonable burden; 
especially if the Ada parts are disabled by default and only compiled by 
people interested in them.

Alex.



  reply	other threads:[~2011-04-29  8:17 UTC|newest]

Thread overview: 168+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-20 10:39 If not Ada, what else Alex R. Mosteo
2011-04-20 10:51 ` Ludovic Brenta
2011-04-21  8:47   ` Alex R. Mosteo
2011-04-20 11:53 ` Maciej Sobczak
2011-04-21  8:46   ` Alex R. Mosteo
2011-04-23  2:08     ` Peter C. Chapin
2011-04-21 17:19 ` Robert Matthews
2011-04-21 19:02   ` Georg Bauhaus
2011-04-21 19:25   ` Florian Weimer
2011-04-22 15:50     ` Robert Matthews
2011-04-22 17:49       ` Brad Cantrell
2011-04-23  2:20         ` Peter C. Chapin
2011-04-23  9:55           ` Georg Bauhaus
2011-04-23 11:17             ` Peter C. Chapin
2011-04-22 21:39       ` Florian Weimer
2011-04-23  2:26         ` Peter C. Chapin
2011-04-23  9:52 ` björn lundin
2011-04-23 11:50 ` Piotr Trojanek
2011-04-23 12:23   ` Dmitry A. Kazakov
2011-04-23 14:30     ` Georg Bauhaus
2011-04-23 15:04       ` Dmitry A. Kazakov
2011-04-23 16:16     ` Piotr Trojanek
2011-04-28 12:55   ` C++/cmake project, injecting Ada... (was Re: If not Ada, what else...) Alex R. Mosteo
2011-04-28 16:34     ` C++/cmake project, injecting Ada Ludovic Brenta
2011-04-29  8:17       ` Alex R. Mosteo [this message]
2011-04-29 12:45         ` stefan-lucks
2015-07-02 10:44         ` Alejandro R. Mosteo
2011-05-28 17:33     ` C++/cmake project, injecting Ada... (was Re: If not Ada, what else...) Dirk Heinrichs
2015-07-03 19:21 ` If not Ada, what else luvhed
2015-07-03 20:50   ` Paul Rubin
2015-07-04  8:19 ` Rod Kay
2015-07-08 18:11 ` jm.tarrasa
2015-07-08 20:33   ` Anh Vo
2015-07-09  6:36     ` jm.tarrasa
2015-07-08 22:15   ` David Botton
2015-07-09  7:28     ` jm.tarrasa
2015-07-09  9:54       ` G.B.
2015-07-09 12:57       ` Dennis Lee Bieber
2015-07-09 18:25       ` David Botton
2015-07-09 21:15         ` Bob Duff
2015-07-09 22:23           ` David Botton
2015-07-09 22:39             ` Paul Rubin
2015-07-10  0:20               ` David Botton
2015-07-10  4:26                 ` Paul Rubin
2015-07-10 15:01                   ` David Botton
2015-07-10 16:07                     ` David Botton
2015-07-10 17:39                       ` Bob Duff
2015-07-10 18:22                     ` Paul Rubin
2015-07-10 19:10                       ` David Botton
2015-07-10 19:43                         ` Patrick Noffke
2015-07-11 10:46                           ` Brian Drummond
2015-07-11 10:59                             ` Björn Lundin
2015-07-11 13:41                               ` Georg Bauhaus
2015-07-11 14:11                                 ` Björn Lundin
2015-07-13 14:02                             ` Patrick Noffke
2015-07-13 14:16                               ` David Botton
2015-07-13 14:54                                 ` Maciej Sobczak
2015-07-16 20:19                                 ` Serge Robyns
2015-07-17  1:50                                   ` David Botton
2015-07-17 17:07                                     ` Anh Vo
2015-07-17 21:28                                       ` Serge Robyns
2015-07-17 22:53                                         ` Anh Vo
2015-07-19 14:31                                       ` David Botton
2015-07-19 16:20                                         ` Paul Rubin
2015-07-19 20:55                                           ` Jeffrey R. Carter
2015-07-19 21:15                                             ` Paul Rubin
2015-07-20 16:08                                               ` Tero Koskinen
2015-07-20 17:31                                                 ` Paul Rubin
2015-07-21  1:16                                                   ` Dennis Lee Bieber
2015-07-21  3:09                                                     ` Shark8
2015-07-21 12:46                                                       ` Dennis Lee Bieber
2015-07-21  5:43                                                   ` J-P. Rosen
2015-07-21 12:47                                                     ` Dennis Lee Bieber
2015-07-21 12:55                                                       ` J-P. Rosen
2015-07-19 22:38                                           ` David Botton
2015-07-21  6:30                                     ` Gour
2015-07-21 16:24                                       ` David Botton
2015-07-21 17:29                                         ` Niklas Holsti
2015-07-21 18:51                                           ` Simon Wright
2015-07-21 19:36                                             ` David Botton
2015-07-22  8:44                                               ` Pascal Obry
2015-07-22 12:00                                               ` Jean François Martinez
2015-07-27 22:59                                                 ` Randy Brukardt
2015-07-28  7:00                                                   ` Georg Bauhaus
2015-07-28  7:22                                                     ` Paul Rubin
2015-07-28 10:36                                                       ` darkestkhan
2015-07-28 10:58                                                       ` G.B.
2015-07-28 20:33                                                       ` Randy Brukardt
2015-07-28 10:40                                                   ` darkestkhan
2015-07-29  7:30                                                     ` Jacob Sparre Andersen
2015-07-29  8:55                                                       ` Simon Wright
2015-07-29 12:38                                                   ` EGarrulo
2015-07-29 13:06                                                     ` EGarrulo
2015-07-29 15:41                                                     ` Paul Rubin
2015-07-29 17:01                                                       ` Björn Lundin
2015-07-29 18:27                                                         ` Paul Rubin
2015-07-29 18:52                                                           ` Björn Lundin
2015-07-29 22:18                                                             ` Paul Rubin
2015-07-30  6:23                                                               ` Dmitry A. Kazakov
2015-07-30 16:48                                                                 ` David Botton
2015-07-30 18:10                                                               ` Randy Brukardt
2015-07-29 19:18                                                           ` Georg Bauhaus
2015-07-29 19:42                                                             ` Randy Brukardt
2015-07-30  4:54                                                               ` Paul Rubin
2015-07-30  6:15                                                                 ` Niklas Holsti
2015-07-30  6:34                                                                 ` Dmitry A. Kazakov
2015-07-30  6:47                                                                   ` Paul Rubin
2015-07-30  7:20                                                                     ` Dmitry A. Kazakov
2015-07-30 23:13                                                                       ` Paul Rubin
2015-07-29 17:07                                                       ` Stefan.Lucks
2015-07-29 17:47                                                         ` Paul Rubin
2015-08-21 23:03                                                           ` Waldek Hebisch
2015-08-22  3:24                                                             ` Paul Rubin
2015-08-23 16:26                                                               ` Waldek Hebisch
2015-08-23 17:18                                                                 ` Jeffrey R. Carter
2015-08-23 17:31                                                                   ` Waldek Hebisch
2015-08-23 19:32                                                                     ` Jeffrey R. Carter
2015-08-23 23:01                                                               ` Waldek Hebisch
2015-07-29 19:32                                                       ` Georg Bauhaus
2015-07-30  5:17                                                         ` Paul Rubin
2015-07-30  7:38                                                           ` Georg Bauhaus
2015-07-30 18:26                                                             ` Paul Rubin
2015-07-30 18:37                                                               ` Paul Rubin
2015-07-31  7:14                                                                 ` Georg Bauhaus
2015-07-30 10:59                                                     ` darkestkhan
2015-08-19 22:19                                                 ` rriehle
2015-08-19 22:58                                                   ` Anh Vo
2015-08-19 23:32                                                     ` rriehle
2015-08-20  1:08                                                       ` Peter Chapin
2015-08-21 15:14                                                       ` Anh Vo
2015-08-21 16:07                                                         ` Anh Vo
2015-08-21 17:17                                                           ` Patrick Noffke
2015-07-21 19:51                                             ` Dmitry A. Kazakov
2015-07-21 21:06                                               ` Simon Wright
2015-07-21 21:51                                                 ` Dmitry A. Kazakov
2015-07-21 22:55                                                   ` Jeffrey R. Carter
2015-07-22  7:26                                                     ` Dmitry A. Kazakov
2015-07-22  9:05                                                       ` Mart van de Wege
2015-07-22 10:27                                                         ` Dmitry A. Kazakov
2015-07-22  7:01                                                   ` Simon Wright
2015-07-22  7:35                                                     ` Dmitry A. Kazakov
2015-07-27 23:02                                                       ` Randy Brukardt
2015-07-27 22:44                                                 ` Randy Brukardt
2015-07-28  7:30                                                   ` Simon Wright
2015-07-28 20:39                                                     ` Randy Brukardt
2015-07-29  7:12                                                       ` Simon Wright
2015-07-29 11:11                                                         ` vincent.diemunsch
2015-07-29 19:31                                                         ` Randy Brukardt
2015-07-22 12:53                                               ` Vincent
2015-07-22 13:59                                                 ` Dmitry A. Kazakov
2015-07-21 20:05                                             ` J-P. Rosen
2015-07-21 21:02                                               ` Simon Wright
2015-07-21 23:40                                               ` Shark8
2015-07-22 12:58                                               ` vincent.diemunsch
2015-07-22 13:40                                                 ` J-P. Rosen
2015-07-22 14:29                                                   ` Vincent
2015-07-21 19:30                                           ` David Botton
     [not found]                                     ` <30336c64-ceaa-4887-adee-18cc58aef012@googlegroups.com>
2015-08-21  5:21                                       ` Shark8
2015-08-21 17:39                                       ` David Botton
2015-07-11  2:31                         ` Paul Rubin
2015-07-11  6:00                           ` J-P. Rosen
2015-07-11  7:51                           ` Georg Bauhaus
2015-07-11  8:47                             ` Dmitry A. Kazakov
2015-07-21  1:34                           ` Luke A. Guest
2015-07-27  9:09                       ` Assertions in SPARK (Was: If not Ada, what else...) Jacob Sparre Andersen
2015-07-27 10:56                         ` G.B.
2015-07-27 21:59                           ` Peter Chapin
2015-07-11 11:10                   ` If not Ada, what else Pascal Obry
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox