tri, tra, ... Trunk

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Benutzeravatar
Jorg3000
Lazarusforum e. V.
Beiträge: 359
Registriert: So 10. Okt 2021, 10:24
OS, Lazarus, FPC: Win64
Wohnort: NRW

tri, tra, ... Trunk

Beitrag von Jorg3000 »

Hallo!
Ich habe bisher immer nur mit der offiziellen Release-Version von Lazarus gearbeitet (derzeit Lazarus 3.8 unter Windows) - d.h. ich habe nicht zwischen FPC und Lazarus unterschieden, habe keine Parallel-Installationen und nutze auch nicht FPCUPdeluxe (für mich bisher unnötig) - und war damit in den letzten Jahren recht glücklich! :)

Nun lese ich im englischen Forum immer häufiger soetwas wie "das wurde um Trunk gefixt". Heute z.B. habe ich ein Bugfix für fpHttpServer gesehen, den ich gerne hätte. https://gitlab.com/freepascal.org/fpc/s ... sues/38374
Dort lese ich unten in den Kommentaren, dass ein Nutzer das gleiche Problem hat wie ich: Er ging davon aus, dass wenn man die aktuellste Lazarus-Version installiert, man auch den aktuellsten FPC hat.
Und Michael V.C. schreibt dazu: "3.2.2 is really old meanwhile".

Mein erster Gedanke: Was? Wenn es doch bekanntermaßen "really old meanwhile" ist, warum wird es aber standardmäßig als aktuellster Lazarus-Download angeboten? Hier im Forum habe ich dazu gelesen, dass FPC 3.2.2 von 2021 sei, also jetzt knapp 4 Jahre - also auch seit 4 Jahren keine neueren Bugfixes erhalten hat? :shock:

Nun meine Verständnisfrage zum Trunk: Da ich Lazarus inzwischen auch für kommerzielle Programme nutze, kann ich es mir eigentlich nicht erlauben mit "Experimental"-Versionen zu arbeiten. Ist ein Trunk als solches einzustufen oder wie habe ich Trunk zu verstehen? Enthält der Trunk zwar Bugfixes, aber dafür ohne Massentestes(RC)? Aus meiner Anwendersicht ist das extrem ungünstig, denn ich möchte natürlich alle Bugfixes, kann aber kein eigenes Testlabor für evtl. neue Bugs im Compiler unterhalten. :lol:
Oder betrachte ich den Trunk falsch?

Zu meinem Ursprungsproblem zurück: Kann ich die fpHttpServer-Units auch gesondert erhalten, ohne den Trunk installieren zu müssen? So wie bei einer externen Komponente?
Grüße, Jörg

Benutzeravatar
Zvoni
Beiträge: 371
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit
Wohnort: BW

Re: tri, tra, ... Trunk

Beitrag von Zvoni »

Mein Verständnis:
Trunk (Heisst das nicht mittlerweile "Main"?) ist "bleeding edge" (Beides: FPC und Lazarus)
Heisst: alle neuesten Funktionen, bugfixes etc. ABER mehr oder weniger ungetestet.

Warum Lazarus im Vergleich zum FPC bei "Stable" so einen Vorsprung hat:
Lazarus ist eine IDE, welche selbst in FreePascal geschrieben ist, und zwar mit dem letzten "Stable" (zur Zeit FPC3.2.2)
Heisst auch im Umkehrschluss: Lazarus 3.8 (bzw. sogar der 4.0RC) sind mit dem "Zeuch" gebaut, welcher FPC3.2.2 zur Verfügung stellt!
In Lazarus 4.0 (und niedriger) wird nichts verwendet, was ausschliesslich in FPC3.3.1 verfügbar ist.

