Änderungen bis zum HEAD ======================= Aufräumen: Olaf [ * Call-Advice umstellen ] * ACFileID aufräumen (FileID vs. FileEntry) * ACToken konsequent in Phase 1 nutzen * WeavePos konsequent in Phase 2 nutzen * PP::token_text(token) vs. token.text() => kein token.text() mehr * Clang-Klassen von Puma-Code befreien [* TJP nicht generiert; Bindings? (PragmaOnceObserver)] [* using namespace Puma/clang nicht in *.h] [* zu viele dynamische Tests (__ac_..._is) z.B. in PragmaOnceObserver und That] [* CodeWeaver mergen] [* Mehr Tests mit Puma-Frontend] [* ClangWeaverBase verbessert] [* Codemanipulation in Weaver vor Transformer-Aufruf vermieden] Bugs: Olaf [* Warum funktioniert das mit AspectClang gebaute ac++ nicht? ] - Problembbeschreibung ggf. an Benjamin übergeben Bugs: Benjamin [* komischer Fehler (AspectPrivileges, ArrayWrapper, PrivateResult)] [* Doppelte Einfügungen vom Introducer (Puma/CTree.h)] [* rename_args für Clang (ArrayMangling, MatchExpr)] [* Automatische Expansion von Makros bei der Codetransformation] - ## Operator [* ClangASTVisitor korrigieren (Nested functions, local classes, ...)] - Umstellung auf Nutzung von Traverse*Decl() [* Unbekannte Datentypen bei Intros (Markus Buschhoff)] [* Lokal deklarierte Funktionen nicht zu ernst nehmen] [* BYPASS-Klassen für externe Basisklassen] [* Qt-Examples] - Assertion-Problem Tests: Benjamin [* Qt-Examples] Implementieren: * Line-Direktiven (Bug209) - Testen mit Debugger - update_line_directives für Clang implementieren (ggf. in ClangIncludeExpander integrieren) - richtige Direktiven in ClangWeaverBase einfügen (Olaf?) - ClangIncludeExpander erzeugt falsche #line Direktiven: Sie beziehen sich auf die Zeilennummern in Phase 2 und haben wegen der Code- Manipulationen in Phase (AC-Namespace) einen Versatz zu den echten Zeilennummern in der ursprünglichen Quelltextdatei. [* Introspection-Mechanismus] Änderungen bis zum Release ========================== [ * IncludeExpander abschließen ] [ * Makro-Expansion (Test MacroCall + Qt Examples) ] [ * AspectC++-Tests => Bugs fixen. ] * Code-Weaver enthält keine frontend-spezifischen Teile mehr: Advice-Typen [ * Transformation in Weaver schöner machen => Clang-Implementierung ] [ * Puma-Abhängigkeiten: Project ] * aclang++ Frontend - puma.config Anbindung vereinfachen/vermeiden Nice to have ============ * Korrekte Target-Definition für Clang -> Größenbestimming beim Cross-Compiling * Besserung Umgang mit -W... * Build-Server für MacOS Wichtige Arbeiten bis zum Release ================================= * AspectC++ in Clang-Konfiguration mit libminipuma.a übersetzen können - #includes aufräumen - README aktualisieren * Line-Direktiven in Clang-Konfiguration implementieren (siehe oben) - Line-Direktiven überprüfen/reparieren * Code nochmal durchsehen und aufräumen - Puma/Clang vereinheitlichen, ... * Windows-Build per Cross-Compiler ermöglichen (Clang!) oder notfalls VM für natives Build aufsetzen * Build-Hosts auf Clang-Konfiguration umstellen * Testen - wichtige Bugs fixen