Size: a a a

Compiler Development

2020 January 13

E

EgorBo in Compiler Development
мне вспоминается недавно был какой-то кейс, где раст показывал ворнинг и ни один другой компилятор не показывал — не могу ссылку найти блин
источник

E

EgorBo in Compiler Development
сами придумали проблему, сами решили и сделали из этого пост :)
источник

E

EgorBo in Compiler Development
а, про греческие пробелы вроде
источник

AV

Alexey Veselovsky in Compiler Development
MaxGraey
Вот Rust правильно делает
а что тут странного? обычная строгая статическая типизация
источник

AV

Alexey Veselovsky in Compiler Development
Ада вот такое тоже не пропустит
источник

SS

Sergey Sverdlov in Compiler Development
MaxGraey
Вот Rust правильно делает
Так должно быть в любом языке, где вещественному запрещено присваивать значение целого.
источник

M

MaxGraey in Compiler Development
Alexey Veselovsky
Ада вот такое тоже не пропустит
Ну ада вообще маниакально строгая
источник

AV

Alexey Veselovsky in Compiler Development
Alexey Veselovsky
Ада вот такое тоже не пропустит
example.adb:8:18: expected type "Standard.Float"
example.adb:8:18: found type universal integer
источник

AV

Alexey Veselovsky in Compiler Development
MaxGraey
Ну ада вообще маниакально строгая
А Раст - золотая середина? 😄
источник

SS

Sergey Sverdlov in Compiler Development
В Go, правда, не катит, потому что там константы сами по себе не имеют определенного типа.
источник

AV

Alexey Veselovsky in Compiler Development
OCaml:
File "<source>", line 3, characters 16-17:
3 | let x : float = 1
                   ^
Error: This expression has type int but an expression was expected of type
        float
 Hint: Did you mean `1.'?
источник

M

MaxGraey in Compiler Development
Sergey Sverdlov
В Go, правда, не катит, потому что там константы сами по себе не имеют определенного типа.
В Go там вообще забавно) Числа с плавающей запятой вычисляются с arbitrary float precision, поэтому fmt.Println(0.1 + 0.2 == 0.3) выведет «true» хотя в любом другом языке это будет false.
источник

K

Kir in Compiler Development
А sqrt(2.0) * sqrt(2.0) == 2.0 что вернёт?
источник

E

EgorBo in Compiler Development
Kir
А sqrt(2.0) * sqrt(2.0) == 2.0 что вернёт?
в фаст-мас точно true
источник

K

Kir in Compiler Development
Хмммм
источник

M

MaxGraey in Compiler Development
Kir
А sqrt(2.0) * sqrt(2.0) == 2.0 что вернёт?
Нет, только константные выражения (без вызовов)
источник

K

Kir in Compiler Development
А
источник

K

Kir in Compiler Development
А 1 / 3 + 2 / 3 == 1.0?
источник

M

MaxGraey in Compiler Development
Alexey Veselovsky
OCaml:
File "<source>", line 3, characters 16-17:
3 | let x : float = 1
                   ^
Error: This expression has type int but an expression was expected of type
        float
 Hint: Did you mean `1.'?
Ocaml тоже молодец 👍
источник

E

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