Skip to content

Limitations that we're not planning to address right now #69919

@MichalStrehovsky

Description

@MichalStrehovsky
  • Runtime doesn't wrap non-exception throws into a System.Exception (IL allows throw new object())
  • Limited support for multi-dim arrays with non-zero lower bounds (can be created in IL or with reflection)
  • Type equivalence
  • COM (COM interop support runtimelab#306)
  • SAFEARRAY and VARIANT marshalling
  • Runtime assembly loading (LoadFrom, LoadFromAssemblyPath)
  • Collectible assemblies
  • Reflection.Emit
  • Reflection-invoking static constructors and finalizers
  • Managed C++ and C++/CLI
  • Varargs (accessible in C# through undocumented keywords only)
  • Complex tail calls
  • RuntimeHelpers.InitializeArray that cannot be intrinsically expanded
  • JMP instruction
  • Thorough checking of invalid inputs (might not throw an exception for certain invalid inputs)
  • Stack walking from reflection call (reflection-invoking Type.GetType expecting to see the calling assembly of the reflection call)
  • String literals don't have the same identity as strings retrieved through String.Intern
  • Assembly.GetCallingAssembly
  • Assembly.GetSatelliteAssembly
  • Handling of exceptions thrown out of a module initializer
  • Thread.Interrupt ([NativeAOT] Thread.Interrupt not implemented on Windows #118293)
  • Named mutexes on Unix (Support inter-process named mutexes in managed Mutex implementation #48720)
  • System.Runtime.InteropServices.ObjectiveC
  • Constructing delegates outside verifiable delegate sequence
  • Finalizers should not run for objects with unsuccessful class init (.cctor)

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-NativeAOT-coreclrenhancementProduct code improvement that does NOT require public API changes/additions

    Type

    No type

    Projects

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions