Feature symbols

jdhardy edited this page Jan 10, 2012 · 12 revisions

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:

FEATURE_ASSEMBLY_RESOLVE

Runtime assembly resolution (System.AppDomain.AssemblyResolve event).

FEATURE_BASIC_CONSOLE

Basic Console features like Console.WriteLine, Console.ReadLine.

FEATURE_CODEDOM

FEATURE_COM

FEATURE_CONFIGURATION

Configuration files (System.Configuration).

FEATURE_CORE_DLR

The platform contains Core DLR types: statement trees and dynamic sites.

FEATURE_CRYPTOGRAPHY

FEATURE_CUSTOM_MODIFIERS

Reflection of required and optional custom modifiers.

FEATURE_CUSTOM_TYPE_DESCRIPTOR

System.ComponentModel.ICustomTypeDescriptor interface.

FEATURE_DBNULL

DBNull type.

FEATURE_DEFAULT_PARAMETER_VALUE

DefaultParameterValueAttribute.

FEATURE_ENCODING

Full encoding support: code pages, decoder/encoder fallbacks.

FEATURE_EXCEPTION_STATE

ThreadAbortException.ExceptionState.

FEATURE_FILESYSTEM

Full file system (Directory, File, Path, FileStream, etc.)

FEATURE_FULL_CONSOLE

Full Console APIs including stdin, stdout, stderr streams, colors, etc.

FEATURE_FUNCS_5_16

Func<...> and Action<...> with 5 to 16 parameters.

FEATURE_METADATA_READER

DLR metadata reader available.

FEATURE_NATIVE

Native code interop: P/Invokes, CTypes, etc.

FEATURE_NUMERICS

System.Numerics namespace (BigInteger, Complex types).

FEATURE_PDBEMIT

Ability to emit PDB files.

FEATURE_PROCESS

Processes, AppDomains, process-wide environment variables.

FEATURE_REFEMIT

Reflection.Emit.

FEATURE_REMOTING

Remoting (MarshalByRefObject).

FEATURE_SERIALIZATION

Serialization - Serializable attribute, ISerializable interface.

FEATURE_STACK_TRACE

System.Diagnostics.StackTrace, System.Diagnostics.StackFrame.

FEATURE_SYNC_SOCKETS

System.Net.Sockets.

FEATURE_TASKS

System.Tasks.

FEATURE_THREAD

Threads, ThreadAbortException.

FEATURE_TYPE_EQUIVALENCE

System.Type.IsEquivalent()

FEATURE_TYPECONVERTER

System.ComponentModel.TypeConverter and TypeConverterAttribute types.

FEATURE_VARIANCE

Covariance and contravariance of generic interface and delegate parameters.

FEATURE_WPF

FEATURE_XMLDOC

XML documentation available at runtime.


To be sorted

FEATURE_VALUE_EQUALITY

FEATURE_COMPRESSION

FEATURE_WARNING_EXCEPTION

FEATURE_SECURITY_RULES

FEATURE_APTCA

FEATURE_WIN32EXCEPTION

FEATURE_REGISTRY

FEATURE_ASSEMBLY_LOCATION

FEATURE_ENUM_NAMES_VALUES

FEATURE_OS_SERVICEPACK

FEATURE_APPLICATIONEXCEPTION

FEATURE_STOPWATCH

FEATURE_APARTMENTSTATE

FEATURE_GETINVALIDFILENAMECHARS

FEATURE_LOADWITHPARTIALNAME

FEATURE_DRIVENOTFOUNDEXCEPTION

FEATURE_ASSEMBLY_CODEBASE