AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen FreePascal FreePascal Generics in FPC 2.6: Compiler bricht einfach ab
Thema durchsuchen
Ansicht
Themen-Optionen

Generics in FPC 2.6: Compiler bricht einfach ab

Ein Thema von Memnarch · begonnen am 23. Feb 2013 · letzter Beitrag vom 23. Feb 2013
Antwort Antwort
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#1

Generics in FPC 2.6: Compiler bricht einfach ab

  Alt 23. Feb 2013, 00:07
Nabend,
Hatte überlegt im weiteren verlauf der Entwicklung meines D16Pascal-SDKs zumindest den Compiler crossplattform als commandozeilentool zur verfügung zu stellen.

Dafür dachte ich an FreePascal. Und weil ich jede menge Generics(Meist TObjectList<T>) benutze, wollte ich dem ganzen hier gleich mal auf den Zahn fühlen. Und da stellt sich der Compiler gerade als ser ungesprächig raus und rennt einfach heulend weg

Folgender Source:

Delphi-Quellcode:
unit GenericTest;

{$MODE DELPHI}

interface

uses
  Classes, SysUtils;

type

  { TFoo }

  TFoo<_T> = class
  private

  public
    procedure Test();
  end;



implementation



{ TFoo<_T> }

procedure TFoo<_T>.Test;
begin

end;

end.
Delphi-Quellcode:
unit Main;

{$MODE DELPHI}
{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

uses
  GenericTest;

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var
  LVar: TFoo<TObject>;
begin

end;

end.
Da bekomme ich nur "Main.pas(1,1): Compilation Aborted"

Nehme ich die methode Test aus TFoo wieder raus compilierts. Das verstehe ich gerade nicht o.O
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Generics in FPC 2.6: Compiler bricht einfach ab

  Alt 23. Feb 2013, 01:05
Vielleicht hilft es wenn Du die () hinter dem Prozedurnamen entfernst?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#3

AW: Generics in FPC 2.6: Compiler bricht einfach ab

  Alt 23. Feb 2013, 01:22
Nein, bringt nichts
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Generics in FPC 2.6: Compiler bricht einfach ab

  Alt 23. Feb 2013, 05:28
Hallo,

fehltba nicht das generic vor dem TFoo ?


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Generics in FPC 2.6: Compiler bricht einfach ab

  Alt 23. Feb 2013, 10:06
Dafür dachte ich an FreePascal. Und weil ich jede menge Generics(Meist TObjectList<T>) benutze, wollte ich dem ganzen hier gleich mal auf den Zahn fühlen. Und da stellt sich der Compiler gerade als ser ungesprächig raus und rennt einfach heulend weg
Die FPC 2.6.x Serie hat noch ziemliche Probleme mit Delphi kompatiblen Generics. Du hast da zwei Möglichkeiten das zu lösen: entweder auf 2.7.1 gehen, in dem ich sehr viele Verbesserungen hinsichtlich Generics eingepflegt habe (es ist aber immer noch nicht perfekt, wie man auch sehen kann, wenn man im Bugtracker nach Bugs mit Tag generics sucht) oder du verwendest die FPC Syntax Variante, welche allerdings nur im Mode ObjFPC verfügbar ist und ein wenig anders zu verwenden ist, als die Delphi Variante (keine Inline Spezialisierungen zum Beispiel).
Was in beiden Fällen auf jeden Fall noch nicht geht sind generische Methoden. Die stehen in den nächsten Wochen auf meiner Liste

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Generics in FPC 2.6: Compiler bricht einfach ab

  Alt 23. Feb 2013, 12:32
Delphi-Quellcode:
unit GenericTest;

{$MODE OBJFPC}

interface

uses
  Classes, SysUtils;

type

  { TFoo }

  generic TFoo<_T> = class
  private

  public
    procedure Test();
  end;



implementation



{ TFoo<_T> }

procedure TFoo.Test;
begin

end;

end.
Delphi-Quellcode:
unit Main;

{$MODE OBJFPC}
{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

uses
  GenericTest;

type
  TObjectFoo = specialize TFoo<TObject>;

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var
  LVar: TObjectFoo;
begin

end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#7

AW: Generics in FPC 2.6: Compiler bricht einfach ab

  Alt 23. Feb 2013, 20:48
Ah danke James. Muss 2.71 selbst compiliert wrden oder gibt es davon auch schon binaries?

EDIT: ah ok. Trunk-Snapshot zum selber backen schon gefunden^^
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden

Geändert von Memnarch (23. Feb 2013 um 20:51 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz