Platform Differences
In general, our goal is to keep the Oxygene language as consistent between platforms as possible. Most language and Compiler features discussed in the Oxygene section and elsewhere in these docs will work the same or similar, across all Elements platforms.
That said, due to differences in the underlying platfroms, there will be a few differences. This topic will highlight the most important differences on the Oxygene language side, and you should also check out the Differences topic in the Cross-Platform section of this site, for a more thorough discussion of all differences as they apply to all Elements languages.
- On .NET and Java, the
block
,delegate
,method
(and legacy)function
andprocedure
) keywords work identically to declare a Block. On the other more-native platfroms, onlyblock
anddelegate
declare a true block, whilemethod
,function
andprocedure
deflare more traditional function pointers w/o a "self
" reference. See here for more details. - ARC and the
stronf
,weak
andunretained
Storage Modifiers are supported on platforms that use ARC, Cocoa. - The
lifetimestrategy
keyword for Life-Time Strategies is only supported on Island-backed platforms. - The
optional
keyword for Interfaces methods is supported only on Cocoa. unsafe
code is not supported on Java, and all code is assumed to beunsafe
on Cocoa and Island, making the keyword ignored/unnecessary on that platform.- Generic co/contra-variance is supported on .NET only.
- Differences in [Pointer References in Oxygene for Cocoa](Pointer References in Oxygene for Cocoa).
parallel for
loops,parallel sequence
s andqueryable sequence
s are currently only supported for .NET.- Special Java( Platform)-style exception handling extensions and the
raises
keyword will be a new platform difference, once implemented.
See Also
- Differences topic in the Cross-Platform section