whatsnew.txt 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. Free Pascal Compiler
  2. Version 1.0.4
  3. ******************************************************************************
  4. Whats New in 1.0.4
  5. ******************************************************************************
  6. Compiler:
  7. + Fpc executable
  8. + Rangechecking for int64
  9. + Better cardinal rangechecking
  10. + Debugging support for classes
  11. + FreeBSD and Linux define both UNIX
  12. * XMM registers in assembler fixed
  13. * Optimizer fixes
  14. * Fixed some reported bugs
  15. RTL:
  16. + Lot of FreeBSD updates
  17. * FindFirst/FindClose fixes
  18. * Termios updates for FreeBSD and Linux
  19. * FExpand fixes
  20. * TypInfo fixes
  21. * Val(qword) works
  22. FCL:
  23. * sstream example added
  24. * fixed some missing .o and .a files
  25. Utils:
  26. * fpcmake updates for freebsd
  27. * ppufiles fix to allow / in filenames under go32v2/win32
  28. Docs:
  29. + IDE documentation
  30. ******************************************************************************
  31. Whats New in 1.0.2
  32. ******************************************************************************
  33. Compiler:
  34. + memory requirements reduced a lot when creating smartlink libraries
  35. + identical procedures or functions are now already found in the interface
  36. instead of after parsing the implementation also
  37. + overload directive parsing is now D5 compatible
  38. + stop compiling if -S2 or -Sd is required and give a nicer error message
  39. + don't allow wrong assemblers for targets (i.e. refuse as.exe for win32)
  40. * fixed smartlinking for win32 imports
  41. * some -Or and other optimizer fixes
  42. * fixed some crashes with undeclared identifiers and inlined functions
  43. * packenum fixes
  44. * internal binary writer is now a lot faster when creating smartlink
  45. libraries with a lot of files (like the windows unit)
  46. * better targetdir support
  47. * don't allow word = word like type definitions
  48. * integer(char) typecast works now
  49. * some other small reported bugs
  50. RTL:
  51. + bsd port files
  52. + sysutils more delphi compatible
  53. + sysutils.syserrormessage added for platforms supporting it
  54. * some graph fixes
  55. * linux crt handles ctrl-c better
  56. * win32 crt returns alt-<key> correct
  57. * small int64 fixes
  58. * paramstr(0) fix for linux 2.0 kernels
  59. * go32v2 getenv made case insensitive
  60. * lot of os2 updates
  61. ******************************************************************************
  62. Whats New in 1.00
  63. ******************************************************************************
  64. Compiler:
  65. + -gl switch to automaticly load the lineinfo unit
  66. + Lot of Delphi compatibility additions, especially when using -Sd
  67. * Optimizer fixes, mainly register allocations needed for -Or
  68. * int64/qword fixes
  69. * RTTI fixes
  70. * Smartlinking fixes for classes
  71. * inline fixes (but still Beta)
  72. * Exceptions generate more usefull backtraces which also support the
  73. new lineinfo unit
  74. * {$Packrecords C} fixes to be better C compatible
  75. * operator should now work correctly when defined in other units
  76. and locally and other fixes
  77. * Better glibc 2.1.x support under linux
  78. * Lot of other small bugfixes for the reported bugs
  79. RTL:
  80. + lineinfo unit to display the file and line when a backtrace is
  81. generated, this works for runtime errors, unhandled exceptions and
  82. heaptrc unit (hint: use -ghl to easily detect and fix memory leaks)
  83. * better precision when converting float to string
  84. * Better exception support for Go32v2 without the need to load dpmiexcp
  85. * Better Signal handling under linux for exception reporting
  86. * Windows unit for win32 has now more delphi compatible declarations
  87. * disksize/diskfree return now int64 so drives > 2GB work correctly
  88. * lot of graph unit fixes, with generic mode support
  89. * paramstr(0) under linux now returns the full executable instead of
  90. the commandline
  91. * heaptrc fixes for reallocmem
  92. * other fixes reported by users
  93. IDE:
  94. + don't allow wrong assemblers with specific targets
  95. + default mode for which assembler to use
  96. + Recompiling a program does now also use unsaved files still in the editor
  97. * the support files are now placed in the same dir as fp.exe where they were
  98. expected
  99. Utils:
  100. + postw32 to postprocess win32 executables to patch the stacksize
  101. * h2pas is now better and also has a compact output mode with less
  102. spaces and blank lines.
  103. * fpcmake supports .so library creation and example installation
  104. Packages:
  105. + opengl for win32
  106. * fixed win32 gtk interface
  107. FCL:
  108. + db support (TDataSet,TDatabase) for mysql
  109. * idea fixes
  110. ******************************************************************************
  111. Whats New in 0.99.14
  112. ******************************************************************************
  113. Compiler:
  114. + DLL creation fixed, it needs dlltool now
  115. + .so creation for linux works also with classes
  116. + Library writing works better, also linux library support
  117. + better FPU code generation
  118. + only one PPU is used per unit also when static, shared and smart linked
  119. + assembler understands KNI instructions
  120. + fail in class constructors works
  121. + resourcestrings support
  122. + gettext support for resourcestrings (localization)
  123. + > < >= <= support for boolean
  124. + checking for unused but assigned variables and private fields
  125. * lot of RTTI fixes
  126. * lot of property fixes
  127. * pointer addition/substraction works like inc()/dec() (with the size
  128. of the pointed type)
  129. * assembler reader fixes so it works more like BASM
  130. * exit in try...finally/except block works
  131. * don't allow goto/label with exception blocks
  132. * stabs debugging fixed for classes and result variable
  133. * array constructor support
  134. * initialization/finalization work also in default FPC mode
  135. * assert works now also within $H+ mode
  136. * lot of other fixes
  137. RTL:
  138. + New graph unit for GO32v2, Win32, Linux
  139. + Delphi style GetMem/Freemem/ReAllocMem which knows the size of
  140. the allocated block itself. Specifying wrong size for freemem gives
  141. now also a Runtime Error
  142. + ports unit for both GO32v2 and OS/2, which contains the port[] support.
  143. It's now compatible with Linux ports unit
  144. + timezone support for linux
  145. + primitive routines Compare[Byte,Word,Dword], Index[Byte,Word,Dword]
  146. * better ioresult setting for GO32v2
  147. * some pchar fixes in sysutils unit
  148. * lot of RTTI fixes for typinfo
  149. * ansistrings speedups
  150. * some other small fixes
  151. Utils:
  152. + fpcmake util to create a Makefile from Makefile.fpc
  153. + delp util to delete all created files after compiling (exe, o, ppu)
  154. + fprcp util for preprocessing win32 resource files
  155. + data2inc util to convert data into .inc files
  156. + binobj for binary to .o/.inc files, also with crypt, compression support
  157. + ppufiles show all created files needed by a unit
  158. + rstconv util to convert .rst files to gettext files
  159. + plex,pyacc Pascal Lex/Yacc
  160. * ppudump, ppufiles updated for new ppu version
  161. ******************************************************************************
  162. Whats New in 0.99.12
  163. ******************************************************************************
  164. Compiler:
  165. + lot of ansistring fixes
  166. + coff writer for go32v2,win32 with instant .a creation (BETA)
  167. + working global browser
  168. + new compiler directives (path and other cmdline switches)
  169. + val,readln support range checking
  170. + initialization/finalization support
  171. + methodpointer support
  172. + message support
  173. * better intel,at&t parsers with mmx,3dnow support
  174. * better unit dependency handling and recompiling
  175. * static var fixes
  176. * better addr() support
  177. * lot of other fixes, too many to list here
  178. RTL:
  179. + Internationalization suport in sysutils
  180. + FileNameCaseSensitive boolean for go32v2,win32
  181. * more precise str/val
  182. * better val(),readln()
  183. * io error handling much more like tp7
  184. * small other fixes
  185. Utils:
  186. + ptop to pretty print your sources
  187. * beter ppudump
  188. ******************************************************************************
  189. Whats New in 0.99.10
  190. ******************************************************************************
  191. Compiler:
  192. + better optimizer
  193. + ansistring support
  194. + array of const support for FormatStr
  195. + automatic heaptrc unit including with the -gh option
  196. + open strings ($P+) support
  197. + DLL generation for Win32
  198. + printf support for cdecl using array of const
  199. * exceptions are finally working
  200. * fixed some ppu problems
  201. * fixed unit interdependency problems
  202. * better range checking, also for enums
  203. * size of objects without virtuals is now the same as tp7
  204. * lot of fixes for the assembler readers
  205. * more constant expression evalutations
  206. * removed all memoryleaks
  207. * almost all reported bugs are fixed
  208. RTL:
  209. + heaptrc unit to detect memoryleaks and other problems with the heap
  210. + graph unit works and some missing functions are added
  211. * objects unit fully works
  212. * more functions for the classes,sysutils unit
  213. Utils:
  214. * ppudump updated for new ppu entries
  215. * h2pas updated to write new cdecl declaration
  216. ******************************************************************************
  217. Whats New in 0.99.8
  218. ******************************************************************************
  219. Compiler:
  220. + smartlinking support (-Cx)
  221. + new ppu format which much more portable en extendible
  222. + new scanner with better file position info
  223. + constant evaluation like tp7 (trunc,round,hi,swap)
  224. + rtti support
  225. + exception support
  226. + longbool,wordbool support
  227. + enumerated packing support like delphi
  228. + c variable support (-Sv)
  229. + Win32 support (no export and resource support yet)
  230. * optimizer switches changed to be easier to use
  231. * lot of fixes for sets, also supporting dynamic creation
  232. * working open array (sizeof,high)
  233. * better filename handling for all platforms
  234. * ability to list source lines in the assembler file
  235. * some error messages changed to for better understanding
  236. * better calling convention support, delphi compatible
  237. * glibc2 (linux) support
  238. * too many other small bugfixes and internal enhancements
  239. RTL:
  240. + sysutils unit for objpas
  241. + port[] array for go32v2
  242. + graph unit for linux
  243. + uniform objects unit for all platforms
  244. + rtti support
  245. + automatic Longfilename (LFN) support for go32v2
  246. * go32 crt startup delay has been removed
  247. * missing pchar support for some file functions (assign,rename)
  248. * heapblocks support, which is much faster when allocating a lot
  249. of small blocks (like objects)
  250. * filerec/textrec is now uniform for all platforms (but not tp7 compatible)
  251. * extended is the default floating point type
  252. * lot of other fixes and small enhancements
  253. Utils:
  254. + h2pas util to convert .h files to .pas file
  255. + ppudump util replaces the old dumpppu
  256. * mkdep is now much less strict and (* *) support
  257. ******************************************************************************
  258. Whats New in 0.99.5
  259. ******************************************************************************
  260. Mainly, bugs are fixed and some improvements are
  261. made in that release, besides that the following stuff is
  262. added:
  263. * compiler
  264. - mem[] and absolute works now as expected (go32v2 target only)
  265. - basic MMX support by the compiler (see docs for more infos)
  266. * runtime library
  267. - better support of floating point types