Win vs. Linux #8472 WAS: Wo müssen DLLs hin ?

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben
Antworten
PascalDragon
Beiträge: 945
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: Win vs. Linux #8472 WAS: Wo müssen DLLs hin ?

Beitrag von PascalDragon »

Warf hat geschrieben: Mo 6. Mai 2024, 11:09 Aber Linux ist tatsächlich sehr ABI stabil, d.h. wenn man seine eigene LibC baut kann man genauso wie bei Windows auch alte Software laufen lassen. Ist aber nicht so trivial.
Mit einer der Gründe, warum die Linux RTL im Großen und Ganzen nicht gegen die C-Bibliothek linkt und der Compiler selbst damit auch rein statisch gelinkt ist. :)
FPC Compiler Entwickler

Mathias
Beiträge: 6899
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Win vs. Linux #8472 WAS: Wo müssen DLLs hin ?

Beitrag von Mathias »

Oder warum man {$AppType GUI} schreiben muss damit nicht so ein doofes schwarzes Fenster aufplopt, oder warum man ohne {$AppType Console} nicht auf STDOUT loggen kann?
Liegt dies wirklich an Windows. Könnte dies nicht auch FPC abfangen ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6762
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Win vs. Linux #8472 WAS: Wo müssen DLLs hin ?

Beitrag von af0815 »

Es ist nicht die Aufgabe des Kopilers zu Raten was der Benutzer macht, bzw. will. Warum verwendet ihr writeln, wenn ihr debugln meint. Und das geht mit Lazlogger besser, vor allen nimmt der darauf Rücksicht, ob es eine Konsole gibt oder nicht.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Warf
Beiträge: 2118
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Win vs. Linux #8472 WAS: Wo müssen DLLs hin ?

Beitrag von Warf »

Die Konsole kann man für mehr als nur für Debuggen verwenden. Z.B. was ist wenn ich eine Anwendung schreiben will die man sowohl als Konsolenanwendung, Deamon/Service und GUI Anwendung funktionieren soll? Unter Linux absolut kein Problem unter Windows müssen das 3 verschiedene Anwendungen sein.
Ein typisches Beispiel dafür ist z.B. yast auf OpenSuse. Wenn es aus einem GUI raus gestartet wird, öffnet es sich selbst auch im GUI, wenn es aus der Kommandozeile gestartet wird dann wird es im TUI gestartet.

Und selbst wenn es nur zum debuggen ist, warum sollte ich das komplette LazLogger Framework einbinden wenn ich eigentlich nur WriteLn brauche? Klar manche Programme brauchen ein richtiges Logging framework, für sehr vieles ist WriteLn aber vollkommen ausreichend

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6762
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Win vs. Linux #8472 WAS: Wo müssen DLLs hin ?

Beitrag von af0815 »

Klar ist, das writeln oft ausreichend ist, dann darf ich aber ein Programm nur dort starten wo eine Konsole wirklich da ist, oder die entsprechenden Prüfungen selbst veranlassen.

Darum hat sich der Programmier zu kümmern und das richtige Framework zu verwenden, wenn er das haben will. Wenn ich eine automatische Prüfung auf Konsole haben will, dann ist debugln mit seinen Overhead halt bequemer.

Und die Plattformen sind halt unterschiedlich, damit muss man einfach umgehen lernen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Warf
Beiträge: 2118
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Win vs. Linux #8472 WAS: Wo müssen DLLs hin ?

Beitrag von Warf »

af0815 hat geschrieben: Mo 10. Jun 2024, 06:49 Und die Plattformen sind halt unterschiedlich, damit muss man einfach umgehen lernen.
Spricht ja nix gegen, ich sag nur das die Designentscheidungen von Windows mMn. die schlechtere Wahl sind, bzw. Sachen komplizierter für Entwickler machen

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6762
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Win vs. Linux #8472 WAS: Wo müssen DLLs hin ?

