mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-29 06:43:45 +02:00
123 lines
6.6 KiB
Plaintext
123 lines
6.6 KiB
Plaintext
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
|
|
03/06/01 varargs directive is supported
|