Free Pascal Compiler Version 2.0.4 ****************************************************************************** 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 data base support Packages: * Lot of small bugs and compatibility fixes * Improved data base 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 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 - (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