-
Notifications
You must be signed in to change notification settings - Fork 346
Feature symbols
Feature Symbols (named FEATURE_{feature name}, all caps) are compilation symbols that are defined if the target platform supports a particular feature. 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.
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<...> of 5 to 16 parameters.
DLR metadata reader available.
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.