-
Notifications
You must be signed in to change notification settings - Fork 0
Feature symbols
Feature Symbols (named FEATURE_{feature name}, all caps) are compilation symbols defined for features whose availability vary across platforms that Iron languages support. The symbols are defined in Solutions\Common.proj file, which is included by all .csproj files that contribute to IronRuby, IronPython and the DLR build.
The following symbols are currently used:
Runtime assembly resolution (System.AppDomain.AssemblyResolve event).
Basic Console features like Console.WriteLine, Console.ReadLine.
Configuration files (System.Configuration).
The platform contains Core DLR types: statement trees and dynamic sites.
Reflection of required and optional custom modifiers.
System.ComponentModel.ICustomTypeDescriptor interface.
DBNull type.
DefaultParameterValueAttribute.
Full encoding support: code pages, decoder/encoder fallbacks.
ThreadAbortException.ExceptionState.
Full file system (Directory, File, Path, FileStream, etc.)
Full Console APIs including stdin, stdout, stderr streams, colors, etc.
Func<...> and Action<...> with 5 to 16 parameters.
DLR metadata reader available.
Native code interop: P/Invokes, CTypes, etc.
System.Numerics namespace (BigInteger, Complex types).
Ability to emit PDB files.
Processes, AppDomains, process-wide environment variables.
Reflection.Emit.
Remoting (MarshalByRefObject).
Serialization - Serializable attribute, ISerializable interface.
System.Diagnostics.StackTrace, System.Diagnostics.StackFrame.
System.Net.Sockets.
System.Tasks.
Threads, ThreadAbortException.
System.Type.IsEquivalent()
System.ComponentModel.TypeConverter and TypeConverterAttribute types.
Covariance and contravariance of generic interface and delegate parameters.
XML documentation available at runtime.