Wenn du jedoch "dringend" einen "Fix" brauchst, welcher in FPC3.2.2 nicht drin ist, aber wo es heisst "ist in Trunk gefixt" würde ich mal auf den Fixes-Branch schauen, ob der "Fix" ggfs. nach FPC3.2.3 gemerged wurde. Hier landen die meisten "bugfixes" relativ schnell (insbesondere die "unkritischen", z.B. Typo-Verbesserungen).
Und als "Bugfix" sehe ich eine "Korrektur"/"Änderung" einer bestehenden Funktionalität
--> https://www.freepascal.org/develop.var
Download Daily Update of the Fixes Tree

These compiled snapshots contain the latest bug fixes, without major new features. They may be more stable than the development snapshots (and even than the last official release), but there is still no guarantee that these snapshots are bug free.
Zur Frage "Soll man Trunk für Produktion verwenden":
Die Antwort (wie immer!) ist ein klares "Jein" :D
Wenn du mit Trunk keine Compiler-Fehler hast, wenn du mit Trunk keine Runtime-Crashs hast, eben weil du "vorsichtig" programmiert hast, eben weil du einen "ausgedehnten" Testzyklus gemacht hast, dann sollte auch nichts dagegen sprechen, Trunk für Produktion zu verwenden.

Aber wie geschrieben: Ist konjunktiv
Zu meinem Ursprungsproblem zurück: Kann ich die fpHttpServer-Units auch gesondert erhalten, ohne den Trunk installieren zu müssen? So wie bei einer externen Komponente?
Rein theoretisch spricht nichts dagegen, vorausgesetzt, dass dir der Abhängigkeitsbaum keinen Strich durch die Rechnung macht (fpHttpServer-Units benötigen in der drölfzigsten Vererbungs-Ebene wiederum eine Funktionalität, welche wiederum nur in Trunk enthalten ist).
Desweiteren musst du halt auch sicherstellen, dass du dann diese "separaten" Units einbindest, und eben nicht die, welche mit deiner Installation kommen.

Aber ich denke, ich habe hier nichts geschrieben, was du nicht auch schon vorher wusstest
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Re: tri, tra, ... Trunk

Beitrag von theo »

Jorg3000 hat geschrieben: Mo 17. Mär 2025, 15:48 Oder betrachte ich den Trunk falsch?
Trunk ist einfach das, woran gerade gebastelt wird.
Das kann sogar kurzzeitig mal gar nicht kompilieren, wenn du es im falschen Moment auscheckst.
Dann gibt es wie beschrieben die Fixes. Die sollten immer funktionieren, stellen aber afaik keine neuen Features bereit.
Jorg3000 hat geschrieben: Mo 17. Mär 2025, 15:48 Zu meinem Ursprungsproblem zurück: Kann ich die fpHttpServer-Units auch gesondert erhalten, ohne den Trunk installieren zu müssen? So wie bei einer externen Komponente?
Die einzelnen Units sind ja immer zugreifbar.
Wenn's kompiliert... :wink:
https://github.com/fpc/FPCSource/tree/m ... b/src/base

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

Re: tri, tra, ... Trunk

Beitrag von Warf »

Die nächste FPC major Version wird noch eine Weile brauchen. Aber es soll eine neue Version 3.2.4 in der Zwischenzeit geben, die praktisch keine neuen Sprachfeatures enthält, sondern nur fixes und Updates zu den Bibliotheken (RTL, FCL) die keine neuen Compiler Features brauchen.

Wann das kommt ist aber noch offen, 3.2.4 wurde vor 2 Jahren glaube ich schon angekündigt, aber es braucht Zeit

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

Re: tri, tra, ... Trunk

Beitrag von Mathias »

Ich warte schon sehnsüchtig auf 3.4, weil es da sehr viele neue Sprachfeatures hat. Vor allem was Array Operationen anbelangt.
Auch bei generic hat es sehr viele Neuigkeiten.
Klar kann man selbst die 3.3 verwenden, aber wen man Code mit den neuen Features weiter gibt, gibt es Probleme.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

paweld
Beiträge: 85
Registriert: So 11. Jun 2023, 16:01
OS, Lazarus, FPC: Lazarus trunk, FPC fixes

