Size: a a a

Compiler Development

2020 February 27

E

EgorBo in Compiler Development
это важно?
для проверки на isnan в C# юзают float.IsNaN  он вернет тру для всех форм
источник

M

MaxGraey in Compiler Development
NaN bit channel attack 😂
источник

E

EgorBo in Compiler Development
собсно в шарпе изнан - это return x != x
источник

M

MaxGraey in Compiler Development
EgorBo
это важно?
для проверки на isnan в C# юзают float.IsNaN  он вернет тру для всех форм
Есть еще такая штука как signbit, которая тупо чекает MSB
источник

M

MaxGraey in Compiler Development
и вот представь ситуацию:

if (std::signbit(x)) {
  return 1;
} else {
  return 2;
}
источник

RA

Roman Akberov in Compiler Development
EgorBo
собсно в шарпе изнан - это return x != x
источник

E

EgorBo in Compiler Development
это очень старые сорцы
источник

E

EgorBo in Compiler Development
источник

RA

Roman Akberov in Compiler Development
Угу, спасибо.
источник

M

MaxGraey in Compiler Development
MaxGraey
и вот представь ситуацию:

if (std::signbit(x)) {
  return 1;
} else {
  return 2;
}
А вот как это все может вылазить боком
https://github.com/numpy/numpy/issues/2417#issuecomment-59715904
источник

RE

Roman Elizarov in Compiler Development
EgorBo
это важно?
для проверки на isnan в C# юзают float.IsNaN  он вернет тру для всех форм
На JVM doubleToLongBits используется в сериализации. Маскировка NaN делает результат независимым от платформы и оптимизаций.
источник

RE

Roman Elizarov in Compiler Development
источник

E

EgorBo in Compiler Development
это похвально и я надеюсь наши сериализаторы тоже канонизируют нан, но причем тут платформенность если НаН - он по спеке не детерминирован в конкретное битовое представление?
источник

E

EgorBo in Compiler Development
ну т.е. если платформа не умеет в fff8 нан и сходит с ума - это норма? :)
источник

M

MaxGraey in Compiler Development
Intel Compiler вообще дальше всех пошел) Он by default использует /fp:fast и получаем что isNaN(NaN - NaN) == false потому что NaN - NaN становиться в результате нулем
https://stackoverflow.com/questions/32195949/why-does-nan-nan-0-0-with-the-intel-c-compiler
источник

E

EgorBo in Compiler Development
им еще кто-то пользуется? :)
источник

E

EgorBo in Compiler Development
поправил x * -1 в -x в джите, сорян :(
источник

FO

FORTRAN ONE LOVE in Compiler Development
EgorBo
им еще кто-то пользуется? :)
intel'ом? Да...
источник

BD

Berkus Decker in Compiler Development
Т-34 85
Возможно ли в LLVM завезти GC, чтобы C# в его IL мог компилироваться?
источник

E

EgorBo in Compiler Development
>  Download and build LLVM 3.3
> 16 stars

-_-
источник