Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   FreePascal (https://www.delphipraxis.net/74-freepascal/)
-   -   class und record helper in Free Pascal (https://www.delphipraxis.net/159892-class-und-record-helper-free-pascal.html)

JamesTKirk 17. Apr 2011 15:48

class und record helper in Free Pascal
 
Hallo zusammen!

Gestern wurde nun meine Arbeit an class und record helpers in den Trunk von Free Pascal übernommen und das möchte ich nun gerne als Gelegenheit nutzen euch zu bitten diese mal zu testen. Ich habe zwar etwa 100 Tests für dieses Feature geschrieben (die thlp*.pp, tchlp*.pp und trhlp*.pp Dateien im tests/test Verzeichnis), jedoch möchte ich gerne wissen, ob meine Implementierung auch mit Alltagsanwendungen zurecht kommt.

Weitere Information findet ihr übrigens auch im dazugehörigen Artikel im FPC Wiki.

Wie bekommt ihr nun einen FPC mit class und record helper Unterstützung? Da es zur Zeit keine Win32 Snapshots gibt, folgt hier der etwas umständlichere Weg:
  1. Ladet euch einen FPC 2.4.2 oder 2.4.4-RC1 herunter und installiert ihn (falls ihr das nicht bereits habt).
  2. Ladet euch die aktuellen Quellen herunter und entpackt diese (oder ihr macht bei eurem SVN Checkout ein Update ;) ).
  3. Öffnet in dem Ordner mit den Quellen eine Kommandozeile und führt make all aus
  4. Lief dies erfolgreich, so könnt ihr mit make install INSTALL_PREFIX=c:\zielpfad den Compiler installieren
  5. Jetzt müsst ihr noch die fpc.cfg aus dem Verzeichnis eures Compilers (z.B. C:\FPC\2.4.2\bin\i386-win32) in das bin\i386-win32 Verzeichnis des neuen Compilers kopieren und alle Pfadangaben anpassen (Search and Replace sollte ausreichen).
  6. Ihr könnt jetzt den Compiler entweder über seinen absoluten Pfad oder durch Hinzufügen des Verzeichnisses zum %PATH% verwenden

Bei Problemen beim Bauen:
  1. Achtet darauf, dass sich make, die binutils (cp, rm, etc) und der 2.4.2 bzw. 2.4.4 Compiler im Pfad befinden müssen. Normalerweise reicht es hierzu das bin-Verzeichnis der FPC Installation in den Pfad aufzunehmen (Default: C:\FPC\{VERSION}\bin\i386-win32).
  2. Sollte beim Kompilieren ein Fehler bei fcl-web auftreten, dann benennt ihr einfach die Datei Makefile.org im Verzeichnis %SRCDIR%\packages\fcl-web\ nach Makefile.fpc um und startet den Buildprozess erneut (notfalls make clean all statt make all verwenden).

Bei Problemen mit dem Feature:
Meldet etwaige Problem bitte entweder direkt hier oder gleich beim Free Pascal Bugtracker. Natürlich könnt ihr hier auch Fragen stellen, die ich versuchen werde so gut es geht zu beantworten. :D

Gruß,
Sven

JamesTKirk 21. Apr 2011 11:15

AW: class und record helper in Free Pascal
 
Hat denn keiner Lust zum testen?

Vielleicht ist es eher ein Anreiz, wenn ich euch mitteile, dass mittlerweile die Snapshots von 2.5.1 für Win32 wieder funktionieren. Das heißt die Schritte vereinfachen sich:
  1. Ladet euch hier den Snapshot herunter und entpackt ihn.
  2. Anschließend müsst ihr die fpc.cfg aus einer vorhandenen FPC Installation nehmen und nach %FPCDIR%\bin\i386-win32 kopieren.
  3. Zuletzt noch die Pfade in dieser Datei korrigieren.

Der Aufruf erfolgt dann wie in der Vorherigen Aufzählung entweder per absoluten Pfad oder mit Hilfe der %PATH% Variable.

Gruß,
Sven

implementation 21. Apr 2011 11:36

AW: class und record helper in Free Pascal
 
Ich habe mir den Snapshot mal runtergeladen (die Linuxversion) und werde die Helper gleich mal testen. :thumb:

[edit]
Also irgendwie meldet sich der Snapshot trotzdem als "Free Pascal Compiler version 2.4.0-2 [2010/03/06] for x86_64" und nimmt meine Class-Helper nicht an :gruebel:
Was mache ich falsch?

JamesTKirk 21. Apr 2011 13:38

AW: class und record helper in Free Pascal
 
Hmm. Dem Datum nach ist der Schnappschuss, den du verlinkt hast, eh schon mal nicht geeignet. Alles ab dem 17.04. enthält das Feature.
Der x86_64 Build scheint aber aktuell eh nicht zu funktionieren (deswegen steht er auch noch auf dem 16. und nicht auf dem 21.).

Dass du dann "2.4.0" bei der Compiler Info drinstehen hast liegt vermutlich daran, dass du bereits einen 2.4.0 Compiler in deinem $PATH hast. Ruf den entpackten Compiler doch mal bitte per absoluten Pfad auf, um zu sehen, ob der (inkorrekte) Snapshot zumindest prinzipiell funktioniert.

Gruß,
Sven

implementation 21. Apr 2011 14:20

AW: class und record helper in Free Pascal
 
Ich habe ihn ja mit absolutem Pfad aufgerufen :lol:

JamesTKirk 21. Apr 2011 15:53

AW: class und record helper in Free Pascal
 
:shock:

Ok... dann probier mal bitte folgendes:
Unter Linux wird $HOME/.fpc.cfg und /etc/fpc.cfg als Konfiguration für FPC verwendet. Falls du solche Dateien bereits hast, dann fertige bitte eine Sicherungskopie der Datei in $HOME/.fpc.cfg an und pass dann alle Pfade so an, dass sie auf das entpackte Verzeichnis passen.

Es kann nämlich sein, dass das Program fpc zwar das der 2.5.1 ist, dieses jedoch den ppc386 deiner 2.4.0 Installation aufruft.

Zur Erklärung:
  • fpc ist nur ein Wrapper, der es erlaubt mehrere CPU-spezifische Compiler anzusteuern
  • ppcX bzw. ppcrossX (X in [386, ppc, arm, x86_64, mips, avr, m68k, ppc64]) ist der eigentliche Compiler und kann nur für eine CPU kompilieren

Falls das auch nicht funktioniert, werde ich das mal heute Abend auf meinem Linux Rechner ausprobieren.

Gruß,
Sven

implementation 21. Apr 2011 16:00

AW: class und record helper in Free Pascal
 
Ah, wenn ich ppcx64 direkt aufrufe, geht's. Danke!
Werde dann wohl noch auf den nächsten Snapshot warten müssen :cry:

JamesTKirk 21. Apr 2011 20:45

AW: class und record helper in Free Pascal
 
Dann war das Problem in der Tat die Konfiguration...

Ich hoffe die Schnappschüsse funktionieren bald wieder. Alternativ könntest du jedoch auch die Win32 Variante unter Wine laufen lassen ;) (die i386-linux Variante ist leider auch out-of-date)

Gruß,
Sven

JamesTKirk 26. Apr 2011 09:10

AW: class und record helper in Free Pascal
 
Zitat:

Zitat von JamesTKirk (Beitrag 1096371)
Hmm. Dem Datum nach ist der Schnappschuss, den du verlinkt hast, eh schon mal nicht geeignet. Alles ab dem 17.04. enthält das Feature.
Der x86_64 Build scheint aber aktuell eh nicht zu funktionieren (deswegen steht er auch noch auf dem 16. und nicht auf dem 21.).

Die Builds für i386-linux und x86_64-linux funktionieren nun auch wieder. Damit kann nun jeder auf die einfache Art und Weise (siehe Post #2) das Feature testen. :mrgreen:

Gruß,
Sven

implementation 26. Apr 2011 11:02

AW: class und record helper in Free Pascal
 
Danke, werde ich nachher mal nach schauen :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:35 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 by Thomas Breitkreuz