Re: tri, tra, ... Trunk

Beitrag von paweld »

Ich benutze Lazarus trunk und fpc 3.2-fixes jetzt seit ein paar Jahren und in dieser Zeit hatte ich mehr als ein Dutzend Probleme damit - ich habe den Bugtracker durchgesehen und es gab 4 Bugs in FPC und 11 Bugs in Lazarus.
Aber meiner Meinung nach ist es das wert:
- im Falle von FPC, unter anderem, Verbesserungen im Umgang mit Datenbanken (einschließlich neuer Datentypen), openssl 3 Unterstützung, etc.
- für Lazarus, eine Menge Verbesserungen an den Komponenten, aber auch an der IDE selbst.

Ich benutze Lazarus kommerziell, ich benutze sogar einige kommerzielle Komponenten und es funktioniert sehr gut.
Was FPC trunk (3.3.1) betrifft, so benutze ich es leider nicht, gerade wegen der verwendeten Komponenten, da keine von ihnen kompilierbar ist.

Ich versuche, Lazarus auf dem neuesten Stand zu halten (täglich, maximal alle 3 Tage), da es sehr einfach ist, den problematischen Commit aufzuspüren, wenn es ein Problem gibt.
Grüße / Pozdrawiam
paweld

Benutzeravatar
KoBraSoft
Beiträge: 123
Registriert: So 6. Jun 2021, 09:57
OS, Lazarus, FPC: die zu Zeit aktuellen Versionen, überwiegend Linux
CPU-Target: 64Bit 32 Bit
Kontaktdaten:

Re: tri, tra, ... Trunk

Beitrag von KoBraSoft »

Jorg3000 hat geschrieben: Mo 17. Mär 2025, 15:48 Hallo!
Ich habe bisher immer nur mit der offiziellen Release-Version von Lazarus gearbeitet (derzeit Lazarus 3.8 unter Windows) - d.h. ich habe nicht zwischen FPC und Lazarus unterschieden, habe keine Parallel-Installationen und nutze auch nicht FPCUPdeluxe (für mich bisher unnötig)
Ich habe sowohl die die aktuelle Release Version als auch die Trunk version parallel laufen. Ich benötige (leider) einen Crosscompiler (für Windows) und musste deshalb von deb Paketen auf FPCUPdeluxe wechseln. FPCUPdeluxe hat große Vorteile:
1. CrossCopiler einfach zu installieren
2. Bequeme Installation mehrerer Parallel Versionen
3. Möglichkeit den FPC bei der Installation zu patchen (Ist zwar diffizil, aber wenns läuft dann super)

Ich liefere meine kommerziellen Produkte immer auf Basis der Release version aus, aber teste sie auch mit trunk. Dabei stelle ich gelegentlich fest dass Projekte (oder genauer Komponenten die ich darin verwende) sich mit trunk nicht kompilieren lassen. Bisher konnte ich aber noch immer die Ursache finden und falls ich in der Lage bin, einen Patch zu erstellen reiche ich den auch ein.
Konrad

www.KoBraSoft.de

Benutzeravatar
Jorg3000
Lazarusforum e. V.
Beiträge: 359
Registriert: So 10. Okt 2021, 10:24
OS, Lazarus, FPC: Win64
Wohnort: NRW

Re: tri, tra, ... Trunk

Beitrag von Jorg3000 »

