Free Pascal
Free Pascal
|
|
---|---|
Integrated development environment, IDE from Free Pascal 2.2.x |
|
Basic data
|
|
developer | Carl Eric Codère, Daniël Mantione, Florian Klämpfl and others |
Publishing year | 1997 |
Current version |
3.2.0 ( June 19, 2020 ) |
operating system | Unix , Linux , Windows , macOS , etc. a. |
programming language | Object Pascal , Pascal , assembly language |
category | Compiler |
License | GPL / LGPL |
German speaking | No |
freepascal.org |
Free Pascal or Free Pascal Compiler (abbreviated FPC) is a free compiler for the programming languages Pascal and Object Pascal .
properties
The Pascal compiler is characterized by the following properties:
- Available for numerous operating systems (e.g. Windows , Linux , Mac OS X / OS X / macOS , FreeBSD , Solaris , OS / 2 or eComStation , DOS , Game Boy Advance )
- available for various processor architectures (e.g. i386 , x64 , PowerPC , ARM , SPARC )
- compatible with other Pascal dialects (e.g. Turbo Pascal , Embarcadero Delphi , GNU Pascal )
- integrated assembler for the AT&T and the Intel syntax .
- optional output of the compilation in assembly language
Development environments
Various (also freely available) integrated development environments (IDE) are available for use:
- Lazarus is a free , Delphi-like IDE for Rapid Application Development (RAD). Lazarus, which is maintained by a large community, supports a variety of platforms and operating systems, including macOS , BSD , Solaris , Linux and Windows .
- CodeTyphon is a free , Delphi-like IDE for Rapid Application Development (RAD). CodeTyphon has multi-CPU, multi-OS and cross-build capabilities.
- A text mode IDE which is very similar to the Borland Turbo Pascal IDE (part of the FPC package).
- A command line version that can be combined very well with most editor programs (e.g. QEdit, Emacs ) (is part of the FPC package).
- Megido is an now abandoned attempt to develop an IDE for Free Pascal. The project was replaced by Lazarus.
- Open Sibyl is a Free Pascal-based development environment for OS / 2 and eCS.
- PascalGUI is a development environment that runs directly on Android -based devices.
- MSEide is an environment for developing lightweight programs with Free Pascal. The associated MSEgui is a class library that communicates directly with X11 on Linux and gdi32 on Windows via Xlib . It thus corresponds to the LCL and the widget sets from Lazarus.
- OmniPascal is a Free Pascal and Delphi plugin for Visual Studio Code . It enables advanced navigation in source code files, code completion and the integration of the compiler.
Language dialects
Free Pascal masters the Borland-Pascal dialects. In version 2.x, Free Pascal is almost Delphi -7 compatible. The ANSI / ISO Pascal dialects and Apple Pascal are also supported to a limited extent . There is also an OBJFPC mode that offers extensive Object Pascal extensions and numerous interfaces, e.g. B. to databases activated.
The different dialects can be selected both via command line switches and in the source text via $ MODE. The following settings are currently possible:
- Delphi - Delphi compatibility mode
- TP - Turbo Pascal compatibility mode (Object Pascal extensions are switched off)
- FPC - The default mode
- OBJFPC - FPC with Object Pascal extensions
- MACPAS - Compatibility mode for Pascal dialects under Mac OS Classic , such as Think Pascal, Metrowerks Pascal and MPW Pascal
Up to version 2.2 there was still the GNU Pascal compatibility mode GPC
.
Scope of delivery and installation
The FPC website has direct-install versions for most operating systems. The installations z. B. under Windows can be removed completely and easily at any time. There are u. a. the following components / extensions (a current overview can be found on the FPC website):
- FPC - the compiler itself
- RTL - The runtime library
- FCL - The Free Component Library (analogous to Delphi VCL)
- Textmode IDE
history
History of origin
Free Pascal arose out of the desire to be able to create 32-bit Pascal programs easily and portable. At that time, Borland concentrated its development entirely on Windows (later Delphi) and rejected the further development of the Borland Pascal compiler, which is still exemplary in terms of quality and speed, but was almost completely programmed in assembler (even simple errors such as the " Runtime Error 200 “- an overflow in a loop that should determine the speed of the hardware - was no longer eliminated). The student Florian Paul Klämpfl then developed his own 32-bit Pascal compiler. He initially called it FPK, after the initials of his name.
Program versions
In 1993 work began on Free Pascal. The first version was still written in Turbo Pascal exclusively for the DOS extender go32v1, which was, however, an enormous step forward, as data areas of up to 2 GB (e.g. fields for Fast Fourier analyzes or digital filters) are now extremely large could be easily managed. Soon Free Pascal was able to compile itself so that it became a 32-bit program. The developer community expanded rapidly and after a while Michaël Van Canneyt ported Free Pascal to Linux. The DOS porting has been adapted for OS / 2 so that it works together with the EMX Extender . A Win32 port was also carried out.
version | publication | platform | Remarks |
---|---|---|---|
0.2.0 | June 26, 1994 | MS-DOS | |
0.6.2 | unknown | MS-DOS | |
0.6.4 | unknown | MS-DOS | New unit format, integrated assembler option, corrections and enhancements to the compiler and the RTL |
0.6.5 | July 23, 1996 | MS-DOS | Corrections and enhancements to the compiler and the RTL |
0.9.0 | 2nd December 1996 | MS-DOS | |
0.9.1 | April 2, 1997 | MS-DOS | |
0.99.5 | unknown | MS-DOS | First beta released |
0.99.8 | unknown | MS-DOS, Windows | Support of Win32 and first Delphi functions |
0.99.10 | December 23, 1998 | MS-DOS, Windows | |
0.99.12 | June 25, 1999 | MS-DOS, Windows | |
0.99.14 | January 27, 2000 | MS-DOS, Windows | |
1.0 | July 12, 2000 | MS-DOS, Windows, OS / 2 | First final version |
1.0.2 | October 12, 2000 | Windows, FreeBSD, OS / 2, MS-DOS | First support for FreeBSD |
1.0.4 | December 31, 2000 | Windows, FreeBSD, OS / 2, MS-DOS | Debug support for classes, range checking for Int64 and Cardinals, bug fixes. |
1.0.6 | April 30, 2002 | Windows, FreeBSD, OS / 2, MS-DOS | |
1.0.10 | July 11, 2003 | Windows, FreeBSD, OS / 2, MS-DOS | Mainly bug fixes, some extensions for Lazarus. |
1.9 | November 5, 2003 | Windows, FreeBSD, Linux, OS / 2, MS-DOS | Support for Linux and PowerPC processors |
1.9.2 | January 11, 2004 | Windows, FreeBSD, Linux | |
1.9.4 | May 31, 2004 | Windows, Mac OS X, Linux, FreeBSD, OS / 2, MS-DOS | First version to support Mac OS X |
1.9.6 | January 1, 2005 | Windows, Mac OS X, Linux, FreeBSD, OS / 2, MS-DOS | Support for ARM , SPARC and x64 |
1.9.8 | February 24, 2005 | Windows, Mac OS X, Linux, FreeBSD, OS / 2, MS-DOS | |
2.0 | May 15, 2005 | Windows, Mac OS X (Intel and PPC), Linux, FreeBSD, OS / 2, MS-DOS | Extensive extensions and improvements |
2.0.1 | October 3, 2005 | Windows, Mac OS X (Intel and PPC), Linux, FreeBSD, OS / 2, MS-DOS | Included in Lazarus 0.9.10 |
2.0.2 | December 8, 2005 | Windows, Mac OS X (Intel and PPC), Linux, FreeBSD, OS / 2, MS-DOS | In particular, bug fixes included in Lazarus 0.9.16 |
2.0.4 | August 28, 2006 | Windows, Mac OS X (Intel and PPC), Linux, FreeBSD, OS / 2, MS-DOS | Included in Lazarus 0.9.22 |
2.2 | September 10, 2007 | Windows, Mac OS X (Intel and PPC), Linux, FreeBSD, OS / 2, MS-DOS, Windows CE , Game Boy Advance , Nintendo DS | Enhancements in language and infrastructure, Lazarus support improved, included in Lazarus 0.9.24 |
2.2.2 | August 11, 2008 | Windows, Mac OS X (Intel and PPC), Linux, FreeBSD, OS / 2, MS-DOS, Windows CE, Game Boy Advance, Nintendo DS | Extensions in language and infrastructure, included in Lazarus 0.9.26.2 (oldest version hosted on SourceForge ). |
2.2.4 | April 12, 2009 | Windows, Mac OS X (Intel and PPC), Linux, FreeBSD, OS / 2, MS-DOS, Windows CE, Game Boy Advance, Nintendo DS | Language and infrastructure enhancements included in Lazarus 0.9.28 |
2.4 | January 1, 2010 | Windows, Mac OS X (Intel and PPC), Linux, FreeBSD, iOS , OS / 2, MS-DOS, Windows CE, Game Boy Advance, Nintendo DS | Language extensions and bug fixes, support for multithreading and multi-core processors and packages. |
2.4.2 | November 12, 2010 | Windows, Mac OS X (Intel and PPC), Linux, FreeBSD, Solaris, iOS, OS / 2, MS-DOS, Windows CE, Game Boy Advance, Nintendo DS | Included in Lazarus 0.9.30, support for FreeBSD on x86-64 and Solaris |
2.4.4 | May 22, 2011 | Windows, Mac OS X (Intel and PPC), Linux | Included in Lazarus 0.9.30.2RC1 |
2.6.0 | January 1, 2012 | Windows, Mac OS X (Intel and PPC), Linux | Support for Objective Pascal, included in Lazarus 0.9.30.4RC1 and Lazarus 1.0 |
2.6.2 | February 23, 2013 | Windows, Mac OS X (Intel and PPC), Linux | Improvement of the compiler for ARM architecture, expansions of packages and platform support |
2.6.4 | March 11, 2014 | Windows, Mac OS X (Intel and PPC), Linux | Bug fixes, web and json packages synchronized, chm - cmd compiler improved |
3.0.0-rc2 | October 21, 2015 | Windows, Mac OS X (Linux and PPC), Linux, Android etc. a. | Release candidate RC2 of the new development branch 3.0 |
(Pestering Peacock) |
3.0.0 November 25, 2015 | Windows, OS / 2 , Mac OS X (Intel and PPC), BSD , Linux, AIX , Android etc. a. | Several new functions, including a. 16-, 32- and 64-bit compatibility, type helper, namespace hierarchy for units and constructors for classes, dynamic arrays and records. |
3.0.2 | 15th February 2017 | Windows, macOS (Intel), BSD , Linux, AIX , Android etc. a. | Bug fixes and updated packages |
3.0.4 | November 28, 2017 | Windows, macOS (Intel), BSD , Linux, AIX , Android etc. a. | Bug fixes and updated packages, e.g. T. had high priority |
3.2.0 | 19th June 2020 | Windows, macOS (Intel), BSD , Linux, AIX , Android etc. a. | Introduction of standard namespaces , generic routines , managed records and extended functions for dynamic arrays . In addition, bug fixes, provision of new standard units and support for additional platforms. |
In general, published versions are labeled with even version numbers. As with Lazarus, uneven version numbers stand for test and development versions as well as snapshots. Therefore, the names of the published versions advance in steps of two.
Version 1.0 appeared in July 2000. This version was almost Turbo-Pascal ‑ 7 / Delphi ‑ 2 compatibility. In the following years, Free Pascal was ported to numerous other platforms and architectures, including a. on PowerPC , SPARC and ARM . Version 1.9.4 also supported Mac OS X for the first time .
Version 2.0.0 was finally released in May 2005 after a long period of further development.
Version 2.2 was released in September 2007 and now supports Windows CE , Game Boy Advance and Nintendo DS as platforms.
Version 2.4 was completed on January 1, 2010 and now supports 64-bit Mac OS-X, iPhone OS and Haiku .
Since August 2011, Free Pascal has been able to generate byte code for the Java Virtual Machine .
In January 2012 the version 2.6 was published, which u. a. implemented the Objective Pascal dialect. Objective Pascal is a Pascal interface to the programming language Objective-C, which is primarily used under OS X and iOS .
Platforms
In version 2.0.4, Free Pascal supports the following architectures:
- IA-32 ( Intel 80386 and compatibles)
- PowerPC
- PowerPC64
- ARM (Zaurus)
- SPARC v8 and v9
- x64 (amd64, x86_64)
The following operating systems are supported:
- AmigaOS , MorphOS , AROS
- Linux (all CPUs)
- FreeBSD
- macOS and Darwin (PowerPC and Intel)
- DOS (Go32V2 extender)
- OS / 2 (EMX and native)
- Novell NetWare
- ZETA / Haiku
- Windows
- Microsoft Windows CE
- Game Boy Advance
- Nintendo DS
In development:
literature
- Michaël Van Canneyt: Free Pascal 2 - Manual and Reference , Computers & Literature, 2nd edition 2012, ISBN 978-3-936546-53-8
Web links
- freepascal.org
- lazarus-ide.org
- Free Pascal Wiki
- Information about Lazarus with Firebird
- Online compiler
Individual evidence
- ↑ www.freepascal.org .
- ↑ forum.lazarus.freepascal.org .
- ↑ The freepascal Open Source Project on Open Hub: Languages Page . In: Open Hub . (accessed on September 26, 2018).
- ↑ CodeTyphon About. Retrieved May 27, 2018 (UK English).
- ↑ Turbo / Borland Pascal Patches for CRT problems on fast PC's. Retrieved October 24, 2017 .
- ↑ ftp directory
- ↑ freepascal wiki: FPC JVM , accessed August 23, 2011
- ↑ PalmOS port