[Dune] Frage bzgl. Albert Lib Anbindung.

Thimo Neubauer thimo at debian.org
Fri Mar 21 14:13:49 CET 2003


Hallo,

On Thu, Mar 20, 2003 at 04:28:03PM +0100, Robert Kloefkorn wrote:
> ich wollte nochmal wegen der Anbindung von Albert fragen, ob man 
> wirklich nur die normale lib dazu linken möchte, oder ob es nicht besser 
> ist, jeweils eine eigene lib mit den neusten cvs Sourcen zu erzeugen.

Das verstehe ich nicht ganz: meinst Du mit "eigene lib mit den neusten
cvs sourcen" so etwas wie: ab und zu nimmt man sich die Albert-Sourcen
aus dem CVS, haut da einen Satz patches drauf und checkt das Ergebnis
in Dune ein? Wenn ja, dann bin ich dagegen :) Dieses System hätte
nämlich den Nachteil, dass sich, jedes Mal, wenn Albert sich ändert,
jemand auf der Dune-Seite die Anpassungen machen müsste.
Erfahrungsgemäss hat da nach einer Weile keiner mehr Lust drauf und
die Versionen divergieren...

> Der andere Punkt ist auch, das sich bei Albert im Bereich des Gitters, 
> und nur das soll ja übernommen werden, nicht mehr viel ändern wird.

Das würde ich ehrlich gesagt bei keiner Software so definitiv
ausschliessen... Und selbst wenn sich nur Kleinigkeiten ändern
sollten, bedeutet es Arbeit, die zu übertragen.

> Dazu kommt, das man bei Anbindung der lib, die Albert Funktionen 
> natürlich nicht in einen eigenen Namensraum packen kann.

Naja, man wird nicht umhin kommen, die Albert-Sourcen auf das an-einer-
anderen-Stelle-integriert-werden anzupassen, das haben wir mit UG auch
noch vor uns. Diese Arbeit lohnt IMHO aber auf jeden Fall, denn es
nützt auch alle anderen, die Albert/UG in den eigenen Programmen
verwenden wollen. Ausserdem vertrete ich die "lieber gleich
ordentlich"-Meinung :)

Wie wäre es denn mit der folgenden Konstruktion in den Headern:

#ifdef __cplusplus
namespace Albert {
#endif

...

#ifdef __cplusplus
}
#endif

Das hat natürlich den Nachteil, dass man dann die lib mit einem
C++-Compiler bauen muss. Auf die eine oder andere Weise müssen wir
aber sowieso dafür sorgen, dass die UG-Symbole von den Albert-Symbolen
getrennt sind (ich nehme stark an, dass es in beiden System gleiche
Namen gibt), da kommt mir das noch am einfachsten vor...


Genauso müssen wir auch darauf achten, welche Präprozessor-Defines die
jeweiligen Header noch setzen bzw. die global umbenennen. Das ist
ebenfalls eine Umstellung, die den Originalsourcen nicht schaden
kann... Zumindest beim üblichen 

#ifndef __GM__
#define __GM__

...

#endif

kann es IMHO nicht schaden, das Symbol in __UG_GM__ umzubenennen. Das
sollte sich auch mit einem Perl-Skript relativ flott umstellen
lassen. Alle weiteren Defines versprechen noch lustig zu werden, aber
wir müssen uns ja grundsätzlich darauf einstellen, dass jemand über
Dune gleichzeitig die Albert- und UG-Header einbindet (im schlimmsten
Fall müssen wir #undef-Orgien generieren lassen).


Also kurz gesagt: ich glaube, dass der Umbau der Originalsourcen
zugunsten der Einbindbarkeit lohnt. Aber es muss ja nicht jeder meine
Meinung haben :)

Gruss
    Thimo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20030321/d7caa3c3/attachment.sig>


More information about the Dune mailing list