Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   FreePascal (https://www.delphipraxis.net/74-freepascal/)
-   -   Instabile Sprach features? (https://www.delphipraxis.net/157529-instabile-sprach-features.html)

QuickAndDirty 15. Jan 2011 00:23

Instabile Sprach features?
 
Also ich war auf der suche nach einen IW ersatzt oder Port ...nach FPC/Lazarus...
fand Powutils...keine ahnung ob das das gesucht ist ABER ich fan dieses statement

http://z505.com/powtils/news.shtml
Zitat:
after working on these utilties for years, more bugs and errors have shown up in the FPC rtl, fpc compiler, unit finalization/initialization, threads, sockets units, and system runtime. It seems like an impossible task to fix them all from our end. What can we do?

UND

Zitat:
Automatic unit finalization and initialization, as an example, will be avoided where possible since it it causes so many problems. This is a feature Pascal has had since Turbo Pascal days, and yet it still doesn't work properly in FPC, nor in DLL's either. Since it is such an old language feature, we thought it would be stable decades later. However it is not, so manual style init procedures may need to be used in each web program, as it was in version 1.3.x (WebInit, WebFini, or similar)

UND

Zitat:
Threads will have to be avoided for now in all examples and fpc based web servers, since threads have proven to be buggy.



IST DAS SO? Initialization und finalization sind in FPC instabil...Threads auch? Wie soll irgendein Server programm ohne Thread arbeiten?

p80286 15. Jan 2011 11:48

AW: Instabile Sprach features?
 
Ich sehe da nur Behauptungen.
das sind Aussagen, die sich eigentlich auf dem Niveau "die Erde ist eine Scheibe" bewegen.
Es wäre eigentlich ganz gut wenn das durch Beispiele belegbar und nachvollziehbar wäre.

Gruß
K-H

DeddyH 15. Jan 2011 11:50

AW: Instabile Sprach features?
 
Genau darauf zielt die Frage ja ab.

JamesTKirk 15. Jan 2011 17:53

AW: Instabile Sprach features?
 
Ich versuch hier mal ein paar Antworten zu geben.

Bzgl initialization/finalization innerhalb von Anwendungen (keine Bibliotheken) habe ich bisher noch keine negativen Äußerungen gehört, was jedoch sein kann, ist dass in DLLs bzgl noch eher SOs (Shared Object, die Linux Variante von DLLs) hin und wieder etwas drunter und drüber geht (kann das allerdings jetzt weder bestätigen noch dementieren). Dies kann damit zusammenhängen, dass man (von Compiler Entwicklerseite her) an viele Dinge und Kombinationen dieser Dinge denken muss (zum Beispiel fehlende Linkernamespaces in Linux und die Problematik, dass man in Windows innerhalb von initialization/finalization (bei DLLs) nicht all zu viel machen sollte) und diese entsprechend umschifft werden müssen.

Was die Threads angeht: Zumindest unter Windows sollten sie stabil laufen (man muss natürlich auch threadsicher arbeiten und wissen was dies bedeutet). Unter Linux hat man das Problem, dass man auf eine externe Thread Bibliothek angewiesen ist (POSIX threads), welche nicht exakt so funktioniert wie die Windows API und sich auch nicht immer alle Funktionen emulieren lassen. Deswegen kann es einerseits schon stimmen, dass Threads unter Linux nicht so stabil sind wie unter Windows. Andererseits kann es aber auch sein, dass man die selben Erwartungen an die API (in diesem Fall TThread) stellt, wie unter Windows. Dieser zweite Teil kann eben nicht immer garantiert werden (übrigens nicht mal von Win32 => WinCE).

Überhaupt ist es allerdings so, dass solche Sachen dann allerdings auch als Bugs gemeldet werden sollten, damit die Entwickler von Free Pascal auch wissen, dass da was schief läuft.

Ich würde dir empfehlen einfach mal auszuprobieren und zu schauen, ob du in diese Problemfälle gerätst, die der Autor von POWtils erwähnt hat (ich selbst hab nämlich noch keine solchen miterlebt).

Gruß,
Sven

Assarbad 15. Jan 2011 18:49

AW: Instabile Sprach features?
 
Zitat:

Zitat von p80286 (Beitrag 1074859)
Ich sehe da nur Behauptungen.

... undatierte Behauptungen, soweit ich das sehe. Vor fünf Jahren war FPC auch noch nicht was es heute ist. Nicht einmal das Jahr ist ersichtlich. Solche windigen "News" würde ich schon aufgrund dieser Faktenlage nicht ernstnehmen.

QuickAndDirty 15. Jan 2011 19:28

AW: Instabile Sprach features?
 
Bin die ganze zeit am basteln, bis jetzt habe ich noch keine Fehler finden können die nicht auf mich zurück zuführen sind...bin eben auch ein Lazarus Neuling! Außer dem hab ich so eine beschissene Art zu programmieren...ich nehme das so hin das ich beim Programmieren Fehler mache und entferne die dann nach Tests.

Aber als ich das lahs war ich doch sehr verunsichert. Es kommt wie folgt an:
Powutils Autor = Lazarus FPC utils Entwicklungs Veteran
Statement = fpc kann weder Threads noch initialization und finalization vernünftig
Gewicht = Insider statement, quasi das Lazarus "Cabel" geleakt von nem Insider...

Das verunsichert TOOOTAL!!!

Assarbad 15. Jan 2011 20:14

AW: Instabile Sprach features?
 
Zitat:

Zitat von QuickAndDirty (Beitrag 1074939)
Powutils Autor = Lazarus FPC utils Entwicklungs Veteran

Echt? Ich kann keinerlei Namen oder ähnliches auf der verlinkten Seite finden. Das hier ist auch nicht sonderlich aufschlußreich.

Zitat:

Zitat von QuickAndDirty (Beitrag 1074939)
Statement = fpc kann weder Threads noch initialization und finalization vernünftig

Wenn das für initialization und finalization gilt, kann ich es noch nachvollziehen, aber was haben denn bitte Threads mit dem Compiler zu tun? TLS vielleicht ja noch. Aber Thread-Implementierungen unterscheiden sich je nach OS, wie kann man da dem Compiler die Schuld geben? Im Gegensatz zu anderen Sprachen ist Pascal keine die behauptet Threadprogrammierung irgendwie vorm Programmierer zu verstecken, oder habe ich etwas verpaßt?

QuickAndDirty 15. Jan 2011 23:37

AW: Instabile Sprach features?
 
Ich sag nur das mich das voll verunsichert hat....
....wenn einer sowas verbreitet macht das doch angst oder?
Ich hoffe das es einfach nicht stimmt...und wenn doch , das es WEG GEHT!

Namenloser 15. Jan 2011 23:55

AW: Instabile Sprach features?
 
Ok, also irgendwo im Internet wird behauptet, dass in FreePascal initialization und finalization nicht richtig funktionieren würden. Hast du mal überprüft, ob andere diese Aussage teilen? Oder ob diese Aussage inzwischen vielleicht schlicht überholt ist? Du wirst im Internet für jeden Compiler unzählige Bug-Berichte finden. Gerade der Delphi-Compiler ist ja auch alles andere als fehlerfrei...
Wenn du dich so leicht verunsichern lässt, solltest du besser gar keine Software verwenden.

Memnarch 16. Jan 2011 02:12

AW: Instabile Sprach features?
 
wenn ich etwas schlechtes im inet finde, google ich immer nach dem gegenteil ums zu vergleichen :P

Assarbad 16. Jan 2011 06:44

AW: Instabile Sprach features?
 
Zitat:

Zitat von QuickAndDirty (Beitrag 1074977)
Ich sag nur das mich das voll verunsichert hat....

Und ich sage nur, daß ich eine undatierte Webseite (übrigens auch das damit unwirksame Copyright) mit undatierten "News" sehe, die Behauptungen enthält, welche, im Gegensatz zu den Screenshots zur Untermauerung der Funktionsweise, einfache Behauptungen ohne Untermauerung sind. Außerdem ist der Autor im Anonymität bemüht - ich kann nichtmal wirklich Pseudonymität erkennen.

Bei dieser Faktenlage, wieso sollte man sich da verunsichern lassen?

Also, einfach mal die Kirche im Dorf lassen :zwinker:

JamesTKirk 16. Jan 2011 14:26

AW: Instabile Sprach features?
 
Zitat:

Zitat von Assarbad
Zitat:

Zitat von QuickAndDirty (Beitrag 1074939)
Statement = fpc kann weder Threads noch initialization und finalization vernünftig

Wenn das für initialization und finalization gilt, kann ich es noch nachvollziehen, aber was haben denn bitte Threads mit dem Compiler zu tun? TLS vielleicht ja noch. Aber Thread-Implementierungen unterscheiden sich je nach OS, wie kann man da dem Compiler die Schuld geben? Im Gegensatz zu anderen Sprachen ist Pascal keine die behauptet Threadprogrammierung irgendwie vorm Programmierer zu verstecken, oder habe ich etwas verpaßt?

Ich denke hier ist FPC als Gesamtsystem (Compiler, RTL) gemeint. Und da kommt die betriebsystemabhängige Threading Implementierung von den selben Leuten wie der Compiler.

Gruß,
Sven

QuickAndDirty 16. Jan 2011 23:38

AW: Instabile Sprach features?
 
Zitat:

Zitat von NamenLozer (Beitrag 1074981)
Ok, also irgendwo im Internet wird behauptet, dass in FreePascal initialization und finalization nicht richtig funktionieren würden. Hast du mal überprüft, ob andere diese Aussage teilen? Oder ob diese Aussage inzwischen vielleicht schlicht überholt ist? Du wirst im Internet für jeden Compiler unzählige Bug-Berichte finden. Gerade der Delphi-Compiler ist ja auch alles andere als fehlerfrei...

Ich habe ja hier nachgefragt um mich abzusichern....
@Memnarch: Ich vertraue dieser Community mehr als Google. Es war mir in dem Moment woh ich das Thema erstellt habe auch sehr wichtig mich aus 1.er Hand dazu zu informieren.

Zitat:

Zitat von NamenLozer (Beitrag 1074981)
Wenn du dich so leicht verunsichern lässt, solltest du besser gar keine Software verwenden.

Ad hominem warum??? Peace! ;)

Namenloser 17. Jan 2011 08:49

AW: Instabile Sprach features?
 
Zitat:

Zitat von QuickAndDirty (Beitrag 1075171)
Zitat:

Zitat von NamenLozer (Beitrag 1074981)
Wenn du dich so leicht verunsichern lässt, solltest du besser gar keine Software verwenden.

Ad hominem warum??? Peace! ;)

