Free Pascal entstand aus dem Wunsch heraus, 32-Bit-Pascal-Programme einfach und portierbar erstellen zu können. Damals konzentrierte Borland seine Entwicklung ganz auf Windows (das spätere Delphi) und lehnte die Weiterentwicklung des bis heute an Qualität und Geschwindigkeit immer noch vorbildlichen, aber fast komplett in Assembler programmierten Borland-Pascal-Compilers ab (selbst einfache Fehler wie der seit BP7 auftretende „Runtime Error 200“ – ein Überlauf in einer Schleife, welche die Geschwindigkeit der Hardware bestimmen sollte – wurden nicht mehr beseitigt).[3] Der Student Florian Paul Klämpfl entwickelte daraufhin einen eigenen 32-Bit-Pascal-Compiler. Er nannte ihn zunächst FPK, nach den Initialen seines Namens.
Eigenschaften
Der Pascal-Compiler zeichnet sich durch folgende Eigenschaften aus:
Free Pascal beherrscht die Borland-Pascal-Dialekte. In der Version 2.x ist Free Pascal nahezu Delphi-7-kompatibel. Begrenzt unterstützt werden außerdem die ANSI/ISO-Pascal-Dialekte und Apple Pascal. Außerdem existiert ein OBJFPC-Modus, der umfangreiche Objekt-Pascal-Erweiterungen und zahlreiche Schnittstellen z. B. zu Datenbanken aktiviert.
Die verschiedenen Dialekte können sowohl über Kommandozeilenschalter als auch im Quelltext durch $MODE ausgewählt werden. Derzeit sind folgende Einstellungen möglich:
Delphi – Delphi-Kompatibilitätsmodus
TP – Turbo-Pascal-Kompatibilitätsmodus (Object-Pascal-Erweiterungen werden abgeschaltet)
FPC – Der Vorgabemodus
OBJFPC – FPC mit Object-Pascal-Erweiterungen
MACPAS – Kompatibilitätsmodus für Pascaldialekte unter klassischem Mac OS, wie Think Pascal, Metrowerks Pascal und MPW Pascal
Bis zur Version 2.2 gab es noch den GNU-Pascal-Kompatibilitätsmodus GPC.
Plattformen
In der Version 2.0.4 unterstützt Free Pascal folgende Architekturen:
Lazarus ist eine freie, Delphi-ähnliche IDE für Rapid Application Development (RAD). Lazarus, das von einer großen Community gepflegt wird, unterstützt eine Vielzahl an Plattformen und Betriebssystemen, unter anderem macOS, BSD, Solaris, Linux und Windows.
CodeTyphon ist eine freie, Delphi-ähnliche IDE für Rapid Application Development (RAD). CodeTyphon hat Multi-CPU-, Multi-OS- und Cross-Build-Fähigkeiten.[5]
Eine Textmodus-IDE, die der Borland-Turbo-Pascal-IDE sehr ähnlich ist (ist Teil des FPC-Paketes).
Eine Kommandozeilenversion, die sich mit den meisten Editorprogrammen (z. B. QEdit, Emacs) sehr gut kombinieren lässt (ist Teil des FPC-Paketes).
Open Sibyl ist eine Free Pascal-basierte Entwicklungsumgebung für OS/2 und eCS.
PascalGUI ist eine Entwicklungsumgebung, die direkt auf Android-basierten Geräten läuft.
MSEide ist eine Umgebung für die Entwicklung leichtgewichtiger Programme mit Free Pascal. Die dazugehörige MSEgui ist eine Klassenbibliothek, die über Xlib direkt mit X11 auf Linux und gdi32 unter Windows kommuniziert. Sie entspricht damit der LCL und den Widgetsets von Lazarus.
OmniPascal ist ein Free Pascal und Delphi Plugin für Visual Studio Code. Es ermöglicht erweiterte Navigation in Quelltext-Dateien, Codevervollständigung sowie die Integration des Compilers.
Programmversionen
1993 begannen Arbeiten an Free Pascal. Die erste Version war noch in Turbo Pascal ausschließlich für den DOS-Extender go32v1 geschrieben, was jedoch bereits ein enormer Fortschritt war, da jetzt bis zu 2 GB große Datenbereiche (z. B. Felder für Fast-Fourier-Analysen oder digitale Filter) äußerst einfach verwaltet werden konnten. Bald konnte Free Pascal sich selbst kompilieren, so dass es zu einem 32-Bit-Programm wurde. Die Entwicklergemeinde erweiterte sich rasch und nach einiger Zeit portierte Michaël Van Canneyt Free Pascal auf Linux. Für OS/2 wurde die DOS-Portierung angepasst, sodass sie mit dem EMX-Extender zusammenarbeitet. Auch eine Win32-Portierung wurde durchgeführt.
Windows, Mac OS X (Intel und PPC), Linux, FreeBSD, Solaris, iOS, OS/2, MS-DOS, Windows CE, Game Boy Advance, Nintendo DS
Enthalten in Lazarus 0.9.30, Unterstützung für FreeBSD auf x86-64 und Solaris
Ältere Version; nicht mehr unterstützt: 2.4.4
22. Mai 2011
Windows, Mac OS X (Intel und PPC), Linux
Enthalten in Lazarus 0.9.30.2RC1
Ältere Version; nicht mehr unterstützt: 2.6.0
1. Januar 2012
Windows, Mac OS X (Intel und PPC), Linux
Unterstützung für Objective Pascal, Enthalten in Lazarus 0.9.30.4RC1 und Lazarus 1.0
Ältere Version; nicht mehr unterstützt: 2.6.2
23. Februar 2013
Windows, Mac OS X (Intel und PPC), Linux
Verbesserung des Compilers für ARM-Architektur, Erweiterungen von Paketen und Plattformsupport
Ältere Version; nicht mehr unterstützt: 2.6.4
11. März 2014
Windows, Mac OS X (Intel und PPC), Linux
Fehlerkorrekturen, web- und json-Pakete synchronisiert, chm-cmd-Compiler verbessert
Ältere Version; nicht mehr unterstützt: 3.0.0-rc2
21. Oktober 2015
Windows, Mac OS X (Linux und PPC), Linux, Android u. a.
Release Kandidat RC2 des neuen Entwicklungszweiges 3.0
Ältere Version; nicht mehr unterstützt: 3.0.0 (Pestering Peacock)
25. November 2015
Windows, OS/2, Mac OS X (Intel und PPC), BSD, Linux, AIX, Android u. a.[6]
Etliche neue Funktionen, u. a. 16-, 32- und 64-Bit-Kompatibilität, Type Helper, Namensraumhierarchie für Units und Konstruktoren für Klassen, dynamische Arrays und Records.
Ältere Version; nicht mehr unterstützt: 3.0.2
15. Februar 2017
Windows, macOS (Intel), BSD, Linux, AIX, Android u. a.
Fehlerbehebungen und aktualisierte Pakete
Ältere Version; nicht mehr unterstützt: 3.0.4
28. November 2017
Windows, macOS (Intel), BSD, Linux, AIX, Android u. a.
Fehlerbehebungen und aktualisierte Pakete, die z. T. hohe Priorität hatten
Ältere Version; noch unterstützt: 3.2.0
19. Juni 2020
Windows, macOS (Intel), BSD, Linux, AIX, Android u. a.
Einführung u. a. von Standard-Namensräumen, generischen Routinen, verwalteten Records und erweiterten Funktionen für dynamische Arrays. Außerdem Fehlerbehebungen, Bereitstellung neuer Standard-Units und Unterstützung für zusätzliche Plattformen.
Aktuelle Version:3.2.2
20. Mai 2021
Windows, macOS (Intel+AArch64), BSD, Linux, AIX, Android u. a.
Offizielle Unterstützung für den Apple M1 SoC und Implementierung zur Benennung von Threads. Außerdem Fehlerbehebungen und Bereitstellung neuer bzw. aktualisierter Standard-Units.
Im Allgemeinen sind veröffentlichte Versionen mit geraden Versionsnummern bezeichnet. Wie bei Lazarus stehen ungerade Versionsnummern für Test- und Entwicklungsversionen sowie Snapshots. Daher schreiten die Bezeichnungen der publizierten Versionen in Zweierschritten voran.
Version 1.0 erschien im Juli 2000. Diese Version hatte schon nahezu Turbo-Pascal‑7/Delphi‑2-Kompatibilität. In der Folgezeit wurde Free Pascal noch auf zahlreiche andere Plattformen und Architekturen portiert, u. a. auf PowerPC, SPARC und ARM. Version 1.9.4 unterstützte erstmals auch Mac OS X.
Version 2.0.0 wurde nach langer Weiterentwicklung schließlich im Mai 2005 veröffentlicht.
Im Januar 2012 wurde die Version 2.6 veröffentlicht, die u. a. den Objective-Pascal-Dialekt implementiert. Objective Pascal ist eine Pascal-Schnittstelle zur unter OS X und iOS vorrangig eingesetzten Programmiersprache Objective-C.
Lieferumfang und Installation
Auf der FPC-Website befinden sich direkt installierbare Versionen für die meisten Betriebssysteme. Die Installationen z. B. unter Windows lassen sich jederzeit problemlos und vollständig wieder entfernen. Es existieren u. a. folgende Komponenten/Erweiterungen (ein aktueller Überblick findet sich auf der FPC-Website):