Einzelnen Beitrag anzeigen

Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#29

AW: Lazarus 1.2 veröffentlicht

  Alt 17. Mär 2014, 06:39
Aber ist das nicht eher ein Implementierungsdetail? Könnte man nicht eine ID aus Klasse, Package und ggf. Versionsnummer bilden und diese in der Klasse als Metainformation ablegen? Dann sollte man die Gleichheit bzw. Kompatiblität auch überprüfen können, wenn die Klassen nicht an der selben Stelle im Speicher stehen.
Warum soll man eine ID bilden müssen, wenn man eine perfekte ID bereits hat: der VMT Zeiger. Man sollte ein System nicht unnötig kompliziert machen... Ganz davon abgesehen müsstest du die ganze RTL erstmal anpassen, dass die das verwendet... Außerdem hast du immernoch das Problem mit der RTTI und dem Streaming System.

Ein Problem sehe ich nur, wenn verschiedene Packages von unterschiedlichen Versionen eines gemeinsam genutzten Packages ausgehen. Aber das dürfte dann bei dynamischen Packages ebenfalls Probleme geben, denke ich mal.
Der Compiler stopft die Packages mit den nötigen Metainformationen voll, so dass zur Laufzeit überprüft werden kann, ob alles passt. Nicht umsonst gibt es den berühmten Dialog beim Start von Delphi, dass dieses und jenes Package aus irgendeinem Grund nicht geladen werden konnte...

Warum etwas neues erfinden, wenn es etwas Funktionierendes bereits gibt, dass nur noch implementiert werden muss? Und wie gesagt, so aufwendig ist das neukompilieren von Lazarus auch nicht...

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat