Difference between revisions of "Delphi language features missing from the Free Pascal Compiler"
Jwdietrich (talk | contribs) |
(Clarified things have already been implemented in 2.6.x/2.7.x) |
||
Line 1: | Line 1: | ||
− | Note: some | + | Note: some new Delphi features are already implemented in [[FPC_New_Features_Trunk|FPC trunk]]. |
== New since Delphi 2007 == | == New since Delphi 2007 == | ||
Line 26: | Line 26: | ||
== New since Delphi 2010 == | == New since Delphi 2010 == | ||
==== Custom Attributes ==== | ==== Custom Attributes ==== | ||
+ | '''To do: description here''' | ||
==== Enhanced RTTI ==== | ==== Enhanced RTTI ==== | ||
http://docwiki.embarcadero.com/RADStudio/en/RTTI_directive_(Delphi) | http://docwiki.embarcadero.com/RADStudio/en/RTTI_directive_(Delphi) | ||
Line 39: | Line 40: | ||
fpc wiki about that topic: http://wiki.freepascal.org/Dynamically_loading_headers | fpc wiki about that topic: http://wiki.freepascal.org/Dynamically_loading_headers | ||
− | Originally I thought that delayed is similar to weakexternal which FPC has for some platforms but after reading this: http://docwiki.embarcadero.com/CodeExamples/XE3/en/DelayedLoading_(Delphi) I | + | Originally I thought that delayed is similar to weakexternal which FPC has for some platforms but after reading this: http://docwiki.embarcadero.com/CodeExamples/XE3/en/DelayedLoading_(Delphi) I understand that this is simply a wrapper around LoadLibrary and GetProcessAdress with automatic loading and unloading.--[[User:Paul Ishenin|Paul Ishenin]] 13:45, 18 January 2013 (UTC) |
+ | == Misc == | ||
+ | # [[packages|(Library) packages]] | ||
+ | # "automated" keyword, which is like "public", but generates COM specific RTTI. Afaik this kind of COM usage is deprecated though. | ||
+ | |||
+ | == Already implemented == | ||
+ | === FPC 2.7.1/trunk === | ||
+ | ==== Advanced records ==== | ||
+ | See above. | ||
+ | |||
+ | === FPC 2.6.0 === | ||
==== AS and IS extended for interfaces ==== | ==== AS and IS extended for interfaces ==== | ||
− | |||
Info is here: | Info is here: | ||
#http://docwiki.embarcadero.com/RADStudio/en/Interface_References#Casting_Interface_References_to_Objects | #http://docwiki.embarcadero.com/RADStudio/en/Interface_References#Casting_Interface_References_to_Objects | ||
#http://blogs.embarcadero.com/abauer/2009/08/21/38893 | #http://blogs.embarcadero.com/abauer/2009/08/21/38893 | ||
− | + | Implemented in FPC 2.6.0. | |
− | |||
− | |||
− | |||
== Reference == | == Reference == |
Revision as of 08:44, 29 June 2013
Note: some new Delphi features are already implemented in FPC trunk.
New since Delphi 2007
Advanced Records
http://docwiki.embarcadero.com/RADStudio/en/Structured_Types#Records_.28advanced.29
Advanced records are implemented in FPC 2.6.X without record constructors. Record constructors are implemented in FPC 2.7.1 (trunk).
New since Delphi 2009
Generics Syntax
A good delphi reference is here: http://docwiki.embarcadero.com/RADStudio/en/Generics_Index
Partially implemented in 2.5.1/2.6.x, further improved in 2.7.1 by Sven
Support for ansistrings with a definable codepage
Initial implementation available in trunk (2.7.1). Useful for small time testing, but the whole of the codebase hasn't adapted (2011-10-18)
Anonymous Methods
New since Delphi 2010
Custom Attributes
To do: description here
Enhanced RTTI
http://docwiki.embarcadero.com/RADStudio/en/RTTI_directive_(Delphi)
Delayed directive
Info is here: http://docwiki.embarcadero.com/RADStudio/en/Libraries_and_Packages#Delayed_Loading Some info about internals:
- http://blogs.embarcadero.com/abauer/2009/08/25/38894
- http://blogs.embarcadero.com/abauer/2009/08/29/38896
- http://blogs.embarcadero.com/chrishesik/2009/11/02/35056
fpc wiki about that topic: http://wiki.freepascal.org/Dynamically_loading_headers
Originally I thought that delayed is similar to weakexternal which FPC has for some platforms but after reading this: http://docwiki.embarcadero.com/CodeExamples/XE3/en/DelayedLoading_(Delphi) I understand that this is simply a wrapper around LoadLibrary and GetProcessAdress with automatic loading and unloading.--Paul Ishenin 13:45, 18 January 2013 (UTC)
Misc
- (Library) packages
- "automated" keyword, which is like "public", but generates COM specific RTTI. Afaik this kind of COM usage is deprecated though.
Already implemented
FPC 2.7.1/trunk
Advanced records
See above.
FPC 2.6.0
AS and IS extended for interfaces
Info is here:
- http://docwiki.embarcadero.com/RADStudio/en/Interface_References#Casting_Interface_References_to_Objects
- http://blogs.embarcadero.com/abauer/2009/08/21/38893
Implemented in FPC 2.6.0.