theo hat geschrieben: Mo 17. Mär 2025, 16:29 Die einzelnen Units sind ja immer zugreifbar.
Wenn's kompiliert... :wink:
https://github.com/fpc/FPCSource/tree/m ... b/src/base
Danke für den Link. Dabei ist mir aufgefallen, dass ich noch nie auf der Github-Seite von FPC oder Lazarus war!
paweld hat geschrieben: Di 18. Mär 2025, 06:42 Ich versuche, Lazarus auf dem neuesten Stand zu halten (täglich, maximal alle 3 Tage), da es sehr einfach ist, den problematischen Commit aufzuspüren, wenn es ein Problem gibt.
Oh wow, dann benutzen wir es höchst unterschiedlich. Ich installiere immer nur das Release - unverändert bis zum nächsten Release, also bestenfalls einmal pro Jahr.
Ich glaube nicht, dass ich es mir angewöhnen wollte, z.B. wöchentlich die Programmierumgebung upzudaten - insbesondere wenn sie dann womöglich gar nicht lauffähig ist.
Und ich müsste dann ja sicherheitshalber auch meine Programme komplett durchtesten - also nicht nur, ob sie kompilieren, sondern auch ob sämtliche Funktionen unverändert das bisherige Ergebnis liefern. Das ist recht aufwändig (bzw. ich habe wenig Lust dazu), so dass ich froh bin, es nur bei einem Release tun zu müssen.

Lange Rede, kurzer Sinn: Der Trunk und ich werden keine Freunde werden.

Man kann und darf bei einem kostenlosen Open-Source-Projekt ja nur dankbar sein und allen Mitwirkenden stets für ihre ständigen Bemühungen danken, aber die auf Jahre unterschiedlichen Stände beim FPC sind doch ganz großer Murks. Ich kann dem Projekt nur wünschen, dass es das überwindet. Nicht nur wegen mir, sondern auch wegen aller anderen Nutzer, die im englischen Forum relativ häufig auf den Trunk verwiesen werden. Und allein schon, dass ein Hilfsmittel wie FPCUPdeluxe so häufig empfohlen wird, zeigt meiner Meinung nach, dass an dem Konzept etwas nicht stimmt.

PascalDragon
Beiträge: 954
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: tri, tra, ... Trunk

Beitrag von PascalDragon »

Jorg3000 hat geschrieben: Di 18. Mär 2025, 11:37 Man kann und darf bei einem kostenlosen Open-Source-Projekt ja nur dankbar sein und allen Mitwirkenden stets für ihre ständigen Bemühungen danken, aber die auf Jahre unterschiedlichen Stände beim FPC sind doch ganz großer Murks. Ich kann dem Projekt nur wünschen, dass es das überwindet. Nicht nur wegen mir, sondern auch wegen aller anderen Nutzer, die im englischen Forum relativ häufig auf den Trunk verwiesen werden. Und allein schon, dass ein Hilfsmittel wie FPCUPdeluxe so häufig empfohlen wird, zeigt meiner Meinung nach, dass an dem Konzept etwas nicht stimmt.
Das Problem ist, dass 3.2.4 das erste Release nach der Umstellung auf Git ist und es gibt da eben noch einiges an Schwierigkeiten. Von Problemen, die zwischenzeitlich auf verschiedenen Plattformen aufgetreten sind (und damit weder 3.2.2 noch den ursprünglichen 3.2.3 nutzbar ließen) mal ganz zu schweigen. Zudem ist und bleibt FPC ein Projekt, an dem in der Freizeit von uns Entwicklern gearbeitet wird. Und Freizeit wächst nun mal nicht auf Bäumen.
FPC Compiler Entwickler

TSchnuckenbock
Beiträge: 118
Registriert: Do 20. Jul 2017, 23:47
OS, Lazarus, FPC: Win7 und Win10
CPU-Target: xxBit
Wohnort: Südheide (Schnuckenland)

Re: tri, tra, ... Trunk

Beitrag von TSchnuckenbock »

PascalDragon hat geschrieben: Di 18. Mär 2025, 21:26Und Freizeit wächst nun mal nicht auf Bäumen.
Nicht?

Spaß beiseite, mir ist es schon lange ein Rätsel, wie viel Programmierarbeit einige Leute in so Projekte wie Lazarus/FPC beitragen. Die müssen entweder Rentner oder Privatiers oder sowas sein.
Von daher meinen Dank an die "Community".

Antworten