Free Pascal

from Wikipedia, the free encyclopedia
Free Pascal

FPClogogif.gif
Screenshot
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:

Development environments

Lazarus -IDE v0.9.26.2

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.

Legend:
Older version; no longer supported
Older version; still supported
Current version
Current preliminary version
Future version
version publication platform Remarks
Older version; no longer supported: 0.2.0 June 26, 1994 MS-DOS
Older version; no longer supported: 0.6.2 unknown MS-DOS
Older version; no longer supported: 0.6.4 unknown MS-DOS New unit format, integrated assembler option, corrections and enhancements to the compiler and the RTL
Older version; no longer supported: 0.6.5 July 23, 1996 MS-DOS Corrections and enhancements to the compiler and the RTL
Older version; no longer supported: 0.9.0 2nd December 1996 MS-DOS
Older version; no longer supported: 0.9.1 April 2, 1997 MS-DOS
Older version; no longer supported: 0.99.5 unknown MS-DOS First beta released
Older version; no longer supported: 0.99.8 unknown MS-DOS, Windows Support of Win32 and first Delphi functions
Older version; no longer supported: 0.99.10 December 23, 1998 MS-DOS, Windows
Older version; no longer supported: 0.99.12 June 25, 1999 MS-DOS, Windows
Older version; no longer supported: 0.99.14 January 27, 2000 MS-DOS, Windows
Older version; no longer supported: 1.0 July 12, 2000 MS-DOS, Windows, OS / 2 First final version
Older version; no longer supported: 1.0.2 October 12, 2000 Windows, FreeBSD, OS / 2, MS-DOS First support for FreeBSD
Older version; no longer supported: 1.0.4 December 31, 2000 Windows, FreeBSD, OS / 2, MS-DOS Debug support for classes, range checking for Int64 and Cardinals, bug fixes.
Older version; no longer supported: 1.0.6 April 30, 2002 Windows, FreeBSD, OS / 2, MS-DOS
Older version; no longer supported: 1.0.10 July 11, 2003 Windows, FreeBSD, OS / 2, MS-DOS Mainly bug fixes, some extensions for Lazarus.
Older version; no longer supported: 1.9 November 5, 2003 Windows, FreeBSD, Linux, OS / 2, MS-DOS Support for Linux and PowerPC processors
Older version; no longer supported: 1.9.2 January 11, 2004 Windows, FreeBSD, Linux
Older version; no longer supported: 1.9.4 May 31, 2004 Windows, Mac OS X, Linux, FreeBSD, OS / 2, MS-DOS First version to support Mac OS X
Older version; no longer supported: 1.9.6 January 1, 2005 Windows, Mac OS X, Linux, FreeBSD, OS / 2, MS-DOS Support for ARM , SPARC and x64
Older version; no longer supported: 1.9.8 February 24, 2005 Windows, Mac OS X, Linux, FreeBSD, OS / 2, MS-DOS
Older version; no longer supported: 2.0 May 15, 2005 Windows, Mac OS X (Intel and PPC), Linux, FreeBSD, OS / 2, MS-DOS Extensive extensions and improvements
Older version; no longer supported: 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
Older version; no longer supported: 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
Older version; no longer supported: 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
Older version; no longer supported: 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
Older version; no longer supported: 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 ).
Older version; no longer supported: 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
Older version; no longer supported: 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.
Older version; no longer supported: 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
Older version; no longer supported: 2.4.4 May 22, 2011 Windows, Mac OS X (Intel and PPC), Linux Included in Lazarus 0.9.30.2RC1
Older version; no longer supported: 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
Older version; no longer supported: 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
Older version; still supported: 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
Older version; still supported: 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
Older version; still supported:3.0.0
(Pestering Peacock)
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.
Older version; still supported: 3.0.2 15th February 2017 Windows, macOS (Intel), BSD , Linux, AIX , Android etc. a. Bug fixes and updated packages
Older version; still supported: 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
Current version: 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:

The following operating systems are supported:

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

 Wikinews: Free Pascal  - in the news
Commons : Free Pascal  - collection of images, videos and audio files

Individual evidence

  1. www.freepascal.org .
  2. forum.lazarus.freepascal.org .
  3. The freepascal Open Source Project on Open Hub: Languages Page . In: Open Hub . (accessed on September 26, 2018).
  4. CodeTyphon About. Retrieved May 27, 2018 (UK English).
  5. Turbo / Borland Pascal Patches for CRT problems on fast PC's. Retrieved October 24, 2017 .
  6. ftp directory
  7. freepascal wiki: FPC JVM , accessed August 23, 2011
  8. PalmOS port