[fpc-devel] Re: [fpc-l] type discussion

Marco van de Voort marcov at stack.nl
Wed Jun 1 13:50:46 CEST 2005

> I've read somewhere that Delphi 7 compatibility is planned (since I do not
> have it I do not know what that means in detail).

Main plans short term to my knowledge are:

    * create/improve the COM/OLE support. This has multiple facets:
          o COM compat interfaces/vmt
          o Variants (needed for OLE)
          o implements style delegation
    * linking/debug/fileformats related
        * improve smartlinking (get rid of .a files, less mem use)
	* improved "packages" and dynamic libraries (PIC!) support in general.
	* crosslinking (2.0 is actually quite crosslink capable already)
	* stabs->dwarf crossover. 
	* Some form of Kylix compat resources.(still under discussion)
    * Support for 64-bit (sized) native filetypes.

Some of these target functionality (specially in the linking section) might require restructures
related to
    * introduction of an internal linker for some core platforms (no more LD)
    * Rewrite of module (unit) handling

For the rest, improve RTL/FCL compability and extend them in general, and of course fixbugs.
> Beside of compatibility towards Delphi or MacPascal or others FPC should be
> open to other modifications/extensions (maybe Delphi one day copies FC a bt
> :-), and not always the other way round)
> Useful extensions I would see:
> bigger sets: set of -100000..100000 (e.g.)

I'd like that too. 
> a way to write integer constants in any base, not only
> binary/octal/hexadecimal (not so important, but easy to implement)

Rarely used. Specially since more than base 36 becomes a notational problem.
However it has been brought up before. 

> writing of enums to text file;

This should be supported, however needs some tricks. (RTTI is available for enums!)

> more operators which can be overloaded (should follow the ALGOL68 rules)

IMHO this is asking for a mess, and the use is limited.
>     should automatically permit constructions like:
>            var
>              x : type1,  y : type2 ;
>            x *:= y ;

Why to save two characters? The C operators were afaik mostly added to ease
porting critical C code. However IMHO one shouldn't use them in new code,
and there is no need to start adding variations on the C syntax.
>  multiple assignments:
>      a := b := c := d := 0 ;
> etc.

Same point. Totally useless.
> That are just some ideas.  Maybe there are more?

To judge extensions, it might be smart to check this faq item:


which is more or less a rough view on how we (or actually more I, since I
wrote it) see extensions to the language.

Except larger sets and more control about set packing is the only really
interesting thing IMHO generics/templates, since it really makes heaps of
new behaviour possible, and is not purely syntax that saves typing.

The wiki also contains some roadmap info:


More information about the fpc-devel mailing list