Delphi-PRAXiS
Seite 13 von 14   « Erste     3111213 14      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Klatsch und Tratsch (https://www.delphipraxis.net/34-klatsch-und-tratsch/)
-   -   Delphi-Eigentümer hat neuen Besitzer? (https://www.delphipraxis.net/186883-delphi-eigentuemer-hat-neuen-besitzer.html)

Bambini 20. Nov 2015 10:51

AW: Delphi-Eigentümer hat neuen Besitzer?
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1321986)
Das kann er erst wenn beide Compiler für eine Plattform funktionieren.

Wenn ich mir z.B. die Compiler Zeiten einer kleinen App anschaue und diese Zeilen pro Zeile Code auf mein großes Windows Programm hochrechne,
kann ich mir dir F9 Taste abmontieren und über nightly builds nachdenken. Ob der NextGen wirklich besseren und schnelleren Code erzeugt:
http://stackoverflow.com/questions/2...id-arm-targets

Zitat:

Zitat von Bernhard Geyer (Beitrag 1321986)
Zitat:

Zitat von Bambini (Beitrag 1321973)
Außerdem hat ARC überhaupt nichts mit dem Compiler zu tun.

Wenn es nicht mit dem Compiler zu tun hat, wer sorgt dafür das es das gibt?

Die {$ifdef } im Code der RTL.

Zitat:

Zitat von Bernhard Geyer (Beitrag 1321919)
Welche gemeinsame Codebasis? Wenn ich unsere Apps auf MacOS bringen müsste hätte ich mit dem VCL-Ausbau viel zu tun.
Da macht es den kohl nicht mehr fett auch gleich den rest umzubauen (Stringhelper und Co.) damit der rest auch passt und man gleich auch eine Codesbasis für Android und iOS hat.

Es geht bei Linux um non-UI Parts. Ich nutze für den Server-Dienst unter Windows und Mac OSX eine gemeinsame Code Basis. Warum schert da Linux jetzt schon wieder aus. Ich sehe da keinen Mehrwert.

Zitat:

Zitat von Bernhard Geyer (Beitrag 1321919)
Zitat:

Bei den mobilen kam Huckepack z.B. ... UTF8 und AnsiString
In wieweit sind as neue Baustellen?

Der Wegfall bzw. Umbau bringt eine Reihe neuer Probleme mit sich, ohne das es etwas mit der neuen Plattform zu tun hat.

Stevie 20. Nov 2015 12:38

AW: Delphi-Eigentümer hat neuen Besitzer?
 
Zitat:

Zitat von Bambini (Beitrag 1321973)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1321986)
Zitat:

Zitat von Bambini (Beitrag 1321973)
Außerdem hat ARC überhaupt nichts mit dem Compiler zu tun.

Wenn es nicht mit dem Compiler zu tun hat, wer sorgt dafür das es das gibt?

Die {$ifdef } im Code der RTL.

Das ist ein Flag beim Kompilieren des Compiler frontends.
Und wenn damit dann die RTL gebuildet wird, ist halt AUTOREFCOUNT gesetzt oder nicht.
Außerdem wird bei ARC ja noch mehr gemacht (__ObjAddRef/__ObjRelease, unterschiedliches verhalten bei .Free, ...) was nur der Compiler kann und nicht ein ifdef in der RTL.

Bambini 20. Nov 2015 13:42

AW: Delphi-Eigentümer hat neuen Besitzer?
 
Zitat:

Zitat von Stevie (Beitrag 1321999)
Das ist ein Flag beim Kompilieren des Compiler frontends.
Und wenn damit dann die RTL gebuildet wird, ist halt AUTOREFCOUNT gesetzt oder nicht.
Außerdem wird bei ARC ja noch mehr gemacht (__ObjAddRef/__ObjRelease, unterschiedliches verhalten bei .Free, ...) was nur der Compiler kann und nicht ein ifdef in der RTL.

