Hinweise für den zukünftigen FPC 2.4.0

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Hinweise für den zukünftigen FPC 2.4.0

Beitrag von monta »

Mal ein paar Hinweise, die den zukünftigen FPC 2.4.0 betreffen. (Oder genauer den seit drei Tagen vorhandenen FPC 2.4.0 RC1) Vielleicht stolpert auch jemand anderes darüber. Und es kann ja auch nicht schaden, schonmal einige Änderungen am Code vorzunehmen, damit das dann auch schön auf der "offiziellen" 2.4.0 läuft ;)

Lazarus aus dem SVN kompiliert bestens.

Bei einigen Packages gibt es allerdings Probleme:
Package ZEOS (6.6.5)
Damit Zeos mit dem neuen FPC kompiliert, muss folgende Änderung gemacht werden:

Datei: Zeos.inc
Einfügen:

Code: Alles auswählen

{$IFDEF VER2_4}
    {$DEFINE FPC2_3UP}
    {$DEFINE FPC2_2UP}
    {$DEFINE FPC2_1UP}
  {$ENDIF}

Package lnet (6.2)
Es gibt eine Überschneidung der Unitnamen. Der FPC beinhaltet ebefalls eine Datei fastcgi.pp enthält. Außerdem gibt es wohl weitere Probleme, so das diese Version nicht mit FPC 2.4 kompiliert.

Abhilfe: Aktuelle Version aus dem SVN verwenden:
http://svn.freepascal.org/svn/fpcprojects/lnet" onclick="window.open(this.href);return false;
Sonstige Umstellungen:

Es funktioniert nichtmehr, wenn Variablen und Methoden in einem Sichtbarkeitsabschnitt stehen. Dies führt zu folgender Fehlermeldung:

Code: Alles auswählen

unit1.pas(19,5) Error: Fields cannot appear after a method or property definition, start a new visibility section first
Es müssen also ggf. zweimal die selben Sichtbarkeitsbereiche angelegt werden.

BISHER möglich:

Code: Alles auswählen

TForm1 = class(TForm)
    Button1: TButton;
  private
    function ThisIsAFunction: boolean;
    ThisIsAVar: boolean;
  end;
SEIT 2.4.0:

Code: Alles auswählen

TForm1 = class(TForm)
    Button1: TButton;
  private //<<<<
    function ThisIsAFunction: boolean;
  private //<<<<
    ThisIsAVar: boolean;
  end;
oder

Code: Alles auswählen

TForm1 = class(TForm)
    Button1: TButton;
  private
    ThisIsAVar: boolean; //<<<<
    function ThisIsAFunction: boolean;
  end;

Weitere Änderungen:
http://wiki.freepascal.org/User_Changes_2.4.0" onclick="window.open(this.href);return false;
Johannes

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Hinweise für den zukünftigen FPC 2.4.0

Beitrag von mschnell »

monta hat geschrieben: SEIT 2.4.0:

Code: Alles auswählen

TForm1 = class(TForm)
    Button1: TButton;
  private //<<<<
    function ThisIsAFunction: boolean;
  private //<<<<
    ThisIsAVar: boolean;
  end;
Das sollte doch auch gehen (wie in Delphi)

Code: Alles auswählen

TForm1 = class(TForm)
    Button1: TButton;
  private
    ThisIsAVar: boolean;
    function ThisIsAFunction: boolean;
  end;
-Michael

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Re: Hinweise für den zukünftigen FPC 2.4.0

Beitrag von Targion »

Ja, tut es.

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: Hinweise für den zukünftigen FPC 2.4.0

Beitrag von monta »

ok, geändert ;)

Obwohl ich nicht wirklich einen Unterschied sehe, ob es oben oder unten steht. Wieso soll das eine den jetzt gehen und das andere seit neustem nicht mehr, gibt es dafür eine einfache Begründung?
Zumindest werden wohl einige in diesen Fehler laufen würde ich mal vermuten...mal sehen, wann dazu das erste Thema auftaucht.
Johannes

Kuster Peter
Beiträge: 205
Registriert: So 2. Dez 2007, 20:47
OS, Lazarus, FPC: Windows XP Lazarus immer neueste Version
CPU-Target: xxBit
Wohnort: Schweiz

Re: Hinweise für den zukünftigen FPC 2.4.0

Beitrag von Kuster Peter »

Hey danke für den Zeos Hinweis. Das spart mir viel Zeit und Aerger!

Peter

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Hinweise für den zukünftigen FPC 2.4.0

Beitrag von mse »

monta hat geschrieben:Wieso soll das eine den jetzt gehen und das andere seit neustem nicht mehr, gibt es dafür eine einfache Begründung?
Delphi Kompatibilität, dort geht es auch nicht. ;-)

Martin

marcov
Beiträge: 1102
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Hinweise für den zukünftigen FPC 2.4.0

Beitrag von marcov »

mse hat geschrieben:
monta hat geschrieben:Wieso soll das eine den jetzt gehen und das andere seit neustem nicht mehr, gibt es dafür eine einfache Begründung?
Delphi Kompatibilität, dort geht es auch nicht. ;-)
Delphi Kompabilitaet im bezirk RTTI glaube ich. In Delphi sind method immer letzt oder so.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Hinweise für den zukünftigen FPC 2.4.0

Beitrag von mschnell »

monta hat geschrieben:ok, geändert ;)Wieso soll das eine den jetzt gehen und das andere seit neustem nicht mehr, gibt es dafür eine einfache Begründung?
Steht auf der von Dir angegebenen Web-Seite. Wenn eine property mit "; default" gekennzeichnet ist, weiß der Compiler nicht ob da nicht als nächstes eine Variable mit Namen "default" definiert werden soll.

-Michael

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: Hinweise für den zukünftigen FPC 2.4.0

Beitrag von monta »

:?: aber default ist doch ohnehin Schlüsselwort und somit eigentlich nicht für Variablen gedacht.
Johannes

_X_
Beiträge: 250
Registriert: Di 16. Dez 2008, 20:13
OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
CPU-Target: 32/64Bit

Re: Hinweise für den zukünftigen FPC 2.4.0

Beitrag von _X_ »

Für was ist eigentlich die Eigenschaft "only"?
Ich hab die neulich mal wo entdeckt.
Ich frag bloß, weil die vom Highlighter hervorgehoben wird.

mfg _X_

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Hinweise für den zukünftigen FPC 2.4.0

Beitrag von mschnell »

monta hat geschrieben::?: aber default ist doch ohnehin Schlüsselwort und somit eigentlich nicht für Variablen gedacht.
Nicht gedacht aber durchaus erlaubt (im Gegensatz zu "do", "in", "of", "case"...).

-Michael

marcov
Beiträge: 1102
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Hinweise für den zukünftigen FPC 2.4.0

Beitrag von marcov »

mschnell hat geschrieben:
monta hat geschrieben::?: aber default ist doch ohnehin Schlüsselwort und somit eigentlich nicht für Variablen gedacht.
Nicht gedacht aber durchaus erlaubt (im Gegensatz zu "do", "in", "of", "case"...).
Ja, directives sind kein keywords.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Hinweise für den zukünftigen FPC 2.4.0

Beitrag von pluto »

aber default ist doch ohnehin Schlüsselwort und somit eigentlich nicht für Variablen gedacht.
Wird allerdings nur von der RTTI verwendet, also nicht zur Belegung. Außerdem ist es Kontext Abhängig, z.b. kann es in case verwendet werden.
MFG
Michael Springwald

Antworten