Free Pascal Compiler.
A free multiplatform 32-bit TP/BP/Delphi highly compatible Pascal compiler (OS/2, Linux, FreeBSD, GO32v2 and Win32 available).
Program is distributed as ZIP package: download to temporary directory and unpack to destination folder. See below for download link(s).
Following ones are the download links for manual installation:
Free Pascal v. 3.2.2 (21/5/2021) | Readme/What's new |
Free Pascal Compiler
Version 2.2.2
****************************************************************************
* Introduction
****************************************************************************
Please also read the platform specific README file, if it exists.
This package contains an advanced freeware 32-bit/64-bit pascal compiler for
several platforms. The language and the runtime library are almost
compatible with Turbo Pascal 7.0 and recent Delphi releases. There is also
partial support for the Macintosh pascal dialect.
Free Pascal 2.2.2 is currently available for the following platforms:
- Linux-i386
- Linux-x86_64 (amd64)
- Linux-powerpc
- Linux-sparc
- Linux-arm
- Win32-i386 (Win95/98/Me/XP/2000/2003/Vista and WinNT)
- Win64-x86_64 (XP/Vista/2003)
- Wince-arm (cross compiled from win32-i386)
- FreeBSD-i386
- Mac OS X/Darwin for PowerPC
- Mac OS X/Darwin for Intel (i386)
- GO32v2-i386
- OS/2-i386 (OS/2 Warp v3.0, 4.0, WarpServer for e-Business and eComStation)
The following platforms were not release-ready at the moment of the release
but they might follow later:
- Netware-i386
- NetwLibc-i386 (LibC is preferred API under newer Netware versions)
There are other platforms (like other BSD variants) which are more or less
working, but there is currently no maintainer for them and thus we cannot
provide adequate support. If you want to change this and create and
maintain versions for other platforms and targets, feel free to contact us,
e-mail addresses are listed below.
****************************************************************************
* Features
****************************************************************************
- high speed compiler
- fully 32 or 64-bit code
- 32 bit compiler can be on x86_64 Linux distributions to compile 32 bit
applications
- language features:
- almost fully compatible with Borland Pascal and Borland Delphi
- ansi strings
- wide strings
- exception support
- RTTI support
- procedure overloading
- generics (experimental)
- operator overloading
- COM, CORBA and raw interfaces support
- dynamic array support
- variant support
- inlining
- code optimizer:
- peephole optimizer (80x86 only)
- jump optimizer
- loading of variables into registers
- assembler level dataflow analyzer (80x86 only)
- stack frame eliminations
- sophisticated register allocator
- integrated BASM (built-in assembler) parser
- supports ATT syntax used by GNU C
- supports Intel syntax used by Turbo Pascal (80x86-only)
- can compile code into assembler source code for these assemblers:
- GNU Assembler (GAS)
- Netwide assembler (Nasm)
- Microsoft Assembler/Turbo Assembler (Masm/Tasm)
- Watcom assembler (wasm)
- internal assembler for ultra fast object file generation
- can call external C code
- h2pas utility to convert .h files to Pascal units
- smartlinking (not yet supported under Mac OS X)
- support for the GNU debugger
- integrated development environment (disabled by default on Mac OS X)
- powerfull user friendly Wordstar compatible multi file editor
- context sensitive help supports help files in HTML, Windows HLP and
Borland TPH format.
- debugger on most platforms
- can create binaries running natively under both DOS and OS/2 (EMX version)
- no need for Linux distribution specific binaries, programs you write run
on all distributions
- high quality documentation
****************************************************************************
* Minimum requirements
****************************************************************************
i386, x86_64, PowerPC or Sparc processor
Win32:
- Win95/98/Me/2000/2003/XP/Vista or WinNT
- 16 MB RAM
OS/2:
- OS/2 Warp v3.0 with one of late fixpaks - FP 35 should be fine,
OS/2 Warp v4.0 with FP 5 and above, WSeB, MCP or any eComStation version
(OS/2 2.0/2.1 currently not supported, not even for compiled programs)
Linux:
- system running a 2.2.x kernel
FreeBSD:
- FreeBSD 4.x system or 5.x system that has COMPAT_4 system (which is
default)
Mac OS X:
- Mac OS X 10.2 and higher
Mac OS (classic)
- Mac OS 9.2 has been tested, should probably also work from 7.5.3 and up.
****************************************************************************
* Quick start - Win32
****************************************************************************
Download the distribution package (fpc-2.2.2.i386-win32.exe) and run it
- it is a self-extracting installer, so just follow the instructions
to install it. Don't forget to set the PATH environment variable if you
install FPC under Win95/98/ME (the installer should do it automatically
under WinNT/2k/XP).
To test the compiler, change to the demo\texts directory of the FPC tree
and type
fpc hello
hello
****************************************************************************
* Quick start - DOS
****************************************************************************
Download distribution archive (dos222.zip for GO32v2) and unzip it into
a temporary directory.
Start the install program INSTALL.EXE and follow the instructions.
Don't forget to set PATH as mentioned by the install program. If running
under plain DOS, this can be done by opening file named AUTOEXEC.BAT located
in the root directory of your boot drive (usually C:\) with a plain text
editor (like EDIT.COM), extending the line starting with "set PATH=" (case
insensitive) with path to newly installed binaries (installation root as
selected in the installation program appended with "\BIN\GO32v2") and save
it.
To test the compiler, change to the demo\texts directory of the FPC tree
and type
fpc hello
hello
****************************************************************************
* Quick start - OS/2 / eComStation
****************************************************************************
Download distribution archive (os2222.zip for OS/2 or eComStation) and unzip
it into a temporary directory.
Start the install program INSTALL.EXE and follow the instructions.
Don't forget to set PATH and LIBPATH as mentioned by the install program.
This can be done by opening file named CONFIG.SYS located in the root
directory of your boot drive (e.g. C:\) with a plain text editor (e.g.
E.EXE), extending the lines starting with "set PATH=" and "LIBPATH=" (both
are case insensitive) with path to newly installed binaries (installation
root as selected in the installation program appended with "\BIN\OS2") and
save it again as a plain text file. Note that changes to LIBPATH require
restart of your machine in order to come into effect.
To test the compiler, change to the demo\texts directory of the FPC tree
and type
fpc hello
hello
Note that due to a bug, programs based on FreeVision (and potentially some
other programs using unit Video) compiled for OS/2 target keep crashing
with a fault protection. This unfortunately includes our text mode IDE,
that's why it has been excluded from the release. An updated OS/2 release
will be published as soon as the problem gets resolved. I'm sorry for any
incovenience this would cause.
****************************************************************************
* Quick start - Linux/FreeBSD
****************************************************************************
Download fpc-2.2.2.<cpu>-<os>.tar and untar into a temporary directory.
Start the install script with ./install.sh and follow the instructions.
To test the compiler, change to the demo/texts directory of the FPC tree
and type
fpc hello
hello
****************************************************************************
* Quick start - Mac OS X/Darwin
****************************************************************************
There are two methods to install Free Pascal for Mac OS X.
1) Download and install the Mac OS X package (fpc-2.2.2.powerpc-macosx.dmg)
This gives you the Free Pascal Compiler and the Xcode integration kit.
2) Install fpc using fink
This gives you the Free Pascal Compiler, including all libraries, packages
and units from its sources, including Free Vision and the IDE, which partly
works using X11 xterm.
With method 1 follow the instructions to install the XCode integration kit
at:
http://www.freepascal.org/xcode.html
Method 2 is mainly meant for using the compiler through the command
line. Fink takes care of setting the PATH variable. You can (under
Mac OS X 10.2.x or earlier you actually have to) also use the command line
with Free Pascal installed using method 1. The main point is to change your
PATH as described below:
The compiler is called "fpc" and will be installed in /usr/local/bin. This
directory may not be in your PATH yet (if you type "fpc" in a Terminal
window and you get something like "fpc: command not found", then it isn't).
If the installation directory is not yet in your PATH, you will have to add
it. To get an idea, how to do this, follow the instructions at:
"http://fink.sourceforge.net/doc/users-guide/install.php#setup"
to determine which file you have to edit, but instead of adding the line
suggested there, add the following at the end:
- if your shell is the Bourne shell (bash):
export PATH=/usr/local/bin:$PATH
When using Terminal.app add this to ".bash_profile",
when using the X11 xterm add this to ".bashrc".
If these files do not exist yet in your home directory, you have to create
them, for example with nano (or any other text editor):
nano .bash_profile
- if your shell is the C Shell (csh or tcsh):
setenv PATH /usr/local/bin:${PATH}
Next, close the Terminal window and open a new one. Now, the PATH should
be set correctly. After installing the package, you can write your
source code in your favorite editor (including Project Builder and XCode).
To compile something, go to the directory containing your source files in
Terminal and type:
fpc name_of_your_source_file
The compiler only accepts one file name as argument, but will automatically
search for and compile any units used by the specified source file. Run
"fpc" without any arguments to get an overview of the possible command line
options.
****************************************************************************
* Documentation
****************************************************************************
The documentation is available as HTML pages, PDF, PS, and text although the
recommended format is pdf. These are all available on
ftp://ftp.freepascal.org/fpc/dist/docs-2.2.2
NB that there is at present no FPC specific documentation for the platform
specific API (like Win32 system functions, etc.). There is a note in the ftp
/doc explaining where MS help file documenting Win32 API can be obtained,
other platforms (especially Unix-based ones) often come with this
documentation included in system installation.
****************************************************************************
* Suggestions, Help, Bug reporting, snapshots, ...
****************************************************************************
Suggestions, Help ...
---------------------
e-mail: fpc-devel@lists.freepascal.org (bugs, developer related questions)
e-mail: fpc-pascal@lists.freepascal.org (general pascal related questions)
Both these adresses are for mailing lists. If you're not subscribed,
be sure to mention this fact when sending questions to these lists,
so that people sending answers know about it and send you a copy.
Information about available lists and subscription can be found
on http://lists.freepascal.org/mailman/listinfo
Web forum: http://community.freepascal.org:10000 (all questions)
WWW: http://www.freepascal.org
FTP: ftp://ftp.freepascal.org/fpc
(several mirrors exist, see website for links)
Additional information about mailing lists, news, future plans etc.
can be found on the web site.
SNAPSHOTS & SOURCES
-------------------
One of the features of FPC is the snapshots. These are made daily or weekly
from the developers' latest versions of the source. Snapshots are available
for GO32v2, Win32, OS/2 and Linux versions. The latest snapshots are in:
ftp://ftp.freepascal.org/fpc/snapshot/ in appropriately named .zip/tar
files.
You will also normally find in the snapshot archive file a readme, with
a note about the latest included changes. It is quite common, though it
doesn't always happen, that when a bug is reported it is fixed and a fixed
version can be obtained the NEXT day in the appropriate snapshot.... yes
really!
Also on the ftp site you'll find a /dist directory, with the latest
distributed releases, a /docs directory, and a /source directory, in
which every night at about 0100 GMT the latest source generated by the
developers during the day & evening before is exported from SVN
into ZIP file fpc.zip.
Making your own snapshots
-------------------------
By downloading the /source files (makefiles are included) it is possible to
make your own version of the fpc compiler/rtl and to modify it. You are of
course free to do this so as long as you observe the licence conditions. In
order to make the compiler/rtl & IDE in a resonable time (eg <30 minutes)
you'll need at least 32 MB of physical memory (64 MB is better), at least
a 200 MHz processor and at least 100 MB of free disk space. You'll also
need some knowledge of makefiles & programming... it is not difficult but
it isn't easy either!
REPORTING BUGS
----------------
If you find a bug in the released version, you may want to try a snapshot
(see SNAPSHOTS above) to see if it has been fixed before reporting it to
the fpc-devel mailing list.
If you find a fault or 'feature' in a release, please report it either
using the bug reporting interface available on our WWW pages (see above),
or to the fpc-devel mailing list. PLEASE INCLUDE ALSO A COMPILABLE CODE
FRAGMENT which can be used to reproduce the problem (or a link to larger
archive if it cannot reproduced with small example), and state the version
eg Win32, GO32v2, and the date of the compiler etc on which you noticed the
problem & any other useful info so the developers can reproduce the
problem, otherwise they may not be willing/able to fix it.
****************************************************************************
* License
****************************************************************************
The compiler and most utilities and executables distributed in this package
fall under the GPL, for more information read the file COPYING.
Some specific utilities and programs come under the license described in
COPYING.DJ, COPYING.EMX, COPYING.RSX, license.upx and licensez.ip.
The documentation, unless otherwise noted, is distributed as free
text, and is distributed under the GNU Library General Public
License.
The runtime library, package libraries, free component library, and
other libraries which are used to create executables by the compiler
come under a modified GNU Library General Public license. Additional
information about the library license is found in COPYING.FPC.
License conditions for DPMI provider for GO32v2 version (CWSDPMI.EXE)
can be found in cwsdpmi.doc, sources and/or binary updates may be
downloaded from http://clio.rice.edu/cwsdpmi/.
NOTE: OS/2 version of the installer uses the library UNZIP32.DLL from
Info-ZIP. Info-ZIP's software (Zip, UnZip and related utilities)
is free and can be obtained as source code or executables from
Internet/WWW sites, including http://www.info-zip.org.
Free Pascal Compiler
Version 2.2.2
******************************************************************************
What's New in 2.2.2
******************************************************************************
Free Pascal 2.2.2 contains many bug-fixes and some new features. The
main purpose of this release is to fix problems reported with FPC 2.2.0,
and to remove all potentially tainted code from our source code base.
Please also see http://wiki.freepascal.org/User_Changes_2.2.2 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
All:
* All code potentially infringing on CodeGear copyrighted code has been
reimplemented using a cleanroom approach.
Platforms:
* Incompatibilities with Mac OS X 10.5's new default linker have been
resolved.
Compiler:
* PIC support for Mac OS X (on by default, disable with -Cg-)
* several bugs in the experimental generics support have been fixed,
but this feature is still in beta
* initialisation and finalisation of shared libraries has been fixed
for all Darwin platforms, and for Linux/i386
* support for {$packset x} directive to enable set packing
(use {$packset 1} for Delphi-compatible sets, but note that the
format is different on little and big endian platforms)
RTL:
* thread resource leaking under unix has been fixed
* the widestring manager for unix has been completed
* several floating point to string conversion errors have been fixed
* significantly improved variant support
* implementation of RTL exception handler for OS/2 allowing proper
translation of some runtime errors
* various fixes for GO32v2 improving useability of this target
* OS/2 RTL enhanced to allow seamless working with large files (64-bit
file system API calls) where available (WSeB/MCP/eCS/Warp 4 with FP15)
Packages:
* the Windows API interface units have been significantly updated
* Apple universal interfaces updated to r234 of the common FPC/GPC/MW
interfaces
* New TRegexEngine class to parse regular expressions
Documentation
* Documentation was updated completely to conform to the actual
state of the compiler and RTL.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.0
******************************************************************************
Free Pascal 2.2.0 contains a lot of bug-fixes and new features. The work on
Free Pascal 2.2.0 started halfway during the year 2005. A lot has been improved
since then.
Please also see http://wiki.freepascal.org/User_Changes_2.2.0 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Platforms:
* New platform: Win64. FPC is the first open source compiler for 64-bit
Windows operating systems.
* New processor architecture: 64-bit PowerPC
* PowerPC/64 support for Linux
* Mac OS X on Intel (i386) is now supported
* New platform: Windows CE (Windows Mobile)
* New platform: Nintendo Game Boy Advance
* New platform: Nintendo DS
* Native support for ARM-platform
* GO32V2 DOS platform got a long needed update
Compiler:
* Internal linker for win32, win64 and wince, resulting in smaller
executables, less memory used during compilation, and faster compile
times for programs using large frameworks like for example the Lazarus
Component Library.
* Generics (experimental)
* Bit packed arrays and records
* Resourcestrings can now be smartlinked, resulting in smaller executables
* Multiple resource files support
* pointer[low..high] syntax to pass C-style pointer arrays to procedures
using open arrays
* Interface delegation
* Proper safecall implementation
* Wide strings are COM/OLE compatible on Windows
* Added several speed optimisations, for example:
* Compiler can omit stack frames (x86 and ARM)
* Compiler can store records in registers
* Tail recursion expansion
* Register renaming optimizations
* Improved optimizer for ARM CPU
* Compiler can initialise local variables, function results, and "out"
parameters with several values (command line parameters -gt till -gtttt)
to help find uses of uninitialised variables
* Compiler can now properly deal with paths > 255 characters in all cases
* Dwarf debug format support
* Reduced memory usage during compilation
* Lot of small bugs and compatibility fixes
RTL:
* Heap uses less memory
* Improved variants support
* Improved currency support
* Exception handling can be used without SysUtils unit
* Lot of small bug and compatibility fixes
FCL:
* Improved database support
* The obsolete sqlitedataset, interbase, fpodbc, ddg, mysqldb3 and mysqldb4
units are removed
* Lot of small bugs and compatibility fixes
Packages:
* Added a new fppkg package manager
* Improved database support
* Added Delphi compatible RichEdit unit
* Apple universal interfaces updated to r204 of the common FPC/GPC/MW
interfaces
* Lot of small bugs and compatibility fixes
Free Vision:
* Now uses resourcestrings
IDE:
* Evaluate window
* Improved HTML rendering
* Improved xterm support
* Small bug fixes
Misc:
* Improved documentation
* Better cross compilation support
For a detailed list of reported bugs that are fixed in this release see the
bugtracker report at http://www.freepascal.org/mantis/changelog_page.php
******************************************************************************
What's New in 2.0.4
******************************************************************************
More than 1000 changes have been made to 2.0.4 since 2.0.2. As this is a bug
fix release, most are fixes for some issues, but new features and performance
enhancements have been added as well.
Compiler:
* Lot of small bugs and compatibility fixes
* Updated several translations
* Improved code generation
* Improved and fixed PIC code generation
* Improved register allocation
* Improved ansistring string code generation
* Several alignment values increased so the requirements of modern processors
are met better
* WINDOWS defined on all windows platforms (Win32, Win64, WinCE)
* Parameter order for methods with structured results changed
(result pointer<->self swapped), please check such methods if they are
implemented in assembler
* i386 compiler no longer needs environment variables set when installed on
an x86_64 Linux distribution
RTL:
* Lot of small bug and compatibility fixes
* 64 bit file pointer support on most targets
* Faster integer to string conversion
* Endian conversion routines added
* Improved heap manager
* Improved ansistring routines
* PowerPC: Power3/4/5/PPC970 compatibility
FCL:
* Lot of small bugs and compatibility fixes
* Improved database support
* The interbase, fpodbc, ddg, mysqldb3 and mysqldb4 units
are obsolete and replaced by the sqldb components
* Oracle support added
Packages:
* Lot of small bugs and compatibility fixes
* Improved database support
* Apple universal interfaces added
Free Vision:
* New outline unit
* Small bug fixes
* Unix: much improved video and keyboard handling
* Unix: Free Vision applications no longer need to link to libc
* Linux: grab_vcsa utility to ensure vcsa access
IDE:
* Small bug fixes
* Redesigned directories window
* Reorganised compiler options window
* Option to use Ctrl+X,C,V for cut/copy/paste
Misc:
* Improved documentation
* Better cross compilation support
******************************************************************************
What's New in 2.0.2
******************************************************************************
This is a bug fix release, so don't expect a big new feature list here. Most
of the almost 700 changes made to 2.0.2 since 2.0.0 are fixes for some issues.
Compiler:
* Lot of small bugs and compatibility fixes
* Improved SSE support
* Improved inlining
* Enhanced variant support
* Embedded resource support for targets using elf32 executable format
+ Type checking of compile time expressions
+ Mode MacPas: Support for Mac style objects
+ Mode MacPas: Compile time variables can be given on command line
RTL:
* Lot of small bugs and compatibility fixes
* Enhanced variant support
* Embedded resource support for targets using elf32 executable format
FCL:
* Lot of small bugs and compatibility fixes
* Improved SqlDB package
Packages:
* Lot of small bugs and compatibility fixes
* Improved data base support
IDE:
* Small bug fixes
Misc:
* Improved docs
* Bug fixes for FreeVision
******************************************************************************
What's New in 2.0.0
******************************************************************************
Compiler:
+ properties in objects are now allowed
+ use of cmov when at least -Cppentium2 is supplied (i386+ only)
+ .p is a searched source extension in macpas mode now
* Improved MacPas mode
* Improved variant support
* Updated language files
* Improved warnings regarding uninitialised variables
* Lot of small bugs and compatibility fixes
RTL:
* Several widestring and unicode fixes
* Heavily improved variant support
* Improved threading support
* Improved 64 bit compatibility
* Lot of small bugs and compatibility fixes
FCL:
* Improved data base support
* Lot of small bugs and compatibility fixes
Packages:
+ Jedi windows api is part of the packages now
+ Windows specific units of the rtl have been moved to packages/base/winunits
+ XFree header conversions to X package added
* Endian and 64 bit fixes
* Lot of small bugs and compatibility fixes
IDE:
* Small bug fixes
Misc:
* Improved docs
* Bug fixes for FreeVision
Version 1.9.8 aka 2.0.0-Rc2
******************************************************************************
What's New in 1.9.8 aka 2.0.0-Rc2
******************************************************************************
Compiler:
+ arm-linux cross compiler for i386-linux
+ SysV style syscalls added for MorphOS
+ Exportable macros for mode MacPas
+ Support procvar declaration in parameters for mode MacPas
+ Give warning if code is never executed in while/if statements
+ Directive {$COPERATORS ON} added, synomym for -Sc
+ Check for uninitialzed from and to values in for-loop statement
+ -Fa<unit> option added to load units in a program before the uses statement
is parsed
+ -vz for output to stderr
* Better support for unique types
* AfterConstruction/BeforeDestruction behaviour is now compatible with Delphi
* Better support for Widestring
* Removed {$THREADING ON} directive, threading support is always available
* Improved code generation on Sparc
* Lot of small bugs and compatibility fixes
+ On target Mac OS, resource files is supported
RTL:
+ arm Linux support
* Basic threading support moved to the system unit
* Operator ** moved to math unit; system.power removed
* Improved variant support
* Lot of small bugs and compatibility fixes
+ The unit MacOS (api to Mac OS) for target MacOS
FCL:
+ Support for Interbase/Firebird, PostgreSQL and MySQL 4.0 under windows
* Database drivers are now dynamically loaded
* The TSQLQuery is now fully editable using cached updates
* Lot of small bugs and compatibility fixes
Packages:
+ gtk2 interface units
* 64 bit compatibility fixes
* Lot of small bugs and compatibility fixes
IDE:
+ vector unit window
* x86-64 asssembler debugging support improved
* Sparc asssembler debugging support improved
* Some bug fixes
Misc:
+ txt output to fpdoc added
* some fpdoc bugs fixes
+ demo for macos
Version 1.9.6 aka 2.0.0-Rc1
******************************************************************************
What's New in 1.9.6 aka 2.0.0-Rc1
******************************************************************************
Compiler:
+ x86_64/amd64 (Linux) compiler
+ Sparc (Linux) compiler
+ PowerPC MorphOS support
+ Mac OS (classic) compiler (for MPW)
+ Netware Libc support (-Tnetwlibc)
+ Register variable support (-Or) for all targets
+ MacPas compiler mode (-Mmacpas)
* Better inlining support
* For loop variable assignment is not allowed anymore
* $fpctarget expands to <cpu>-<os> (except for 8.3 limited targets),
old $target removed
* Implicit loading of Variants unit
* Lots of bug fixes
RTL:
+ x86_64/amd64 Linux support
+ Sparc Linux support
+ PowerPC MorphOS support
+ Mac OS (classic) support (except Sysutils and its dependants)
+ Netware Libc support
+ New heap manager that releases memory back to the OS
+ TThread.Synchronize support
+ utf8bidi unit
+ GetHeapStatus added
+ GetProcessID added
+ SysUtils.GetEnvironmentVariableCount and SysUtils.GetEnvironmentString added
* gpm unit does not need libgpm anymore
+ Further additions for improved Delphi compatibility
+ System.GetProcessID and System.GetThreadID added
+ Dos.GetMsCount added
+ Support for changing console resolution in Video for Win32
+ Support for using high memory (> 512 MB) under OS/2 (where available)
- Removed MaxAvail, MemAvail, HeapSize due to their unreliability
(bogus/misleading return values) in multitasking environment with swapping
FCL:
+ RTTIUtils unit added
+ fpcunit test-framework added
* Lots of dbf and other db fixes
FV:
* Updated to fvision implementation, first official release
IDE:
* Lots of improvements and stability fixes
* Support latest gdb 6.2.x and 6.3.x releases
Docs:
+ Lots of updates
+ Easier to navigate html documentation
* fpDoc is used to generate all unit documentation
Misc:
* Makefiles create units in a separate directory units/cpu-os/
* More cross compilation improvements
******************************************************************************
What's New in 1.9.4 aka 2.0.0-Beta3
******************************************************************************
Compiler:
+ ARM (Linux) compiler
+ PowerPC Darwin (Mac OS X) support
+ reintroduce keyword support
+ added prefetch(const mem) support
+ MacPas compile mode
+ -gv to generate an executable that can be run under Valgrind >= 2.1
* register allocator fixes and tweaks
* better support for preprocessor $IF expressions
* better overloaded operator support
* Win32 DLL export table fixes
* stabs (debuginfo) generation cleanups
* enum names in RTTI are now in their original case
* record alignment fixes
* lots of bug fixes
RTL:
+ ARM Linux support
+ Powerpc Darwin support
+ Sysutils.RaiseLastOSError added
+ Sysutils.GetLastOSError added
+ Classes.TOwnedCollection added
+ Sysutils.FileIsReadOnly added
+ support of widestring and currency in the typinfo unit
* Better support for Libc based RTL (FPC_USE_LIBC)
* 64bit cleanup for future x86_64 port
* ExecuteProcess fixes
* Linux use getdents syscall instead of deprecated readdir
* bug fixes
FCL:
+ SDF DB backend
+ TGA support in fpImage
+ support of widestring and currency type in stream related classes
* Lot of fixes to fpImage classes
Misc:
* better cross development support
* Documentation updates
* Testsuite updates to store testrun results in a database
* Testsuite updates for cross platform testing, with remote rsh/ssh support
******************************************************************************
What's New in 1.9.2 aka 2.0.0-Beta2
******************************************************************************
Compiler:
+ PowerPC compiler
+ sse/sse2 code generation support
+ "global" property support
* improved inlining support
* optimizer enabled again
* uses register calling conventions by default
* $fputype directive
+ properties of type single can have default values
+ support of $IF DECLARED()
+ support of DQWORD in inline intel assembler code
* lots of bug fixes
RTL:
* more improvements for unix runtime library
* using FPC_USE_LIBC allows to compile an rtl which uses libc instead of
syscalls
+ System.Initialize
+ Sysutils.ExecuteProcess
+ System.WideStringManager
+ System.PtrInt and System.PtrUInt
* ipv6 support
* lots of bug fixes
FCL:
+ sqlite support
* bug fixes
Misc:
* improved docs
******************************************************************************
What's New in 1.9.0 aka 2.0.0-Beta1
******************************************************************************
Compiler:
+ dynamic arrays
+ interfaces
+ variants
+ full widestring support
+ default parameters
+ cross name scope overloading
+ support for the PowerPC, Sparc and ARM processor, installation packages
will follow within the next weeks
+ new and more sophisticated register allocator
+ inlining across units
+ register calling conventions
+ SSE and SSE2 support for inline assembler
+ PIC code generation
+ new language mode: "Mac Pascal"
+ full boolean evaluation is now also available
+ threadvar support, enabled by using {$threading on}
* support of int64 integer constants
* improved Delphi compatibility in -Sd mode
* a lot of bug fixes
* large parts of the compiler are rewritten to create a more stable,
portable and maintainable compiler
RTL:
+ multithreading support
* completely rewritten unix runtime library
* improved Delphi compatiblity
* significantly improved speed of exception related code
* prepared for big endian and 64 Bit CPUs
* a lot of bug fixes
FCL:
+ tdataset support
+ html generator
+ 64 Bit file handling
* a lot of bug fixes
Docs:
* adapted to reflect new language features
IDE:
* a lot of bug fixes
Misc:
* improved cross compilation |
ftp.hu.freepascal.org/pub/fpc/dist/3.2.2/i386-os2/os2322.zip | ||
Free Pascal v. 3.2.2 (21/5/2021) | Readme/What's new |
Free Pascal Compiler
Version 2.2.2
****************************************************************************
* Introduction
****************************************************************************
Please also read the platform specific README file, if it exists.
This package contains an advanced freeware 32-bit/64-bit pascal compiler for
several platforms. The language and the runtime library are almost
compatible with Turbo Pascal 7.0 and recent Delphi releases. There is also
partial support for the Macintosh pascal dialect.
Free Pascal 2.2.2 is currently available for the following platforms:
- Linux-i386
- Linux-x86_64 (amd64)
- Linux-powerpc
- Linux-sparc
- Linux-arm
- Win32-i386 (Win95/98/Me/XP/2000/2003/Vista and WinNT)
- Win64-x86_64 (XP/Vista/2003)
- Wince-arm (cross compiled from win32-i386)
- FreeBSD-i386
- Mac OS X/Darwin for PowerPC
- Mac OS X/Darwin for Intel (i386)
- GO32v2-i386
- OS/2-i386 (OS/2 Warp v3.0, 4.0, WarpServer for e-Business and eComStation)
The following platforms were not release-ready at the moment of the release
but they might follow later:
- Netware-i386
- NetwLibc-i386 (LibC is preferred API under newer Netware versions)
There are other platforms (like other BSD variants) which are more or less
working, but there is currently no maintainer for them and thus we cannot
provide adequate support. If you want to change this and create and
maintain versions for other platforms and targets, feel free to contact us,
e-mail addresses are listed below.
****************************************************************************
* Features
****************************************************************************
- high speed compiler
- fully 32 or 64-bit code
- 32 bit compiler can be on x86_64 Linux distributions to compile 32 bit
applications
- language features:
- almost fully compatible with Borland Pascal and Borland Delphi
- ansi strings
- wide strings
- exception support
- RTTI support
- procedure overloading
- generics (experimental)
- operator overloading
- COM, CORBA and raw interfaces support
- dynamic array support
- variant support
- inlining
- code optimizer:
- peephole optimizer (80x86 only)
- jump optimizer
- loading of variables into registers
- assembler level dataflow analyzer (80x86 only)
- stack frame eliminations
- sophisticated register allocator
- integrated BASM (built-in assembler) parser
- supports ATT syntax used by GNU C
- supports Intel syntax used by Turbo Pascal (80x86-only)
- can compile code into assembler source code for these assemblers:
- GNU Assembler (GAS)
- Netwide assembler (Nasm)
- Microsoft Assembler/Turbo Assembler (Masm/Tasm)
- Watcom assembler (wasm)
- internal assembler for ultra fast object file generation
- can call external C code
- h2pas utility to convert .h files to Pascal units
- smartlinking (not yet supported under Mac OS X)
- support for the GNU debugger
- integrated development environment (disabled by default on Mac OS X)
- powerfull user friendly Wordstar compatible multi file editor
- context sensitive help supports help files in HTML, Windows HLP and
Borland TPH format.
- debugger on most platforms
- can create binaries running natively under both DOS and OS/2 (EMX version)
- no need for Linux distribution specific binaries, programs you write run
on all distributions
- high quality documentation
****************************************************************************
* Minimum requirements
****************************************************************************
i386, x86_64, PowerPC or Sparc processor
Win32:
- Win95/98/Me/2000/2003/XP/Vista or WinNT
- 16 MB RAM
OS/2:
- OS/2 Warp v3.0 with one of late fixpaks - FP 35 should be fine,
OS/2 Warp v4.0 with FP 5 and above, WSeB, MCP or any eComStation version
(OS/2 2.0/2.1 currently not supported, not even for compiled programs)
Linux:
- system running a 2.2.x kernel
FreeBSD:
- FreeBSD 4.x system or 5.x system that has COMPAT_4 system (which is
default)
Mac OS X:
- Mac OS X 10.2 and higher
Mac OS (classic)
- Mac OS 9.2 has been tested, should probably also work from 7.5.3 and up.
****************************************************************************
* Quick start - Win32
****************************************************************************
Download the distribution package (fpc-2.2.2.i386-win32.exe) and run it
- it is a self-extracting installer, so just follow the instructions
to install it. Don't forget to set the PATH environment variable if you
install FPC under Win95/98/ME (the installer should do it automatically
under WinNT/2k/XP).
To test the compiler, change to the demo\texts directory of the FPC tree
and type
fpc hello
hello
****************************************************************************
* Quick start - DOS
****************************************************************************
Download distribution archive (dos222.zip for GO32v2) and unzip it into
a temporary directory.
Start the install program INSTALL.EXE and follow the instructions.
Don't forget to set PATH as mentioned by the install program. If running
under plain DOS, this can be done by opening file named AUTOEXEC.BAT located
in the root directory of your boot drive (usually C:\) with a plain text
editor (like EDIT.COM), extending the line starting with "set PATH=" (case
insensitive) with path to newly installed binaries (installation root as
selected in the installation program appended with "\BIN\GO32v2") and save
it.
To test the compiler, change to the demo\texts directory of the FPC tree
and type
fpc hello
hello
****************************************************************************
* Quick start - OS/2 / eComStation
****************************************************************************
Download distribution archive (os2222.zip for OS/2 or eComStation) and unzip
it into a temporary directory.
Start the install program INSTALL.EXE and follow the instructions.
Don't forget to set PATH and LIBPATH as mentioned by the install program.
This can be done by opening file named CONFIG.SYS located in the root
directory of your boot drive (e.g. C:\) with a plain text editor (e.g.
E.EXE), extending the lines starting with "set PATH=" and "LIBPATH=" (both
are case insensitive) with path to newly installed binaries (installation
root as selected in the installation program appended with "\BIN\OS2") and
save it again as a plain text file. Note that changes to LIBPATH require
restart of your machine in order to come into effect.
To test the compiler, change to the demo\texts directory of the FPC tree
and type
fpc hello
hello
Note that due to a bug, programs based on FreeVision (and potentially some
other programs using unit Video) compiled for OS/2 target keep crashing
with a fault protection. This unfortunately includes our text mode IDE,
that's why it has been excluded from the release. An updated OS/2 release
will be published as soon as the problem gets resolved. I'm sorry for any
incovenience this would cause.
****************************************************************************
* Quick start - Linux/FreeBSD
****************************************************************************
Download fpc-2.2.2.<cpu>-<os>.tar and untar into a temporary directory.
Start the install script with ./install.sh and follow the instructions.
To test the compiler, change to the demo/texts directory of the FPC tree
and type
fpc hello
hello
****************************************************************************
* Quick start - Mac OS X/Darwin
****************************************************************************
There are two methods to install Free Pascal for Mac OS X.
1) Download and install the Mac OS X package (fpc-2.2.2.powerpc-macosx.dmg)
This gives you the Free Pascal Compiler and the Xcode integration kit.
2) Install fpc using fink
This gives you the Free Pascal Compiler, including all libraries, packages
and units from its sources, including Free Vision and the IDE, which partly
works using X11 xterm.
With method 1 follow the instructions to install the XCode integration kit
at:
http://www.freepascal.org/xcode.html
Method 2 is mainly meant for using the compiler through the command
line. Fink takes care of setting the PATH variable. You can (under
Mac OS X 10.2.x or earlier you actually have to) also use the command line
with Free Pascal installed using method 1. The main point is to change your
PATH as described below:
The compiler is called "fpc" and will be installed in /usr/local/bin. This
directory may not be in your PATH yet (if you type "fpc" in a Terminal
window and you get something like "fpc: command not found", then it isn't).
If the installation directory is not yet in your PATH, you will have to add
it. To get an idea, how to do this, follow the instructions at:
"http://fink.sourceforge.net/doc/users-guide/install.php#setup"
to determine which file you have to edit, but instead of adding the line
suggested there, add the following at the end:
- if your shell is the Bourne shell (bash):
export PATH=/usr/local/bin:$PATH
When using Terminal.app add this to ".bash_profile",
when using the X11 xterm add this to ".bashrc".
If these files do not exist yet in your home directory, you have to create
them, for example with nano (or any other text editor):
nano .bash_profile
- if your shell is the C Shell (csh or tcsh):
setenv PATH /usr/local/bin:${PATH}
Next, close the Terminal window and open a new one. Now, the PATH should
be set correctly. After installing the package, you can write your
source code in your favorite editor (including Project Builder and XCode).
To compile something, go to the directory containing your source files in
Terminal and type:
fpc name_of_your_source_file
The compiler only accepts one file name as argument, but will automatically
search for and compile any units used by the specified source file. Run
"fpc" without any arguments to get an overview of the possible command line
options.
****************************************************************************
* Documentation
****************************************************************************
The documentation is available as HTML pages, PDF, PS, and text although the
recommended format is pdf. These are all available on
ftp://ftp.freepascal.org/fpc/dist/docs-2.2.2
NB that there is at present no FPC specific documentation for the platform
specific API (like Win32 system functions, etc.). There is a note in the ftp
/doc explaining where MS help file documenting Win32 API can be obtained,
other platforms (especially Unix-based ones) often come with this
documentation included in system installation.
****************************************************************************
* Suggestions, Help, Bug reporting, snapshots, ...
****************************************************************************
Suggestions, Help ...
---------------------
e-mail: fpc-devel@lists.freepascal.org (bugs, developer related questions)
e-mail: fpc-pascal@lists.freepascal.org (general pascal related questions)
Both these adresses are for mailing lists. If you're not subscribed,
be sure to mention this fact when sending questions to these lists,
so that people sending answers know about it and send you a copy.
Information about available lists and subscription can be found
on http://lists.freepascal.org/mailman/listinfo
Web forum: http://community.freepascal.org:10000 (all questions)
WWW: http://www.freepascal.org
FTP: ftp://ftp.freepascal.org/fpc
(several mirrors exist, see website for links)
Additional information about mailing lists, news, future plans etc.
can be found on the web site.
SNAPSHOTS & SOURCES
-------------------
One of the features of FPC is the snapshots. These are made daily or weekly
from the developers' latest versions of the source. Snapshots are available
for GO32v2, Win32, OS/2 and Linux versions. The latest snapshots are in:
ftp://ftp.freepascal.org/fpc/snapshot/ in appropriately named .zip/tar
files.
You will also normally find in the snapshot archive file a readme, with
a note about the latest included changes. It is quite common, though it
doesn't always happen, that when a bug is reported it is fixed and a fixed
version can be obtained the NEXT day in the appropriate snapshot.... yes
really!
Also on the ftp site you'll find a /dist directory, with the latest
distributed releases, a /docs directory, and a /source directory, in
which every night at about 0100 GMT the latest source generated by the
developers during the day & evening before is exported from SVN
into ZIP file fpc.zip.
Making your own snapshots
-------------------------
By downloading the /source files (makefiles are included) it is possible to
make your own version of the fpc compiler/rtl and to modify it. You are of
course free to do this so as long as you observe the licence conditions. In
order to make the compiler/rtl & IDE in a resonable time (eg <30 minutes)
you'll need at least 32 MB of physical memory (64 MB is better), at least
a 200 MHz processor and at least 100 MB of free disk space. You'll also
need some knowledge of makefiles & programming... it is not difficult but
it isn't easy either!
REPORTING BUGS
----------------
If you find a bug in the released version, you may want to try a snapshot
(see SNAPSHOTS above) to see if it has been fixed before reporting it to
the fpc-devel mailing list.
If you find a fault or 'feature' in a release, please report it either
using the bug reporting interface available on our WWW pages (see above),
or to the fpc-devel mailing list. PLEASE INCLUDE ALSO A COMPILABLE CODE
FRAGMENT which can be used to reproduce the problem (or a link to larger
archive if it cannot reproduced with small example), and state the version
eg Win32, GO32v2, and the date of the compiler etc on which you noticed the
problem & any other useful info so the developers can reproduce the
problem, otherwise they may not be willing/able to fix it.
****************************************************************************
* License
****************************************************************************
The compiler and most utilities and executables distributed in this package
fall under the GPL, for more information read the file COPYING.
Some specific utilities and programs come under the license described in
COPYING.DJ, COPYING.EMX, COPYING.RSX, license.upx and licensez.ip.
The documentation, unless otherwise noted, is distributed as free
text, and is distributed under the GNU Library General Public
License.
The runtime library, package libraries, free component library, and
other libraries which are used to create executables by the compiler
come under a modified GNU Library General Public license. Additional
information about the library license is found in COPYING.FPC.
License conditions for DPMI provider for GO32v2 version (CWSDPMI.EXE)
can be found in cwsdpmi.doc, sources and/or binary updates may be
downloaded from http://clio.rice.edu/cwsdpmi/.
NOTE: OS/2 version of the installer uses the library UNZIP32.DLL from
Info-ZIP. Info-ZIP's software (Zip, UnZip and related utilities)
is free and can be obtained as source code or executables from
Internet/WWW sites, including http://www.info-zip.org.
Free Pascal Compiler
Version 2.2.2
******************************************************************************
What's New in 2.2.2
******************************************************************************
Free Pascal 2.2.2 contains many bug-fixes and some new features. The
main purpose of this release is to fix problems reported with FPC 2.2.0,
and to remove all potentially tainted code from our source code base.
Please also see http://wiki.freepascal.org/User_Changes_2.2.2 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
All:
* All code potentially infringing on CodeGear copyrighted code has been
reimplemented using a cleanroom approach.
Platforms:
* Incompatibilities with Mac OS X 10.5's new default linker have been
resolved.
Compiler:
* PIC support for Mac OS X (on by default, disable with -Cg-)
* several bugs in the experimental generics support have been fixed,
but this feature is still in beta
* initialisation and finalisation of shared libraries has been fixed
for all Darwin platforms, and for Linux/i386
* support for {$packset x} directive to enable set packing
(use {$packset 1} for Delphi-compatible sets, but note that the
format is different on little and big endian platforms)
RTL:
* thread resource leaking under unix has been fixed
* the widestring manager for unix has been completed
* several floating point to string conversion errors have been fixed
* significantly improved variant support
* implementation of RTL exception handler for OS/2 allowing proper
translation of some runtime errors
* various fixes for GO32v2 improving useability of this target
* OS/2 RTL enhanced to allow seamless working with large files (64-bit
file system API calls) where available (WSeB/MCP/eCS/Warp 4 with FP15)
Packages:
* the Windows API interface units have been significantly updated
* Apple universal interfaces updated to r234 of the common FPC/GPC/MW
interfaces
* New TRegexEngine class to parse regular expressions
Documentation
* Documentation was updated completely to conform to the actual
state of the compiler and RTL.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.0
******************************************************************************
Free Pascal 2.2.0 contains a lot of bug-fixes and new features. The work on
Free Pascal 2.2.0 started halfway during the year 2005. A lot has been improved
since then.
Please also see http://wiki.freepascal.org/User_Changes_2.2.0 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Platforms:
* New platform: Win64. FPC is the first open source compiler for 64-bit
Windows operating systems.
* New processor architecture: 64-bit PowerPC
* PowerPC/64 support for Linux
* Mac OS X on Intel (i386) is now supported
* New platform: Windows CE (Windows Mobile)
* New platform: Nintendo Game Boy Advance
* New platform: Nintendo DS
* Native support for ARM-platform
* GO32V2 DOS platform got a long needed update
Compiler:
* Internal linker for win32, win64 and wince, resulting in smaller
executables, less memory used during compilation, and faster compile
times for programs using large frameworks like for example the Lazarus
Component Library.
* Generics (experimental)
* Bit packed arrays and records
* Resourcestrings can now be smartlinked, resulting in smaller executables
* Multiple resource files support
* pointer[low..high] syntax to pass C-style pointer arrays to procedures
using open arrays
* Interface delegation
* Proper safecall implementation
* Wide strings are COM/OLE compatible on Windows
* Added several speed optimisations, for example:
* Compiler can omit stack frames (x86 and ARM)
* Compiler can store records in registers
* Tail recursion expansion
* Register renaming optimizations
* Improved optimizer for ARM CPU
* Compiler can initialise local variables, function results, and "out"
parameters with several values (command line parameters -gt till -gtttt)
to help find uses of uninitialised variables
* Compiler can now properly deal with paths > 255 characters in all cases
* Dwarf debug format support
* Reduced memory usage during compilation
* Lot of small bugs and compatibility fixes
RTL:
* Heap uses less memory
* Improved variants support
* Improved currency support
* Exception handling can be used without SysUtils unit
* Lot of small bug and compatibility fixes
FCL:
* Improved database support
* The obsolete sqlitedataset, interbase, fpodbc, ddg, mysqldb3 and mysqldb4
units are removed
* Lot of small bugs and compatibility fixes
Packages:
* Added a new fppkg package manager
* Improved database support
* Added Delphi compatible RichEdit unit
* Apple universal interfaces updated to r204 of the common FPC/GPC/MW
interfaces
* Lot of small bugs and compatibility fixes
Free Vision:
* Now uses resourcestrings
IDE:
* Evaluate window
* Improved HTML rendering
* Improved xterm support
* Small bug fixes
Misc:
* Improved documentation
* Better cross compilation support
For a detailed list of reported bugs that are fixed in this release see the
bugtracker report at http://www.freepascal.org/mantis/changelog_page.php
******************************************************************************
What's New in 2.0.4
******************************************************************************
More than 1000 changes have been made to 2.0.4 since 2.0.2. As this is a bug
fix release, most are fixes for some issues, but new features and performance
enhancements have been added as well.
Compiler:
* Lot of small bugs and compatibility fixes
* Updated several translations
* Improved code generation
* Improved and fixed PIC code generation
* Improved register allocation
* Improved ansistring string code generation
* Several alignment values increased so the requirements of modern processors
are met better
* WINDOWS defined on all windows platforms (Win32, Win64, WinCE)
* Parameter order for methods with structured results changed
(result pointer<->self swapped), please check such methods if they are
implemented in assembler
* i386 compiler no longer needs environment variables set when installed on
an x86_64 Linux distribution
RTL:
* Lot of small bug and compatibility fixes
* 64 bit file pointer support on most targets
* Faster integer to string conversion
* Endian conversion routines added
* Improved heap manager
* Improved ansistring routines
* PowerPC: Power3/4/5/PPC970 compatibility
FCL:
* Lot of small bugs and compatibility fixes
* Improved database support
* The interbase, fpodbc, ddg, mysqldb3 and mysqldb4 units
are obsolete and replaced by the sqldb components
* Oracle support added
Packages:
* Lot of small bugs and compatibility fixes
* Improved database support
* Apple universal interfaces added
Free Vision:
* New outline unit
* Small bug fixes
* Unix: much improved video and keyboard handling
* Unix: Free Vision applications no longer need to link to libc
* Linux: grab_vcsa utility to ensure vcsa access
IDE:
* Small bug fixes
* Redesigned directories window
* Reorganised compiler options window
* Option to use Ctrl+X,C,V for cut/copy/paste
Misc:
* Improved documentation
* Better cross compilation support
******************************************************************************
What's New in 2.0.2
******************************************************************************
This is a bug fix release, so don't expect a big new feature list here. Most
of the almost 700 changes made to 2.0.2 since 2.0.0 are fixes for some issues.
Compiler:
* Lot of small bugs and compatibility fixes
* Improved SSE support
* Improved inlining
* Enhanced variant support
* Embedded resource support for targets using elf32 executable format
+ Type checking of compile time expressions
+ Mode MacPas: Support for Mac style objects
+ Mode MacPas: Compile time variables can be given on command line
RTL:
* Lot of small bugs and compatibility fixes
* Enhanced variant support
* Embedded resource support for targets using elf32 executable format
FCL:
* Lot of small bugs and compatibility fixes
* Improved SqlDB package
Packages:
* Lot of small bugs and compatibility fixes
* Improved data base support
IDE:
* Small bug fixes
Misc:
* Improved docs
* Bug fixes for FreeVision
******************************************************************************
What's New in 2.0.0
******************************************************************************
Compiler:
+ properties in objects are now allowed
+ use of cmov when at least -Cppentium2 is supplied (i386+ only)
+ .p is a searched source extension in macpas mode now
* Improved MacPas mode
* Improved variant support
* Updated language files
* Improved warnings regarding uninitialised variables
* Lot of small bugs and compatibility fixes
RTL:
* Several widestring and unicode fixes
* Heavily improved variant support
* Improved threading support
* Improved 64 bit compatibility
* Lot of small bugs and compatibility fixes
FCL:
* Improved data base support
* Lot of small bugs and compatibility fixes
Packages:
+ Jedi windows api is part of the packages now
+ Windows specific units of the rtl have been moved to packages/base/winunits
+ XFree header conversions to X package added
* Endian and 64 bit fixes
* Lot of small bugs and compatibility fixes
IDE:
* Small bug fixes
Misc:
* Improved docs
* Bug fixes for FreeVision
Version 1.9.8 aka 2.0.0-Rc2
******************************************************************************
What's New in 1.9.8 aka 2.0.0-Rc2
******************************************************************************
Compiler:
+ arm-linux cross compiler for i386-linux
+ SysV style syscalls added for MorphOS
+ Exportable macros for mode MacPas
+ Support procvar declaration in parameters for mode MacPas
+ Give warning if code is never executed in while/if statements
+ Directive {$COPERATORS ON} added, synomym for -Sc
+ Check for uninitialzed from and to values in for-loop statement
+ -Fa<unit> option added to load units in a program before the uses statement
is parsed
+ -vz for output to stderr
* Better support for unique types
* AfterConstruction/BeforeDestruction behaviour is now compatible with Delphi
* Better support for Widestring
* Removed {$THREADING ON} directive, threading support is always available
* Improved code generation on Sparc
* Lot of small bugs and compatibility fixes
+ On target Mac OS, resource files is supported
RTL:
+ arm Linux support
* Basic threading support moved to the system unit
* Operator ** moved to math unit; system.power removed
* Improved variant support
* Lot of small bugs and compatibility fixes
+ The unit MacOS (api to Mac OS) for target MacOS
FCL:
+ Support for Interbase/Firebird, PostgreSQL and MySQL 4.0 under windows
* Database drivers are now dynamically loaded
* The TSQLQuery is now fully editable using cached updates
* Lot of small bugs and compatibility fixes
Packages:
+ gtk2 interface units
* 64 bit compatibility fixes
* Lot of small bugs and compatibility fixes
IDE:
+ vector unit window
* x86-64 asssembler debugging support improved
* Sparc asssembler debugging support improved
* Some bug fixes
Misc:
+ txt output to fpdoc added
* some fpdoc bugs fixes
+ demo for macos
Version 1.9.6 aka 2.0.0-Rc1
******************************************************************************
What's New in 1.9.6 aka 2.0.0-Rc1
******************************************************************************
Compiler:
+ x86_64/amd64 (Linux) compiler
+ Sparc (Linux) compiler
+ PowerPC MorphOS support
+ Mac OS (classic) compiler (for MPW)
+ Netware Libc support (-Tnetwlibc)
+ Register variable support (-Or) for all targets
+ MacPas compiler mode (-Mmacpas)
* Better inlining support
* For loop variable assignment is not allowed anymore
* $fpctarget expands to <cpu>-<os> (except for 8.3 limited targets),
old $target removed
* Implicit loading of Variants unit
* Lots of bug fixes
RTL:
+ x86_64/amd64 Linux support
+ Sparc Linux support
+ PowerPC MorphOS support
+ Mac OS (classic) support (except Sysutils and its dependants)
+ Netware Libc support
+ New heap manager that releases memory back to the OS
+ TThread.Synchronize support
+ utf8bidi unit
+ GetHeapStatus added
+ GetProcessID added
+ SysUtils.GetEnvironmentVariableCount and SysUtils.GetEnvironmentString added
* gpm unit does not need libgpm anymore
+ Further additions for improved Delphi compatibility
+ System.GetProcessID and System.GetThreadID added
+ Dos.GetMsCount added
+ Support for changing console resolution in Video for Win32
+ Support for using high memory (> 512 MB) under OS/2 (where available)
- Removed MaxAvail, MemAvail, HeapSize due to their unreliability
(bogus/misleading return values) in multitasking environment with swapping
FCL:
+ RTTIUtils unit added
+ fpcunit test-framework added
* Lots of dbf and other db fixes
FV:
* Updated to fvision implementation, first official release
IDE:
* Lots of improvements and stability fixes
* Support latest gdb 6.2.x and 6.3.x releases
Docs:
+ Lots of updates
+ Easier to navigate html documentation
* fpDoc is used to generate all unit documentation
Misc:
* Makefiles create units in a separate directory units/cpu-os/
* More cross compilation improvements
******************************************************************************
What's New in 1.9.4 aka 2.0.0-Beta3
******************************************************************************
Compiler:
+ ARM (Linux) compiler
+ PowerPC Darwin (Mac OS X) support
+ reintroduce keyword support
+ added prefetch(const mem) support
+ MacPas compile mode
+ -gv to generate an executable that can be run under Valgrind >= 2.1
* register allocator fixes and tweaks
* better support for preprocessor $IF expressions
* better overloaded operator support
* Win32 DLL export table fixes
* stabs (debuginfo) generation cleanups
* enum names in RTTI are now in their original case
* record alignment fixes
* lots of bug fixes
RTL:
+ ARM Linux support
+ Powerpc Darwin support
+ Sysutils.RaiseLastOSError added
+ Sysutils.GetLastOSError added
+ Classes.TOwnedCollection added
+ Sysutils.FileIsReadOnly added
+ support of widestring and currency in the typinfo unit
* Better support for Libc based RTL (FPC_USE_LIBC)
* 64bit cleanup for future x86_64 port
* ExecuteProcess fixes
* Linux use getdents syscall instead of deprecated readdir
* bug fixes
FCL:
+ SDF DB backend
+ TGA support in fpImage
+ support of widestring and currency type in stream related classes
* Lot of fixes to fpImage classes
Misc:
* better cross development support
* Documentation updates
* Testsuite updates to store testrun results in a database
* Testsuite updates for cross platform testing, with remote rsh/ssh support
******************************************************************************
What's New in 1.9.2 aka 2.0.0-Beta2
******************************************************************************
Compiler:
+ PowerPC compiler
+ sse/sse2 code generation support
+ "global" property support
* improved inlining support
* optimizer enabled again
* uses register calling conventions by default
* $fputype directive
+ properties of type single can have default values
+ support of $IF DECLARED()
+ support of DQWORD in inline intel assembler code
* lots of bug fixes
RTL:
* more improvements for unix runtime library
* using FPC_USE_LIBC allows to compile an rtl which uses libc instead of
syscalls
+ System.Initialize
+ Sysutils.ExecuteProcess
+ System.WideStringManager
+ System.PtrInt and System.PtrUInt
* ipv6 support
* lots of bug fixes
FCL:
+ sqlite support
* bug fixes
Misc:
* improved docs
******************************************************************************
What's New in 1.9.0 aka 2.0.0-Beta1
******************************************************************************
Compiler:
+ dynamic arrays
+ interfaces
+ variants
+ full widestring support
+ default parameters
+ cross name scope overloading
+ support for the PowerPC, Sparc and ARM processor, installation packages
will follow within the next weeks
+ new and more sophisticated register allocator
+ inlining across units
+ register calling conventions
+ SSE and SSE2 support for inline assembler
+ PIC code generation
+ new language mode: "Mac Pascal"
+ full boolean evaluation is now also available
+ threadvar support, enabled by using {$threading on}
* support of int64 integer constants
* improved Delphi compatibility in -Sd mode
* a lot of bug fixes
* large parts of the compiler are rewritten to create a more stable,
portable and maintainable compiler
RTL:
+ multithreading support
* completely rewritten unix runtime library
* improved Delphi compatiblity
* significantly improved speed of exception related code
* prepared for big endian and 64 Bit CPUs
* a lot of bug fixes
FCL:
+ tdataset support
+ html generator
+ 64 Bit file handling
* a lot of bug fixes
Docs:
* adapted to reflect new language features
IDE:
* a lot of bug fixes
Misc:
* improved cross compilation |
ftp.hu.freepascal.org/pub/fpc/dist/3.2.2/i386-os2/os2322full.zip | ||
Free Pascal v. 3.2.2 (docs, 21/5/2021) | Readme/What's new |
Free Pascal Compiler
Version 2.2.2
****************************************************************************
* Introduction
****************************************************************************
Please also read the platform specific README file, if it exists.
This package contains an advanced freeware 32-bit/64-bit pascal compiler for
several platforms. The language and the runtime library are almost
compatible with Turbo Pascal 7.0 and recent Delphi releases. There is also
partial support for the Macintosh pascal dialect.
Free Pascal 2.2.2 is currently available for the following platforms:
- Linux-i386
- Linux-x86_64 (amd64)
- Linux-powerpc
- Linux-sparc
- Linux-arm
- Win32-i386 (Win95/98/Me/XP/2000/2003/Vista and WinNT)
- Win64-x86_64 (XP/Vista/2003)
- Wince-arm (cross compiled from win32-i386)
- FreeBSD-i386
- Mac OS X/Darwin for PowerPC
- Mac OS X/Darwin for Intel (i386)
- GO32v2-i386
- OS/2-i386 (OS/2 Warp v3.0, 4.0, WarpServer for e-Business and eComStation)
The following platforms were not release-ready at the moment of the release
but they might follow later:
- Netware-i386
- NetwLibc-i386 (LibC is preferred API under newer Netware versions)
There are other platforms (like other BSD variants) which are more or less
working, but there is currently no maintainer for them and thus we cannot
provide adequate support. If you want to change this and create and
maintain versions for other platforms and targets, feel free to contact us,
e-mail addresses are listed below.
****************************************************************************
* Features
****************************************************************************
- high speed compiler
- fully 32 or 64-bit code
- 32 bit compiler can be on x86_64 Linux distributions to compile 32 bit
applications
- language features:
- almost fully compatible with Borland Pascal and Borland Delphi
- ansi strings
- wide strings
- exception support
- RTTI support
- procedure overloading
- generics (experimental)
- operator overloading
- COM, CORBA and raw interfaces support
- dynamic array support
- variant support
- inlining
- code optimizer:
- peephole optimizer (80x86 only)
- jump optimizer
- loading of variables into registers
- assembler level dataflow analyzer (80x86 only)
- stack frame eliminations
- sophisticated register allocator
- integrated BASM (built-in assembler) parser
- supports ATT syntax used by GNU C
- supports Intel syntax used by Turbo Pascal (80x86-only)
- can compile code into assembler source code for these assemblers:
- GNU Assembler (GAS)
- Netwide assembler (Nasm)
- Microsoft Assembler/Turbo Assembler (Masm/Tasm)
- Watcom assembler (wasm)
- internal assembler for ultra fast object file generation
- can call external C code
- h2pas utility to convert .h files to Pascal units
- smartlinking (not yet supported under Mac OS X)
- support for the GNU debugger
- integrated development environment (disabled by default on Mac OS X)
- powerfull user friendly Wordstar compatible multi file editor
- context sensitive help supports help files in HTML, Windows HLP and
Borland TPH format.
- debugger on most platforms
- can create binaries running natively under both DOS and OS/2 (EMX version)
- no need for Linux distribution specific binaries, programs you write run
on all distributions
- high quality documentation
****************************************************************************
* Minimum requirements
****************************************************************************
i386, x86_64, PowerPC or Sparc processor
Win32:
- Win95/98/Me/2000/2003/XP/Vista or WinNT
- 16 MB RAM
OS/2:
- OS/2 Warp v3.0 with one of late fixpaks - FP 35 should be fine,
OS/2 Warp v4.0 with FP 5 and above, WSeB, MCP or any eComStation version
(OS/2 2.0/2.1 currently not supported, not even for compiled programs)
Linux:
- system running a 2.2.x kernel
FreeBSD:
- FreeBSD 4.x system or 5.x system that has COMPAT_4 system (which is
default)
Mac OS X:
- Mac OS X 10.2 and higher
Mac OS (classic)
- Mac OS 9.2 has been tested, should probably also work from 7.5.3 and up.
****************************************************************************
* Quick start - Win32
****************************************************************************
Download the distribution package (fpc-2.2.2.i386-win32.exe) and run it
- it is a self-extracting installer, so just follow the instructions
to install it. Don't forget to set the PATH environment variable if you
install FPC under Win95/98/ME (the installer should do it automatically
under WinNT/2k/XP).
To test the compiler, change to the demo\texts directory of the FPC tree
and type
fpc hello
hello
****************************************************************************
* Quick start - DOS
****************************************************************************
Download distribution archive (dos222.zip for GO32v2) and unzip it into
a temporary directory.
Start the install program INSTALL.EXE and follow the instructions.
Don't forget to set PATH as mentioned by the install program. If running
under plain DOS, this can be done by opening file named AUTOEXEC.BAT located
in the root directory of your boot drive (usually C:\) with a plain text
editor (like EDIT.COM), extending the line starting with "set PATH=" (case
insensitive) with path to newly installed binaries (installation root as
selected in the installation program appended with "\BIN\GO32v2") and save
it.
To test the compiler, change to the demo\texts directory of the FPC tree
and type
fpc hello
hello
****************************************************************************
* Quick start - OS/2 / eComStation
****************************************************************************
Download distribution archive (os2222.zip for OS/2 or eComStation) and unzip
it into a temporary directory.
Start the install program INSTALL.EXE and follow the instructions.
Don't forget to set PATH and LIBPATH as mentioned by the install program.
This can be done by opening file named CONFIG.SYS located in the root
directory of your boot drive (e.g. C:\) with a plain text editor (e.g.
E.EXE), extending the lines starting with "set PATH=" and "LIBPATH=" (both
are case insensitive) with path to newly installed binaries (installation
root as selected in the installation program appended with "\BIN\OS2") and
save it again as a plain text file. Note that changes to LIBPATH require
restart of your machine in order to come into effect.
To test the compiler, change to the demo\texts directory of the FPC tree
and type
fpc hello
hello
Note that due to a bug, programs based on FreeVision (and potentially some
other programs using unit Video) compiled for OS/2 target keep crashing
with a fault protection. This unfortunately includes our text mode IDE,
that's why it has been excluded from the release. An updated OS/2 release
will be published as soon as the problem gets resolved. I'm sorry for any
incovenience this would cause.
****************************************************************************
* Quick start - Linux/FreeBSD
****************************************************************************
Download fpc-2.2.2.<cpu>-<os>.tar and untar into a temporary directory.
Start the install script with ./install.sh and follow the instructions.
To test the compiler, change to the demo/texts directory of the FPC tree
and type
fpc hello
hello
****************************************************************************
* Quick start - Mac OS X/Darwin
****************************************************************************
There are two methods to install Free Pascal for Mac OS X.
1) Download and install the Mac OS X package (fpc-2.2.2.powerpc-macosx.dmg)
This gives you the Free Pascal Compiler and the Xcode integration kit.
2) Install fpc using fink
This gives you the Free Pascal Compiler, including all libraries, packages
and units from its sources, including Free Vision and the IDE, which partly
works using X11 xterm.
With method 1 follow the instructions to install the XCode integration kit
at:
http://www.freepascal.org/xcode.html
Method 2 is mainly meant for using the compiler through the command
line. Fink takes care of setting the PATH variable. You can (under
Mac OS X 10.2.x or earlier you actually have to) also use the command line
with Free Pascal installed using method 1. The main point is to change your
PATH as described below:
The compiler is called "fpc" and will be installed in /usr/local/bin. This
directory may not be in your PATH yet (if you type "fpc" in a Terminal
window and you get something like "fpc: command not found", then it isn't).
If the installation directory is not yet in your PATH, you will have to add
it. To get an idea, how to do this, follow the instructions at:
"http://fink.sourceforge.net/doc/users-guide/install.php#setup"
to determine which file you have to edit, but instead of adding the line
suggested there, add the following at the end:
- if your shell is the Bourne shell (bash):
export PATH=/usr/local/bin:$PATH
When using Terminal.app add this to ".bash_profile",
when using the X11 xterm add this to ".bashrc".
If these files do not exist yet in your home directory, you have to create
them, for example with nano (or any other text editor):
nano .bash_profile
- if your shell is the C Shell (csh or tcsh):
setenv PATH /usr/local/bin:${PATH}
Next, close the Terminal window and open a new one. Now, the PATH should
be set correctly. After installing the package, you can write your
source code in your favorite editor (including Project Builder and XCode).
To compile something, go to the directory containing your source files in
Terminal and type:
fpc name_of_your_source_file
The compiler only accepts one file name as argument, but will automatically
search for and compile any units used by the specified source file. Run
"fpc" without any arguments to get an overview of the possible command line
options.
****************************************************************************
* Documentation
****************************************************************************
The documentation is available as HTML pages, PDF, PS, and text although the
recommended format is pdf. These are all available on
ftp://ftp.freepascal.org/fpc/dist/docs-2.2.2
NB that there is at present no FPC specific documentation for the platform
specific API (like Win32 system functions, etc.). There is a note in the ftp
/doc explaining where MS help file documenting Win32 API can be obtained,
other platforms (especially Unix-based ones) often come with this
documentation included in system installation.
****************************************************************************
* Suggestions, Help, Bug reporting, snapshots, ...
****************************************************************************
Suggestions, Help ...
---------------------
e-mail: fpc-devel@lists.freepascal.org (bugs, developer related questions)
e-mail: fpc-pascal@lists.freepascal.org (general pascal related questions)
Both these adresses are for mailing lists. If you're not subscribed,
be sure to mention this fact when sending questions to these lists,
so that people sending answers know about it and send you a copy.
Information about available lists and subscription can be found
on http://lists.freepascal.org/mailman/listinfo
Web forum: http://community.freepascal.org:10000 (all questions)
WWW: http://www.freepascal.org
FTP: ftp://ftp.freepascal.org/fpc
(several mirrors exist, see website for links)
Additional information about mailing lists, news, future plans etc.
can be found on the web site.
SNAPSHOTS & SOURCES
-------------------
One of the features of FPC is the snapshots. These are made daily or weekly
from the developers' latest versions of the source. Snapshots are available
for GO32v2, Win32, OS/2 and Linux versions. The latest snapshots are in:
ftp://ftp.freepascal.org/fpc/snapshot/ in appropriately named .zip/tar
files.
You will also normally find in the snapshot archive file a readme, with
a note about the latest included changes. It is quite common, though it
doesn't always happen, that when a bug is reported it is fixed and a fixed
version can be obtained the NEXT day in the appropriate snapshot.... yes
really!
Also on the ftp site you'll find a /dist directory, with the latest
distributed releases, a /docs directory, and a /source directory, in
which every night at about 0100 GMT the latest source generated by the
developers during the day & evening before is exported from SVN
into ZIP file fpc.zip.
Making your own snapshots
-------------------------
By downloading the /source files (makefiles are included) it is possible to
make your own version of the fpc compiler/rtl and to modify it. You are of
course free to do this so as long as you observe the licence conditions. In
order to make the compiler/rtl & IDE in a resonable time (eg <30 minutes)
you'll need at least 32 MB of physical memory (64 MB is better), at least
a 200 MHz processor and at least 100 MB of free disk space. You'll also
need some knowledge of makefiles & programming... it is not difficult but
it isn't easy either!
REPORTING BUGS
----------------
If you find a bug in the released version, you may want to try a snapshot
(see SNAPSHOTS above) to see if it has been fixed before reporting it to
the fpc-devel mailing list.
If you find a fault or 'feature' in a release, please report it either
using the bug reporting interface available on our WWW pages (see above),
or to the fpc-devel mailing list. PLEASE INCLUDE ALSO A COMPILABLE CODE
FRAGMENT which can be used to reproduce the problem (or a link to larger
archive if it cannot reproduced with small example), and state the version
eg Win32, GO32v2, and the date of the compiler etc on which you noticed the
problem & any other useful info so the developers can reproduce the
problem, otherwise they may not be willing/able to fix it.
****************************************************************************
* License
****************************************************************************
The compiler and most utilities and executables distributed in this package
fall under the GPL, for more information read the file COPYING.
Some specific utilities and programs come under the license described in
COPYING.DJ, COPYING.EMX, COPYING.RSX, license.upx and licensez.ip.
The documentation, unless otherwise noted, is distributed as free
text, and is distributed under the GNU Library General Public
License.
The runtime library, package libraries, free component library, and
other libraries which are used to create executables by the compiler
come under a modified GNU Library General Public license. Additional
information about the library license is found in COPYING.FPC.
License conditions for DPMI provider for GO32v2 version (CWSDPMI.EXE)
can be found in cwsdpmi.doc, sources and/or binary updates may be
downloaded from http://clio.rice.edu/cwsdpmi/.
NOTE: OS/2 version of the installer uses the library UNZIP32.DLL from
Info-ZIP. Info-ZIP's software (Zip, UnZip and related utilities)
is free and can be obtained as source code or executables from
Internet/WWW sites, including http://www.info-zip.org.
Free Pascal Compiler
Version 2.2.2
******************************************************************************
What's New in 2.2.2
******************************************************************************
Free Pascal 2.2.2 contains many bug-fixes and some new features. The
main purpose of this release is to fix problems reported with FPC 2.2.0,
and to remove all potentially tainted code from our source code base.
Please also see http://wiki.freepascal.org/User_Changes_2.2.2 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
All:
* All code potentially infringing on CodeGear copyrighted code has been
reimplemented using a cleanroom approach.
Platforms:
* Incompatibilities with Mac OS X 10.5's new default linker have been
resolved.
Compiler:
* PIC support for Mac OS X (on by default, disable with -Cg-)
* several bugs in the experimental generics support have been fixed,
but this feature is still in beta
* initialisation and finalisation of shared libraries has been fixed
for all Darwin platforms, and for Linux/i386
* support for {$packset x} directive to enable set packing
(use {$packset 1} for Delphi-compatible sets, but note that the
format is different on little and big endian platforms)
RTL:
* thread resource leaking under unix has been fixed
* the widestring manager for unix has been completed
* several floating point to string conversion errors have been fixed
* significantly improved variant support
* implementation of RTL exception handler for OS/2 allowing proper
translation of some runtime errors
* various fixes for GO32v2 improving useability of this target
* OS/2 RTL enhanced to allow seamless working with large files (64-bit
file system API calls) where available (WSeB/MCP/eCS/Warp 4 with FP15)
Packages:
* the Windows API interface units have been significantly updated
* Apple universal interfaces updated to r234 of the common FPC/GPC/MW
interfaces
* New TRegexEngine class to parse regular expressions
Documentation
* Documentation was updated completely to conform to the actual
state of the compiler and RTL.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.0
******************************************************************************
Free Pascal 2.2.0 contains a lot of bug-fixes and new features. The work on
Free Pascal 2.2.0 started halfway during the year 2005. A lot has been improved
since then.
Please also see http://wiki.freepascal.org/User_Changes_2.2.0 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Platforms:
* New platform: Win64. FPC is the first open source compiler for 64-bit
Windows operating systems.
* New processor architecture: 64-bit PowerPC
* PowerPC/64 support for Linux
* Mac OS X on Intel (i386) is now supported
* New platform: Windows CE (Windows Mobile)
* New platform: Nintendo Game Boy Advance
* New platform: Nintendo DS
* Native support for ARM-platform
* GO32V2 DOS platform got a long needed update
Compiler:
* Internal linker for win32, win64 and wince, resulting in smaller
executables, less memory used during compilation, and faster compile
times for programs using large frameworks like for example the Lazarus
Component Library.
* Generics (experimental)
* Bit packed arrays and records
* Resourcestrings can now be smartlinked, resulting in smaller executables
* Multiple resource files support
* pointer[low..high] syntax to pass C-style pointer arrays to procedures
using open arrays
* Interface delegation
* Proper safecall implementation
* Wide strings are COM/OLE compatible on Windows
* Added several speed optimisations, for example:
* Compiler can omit stack frames (x86 and ARM)
* Compiler can store records in registers
* Tail recursion expansion
* Register renaming optimizations
* Improved optimizer for ARM CPU
* Compiler can initialise local variables, function results, and "out"
parameters with several values (command line parameters -gt till -gtttt)
to help find uses of uninitialised variables
* Compiler can now properly deal with paths > 255 characters in all cases
* Dwarf debug format support
* Reduced memory usage during compilation
* Lot of small bugs and compatibility fixes
RTL:
* Heap uses less memory
* Improved variants support
* Improved currency support
* Exception handling can be used without SysUtils unit
* Lot of small bug and compatibility fixes
FCL:
* Improved database support
* The obsolete sqlitedataset, interbase, fpodbc, ddg, mysqldb3 and mysqldb4
units are removed
* Lot of small bugs and compatibility fixes
Packages:
* Added a new fppkg package manager
* Improved database support
* Added Delphi compatible RichEdit unit
* Apple universal interfaces updated to r204 of the common FPC/GPC/MW
interfaces
* Lot of small bugs and compatibility fixes
Free Vision:
* Now uses resourcestrings
IDE:
* Evaluate window
* Improved HTML rendering
* Improved xterm support
* Small bug fixes
Misc:
* Improved documentation
* Better cross compilation support
For a detailed list of reported bugs that are fixed in this release see the
bugtracker report at http://www.freepascal.org/mantis/changelog_page.php
******************************************************************************
What's New in 2.0.4
******************************************************************************
More than 1000 changes have been made to 2.0.4 since 2.0.2. As this is a bug
fix release, most are fixes for some issues, but new features and performance
enhancements have been added as well.
Compiler:
* Lot of small bugs and compatibility fixes
* Updated several translations
* Improved code generation
* Improved and fixed PIC code generation
* Improved register allocation
* Improved ansistring string code generation
* Several alignment values increased so the requirements of modern processors
are met better
* WINDOWS defined on all windows platforms (Win32, Win64, WinCE)
* Parameter order for methods with structured results changed
(result pointer<->self swapped), please check such methods if they are
implemented in assembler
* i386 compiler no longer needs environment variables set when installed on
an x86_64 Linux distribution
RTL:
* Lot of small bug and compatibility fixes
* 64 bit file pointer support on most targets
* Faster integer to string conversion
* Endian conversion routines added
* Improved heap manager
* Improved ansistring routines
* PowerPC: Power3/4/5/PPC970 compatibility
FCL:
* Lot of small bugs and compatibility fixes
* Improved database support
* The interbase, fpodbc, ddg, mysqldb3 and mysqldb4 units
are obsolete and replaced by the sqldb components
* Oracle support added
Packages:
* Lot of small bugs and compatibility fixes
* Improved database support
* Apple universal interfaces added
Free Vision:
* New outline unit
* Small bug fixes
* Unix: much improved video and keyboard handling
* Unix: Free Vision applications no longer need to link to libc
* Linux: grab_vcsa utility to ensure vcsa access
IDE:
* Small bug fixes
* Redesigned directories window
* Reorganised compiler options window
* Option to use Ctrl+X,C,V for cut/copy/paste
Misc:
* Improved documentation
* Better cross compilation support
******************************************************************************
What's New in 2.0.2
******************************************************************************
This is a bug fix release, so don't expect a big new feature list here. Most
of the almost 700 changes made to 2.0.2 since 2.0.0 are fixes for some issues.
Compiler:
* Lot of small bugs and compatibility fixes
* Improved SSE support
* Improved inlining
* Enhanced variant support
* Embedded resource support for targets using elf32 executable format
+ Type checking of compile time expressions
+ Mode MacPas: Support for Mac style objects
+ Mode MacPas: Compile time variables can be given on command line
RTL:
* Lot of small bugs and compatibility fixes
* Enhanced variant support
* Embedded resource support for targets using elf32 executable format
FCL:
* Lot of small bugs and compatibility fixes
* Improved SqlDB package
Packages:
* Lot of small bugs and compatibility fixes
* Improved data base support
IDE:
* Small bug fixes
Misc:
* Improved docs
* Bug fixes for FreeVision
******************************************************************************
What's New in 2.0.0
******************************************************************************
Compiler:
+ properties in objects are now allowed
+ use of cmov when at least -Cppentium2 is supplied (i386+ only)
+ .p is a searched source extension in macpas mode now
* Improved MacPas mode
* Improved variant support
* Updated language files
* Improved warnings regarding uninitialised variables
* Lot of small bugs and compatibility fixes
RTL:
* Several widestring and unicode fixes
* Heavily improved variant support
* Improved threading support
* Improved 64 bit compatibility
* Lot of small bugs and compatibility fixes
FCL:
* Improved data base support
* Lot of small bugs and compatibility fixes
Packages:
+ Jedi windows api is part of the packages now
+ Windows specific units of the rtl have been moved to packages/base/winunits
+ XFree header conversions to X package added
* Endian and 64 bit fixes
* Lot of small bugs and compatibility fixes
IDE:
* Small bug fixes
Misc:
* Improved docs
* Bug fixes for FreeVision
Version 1.9.8 aka 2.0.0-Rc2
******************************************************************************
What's New in 1.9.8 aka 2.0.0-Rc2
******************************************************************************
Compiler:
+ arm-linux cross compiler for i386-linux
+ SysV style syscalls added for MorphOS
+ Exportable macros for mode MacPas
+ Support procvar declaration in parameters for mode MacPas
+ Give warning if code is never executed in while/if statements
+ Directive {$COPERATORS ON} added, synomym for -Sc
+ Check for uninitialzed from and to values in for-loop statement
+ -Fa<unit> option added to load units in a program before the uses statement
is parsed
+ -vz for output to stderr
* Better support for unique types
* AfterConstruction/BeforeDestruction behaviour is now compatible with Delphi
* Better support for Widestring
* Removed {$THREADING ON} directive, threading support is always available
* Improved code generation on Sparc
* Lot of small bugs and compatibility fixes
+ On target Mac OS, resource files is supported
RTL:
+ arm Linux support
* Basic threading support moved to the system unit
* Operator ** moved to math unit; system.power removed
* Improved variant support
* Lot of small bugs and compatibility fixes
+ The unit MacOS (api to Mac OS) for target MacOS
FCL:
+ Support for Interbase/Firebird, PostgreSQL and MySQL 4.0 under windows
* Database drivers are now dynamically loaded
* The TSQLQuery is now fully editable using cached updates
* Lot of small bugs and compatibility fixes
Packages:
+ gtk2 interface units
* 64 bit compatibility fixes
* Lot of small bugs and compatibility fixes
IDE:
+ vector unit window
* x86-64 asssembler debugging support improved
* Sparc asssembler debugging support improved
* Some bug fixes
Misc:
+ txt output to fpdoc added
* some fpdoc bugs fixes
+ demo for macos
Version 1.9.6 aka 2.0.0-Rc1
******************************************************************************
What's New in 1.9.6 aka 2.0.0-Rc1
******************************************************************************
Compiler:
+ x86_64/amd64 (Linux) compiler
+ Sparc (Linux) compiler
+ PowerPC MorphOS support
+ Mac OS (classic) compiler (for MPW)
+ Netware Libc support (-Tnetwlibc)
+ Register variable support (-Or) for all targets
+ MacPas compiler mode (-Mmacpas)
* Better inlining support
* For loop variable assignment is not allowed anymore
* $fpctarget expands to <cpu>-<os> (except for 8.3 limited targets),
old $target removed
* Implicit loading of Variants unit
* Lots of bug fixes
RTL:
+ x86_64/amd64 Linux support
+ Sparc Linux support
+ PowerPC MorphOS support
+ Mac OS (classic) support (except Sysutils and its dependants)
+ Netware Libc support
+ New heap manager that releases memory back to the OS
+ TThread.Synchronize support
+ utf8bidi unit
+ GetHeapStatus added
+ GetProcessID added
+ SysUtils.GetEnvironmentVariableCount and SysUtils.GetEnvironmentString added
* gpm unit does not need libgpm anymore
+ Further additions for improved Delphi compatibility
+ System.GetProcessID and System.GetThreadID added
+ Dos.GetMsCount added
+ Support for changing console resolution in Video for Win32
+ Support for using high memory (> 512 MB) under OS/2 (where available)
- Removed MaxAvail, MemAvail, HeapSize due to their unreliability
(bogus/misleading return values) in multitasking environment with swapping
FCL:
+ RTTIUtils unit added
+ fpcunit test-framework added
* Lots of dbf and other db fixes
FV:
* Updated to fvision implementation, first official release
IDE:
* Lots of improvements and stability fixes
* Support latest gdb 6.2.x and 6.3.x releases
Docs:
+ Lots of updates
+ Easier to navigate html documentation
* fpDoc is used to generate all unit documentation
Misc:
* Makefiles create units in a separate directory units/cpu-os/
* More cross compilation improvements
******************************************************************************
What's New in 1.9.4 aka 2.0.0-Beta3
******************************************************************************
Compiler:
+ ARM (Linux) compiler
+ PowerPC Darwin (Mac OS X) support
+ reintroduce keyword support
+ added prefetch(const mem) support
+ MacPas compile mode
+ -gv to generate an executable that can be run under Valgrind >= 2.1
* register allocator fixes and tweaks
* better support for preprocessor $IF expressions
* better overloaded operator support
* Win32 DLL export table fixes
* stabs (debuginfo) generation cleanups
* enum names in RTTI are now in their original case
* record alignment fixes
* lots of bug fixes
RTL:
+ ARM Linux support
+ Powerpc Darwin support
+ Sysutils.RaiseLastOSError added
+ Sysutils.GetLastOSError added
+ Classes.TOwnedCollection added
+ Sysutils.FileIsReadOnly added
+ support of widestring and currency in the typinfo unit
* Better support for Libc based RTL (FPC_USE_LIBC)
* 64bit cleanup for future x86_64 port
* ExecuteProcess fixes
* Linux use getdents syscall instead of deprecated readdir
* bug fixes
FCL:
+ SDF DB backend
+ TGA support in fpImage
+ support of widestring and currency type in stream related classes
* Lot of fixes to fpImage classes
Misc:
* better cross development support
* Documentation updates
* Testsuite updates to store testrun results in a database
* Testsuite updates for cross platform testing, with remote rsh/ssh support
******************************************************************************
What's New in 1.9.2 aka 2.0.0-Beta2
******************************************************************************
Compiler:
+ PowerPC compiler
+ sse/sse2 code generation support
+ "global" property support
* improved inlining support
* optimizer enabled again
* uses register calling conventions by default
* $fputype directive
+ properties of type single can have default values
+ support of $IF DECLARED()
+ support of DQWORD in inline intel assembler code
* lots of bug fixes
RTL:
* more improvements for unix runtime library
* using FPC_USE_LIBC allows to compile an rtl which uses libc instead of
syscalls
+ System.Initialize
+ Sysutils.ExecuteProcess
+ System.WideStringManager
+ System.PtrInt and System.PtrUInt
* ipv6 support
* lots of bug fixes
FCL:
+ sqlite support
* bug fixes
Misc:
* improved docs
******************************************************************************
What's New in 1.9.0 aka 2.0.0-Beta1
******************************************************************************
Compiler:
+ dynamic arrays
+ interfaces
+ variants
+ full widestring support
+ default parameters
+ cross name scope overloading
+ support for the PowerPC, Sparc and ARM processor, installation packages
will follow within the next weeks
+ new and more sophisticated register allocator
+ inlining across units
+ register calling conventions
+ SSE and SSE2 support for inline assembler
+ PIC code generation
+ new language mode: "Mac Pascal"
+ full boolean evaluation is now also available
+ threadvar support, enabled by using {$threading on}
* support of int64 integer constants
* improved Delphi compatibility in -Sd mode
* a lot of bug fixes
* large parts of the compiler are rewritten to create a more stable,
portable and maintainable compiler
RTL:
+ multithreading support
* completely rewritten unix runtime library
* improved Delphi compatiblity
* significantly improved speed of exception related code
* prepared for big endian and 64 Bit CPUs
* a lot of bug fixes
FCL:
+ tdataset support
+ html generator
+ 64 Bit file handling
* a lot of bug fixes
Docs:
* adapted to reflect new language features
IDE:
* a lot of bug fixes
Misc:
* improved cross compilation |
ftp.hu.freepascal.org/pub/fpc/dist/3.2.2/docs/doc-pdf.zip | ||
Free Pascal v. 3.2.2 (source code, 21/5/2021) | ||
ftp.hu.freepascal.org/pub/fpc/dist/3.2.2/source/fpcbuild-3.2.2.zip | ||
Free Pascal v. 3.2.0 (30/5/2020) | Readme/What's new |
Free Pascal Compiler
Version 3.2.0
******************************************************************************
Free Pascal 3.2.0 is a new major release providing support for new
architectures and targets and also many new features and compatibility fixes.
Please also see https://wiki.freepascal.org/User_Changes_3.2.0 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* New platform: Android/AArch64
* New platform: i8086-win16 (16-bit Windows)
* New platform: Android/x86_64
* New platform: Javascript engines
* New platform: Linux/ppc64le
New features are:
-----------------
* Attribute support
* Default Unit Scopes
* Extended Dynamic Array support
* support insert/delete/concat/+ operator
* Dynamic array constructor
* Enhcance dynamic array constant support
* Generic methods/procedures.
* Management operators, Initialize, Finalize, Copy and AddRef operators for records
* IsManagedType intrinsic
* Better character encoding support in base classes and DB components.
* generics.* delphi compatible collections units
* pas2js compiler
* TTF and PDF rendering support
* CHM index support rewritten.
* Many changes and enhancements to TProcess.
* GUI-independent reporting engine
* Improved JSON-RPC support
* Additional HTTP services, SSL support.
* REST server components.
* numerous fixes across all libraries and units.
* Packager & repository management in fppkg.
* 16-bit msdos target enhancements:
* internalink assembler/linker
* huge memory model
* near/far procedure types.
Some important incompatible changes compared to 3.0.x releases:
-----------------------------------------------------
* RTTI format changed
* Linux/Android platforms
* GNU Binutils 2.19.1 or later are required by default
* Stack alignment on Linux/i386
* Now aligned to 16 bytes.
* Windows platforms
* GNU Binutils 2.25 or later are required by default
******************************************************************************
Free Pascal Compiler
Version 3.0.4
******************************************************************************
What's New in 3.0.4
******************************************************************************
Free Pascal 3.0.4 is a point release of the 3.0.x fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_3.0.4 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Packages:
* fcl-pdf updates
* fcl-passrc updates.
* fix traceback on ELF based systems
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
Free Pascal Compiler
Version 3.0.2
******************************************************************************
What's New in 3.0.2
******************************************************************************
Free Pascal 3.0.2 is a point release of the 3.0.x fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_3.0.2 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Rtl:
* TRect, TPoint and similar types are now type compatible between
Types and Windows unit, and are now advanced records.
Packages:
* googleapi and fcl-pdf packages.
* fcl-db and web packages synchronized
* unicode tables updated.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
Free Pascal Compiler
Version 3.0.0
******************************************************************************
What's New in 3.0.0
******************************************************************************
Free Pascal 3.0.0 is a new major release providing support for new
architectures and targets and also many new features and compatibility fixes.
Please also see http://wiki.freepascal.org/User_Changes_3.0.0 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* New processor architecture: MIPS (big and little endian variants)
* New processor architecture: i8086 (primarily focusing legacy MS-DOS)
* New "processor" architecture: JVM
* Revived support for Motorola 68k processors (previously available
in 1.0.x series)
* Considerably extended supported range of ARM processor variants
* New platform: AIX/PowerPC
* New platform: AIX/PowerPC64
* New platform: Android/ARM
* New platform: Android/i386
* New platform: Android/JVM
* New platform: Android/MIPSEL
* New platform: AROS/i386
* New platform: DragonFly/x86_64
* New platform: Java/JVM
* New platform: Linux/MIPS
* New platform: Linux/MIPSEL
* New platform: msdos/i8086
Compiler:
* New support for codepage-aware strings (bringing improved compatibility
to recent Delphi versions)
* Support for processor sub-architectures (mostly for ARM variants)
* Support for multiple memory models (i8086 - including memory models
not supported with the last TP/BP compilers)
RTL:
* Partial support for codepage-aware strings and Unicode in the RTL
including transparent character set conversion
* OS/2 RTL finally provides full support for UnicodeString handling
when running under OS/2 versions including such support (OS/2 Warp 4
and up)
* Direct support for certain OS/2 API functions only available in later
OS/2 versions while allowing the created binaries to run also on older
versions
Packages:
* Big improvements of fpmake (fpmkunit) - all packages and utilities
(actually everything except the compiler and RTL) are now built using
fpmake which somewhat decreases dependency on external utilities.
* New packages rtl-* containing units previously included in RTL; this
allowed streamlining the RTL and thus speeding up RTL building.
* New package fpwidestring - native implementation of Unicode string
handling routines. This allows full support of UnicodeString also
on targets not supporting Unicode natively or possibly on targets
requiring linking to libc for such support.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.6.4
******************************************************************************
Free Pascal 2.6.4 is a point release from the 2.6.0 fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_2.6.4 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Compiler:
Packages:
* Lots and lots fixes and improvements for fcl-db
* Web and json packages synchronized.
* Improvements to the chmcmd compiler.
* Several fixes for winunits (and winceunits)
Platforms:
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.6.2
******************************************************************************
Free Pascal 2.6.2 is a point release from the 2.6.0 fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_2.6.2 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Compiler:
* Improvements and fixes for the ARM architecture
Packages:
* New package fpindexer (indexing engine)
* Support for observer pattern added to fcl-base (and base classes in RTL)
* Lots and lots fixes and improvements for fcl-db
* Support for JSON dataset added among others
* Fixes and improvements for fcl-passrc (and fpdoc)
* Updates for PTCPas and gtk2
* Fpmkunit improvements (better support for future switch to fpmake)
* Several fixes for x11
* Several fixes for winunits (and winceunits)
Platforms:
* Improvements to the NativeNT target (newly introduced as alpha in 2.6.0)
* Many fixes for OpenBSD and NetBSD (considered in beta state now)
* Internal ELF writer supported for more BSD targets
* Fixes and improvements for gba and nds
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.6.0
******************************************************************************
Free Pascal 2.6.0 is a new major version of the Free Pascal compiler.
Please also see http://wiki.freepascal.org/User_Changes_2.6.0 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* iPhoneSimulator target
Compiler:
* Many new language features:
* Objective-Pascal dialect, supported on all Mac OS X and iOS targets
* constref parameter modifier for "const by reference"
* Pascal boolean types with multiple sizes (boolean16/32/64)
* ISO 7185 language mode (except for I/O). Features amongst others:
* nested procedure variables
* non-local goto's
* Mac Pascal mode improvements
* nested procedure variables
* univ modifier
* Intrinsics
* sar (shift arithmetic right)
* bsf/bsr (bitscan forward/reverse)
* Delphi compatibility mode improvements
* Nested types, class variables and class local constants
* Advanced records syntax (no constructors yet)
* (for..in) Enumerators in records
* Class and record helpers
* Generic records, arrays and procedural types
* Delphi-compatibility of generics improved
* Scoped enumerations
* Custom messages for "deprecated" directive
* Ability to use "&" for escaping keywords
* New ARM code generator features
* ARM VFPv2 and VFPv3 floating point unit support
* Thumb-2 support
Packages:
* Many improvements to the rtl
* Many improvements to the database units (fcl-db)
* Objective-Pascal interfaces to Foundation, AppKit, CoreData and WebCore
* OpenGL headers updated to OpenGL 4.0
Details about these new features can be found at
http://wiki.freepascal.org/FPC_New_Features_2.6.0
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs that have been fixed in this release.
******************************************************************************
What's New in 2.4.4
******************************************************************************
Free Pascal 2.4.4 contains most library fixes from early June 2010 till March
2011. There are also some compiler fixes, mostly relating to 64-bit.
Please also see http://wiki.freepascal.org/User_Changes_2.4.4 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Packages:
* Many improvements to the XML units
* Many improvements to the database units.
* Specially sqlite got quite some fixes.
* Many improvements to the chm units.
* Including a commandline CHM compiler
* Many improvements to fppkg and fpmake for another round of testing.
Platforms:
* Fixes for multi-threading support in OS/2 RTL.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.4.2
******************************************************************************
Free Pascal 2.4.2 contains many fixes and a few new features. Most bugfixes
in the RTL and packages before June 2010 have been merged.
Please also see http://wiki.freepascal.org/User_Changes_2.4.2 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Compiler:
* Support D2006+ FOR..IN, with some FPC specific enhancements. Refer to
http://wiki.freepascal.org/for-in_loop for more information
* Support for sealed and abstract classes.
Packages:
* The existing Mac OS X Universal Interfaces units have been synchronised
with the Mac OS X 10.6 SDK. Several new units have also been added, and
where indicated in the Mac OS X 10.6 SDK they have also been enabled for
iPhoneOS/iOS.
* Many improvements to the XML units
* Many improvements to the database units
* Many improvemnets to the chm units
Platforms:
* Long term bug in OS/2 implementation of unit Video finally fixed which
among others allows inclusion of the text-mode IDE (without debugger)
for this platform as part of the distribution again.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.4.0
******************************************************************************
Free Pascal 2.4.0 contains many fixes and new features. While we did not
manage to incorporate all planned additions, we believe this release offers a
nice collection of new functionality and bug fixes.
Please also see http://wiki.freepascal.org/User_Changes_2.4.0 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* New platform: Mac OS X/PowerPC64
* New platform: Mac OS X/x86_64
* New platform: Mac OS X/ARM (iPhone)
Compiler:
* Support for Delphi-style resource handling
* Whole-program optimization infrastructure, which initially supports
program devirtualization and unused virtual method removal
* Much faster compilation of units containing many type-sections
* The ability to suppress individual hints/warnings/notes
* Several improvements to the DWARF debug information generation
* Fixes to the generics support
* Fixes to the interface delegation (implements) support
* Improved cpu register allocation
* Improved ARM/EABI support
RTL:
* Linearly scaling multi-threaded memory manager
* Support for (advisory) file locking on Unix-based platforms
when using the SysUtils file creation/opening routines
* Support for ANSI ISO Extended Pascal ReadStr/WriteStr
* A UnicodeString type that, while not yet equivalent to Delphi 2009's
UnicodeString type, offers reference counted UnicodeString support on
the Windows, Linux, Mac OS X, FreeBSD and Beos/Haiku platforms.
Packages:
* Many improvements to the XML units
* Many improvements to the database units
* Updated the common Mac OS X Pascal interfaces to r241, including
an updated header translation of the CFNetwork framework
* The zipper unit now works correctly on big endian platforms
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.4
******************************************************************************
Free Pascal 2.2.4 contains many bug fixes and some new features. The
main purpose of this release is to fix problems reported with FPC 2.2.2.
Please also see http://wiki.freepascal.org/User_Changes_2.2.4 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
All:
* Experimental packages-installation tool
Packages:
* Added support for TIFF reading/writing in fcl-image
* Improvements and fixes in CHM support
* Fixed linking the gtk2-package with gtk versions above 2.13.4
IDE:
* Added support for CHM help files
Documentation
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.2
******************************************************************************
Free Pascal 2.2.2 contains many bug fixes and some new features. The
main purpose of this release is to fix problems reported with FPC 2.2.0,
and to remove all potentially tainted code from our source code base.
Please also see http://wiki.freepascal.org/User_Changes_2.2.2 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
All:
* All code potentially infringing on CodeGear copyrighted code has been
reimplemented using a cleanroom approach.
Platforms:
* Incompatibilities with Mac OS X 10.5's new default linker have been
resolved.
Compiler:
* PIC support for Mac OS X (on by default, disable with -Cg-)
* several bugs in the experimental generics support have been fixed,
but this feature is still in beta
* initialisation and finalisation of shared libraries has been fixed
for all Darwin platforms, and for Linux/i386
* support for {$packset x} directive to enable set packing
(use {$packset 1} for Delphi-compatible sets, but note that the
format is different on little and big endian platforms)
RTL:
* thread resource leaking under unix has been fixed
* the widestring manager for unix has been completed
* several floating point to string conversion errors have been fixed
* significantly improved variant support
* implementation of RTL exception handler for OS/2 allowing proper
translation of some runtime errors
* various fixes for GO32v2 improving useability of this target
* OS/2 RTL enhanced to allow seamless working with large files (64-bit
file system API calls) where available (WSeB/MCP/eCS/Warp 4 with FP15)
Packages:
* the Windows API interface units have been significantly updated
* Apple universal interfaces updated to r234 of the common FPC/GPC/MW
interfaces
* New TRegexEngine class to parse regular expressions
Documentation
* Documentation was updated completely to conform to the actual
state of the compiler and RTL.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.0
******************************************************************************
Free Pascal 2.2.0 contains a lot of bug fixes and new features. The work on
Free Pascal 2.2.0 started halfway during the year 2005. A lot has been improved
since then.
Please also see http://wiki.freepascal.org/User_Changes_2.2.0 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Platforms:
* New platform: Win64. FPC is the first open source compiler for 64-bit
Windows operating systems.
* New processor architecture: 64-bit PowerPC
* PowerPC/64 support for Linux
* Mac OS X on Intel (i386) is now supported
* New platform: Windows CE (Windows Mobile)
* New platform: Nintendo Game Boy Advance
* New platform: Nintendo DS
* Native support for ARM-platform
* GO32V2 DOS platform got a long needed update
Compiler:
* Internal linker for win32, win64 and wince, resulting in smaller
executables, less memory used during compilation, and faster compile
times for programs using large frameworks like for example the Lazarus
Component Library.
* Generics (experimental)
* Bit packed arrays and records
* Resourcestrings can now be smartlinked, resulting in smaller executables
* Multiple resource files support
* pointer[low..high] syntax to pass C-style pointer arrays to procedures
using open arrays
* Interface delegation
* Proper safecall implementation
* Wide strings are COM/OLE compatible on Windows
* Added several speed optimisations, for example:
* Compiler can omit stack frames (x86 and ARM)
* Compiler can store records in registers
* Tail recursion expansion
* Register renaming optimizations
* Improved optimizer for ARM CPU
* Compiler can initialise local variables, function results, and "out"
parameters with several values (command line parameters -gt till -gtttt)
to help find uses of uninitialised variables
* Compiler can now properly deal with paths > 255 characters in all cases
* Dwarf debug format support
* Reduced memory usage during compilation
* Lot of small bugs and compatibility fixes
RTL:
* Heap uses less memory
* Improved variants support
* Improved currency support
* Exception handling can be used without SysUtils unit
* Lot of small bug and compatibility fixes
FCL:
* Improved database support
* The obsolete sqlitedataset, interbase, fpodbc, ddg, mysqldb3 and mysqldb4
units are removed
* Lot of small bugs and compatibility fixes
Packages:
* Added a new fppkg package manager
* Improved database support
* Added Delphi compatible RichEdit unit
* Apple universal interfaces updated to r204 of the common FPC/GPC/MW
interfaces
* Lot of small bugs and compatibility fixes
Free Vision:
* Now uses resourcestrings
IDE:
* Evaluate window
* Improved HTML rendering
* Improved xterm support
* Small bug fixes
Misc:
* Improved documentation
* Better cross compilation support
For a detailed list of reported bugs that are fixed in this release see the
bugtracker report at http://www.freepascal.org/mantis/changelog_page.php
******************************************************************************
What's New in 2.0.4
******************************************************************************
More than 1000 changes have been made to 2.0.4 since 2.0.2. As this is a bug
fix release, most are fixes for some issues, but new features and performance
enhancements have been added as well.
Compiler:
* Lot of small bugs and compatibility fixes
* Updated several translations
* Improved code generation
* Improved and fixed PIC code generation
* Improved register allocation
* Improved ansistring string code generation
* Several alignment values increased so the requirements of modern processors
are met better
* WINDOWS defined on all windows platforms (Win32, Win64, WinCE)
* Parameter order for methods with structured results changed
(result pointer<->self swapped), please check such methods if they are
implemented in assembler
* i386 compiler no longer needs environment variables set when installed on
an x86_64 Linux distribution
RTL:
* Lot of small bug and compatibility fixes
* 64 bit file pointer support on most targets
* Faster integer to string conversion
* Endian conversion routines added
* Improved heap manager
* Improved ansistring routines
* PowerPC: Power3/4/5/PPC970 compatibility
FCL:
* Lot of small bugs and compatibility fixes
* Improved database support
* The interbase, fpodbc, ddg, mysqldb3 and mysqldb4 units
are obsolete and replaced by the sqldb components
* Oracle support added
Packages:
* Lot of small bugs and compatibility fixes
* Improved database support
* Apple universal interfaces added
Free Vision:
* New outline unit
* Small bug fixes
* Unix: much improved video and keyboard handling
* Unix: Free Vision applications no longer need to link to libc
* Linux: grab_vcsa utility to ensure vcsa access
IDE:
* Small bug fixes
* Redesigned directories window
* Reorganised compiler options window
* Option to use Ctrl+X,C,V for cut/copy/paste
Misc:
* Improved documentation
* Better cross compilation support
******************************************************************************
What's New in 2.0.2
******************************************************************************
This is a bug fix release, so don't expect a big new feature list here. Most
of the almost 700 changes made to 2.0.2 since 2.0.0 are fixes for some issues.
Compiler:
* Lot of small bugs and compatibility fixes
* Improved SSE support
* Improved inlining
* Enhanced variant support
* Embedded resource support for targets using elf32 executable format
+ Type checking of compile time expressions
+ Mode MacPas: Support for Mac style objects
+ Mode MacPas: Compile time variables can be given on command line
RTL:
* Lot of small bugs and compatibility fixes
* Enhanced variant support
* Embedded resource support for targets using elf32 executable format
FCL:
* Lot of small bugs and compatibility fixes
* Improved SqlDB package
Packages:
* Lot of small bugs and compatibility fixes
* Improved data base support
IDE:
* Small bug fixes
Misc:
* Improved docs
* Bug fixes for FreeVision
******************************************************************************
What's New in 2.0.0
******************************************************************************
Compiler:
+ properties in objects are now allowed
+ use of cmov when at least -Cppentium2 is supplied (i386+ only)
+ .p is a searched source extension in macpas mode now
* Improved MacPas mode
* Improved variant support
* Updated language files
* Improved warnings regarding uninitialised variables
* Lot of small bugs and compatibility fixes
RTL:
* Several widestring and unicode fixes
* Heavily improved variant support
* Improved threading support
* Improved 64 bit compatibility
* Lot of small bugs and compatibility fixes
FCL:
* Improved data base support
* Lot of small bugs and compatibility fixes
Packages:
+ Jedi windows api is part of the packages now
+ Windows specific units of the rtl have been moved to packages/base/winunits
+ XFree header conversions to X package added
* Endian and 64 bit fixes
* Lot of small bugs and compatibility fixes
IDE:
* Small bug fixes
Misc:
* Improved docs
* Bug fixes for FreeVision
******************************************************************************
What's New in 1.9.8 aka 2.0.0-Rc2
******************************************************************************
Compiler:
+ arm-linux cross compiler for i386-linux
+ SysV style syscalls added for MorphOS
+ Exportable macros for mode MacPas
+ Support procvar declaration in parameters for mode MacPas
+ Give warning if code is never executed in while/if statements
+ Directive {$COPERATORS ON} added, synomym for -Sc
+ Check for uninitialzed from and to values in for-loop statement
+ -Fa<unit> option added to load units in a program before the uses statement
is parsed
+ -vz for output to stderr
* Better support for unique types
* AfterConstruction/BeforeDestruction behaviour is now compatible with Delphi
* Better support for Widestring
* Removed {$THREADING ON} directive, threading support is always available
* Improved code generation on Sparc
* Lot of small bugs and compatibility fixes
+ On target Mac OS, resource files is supported
RTL:
+ arm Linux support
* Basic threading support moved to the system unit
* Operator ** moved to math unit; system.power removed
* Improved variant support
* Lot of small bugs and compatibility fixes
+ The unit MacOS (api to Mac OS) for target MacOS
FCL:
+ Support for Interbase/Firebird, PostgreSQL and MySQL 4.0 under windows
* Database drivers are now dynamically loaded
* The TSQLQuery is now fully editable using cached updates
* Lot of small bugs and compatibility fixes
Packages:
+ gtk2 interface units
* 64 bit compatibility fixes
* Lot of small bugs and compatibility fixes
IDE:
+ vector unit window
* x86-64 asssembler debugging support improved
* Sparc asssembler debugging support improved
* Some bug fixes
Misc:
+ txt output to fpdoc added
* some fpdoc bugs fixes
+ demo for macos
******************************************************************************
What's New in 1.9.6 aka 2.0.0-Rc1
******************************************************************************
Compiler:
+ x86_64/amd64 (Linux) compiler
+ Sparc (Linux) compiler
+ PowerPC MorphOS support
+ Mac OS (classic) compiler (for MPW)
+ Netware Libc support (-Tnetwlibc)
+ Register variable support (-Or) for all targets
+ MacPas compiler mode (-Mmacpas)
* Better inlining support
* For loop variable assignment is not allowed anymore
* $fpctarget expands to <cpu>-<os> (except for 8.3 limited targets),
old $target removed
* Implicit loading of Variants unit
* Lots of bug fixes
RTL:
+ x86_64/amd64 Linux support
+ Sparc Linux support
+ PowerPC MorphOS support
+ Mac OS (classic) support (except Sysutils and its dependants)
+ Netware Libc support
+ New heap manager that releases memory back to the OS
+ TThread.Synchronize support
+ utf8bidi unit
+ GetHeapStatus added
+ GetProcessID added
+ SysUtils.GetEnvironmentVariableCount and SysUtils.GetEnvironmentString added
* gpm unit does not need libgpm anymore
+ Further additions for improved Delphi compatibility
+ System.GetProcessID and System.GetThreadID added
+ Dos.GetMsCount added
+ Support for changing console resolution in Video for Win32
+ Support for using high memory (> 512 MB) under OS/2 (where available)
- Removed MaxAvail, MemAvail, HeapSize due to their unreliability
(bogus/misleading return values) in multitasking environment with swapping
FCL:
+ RTTIUtils unit added
+ fpcunit test-framework added
* Lots of dbf and other db fixes
FV:
* Updated to fvision implementation, first official release
IDE:
* Lots of improvements and stability fixes
* Support latest gdb 6.2.x and 6.3.x releases
Docs:
+ Lots of updates
+ Easier to navigate html documentation
* fpDoc is used to generate all unit documentation
Misc:
* Makefiles create units in a separate directory units/cpu-os/
* More cross compilation improvements
******************************************************************************
What's New in 1.9.4 aka 2.0.0-Beta3
******************************************************************************
Compiler:
+ ARM (Linux) compiler
+ PowerPC Darwin (Mac OS X) support
+ reintroduce keyword support
+ added prefetch(const mem) support
+ MacPas compile mode
+ -gv to generate an executable that can be run under Valgrind >= 2.1
* register allocator fixes and tweaks
* better support for preprocessor $IF expressions
* better overloaded operator support
* Win32 DLL export table fixes
* stabs (debuginfo) generation cleanups
* enum names in RTTI are now in their original case
* record alignment fixes
* lots of bug fixes
RTL:
+ ARM Linux support
+ Powerpc Darwin support
+ Sysutils.RaiseLastOSError added
+ Sysutils.GetLastOSError added
+ Classes.TOwnedCollection added
+ Sysutils.FileIsReadOnly added
+ support of widestring and currency in the typinfo unit
* Better support for Libc based RTL (FPC_USE_LIBC)
* 64bit cleanup for future x86_64 port
* ExecuteProcess fixes
* Linux use getdents syscall instead of deprecated readdir
* bug fixes
FCL:
+ SDF DB backend
+ TGA support in fpImage
+ support of widestring and currency type in stream related classes
* Lot of fixes to fpImage classes
Misc:
* better cross development support
* Documentation updates
* Testsuite updates to store testrun results in a database
* Testsuite updates for cross platform testing, with remote rsh/ssh support
******************************************************************************
What's New in 1.9.2 aka 2.0.0-Beta2
******************************************************************************
Compiler:
+ PowerPC compiler
+ sse/sse2 code generation support
+ "global" property support
* improved inlining support
* optimizer enabled again
* uses register calling conventions by default
* $fputype directive
+ properties of type single can have default values
+ support of $IF DECLARED()
+ support of DQWORD in inline intel assembler code
* lots of bug fixes
RTL:
* more improvements for unix runtime library
* using FPC_USE_LIBC allows to compile an rtl which uses libc instead of
syscalls
+ System.Initialize
+ Sysutils.ExecuteProcess
+ System.WideStringManager
+ System.PtrInt and System.PtrUInt
* ipv6 support
* lots of bug fixes
FCL:
+ sqlite support
* bug fixes
Misc:
* improved docs
******************************************************************************
What's New in 1.9.0 aka 2.0.0-Beta1
******************************************************************************
Compiler:
+ dynamic arrays
+ interfaces
+ variants
+ full widestring support
+ default parameters
+ cross name scope overloading
+ support for the PowerPC, Sparc and ARM processor, installation packages
will follow within the next weeks
+ new and more sophisticated register allocator
+ inlining across units
+ register calling conventions
+ SSE and SSE2 support for inline assembler
+ PIC code generation
+ new language mode: "Mac Pascal"
+ full boolean evaluation is now also available
+ threadvar support, enabled by using {$threading on}
* support of int64 integer constants
* improved Delphi compatibility in -Sd mode
* a lot of bug fixes
* large parts of the compiler are rewritten to create a more stable,
portable and maintainable compiler
RTL:
+ multithreading support
* completely rewritten unix runtime library
* improved Delphi compatiblity
* significantly improved speed of exception related code
* prepared for big endian and 64 Bit CPUs
* a lot of bug fixes
FCL:
+ tdataset support
+ html generator
+ 64 Bit file handling
* a lot of bug fixes
Docs:
* adapted to reflect new language features
IDE:
* a lot of bug fixes
Misc:
* improved cross compilation
|
ftp.freepascal.org/pub/fpc/dist/3.2.0/i386-os2/os2320.zip | ||
Free Pascal v. 3.2.0 (source code, 30/5/2020) | Readme/What's new |
Free Pascal Compiler
Version 3.2.0
******************************************************************************
Free Pascal 3.2.0 is a new major release providing support for new
architectures and targets and also many new features and compatibility fixes.
Please also see https://wiki.freepascal.org/User_Changes_3.2.0 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* New platform: Android/AArch64
* New platform: i8086-win16 (16-bit Windows)
* New platform: Android/x86_64
* New platform: Javascript engines
* New platform: Linux/ppc64le
New features are:
-----------------
* Attribute support
* Default Unit Scopes
* Extended Dynamic Array support
* support insert/delete/concat/+ operator
* Dynamic array constructor
* Enhcance dynamic array constant support
* Generic methods/procedures.
* Management operators, Initialize, Finalize, Copy and AddRef operators for records
* IsManagedType intrinsic
* Better character encoding support in base classes and DB components.
* generics.* delphi compatible collections units
* pas2js compiler
* TTF and PDF rendering support
* CHM index support rewritten.
* Many changes and enhancements to TProcess.
* GUI-independent reporting engine
* Improved JSON-RPC support
* Additional HTTP services, SSL support.
* REST server components.
* numerous fixes across all libraries and units.
* Packager & repository management in fppkg.
* 16-bit msdos target enhancements:
* internalink assembler/linker
* huge memory model
* near/far procedure types.
Some important incompatible changes compared to 3.0.x releases:
-----------------------------------------------------
* RTTI format changed
* Linux/Android platforms
* GNU Binutils 2.19.1 or later are required by default
* Stack alignment on Linux/i386
* Now aligned to 16 bytes.
* Windows platforms
* GNU Binutils 2.25 or later are required by default
******************************************************************************
Free Pascal Compiler
Version 3.0.4
******************************************************************************
What's New in 3.0.4
******************************************************************************
Free Pascal 3.0.4 is a point release of the 3.0.x fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_3.0.4 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Packages:
* fcl-pdf updates
* fcl-passrc updates.
* fix traceback on ELF based systems
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
Free Pascal Compiler
Version 3.0.2
******************************************************************************
What's New in 3.0.2
******************************************************************************
Free Pascal 3.0.2 is a point release of the 3.0.x fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_3.0.2 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Rtl:
* TRect, TPoint and similar types are now type compatible between
Types and Windows unit, and are now advanced records.
Packages:
* googleapi and fcl-pdf packages.
* fcl-db and web packages synchronized
* unicode tables updated.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
Free Pascal Compiler
Version 3.0.0
******************************************************************************
What's New in 3.0.0
******************************************************************************
Free Pascal 3.0.0 is a new major release providing support for new
architectures and targets and also many new features and compatibility fixes.
Please also see http://wiki.freepascal.org/User_Changes_3.0.0 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* New processor architecture: MIPS (big and little endian variants)
* New processor architecture: i8086 (primarily focusing legacy MS-DOS)
* New "processor" architecture: JVM
* Revived support for Motorola 68k processors (previously available
in 1.0.x series)
* Considerably extended supported range of ARM processor variants
* New platform: AIX/PowerPC
* New platform: AIX/PowerPC64
* New platform: Android/ARM
* New platform: Android/i386
* New platform: Android/JVM
* New platform: Android/MIPSEL
* New platform: AROS/i386
* New platform: DragonFly/x86_64
* New platform: Java/JVM
* New platform: Linux/MIPS
* New platform: Linux/MIPSEL
* New platform: msdos/i8086
Compiler:
* New support for codepage-aware strings (bringing improved compatibility
to recent Delphi versions)
* Support for processor sub-architectures (mostly for ARM variants)
* Support for multiple memory models (i8086 - including memory models
not supported with the last TP/BP compilers)
RTL:
* Partial support for codepage-aware strings and Unicode in the RTL
including transparent character set conversion
* OS/2 RTL finally provides full support for UnicodeString handling
when running under OS/2 versions including such support (OS/2 Warp 4
and up)
* Direct support for certain OS/2 API functions only available in later
OS/2 versions while allowing the created binaries to run also on older
versions
Packages:
* Big improvements of fpmake (fpmkunit) - all packages and utilities
(actually everything except the compiler and RTL) are now built using
fpmake which somewhat decreases dependency on external utilities.
* New packages rtl-* containing units previously included in RTL; this
allowed streamlining the RTL and thus speeding up RTL building.
* New package fpwidestring - native implementation of Unicode string
handling routines. This allows full support of UnicodeString also
on targets not supporting Unicode natively or possibly on targets
requiring linking to libc for such support.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.6.4
******************************************************************************
Free Pascal 2.6.4 is a point release from the 2.6.0 fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_2.6.4 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Compiler:
Packages:
* Lots and lots fixes and improvements for fcl-db
* Web and json packages synchronized.
* Improvements to the chmcmd compiler.
* Several fixes for winunits (and winceunits)
Platforms:
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.6.2
******************************************************************************
Free Pascal 2.6.2 is a point release from the 2.6.0 fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_2.6.2 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Compiler:
* Improvements and fixes for the ARM architecture
Packages:
* New package fpindexer (indexing engine)
* Support for observer pattern added to fcl-base (and base classes in RTL)
* Lots and lots fixes and improvements for fcl-db
* Support for JSON dataset added among others
* Fixes and improvements for fcl-passrc (and fpdoc)
* Updates for PTCPas and gtk2
* Fpmkunit improvements (better support for future switch to fpmake)
* Several fixes for x11
* Several fixes for winunits (and winceunits)
Platforms:
* Improvements to the NativeNT target (newly introduced as alpha in 2.6.0)
* Many fixes for OpenBSD and NetBSD (considered in beta state now)
* Internal ELF writer supported for more BSD targets
* Fixes and improvements for gba and nds
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.6.0
******************************************************************************
Free Pascal 2.6.0 is a new major version of the Free Pascal compiler.
Please also see http://wiki.freepascal.org/User_Changes_2.6.0 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* iPhoneSimulator target
Compiler:
* Many new language features:
* Objective-Pascal dialect, supported on all Mac OS X and iOS targets
* constref parameter modifier for "const by reference"
* Pascal boolean types with multiple sizes (boolean16/32/64)
* ISO 7185 language mode (except for I/O). Features amongst others:
* nested procedure variables
* non-local goto's
* Mac Pascal mode improvements
* nested procedure variables
* univ modifier
* Intrinsics
* sar (shift arithmetic right)
* bsf/bsr (bitscan forward/reverse)
* Delphi compatibility mode improvements
* Nested types, class variables and class local constants
* Advanced records syntax (no constructors yet)
* (for..in) Enumerators in records
* Class and record helpers
* Generic records, arrays and procedural types
* Delphi-compatibility of generics improved
* Scoped enumerations
* Custom messages for "deprecated" directive
* Ability to use "&" for escaping keywords
* New ARM code generator features
* ARM VFPv2 and VFPv3 floating point unit support
* Thumb-2 support
Packages:
* Many improvements to the rtl
* Many improvements to the database units (fcl-db)
* Objective-Pascal interfaces to Foundation, AppKit, CoreData and WebCore
* OpenGL headers updated to OpenGL 4.0
Details about these new features can be found at
http://wiki.freepascal.org/FPC_New_Features_2.6.0
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs that have been fixed in this release.
******************************************************************************
What's New in 2.4.4
******************************************************************************
Free Pascal 2.4.4 contains most library fixes from early June 2010 till March
2011. There are also some compiler fixes, mostly relating to 64-bit.
Please also see http://wiki.freepascal.org/User_Changes_2.4.4 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Packages:
* Many improvements to the XML units
* Many improvements to the database units.
* Specially sqlite got quite some fixes.
* Many improvements to the chm units.
* Including a commandline CHM compiler
* Many improvements to fppkg and fpmake for another round of testing.
Platforms:
* Fixes for multi-threading support in OS/2 RTL.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.4.2
******************************************************************************
Free Pascal 2.4.2 contains many fixes and a few new features. Most bugfixes
in the RTL and packages before June 2010 have been merged.
Please also see http://wiki.freepascal.org/User_Changes_2.4.2 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Compiler:
* Support D2006+ FOR..IN, with some FPC specific enhancements. Refer to
http://wiki.freepascal.org/for-in_loop for more information
* Support for sealed and abstract classes.
Packages:
* The existing Mac OS X Universal Interfaces units have been synchronised
with the Mac OS X 10.6 SDK. Several new units have also been added, and
where indicated in the Mac OS X 10.6 SDK they have also been enabled for
iPhoneOS/iOS.
* Many improvements to the XML units
* Many improvements to the database units
* Many improvemnets to the chm units
Platforms:
* Long term bug in OS/2 implementation of unit Video finally fixed which
among others allows inclusion of the text-mode IDE (without debugger)
for this platform as part of the distribution again.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.4.0
******************************************************************************
Free Pascal 2.4.0 contains many fixes and new features. While we did not
manage to incorporate all planned additions, we believe this release offers a
nice collection of new functionality and bug fixes.
Please also see http://wiki.freepascal.org/User_Changes_2.4.0 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* New platform: Mac OS X/PowerPC64
* New platform: Mac OS X/x86_64
* New platform: Mac OS X/ARM (iPhone)
Compiler:
* Support for Delphi-style resource handling
* Whole-program optimization infrastructure, which initially supports
program devirtualization and unused virtual method removal
* Much faster compilation of units containing many type-sections
* The ability to suppress individual hints/warnings/notes
* Several improvements to the DWARF debug information generation
* Fixes to the generics support
* Fixes to the interface delegation (implements) support
* Improved cpu register allocation
* Improved ARM/EABI support
RTL:
* Linearly scaling multi-threaded memory manager
* Support for (advisory) file locking on Unix-based platforms
when using the SysUtils file creation/opening routines
* Support for ANSI ISO Extended Pascal ReadStr/WriteStr
* A UnicodeString type that, while not yet equivalent to Delphi 2009's
UnicodeString type, offers reference counted UnicodeString support on
the Windows, Linux, Mac OS X, FreeBSD and Beos/Haiku platforms.
Packages:
* Many improvements to the XML units
* Many improvements to the database units
* Updated the common Mac OS X Pascal interfaces to r241, including
an updated header translation of the CFNetwork framework
* The zipper unit now works correctly on big endian platforms
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.4
******************************************************************************
Free Pascal 2.2.4 contains many bug fixes and some new features. The
main purpose of this release is to fix problems reported with FPC 2.2.2.
Please also see http://wiki.freepascal.org/User_Changes_2.2.4 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
All:
* Experimental packages-installation tool
Packages:
* Added support for TIFF reading/writing in fcl-image
* Improvements and fixes in CHM support
* Fixed linking the gtk2-package with gtk versions above 2.13.4
IDE:
* Added support for CHM help files
Documentation
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.2
******************************************************************************
Free Pascal 2.2.2 contains many bug fixes and some new features. The
main purpose of this release is to fix problems reported with FPC 2.2.0,
and to remove all potentially tainted code from our source code base.
Please also see http://wiki.freepascal.org/User_Changes_2.2.2 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
All:
* All code potentially infringing on CodeGear copyrighted code has been
reimplemented using a cleanroom approach.
Platforms:
* Incompatibilities with Mac OS X 10.5's new default linker have been
resolved.
Compiler:
* PIC support for Mac OS X (on by default, disable with -Cg-)
* several bugs in the experimental generics support have been fixed,
but this feature is still in beta
* initialisation and finalisation of shared libraries has been fixed
for all Darwin platforms, and for Linux/i386
* support for {$packset x} directive to enable set packing
(use {$packset 1} for Delphi-compatible sets, but note that the
format is different on little and big endian platforms)
RTL:
* thread resource leaking under unix has been fixed
* the widestring manager for unix has been completed
* several floating point to string conversion errors have been fixed
* significantly improved variant support
* implementation of RTL exception handler for OS/2 allowing proper
translation of some runtime errors
* various fixes for GO32v2 improving useability of this target
* OS/2 RTL enhanced to allow seamless working with large files (64-bit
file system API calls) where available (WSeB/MCP/eCS/Warp 4 with FP15)
Packages:
* the Windows API interface units have been significantly updated
* Apple universal interfaces updated to r234 of the common FPC/GPC/MW
interfaces
* New TRegexEngine class to parse regular expressions
Documentation
* Documentation was updated completely to conform to the actual
state of the compiler and RTL.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.0
******************************************************************************
Free Pascal 2.2.0 contains a lot of bug fixes and new features. The work on
Free Pascal 2.2.0 started halfway during the year 2005. A lot has been improved
since then.
Please also see http://wiki.freepascal.org/User_Changes_2.2.0 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Platforms:
* New platform: Win64. FPC is the first open source compiler for 64-bit
Windows operating systems.
* New processor architecture: 64-bit PowerPC
* PowerPC/64 support for Linux
* Mac OS X on Intel (i386) is now supported
* New platform: Windows CE (Windows Mobile)
* New platform: Nintendo Game Boy Advance
* New platform: Nintendo DS
* Native support for ARM-platform
* GO32V2 DOS platform got a long needed update
Compiler:
* Internal linker for win32, win64 and wince, resulting in smaller
executables, less memory used during compilation, and faster compile
times for programs using large frameworks like for example the Lazarus
Component Library.
* Generics (experimental)
* Bit packed arrays and records
* Resourcestrings can now be smartlinked, resulting in smaller executables
* Multiple resource files support
* pointer[low..high] syntax to pass C-style pointer arrays to procedures
using open arrays
* Interface delegation
* Proper safecall implementation
* Wide strings are COM/OLE compatible on Windows
* Added several speed optimisations, for example:
* Compiler can omit stack frames (x86 and ARM)
* Compiler can store records in registers
* Tail recursion expansion
* Register renaming optimizations
* Improved optimizer for ARM CPU
* Compiler can initialise local variables, function results, and "out"
parameters with several values (command line parameters -gt till -gtttt)
to help find uses of uninitialised variables
* Compiler can now properly deal with paths > 255 characters in all cases
* Dwarf debug format support
* Reduced memory usage during compilation
* Lot of small bugs and compatibility fixes
RTL:
* Heap uses less memory
* Improved variants support
* Improved currency support
* Exception handling can be used without SysUtils unit
* Lot of small bug and compatibility fixes
FCL:
* Improved database support
* The obsolete sqlitedataset, interbase, fpodbc, ddg, mysqldb3 and mysqldb4
units are removed
* Lot of small bugs and compatibility fixes
Packages:
* Added a new fppkg package manager
* Improved database support
* Added Delphi compatible RichEdit unit
* Apple universal interfaces updated to r204 of the common FPC/GPC/MW
interfaces
* Lot of small bugs and compatibility fixes
Free Vision:
* Now uses resourcestrings
IDE:
* Evaluate window
* Improved HTML rendering
* Improved xterm support
* Small bug fixes
Misc:
* Improved documentation
* Better cross compilation support
For a detailed list of reported bugs that are fixed in this release see the
bugtracker report at http://www.freepascal.org/mantis/changelog_page.php
******************************************************************************
What's New in 2.0.4
******************************************************************************
More than 1000 changes have been made to 2.0.4 since 2.0.2. As this is a bug
fix release, most are fixes for some issues, but new features and performance
enhancements have been added as well.
Compiler:
* Lot of small bugs and compatibility fixes
* Updated several translations
* Improved code generation
* Improved and fixed PIC code generation
* Improved register allocation
* Improved ansistring string code generation
* Several alignment values increased so the requirements of modern processors
are met better
* WINDOWS defined on all windows platforms (Win32, Win64, WinCE)
* Parameter order for methods with structured results changed
(result pointer<->self swapped), please check such methods if they are
implemented in assembler
* i386 compiler no longer needs environment variables set when installed on
an x86_64 Linux distribution
RTL:
* Lot of small bug and compatibility fixes
* 64 bit file pointer support on most targets
* Faster integer to string conversion
* Endian conversion routines added
* Improved heap manager
* Improved ansistring routines
* PowerPC: Power3/4/5/PPC970 compatibility
FCL:
* Lot of small bugs and compatibility fixes
* Improved database support
* The interbase, fpodbc, ddg, mysqldb3 and mysqldb4 units
are obsolete and replaced by the sqldb components
* Oracle support added
Packages:
* Lot of small bugs and compatibility fixes
* Improved database support
* Apple universal interfaces added
Free Vision:
* New outline unit
* Small bug fixes
* Unix: much improved video and keyboard handling
* Unix: Free Vision applications no longer need to link to libc
* Linux: grab_vcsa utility to ensure vcsa access
IDE:
* Small bug fixes
* Redesigned directories window
* Reorganised compiler options window
* Option to use Ctrl+X,C,V for cut/copy/paste
Misc:
* Improved documentation
* Better cross compilation support
******************************************************************************
What's New in 2.0.2
******************************************************************************
This is a bug fix release, so don't expect a big new feature list here. Most
of the almost 700 changes made to 2.0.2 since 2.0.0 are fixes for some issues.
Compiler:
* Lot of small bugs and compatibility fixes
* Improved SSE support
* Improved inlining
* Enhanced variant support
* Embedded resource support for targets using elf32 executable format
+ Type checking of compile time expressions
+ Mode MacPas: Support for Mac style objects
+ Mode MacPas: Compile time variables can be given on command line
RTL:
* Lot of small bugs and compatibility fixes
* Enhanced variant support
* Embedded resource support for targets using elf32 executable format
FCL:
* Lot of small bugs and compatibility fixes
* Improved SqlDB package
Packages:
* Lot of small bugs and compatibility fixes
* Improved data base support
IDE:
* Small bug fixes
Misc:
* Improved docs
* Bug fixes for FreeVision
******************************************************************************
What's New in 2.0.0
******************************************************************************
Compiler:
+ properties in objects are now allowed
+ use of cmov when at least -Cppentium2 is supplied (i386+ only)
+ .p is a searched source extension in macpas mode now
* Improved MacPas mode
* Improved variant support
* Updated language files
* Improved warnings regarding uninitialised variables
* Lot of small bugs and compatibility fixes
RTL:
* Several widestring and unicode fixes
* Heavily improved variant support
* Improved threading support
* Improved 64 bit compatibility
* Lot of small bugs and compatibility fixes
FCL:
* Improved data base support
* Lot of small bugs and compatibility fixes
Packages:
+ Jedi windows api is part of the packages now
+ Windows specific units of the rtl have been moved to packages/base/winunits
+ XFree header conversions to X package added
* Endian and 64 bit fixes
* Lot of small bugs and compatibility fixes
IDE:
* Small bug fixes
Misc:
* Improved docs
* Bug fixes for FreeVision
******************************************************************************
What's New in 1.9.8 aka 2.0.0-Rc2
******************************************************************************
Compiler:
+ arm-linux cross compiler for i386-linux
+ SysV style syscalls added for MorphOS
+ Exportable macros for mode MacPas
+ Support procvar declaration in parameters for mode MacPas
+ Give warning if code is never executed in while/if statements
+ Directive {$COPERATORS ON} added, synomym for -Sc
+ Check for uninitialzed from and to values in for-loop statement
+ -Fa<unit> option added to load units in a program before the uses statement
is parsed
+ -vz for output to stderr
* Better support for unique types
* AfterConstruction/BeforeDestruction behaviour is now compatible with Delphi
* Better support for Widestring
* Removed {$THREADING ON} directive, threading support is always available
* Improved code generation on Sparc
* Lot of small bugs and compatibility fixes
+ On target Mac OS, resource files is supported
RTL:
+ arm Linux support
* Basic threading support moved to the system unit
* Operator ** moved to math unit; system.power removed
* Improved variant support
* Lot of small bugs and compatibility fixes
+ The unit MacOS (api to Mac OS) for target MacOS
FCL:
+ Support for Interbase/Firebird, PostgreSQL and MySQL 4.0 under windows
* Database drivers are now dynamically loaded
* The TSQLQuery is now fully editable using cached updates
* Lot of small bugs and compatibility fixes
Packages:
+ gtk2 interface units
* 64 bit compatibility fixes
* Lot of small bugs and compatibility fixes
IDE:
+ vector unit window
* x86-64 asssembler debugging support improved
* Sparc asssembler debugging support improved
* Some bug fixes
Misc:
+ txt output to fpdoc added
* some fpdoc bugs fixes
+ demo for macos
******************************************************************************
What's New in 1.9.6 aka 2.0.0-Rc1
******************************************************************************
Compiler:
+ x86_64/amd64 (Linux) compiler
+ Sparc (Linux) compiler
+ PowerPC MorphOS support
+ Mac OS (classic) compiler (for MPW)
+ Netware Libc support (-Tnetwlibc)
+ Register variable support (-Or) for all targets
+ MacPas compiler mode (-Mmacpas)
* Better inlining support
* For loop variable assignment is not allowed anymore
* $fpctarget expands to <cpu>-<os> (except for 8.3 limited targets),
old $target removed
* Implicit loading of Variants unit
* Lots of bug fixes
RTL:
+ x86_64/amd64 Linux support
+ Sparc Linux support
+ PowerPC MorphOS support
+ Mac OS (classic) support (except Sysutils and its dependants)
+ Netware Libc support
+ New heap manager that releases memory back to the OS
+ TThread.Synchronize support
+ utf8bidi unit
+ GetHeapStatus added
+ GetProcessID added
+ SysUtils.GetEnvironmentVariableCount and SysUtils.GetEnvironmentString added
* gpm unit does not need libgpm anymore
+ Further additions for improved Delphi compatibility
+ System.GetProcessID and System.GetThreadID added
+ Dos.GetMsCount added
+ Support for changing console resolution in Video for Win32
+ Support for using high memory (> 512 MB) under OS/2 (where available)
- Removed MaxAvail, MemAvail, HeapSize due to their unreliability
(bogus/misleading return values) in multitasking environment with swapping
FCL:
+ RTTIUtils unit added
+ fpcunit test-framework added
* Lots of dbf and other db fixes
FV:
* Updated to fvision implementation, first official release
IDE:
* Lots of improvements and stability fixes
* Support latest gdb 6.2.x and 6.3.x releases
Docs:
+ Lots of updates
+ Easier to navigate html documentation
* fpDoc is used to generate all unit documentation
Misc:
* Makefiles create units in a separate directory units/cpu-os/
* More cross compilation improvements
******************************************************************************
What's New in 1.9.4 aka 2.0.0-Beta3
******************************************************************************
Compiler:
+ ARM (Linux) compiler
+ PowerPC Darwin (Mac OS X) support
+ reintroduce keyword support
+ added prefetch(const mem) support
+ MacPas compile mode
+ -gv to generate an executable that can be run under Valgrind >= 2.1
* register allocator fixes and tweaks
* better support for preprocessor $IF expressions
* better overloaded operator support
* Win32 DLL export table fixes
* stabs (debuginfo) generation cleanups
* enum names in RTTI are now in their original case
* record alignment fixes
* lots of bug fixes
RTL:
+ ARM Linux support
+ Powerpc Darwin support
+ Sysutils.RaiseLastOSError added
+ Sysutils.GetLastOSError added
+ Classes.TOwnedCollection added
+ Sysutils.FileIsReadOnly added
+ support of widestring and currency in the typinfo unit
* Better support for Libc based RTL (FPC_USE_LIBC)
* 64bit cleanup for future x86_64 port
* ExecuteProcess fixes
* Linux use getdents syscall instead of deprecated readdir
* bug fixes
FCL:
+ SDF DB backend
+ TGA support in fpImage
+ support of widestring and currency type in stream related classes
* Lot of fixes to fpImage classes
Misc:
* better cross development support
* Documentation updates
* Testsuite updates to store testrun results in a database
* Testsuite updates for cross platform testing, with remote rsh/ssh support
******************************************************************************
What's New in 1.9.2 aka 2.0.0-Beta2
******************************************************************************
Compiler:
+ PowerPC compiler
+ sse/sse2 code generation support
+ "global" property support
* improved inlining support
* optimizer enabled again
* uses register calling conventions by default
* $fputype directive
+ properties of type single can have default values
+ support of $IF DECLARED()
+ support of DQWORD in inline intel assembler code
* lots of bug fixes
RTL:
* more improvements for unix runtime library
* using FPC_USE_LIBC allows to compile an rtl which uses libc instead of
syscalls
+ System.Initialize
+ Sysutils.ExecuteProcess
+ System.WideStringManager
+ System.PtrInt and System.PtrUInt
* ipv6 support
* lots of bug fixes
FCL:
+ sqlite support
* bug fixes
Misc:
* improved docs
******************************************************************************
What's New in 1.9.0 aka 2.0.0-Beta1
******************************************************************************
Compiler:
+ dynamic arrays
+ interfaces
+ variants
+ full widestring support
+ default parameters
+ cross name scope overloading
+ support for the PowerPC, Sparc and ARM processor, installation packages
will follow within the next weeks
+ new and more sophisticated register allocator
+ inlining across units
+ register calling conventions
+ SSE and SSE2 support for inline assembler
+ PIC code generation
+ new language mode: "Mac Pascal"
+ full boolean evaluation is now also available
+ threadvar support, enabled by using {$threading on}
* support of int64 integer constants
* improved Delphi compatibility in -Sd mode
* a lot of bug fixes
* large parts of the compiler are rewritten to create a more stable,
portable and maintainable compiler
RTL:
+ multithreading support
* completely rewritten unix runtime library
* improved Delphi compatiblity
* significantly improved speed of exception related code
* prepared for big endian and 64 Bit CPUs
* a lot of bug fixes
FCL:
+ tdataset support
+ html generator
+ 64 Bit file handling
* a lot of bug fixes
Docs:
* adapted to reflect new language features
IDE:
* a lot of bug fixes
Misc:
* improved cross compilation
|
ftp.freepascal.org/pub/fpc/dist/3.2.0/i386-os2/os2320full.zip | ||
Free Pascal v. 3.2.0 (docs, 25/5/2020) | Readme/What's new |
Free Pascal Compiler
Version 3.2.0
******************************************************************************
Free Pascal 3.2.0 is a new major release providing support for new
architectures and targets and also many new features and compatibility fixes.
Please also see https://wiki.freepascal.org/User_Changes_3.2.0 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* New platform: Android/AArch64
* New platform: i8086-win16 (16-bit Windows)
* New platform: Android/x86_64
* New platform: Javascript engines
* New platform: Linux/ppc64le
New features are:
-----------------
* Attribute support
* Default Unit Scopes
* Extended Dynamic Array support
* support insert/delete/concat/+ operator
* Dynamic array constructor
* Enhcance dynamic array constant support
* Generic methods/procedures.
* Management operators, Initialize, Finalize, Copy and AddRef operators for records
* IsManagedType intrinsic
* Better character encoding support in base classes and DB components.
* generics.* delphi compatible collections units
* pas2js compiler
* TTF and PDF rendering support
* CHM index support rewritten.
* Many changes and enhancements to TProcess.
* GUI-independent reporting engine
* Improved JSON-RPC support
* Additional HTTP services, SSL support.
* REST server components.
* numerous fixes across all libraries and units.
* Packager & repository management in fppkg.
* 16-bit msdos target enhancements:
* internalink assembler/linker
* huge memory model
* near/far procedure types.
Some important incompatible changes compared to 3.0.x releases:
-----------------------------------------------------
* RTTI format changed
* Linux/Android platforms
* GNU Binutils 2.19.1 or later are required by default
* Stack alignment on Linux/i386
* Now aligned to 16 bytes.
* Windows platforms
* GNU Binutils 2.25 or later are required by default
******************************************************************************
Free Pascal Compiler
Version 3.0.4
******************************************************************************
What's New in 3.0.4
******************************************************************************
Free Pascal 3.0.4 is a point release of the 3.0.x fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_3.0.4 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Packages:
* fcl-pdf updates
* fcl-passrc updates.
* fix traceback on ELF based systems
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
Free Pascal Compiler
Version 3.0.2
******************************************************************************
What's New in 3.0.2
******************************************************************************
Free Pascal 3.0.2 is a point release of the 3.0.x fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_3.0.2 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Rtl:
* TRect, TPoint and similar types are now type compatible between
Types and Windows unit, and are now advanced records.
Packages:
* googleapi and fcl-pdf packages.
* fcl-db and web packages synchronized
* unicode tables updated.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
Free Pascal Compiler
Version 3.0.0
******************************************************************************
What's New in 3.0.0
******************************************************************************
Free Pascal 3.0.0 is a new major release providing support for new
architectures and targets and also many new features and compatibility fixes.
Please also see http://wiki.freepascal.org/User_Changes_3.0.0 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* New processor architecture: MIPS (big and little endian variants)
* New processor architecture: i8086 (primarily focusing legacy MS-DOS)
* New "processor" architecture: JVM
* Revived support for Motorola 68k processors (previously available
in 1.0.x series)
* Considerably extended supported range of ARM processor variants
* New platform: AIX/PowerPC
* New platform: AIX/PowerPC64
* New platform: Android/ARM
* New platform: Android/i386
* New platform: Android/JVM
* New platform: Android/MIPSEL
* New platform: AROS/i386
* New platform: DragonFly/x86_64
* New platform: Java/JVM
* New platform: Linux/MIPS
* New platform: Linux/MIPSEL
* New platform: msdos/i8086
Compiler:
* New support for codepage-aware strings (bringing improved compatibility
to recent Delphi versions)
* Support for processor sub-architectures (mostly for ARM variants)
* Support for multiple memory models (i8086 - including memory models
not supported with the last TP/BP compilers)
RTL:
* Partial support for codepage-aware strings and Unicode in the RTL
including transparent character set conversion
* OS/2 RTL finally provides full support for UnicodeString handling
when running under OS/2 versions including such support (OS/2 Warp 4
and up)
* Direct support for certain OS/2 API functions only available in later
OS/2 versions while allowing the created binaries to run also on older
versions
Packages:
* Big improvements of fpmake (fpmkunit) - all packages and utilities
(actually everything except the compiler and RTL) are now built using
fpmake which somewhat decreases dependency on external utilities.
* New packages rtl-* containing units previously included in RTL; this
allowed streamlining the RTL and thus speeding up RTL building.
* New package fpwidestring - native implementation of Unicode string
handling routines. This allows full support of UnicodeString also
on targets not supporting Unicode natively or possibly on targets
requiring linking to libc for such support.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.6.4
******************************************************************************
Free Pascal 2.6.4 is a point release from the 2.6.0 fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_2.6.4 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Compiler:
Packages:
* Lots and lots fixes and improvements for fcl-db
* Web and json packages synchronized.
* Improvements to the chmcmd compiler.
* Several fixes for winunits (and winceunits)
Platforms:
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.6.2
******************************************************************************
Free Pascal 2.6.2 is a point release from the 2.6.0 fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_2.6.2 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Compiler:
* Improvements and fixes for the ARM architecture
Packages:
* New package fpindexer (indexing engine)
* Support for observer pattern added to fcl-base (and base classes in RTL)
* Lots and lots fixes and improvements for fcl-db
* Support for JSON dataset added among others
* Fixes and improvements for fcl-passrc (and fpdoc)
* Updates for PTCPas and gtk2
* Fpmkunit improvements (better support for future switch to fpmake)
* Several fixes for x11
* Several fixes for winunits (and winceunits)
Platforms:
* Improvements to the NativeNT target (newly introduced as alpha in 2.6.0)
* Many fixes for OpenBSD and NetBSD (considered in beta state now)
* Internal ELF writer supported for more BSD targets
* Fixes and improvements for gba and nds
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.6.0
******************************************************************************
Free Pascal 2.6.0 is a new major version of the Free Pascal compiler.
Please also see http://wiki.freepascal.org/User_Changes_2.6.0 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* iPhoneSimulator target
Compiler:
* Many new language features:
* Objective-Pascal dialect, supported on all Mac OS X and iOS targets
* constref parameter modifier for "const by reference"
* Pascal boolean types with multiple sizes (boolean16/32/64)
* ISO 7185 language mode (except for I/O). Features amongst others:
* nested procedure variables
* non-local goto's
* Mac Pascal mode improvements
* nested procedure variables
* univ modifier
* Intrinsics
* sar (shift arithmetic right)
* bsf/bsr (bitscan forward/reverse)
* Delphi compatibility mode improvements
* Nested types, class variables and class local constants
* Advanced records syntax (no constructors yet)
* (for..in) Enumerators in records
* Class and record helpers
* Generic records, arrays and procedural types
* Delphi-compatibility of generics improved
* Scoped enumerations
* Custom messages for "deprecated" directive
* Ability to use "&" for escaping keywords
* New ARM code generator features
* ARM VFPv2 and VFPv3 floating point unit support
* Thumb-2 support
Packages:
* Many improvements to the rtl
* Many improvements to the database units (fcl-db)
* Objective-Pascal interfaces to Foundation, AppKit, CoreData and WebCore
* OpenGL headers updated to OpenGL 4.0
Details about these new features can be found at
http://wiki.freepascal.org/FPC_New_Features_2.6.0
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs that have been fixed in this release.
******************************************************************************
What's New in 2.4.4
******************************************************************************
Free Pascal 2.4.4 contains most library fixes from early June 2010 till March
2011. There are also some compiler fixes, mostly relating to 64-bit.
Please also see http://wiki.freepascal.org/User_Changes_2.4.4 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Packages:
* Many improvements to the XML units
* Many improvements to the database units.
* Specially sqlite got quite some fixes.
* Many improvements to the chm units.
* Including a commandline CHM compiler
* Many improvements to fppkg and fpmake for another round of testing.
Platforms:
* Fixes for multi-threading support in OS/2 RTL.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.4.2
******************************************************************************
Free Pascal 2.4.2 contains many fixes and a few new features. Most bugfixes
in the RTL and packages before June 2010 have been merged.
Please also see http://wiki.freepascal.org/User_Changes_2.4.2 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Compiler:
* Support D2006+ FOR..IN, with some FPC specific enhancements. Refer to
http://wiki.freepascal.org/for-in_loop for more information
* Support for sealed and abstract classes.
Packages:
* The existing Mac OS X Universal Interfaces units have been synchronised
with the Mac OS X 10.6 SDK. Several new units have also been added, and
where indicated in the Mac OS X 10.6 SDK they have also been enabled for
iPhoneOS/iOS.
* Many improvements to the XML units
* Many improvements to the database units
* Many improvemnets to the chm units
Platforms:
* Long term bug in OS/2 implementation of unit Video finally fixed which
among others allows inclusion of the text-mode IDE (without debugger)
for this platform as part of the distribution again.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.4.0
******************************************************************************
Free Pascal 2.4.0 contains many fixes and new features. While we did not
manage to incorporate all planned additions, we believe this release offers a
nice collection of new functionality and bug fixes.
Please also see http://wiki.freepascal.org/User_Changes_2.4.0 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* New platform: Mac OS X/PowerPC64
* New platform: Mac OS X/x86_64
* New platform: Mac OS X/ARM (iPhone)
Compiler:
* Support for Delphi-style resource handling
* Whole-program optimization infrastructure, which initially supports
program devirtualization and unused virtual method removal
* Much faster compilation of units containing many type-sections
* The ability to suppress individual hints/warnings/notes
* Several improvements to the DWARF debug information generation
* Fixes to the generics support
* Fixes to the interface delegation (implements) support
* Improved cpu register allocation
* Improved ARM/EABI support
RTL:
* Linearly scaling multi-threaded memory manager
* Support for (advisory) file locking on Unix-based platforms
when using the SysUtils file creation/opening routines
* Support for ANSI ISO Extended Pascal ReadStr/WriteStr
* A UnicodeString type that, while not yet equivalent to Delphi 2009's
UnicodeString type, offers reference counted UnicodeString support on
the Windows, Linux, Mac OS X, FreeBSD and Beos/Haiku platforms.
Packages:
* Many improvements to the XML units
* Many improvements to the database units
* Updated the common Mac OS X Pascal interfaces to r241, including
an updated header translation of the CFNetwork framework
* The zipper unit now works correctly on big endian platforms
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.4
******************************************************************************
Free Pascal 2.2.4 contains many bug fixes and some new features. The
main purpose of this release is to fix problems reported with FPC 2.2.2.
Please also see http://wiki.freepascal.org/User_Changes_2.2.4 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
All:
* Experimental packages-installation tool
Packages:
* Added support for TIFF reading/writing in fcl-image
* Improvements and fixes in CHM support
* Fixed linking the gtk2-package with gtk versions above 2.13.4
IDE:
* Added support for CHM help files
Documentation
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.2
******************************************************************************
Free Pascal 2.2.2 contains many bug fixes and some new features. The
main purpose of this release is to fix problems reported with FPC 2.2.0,
and to remove all potentially tainted code from our source code base.
Please also see http://wiki.freepascal.org/User_Changes_2.2.2 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
All:
* All code potentially infringing on CodeGear copyrighted code has been
reimplemented using a cleanroom approach.
Platforms:
* Incompatibilities with Mac OS X 10.5's new default linker have been
resolved.
Compiler:
* PIC support for Mac OS X (on by default, disable with -Cg-)
* several bugs in the experimental generics support have been fixed,
but this feature is still in beta
* initialisation and finalisation of shared libraries has been fixed
for all Darwin platforms, and for Linux/i386
* support for {$packset x} directive to enable set packing
(use {$packset 1} for Delphi-compatible sets, but note that the
format is different on little and big endian platforms)
RTL:
* thread resource leaking under unix has been fixed
* the widestring manager for unix has been completed
* several floating point to string conversion errors have been fixed
* significantly improved variant support
* implementation of RTL exception handler for OS/2 allowing proper
translation of some runtime errors
* various fixes for GO32v2 improving useability of this target
* OS/2 RTL enhanced to allow seamless working with large files (64-bit
file system API calls) where available (WSeB/MCP/eCS/Warp 4 with FP15)
Packages:
* the Windows API interface units have been significantly updated
* Apple universal interfaces updated to r234 of the common FPC/GPC/MW
interfaces
* New TRegexEngine class to parse regular expressions
Documentation
* Documentation was updated completely to conform to the actual
state of the compiler and RTL.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.0
******************************************************************************
Free Pascal 2.2.0 contains a lot of bug fixes and new features. The work on
Free Pascal 2.2.0 started halfway during the year 2005. A lot has been improved
since then.
Please also see http://wiki.freepascal.org/User_Changes_2.2.0 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Platforms:
* New platform: Win64. FPC is the first open source compiler for 64-bit
Windows operating systems.
* New processor architecture: 64-bit PowerPC
* PowerPC/64 support for Linux
* Mac OS X on Intel (i386) is now supported
* New platform: Windows CE (Windows Mobile)
* New platform: Nintendo Game Boy Advance
* New platform: Nintendo DS
* Native support for ARM-platform
* GO32V2 DOS platform got a long needed update
Compiler:
* Internal linker for win32, win64 and wince, resulting in smaller
executables, less memory used during compilation, and faster compile
times for programs using large frameworks like for example the Lazarus
Component Library.
* Generics (experimental)
* Bit packed arrays and records
* Resourcestrings can now be smartlinked, resulting in smaller executables
* Multiple resource files support
* pointer[low..high] syntax to pass C-style pointer arrays to procedures
using open arrays
* Interface delegation
* Proper safecall implementation
* Wide strings are COM/OLE compatible on Windows
* Added several speed optimisations, for example:
* Compiler can omit stack frames (x86 and ARM)
* Compiler can store records in registers
* Tail recursion expansion
* Register renaming optimizations
* Improved optimizer for ARM CPU
* Compiler can initialise local variables, function results, and "out"
parameters with several values (command line parameters -gt till -gtttt)
to help find uses of uninitialised variables
* Compiler can now properly deal with paths > 255 characters in all cases
* Dwarf debug format support
* Reduced memory usage during compilation
* Lot of small bugs and compatibility fixes
RTL:
* Heap uses less memory
* Improved variants support
* Improved currency support
* Exception handling can be used without SysUtils unit
* Lot of small bug and compatibility fixes
FCL:
* Improved database support
* The obsolete sqlitedataset, interbase, fpodbc, ddg, mysqldb3 and mysqldb4
units are removed
* Lot of small bugs and compatibility fixes
Packages:
* Added a new fppkg package manager
* Improved database support
* Added Delphi compatible RichEdit unit
* Apple universal interfaces updated to r204 of the common FPC/GPC/MW
interfaces
* Lot of small bugs and compatibility fixes
Free Vision:
* Now uses resourcestrings
IDE:
* Evaluate window
* Improved HTML rendering
* Improved xterm support
* Small bug fixes
Misc:
* Improved documentation
* Better cross compilation support
For a detailed list of reported bugs that are fixed in this release see the
bugtracker report at http://www.freepascal.org/mantis/changelog_page.php
******************************************************************************
What's New in 2.0.4
******************************************************************************
More than 1000 changes have been made to 2.0.4 since 2.0.2. As this is a bug
fix release, most are fixes for some issues, but new features and performance
enhancements have been added as well.
Compiler:
* Lot of small bugs and compatibility fixes
* Updated several translations
* Improved code generation
* Improved and fixed PIC code generation
* Improved register allocation
* Improved ansistring string code generation
* Several alignment values increased so the requirements of modern processors
are met better
* WINDOWS defined on all windows platforms (Win32, Win64, WinCE)
* Parameter order for methods with structured results changed
(result pointer<->self swapped), please check such methods if they are
implemented in assembler
* i386 compiler no longer needs environment variables set when installed on
an x86_64 Linux distribution
RTL:
* Lot of small bug and compatibility fixes
* 64 bit file pointer support on most targets
* Faster integer to string conversion
* Endian conversion routines added
* Improved heap manager
* Improved ansistring routines
* PowerPC: Power3/4/5/PPC970 compatibility
FCL:
* Lot of small bugs and compatibility fixes
* Improved database support
* The interbase, fpodbc, ddg, mysqldb3 and mysqldb4 units
are obsolete and replaced by the sqldb components
* Oracle support added
Packages:
* Lot of small bugs and compatibility fixes
* Improved database support
* Apple universal interfaces added
Free Vision:
* New outline unit
* Small bug fixes
* Unix: much improved video and keyboard handling
* Unix: Free Vision applications no longer need to link to libc
* Linux: grab_vcsa utility to ensure vcsa access
IDE:
* Small bug fixes
* Redesigned directories window
* Reorganised compiler options window
* Option to use Ctrl+X,C,V for cut/copy/paste
Misc:
* Improved documentation
* Better cross compilation support
******************************************************************************
What's New in 2.0.2
******************************************************************************
This is a bug fix release, so don't expect a big new feature list here. Most
of the almost 700 changes made to 2.0.2 since 2.0.0 are fixes for some issues.
Compiler:
* Lot of small bugs and compatibility fixes
* Improved SSE support
* Improved inlining
* Enhanced variant support
* Embedded resource support for targets using elf32 executable format
+ Type checking of compile time expressions
+ Mode MacPas: Support for Mac style objects
+ Mode MacPas: Compile time variables can be given on command line
RTL:
* Lot of small bugs and compatibility fixes
* Enhanced variant support
* Embedded resource support for targets using elf32 executable format
FCL:
* Lot of small bugs and compatibility fixes
* Improved SqlDB package
Packages:
* Lot of small bugs and compatibility fixes
* Improved data base support
IDE:
* Small bug fixes
Misc:
* Improved docs
* Bug fixes for FreeVision
******************************************************************************
What's New in 2.0.0
******************************************************************************
Compiler:
+ properties in objects are now allowed
+ use of cmov when at least -Cppentium2 is supplied (i386+ only)
+ .p is a searched source extension in macpas mode now
* Improved MacPas mode
* Improved variant support
* Updated language files
* Improved warnings regarding uninitialised variables
* Lot of small bugs and compatibility fixes
RTL:
* Several widestring and unicode fixes
* Heavily improved variant support
* Improved threading support
* Improved 64 bit compatibility
* Lot of small bugs and compatibility fixes
FCL:
* Improved data base support
* Lot of small bugs and compatibility fixes
Packages:
+ Jedi windows api is part of the packages now
+ Windows specific units of the rtl have been moved to packages/base/winunits
+ XFree header conversions to X package added
* Endian and 64 bit fixes
* Lot of small bugs and compatibility fixes
IDE:
* Small bug fixes
Misc:
* Improved docs
* Bug fixes for FreeVision
******************************************************************************
What's New in 1.9.8 aka 2.0.0-Rc2
******************************************************************************
Compiler:
+ arm-linux cross compiler for i386-linux
+ SysV style syscalls added for MorphOS
+ Exportable macros for mode MacPas
+ Support procvar declaration in parameters for mode MacPas
+ Give warning if code is never executed in while/if statements
+ Directive {$COPERATORS ON} added, synomym for -Sc
+ Check for uninitialzed from and to values in for-loop statement
+ -Fa<unit> option added to load units in a program before the uses statement
is parsed
+ -vz for output to stderr
* Better support for unique types
* AfterConstruction/BeforeDestruction behaviour is now compatible with Delphi
* Better support for Widestring
* Removed {$THREADING ON} directive, threading support is always available
* Improved code generation on Sparc
* Lot of small bugs and compatibility fixes
+ On target Mac OS, resource files is supported
RTL:
+ arm Linux support
* Basic threading support moved to the system unit
* Operator ** moved to math unit; system.power removed
* Improved variant support
* Lot of small bugs and compatibility fixes
+ The unit MacOS (api to Mac OS) for target MacOS
FCL:
+ Support for Interbase/Firebird, PostgreSQL and MySQL 4.0 under windows
* Database drivers are now dynamically loaded
* The TSQLQuery is now fully editable using cached updates
* Lot of small bugs and compatibility fixes
Packages:
+ gtk2 interface units
* 64 bit compatibility fixes
* Lot of small bugs and compatibility fixes
IDE:
+ vector unit window
* x86-64 asssembler debugging support improved
* Sparc asssembler debugging support improved
* Some bug fixes
Misc:
+ txt output to fpdoc added
* some fpdoc bugs fixes
+ demo for macos
******************************************************************************
What's New in 1.9.6 aka 2.0.0-Rc1
******************************************************************************
Compiler:
+ x86_64/amd64 (Linux) compiler
+ Sparc (Linux) compiler
+ PowerPC MorphOS support
+ Mac OS (classic) compiler (for MPW)
+ Netware Libc support (-Tnetwlibc)
+ Register variable support (-Or) for all targets
+ MacPas compiler mode (-Mmacpas)
* Better inlining support
* For loop variable assignment is not allowed anymore
* $fpctarget expands to <cpu>-<os> (except for 8.3 limited targets),
old $target removed
* Implicit loading of Variants unit
* Lots of bug fixes
RTL:
+ x86_64/amd64 Linux support
+ Sparc Linux support
+ PowerPC MorphOS support
+ Mac OS (classic) support (except Sysutils and its dependants)
+ Netware Libc support
+ New heap manager that releases memory back to the OS
+ TThread.Synchronize support
+ utf8bidi unit
+ GetHeapStatus added
+ GetProcessID added
+ SysUtils.GetEnvironmentVariableCount and SysUtils.GetEnvironmentString added
* gpm unit does not need libgpm anymore
+ Further additions for improved Delphi compatibility
+ System.GetProcessID and System.GetThreadID added
+ Dos.GetMsCount added
+ Support for changing console resolution in Video for Win32
+ Support for using high memory (> 512 MB) under OS/2 (where available)
- Removed MaxAvail, MemAvail, HeapSize due to their unreliability
(bogus/misleading return values) in multitasking environment with swapping
FCL:
+ RTTIUtils unit added
+ fpcunit test-framework added
* Lots of dbf and other db fixes
FV:
* Updated to fvision implementation, first official release
IDE:
* Lots of improvements and stability fixes
* Support latest gdb 6.2.x and 6.3.x releases
Docs:
+ Lots of updates
+ Easier to navigate html documentation
* fpDoc is used to generate all unit documentation
Misc:
* Makefiles create units in a separate directory units/cpu-os/
* More cross compilation improvements
******************************************************************************
What's New in 1.9.4 aka 2.0.0-Beta3
******************************************************************************
Compiler:
+ ARM (Linux) compiler
+ PowerPC Darwin (Mac OS X) support
+ reintroduce keyword support
+ added prefetch(const mem) support
+ MacPas compile mode
+ -gv to generate an executable that can be run under Valgrind >= 2.1
* register allocator fixes and tweaks
* better support for preprocessor $IF expressions
* better overloaded operator support
* Win32 DLL export table fixes
* stabs (debuginfo) generation cleanups
* enum names in RTTI are now in their original case
* record alignment fixes
* lots of bug fixes
RTL:
+ ARM Linux support
+ Powerpc Darwin support
+ Sysutils.RaiseLastOSError added
+ Sysutils.GetLastOSError added
+ Classes.TOwnedCollection added
+ Sysutils.FileIsReadOnly added
+ support of widestring and currency in the typinfo unit
* Better support for Libc based RTL (FPC_USE_LIBC)
* 64bit cleanup for future x86_64 port
* ExecuteProcess fixes
* Linux use getdents syscall instead of deprecated readdir
* bug fixes
FCL:
+ SDF DB backend
+ TGA support in fpImage
+ support of widestring and currency type in stream related classes
* Lot of fixes to fpImage classes
Misc:
* better cross development support
* Documentation updates
* Testsuite updates to store testrun results in a database
* Testsuite updates for cross platform testing, with remote rsh/ssh support
******************************************************************************
What's New in 1.9.2 aka 2.0.0-Beta2
******************************************************************************
Compiler:
+ PowerPC compiler
+ sse/sse2 code generation support
+ "global" property support
* improved inlining support
* optimizer enabled again
* uses register calling conventions by default
* $fputype directive
+ properties of type single can have default values
+ support of $IF DECLARED()
+ support of DQWORD in inline intel assembler code
* lots of bug fixes
RTL:
* more improvements for unix runtime library
* using FPC_USE_LIBC allows to compile an rtl which uses libc instead of
syscalls
+ System.Initialize
+ Sysutils.ExecuteProcess
+ System.WideStringManager
+ System.PtrInt and System.PtrUInt
* ipv6 support
* lots of bug fixes
FCL:
+ sqlite support
* bug fixes
Misc:
* improved docs
******************************************************************************
What's New in 1.9.0 aka 2.0.0-Beta1
******************************************************************************
Compiler:
+ dynamic arrays
+ interfaces
+ variants
+ full widestring support
+ default parameters
+ cross name scope overloading
+ support for the PowerPC, Sparc and ARM processor, installation packages
will follow within the next weeks
+ new and more sophisticated register allocator
+ inlining across units
+ register calling conventions
+ SSE and SSE2 support for inline assembler
+ PIC code generation
+ new language mode: "Mac Pascal"
+ full boolean evaluation is now also available
+ threadvar support, enabled by using {$threading on}
* support of int64 integer constants
* improved Delphi compatibility in -Sd mode
* a lot of bug fixes
* large parts of the compiler are rewritten to create a more stable,
portable and maintainable compiler
RTL:
+ multithreading support
* completely rewritten unix runtime library
* improved Delphi compatiblity
* significantly improved speed of exception related code
* prepared for big endian and 64 Bit CPUs
* a lot of bug fixes
FCL:
+ tdataset support
+ html generator
+ 64 Bit file handling
* a lot of bug fixes
Docs:
* adapted to reflect new language features
IDE:
* a lot of bug fixes
Misc:
* improved cross compilation
|
ftp.freepascal.org/pub/fpc/dist/3.2.0/docs/doc-pdf.zip | ||
Free Pascal v. 3.0.4 (docs, 28/9/2017) | Readme/What's new |
Free Pascal Compiler
Version 3.0.4
******************************************************************************
What's New in 3.0.4
******************************************************************************
Free Pascal 3.0.4 is a point release of the 3.0.x fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_3.0.4 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Packages:
* fcl-pdf updates
* fcl-passrc updates.
* fix traceback on ELF based systems
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release. |
ftp.freepascal.org/pub/fpc/dist/3.0.4/docs/doc-pdf.zip | ||
Free Pascal v. 3.0.4 (source code, 16/9/2017) | Readme/What's new |
Free Pascal Compiler
Version 3.0.4
******************************************************************************
What's New in 3.0.4
******************************************************************************
Free Pascal 3.0.4 is a point release of the 3.0.x fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_3.0.4 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Packages:
* fcl-pdf updates
* fcl-passrc updates.
* fix traceback on ELF based systems
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release. |
ftp.freepascal.org/pub/fpc/dist/3.0.4/i386-os2/os2304full.zip | ||
Free Pascal v. 3.0.4 (16/9/2017) | Readme/What's new |
Free Pascal Compiler
Version 3.0.4
******************************************************************************
What's New in 3.0.4
******************************************************************************
Free Pascal 3.0.4 is a point release of the 3.0.x fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_3.0.4 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Packages:
* fcl-pdf updates
* fcl-passrc updates.
* fix traceback on ELF based systems
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release. |
ftp.freepascal.org/pub/fpc/dist/3.0.4/i386-os2/os2304.zip | ||
Free Pascal v. 3.0.2 (17/2/2017) | Readme/What's new |
Free Pascal Compiler
Version 3.0.2
******************************************************************************
What's New in 3.0.2
******************************************************************************
Free Pascal 3.0.2 is a point release of the 3.0.x fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_3.0.2 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Rtl:
* TRect, TPoint and similar types are now type compatible between
Types and Windows unit, and are now advanced records.
Packages:
* googleapi and fcl-pdf packages.
* fcl-db and web packages synchronized
* unicode tables updated.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
Free Pascal Compiler
Version 3.0.0
******************************************************************************
What's New in 3.0.0
******************************************************************************
Free Pascal 3.0.0 is a new major release providing support for new
architectures and targets and also many new features and compatibility fixes.
Please also see http://wiki.freepascal.org/User_Changes_3.0.0 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* New processor architecture: MIPS (big and little endian variants)
* New processor architecture: i8086 (primarily focusing legacy MS-DOS)
* New "processor" architecture: JVM
* Revived support for Motorola 68k processors (previously available
in 1.0.x series)
* Considerably extended supported range of ARM processor variants
* New platform: AIX/PowerPC
* New platform: AIX/PowerPC64
* New platform: Android/ARM
* New platform: Android/i386
* New platform: Android/JVM
* New platform: Android/MIPSEL
* New platform: AROS/i386
* New platform: DragonFly/x86_64
* New platform: Java/JVM
* New platform: Linux/MIPS
* New platform: Linux/MIPSEL
* New platform: msdos/i8086
Compiler:
* New support for codepage-aware strings (bringing improved compatibility
to recent Delphi versions)
* Support for processor sub-architectures (mostly for ARM variants)
* Support for multiple memory models (i8086 - including memory models
not supported with the last TP/BP compilers)
RTL:
* Partial support for codepage-aware strings and Unicode in the RTL
including transparent character set conversion
* OS/2 RTL finally provides full support for UnicodeString handling
when running under OS/2 versions including such support (OS/2 Warp 4
and up)
* Direct support for certain OS/2 API functions only available in later
OS/2 versions while allowing the created binaries to run also on older
versions
Packages:
* Big improvements of fpmake (fpmkunit) - all packages and utilities
(actually everything except the compiler and RTL) are now built using
fpmake which somewhat decreases dependency on external utilities.
* New packages rtl-* containing units previously included in RTL; this
allowed streamlining the RTL and thus speeding up RTL building.
* New package fpwidestring - native implementation of Unicode string
handling routines. This allows full support of UnicodeString also
on targets not supporting Unicode natively or possibly on targets
requiring linking to libc for such support.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.6.4
******************************************************************************
Free Pascal 2.6.4 is a point release from the 2.6.0 fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_2.6.4 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Compiler:
Packages:
* Lots and lots fixes and improvements for fcl-db
* Web and json packages synchronized.
* Improvements to the chmcmd compiler.
* Several fixes for winunits (and winceunits)
Platforms:
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.6.2
******************************************************************************
Free Pascal 2.6.2 is a point release from the 2.6.0 fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_2.6.2 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Compiler:
* Improvements and fixes for the ARM architecture
Packages:
* New package fpindexer (indexing engine)
* Support for observer pattern added to fcl-base (and base classes in RTL)
* Lots and lots fixes and improvements for fcl-db
* Support for JSON dataset added among others
* Fixes and improvements for fcl-passrc (and fpdoc)
* Updates for PTCPas and gtk2
* Fpmkunit improvements (better support for future switch to fpmake)
* Several fixes for x11
* Several fixes for winunits (and winceunits)
Platforms:
* Improvements to the NativeNT target (newly introduced as alpha in 2.6.0)
* Many fixes for OpenBSD and NetBSD (considered in beta state now)
* Internal ELF writer supported for more BSD targets
* Fixes and improvements for gba and nds
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.6.0
******************************************************************************
Free Pascal 2.6.0 is a new major version of the Free Pascal compiler.
Please also see http://wiki.freepascal.org/User_Changes_2.6.0 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* iPhoneSimulator target
Compiler:
* Many new language features:
* Objective-Pascal dialect, supported on all Mac OS X and iOS targets
* constref parameter modifier for "const by reference"
* Pascal boolean types with multiple sizes (boolean16/32/64)
* ISO 7185 language mode (except for I/O). Features amongst others:
* nested procedure variables
* non-local goto's
* Mac Pascal mode improvements
* nested procedure variables
* univ modifier
* Intrinsics
* sar (shift arithmetic right)
* bsf/bsr (bitscan forward/reverse)
* Delphi compatibility mode improvements
* Nested types, class variables and class local constants
* Advanced records syntax (no constructors yet)
* (for..in) Enumerators in records
* Class and record helpers
* Generic records, arrays and procedural types
* Delphi-compatibility of generics improved
* Scoped enumerations
* Custom messages for "deprecated" directive
* Ability to use "&" for escaping keywords
* New ARM code generator features
* ARM VFPv2 and VFPv3 floating point unit support
* Thumb-2 support
Packages:
* Many improvements to the rtl
* Many improvements to the database units (fcl-db)
* Objective-Pascal interfaces to Foundation, AppKit, CoreData and WebCore
* OpenGL headers updated to OpenGL 4.0
Details about these new features can be found at
http://wiki.freepascal.org/FPC_New_Features_2.6.0
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs that have been fixed in this release.
******************************************************************************
What's New in 2.4.4
******************************************************************************
Free Pascal 2.4.4 contains most library fixes from early June 2010 till March
2011. There are also some compiler fixes, mostly relating to 64-bit.
Please also see http://wiki.freepascal.org/User_Changes_2.4.4 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Packages:
* Many improvements to the XML units
* Many improvements to the database units.
* Specially sqlite got quite some fixes.
* Many improvements to the chm units.
* Including a commandline CHM compiler
* Many improvements to fppkg and fpmake for another round of testing.
Platforms:
* Fixes for multi-threading support in OS/2 RTL.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.4.2
******************************************************************************
Free Pascal 2.4.2 contains many fixes and a few new features. Most bugfixes
in the RTL and packages before June 2010 have been merged.
Please also see http://wiki.freepascal.org/User_Changes_2.4.2 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Compiler:
* Support D2006+ FOR..IN, with some FPC specific enhancements. Refer to
http://wiki.freepascal.org/for-in_loop for more information
* Support for sealed and abstract classes.
Packages:
* The existing Mac OS X Universal Interfaces units have been synchronised
with the Mac OS X 10.6 SDK. Several new units have also been added, and
where indicated in the Mac OS X 10.6 SDK they have also been enabled for
iPhoneOS/iOS.
* Many improvements to the XML units
* Many improvements to the database units
* Many improvemnets to the chm units
Platforms:
* Long term bug in OS/2 implementation of unit Video finally fixed which
among others allows inclusion of the text-mode IDE (without debugger)
for this platform as part of the distribution again.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.4.0
******************************************************************************
Free Pascal 2.4.0 contains many fixes and new features. While we did not
manage to incorporate all planned additions, we believe this release offers a
nice collection of new functionality and bug fixes.
Please also see http://wiki.freepascal.org/User_Changes_2.4.0 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* New platform: Mac OS X/PowerPC64
* New platform: Mac OS X/x86_64
* New platform: Mac OS X/ARM (iPhone)
Compiler:
* Support for Delphi-style resource handling
* Whole-program optimization infrastructure, which initially supports
program devirtualization and unused virtual method removal
* Much faster compilation of units containing many type-sections
* The ability to suppress individual hints/warnings/notes
* Several improvements to the DWARF debug information generation
* Fixes to the generics support
* Fixes to the interface delegation (implements) support
* Improved cpu register allocation
* Improved ARM/EABI support
RTL:
* Linearly scaling multi-threaded memory manager
* Support for (advisory) file locking on Unix-based platforms
when using the SysUtils file creation/opening routines
* Support for ANSI ISO Extended Pascal ReadStr/WriteStr
* A UnicodeString type that, while not yet equivalent to Delphi 2009's
UnicodeString type, offers reference counted UnicodeString support on
the Windows, Linux, Mac OS X, FreeBSD and Beos/Haiku platforms.
Packages:
* Many improvements to the XML units
* Many improvements to the database units
* Updated the common Mac OS X Pascal interfaces to r241, including
an updated header translation of the CFNetwork framework
* The zipper unit now works correctly on big endian platforms
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.4
******************************************************************************
Free Pascal 2.2.4 contains many bug fixes and some new features. The
main purpose of this release is to fix problems reported with FPC 2.2.2.
Please also see http://wiki.freepascal.org/User_Changes_2.2.4 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
All:
* Experimental packages-installation tool
Packages:
* Added support for TIFF reading/writing in fcl-image
* Improvements and fixes in CHM support
* Fixed linking the gtk2-package with gtk versions above 2.13.4
IDE:
* Added support for CHM help files
Documentation
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.2
******************************************************************************
Free Pascal 2.2.2 contains many bug fixes and some new features. The
main purpose of this release is to fix problems reported with FPC 2.2.0,
and to remove all potentially tainted code from our source code base.
Please also see http://wiki.freepascal.org/User_Changes_2.2.2 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
All:
* All code potentially infringing on CodeGear copyrighted code has been
reimplemented using a cleanroom approach.
Platforms:
* Incompatibilities with Mac OS X 10.5's new default linker have been
resolved.
Compiler:
* PIC support for Mac OS X (on by default, disable with -Cg-)
* several bugs in the experimental generics support have been fixed,
but this feature is still in beta
* initialisation and finalisation of shared libraries has been fixed
for all Darwin platforms, and for Linux/i386
* support for {$packset x} directive to enable set packing
(use {$packset 1} for Delphi-compatible sets, but note that the
format is different on little and big endian platforms)
RTL:
* thread resource leaking under unix has been fixed
* the widestring manager for unix has been completed
* several floating point to string conversion errors have been fixed
* significantly improved variant support
* implementation of RTL exception handler for OS/2 allowing proper
translation of some runtime errors
* various fixes for GO32v2 improving useability of this target
* OS/2 RTL enhanced to allow seamless working with large files (64-bit
file system API calls) where available (WSeB/MCP/eCS/Warp 4 with FP15)
Packages:
* the Windows API interface units have been significantly updated
* Apple universal interfaces updated to r234 of the common FPC/GPC/MW
interfaces
* New TRegexEngine class to parse regular expressions
Documentation
* Documentation was updated completely to conform to the actual
state of the compiler and RTL.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.0
******************************************************************************
Free Pascal 2.2.0 contains a lot of bug fixes and new features. The work on
Free Pascal 2.2.0 started halfway during the year 2005. A lot has been improved
since then.
Please also see http://wiki.freepascal.org/User_Changes_2.2.0 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Platforms:
* New platform: Win64. FPC is the first open source compiler for 64-bit
Windows operating systems.
* New processor architecture: 64-bit PowerPC
* PowerPC/64 support for Linux
* Mac OS X on Intel (i386) is now supported
* New platform: Windows CE (Windows Mobile)
* New platform: Nintendo Game Boy Advance
* New platform: Nintendo DS
* Native support for ARM-platform
* GO32V2 DOS platform got a long needed update
Compiler:
* Internal linker for win32, win64 and wince, resulting in smaller
executables, less memory used during compilation, and faster compile
times for programs using large frameworks like for example the Lazarus
Component Library.
* Generics (experimental)
* Bit packed arrays and records
* Resourcestrings can now be smartlinked, resulting in smaller executables
* Multiple resource files support
* pointer[low..high] syntax to pass C-style pointer arrays to procedures
using open arrays
* Interface delegation
* Proper safecall implementation
* Wide strings are COM/OLE compatible on Windows
* Added several speed optimisations, for example:
* Compiler can omit stack frames (x86 and ARM)
* Compiler can store records in registers
* Tail recursion expansion
* Register renaming optimizations
* Improved optimizer for ARM CPU
* Compiler can initialise local variables, function results, and "out"
parameters with several values (command line parameters -gt till -gtttt)
to help find uses of uninitialised variables
* Compiler can now properly deal with paths > 255 characters in all cases
* Dwarf debug format support
* Reduced memory usage during compilation
* Lot of small bugs and compatibility fixes
RTL:
* Heap uses less memory
* Improved variants support
* Improved currency support
* Exception handling can be used without SysUtils unit
* Lot of small bug and compatibility fixes
FCL:
* Improved database support
* The obsolete sqlitedataset, interbase, fpodbc, ddg, mysqldb3 and mysqldb4
units are removed
* Lot of small bugs and compatibility fixes
Packages:
* Added a new fppkg package manager
* Improved database support
* Added Delphi compatible RichEdit unit
* Apple universal interfaces updated to r204 of the common FPC/GPC/MW
interfaces
* Lot of small bugs and compatibility fixes
Free Vision:
* Now uses resourcestrings
IDE:
* Evaluate window
* Improved HTML rendering
* Improved xterm support
* Small bug fixes
Misc:
* Improved documentation
* Better cross compilation support
For a detailed list of reported bugs that are fixed in this release see the
bugtracker report at http://www.freepascal.org/mantis/changelog_page.php
******************************************************************************
What's New in 2.0.4
******************************************************************************
More than 1000 changes have been made to 2.0.4 since 2.0.2. As this is a bug
fix release, most are fixes for some issues, but new features and performance
enhancements have been added as well.
Compiler:
* Lot of small bugs and compatibility fixes
* Updated several translations
* Improved code generation
* Improved and fixed PIC code generation
* Improved register allocation
* Improved ansistring string code generation
* Several alignment values increased so the requirements of modern processors
are met better
* WINDOWS defined on all windows platforms (Win32, Win64, WinCE)
* Parameter order for methods with structured results changed
(result pointer<->self swapped), please check such methods if they are
implemented in assembler
* i386 compiler no longer needs environment variables set when installed on
an x86_64 Linux distribution
RTL:
* Lot of small bug and compatibility fixes
* 64 bit file pointer support on most targets
* Faster integer to string conversion
* Endian conversion routines added
* Improved heap manager
* Improved ansistring routines
* PowerPC: Power3/4/5/PPC970 compatibility
FCL:
* Lot of small bugs and compatibility fixes
* Improved database support
* The interbase, fpodbc, ddg, mysqldb3 and mysqldb4 units
are obsolete and replaced by the sqldb components
* Oracle support added
Packages:
* Lot of small bugs and compatibility fixes
* Improved database support
* Apple universal interfaces added
Free Vision:
* New outline unit
* Small bug fixes
* Unix: much improved video and keyboard handling
* Unix: Free Vision applications no longer need to link to libc
* Linux: grab_vcsa utility to ensure vcsa access
IDE:
* Small bug fixes
* Redesigned directories window
* Reorganised compiler options window
* Option to use Ctrl+X,C,V for cut/copy/paste
Misc:
* Improved documentation
* Better cross compilation support
******************************************************************************
What's New in 2.0.2
******************************************************************************
This is a bug fix release, so don't expect a big new feature list here. Most
of the almost 700 changes made to 2.0.2 since 2.0.0 are fixes for some issues.
Compiler:
* Lot of small bugs and compatibility fixes
* Improved SSE support
* Improved inlining
* Enhanced variant support
* Embedded resource support for targets using elf32 executable format
+ Type checking of compile time expressions
+ Mode MacPas: Support for Mac style objects
+ Mode MacPas: Compile time variables can be given on command line
RTL:
* Lot of small bugs and compatibility fixes
* Enhanced variant support
* Embedded resource support for targets using elf32 executable format
FCL:
* Lot of small bugs and compatibility fixes
* Improved SqlDB package
Packages:
* Lot of small bugs and compatibility fixes
* Improved data base support
IDE:
* Small bug fixes
Misc:
* Improved docs
* Bug fixes for FreeVision
******************************************************************************
What's New in 2.0.0
******************************************************************************
Compiler:
+ properties in objects are now allowed
+ use of cmov when at least -Cppentium2 is supplied (i386+ only)
+ .p is a searched source extension in macpas mode now
* Improved MacPas mode
* Improved variant support
* Updated language files
* Improved warnings regarding uninitialised variables
* Lot of small bugs and compatibility fixes
RTL:
* Several widestring and unicode fixes
* Heavily improved variant support
* Improved threading support
* Improved 64 bit compatibility
* Lot of small bugs and compatibility fixes
FCL:
* Improved data base support
* Lot of small bugs and compatibility fixes
Packages:
+ Jedi windows api is part of the packages now
+ Windows specific units of the rtl have been moved to packages/base/winunits
+ XFree header conversions to X package added
* Endian and 64 bit fixes
* Lot of small bugs and compatibility fixes
IDE:
* Small bug fixes
Misc:
* Improved docs
* Bug fixes for FreeVision
******************************************************************************
What's New in 1.9.8 aka 2.0.0-Rc2
******************************************************************************
Compiler:
+ arm-linux cross compiler for i386-linux
+ SysV style syscalls added for MorphOS
+ Exportable macros for mode MacPas
+ Support procvar declaration in parameters for mode MacPas
+ Give warning if code is never executed in while/if statements
+ Directive {$COPERATORS ON} added, synomym for -Sc
+ Check for uninitialzed from and to values in for-loop statement
+ -Fa<unit> option added to load units in a program before the uses statement
is parsed
+ -vz for output to stderr
* Better support for unique types
* AfterConstruction/BeforeDestruction behaviour is now compatible with Delphi
* Better support for Widestring
* Removed {$THREADING ON} directive, threading support is always available
* Improved code generation on Sparc
* Lot of small bugs and compatibility fixes
+ On target Mac OS, resource files is supported
RTL:
+ arm Linux support
* Basic threading support moved to the system unit
* Operator ** moved to math unit; system.power removed
* Improved variant support
* Lot of small bugs and compatibility fixes
+ The unit MacOS (api to Mac OS) for target MacOS
FCL:
+ Support for Interbase/Firebird, PostgreSQL and MySQL 4.0 under windows
* Database drivers are now dynamically loaded
* The TSQLQuery is now fully editable using cached updates
* Lot of small bugs and compatibility fixes
Packages:
+ gtk2 interface units
* 64 bit compatibility fixes
* Lot of small bugs and compatibility fixes
IDE:
+ vector unit window
* x86-64 asssembler debugging support improved
* Sparc asssembler debugging support improved
* Some bug fixes
Misc:
+ txt output to fpdoc added
* some fpdoc bugs fixes
+ demo for macos
******************************************************************************
What's New in 1.9.6 aka 2.0.0-Rc1
******************************************************************************
Compiler:
+ x86_64/amd64 (Linux) compiler
+ Sparc (Linux) compiler
+ PowerPC MorphOS support
+ Mac OS (classic) compiler (for MPW)
+ Netware Libc support (-Tnetwlibc)
+ Register variable support (-Or) for all targets
+ MacPas compiler mode (-Mmacpas)
* Better inlining support
* For loop variable assignment is not allowed anymore
* $fpctarget expands to <cpu>-<os> (except for 8.3 limited targets),
old $target removed
* Implicit loading of Variants unit
* Lots of bug fixes
RTL:
+ x86_64/amd64 Linux support
+ Sparc Linux support
+ PowerPC MorphOS support
+ Mac OS (classic) support (except Sysutils and its dependants)
+ Netware Libc support
+ New heap manager that releases memory back to the OS
+ TThread.Synchronize support
+ utf8bidi unit
+ GetHeapStatus added
+ GetProcessID added
+ SysUtils.GetEnvironmentVariableCount and SysUtils.GetEnvironmentString added
* gpm unit does not need libgpm anymore
+ Further additions for improved Delphi compatibility
+ System.GetProcessID and System.GetThreadID added
+ Dos.GetMsCount added
+ Support for changing console resolution in Video for Win32
+ Support for using high memory (> 512 MB) under OS/2 (where available)
- Removed MaxAvail, MemAvail, HeapSize due to their unreliability
(bogus/misleading return values) in multitasking environment with swapping
FCL:
+ RTTIUtils unit added
+ fpcunit test-framework added
* Lots of dbf and other db fixes
FV:
* Updated to fvision implementation, first official release
IDE:
* Lots of improvements and stability fixes
* Support latest gdb 6.2.x and 6.3.x releases
Docs:
+ Lots of updates
+ Easier to navigate html documentation
* fpDoc is used to generate all unit documentation
Misc:
* Makefiles create units in a separate directory units/cpu-os/
* More cross compilation improvements
******************************************************************************
What's New in 1.9.4 aka 2.0.0-Beta3
******************************************************************************
Compiler:
+ ARM (Linux) compiler
+ PowerPC Darwin (Mac OS X) support
+ reintroduce keyword support
+ added prefetch(const mem) support
+ MacPas compile mode
+ -gv to generate an executable that can be run under Valgrind >= 2.1
* register allocator fixes and tweaks
* better support for preprocessor $IF expressions
* better overloaded operator support
* Win32 DLL export table fixes
* stabs (debuginfo) generation cleanups
* enum names in RTTI are now in their original case
* record alignment fixes
* lots of bug fixes
RTL:
+ ARM Linux support
+ Powerpc Darwin support
+ Sysutils.RaiseLastOSError added
+ Sysutils.GetLastOSError added
+ Classes.TOwnedCollection added
+ Sysutils.FileIsReadOnly added
+ support of widestring and currency in the typinfo unit
* Better support for Libc based RTL (FPC_USE_LIBC)
* 64bit cleanup for future x86_64 port
* ExecuteProcess fixes
* Linux use getdents syscall instead of deprecated readdir
* bug fixes
FCL:
+ SDF DB backend
+ TGA support in fpImage
+ support of widestring and currency type in stream related classes
* Lot of fixes to fpImage classes
Misc:
* better cross development support
* Documentation updates
* Testsuite updates to store testrun results in a database
* Testsuite updates for cross platform testing, with remote rsh/ssh support
******************************************************************************
What's New in 1.9.2 aka 2.0.0-Beta2
******************************************************************************
Compiler:
+ PowerPC compiler
+ sse/sse2 code generation support
+ "global" property support
* improved inlining support
* optimizer enabled again
* uses register calling conventions by default
* $fputype directive
+ properties of type single can have default values
+ support of $IF DECLARED()
+ support of DQWORD in inline intel assembler code
* lots of bug fixes
RTL:
* more improvements for unix runtime library
* using FPC_USE_LIBC allows to compile an rtl which uses libc instead of
syscalls
+ System.Initialize
+ Sysutils.ExecuteProcess
+ System.WideStringManager
+ System.PtrInt and System.PtrUInt
* ipv6 support
* lots of bug fixes
FCL:
+ sqlite support
* bug fixes
Misc:
* improved docs
******************************************************************************
What's New in 1.9.0 aka 2.0.0-Beta1
******************************************************************************
Compiler:
+ dynamic arrays
+ interfaces
+ variants
+ full widestring support
+ default parameters
+ cross name scope overloading
+ support for the PowerPC, Sparc and ARM processor, installation packages
will follow within the next weeks
+ new and more sophisticated register allocator
+ inlining across units
+ register calling conventions
+ SSE and SSE2 support for inline assembler
+ PIC code generation
+ new language mode: "Mac Pascal"
+ full boolean evaluation is now also available
+ threadvar support, enabled by using {$threading on}
* support of int64 integer constants
* improved Delphi compatibility in -Sd mode
* a lot of bug fixes
* large parts of the compiler are rewritten to create a more stable,
portable and maintainable compiler
RTL:
+ multithreading support
* completely rewritten unix runtime library
* improved Delphi compatiblity
* significantly improved speed of exception related code
* prepared for big endian and 64 Bit CPUs
* a lot of bug fixes
FCL:
+ tdataset support
+ html generator
+ 64 Bit file handling
* a lot of bug fixes
Docs:
* adapted to reflect new language features
IDE:
* a lot of bug fixes
Misc:
* improved cross compilation |
ftp.freepascal.org/pub/fpc/dist/3.0.2/i386-os2/os2302full.zip | ||
Free Pascal v. 3.0.2 (source code, 17/2/2017) | Readme/What's new |
Free Pascal Compiler
Version 3.0.2
******************************************************************************
What's New in 3.0.2
******************************************************************************
Free Pascal 3.0.2 is a point release of the 3.0.x fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_3.0.2 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Rtl:
* TRect, TPoint and similar types are now type compatible between
Types and Windows unit, and are now advanced records.
Packages:
* googleapi and fcl-pdf packages.
* fcl-db and web packages synchronized
* unicode tables updated.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
Free Pascal Compiler
Version 3.0.0
******************************************************************************
What's New in 3.0.0
******************************************************************************
Free Pascal 3.0.0 is a new major release providing support for new
architectures and targets and also many new features and compatibility fixes.
Please also see http://wiki.freepascal.org/User_Changes_3.0.0 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* New processor architecture: MIPS (big and little endian variants)
* New processor architecture: i8086 (primarily focusing legacy MS-DOS)
* New "processor" architecture: JVM
* Revived support for Motorola 68k processors (previously available
in 1.0.x series)
* Considerably extended supported range of ARM processor variants
* New platform: AIX/PowerPC
* New platform: AIX/PowerPC64
* New platform: Android/ARM
* New platform: Android/i386
* New platform: Android/JVM
* New platform: Android/MIPSEL
* New platform: AROS/i386
* New platform: DragonFly/x86_64
* New platform: Java/JVM
* New platform: Linux/MIPS
* New platform: Linux/MIPSEL
* New platform: msdos/i8086
Compiler:
* New support for codepage-aware strings (bringing improved compatibility
to recent Delphi versions)
* Support for processor sub-architectures (mostly for ARM variants)
* Support for multiple memory models (i8086 - including memory models
not supported with the last TP/BP compilers)
RTL:
* Partial support for codepage-aware strings and Unicode in the RTL
including transparent character set conversion
* OS/2 RTL finally provides full support for UnicodeString handling
when running under OS/2 versions including such support (OS/2 Warp 4
and up)
* Direct support for certain OS/2 API functions only available in later
OS/2 versions while allowing the created binaries to run also on older
versions
Packages:
* Big improvements of fpmake (fpmkunit) - all packages and utilities
(actually everything except the compiler and RTL) are now built using
fpmake which somewhat decreases dependency on external utilities.
* New packages rtl-* containing units previously included in RTL; this
allowed streamlining the RTL and thus speeding up RTL building.
* New package fpwidestring - native implementation of Unicode string
handling routines. This allows full support of UnicodeString also
on targets not supporting Unicode natively or possibly on targets
requiring linking to libc for such support.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.6.4
******************************************************************************
Free Pascal 2.6.4 is a point release from the 2.6.0 fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_2.6.4 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Compiler:
Packages:
* Lots and lots fixes and improvements for fcl-db
* Web and json packages synchronized.
* Improvements to the chmcmd compiler.
* Several fixes for winunits (and winceunits)
Platforms:
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.6.2
******************************************************************************
Free Pascal 2.6.2 is a point release from the 2.6.0 fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_2.6.2 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Compiler:
* Improvements and fixes for the ARM architecture
Packages:
* New package fpindexer (indexing engine)
* Support for observer pattern added to fcl-base (and base classes in RTL)
* Lots and lots fixes and improvements for fcl-db
* Support for JSON dataset added among others
* Fixes and improvements for fcl-passrc (and fpdoc)
* Updates for PTCPas and gtk2
* Fpmkunit improvements (better support for future switch to fpmake)
* Several fixes for x11
* Several fixes for winunits (and winceunits)
Platforms:
* Improvements to the NativeNT target (newly introduced as alpha in 2.6.0)
* Many fixes for OpenBSD and NetBSD (considered in beta state now)
* Internal ELF writer supported for more BSD targets
* Fixes and improvements for gba and nds
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.6.0
******************************************************************************
Free Pascal 2.6.0 is a new major version of the Free Pascal compiler.
Please also see http://wiki.freepascal.org/User_Changes_2.6.0 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* iPhoneSimulator target
Compiler:
* Many new language features:
* Objective-Pascal dialect, supported on all Mac OS X and iOS targets
* constref parameter modifier for "const by reference"
* Pascal boolean types with multiple sizes (boolean16/32/64)
* ISO 7185 language mode (except for I/O). Features amongst others:
* nested procedure variables
* non-local goto's
* Mac Pascal mode improvements
* nested procedure variables
* univ modifier
* Intrinsics
* sar (shift arithmetic right)
* bsf/bsr (bitscan forward/reverse)
* Delphi compatibility mode improvements
* Nested types, class variables and class local constants
* Advanced records syntax (no constructors yet)
* (for..in) Enumerators in records
* Class and record helpers
* Generic records, arrays and procedural types
* Delphi-compatibility of generics improved
* Scoped enumerations
* Custom messages for "deprecated" directive
* Ability to use "&" for escaping keywords
* New ARM code generator features
* ARM VFPv2 and VFPv3 floating point unit support
* Thumb-2 support
Packages:
* Many improvements to the rtl
* Many improvements to the database units (fcl-db)
* Objective-Pascal interfaces to Foundation, AppKit, CoreData and WebCore
* OpenGL headers updated to OpenGL 4.0
Details about these new features can be found at
http://wiki.freepascal.org/FPC_New_Features_2.6.0
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs that have been fixed in this release.
******************************************************************************
What's New in 2.4.4
******************************************************************************
Free Pascal 2.4.4 contains most library fixes from early June 2010 till March
2011. There are also some compiler fixes, mostly relating to 64-bit.
Please also see http://wiki.freepascal.org/User_Changes_2.4.4 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Packages:
* Many improvements to the XML units
* Many improvements to the database units.
* Specially sqlite got quite some fixes.
* Many improvements to the chm units.
* Including a commandline CHM compiler
* Many improvements to fppkg and fpmake for another round of testing.
Platforms:
* Fixes for multi-threading support in OS/2 RTL.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.4.2
******************************************************************************
Free Pascal 2.4.2 contains many fixes and a few new features. Most bugfixes
in the RTL and packages before June 2010 have been merged.
Please also see http://wiki.freepascal.org/User_Changes_2.4.2 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Compiler:
* Support D2006+ FOR..IN, with some FPC specific enhancements. Refer to
http://wiki.freepascal.org/for-in_loop for more information
* Support for sealed and abstract classes.
Packages:
* The existing Mac OS X Universal Interfaces units have been synchronised
with the Mac OS X 10.6 SDK. Several new units have also been added, and
where indicated in the Mac OS X 10.6 SDK they have also been enabled for
iPhoneOS/iOS.
* Many improvements to the XML units
* Many improvements to the database units
* Many improvemnets to the chm units
Platforms:
* Long term bug in OS/2 implementation of unit Video finally fixed which
among others allows inclusion of the text-mode IDE (without debugger)
for this platform as part of the distribution again.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.4.0
******************************************************************************
Free Pascal 2.4.0 contains many fixes and new features. While we did not
manage to incorporate all planned additions, we believe this release offers a
nice collection of new functionality and bug fixes.
Please also see http://wiki.freepascal.org/User_Changes_2.4.0 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* New platform: Mac OS X/PowerPC64
* New platform: Mac OS X/x86_64
* New platform: Mac OS X/ARM (iPhone)
Compiler:
* Support for Delphi-style resource handling
* Whole-program optimization infrastructure, which initially supports
program devirtualization and unused virtual method removal
* Much faster compilation of units containing many type-sections
* The ability to suppress individual hints/warnings/notes
* Several improvements to the DWARF debug information generation
* Fixes to the generics support
* Fixes to the interface delegation (implements) support
* Improved cpu register allocation
* Improved ARM/EABI support
RTL:
* Linearly scaling multi-threaded memory manager
* Support for (advisory) file locking on Unix-based platforms
when using the SysUtils file creation/opening routines
* Support for ANSI ISO Extended Pascal ReadStr/WriteStr
* A UnicodeString type that, while not yet equivalent to Delphi 2009's
UnicodeString type, offers reference counted UnicodeString support on
the Windows, Linux, Mac OS X, FreeBSD and Beos/Haiku platforms.
Packages:
* Many improvements to the XML units
* Many improvements to the database units
* Updated the common Mac OS X Pascal interfaces to r241, including
an updated header translation of the CFNetwork framework
* The zipper unit now works correctly on big endian platforms
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.4
******************************************************************************
Free Pascal 2.2.4 contains many bug fixes and some new features. The
main purpose of this release is to fix problems reported with FPC 2.2.2.
Please also see http://wiki.freepascal.org/User_Changes_2.2.4 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
All:
* Experimental packages-installation tool
Packages:
* Added support for TIFF reading/writing in fcl-image
* Improvements and fixes in CHM support
* Fixed linking the gtk2-package with gtk versions above 2.13.4
IDE:
* Added support for CHM help files
Documentation
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.2
******************************************************************************
Free Pascal 2.2.2 contains many bug fixes and some new features. The
main purpose of this release is to fix problems reported with FPC 2.2.0,
and to remove all potentially tainted code from our source code base.
Please also see http://wiki.freepascal.org/User_Changes_2.2.2 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
All:
* All code potentially infringing on CodeGear copyrighted code has been
reimplemented using a cleanroom approach.
Platforms:
* Incompatibilities with Mac OS X 10.5's new default linker have been
resolved.
Compiler:
* PIC support for Mac OS X (on by default, disable with -Cg-)
* several bugs in the experimental generics support have been fixed,
but this feature is still in beta
* initialisation and finalisation of shared libraries has been fixed
for all Darwin platforms, and for Linux/i386
* support for {$packset x} directive to enable set packing
(use {$packset 1} for Delphi-compatible sets, but note that the
format is different on little and big endian platforms)
RTL:
* thread resource leaking under unix has been fixed
* the widestring manager for unix has been completed
* several floating point to string conversion errors have been fixed
* significantly improved variant support
* implementation of RTL exception handler for OS/2 allowing proper
translation of some runtime errors
* various fixes for GO32v2 improving useability of this target
* OS/2 RTL enhanced to allow seamless working with large files (64-bit
file system API calls) where available (WSeB/MCP/eCS/Warp 4 with FP15)
Packages:
* the Windows API interface units have been significantly updated
* Apple universal interfaces updated to r234 of the common FPC/GPC/MW
interfaces
* New TRegexEngine class to parse regular expressions
Documentation
* Documentation was updated completely to conform to the actual
state of the compiler and RTL.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.0
******************************************************************************
Free Pascal 2.2.0 contains a lot of bug fixes and new features. The work on
Free Pascal 2.2.0 started halfway during the year 2005. A lot has been improved
since then.
Please also see http://wiki.freepascal.org/User_Changes_2.2.0 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Platforms:
* New platform: Win64. FPC is the first open source compiler for 64-bit
Windows operating systems.
* New processor architecture: 64-bit PowerPC
* PowerPC/64 support for Linux
* Mac OS X on Intel (i386) is now supported
* New platform: Windows CE (Windows Mobile)
* New platform: Nintendo Game Boy Advance
* New platform: Nintendo DS
* Native support for ARM-platform
* GO32V2 DOS platform got a long needed update
Compiler:
* Internal linker for win32, win64 and wince, resulting in smaller
executables, less memory used during compilation, and faster compile
times for programs using large frameworks like for example the Lazarus
Component Library.
* Generics (experimental)
* Bit packed arrays and records
* Resourcestrings can now be smartlinked, resulting in smaller executables
* Multiple resource files support
* pointer[low..high] syntax to pass C-style pointer arrays to procedures
using open arrays
* Interface delegation
* Proper safecall implementation
* Wide strings are COM/OLE compatible on Windows
* Added several speed optimisations, for example:
* Compiler can omit stack frames (x86 and ARM)
* Compiler can store records in registers
* Tail recursion expansion
* Register renaming optimizations
* Improved optimizer for ARM CPU
* Compiler can initialise local variables, function results, and "out"
parameters with several values (command line parameters -gt till -gtttt)
to help find uses of uninitialised variables
* Compiler can now properly deal with paths > 255 characters in all cases
* Dwarf debug format support
* Reduced memory usage during compilation
* Lot of small bugs and compatibility fixes
RTL:
* Heap uses less memory
* Improved variants support
* Improved currency support
* Exception handling can be used without SysUtils unit
* Lot of small bug and compatibility fixes
FCL:
* Improved database support
* The obsolete sqlitedataset, interbase, fpodbc, ddg, mysqldb3 and mysqldb4
units are removed
* Lot of small bugs and compatibility fixes
Packages:
* Added a new fppkg package manager
* Improved database support
* Added Delphi compatible RichEdit unit
* Apple universal interfaces updated to r204 of the common FPC/GPC/MW
interfaces
* Lot of small bugs and compatibility fixes
Free Vision:
* Now uses resourcestrings
IDE:
* Evaluate window
* Improved HTML rendering
* Improved xterm support
* Small bug fixes
Misc:
* Improved documentation
* Better cross compilation support
For a detailed list of reported bugs that are fixed in this release see the
bugtracker report at http://www.freepascal.org/mantis/changelog_page.php
******************************************************************************
What's New in 2.0.4
******************************************************************************
More than 1000 changes have been made to 2.0.4 since 2.0.2. As this is a bug
fix release, most are fixes for some issues, but new features and performance
enhancements have been added as well.
Compiler:
* Lot of small bugs and compatibility fixes
* Updated several translations
* Improved code generation
* Improved and fixed PIC code generation
* Improved register allocation
* Improved ansistring string code generation
* Several alignment values increased so the requirements of modern processors
are met better
* WINDOWS defined on all windows platforms (Win32, Win64, WinCE)
* Parameter order for methods with structured results changed
(result pointer<->self swapped), please check such methods if they are
implemented in assembler
* i386 compiler no longer needs environment variables set when installed on
an x86_64 Linux distribution
RTL:
* Lot of small bug and compatibility fixes
* 64 bit file pointer support on most targets
* Faster integer to string conversion
* Endian conversion routines added
* Improved heap manager
* Improved ansistring routines
* PowerPC: Power3/4/5/PPC970 compatibility
FCL:
* Lot of small bugs and compatibility fixes
* Improved database support
* The interbase, fpodbc, ddg, mysqldb3 and mysqldb4 units
are obsolete and replaced by the sqldb components
* Oracle support added
Packages:
* Lot of small bugs and compatibility fixes
* Improved database support
* Apple universal interfaces added
Free Vision:
* New outline unit
* Small bug fixes
* Unix: much improved video and keyboard handling
* Unix: Free Vision applications no longer need to link to libc
* Linux: grab_vcsa utility to ensure vcsa access
IDE:
* Small bug fixes
* Redesigned directories window
* Reorganised compiler options window
* Option to use Ctrl+X,C,V for cut/copy/paste
Misc:
* Improved documentation
* Better cross compilation support
******************************************************************************
What's New in 2.0.2
******************************************************************************
This is a bug fix release, so don't expect a big new feature list here. Most
of the almost 700 changes made to 2.0.2 since 2.0.0 are fixes for some issues.
Compiler:
* Lot of small bugs and compatibility fixes
* Improved SSE support
* Improved inlining
* Enhanced variant support
* Embedded resource support for targets using elf32 executable format
+ Type checking of compile time expressions
+ Mode MacPas: Support for Mac style objects
+ Mode MacPas: Compile time variables can be given on command line
RTL:
* Lot of small bugs and compatibility fixes
* Enhanced variant support
* Embedded resource support for targets using elf32 executable format
FCL:
* Lot of small bugs and compatibility fixes
* Improved SqlDB package
Packages:
* Lot of small bugs and compatibility fixes
* Improved data base support
IDE:
* Small bug fixes
Misc:
* Improved docs
* Bug fixes for FreeVision
******************************************************************************
What's New in 2.0.0
******************************************************************************
Compiler:
+ properties in objects are now allowed
+ use of cmov when at least -Cppentium2 is supplied (i386+ only)
+ .p is a searched source extension in macpas mode now
* Improved MacPas mode
* Improved variant support
* Updated language files
* Improved warnings regarding uninitialised variables
* Lot of small bugs and compatibility fixes
RTL:
* Several widestring and unicode fixes
* Heavily improved variant support
* Improved threading support
* Improved 64 bit compatibility
* Lot of small bugs and compatibility fixes
FCL:
* Improved data base support
* Lot of small bugs and compatibility fixes
Packages:
+ Jedi windows api is part of the packages now
+ Windows specific units of the rtl have been moved to packages/base/winunits
+ XFree header conversions to X package added
* Endian and 64 bit fixes
* Lot of small bugs and compatibility fixes
IDE:
* Small bug fixes
Misc:
* Improved docs
* Bug fixes for FreeVision
******************************************************************************
What's New in 1.9.8 aka 2.0.0-Rc2
******************************************************************************
Compiler:
+ arm-linux cross compiler for i386-linux
+ SysV style syscalls added for MorphOS
+ Exportable macros for mode MacPas
+ Support procvar declaration in parameters for mode MacPas
+ Give warning if code is never executed in while/if statements
+ Directive {$COPERATORS ON} added, synomym for -Sc
+ Check for uninitialzed from and to values in for-loop statement
+ -Fa<unit> option added to load units in a program before the uses statement
is parsed
+ -vz for output to stderr
* Better support for unique types
* AfterConstruction/BeforeDestruction behaviour is now compatible with Delphi
* Better support for Widestring
* Removed {$THREADING ON} directive, threading support is always available
* Improved code generation on Sparc
* Lot of small bugs and compatibility fixes
+ On target Mac OS, resource files is supported
RTL:
+ arm Linux support
* Basic threading support moved to the system unit
* Operator ** moved to math unit; system.power removed
* Improved variant support
* Lot of small bugs and compatibility fixes
+ The unit MacOS (api to Mac OS) for target MacOS
FCL:
+ Support for Interbase/Firebird, PostgreSQL and MySQL 4.0 under windows
* Database drivers are now dynamically loaded
* The TSQLQuery is now fully editable using cached updates
* Lot of small bugs and compatibility fixes
Packages:
+ gtk2 interface units
* 64 bit compatibility fixes
* Lot of small bugs and compatibility fixes
IDE:
+ vector unit window
* x86-64 asssembler debugging support improved
* Sparc asssembler debugging support improved
* Some bug fixes
Misc:
+ txt output to fpdoc added
* some fpdoc bugs fixes
+ demo for macos
******************************************************************************
What's New in 1.9.6 aka 2.0.0-Rc1
******************************************************************************
Compiler:
+ x86_64/amd64 (Linux) compiler
+ Sparc (Linux) compiler
+ PowerPC MorphOS support
+ Mac OS (classic) compiler (for MPW)
+ Netware Libc support (-Tnetwlibc)
+ Register variable support (-Or) for all targets
+ MacPas compiler mode (-Mmacpas)
* Better inlining support
* For loop variable assignment is not allowed anymore
* $fpctarget expands to <cpu>-<os> (except for 8.3 limited targets),
old $target removed
* Implicit loading of Variants unit
* Lots of bug fixes
RTL:
+ x86_64/amd64 Linux support
+ Sparc Linux support
+ PowerPC MorphOS support
+ Mac OS (classic) support (except Sysutils and its dependants)
+ Netware Libc support
+ New heap manager that releases memory back to the OS
+ TThread.Synchronize support
+ utf8bidi unit
+ GetHeapStatus added
+ GetProcessID added
+ SysUtils.GetEnvironmentVariableCount and SysUtils.GetEnvironmentString added
* gpm unit does not need libgpm anymore
+ Further additions for improved Delphi compatibility
+ System.GetProcessID and System.GetThreadID added
+ Dos.GetMsCount added
+ Support for changing console resolution in Video for Win32
+ Support for using high memory (> 512 MB) under OS/2 (where available)
- Removed MaxAvail, MemAvail, HeapSize due to their unreliability
(bogus/misleading return values) in multitasking environment with swapping
FCL:
+ RTTIUtils unit added
+ fpcunit test-framework added
* Lots of dbf and other db fixes
FV:
* Updated to fvision implementation, first official release
IDE:
* Lots of improvements and stability fixes
* Support latest gdb 6.2.x and 6.3.x releases
Docs:
+ Lots of updates
+ Easier to navigate html documentation
* fpDoc is used to generate all unit documentation
Misc:
* Makefiles create units in a separate directory units/cpu-os/
* More cross compilation improvements
******************************************************************************
What's New in 1.9.4 aka 2.0.0-Beta3
******************************************************************************
Compiler:
+ ARM (Linux) compiler
+ PowerPC Darwin (Mac OS X) support
+ reintroduce keyword support
+ added prefetch(const mem) support
+ MacPas compile mode
+ -gv to generate an executable that can be run under Valgrind >= 2.1
* register allocator fixes and tweaks
* better support for preprocessor $IF expressions
* better overloaded operator support
* Win32 DLL export table fixes
* stabs (debuginfo) generation cleanups
* enum names in RTTI are now in their original case
* record alignment fixes
* lots of bug fixes
RTL:
+ ARM Linux support
+ Powerpc Darwin support
+ Sysutils.RaiseLastOSError added
+ Sysutils.GetLastOSError added
+ Classes.TOwnedCollection added
+ Sysutils.FileIsReadOnly added
+ support of widestring and currency in the typinfo unit
* Better support for Libc based RTL (FPC_USE_LIBC)
* 64bit cleanup for future x86_64 port
* ExecuteProcess fixes
* Linux use getdents syscall instead of deprecated readdir
* bug fixes
FCL:
+ SDF DB backend
+ TGA support in fpImage
+ support of widestring and currency type in stream related classes
* Lot of fixes to fpImage classes
Misc:
* better cross development support
* Documentation updates
* Testsuite updates to store testrun results in a database
* Testsuite updates for cross platform testing, with remote rsh/ssh support
******************************************************************************
What's New in 1.9.2 aka 2.0.0-Beta2
******************************************************************************
Compiler:
+ PowerPC compiler
+ sse/sse2 code generation support
+ "global" property support
* improved inlining support
* optimizer enabled again
* uses register calling conventions by default
* $fputype directive
+ properties of type single can have default values
+ support of $IF DECLARED()
+ support of DQWORD in inline intel assembler code
* lots of bug fixes
RTL:
* more improvements for unix runtime library
* using FPC_USE_LIBC allows to compile an rtl which uses libc instead of
syscalls
+ System.Initialize
+ Sysutils.ExecuteProcess
+ System.WideStringManager
+ System.PtrInt and System.PtrUInt
* ipv6 support
* lots of bug fixes
FCL:
+ sqlite support
* bug fixes
Misc:
* improved docs
******************************************************************************
What's New in 1.9.0 aka 2.0.0-Beta1
******************************************************************************
Compiler:
+ dynamic arrays
+ interfaces
+ variants
+ full widestring support
+ default parameters
+ cross name scope overloading
+ support for the PowerPC, Sparc and ARM processor, installation packages
will follow within the next weeks
+ new and more sophisticated register allocator
+ inlining across units
+ register calling conventions
+ SSE and SSE2 support for inline assembler
+ PIC code generation
+ new language mode: "Mac Pascal"
+ full boolean evaluation is now also available
+ threadvar support, enabled by using {$threading on}
* support of int64 integer constants
* improved Delphi compatibility in -Sd mode
* a lot of bug fixes
* large parts of the compiler are rewritten to create a more stable,
portable and maintainable compiler
RTL:
+ multithreading support
* completely rewritten unix runtime library
* improved Delphi compatiblity
* significantly improved speed of exception related code
* prepared for big endian and 64 Bit CPUs
* a lot of bug fixes
FCL:
+ tdataset support
+ html generator
+ 64 Bit file handling
* a lot of bug fixes
Docs:
* adapted to reflect new language features
IDE:
* a lot of bug fixes
Misc:
* improved cross compilation |
ftp.freepascal.org/pub/fpc/dist/3.0.2/i386-os2/os2302.zip | ||
Free Pascal v. 3.0.2 (docs, 17/2/2017) | Readme/What's new |
Free Pascal Compiler
Version 3.0.2
******************************************************************************
What's New in 3.0.2
******************************************************************************
Free Pascal 3.0.2 is a point release of the 3.0.x fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_3.0.2 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Rtl:
* TRect, TPoint and similar types are now type compatible between
Types and Windows unit, and are now advanced records.
Packages:
* googleapi and fcl-pdf packages.
* fcl-db and web packages synchronized
* unicode tables updated.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
Free Pascal Compiler
Version 3.0.0
******************************************************************************
What's New in 3.0.0
******************************************************************************
Free Pascal 3.0.0 is a new major release providing support for new
architectures and targets and also many new features and compatibility fixes.
Please also see http://wiki.freepascal.org/User_Changes_3.0.0 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* New processor architecture: MIPS (big and little endian variants)
* New processor architecture: i8086 (primarily focusing legacy MS-DOS)
* New "processor" architecture: JVM
* Revived support for Motorola 68k processors (previously available
in 1.0.x series)
* Considerably extended supported range of ARM processor variants
* New platform: AIX/PowerPC
* New platform: AIX/PowerPC64
* New platform: Android/ARM
* New platform: Android/i386
* New platform: Android/JVM
* New platform: Android/MIPSEL
* New platform: AROS/i386
* New platform: DragonFly/x86_64
* New platform: Java/JVM
* New platform: Linux/MIPS
* New platform: Linux/MIPSEL
* New platform: msdos/i8086
Compiler:
* New support for codepage-aware strings (bringing improved compatibility
to recent Delphi versions)
* Support for processor sub-architectures (mostly for ARM variants)
* Support for multiple memory models (i8086 - including memory models
not supported with the last TP/BP compilers)
RTL:
* Partial support for codepage-aware strings and Unicode in the RTL
including transparent character set conversion
* OS/2 RTL finally provides full support for UnicodeString handling
when running under OS/2 versions including such support (OS/2 Warp 4
and up)
* Direct support for certain OS/2 API functions only available in later
OS/2 versions while allowing the created binaries to run also on older
versions
Packages:
* Big improvements of fpmake (fpmkunit) - all packages and utilities
(actually everything except the compiler and RTL) are now built using
fpmake which somewhat decreases dependency on external utilities.
* New packages rtl-* containing units previously included in RTL; this
allowed streamlining the RTL and thus speeding up RTL building.
* New package fpwidestring - native implementation of Unicode string
handling routines. This allows full support of UnicodeString also
on targets not supporting Unicode natively or possibly on targets
requiring linking to libc for such support.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.6.4
******************************************************************************
Free Pascal 2.6.4 is a point release from the 2.6.0 fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_2.6.4 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Compiler:
Packages:
* Lots and lots fixes and improvements for fcl-db
* Web and json packages synchronized.
* Improvements to the chmcmd compiler.
* Several fixes for winunits (and winceunits)
Platforms:
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.6.2
******************************************************************************
Free Pascal 2.6.2 is a point release from the 2.6.0 fixes branch.
Please also see http://wiki.freepascal.org/User_Changes_2.6.2 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Compiler:
* Improvements and fixes for the ARM architecture
Packages:
* New package fpindexer (indexing engine)
* Support for observer pattern added to fcl-base (and base classes in RTL)
* Lots and lots fixes and improvements for fcl-db
* Support for JSON dataset added among others
* Fixes and improvements for fcl-passrc (and fpdoc)
* Updates for PTCPas and gtk2
* Fpmkunit improvements (better support for future switch to fpmake)
* Several fixes for x11
* Several fixes for winunits (and winceunits)
Platforms:
* Improvements to the NativeNT target (newly introduced as alpha in 2.6.0)
* Many fixes for OpenBSD and NetBSD (considered in beta state now)
* Internal ELF writer supported for more BSD targets
* Fixes and improvements for gba and nds
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.6.0
******************************************************************************
Free Pascal 2.6.0 is a new major version of the Free Pascal compiler.
Please also see http://wiki.freepascal.org/User_Changes_2.6.0 for a list
of changes that may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* iPhoneSimulator target
Compiler:
* Many new language features:
* Objective-Pascal dialect, supported on all Mac OS X and iOS targets
* constref parameter modifier for "const by reference"
* Pascal boolean types with multiple sizes (boolean16/32/64)
* ISO 7185 language mode (except for I/O). Features amongst others:
* nested procedure variables
* non-local goto's
* Mac Pascal mode improvements
* nested procedure variables
* univ modifier
* Intrinsics
* sar (shift arithmetic right)
* bsf/bsr (bitscan forward/reverse)
* Delphi compatibility mode improvements
* Nested types, class variables and class local constants
* Advanced records syntax (no constructors yet)
* (for..in) Enumerators in records
* Class and record helpers
* Generic records, arrays and procedural types
* Delphi-compatibility of generics improved
* Scoped enumerations
* Custom messages for "deprecated" directive
* Ability to use "&" for escaping keywords
* New ARM code generator features
* ARM VFPv2 and VFPv3 floating point unit support
* Thumb-2 support
Packages:
* Many improvements to the rtl
* Many improvements to the database units (fcl-db)
* Objective-Pascal interfaces to Foundation, AppKit, CoreData and WebCore
* OpenGL headers updated to OpenGL 4.0
Details about these new features can be found at
http://wiki.freepascal.org/FPC_New_Features_2.6.0
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs that have been fixed in this release.
******************************************************************************
What's New in 2.4.4
******************************************************************************
Free Pascal 2.4.4 contains most library fixes from early June 2010 till March
2011. There are also some compiler fixes, mostly relating to 64-bit.
Please also see http://wiki.freepascal.org/User_Changes_2.4.4 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Packages:
* Many improvements to the XML units
* Many improvements to the database units.
* Specially sqlite got quite some fixes.
* Many improvements to the chm units.
* Including a commandline CHM compiler
* Many improvements to fppkg and fpmake for another round of testing.
Platforms:
* Fixes for multi-threading support in OS/2 RTL.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.4.2
******************************************************************************
Free Pascal 2.4.2 contains many fixes and a few new features. Most bugfixes
in the RTL and packages before June 2010 have been merged.
Please also see http://wiki.freepascal.org/User_Changes_2.4.2 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Compiler:
* Support D2006+ FOR..IN, with some FPC specific enhancements. Refer to
http://wiki.freepascal.org/for-in_loop for more information
* Support for sealed and abstract classes.
Packages:
* The existing Mac OS X Universal Interfaces units have been synchronised
with the Mac OS X 10.6 SDK. Several new units have also been added, and
where indicated in the Mac OS X 10.6 SDK they have also been enabled for
iPhoneOS/iOS.
* Many improvements to the XML units
* Many improvements to the database units
* Many improvemnets to the chm units
Platforms:
* Long term bug in OS/2 implementation of unit Video finally fixed which
among others allows inclusion of the text-mode IDE (without debugger)
for this platform as part of the distribution again.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.4.0
******************************************************************************
Free Pascal 2.4.0 contains many fixes and new features. While we did not
manage to incorporate all planned additions, we believe this release offers a
nice collection of new functionality and bug fixes.
Please also see http://wiki.freepascal.org/User_Changes_2.4.0 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
Platforms:
* New platform: Mac OS X/PowerPC64
* New platform: Mac OS X/x86_64
* New platform: Mac OS X/ARM (iPhone)
Compiler:
* Support for Delphi-style resource handling
* Whole-program optimization infrastructure, which initially supports
program devirtualization and unused virtual method removal
* Much faster compilation of units containing many type-sections
* The ability to suppress individual hints/warnings/notes
* Several improvements to the DWARF debug information generation
* Fixes to the generics support
* Fixes to the interface delegation (implements) support
* Improved cpu register allocation
* Improved ARM/EABI support
RTL:
* Linearly scaling multi-threaded memory manager
* Support for (advisory) file locking on Unix-based platforms
when using the SysUtils file creation/opening routines
* Support for ANSI ISO Extended Pascal ReadStr/WriteStr
* A UnicodeString type that, while not yet equivalent to Delphi 2009's
UnicodeString type, offers reference counted UnicodeString support on
the Windows, Linux, Mac OS X, FreeBSD and Beos/Haiku platforms.
Packages:
* Many improvements to the XML units
* Many improvements to the database units
* Updated the common Mac OS X Pascal interfaces to r241, including
an updated header translation of the CFNetwork framework
* The zipper unit now works correctly on big endian platforms
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.4
******************************************************************************
Free Pascal 2.2.4 contains many bug fixes and some new features. The
main purpose of this release is to fix problems reported with FPC 2.2.2.
Please also see http://wiki.freepascal.org/User_Changes_2.2.4 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
All:
* Experimental packages-installation tool
Packages:
* Added support for TIFF reading/writing in fcl-image
* Improvements and fixes in CHM support
* Fixed linking the gtk2-package with gtk versions above 2.13.4
IDE:
* Added support for CHM help files
Documentation
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.2
******************************************************************************
Free Pascal 2.2.2 contains many bug fixes and some new features. The
main purpose of this release is to fix problems reported with FPC 2.2.0,
and to remove all potentially tainted code from our source code base.
Please also see http://wiki.freepascal.org/User_Changes_2.2.2 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Some highlights are:
All:
* All code potentially infringing on CodeGear copyrighted code has been
reimplemented using a cleanroom approach.
Platforms:
* Incompatibilities with Mac OS X 10.5's new default linker have been
resolved.
Compiler:
* PIC support for Mac OS X (on by default, disable with -Cg-)
* several bugs in the experimental generics support have been fixed,
but this feature is still in beta
* initialisation and finalisation of shared libraries has been fixed
for all Darwin platforms, and for Linux/i386
* support for {$packset x} directive to enable set packing
(use {$packset 1} for Delphi-compatible sets, but note that the
format is different on little and big endian platforms)
RTL:
* thread resource leaking under unix has been fixed
* the widestring manager for unix has been completed
* several floating point to string conversion errors have been fixed
* significantly improved variant support
* implementation of RTL exception handler for OS/2 allowing proper
translation of some runtime errors
* various fixes for GO32v2 improving useability of this target
* OS/2 RTL enhanced to allow seamless working with large files (64-bit
file system API calls) where available (WSeB/MCP/eCS/Warp 4 with FP15)
Packages:
* the Windows API interface units have been significantly updated
* Apple universal interfaces updated to r234 of the common FPC/GPC/MW
interfaces
* New TRegexEngine class to parse regular expressions
Documentation
* Documentation was updated completely to conform to the actual
state of the compiler and RTL.
See http://bugs.freepascal.org/changelog_page.php for the list of reported
bugs which have been fixed in this release.
******************************************************************************
What's New in 2.2.0
******************************************************************************
Free Pascal 2.2.0 contains a lot of bug fixes and new features. The work on
Free Pascal 2.2.0 started halfway during the year 2005. A lot has been improved
since then.
Please also see http://wiki.freepascal.org/User_Changes_2.2.0 for a list
of changes which may affect the behaviour of previously working code, and
how to cope with these changes.
Platforms:
* New platform: Win64. FPC is the first open source compiler for 64-bit
Windows operating systems.
* New processor architecture: 64-bit PowerPC
* PowerPC/64 support for Linux
* Mac OS X on Intel (i386) is now supported
* New platform: Windows CE (Windows Mobile)
* New platform: Nintendo Game Boy Advance
* New platform: Nintendo DS
* Native support for ARM-platform
* GO32V2 DOS platform got a long needed update
Compiler:
* Internal linker for win32, win64 and wince, resulting in smaller
executables, less memory used during compilation, and faster compile
times for programs using large frameworks like for example the Lazarus
Component Library.
* Generics (experimental)
* Bit packed arrays and records
* Resourcestrings can now be smartlinked, resulting in smaller executables
* Multiple resource files support
* pointer[low..high] syntax to pass C-style pointer arrays to procedures
using open arrays
* Interface delegation
* Proper safecall implementation
* Wide strings are COM/OLE compatible on Windows
* Added several speed optimisations, for example:
* Compiler can omit stack frames (x86 and ARM)
* Compiler can store records in registers
* Tail recursion expansion
* Register renaming optimizations
* Improved optimizer for ARM CPU
* Compiler can initialise local variables, function results, and "out"
parameters with several values (command line parameters -gt till -gtttt)
to help find uses of uninitialised variables
* Compiler can now properly deal with paths > 255 characters in all cases
* Dwarf debug format support
* Reduced memory usage during compilation
* Lot of small bugs and compatibility fixes
RTL:
* Heap uses less memory
* Improved variants support
* Improved currency support
* Exception handling can be used without SysUtils unit
* Lot of small bug and compatibility fixes
FCL:
* Improved database support
* The obsolete sqlitedataset, interbase, fpodbc, ddg, mysqldb3 and mysqldb4
units are removed
* Lot of small bugs and compatibility fixes
Packages:
* Added a new fppkg package manager
* Improved database support
* Added Delphi compatible RichEdit unit
* Apple universal interfaces updated to r204 of the common FPC/GPC/MW
interfaces
* Lot of small bugs and compatibility fixes
Free Vision:
* Now uses resourcestrings
IDE:
* Evaluate window
* Improved HTML rendering
* Improved xterm support
* Small bug fixes
Misc:
* Improved documentation
* Better cross compilation support
For a detailed list of reported bugs that are fixed in this release see the
bugtracker report at http://www.freepascal.org/mantis/changelog_page.php
******************************************************************************
What's New in 2.0.4
******************************************************************************
More than 1000 changes have been made to 2.0.4 since 2.0.2. As this is a bug
fix release, most are fixes for some issues, but new features and performance
enhancements have been added as well.
Compiler:
* Lot of small bugs and compatibility fixes
* Updated several translations
* Improved code generation
* Improved and fixed PIC code generation
* Improved register allocation
* Improved ansistring string code generation
* Several alignment values increased so the requirements of modern processors
are met better
* WINDOWS defined on all windows platforms (Win32, Win64, WinCE)
* Parameter order for methods with structured results changed
(result pointer<->self swapped), please check such methods if they are
implemented in assembler
* i386 compiler no longer needs environment variables set when installed on
an x86_64 Linux distribution
RTL:
* Lot of small bug and compatibility fixes
* 64 bit file pointer support on most targets
* Faster integer to string conversion
* Endian conversion routines added
* Improved heap manager
* Improved ansistring routines
* PowerPC: Power3/4/5/PPC970 compatibility
FCL:
* Lot of small bugs and compatibility fixes
* Improved database support
* The interbase, fpodbc, ddg, mysqldb3 and mysqldb4 units
are obsolete and replaced by the sqldb components
* Oracle support added
Packages:
* Lot of small bugs and compatibility fixes
* Improved database support
* Apple universal interfaces added
Free Vision:
* New outline unit
* Small bug fixes
* Unix: much improved video and keyboard handling
* Unix: Free Vision applications no longer need to link to libc
* Linux: grab_vcsa utility to ensure vcsa access
IDE:
* Small bug fixes
* Redesigned directories window
* Reorganised compiler options window
* Option to use Ctrl+X,C,V for cut/copy/paste
Misc:
* Improved documentation
* Better cross compilation support
******************************************************************************
What's New in 2.0.2
******************************************************************************
This is a bug fix release, so don't expect a big new feature list here. Most
of the almost 700 changes made to 2.0.2 since 2.0.0 are fixes for some issues.
Compiler:
* Lot of small bugs and compatibility fixes
* Improved SSE support
* Improved inlining
* Enhanced variant support
* Embedded resource support for targets using elf32 executable format
+ Type checking of compile time expressions
+ Mode MacPas: Support for Mac style objects
+ Mode MacPas: Compile time variables can be given on command line
RTL:
* Lot of small bugs and compatibility fixes
* Enhanced variant support
* Embedded resource support for targets using elf32 executable format
FCL:
* Lot of small bugs and compatibility fixes
* Improved SqlDB package
Packages:
* Lot of small bugs and compatibility fixes
* Improved data base support
IDE:
* Small bug fixes
Misc:
* Improved docs
* Bug fixes for FreeVision
******************************************************************************
What's New in 2.0.0
******************************************************************************
Compiler:
+ properties in objects are now allowed
+ use of cmov when at least -Cppentium2 is supplied (i386+ only)
+ .p is a searched source extension in macpas mode now
* Improved MacPas mode
* Improved variant support
* Updated language files
* Improved warnings regarding uninitialised variables
* Lot of small bugs and compatibility fixes
RTL:
* Several widestring and unicode fixes
* Heavily improved variant support
* Improved threading support
* Improved 64 bit compatibility
* Lot of small bugs and compatibility fixes
FCL:
* Improved data base support
* Lot of small bugs and compatibility fixes
Packages:
+ Jedi windows api is part of the packages now
+ Windows specific units of the rtl have been moved to packages/base/winunits
+ XFree header conversions to X package added
* Endian and 64 bit fixes
* Lot of small bugs and compatibility fixes
IDE:
* Small bug fixes
Misc:
* Improved docs
* Bug fixes for FreeVision
******************************************************************************
What's New in 1.9.8 aka 2.0.0-Rc2
******************************************************************************
Compiler:
+ arm-linux cross compiler for i386-linux
+ SysV style syscalls added for MorphOS
+ Exportable macros for mode MacPas
+ Support procvar declaration in parameters for mode MacPas
+ Give warning if code is never executed in while/if statements
+ Directive {$COPERATORS ON} added, synomym for -Sc
+ Check for uninitialzed from and to values in for-loop statement
+ -Fa<unit> option added to load units in a program before the uses statement
is parsed
+ -vz for output to stderr
* Better support for unique types
* AfterConstruction/BeforeDestruction behaviour is now compatible with Delphi
* Better support for Widestring
* Removed {$THREADING ON} directive, threading support is always available
* Improved code generation on Sparc
* Lot of small bugs and compatibility fixes
+ On target Mac OS, resource files is supported
RTL:
+ arm Linux support
* Basic threading support moved to the system unit
* Operator ** moved to math unit; system.power removed
* Improved variant support
* Lot of small bugs and compatibility fixes
+ The unit MacOS (api to Mac OS) for target MacOS
FCL:
+ Support for Interbase/Firebird, PostgreSQL and MySQL 4.0 under windows
* Database drivers are now dynamically loaded
* The TSQLQuery is now fully editable using cached updates
* Lot of small bugs and compatibility fixes
Packages:
+ gtk2 interface units
* 64 bit compatibility fixes
* Lot of small bugs and compatibility fixes
IDE:
+ vector unit window
* x86-64 asssembler debugging support improved
* Sparc asssembler debugging support improved
* Some bug fixes
Misc:
+ txt output to fpdoc added
* some fpdoc bugs fixes
+ demo for macos
******************************************************************************
What's New in 1.9.6 aka 2.0.0-Rc1
******************************************************************************
Compiler:
+ x86_64/amd64 (Linux) compiler
+ Sparc (Linux) compiler
+ PowerPC MorphOS support
+ Mac OS (classic) compiler (for MPW)
+ Netware Libc support (-Tnetwlibc)
+ Register variable support (-Or) for all targets
+ MacPas compiler mode (-Mmacpas)
* Better inlining support
* For loop variable assignment is not allowed anymore
* $fpctarget expands to <cpu>-<os> (except for 8.3 limited targets),
old $target removed
* Implicit loading of Variants unit
* Lots of bug fixes
RTL:
+ x86_64/amd64 Linux support
+ Sparc Linux support
+ PowerPC MorphOS support
+ Mac OS (classic) support (except Sysutils and its dependants)
+ Netware Libc support
+ New heap manager that releases memory back to the OS
+ TThread.Synchronize support
+ utf8bidi unit
+ GetHeapStatus added
+ GetProcessID added
+ SysUtils.GetEnvironmentVariableCount and SysUtils.GetEnvironmentString added
* gpm unit does not need libgpm anymore
+ Further additions for improved Delphi compatibility
+ System.GetProcessID and System.GetThreadID added
+ Dos.GetMsCount added
+ Support for changing console resolution in Video for Win32
+ Support for using high memory (> 512 MB) under OS/2 (where available)
- Removed MaxAvail, MemAvail, HeapSize due to their unreliability
(bogus/misleading return values) in multitasking environment with swapping
FCL:
+ RTTIUtils unit added
+ fpcunit test-framework added
* Lots of dbf and other db fixes
FV:
* Updated to fvision implementation, first official release
IDE:
* Lots of improvements and stability fixes
* Support latest gdb 6.2.x and 6.3.x releases
Docs:
+ Lots of updates
+ Easier to navigate html documentation
* fpDoc is used to generate all unit documentation
Misc:
* Makefiles create units in a separate directory units/cpu-os/
* More cross compilation improvements
******************************************************************************
What's New in 1.9.4 aka 2.0.0-Beta3
******************************************************************************
Compiler:
+ ARM (Linux) compiler
+ PowerPC Darwin (Mac OS X) support
+ reintroduce keyword support
+ added prefetch(const mem) support
+ MacPas compile mode
+ -gv to generate an executable that can be run under Valgrind >= 2.1
* register allocator fixes and tweaks
* better support for preprocessor $IF expressions
* better overloaded operator support
* Win32 DLL export table fixes
* stabs (debuginfo) generation cleanups
* enum names in RTTI are now in their original case
* record alignment fixes
* lots of bug fixes
RTL:
+ ARM Linux support
+ Powerpc Darwin support
+ Sysutils.RaiseLastOSError added
+ Sysutils.GetLastOSError added
+ Classes.TOwnedCollection added
+ Sysutils.FileIsReadOnly added
+ support of widestring and currency in the typinfo unit
* Better support for Libc based RTL (FPC_USE_LIBC)
* 64bit cleanup for future x86_64 port
* ExecuteProcess fixes
* Linux use getdents syscall instead of deprecated readdir
* bug fixes
FCL:
+ SDF DB backend
+ TGA support in fpImage
+ support of widestring and currency type in stream related classes
* Lot of fixes to fpImage classes
Misc:
* better cross development support
* Documentation updates
* Testsuite updates to store testrun results in a database
* Testsuite updates for cross platform testing, with remote rsh/ssh support
******************************************************************************
What's New in 1.9.2 aka 2.0.0-Beta2
******************************************************************************
Compiler:
+ PowerPC compiler
+ sse/sse2 code generation support
+ "global" property support
* improved inlining support
* optimizer enabled again
* uses register calling conventions by default
* $fputype directive
+ properties of type single can have default values
+ support of $IF DECLARED()
+ support of DQWORD in inline intel assembler code
* lots of bug fixes
RTL:
* more improvements for unix runtime library
* using FPC_USE_LIBC allows to compile an rtl which uses libc instead of
syscalls
+ System.Initialize
+ Sysutils.ExecuteProcess
+ System.WideStringManager
+ System.PtrInt and System.PtrUInt
* ipv6 support
* lots of bug fixes
FCL:
+ sqlite support
* bug fixes
Misc:
* improved docs
******************************************************************************
What's New in 1.9.0 aka 2.0.0-Beta1
******************************************************************************
Compiler:
+ dynamic arrays
+ interfaces
+ variants
+ full widestring support
+ default parameters
+ cross name scope overloading
+ support for the PowerPC, Sparc and ARM processor, installation packages
will follow within the next weeks
+ new and more sophisticated register allocator
+ inlining across units
+ register calling conventions
+ SSE and SSE2 support for inline assembler
+ PIC code generation
+ new language mode: "Mac Pascal"
+ full boolean evaluation is now also available
+ threadvar support, enabled by using {$threading on}
* support of int64 integer constants
* improved Delphi compatibility in -Sd mode
* a lot of bug fixes
* large parts of the compiler are rewritten to create a more stable,
portable and maintainable compiler
RTL:
+ multithreading support
* completely rewritten unix runtime library
* improved Delphi compatiblity
* significantly improved speed of exception related code
* prepared for big endian and 64 Bit CPUs
* a lot of bug fixes
FCL:
+ tdataset support
+ html generator
+ 64 Bit file handling
* a lot of bug fixes
Docs:
* adapted to reflect new language features
IDE:
* a lot of bug fixes
Misc:
* improved cross compilation |
ftp.freepascal.org/pub/fpc/dist/3.0.2/i386-os2/separate/docs/doc-pdf.zip | ||
Free Pascal v. 3.0.0 (21/11/2015) | ||
ftp.freepascal.org/pub/fpc/dist/3.0.0/i386-os2/os2300full.zip | ||
Free Pascal v. 3.0.0 (docs, 21/11/2015) | ||
ftp.freepascal.org/pub/fpc/dist/3.0.0/docs/doc-pdf.zip | ||
Free Pascal v. 3.0.0 (source code, 17/11/2015) | ||
ftp.freepascal.org/pub/fpc/dist/3.0.0/i386-os2/os2300.zip | ||
Free Pascal v. 2.6.4 (3/3/2014) | ||
ftp.freepascal.org/pub/fpc/dist/2.6.4/i386-os2/os2264full.zip | ||
Free Pascal v. 2.6.4 (source code, 3/3/2014) | ||
ftp.freepascal.org/pub/fpc/dist/2.6.4/i386-os2/os2264.zip | ||
Free Pascal v. 2.6.4 (docs, 3/3/2014) | ||
ftp.freepascal.org/pub/fpc/dist/2.6.4/docs/doc-pdf.zip |
This work is licensed under a Creative Commons Attribution 4.0 International License.
Add new comment