Math.Pow(-1, 2) == -1 в сборке Windows 11 Insider ( github.com/dotnet )
Я не согласен с комментарием.
«И Math.Pow, и std::pow вызывают функцию pow в UCRT, которая поставляется с Windows. О проблеме следует сообщить в MSVC»
В обязанности составителя отчета об ошибках не входит выяснять это и проверять, что все идет правильно при настройке вызова этой функции или при передаче ее вывода обратно в мир C#.
Это тем более верно, что динамическая природа кода .NET делает далеко не простой проверкой путем проверки, что эта функция просто вызывает функцию pow в UCRT. Компилятор C# может неправильно выполнить свертывание констант, и может быть несколько способов, которыми среда выполнения компилирует код CLR (быстрая компиляция, чтобы начать выполнять его быстро, более медленная компиляция, которая позже производит более быстрый код, если он оказывается часто вызываемым, и т. д.)
Я слышал, как люди жалуются, что программное обеспечение становится все хуже и хуже. Может, они все-таки правы /шутка
Экспоненциально проницательное наблюдение.
Ошибся на 2, не так уж и плохо
Согласно отчету, это происходит как в C#, так и в C++, но какая здесь связь между ОС и компилятором?
Насколько я помню, со времен использования Windows версия вашей Visual Studio (в которой есть компилятор и стандартные библиотеки) не была связана с версией вашей операционной системы.
В Windows 10 компания Microsoft перешла на универсальную CRT (UCRT), и C#, и C++ вызывают UCRT ОС.
Мне действительно интересно, как это могло пройти тестирование CI.
(В комментариях винят в этом UCRT, а не .NET, но… для меня это не имеет большого значения.)
(Пожалуйста, подождите, пока мы переведем вас в отделение UCRT, ваш звонок очень важен для нас)
Возможно, это новая оптимизация, и тесты написал ИИ.
Примечание.
Одним из преимуществ использования фирменного коробочного программного обеспечения является унифицированная поддержка и продукт.
В этом случае сопровождающий перенаправляет проблему какой-то другой команде и передает мяч, как будто это проект с открытым исходным кодом с 50 зависимостями и тонкими обязанностями: «Нет, если есть проблема с кнопкой, вы должны сообщить об этом в GUI-button, мы создаем GUI-form и просто передаем генерацию кнопки в их библиотеку».
Microsoft — многоголовый зверь.
Найти нужный контакт даже для сотрудников внутри этого зверя — сложная задача, требующая особого мастерства.
Source: news.ycombinator.com