Free Pascal Compiler Version 1.0.4 ****************************************************************************** Whats New in 1.0.4 ****************************************************************************** Compiler: + Fpc executable + Rangechecking for int64 + Better cardinal rangechecking + Debugging support for classes + FreeBSD and Linux define both UNIX * XMM registers in assembler fixed * Optimizer fixes * Fixed some reported bugs RTL: + Lot of FreeBSD updates * FindFirst/FindClose fixes * Termios updates for FreeBSD and Linux * FExpand fixes * TypInfo fixes * Val(qword) works FCL: * sstream example added * fixed some missing .o and .a files Utils: * fpcmake updates for freebsd * ppufiles fix to allow / in filenames under go32v2/win32 Docs: + IDE documentation ****************************************************************************** Whats New in 1.0.2 ****************************************************************************** Compiler: + memory requirements reduced a lot when creating smartlink libraries + identical procedures or functions are now already found in the interface instead of after parsing the implementation also + overload directive parsing is now D5 compatible + stop compiling if -S2 or -Sd is required and give a nicer error message + don't allow wrong assemblers for targets (i.e. refuse as.exe for win32) * fixed smartlinking for win32 imports * some -Or and other optimizer fixes * fixed some crashes with undeclared identifiers and inlined functions * packenum fixes * internal binary writer is now a lot faster when creating smartlink libraries with a lot of files (like the windows unit) * better targetdir support * don't allow word = word like type definitions * integer(char) typecast works now * some other small reported bugs RTL: + bsd port files + sysutils more delphi compatible + sysutils.syserrormessage added for platforms supporting it * some graph fixes * linux crt handles ctrl-c better * win32 crt returns alt- correct * small int64 fixes * paramstr(0) fix for linux 2.0 kernels * go32v2 getenv made case insensitive * lot of os2 updates ****************************************************************************** Whats New in 1.00 ****************************************************************************** Compiler: + -gl switch to automaticly load the lineinfo unit + Lot of Delphi compatibility additions, especially when using -Sd * Optimizer fixes, mainly register allocations needed for -Or * int64/qword fixes * RTTI fixes * Smartlinking fixes for classes * inline fixes (but still Beta) * Exceptions generate more usefull backtraces which also support the new lineinfo unit * {$Packrecords C} fixes to be better C compatible * operator should now work correctly when defined in other units and locally and other fixes * Better glibc 2.1.x support under linux * Lot of other small bugfixes for the reported bugs RTL: + lineinfo unit to display the file and line when a backtrace is generated, this works for runtime errors, unhandled exceptions and heaptrc unit (hint: use -ghl to easily detect and fix memory leaks) * better precision when converting float to string * Better exception support for Go32v2 without the need to load dpmiexcp * Better Signal handling under linux for exception reporting * Windows unit for win32 has now more delphi compatible declarations * disksize/diskfree return now int64 so drives > 2GB work correctly * lot of graph unit fixes, with generic mode support * paramstr(0) under linux now returns the full executable instead of the commandline * heaptrc fixes for reallocmem * other fixes reported by users IDE: + don't allow wrong assemblers with specific targets + default mode for which assembler to use + Recompiling a program does now also use unsaved files still in the editor * the support files are now placed in the same dir as fp.exe where they were expected Utils: + postw32 to postprocess win32 executables to patch the stacksize * h2pas is now better and also has a compact output mode with less spaces and blank lines. * fpcmake supports .so library creation and example installation Packages: + opengl for win32 * fixed win32 gtk interface FCL: + db support (TDataSet,TDatabase) for mysql * idea fixes ****************************************************************************** Whats New in 0.99.14 ****************************************************************************** Compiler: + DLL creation fixed, it needs dlltool now + .so creation for linux works also with classes + Library writing works better, also linux library support + better FPU code generation + only one PPU is used per unit also when static, shared and smart linked + assembler understands KNI instructions + fail in class constructors works + resourcestrings support + gettext support for resourcestrings (localization) + > < >= <= support for boolean + checking for unused but assigned variables and private fields * lot of RTTI fixes * lot of property fixes * pointer addition/substraction works like inc()/dec() (with the size of the pointed type) * assembler reader fixes so it works more like BASM * exit in try...finally/except block works * don't allow goto/label with exception blocks * stabs debugging fixed for classes and result variable * array constructor support * initialization/finalization work also in default FPC mode * assert works now also within $H+ mode * lot of other fixes RTL: + New graph unit for GO32v2, Win32, Linux + Delphi style GetMem/Freemem/ReAllocMem which knows the size of the allocated block itself. Specifying wrong size for freemem gives now also a Runtime Error + ports unit for both GO32v2 and OS/2, which contains the port[] support. It's now compatible with Linux ports unit + timezone support for linux + primitive routines Compare[Byte,Word,Dword], Index[Byte,Word,Dword] * better ioresult setting for GO32v2 * some pchar fixes in sysutils unit * lot of RTTI fixes for typinfo * ansistrings speedups * some other small fixes Utils: + fpcmake util to create a Makefile from Makefile.fpc + delp util to delete all created files after compiling (exe, o, ppu) + fprcp util for preprocessing win32 resource files + data2inc util to convert data into .inc files + binobj for binary to .o/.inc files, also with crypt, compression support + ppufiles show all created files needed by a unit + rstconv util to convert .rst files to gettext files + plex,pyacc Pascal Lex/Yacc * ppudump, ppufiles updated for new ppu version ****************************************************************************** Whats New in 0.99.12 ****************************************************************************** Compiler: + lot of ansistring fixes + coff writer for go32v2,win32 with instant .a creation (BETA) + working global browser + new compiler directives (path and other cmdline switches) + val,readln support range checking + initialization/finalization support + methodpointer support + message support * better intel,at&t parsers with mmx,3dnow support * better unit dependency handling and recompiling * static var fixes * better addr() support * lot of other fixes, too many to list here RTL: + Internationalization suport in sysutils + FileNameCaseSensitive boolean for go32v2,win32 * more precise str/val * better val(),readln() * io error handling much more like tp7 * small other fixes Utils: + ptop to pretty print your sources * beter ppudump ****************************************************************************** Whats New in 0.99.10 ****************************************************************************** Compiler: + better optimizer + ansistring support + array of const support for FormatStr + automatic heaptrc unit including with the -gh option + open strings ($P+) support + DLL generation for Win32 + printf support for cdecl using array of const * exceptions are finally working * fixed some ppu problems * fixed unit interdependency problems * better range checking, also for enums * size of objects without virtuals is now the same as tp7 * lot of fixes for the assembler readers * more constant expression evalutations * removed all memoryleaks * almost all reported bugs are fixed RTL: + heaptrc unit to detect memoryleaks and other problems with the heap + graph unit works and some missing functions are added * objects unit fully works * more functions for the classes,sysutils unit Utils: * ppudump updated for new ppu entries * h2pas updated to write new cdecl declaration ****************************************************************************** Whats New in 0.99.8 ****************************************************************************** Compiler: + smartlinking support (-Cx) + new ppu format which much more portable en extendible + new scanner with better file position info + constant evaluation like tp7 (trunc,round,hi,swap) + rtti support + exception support + longbool,wordbool support + enumerated packing support like delphi + c variable support (-Sv) + Win32 support (no export and resource support yet) * optimizer switches changed to be easier to use * lot of fixes for sets, also supporting dynamic creation * working open array (sizeof,high) * better filename handling for all platforms * ability to list source lines in the assembler file * some error messages changed to for better understanding * better calling convention support, delphi compatible * glibc2 (linux) support * too many other small bugfixes and internal enhancements RTL: + sysutils unit for objpas + port[] array for go32v2 + graph unit for linux + uniform objects unit for all platforms + rtti support + automatic Longfilename (LFN) support for go32v2 * go32 crt startup delay has been removed * missing pchar support for some file functions (assign,rename) * heapblocks support, which is much faster when allocating a lot of small blocks (like objects) * filerec/textrec is now uniform for all platforms (but not tp7 compatible) * extended is the default floating point type * lot of other fixes and small enhancements Utils: + h2pas util to convert .h files to .pas file + ppudump util replaces the old dumpppu * mkdep is now much less strict and (* *) support ****************************************************************************** Whats New in 0.99.5 ****************************************************************************** Mainly, bugs are fixed and some improvements are made in that release, besides that the following stuff is added: * compiler - mem[] and absolute works now as expected (go32v2 target only) - basic MMX support by the compiler (see docs for more infos) * runtime library - better support of floating point types