Beitrag von af0815 »

Warf hat geschrieben: Mo 10. Jun 2024, 10:50
af0815 hat geschrieben: Mo 10. Jun 2024, 06:49 Und die Plattformen sind halt unterschiedlich, damit muss man einfach umgehen lernen.
Spricht ja nix gegen, ich sag nur das die Designentscheidungen von Windows mMn. die schlechtere Wahl sind, bzw. Sachen komplizierter für Entwickler machen
Ist "Point of view" :-)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Mathias
Beiträge: 6899
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Win vs. Linux #8472 WAS: Wo müssen DLLs hin ?

Beitrag von Mathias »

Kann dies mal eine unter echtem Windows testen.

Code: Alles auswählen

function printf(str:PChar):Integer;varargs cdecl;external  'msvcrt';
function putchar(ch:integer):Integer; cdecl;external  'msvcrt';
function puts(str:PChar):Integer;varargs cdecl;external  'msvcrt';

begin
  putchar(65);
  printf('Hello World'#10);
  puts('Hello World'#10);

//  WriteLn('bum');
end.
Ich habe es mit wine und mit win10 in der VB getestet, da kommt kein Fehler.
Erst wen ich ein Writeln einfügen knallt es mit Runtime Error 103.

Somit ist es nach meiner Meinung ein Bug von FPC.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

charlytango
Beiträge: 1058
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Win vs. Linux #8472 WAS: Wo müssen DLLs hin ?

Beitrag von charlytango »

wow, ganz schön viel zu lesen und mehr als die Hälfte von dem Technikzeugs verstehe ich nicht mal. ggg.

Aber was mich umtreibt ist die Frage warum hier so viele vor dem falschen Baum bellen?
Zu diskutieren, welche Linuxe oder Windowse (keine Ahnung wie die Mehrzahl heisst) nun das bessere Betriebssystem ist ( den einzelnen UseCase mal außer acht lassend), ist völlig weltfremd.
Entgegen jegliche Realität, ein Sturm im Wasserglas und eigentlich keines Posts wert.

Bei Desktop-Betriebssystemen (Windows 73, MacOs knapp 15, Linux unter 4) erübrigt sich jede technische Diskussion. Im Serversegment 80/20 Linux/Windows.

1974 gab es CP/M, später DOS und auch MSDOS. Von Linux war da noch lange keine Spur
Mit dem Deal mit IBM festigte Microsoft die Position und hat sie eigentlich nie mehr aus der hand gegeben. CP/M war damals das deutlich bessere Betriebssystem und hat nicht überlebt.
Soweit meine Erinnerung reicht, gab es zu Zeiten von Windows 3.11 ein tolles Produkt von IBM namens OS/2 das unsere Herzen höher schlagen ließ.
IBM hat es damals auf zwei Ständen auf der Messe in LasVegas präsentiert. In der kompletten Halle daneben gab es Windows 3.11 zu sehen. Das dann auch keinen besonderen Kopierschutz hatte und sich blitzartig im Privatbereich verteilt hat um im Geschäftsbereich zu folgen.
Ein Schelm, wer Arges dabei denkt.

Und seitdem hat sich nichts, aber auch gar nichts geändert (am Desktop). Klar ist, dass MS seine Marktmacht weidlich ausgenützt hat und dies schamlos weiter machen wird.

Entscheidungen in einem Unternehmen welches OS auf die Rechner kommt, werden nicht von technischen Argumenten getragen. Nicht einmal von Sicherheitsüberlegungen. (mit ganz wenigen Ausnahmen). Entweder ist es eine Art Korruption, Dummheit oder um den eigenen Arsch des Entscheiders zu schützen. Nach der Denkart: Ja wenn das mit MS nicht funktioniert, wer soll es dann können?.

Davon kann ich ganze Arien singen -- Unser Hochleistungs-SMS-Router für Mobilfunker war technisch um Welten besser als alles andere auf dem Markt. (mit Kylix entwickelt und auf Suse Server) Aber wir waren eine Firma mit insgesamt 4 Mann -- also einerseits nicht vertrauenswürdig und andererseits mit einer dünnen Finanzdecke, die keine Einladungen der Entscheider ins nächste Bordell erlaubte.

Alle Bemühungen Linux als Desktopsystem in der öffenlichen Verwaltung zu etablieren (siehe München und Wien) scheiterten. Einerseits weil sie (sicherheitshalber) halbherzig aufgesetzt wurden und andererseits dem permanenten Lobbying von MS ausgesetzt waren.

Und JA, im kleinen kann man meinungsbildend unterwegs sein, aber solche Diskussionen wie hier bezahlt man mit einem Anteil an seiner Restlaufzeit.

Viel wichtiger wäre es, aus der Geschichte zu lernen und die Erkenntnisse für Lazarus einzusetzen, damit dieser genialen Entwicklungsumgebung nicht der Weg anderer technischer Juwelen beschieden ist.

PascalDragon
Beiträge: 945
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: Win vs. Linux #8472 WAS: Wo müssen DLLs hin ?

Beitrag von PascalDragon »

Mathias hat geschrieben: Mo 10. Jun 2024, 17:55 Kann dies mal eine unter echtem Windows testen.

Code: Alles auswählen

function printf(str:PChar):Integer;varargs cdecl;external  'msvcrt';
function putchar(ch:integer):Integer; cdecl;external  'msvcrt';
function puts(str:PChar):Integer;varargs cdecl;external  'msvcrt';

begin
  putchar(65);
  printf('Hello World'#10);
  puts('Hello World'#10);

//  WriteLn('bum');
end.
Ich habe es mit wine und mit win10 in der VB getestet, da kommt kein Fehler.
Erst wen ich ein Writeln einfügen knallt es mit Runtime Error 103.
Und weißt du, was Fehler 103 ist? "File not open". Die C Library schreibt einfach ins Nirvana, aber Pascal I/O ist nicht so definiert. Wenn ein File oder Text Typ geschlossen ist, dann gibt es nun mal einen Fehler (oder eine entsprechende EInOutError Exception, wenn die SysUtils-Unit verwendet wird).
Mathias hat geschrieben: Mo 10. Jun 2024, 17:55 Somit ist es nach meiner Meinung ein Bug von FPC.
Es ist kein Bug. Pascal ist nicht C, du kannst nicht einfach nach Verhaltensweisen der C-Bibliothek gehen und die auf Pascal anwenden.
FPC Compiler Entwickler

Warf
Beiträge: 2118
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Win vs. Linux #8472 WAS: Wo müssen DLLs hin ?

Beitrag von Warf »

charlytango hat geschrieben: Mo 10. Jun 2024, 20:12 Bei Desktop-Betriebssystemen (Windows 73, MacOs knapp 15, Linux unter 4) erübrigt sich jede technische Diskussion. Im Serversegment 80/20 Linux/Windows.
Nur weil 73% der leute Windows benutzen heist das nicht das ich Windows benutzen muss oder für Windows entwicklen muss. Es ist auch immer eine Frage der Domäne. Schau dir Build Tools an, hier wird Windows von sehr vielen sehr Stiefmütterlich behandelt. Viele Entwicklertools brauchen MinGW oder Cygwin, was ein Unix Emulator (ähnlich zu Wine) ist, damit die tools überhaupt laufen, weil sie für Linux first entwickelt werden und dann nur auf Windows geportet werden. Swift für Windows ist nach wie vor absolut unbenutzbar, aber läuft super unter Linux.
Ich meine wir benutzen hier vermutlich alle Git oder SVN, das sind inherent auf Linux ausgelegte tools die Linux first Entwickelt werden.

Nur weil der Durchschnittliche PC mit Windows läuft heist nicht das wir Windows für alles benutzen müssen.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6762
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Win vs. Linux #8472 WAS: Wo müssen DLLs hin ?

Beitrag von af0815 »

Warf hat geschrieben: Di 11. Jun 2024, 10:28 Nur weil der Durchschnittliche PC mit Windows läuft heist nicht das wir Windows für alles benutzen müssen.
Es wird sich im nächsten Jahr einiges ändern :-)

Alleine was M$ gerade auf meinem Win10 PC beginnt aufzuführen, bringt mich dazu die erste Installation mit Linux Mint zu evaluieren. Alter Schwede, die schreiben mir glatt VOLLBILD ich soll meinen privaten Rechner wegschmeißen und mir ein M$-Gerät kaufen, weil meine CPU nicht ihren Vorstellungen für Win11 passt.
Das lustige ist, das M$-Tablett, das ich auch besitze hat eine - lt. M$ - unbrauchbare CPU, ABER weil es in einem M$-Surface eingebaut ist, ist das Win11 fähig.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Mathias
Beiträge: 6899
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Win vs. Linux #8472 WAS: Wo müssen DLLs hin ?

Beitrag von Mathias »

Es ist kein Bug. Pascal ist nicht C, du kannst nicht einfach nach Verhaltensweisen der C-Bibliothek gehen und die auf Pascal anwenden.
So kann man es umgehen. Man darf es einfach nicht vergessen.

Code: Alles auswählen

  {$push} // Wegen Windows
  {$I-}
  WriteLn(s);
  {$pop}
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6899
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Win vs. Linux #8472 WAS: Wo müssen DLLs hin ?

Beitrag von Mathias »

Alleine was M$ gerade auf meinem Win10 PC beginnt aufzuführen, bringt mich dazu die erste Installation mit Linux Mint zu evaluieren. Alter Schwede, die schreiben mir glatt VOLLBILD ich soll meinen privaten Rechner wegschmeißen und mir ein M$-Gerät kaufen, weil meine CPU nicht ihren Vorstellungen für Win11 passt.
Das lustige ist, das M$-Tablett, das ich auch besitze hat eine - lt. M$ - unbrauchbare CPU, ABER weil es in einem M$-Surface eingebaut ist, ist das Win11 fähig.
Arroganter geht es kaum noch. :roll: :roll:
Da gibt es nur noch ein, abfahren mit diesem Microschrott-Zeugs.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6899
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Win vs. Linux #8472 WAS: Wo müssen DLLs hin ?

Beitrag von Mathias »

Nur weil 73% der leute Windows benutzen heist das nicht das ich Windows benutzen muss oder für Windows entwicklen muss. Es ist auch immer eine Frage der Domäne. Schau dir Build Tools an, hier wird Windows von sehr vielen sehr Stiefmütterlich behandelt. Viele Entwicklertools brauchen MinGW oder Cygwin, was ein Unix Emulator (ähnlich zu Wine) ist, damit die tools überhaupt laufen, weil sie für Linux first entwickelt werden und dann nur auf Windows geportet werden. Swift für Windows ist nach wie vor absolut unbenutzbar, aber läuft super unter Linux.
Ich meine wir benutzen hier vermutlich alle Git oder SVN, das sind inherent auf Linux ausgelegte tools die Linux first Entwickelt werden.
Es tönt irgendwie komisch. Unter Linux mit Cross-Compilern Windows Programme zu bauen geht einfacher als unter dem echte, Windows.
Dies betrifft vor allem C/C++ Linux liefert alles mit was es braucht. Diese MinGW läuft nicht mal in der VB.
Auch ganze DLL-Pakete kann man mit Linux bauen. ZB. das brandneue SDL3 oder auch FreeType oder Cairo.
Mit GTK4 will es (noch) nicht, irgendein Vulkan-Problem.

Lazarus ist da eine Ausnahme, da es alles mitbringt und Windows-Programme zu schreiben.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten