Browse Source

* updated for 1.9.0 release

florian 22 years ago
parent
commit
a0b936c245
2 changed files with 68 additions and 452 deletions
  1. 32 154
      install/doc/readme.txt
  2. 36 298
      install/doc/whatsnew.txt

+ 32 - 154
install/doc/readme.txt

@@ -1,33 +1,33 @@
 
 
                             Free Pascal Compiler
                             Free Pascal Compiler
 
 
-                               Version 1.2.0
+                        Version 1.9.0 aka 2.0.0-Beta1
 
 
 
 
 ****************************************************************************
 ****************************************************************************
 * Introduction
 * Introduction
 ****************************************************************************
 ****************************************************************************
 
 
+*** WARNING *** WARNING *** WARNING ***
+This a beta release and it still contains some known bugs. However, it would
+be very useful if you could test your projects with it and tell us when
+you find bugs.
+*** WARNING *** WARNING *** WARNING ***
+
 This package contains a freeware 32-bit pascal compiler for 386+. The language
 This package contains a freeware 32-bit pascal compiler for 386+. The language
-and the runtime library are more or less compatible to TP 7.0. Some Delphi
-additions have also been implemented like classes, exceptions, ansistrings
-and rtti.
+and the runtime library are almost compatible with TP 7.0 and recent Delphi
+releases.
 
 
-Free Pascal is currently available for the following platforms:
-- DOS, via the DJ Delorie's GO32V2 Dos extenders
+Free Pascal 1.9.0 is currently available for the following platforms:
 - Linux (i386), both aout and elf
 - Linux (i386), both aout and elf
-- OS/2 & DOS, via the EMX extender
 - Win32 (Win32s, Win95/98/Me/XP/2000 and WinNT)
 - Win32 (Win32s, Win95/98/Me/XP/2000 and WinNT)
-- Sun Solaris i386
-- BeOS i386
-- QNX i386
 - FreeBSD i386
 - FreeBSD i386
 
 
-Older version of the compiler (0.99.5) is also available on:
-- Commodore Amiga
-- Atari ST
-
-More platforms will be supported in the future.
+More platforms will be supported in future 1.9.x beta releases.
+Because release building is quite time intensive, we decide to start the
+2.0 beta series only with the most important targets. If you want to change
+this and create and maintain 2.0 beta releases for other platforms and
+targets, feel free to contact us, E-Mail addresses are listened below.
 
 
 ****************************************************************************
 ****************************************************************************
 * Features
 * Features
@@ -36,18 +36,21 @@ More platforms will be supported in the future.
 - high speed compiler
 - high speed compiler
 - fully 32-bit code
 - fully 32-bit code
 - language features:
 - language features:
-  - almost fully compatible with Borland Pascal
-  - partially compatible with Borland Delphi
+  - almost fully compatible with Borland Pascal and Borland Delphi
   - ansi strings
   - ansi strings
   - exception support
   - exception support
   - RTTI support
   - RTTI support
   - procedure overloading
   - procedure overloading
   - operator overloading
   - operator overloading
+  - COM, CORBA and raw interfaces support
+  - dyn. array support
+  - variant support
 - code optimizer:
 - code optimizer:
   - peephole optimizer
   - peephole optimizer
   - loading of variables into registers
   - loading of variables into registers
   - assembler level dataflow analyzer
   - assembler level dataflow analyzer
   - stack frame eliminations
   - stack frame eliminations
+  - sophisticated register allocator
 - integrated BASM (built-in assembler) parser
 - integrated BASM (built-in assembler) parser
   - supports ATT syntax used by GNU C
   - supports ATT syntax used by GNU C
   - supports Intel syntax used by Turbo Pascal
   - supports Intel syntax used by Turbo Pascal
@@ -58,45 +61,27 @@ More platforms will be supported in the future.
 - can call external C code
 - can call external C code
 - smartlinking
 - smartlinking
 - support for the GNU debugger
 - support for the GNU debugger
-- IDE (currently for GO32v2 and Win32 only, in beta testing phase)
+- IDE (currently for GO32v2, Linux and Win32 only, in beta testing phase)
 - can create binaries running natively under both DOS and OS/2 (EMX version)
 - can create binaries running natively under both DOS and OS/2 (EMX version)
 
 
 
 
 ****************************************************************************
 ****************************************************************************
-* Requirements (Intel version)
+* Requirements
 ****************************************************************************
 ****************************************************************************
 
 
 386 processor
 386 processor
-DOS (extender GO32v2):
- - DOS 3.3
- - 4 MB RAM (8+ MB recommended)
- - hard disk with free space of 8 MB
- - DPMI server (CWSDPMI is delivered in the go32v2 distribution)
 Win32:
 Win32:
  - Win95/98/Me/2000/XP or WinNT
  - Win95/98/Me/2000/XP or WinNT
  - 8 MB RAM (16+ MB recommended)
  - 8 MB RAM (16+ MB recommended)
-OS/2 and DOS (extender EMX):
- - either DOS 5.0 and above or OS/2 v3.x and above (including eComStation;
-  OS/2 v2.1 might work at least in some cases, but is not officially
-  supported any more, OS/2 v2.0 will not run any FPC application using
-  units Dos or DosCalls - this includes the compiler itself)
- - 3 MB RAM (8+ MB recommended) for DOS
-  or 8 MB (12 or more MB recommended depending on OS version) for OS/2
- - EMX or RSX (for DPMI) runtime package (part of OS/2 distribution)
- - TZ variable in your environment (in your CONFIG.SYS at best);
-  you should normally have it there anyway, it may only be missing
-  on older OS/2 versions (<= 3.0)
-BeOS:
- - GNU Utilities and development tools pre-installed (as and ld)
- - BeOS 4.5 or later
-
+Linux:
+ - system running a 2.0.x kernel
 
 
 ****************************************************************************
 ****************************************************************************
 * Quick start
 * Quick start
 ****************************************************************************
 ****************************************************************************
 
 
-Download dos106.zip (version for DOS) or w32106.zip (version for
-Win9x/NT) or os2106.zip (EMX version - for OS/2 and DOS) and unzip it
+Win32:
+Download w32190.zip and unzip it
 into a temporary directory.
 into a temporary directory.
 
 
 Start the install program INSTALL.EXE and follow the instructions.
 Start the install program INSTALL.EXE and follow the instructions.
@@ -105,117 +90,10 @@ Don't forget to set the path as mentioned by the install program.
 
 
 To test the compiler, change to the demo directory of the compiler
 To test the compiler, change to the demo directory of the compiler
 and type
 and type
-        ppc386 hello
+        fpc hello
         hello
         hello
 
 
 
 
-****************************************************************************
-* The packages of the distribution
-****************************************************************************
-
-All standard packages contain a part that is specific for the target platform
-and a few files which are target independent. All files are also available
-as separate files to reduce file size if the default file is too big.
-
-dos106.zip specific:
-----------------------
-  basego32.zip    contains a DOS (Go32V2) compiler, runtime library and
-                  additional files
-  asldgo32.zip    contains additional GNU utilities which are necessary:
-      AS 2.9.1 for Go32V2
-      LD 2.9.1 for Go32V2
-      AR 2.8.1 for Go32V2
-      Strip 2.8.1 for Go32V2
-  makego32.zip    contains additional GNU utilities which might be useful to
-                  compile the run time library:
-      Make 3.79.1
-      RM 3.16
-      CP 3.16
-      MV 3.16
-      PWD 3.16
-      GInstall 3.16
-      GDate 3.16
-      GEcho 3.16
-      UPX 1.20
-  gdbgo32.zip     contains the GNU Debugger 4.18 with pascal support for Go32V2
-
-w32106.zip specific:
-----------------------
-  basew32.zip     contains a Win32 compiler, runtime library and
-                  additional files
-  asldw32.zip     contains additional GNU utilities from MinGW32 which are
-                  necessary:
-      AS 2.9.5 for Win32
-      LD 2.9.5 for Win32
-      AR 2.9.5 for Win32
-      Strip 2.9.5 for Win32
-      WindRes 2.9.5 for Win32
-      DLLTool 2.9.5 for Win32
-  makew32.zip     contains additional GNU utilities which might be useful to
-                  compile the run time library:
-      Make 3.79.1
-      RM 3.16
-      CP 3.16
-      MV 3.16
-      PWD 3.16
-      GInstall 3.16
-      GDate 3.16
-      GEcho 3.16
-      UPX 1.20
-  gdbw32.zip      contains the GNU Debugger 4.18 with pascal support for Win32
-
-os2106.zip specific:
-----------------------
-  baseemx.zip     contains an EMX (OS/2 and DOS) compiler, runtime library and
-                  additional files
-  asldemx.zip     contains additional GNU utilities which are necessary:
-      AS 2.9.1 for EMX
-      LD for EMX
-      EMXBIND 0.9d
-      AR 2.9.1 for EMX
-      NM 2.9.1 for EMX
-      GASP 1.2 for EMX
-      ObjCopy 2.9.1 for EMX
-      ObjDump 2.9.1 for EMX
-      Strip 2.9.1 for EMX
-      RANLIB 2.9.1 for EMX
-  makeemx.zip     contains additional GNU utilities which might be useful to
-                  compile the run time library:
-      Make 3.76.1
-      RM 3.13
-      CP 3.13
-      MV 3.13
-      ChMod 3.13
-      PWD 1.12
-      Install 3.13
-      Date 1.12
-      Echo 1.12
-      Diff 2.8
-  gdbemx.zip      contains the GNU Debugger 4.16 for EMX,
-                  PMGDB (Presentation Manager add-on for GDB) and GPROF 2.9.1
-
-common files in dos106.zip, w32106.zip and os2106.zip:
-------------------------------------------------------------
-  demo.zip        contains some demo files
-  doc-pdf.zip     contains the documentation in PDF format
-  doc-html.zip    contains the documentation in HTML format
-  install.exe     installation program
-  install.dat     installation data
-  readme.txt      this readme file
-  whatsnew.txt    what's been changed
-
-Optional source package src106.zip:
--------------------------------------
-  basesrc.zip     contains the basic Makefiles needed for the source tree
-  compsrc.zip     contains the compiler sources
-  rtlsrc.zip      contains the runtime library sources
-  fclsrc.zip      contains the Free Component Library sources
-  pkgssrc         contains the packages (various units) sources
-  utilssrc.zip    contains the Utilities sources
-  instsrc.zip     contains the installer sources
-  docsrc.zip      contains the TeX sources of the doc
-
-
 ****************************************************************************
 ****************************************************************************
 * Documentation
 * Documentation
 ****************************************************************************
 ****************************************************************************
@@ -308,14 +186,14 @@ fall under the GPL, for more information read the file COPYING.
 Some specific utilities and programs come under the license described in
 Some specific utilities and programs come under the license described in
 COPYING.DJ, COPYING.EMX and COPYING.RSX.
 COPYING.DJ, COPYING.EMX and COPYING.RSX.
 
 
-The documentation, unless otherwise noted, is distributed as free 
+The documentation, unless otherwise noted, is distributed as free
 text, and is distributed under the GNU Library General Public
 text, and is distributed under the GNU Library General Public
 License.
 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. 
+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.
 
 
 NOTE: OS/2 version of the installer uses the library UNZIP32.DLL from
 NOTE: OS/2 version of the installer uses the library UNZIP32.DLL from
       Info-ZIP. Info-ZIP's software (Zip, UnZip and related utilities)
       Info-ZIP. Info-ZIP's software (Zip, UnZip and related utilities)

+ 36 - 298
install/doc/whatsnew.txt

@@ -1,315 +1,53 @@
 
 
                             Free Pascal Compiler
                             Free Pascal Compiler
 
 
-                               Version 1.0.4
+                        Version 1.9.0 aka 2.0.0-Beta1
 
 
 ******************************************************************************
 ******************************************************************************
-                             Whats New in 1.0.4
+                      Whats New in 1.9.0 aka 2.0.0-Beta1
 ******************************************************************************
 ******************************************************************************
 
 
 Compiler:
 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
+  + dyn. 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
+  * 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:
 RTL:
-  + keyboard, mouse and video units added (originally in API)
-  + Lot of FreeBSD updates
-  * FindFirst/FindClose fixes
-  * Termios updates for FreeBSD and Linux
-  * FExpand fixes
-  * TypInfo fixes
-  * Val(qword) works
+  + 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:
 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
+  + tdataset support
+  + html generator
+  + 64 Bit file handling
+  * a lot of bug fixes
 
 
 Docs:
 Docs:
-  + IDE documentation
-
-API:
-  - standalone API removed from distribution, units added to RTL
-
-
-******************************************************************************
-                             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-<key> 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
+  * adapted to reflect new language features
 
 
 IDE:
 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
+  * a lot of bug fixes
 
 
+Misc:
+  * improved cross compilation