Size: a a a

Compiler Development

2020 January 12

AV

Alexey Veselovsky in Compiler Development
Val Krylov
Нет. Некоторые фонды платят (Mozilla, GSOC, ...). А в основном - для самовыражения.
Надо же чем то от хрома отличаться!
источник
2020 January 13

KR

K R in Compiler Development
Есть неприятный момент с Rust - язык меняется. И переписанное сейчас через два года придётся слегка править. А фортран 77 можно вообще не менять, если нет необходимости  в предметной области.
источник

KR

K R in Compiler Development
Михаил Бахтерев
Нечто мне подсказывает, что на Rust было бы вообще нечитаемо. В Фортране самое полезное - сечения массивов. Не знаю, может ли борроу-чекер такое переварить.
В Rust есть сечения Slice. Но они, боюсь, слишком примитивные.
источник

KR

K R in Compiler Development
По моему опыту с Clean, без сечений с массивами на линейных типах работать крайне неудобно.
источник

M

MaxGraey in Compiler Development
Такой вопрос возник, Rust, Go, Kotlin и похоже вообще все современные ЯП интерпретируют литерал -0 на integer вне зависимости от контекта, например math.Sqrt(-0) должен вернуть -0 по спецификации но возвращает +0, так как фронт просто делает каст к int. И только math.Sqrt(-0.0) вернет -0

Не кажется ли вам это нелогичным, учитывая что значение -0 возможно только для чисел с плавающей арифметикой?
источник

KR

K R in Compiler Development
Математически 0- возникает в пределах, то есть, имеет смысл только на непрерывных множествах.
источник

IJ

Igor 🐱 Jirkov in Compiler Development
мне кажется это логичным или по крайней мере привычным.
источник

E

EgorBo in Compiler Development
> современные ЯП интерпретируют литерал -0 на integer вне зависимости от контекта

ну и правильно, я бы еще и 0 заставил бы все время писать как 0.0(f)
источник

SS

Sergey Sverdlov in Compiler Development
MaxGraey
Такой вопрос возник, Rust, Go, Kotlin и похоже вообще все современные ЯП интерпретируют литерал -0 на integer вне зависимости от контекта, например math.Sqrt(-0) должен вернуть -0 по спецификации но возвращает +0, так как фронт просто делает каст к int. И только math.Sqrt(-0.0) вернет -0

Не кажется ли вам это нелогичным, учитывая что значение -0 возможно только для чисел с плавающей арифметикой?
А как -0 представить в целых?
источник

M

MaxGraey in Compiler Development
Sergey Sverdlov
А как -0 представить в целых?
Суть в том, что это как раз и нельзя представить в целых, поэтому было бы более логично интерпретировать это как float. Ну или выводить варнинг
источник

KR

K R in Compiler Development
Ну только если предупреждение. Автоперевод в плавающую точку шизофреничен.
источник

M

MaxGraey in Compiler Development
Ведь если написать 0xFFFFFFFFFF то это будет интерпретироваться как i64 а не i32, потому как выход за пределы диапазона и все компиляторы автоматически выведут этот литерал как i64 а не молча обрежут до 0xFFFFFFFF
источник

SS

Sergey Sverdlov in Compiler Development
Выражение -0 по правилам самых разных языков имеет целый тип, поэтому сперва вычисляется в целых и получается просто 0.
источник

M

MaxGraey in Compiler Development
Sergey Sverdlov
Выражение -0 по правилам самых разных языков имеет целый тип, поэтому сперва вычисляется в целых и получается просто 0.
Я это понимаю. И меня это смущает, потому как это литерал, то есть человек знает что делает это во первых, во вторых -0 существует в основном только для f32/f64. Не лучше ли выводить предупреждение? Что бы человек явно написал 0 или -0.0
источник

SS

Sergey Sverdlov in Compiler Development
-0 - не литерал, а выражение с операцией перемены знака
источник

KR

K R in Compiler Development
В SML есть унарный минус. Там точно можно выдавать предупреждение.
источник

M

MaxGraey in Compiler Development
Вот Rust правильно делает
источник

E

EgorBo in Compiler Development
ах вот для чего этот вырожденный кейс всплыл о котором никто не думал — похвалить раст :D
источник

KR

K R in Compiler Development
Да, не долго держалась интрига.
источник

M

MaxGraey in Compiler Development
EgorBo
ах вот для чего этот вырожденный кейс всплыл о котором никто не думал — похвалить раст :D
Я так часто пиарю Rust? По-моему нет
источник