Effektiv deboostifizieren



  • Hallo,

    das luabind-Projekt ist ja sozusagen aufgegeben worden und daher dachte ich, ich könnte mir einmal die Mühe machen das ganze so halbwegs zu verstehen, um dann selber mal ein paar weitergehende Anpassungen machen zu können. In einem ersten Schritt bin ich gerade dabei, das ganze BOOST_PP-Zeugs auszubauen, weil es bei Vierfach-Parallel-PP-Iterationen so undurchsichtig für mich wird, dass ich da echt überhaupt nichts mehr sehe. Aber selbst das ist schon ein größerer Akt, wenn es über 8 verschiedene Makros und ein paar lokale Iterationen geht.

    Meine dringlichste Frage: Bin ich total bekloppt? Ich kann nicht ansatzweise nachvollziehen, wie da jemand flüssig durchlesen können soll O.o. Sind die Entwickler da Genies? Wenn ich das heute so geschrieben hätte, dann könnt ihr davon ausgehen, dass ich übermorgen nichts mehr damit anfangen könnte. Ich zweifle echt stark an mir selber im Moment.

    Zweite Frage: Gibts irgendein Preprocessor-Tool, das in gegebenen Headern nur die BOOST_PP-Anteile für einen Fertigiterieren kann?

    Viele Grüße



  • Decimad schrieb:

    Zweite Frage: Gibts irgendein Preprocessor-Tool, das in gegebenen Headern nur die BOOST_PP-Anteile für einen Fertigiterieren kann?

    c++ -E preprocessed.c main.c
    oder so in der Nähe suchen. gcc liebt es eigentlich, einem anzubieten, zwischenschritte auszugeben.



  • Ahhh, VC++ kann das ja auch! Habe ich dem Dingens gar nicht zugetraut. Da brauche ich mir nichtmal extra eine gcc toolchain installieren, was aber immer noch besser gewese wäre, als den Präprozessor zu spielen!
    Aber besser vorher alle richtigen includes rausnehmen.



  • Ein Genie ist jemand, der lesbaren Code schreiben kann.



  • Decimad schrieb:

    das luabind-Projekt ist ja sozusagen aufgegeben worden

    Woraus schliesst du das? Inaktive Entwicklung? Ich habe zwar einige Zeit nichts mehr mit LuaBind gemacht, aber wäre mir jetzt nicht aufgefallen.

    Eventuell könnte man sich auch eine leichtgewichtigere Alternative anschauen, wie z.B. LuaBridge. Siehe auch http://lua-users.org/wiki/BindingCodeToLua

    tntnet schrieb:

    Ein Genie ist jemand, der lesbaren Code schreiben kann.

    Solche "Genies" können aber nur einen kleinen Teil von C++ nutzen 😉

    Oder anders gesagt: Der Durchschnittsprogrammierer hat vielleicht ein anderes Verständnis von "lesbar" als jemand, der die Sprache sehr gut kennt. Und damit meine ich nicht irgendwelche coolen Hacks, sondern ausdrucksstarke und kompakte Sprachmittel wie Lambda-Expressions.



  • Da gab es eine etwas längere Diskussion auf der luabind-mailing-liste. Die Autoren haben ihre Entwicklung eingestellt und das Projekt dann auf github gepackt, sodass jeder da einfach forken kann. Die sourceforge-Seite hat ihren Besitzer nicht gewechselt.
    Anschließend hat sich niemand gefunden, der das Projekt in die eigene Hand nehmen wollte. Einer hat noch Energie aufgewandt, ein paar include-Rationalisierungen vorzunehmen und ein paar Patches einzupflegen, die ein paar andere in ihre forks gemacht haben, aber auch dort ist seit ein paar Monaten nichts mehr los.
    Darum habe ich jetzt hier auch meine eigene Version mit ein paar Fixes für funktionierende Win32 Exceptions mit LuaJit und erste Versuche mit RValue-Referenzen. Seit ich heute angefangen habe, in den wichtigsten Dateien die Boost-PP-Sachen auszubauen, mögen mich IntelliSense und mein CPU-Lüfter auch wieder lieber.
    Im Moment bleibt sonst nicht viel als auf VC++2012 Update 2 zu warten und davon habe ich schon länger kein Lebenszeichen vernommen -.-

    Vielleicht schaue ich mir die Tage mal ToLua++ und LuaBride an, wobei ich eigentlich zufrieden mit den Features von luabind bin.


Anmelden zum Antworten