Kde jsou nekonečna a NaN hodnota?
Nejsou zahrnuty v dostupných knihovnách, ale můžete si je nadeklarovat sami: public const float NaN = 0.0f / 0.0f; public const float NegativeInfinity = -1.0f / 0.0f; public const float PositiveInfinity = 1.0f / 0.0f; Tyto definice typu float budou implicitně převedeny i na typ double, bude-li třeba.
Proč běží kód interpretovaně místo toho, aby jej kompiloval JIT?
Z důvodu výkonu. Ukázalo se, že systém zahazoval nativní kód a spouštěl JIT extrémně často, což výhody nativního kódu nedokázaly převážit. S interpretací kódu odpadá kompilace za běhu, zahazování a překompilace. Proč tedy nezkompilovat vše napřed (AOT - Ahead Of Time)? Protože IL kód je většinou znatelně menší než nativní a stále přichází požadavky na snižování hardwarových nároků (Steve Maillet zmínil 64kB RAM). Je možné, že schopnosti a cena procesorů v budoucnu umožní jak JIT tak AOT kompilaci. Jen čas ukáže, zakončuje Steve svou odpověď.