Auch die __ObjAddRef/__ObjRelease Aurufe werden in der SYSTEM.PAS unit der RTL verwendet und gerufen.
Soweit ich das gesehen und gelesen habe, ist ARC kein Compiler-Feature.
Z.B. der leicht geändert Delphi X86 Compiler erzeugt ja auch den Code für den iOS Simulator, mit ARC.

jbg 20. Nov 2015 15:26

AW: Delphi-Eigentümer hat neuen Besitzer?
 
Zitat:

Zitat von Bambini (Beitrag 1322008)
Soweit ich das gesehen und gelesen habe, ist ARC kein Compiler-Feature.

Dann zeig mal deine von Hand eingefügten ObjAddRef Aufrufe an allen Stellen wo Objektvariablen zugewiesen werden. Warum heißt "Compiler-Magic" denn "Compiler-Magic".

Zitat:

Z.B. der leicht geändert Delphi X86 Compiler erzeugt ja auch den Code für den iOS Simulator, mit ARC.
Das "leicht geändert" ist ein ifdef beim Bauen des Compilers aus seinem C-Code, welches ARC (und ein paar andere Sachen) aktiviert.


Die System-Unit ist übrigens eine ganz spezielle Unit. Sie kann auch nicht ohne einen bestimmten Compiler-Parameter kompiliert werden. Der Compiler behandelt die System-Unit speziell und nutzt deren Funktionen für die Compiler-Magic (automatisches Referenzzählen und anderes). Die Entwickler des Compilers wollten halt nicht den Code für die Compiler-Magic in Maschienensprache im Compiler als Blob ablegen und haben sich für die einfach zu wartende Variante entschieden.

pertzschc 20. Nov 2015 15:38

AW: Delphi-Eigentümer hat neuen Besitzer?
 
Könnt Ihr mich bitte nochmal aufschlauen, was eigentlich "ARC" ist?
Danke, Christoph

Der schöne Günther 20. Nov 2015 15:47

AW: Delphi-Eigentümer hat neuen Besitzer?
 
Automatic Reference Counting.

Schonmal einen Record freigegeben? Oder ein Array? Ein Interface? Nein? Richtig, denn die funktionieren seit Urzeiten mit ARC. Wenn keine Referenz mehr auf das "Objekt" zeigt wird es freigegeben werden. Im Gegensatz zu einem Garbage Collector (wie z.B. unter Java oder .NET) ist somit sogar deterministisch wann ein Objekt freigegeben wird.

Im "alten" Compiler für Windows und Mac OS haben Objekte (alles was sich von TObject) ableitet KEINE automatische Referenzzählung. Deshalb das ganze try..finally..destroy-Geraffel.

samso 21. Nov 2015 14:45

AW: Delphi-Eigentümer hat neuen Besitzer?
 
Bei Records gibt es ARC? Seit wann das denn?

Bernhard Geyer 21. Nov 2015 15:00

AW: Delphi-Eigentümer hat neuen Besitzer?
 
Zitat:

Zitat von samso (Beitrag 1322116)
Bei Records gibt es ARC? Seit wann das denn?

Ein ARC der Wert von 0 (Record freigeben) und 1 (Record nicht freigeben) haben kann :mrgreen:

SMO 21. Nov 2015 15:09

AW: Delphi-Eigentümer hat neuen Besitzer?
 
Gilt auch nur für Records, die managed types (String, dynamische Arrays, Interfaces) enthalten. Dann werden nur Felder dieses Typs per Compiler-Magic initialisiert und wieder freigegeben. Es ist also nicht wirklich ein Feature von Records an sich.

Dejan Vu 21. Nov 2015 15:19

AW: Delphi-Eigentümer hat neuen Besitzer?
 
ARC spielt hier keine Rolle, weil ein Record auf dem Stack liegt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:23 Uhr.
Seite 13 von 14   « Erste     3111213 14      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz