123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- This directory contains the sources of the Free Pascal Compiler
- To recompile the compiler, use the batch file
- mppc386.bat
- If you want to build a m68k version to cross compile from i386 to m68k
- use the batch file
- mppc68k.bat
- If you want to compile/modify the compiler, please read first the
- programmers manual.
- Changes in the syntax or semantic of FPC:
- -----------------------------------------
- 28/01/99 implicit conversion from boolean to integer is not possible
- anymore (solved several bugs) but this could lead to errors
- on previously accepted code (PM)
- 01/02/99 c styled comments are supported (/* ... */), mainly
- for the Sibyl sources of Medigo (FK)
- 02/02/99 class destructors take now two parameters: flag
- if the helper routine should free the instance and
- self pointer (FK)
- 22/02/99 PROTECTED and PRIVATE have now the same behavior
- as in TP
- 09/03/99 small records and arrays passed by value to a function are now directly copied
- into a 4 bytes parameter (needed for C and DLL calls) (PM)
- 11/03/99 the makefile.fpc is now also needed for the compiler and RTL, you can
- find it in the base.zip package (PFV)
- 24/03/99 new directives UNITPATH,INCLUDEPATH,OBJECTPATH,LIBRARYPATH to
- set the searchpaths where to find the files for that module (PFV)
- 25/03/99 new directive STATIC +/- or on/off , works like -St commandline
- switch
- 02/04/99 rtl/cfg/ directory has been removed, it's not used anymore
- 15/04/99 FINALIZATION is supported
- 21/04/99 Default assembler for i386 changed to AT&T instead of direct
- 25/04/99 initialized vars supported in Delphi mode (only $J+ mode)
- getting the address of an untyped const is now
- forbidden as in BP
- 27/04/99 New unit format PPU016, you need to recompile all older units
- 01/05/99 Internal assembler. Assembler readers now support MMX,KNI
- instructions.
- 12/05/99 rtl/utils/ directory moved to utils/. Moved the utils only needed
- for compiler development to compiler/utils/
- 13/05/99 Classes are now only allowed in the ObjFpc or Delphi mode. Use
- {$mode objfpc} or {$mode delphi}. Or from commandline -S2 or -Sd
- 16/05/99 Remove options -Up (use now -Fu) and -Fg (use now -Fl)
- 17/05/99 Redesign of ansistring temporary handling, please report
- any problems
- 17/05/99 Most stuff of the objpas unit is now in the system unit
- because the new temporary ansistring handling support
- exceptions and exceptions need the class OOP model
- 18/05/99 The compiler will stop directly if there are errors in the
- commandline parameters
- 16/08/99 DLL are relocatable by default (need to strip symbols)
- -WN make non relocatable DLL (which can retain debug info)
- for both type of DLL the prefered image base can be specified
- with -WB1100000 for instance to get image base at $11000000.
- 08/09/99 pointer addition/substraction (only available in fpc,objfpc mode)
- now uses the size of the type the pointer points to, just like
- inc(),dec() already did. Now inc(p) is the same as p:=p+1.
- But old code can be broken by this when there is a p:=p+4 then
- it's now parsed like: p:=p+4*sizeof(type). To get the old situation
- you can use typecasting: p:=ptype(pointer(p)+4).
- 08/09/99 class/object field return their offsets in the object/class. You
- must access them self with loading the object/class pointer and
- then create a reference where you add the field
- 07/11/99 Small change to property writing in PPU => all units
- exporting classes with properties must be recompiled
- (no new unit format, so be careful) (FK)
- 08/11/99 PP variable in Makefiles changed to FPC
- 14/11/99 makefile.fpc is not available anymore. You must now use fpcmake
- which is available from the utils/. There is also an example
- Makefile.fpc
- 15/02/00 The support of the fixed data type has been removed from the
- compiler because
- 1. it is buggy
- 2. it is very seldom used
- 3. the single data type is faster on modern cpus (Pentium+)
- If still want to use it, you have to recompile the compiler
- with -dSUPPORT_FIXED and recompile the rtl with that compiler.
- To find out if the used compiler supports the fixed data
- type, check the directive HASFIXED (FK)
- 29/02/00 ORDERSOURCES released => PPU version change
- this allows for a more correct include file hunting order.
- 01/04/00 fix the handling of value parameters in cdecl function
- 11/05/00 changed vmt handling to fix problems some problems
- with overloading in objects
- 11/11/00 default parameter support
- 11/11/00 you can declare a pointer type with directive far; to make
- it a farpointer. Only usefull for dos.
- 11/11/00 ptr() returns a farpointer instead of pointer. Becuase the
- pointer result would be useless and only causing segmentation
- faults. With the farpointer this would already be detected at
- compiletime. To get the code working you can declare a pointer
- with far; like:
- type
- farlongint = ^longint;far;
- var
- timer : farlongint;
- begin
- timer:=ptr($40,$6c);
- writeln(timer^);
- end.
- 07/12/00 constant handling has been rewritten: hex constants <=$ffffffff
- are now always parsed as unsigned numbers (because of the int64
- constant support, the were always sign-extended before). This
- may force you to add longint typecasts round hex numbers in
- your programs to avoid range check errors.
- 10/04/01 Argument names are now checked if names are the same in the
- both the forward (interface) and implementation declaration
- 13/04/01 It's not possible anymore (except in -So mode) to pass a cardinal
- to a parameter declared with a "var longint". The same goes for
- the other signed-unsigned like smallint-word and shortint-byte.
- 13/04/01 in FPC mode you're now always forced to use @ to get the address
- of a procedure and load it in a procedure variable. Before it was
- sometimes a bit more relaxed
- 03/06/01 hint directives (library,platform,deprecated) are parsed, but
- futher ignored
|