Thema: UnitOptimizer

Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#248

AW: UnitOptimizer

  Alt 31. Okt 2021, 17:29
Die bedingten Kompilierungen ziehen mir noch den Zahn.

Jetzt wollte ich mich endlich mal dem Problem der auf allen Wegen aufgehenden begin...ends widmen und schon stellt sich ein anderes Problem. Oder doch nicht?

Die Vererbungen und Verwendung von Interfaces in Klassendeklarationen soll der Optimizer berücksichtigen und entsprechenden Code vervollständigen. Dazu schlägt er auch in verwendeten Units (aus den Uses-Klauseln) nach.
In folgendem Beispiel werden vom Compiler je nach Situation unterschiedliche Units verwendet, was ich wohl nicht prüfen kann.
Ich würde zwar nicht davon ausgehen, dass in solchen Konstellationen verschiedene Basisklassen oder Interfaces zur Anwendung kommen, aber man weiß ja nie. :-/

Ich weiß jetzt nicht, was der richtige Ansatz ist.

Für das Einrücken von Code müsste ich immer alle möglichen Wege durchgehen (Bedingung erfüllt und nicht erfüllt).

Für das Prüfen auf gültige Bindungen (begin...ends z.B.) würde es reichen, nur die Wege zu prüfen, die der Compiler anhand seiner Einstellungen gerade gehen würde. Aber ich weiß ja nicht, ob der Programmierer mit oder ohne Compiler kompilieren wird.

Ich habe einfach überhaupt keine Idee, wie ich an das Problem heran gehen soll.

Vermutlich kann ich keine Unterscheidungen nach definierten Bedingungen machen und muss immer alle möglichen Wege durchgehen.
Beim Nachschauen in anderen Units nach Basisklassen und Interfacedeklarationen werde ich die erste passende Unit verwenden, unabhängig ob sie von einer bedingten Kompilierung abhängig ist oder nicht.

Ist schon alles sehr komplex geworden inzwischen.

Ja dazu evtl. jemand Erfahrungen oder Hinweise?

Delphi-Quellcode:
  uses ..

 JvExExtCtrls, JvExtComponent, JvCaptionPanel

    //unterschiedliche pas dateien im Debugmodus / releaseModus
   {$IFDEF DEBUG} , Codes_Debug {$ELSE}, Codes_Release {$ENDIF} ;
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat