CURRENT IMPLEMENTED SURFACE
Compatibility
matrix.
CPU, output, CIL, runtime, and framework support in the current compiler. Compatibility is closed-world and member-specific.
Supported subset means the listed forms are implemented. Other reachable forms fail with a compiler diagnostic. It does not mean full CLR or full framework compatibility.
01 / TARGETS AND OUTPUT
Generated code and containers
CPU selection changes code generation and optimization. It is not an emulator setting.
| Area | Status | Current surface | Evidence |
|---|---|---|---|
| Integer backend | SUPPORTED | MC68000, MC68020, MC68040, and MC68060, with separate optimization profiles. | Public API ↗ |
| Native floating point | SUPPORTED SUBSET | MC68882 with a 68020 host, or the integrated 68040 and 68060 FPU. Constants, add, subtract, multiply, divide, and negation are implemented for single and double precision. | Compiler notes ↗ |
| SoftFloat | DEFERRED | The CopperFloat raw-bit ABI is reserved. Operations that need its target runtime are diagnosed as unsupported. | Compiler notes ↗ |
| Amiga | SUPPORTED | Native m68k programs using Amiga library vectors and the typed SDK declarations. | Amiga SDK ↗ |
| MorphOS | SUPPORTED SUBSET | m68k programs and MorphOS m68k ABI extensions. The compiler does not emit native PPC code. | Amiga SDK ↗ |
| Output formats | SUPPORTED | Amiga HUNK executable, 256 or 512 KiB Kickstart ROM image, and assembler text. | Compiler notes ↗ |
| Runtime profiles | CONFIGURABLE | Freestanding, single-entry application, and persistent ROM profiles. | Public API ↗ |
02 / CIL AND RUNTIME
Managed execution surface
The compiler accepts a bounded CIL subset. Unsupported reachable instructions and types produce diagnostics.
| Area | Status | Current surface | Evidence |
|---|---|---|---|
| 32-bit integers | SUPPORTED | Signed and unsigned arithmetic, comparisons, conversions, branches, calls, locals, and arguments. | Compiler notes ↗ |
| 64-bit integers | SUPPORTED SUBSET | Constants, locals, returns, and register-pair import or platform parameters. General arithmetic and comparisons remain outside the supported subset. | Compiler notes ↗ |
| Object model | SUPPORTED SUBSET | Classes, single inheritance, virtual dispatch, interface maps, boxing, delegates, and type initialization in closed-world forms. | .NET 10 design ↗ |
| Generics | SUPPORTED SUBSET | Constructed types and shared method bodies where generic values use compatible scalar or reference representations. | .NET 10 design ↗ |
| Arrays and byrefs | SUPPORTED SUBSET | Single-dimensional scalar and reference arrays, managed byrefs, and the subset required by Span<T>. Multidimensional arrays are deferred. | .NET 10 design ↗ |
| Managed exceptions | SUPPORTED | Table-driven catch, finally, rethrow, leave, and callee-saved restoration during unwind. | Compiler notes ↗ |
| Managed memory | CONFIGURABLE | No heap, external allocator, generated bump allocator, or a non-moving mark-and-sweep runtime with exact roots and an unchanged single-pass fast path when finalizers are absent. | Runtime memory ↗ |
| Finalizers | SUPPORTED SUBSET | Synchronous C# finalization with suppression, re-registration, resurrection, nested collection, and normal-exit draining under ManagedPoolMarkSweepGc plus Full exceptions. | Runtime memory ↗ |
03 / .NET 10 CONTRACT
Framework member surface
Framework compatibility is recorded per member. A listed assembly, namespace, or type does not imply that every overload is supported.
| Area | Status | Current surface | Evidence |
|---|---|---|---|
| Core runtime | SUPPORTED SUBSET | Object, Exception, Nullable<T>, delegates, equality infrastructure, and selected runtime helpers. | Member contract ↗ |
| Strings and numerics | SUPPORTED SUBSET | Managed strings, integer formatting, interpolation, Int32, UInt32, Math, and selected binary primitives. | Member contract ↗ |
| Collections | SUPPORTED SUBSET | List<T>, Dictionary<TKey,TValue>, equality comparers, and selected generic enumeration forms. | Member contract ↗ |
| LINQ | SUPPORTED SUBSET | Selected allocation-conscious operators over proven collection and array sources. | Member contract ↗ |
| Span and memory | SUPPORTED SUBSET | Span<T>, ReadOnlySpan<T>, Memory<T>, ReadOnlyMemory<T>, MemoryExtensions, and BitConverter member subsets. | Member contract ↗ |
| Amiga platform APIs | SUPPORTED SUBSET | Console output and selected platform operations are bound through the Amiga runtime layer. | Member contract ↗ |
04 / OUTSIDE THE CURRENT CONTRACT
Deferred capabilities
Reachable use is diagnosed. These capabilities are not replaced with silent stubs.
| Area | Status | Current surface | Evidence |
|---|---|---|---|
| Reflection | DEFERRED | General reflection, metadata-driven activation, and runtime code generation. | .NET 10 design ↗ |
| Concurrency | DEFERRED | Threads, tasks, and general synchronization beyond explicitly declared platform contracts. | .NET 10 design ↗ |
| Networking | DEFERRED | Sockets, HTTP, and network streams. | .NET 10 design ↗ |
| Runtime services | DEFERRED | Weak references, dependent handles, dynamic loading, COM, and desktop frameworks. | .NET 10 design ↗ |
| Globalization | DEFERRED | Culture packs and complete Unicode globalization. | .NET 10 design ↗ |
| Array and interop forms | DEFERRED | Multidimensional arrays and uncommon marshaling forms. | .NET 10 design ↗ |
FRAMEWORK SUPPORT
Only listed APIs are supported.
CopperSharp checks every reachable framework call against the versioned contract. If a method or constructor is not listed, compilation stops with a diagnostic.