readme.txt 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. Free Pascal Compiler
  2. Version 1.2.0
  3. ****************************************************************************
  4. * Introduction
  5. ****************************************************************************
  6. This package contains a freeware 32-bit pascal compiler for 386+. The language
  7. and the runtime library are more or less compatible to TP 7.0. Some Delphi
  8. additions have also been implemented like classes, exceptions, ansistrings
  9. and rtti.
  10. Free Pascal is currently available for the following platforms:
  11. - DOS, via the DJ Delorie's GO32V2 Dos extenders
  12. - Linux (i386), both aout and elf
  13. - OS/2 & DOS, via the EMX extender
  14. - Win32 (Win32s, Win95/98/Me/XP/2000 and WinNT)
  15. - Sun Solaris i386
  16. - BeOS i386
  17. - QNX i386
  18. - FreeBSD i386
  19. Older version of the compiler (0.99.5) is also available on:
  20. - Commodore Amiga
  21. - Atari ST
  22. More platforms will be supported in the future.
  23. ****************************************************************************
  24. * Features
  25. ****************************************************************************
  26. - high speed compiler
  27. - fully 32-bit code
  28. - language features:
  29. - almost fully compatible with Borland Pascal
  30. - partially compatible with Borland Delphi
  31. - ansi strings
  32. - exception support
  33. - RTTI support
  34. - procedure overloading
  35. - operator overloading
  36. - code optimizer:
  37. - peephole optimizer
  38. - loading of variables into registers
  39. - assembler level dataflow analyzer
  40. - stack frame eliminations
  41. - integrated BASM (built-in assembler) parser
  42. - supports ATT syntax used by GNU C
  43. - supports Intel syntax used by Turbo Pascal
  44. - can compile code into assembler source code for these assemblers:
  45. - GNU Assembler (GAS)
  46. - Netwide assembler (Nasm)
  47. - Microsoft Assembler/Turbo Assembler (Masm/Tasm)
  48. - can call external C code
  49. - smartlinking
  50. - support for the GNU debugger
  51. - IDE (currently for GO32v2 and Win32 only, in beta testing phase)
  52. - can create binaries running natively under both DOS and OS/2 (EMX version)
  53. ****************************************************************************
  54. * Requirements (Intel version)
  55. ****************************************************************************
  56. 386 processor
  57. DOS (extender GO32v2):
  58. - DOS 3.3
  59. - 4 MB RAM (8+ MB recommended)
  60. - hard disk with free space of 8 MB
  61. - DPMI server (CWSDPMI is delivered in the go32v2 distribution)
  62. Win32:
  63. - Win95/98/Me/2000/XP or WinNT
  64. - 8 MB RAM (16+ MB recommended)
  65. OS/2 and DOS (extender EMX):
  66. - either DOS 5.0 and above or OS/2 v3.x and above (including eComStation;
  67. OS/2 v2.1 might work at least in some cases, but is not officially
  68. supported any more, OS/2 v2.0 will not run any FPC application using
  69. units Dos or DosCalls - this includes the compiler itself)
  70. - 3 MB RAM (8+ MB recommended) for DOS
  71. or 8 MB (12 or more MB recommended depending on OS version) for OS/2
  72. - EMX or RSX (for DPMI) runtime package (part of OS/2 distribution)
  73. - TZ variable in your environment (in your CONFIG.SYS at best);
  74. you should normally have it there anyway, it may only be missing
  75. on older OS/2 versions (<= 3.0)
  76. BeOS:
  77. - GNU Utilities and development tools pre-installed (as and ld)
  78. - BeOS 4.5 or later
  79. ****************************************************************************
  80. * Quick start
  81. ****************************************************************************
  82. Download dos106.zip (version for DOS) or w32106.zip (version for
  83. Win9x/NT) or os2106.zip (EMX version - for OS/2 and DOS) and unzip it
  84. into a temporary directory.
  85. Start the install program INSTALL.EXE and follow the instructions.
  86. Don't forget to set the path as mentioned by the install program.
  87. To test the compiler, change to the demo directory of the compiler
  88. and type
  89. ppc386 hello
  90. hello
  91. ****************************************************************************
  92. * The packages of the distribution
  93. ****************************************************************************
  94. All standard packages contain a part that is specific for the target platform
  95. and a few files which are target independent. All files are also available
  96. as separate files to reduce file size if the default file is too big.
  97. dos106.zip specific:
  98. ----------------------
  99. basego32.zip contains a DOS (Go32V2) compiler, runtime library and
  100. additional files
  101. asldgo32.zip contains additional GNU utilities which are necessary:
  102. AS 2.9.1 for Go32V2
  103. LD 2.9.1 for Go32V2
  104. AR 2.8.1 for Go32V2
  105. Strip 2.8.1 for Go32V2
  106. makego32.zip contains additional GNU utilities which might be useful to
  107. compile the run time library:
  108. Make 3.79.1
  109. RM 3.16
  110. CP 3.16
  111. MV 3.16
  112. PWD 3.16
  113. GInstall 3.16
  114. GDate 3.16
  115. GEcho 3.16
  116. UPX 1.20
  117. gdbgo32.zip contains the GNU Debugger 4.18 with pascal support for Go32V2
  118. w32106.zip specific:
  119. ----------------------
  120. basew32.zip contains a Win32 compiler, runtime library and
  121. additional files
  122. asldw32.zip contains additional GNU utilities from MinGW32 which are
  123. necessary:
  124. AS 2.9.5 for Win32
  125. LD 2.9.5 for Win32
  126. AR 2.9.5 for Win32
  127. Strip 2.9.5 for Win32
  128. WindRes 2.9.5 for Win32
  129. DLLTool 2.9.5 for Win32
  130. makew32.zip contains additional GNU utilities which might be useful to
  131. compile the run time library:
  132. Make 3.79.1
  133. RM 3.16
  134. CP 3.16
  135. MV 3.16
  136. PWD 3.16
  137. GInstall 3.16
  138. GDate 3.16
  139. GEcho 3.16
  140. UPX 1.20
  141. gdbw32.zip contains the GNU Debugger 4.18 with pascal support for Win32
  142. os2106.zip specific:
  143. ----------------------
  144. baseemx.zip contains an EMX (OS/2 and DOS) compiler, runtime library and
  145. additional files
  146. asldemx.zip contains additional GNU utilities which are necessary:
  147. AS 2.9.1 for EMX
  148. LD for EMX
  149. EMXBIND 0.9d
  150. AR 2.9.1 for EMX
  151. NM 2.9.1 for EMX
  152. GASP 1.2 for EMX
  153. ObjCopy 2.9.1 for EMX
  154. ObjDump 2.9.1 for EMX
  155. Strip 2.9.1 for EMX
  156. RANLIB 2.9.1 for EMX
  157. makeemx.zip contains additional GNU utilities which might be useful to
  158. compile the run time library:
  159. Make 3.76.1
  160. RM 3.13
  161. CP 3.13
  162. MV 3.13
  163. ChMod 3.13
  164. PWD 1.12
  165. Install 3.13
  166. Date 1.12
  167. Echo 1.12
  168. Diff 2.8
  169. gdbemx.zip contains the GNU Debugger 4.16 for EMX,
  170. PMGDB (Presentation Manager add-on for GDB) and GPROF 2.9.1
  171. common files in dos106.zip, w32106.zip and os2106.zip:
  172. ------------------------------------------------------------
  173. demo.zip contains some demo files
  174. doc-pdf.zip contains the documentation in PDF format
  175. doc-html.zip contains the documentation in HTML format
  176. install.exe installation program
  177. install.dat installation data
  178. readme.txt this readme file
  179. whatsnew.txt what's been changed
  180. Optional source package src106.zip:
  181. -------------------------------------
  182. basesrc.zip contains the basic Makefiles needed for the source tree
  183. compsrc.zip contains the compiler sources
  184. rtlsrc.zip contains the runtime library sources
  185. fclsrc.zip contains the Free Component Library sources
  186. pkgssrc contains the packages (various units) sources
  187. utilssrc.zip contains the Utilities sources
  188. instsrc.zip contains the installer sources
  189. docsrc.zip contains the TeX sources of the doc
  190. ****************************************************************************
  191. * Documentation
  192. ****************************************************************************
  193. The documentation is available as HTML pages, PDF, PS, and text although the
  194. recommended format is pdf. These are all available on
  195. ftp://ftp.freepascal.org/fpc/docs
  196. NB that there is at present no FPC specific documentation for the Win32
  197. system functions. There is a note in the ftp /doc explaining where
  198. the MS help file for this can be obtained.
  199. ****************************************************************************
  200. * Suggestions, Help, Bug reporting, snapshots, ...
  201. ****************************************************************************
  202. Suggestions, Help ...
  203. ---------------------
  204. e-mail: [email protected] (bugs, developer related qs)
  205. e-mail: [email protected] (general pascal related qs)
  206. Both these adresses are for mailing lists. If you're not subscribed,
  207. be sure to mention this fact when sending questions to these lists,
  208. so that people sending answers know about it and send you a copy.
  209. Information about available lists and subscription can be found
  210. on http://lists.freepascal.org/mailman/listinfo
  211. www: http://www.freepascal.org
  212. ftp: ftp://ftp.freepascal.org/fpc
  213. (several mirrors exist, see website for links)
  214. Additional information about mailing lists, news, future plans etc.
  215. can be found on the web site.
  216. SNAPSHOTS & SOURCES
  217. -------------------
  218. One of the features of FPC is the snapshots. These are made daily or weekly
  219. from the developers' latest versions of the source. Snapshots are available
  220. for the GO32v2, Win32, OS/2 and Linux versions of the compiler/rtl. Snapshots
  221. are also available for the go32v2 & Win32 IDEs, and for FV, FCL, GTK and
  222. utils for GO32v2 and Win32. The latest snapshots are in: ftp... /fpc/snapshot/
  223. in appropriately named .zip/tar files.
  224. You will also normally find in the snapshot archive file a readme, with
  225. a note about the latest included changes. It is quite common, though it doesn't
  226. always happen, that when a bug is reported it is fixed and a fixed version
  227. can be obtained the NEXT day in the appropriate snapshot.... yes really!
  228. Also on the ftp site you'll find a /dist directory, with the latest
  229. distributed releases, a /docs directory, and a /source directory, in
  230. which every night at about 0100 GMT the latest source generated by the
  231. developers during the day & evening before is exported from CVS
  232. into ZIP files eg compiler.zip, rtl.zip, base.zip etc.
  233. Making your own snapshots
  234. -------------------------
  235. By downloading the /source files (makefiles are included)
  236. it is possible to to make your own version of the fpc compiler/rtl
  237. and to modify it. You are of course free to do this
  238. so long as you observe the licence conditions. In order to make the
  239. compiler/rtl & ides in a resonable time (eg <30 minutes) you'll need at least
  240. 32M of physical memory (64M is better) memory and at least a 200 Mhz processor
  241. and at least 20 Mbytes of free disk space. You'll also need
  242. some knowledge of making files & programming... it is not
  243. difficult but it isn't easy either!
  244. REPORTING BUGS
  245. ----------------
  246. If you find a bug in the released version, you may want to try a snapshot
  247. (see SNAPSHOTS above) to see if it has been fixed before reporting it to
  248. the fpc-devel mailing list.
  249. If you find a fault or 'feature' in a release, please report it
  250. to the fpc-devel mailing list. PLEASE SEND ALSO A SMALL EXTRACT OF THE SOURCE
  251. CODE which caused the problem, and state the version eg Win32, GO32v2,
  252. and the date of the compiler etc on which you noticed the problem & any other
  253. useful info so the developers can reproduce the problem, otherwise they may
  254. not be willing/able to fix it.
  255. ****************************************************************************
  256. * License
  257. ****************************************************************************
  258. The compiler and most utilities and executables distributed in this package
  259. fall under the GPL, for more information read the file COPYING.
  260. Some specific utilities and programs come under the license described in
  261. COPYING.DJ, COPYING.EMX and COPYING.RSX.
  262. The documentation, unless otherwise noted, is distributed as free
  263. text, and is distributed under the GNU Library General Public
  264. License.
  265. The runtime library, package libraries, free component library, and
  266. other libraries which are used to create executables by the compiler
  267. come under a modified GNU Library General Public license. Additional
  268. information about the library license is found in COPYING.FPC.
  269. NOTE: OS/2 version of the installer uses the library UNZIP32.DLL from
  270. Info-ZIP. Info-ZIP's software (Zip, UnZip and related utilities)
  271. is free and can be obtained as source code or executables from
  272. Internet/WWW sites, including http://www.info-zip.org.