Dois novos bugs importantes foram encontrados no compilador RyuJIT do .NET 4.6. O primeiro foi documentado pelo desenvolvedor Andrey Akinshin que disponibilizou um código prova de conceito escrito em C# para explicar o problema. O código de Akinshin foi esclarecido por um comentário no StackOverflow do usuário "BrandonAGr".
O exemplo de Akinshin usa valores booleanos nulos para mostrar como o assembly gerado pelo RyuJIT erra ao gerar código otimizado. O que é estranho é que na primeira execução o exemplo produz resultados incorretos, mas na segunda os resultados aparecem corretos. Akinshin conclui que "... existe um bug complicado na otimização do RyuJIT que depende de várias condições: qualquer mudança no código acaba com a reprodutibilidade."
Felizmente, a correção para esse erro foi submetida pelo desenvolvedor da Microsoft "schellap". De qualquer forma, conforme apontado em notícia anterior, ainda não foram distribuídos binários corrigidos. Usuários estão demonstrando sua frustração e preocupação com o estado atual do RyuJIT. O usuário "EasmoneNerbonne" diz que baseado no bug relatado, "... parece que aguardar um pouco antes de utilizar o RyuJIT é uma estratégia melhor do que apenas desabilitar as chamadas tail". Akinshin concorda e o usuário Daniel Marbach complementa "... deveria haver uma atualização no post da Microsoft a respeito do problema e um anúncio geral dizendo claramente: NÃO USE EM PRODUÇÃO." (Ênfase presente no original)
O segundo bug foi relatado através do GitHub pelo usuário Hyunho Richard Lee que disponibilizou um exemplo de código escrito em F# para demostrar o que deveria ser um programa correto, mas que produz erros quando executado (mais especificamente FatalExecutionEngineError). Lee afirma que instalar o .NET 4.6 quebra programas F# que funcionam corretamente quando executados usando F# 3.1 com .NET 4.5.1 ( ou 4.5 ou 4.5.2)
A explicação de Lee para desenvolvedores F# é resumida a seguir:
Todos os desenvolvedores F# que usam a o método Seq.distinct em uma Seq com KeyValuePair em qualquer lugar do código devem ajustar o ambiente de forma que o código é implantado sem que o .NET 4.6 esteja instalado ou imediatamente ajustar a plataforma alvo de seus projetos e fazerem novamente a implantação.
O desenvolvedor "sivarv" da Microsoft informou que uma correção foi submetida, mas conforme informado anteriormente, ainda não foi distribuído um binário.