Ad hominem wo?

Patito 17. Jan 2011 09:26

AW: Instabile Sprach features?
 
Zu initialization und finalization:

Finalization Abschnitte funktionieren in Windows DLLs nur sehr eingeschränkt. Ob FPC oder Delphi ist hier egal - Finalization sections in DLLs sind, sobald sie irgendetwas machen, dass nicht völlig banal ist, eigentlich immer Mist.

Wenn man eine Komponente schreibt, sollte man lieber die Finger von diesem altertümlichen Kram lassen - sonst fliegt einem der Code um die Ohren, wenn man mal den Code in einer DLL verwenden will.

Gut, dass das anscheinend wenigstens einem Entwickler mal aufgefallen ist ... nach all den Jahren...

JamesTKirk 18. Jan 2011 10:48

AW: Instabile Sprach features?
 
Zitat:

Zitat von Patito (Beitrag 1075219)
Zu initialization und finalization:

Finalization Abschnitte funktionieren in Windows DLLs nur sehr eingeschränkt. Ob FPC oder Delphi ist hier egal - Finalization sections in DLLs sind, sobald sie irgendetwas machen, dass nicht völlig banal ist, eigentlich immer Mist.

Wenn man eine Komponente schreibt, sollte man lieber die Finger von diesem altertümlichen Kram lassen - sonst fliegt einem der Code um die Ohren, wenn man mal den Code in einer DLL verwenden will.

Gut, dass das anscheinend wenigstens einem Entwickler mal aufgefallen ist ... nach all den Jahren...

Das mit initialization/finalization liegt aber nicht an FPC/Delphi, sondern mehr an Windows. initialization/finalization wird innerhalb von DLL_PROCESS_ATTACH bzw. DLL_PROCESS_DETACH aufgerufen, welche sehr hohe Beschränkungen haben. Siehe hierzu auch das Blog Old New Thing eines Microsoft Entwicklers:
Some reasons not to do anything scary in your DllMain
Another reason not to do anything scary in your DllMain
Does creating a thread from DllMain deadlock or doesn't it?

Auch MSDN hat was dazu: DllMain entry point

Gruß,
Sven


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 Uhr.

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