Size: a a a

2020 April 17

p

polunin.ai in rust_offtopic
Alex Zhukovsky
это сложнее чем констант фолдинг
2 + 3 это констант фолдинг, все правильно
источник

EG

Emmanuel Goldstein in rust_offtopic
Таким образом, например, +.optimize будет складывать все константные аргументы и оставлять остальные.
источник

EG

Emmanuel Goldstein in rust_offtopic
И да, for.optimize может анролльнуть цикл
источник

EG

Emmanuel Goldstein in rust_offtopic
*.optimize это просто произвольный макрос, который применяет оптимизации, специфичные для функции
источник

AZ

Alex Zhukovsky in rust_offtopic
polunin.ai
2 + 3 это констант фолдинг, все правильно
или превратить pow(x,5) в { let xx = x*x; xx*xx*x }
источник

А⚙

Антон ⚙️ in rust_offtopic
Alex Zhukovsky
скала это хаскель для людей которые хотят в прод затащить что-то чуть более стабильное чем гхц, чтобы либы были и все такое
GHC так-то постабильнее компилятора Scala
источник

AZ

Alex Zhukovsky in rust_offtopic
где

fn pow(x: i32, y: i32) -> i32 {
 let result = 1;
 for _ in 0..y {
   result *= x;
 }
 result
}
источник

EG

Emmanuel Goldstein in rust_offtopic
В сочетании с «паралелльным исполнением по дефолту» я хочу попробовать получить разумные результаты производительности. Собираюсь сравнивать с Perl, который очень хорошо оптимизирован для интерпретируемого языка.
источник

p

polunin.ai in rust_offtopic
Alex Zhukovsky
или превратить pow(x,5) в { let xx = x*x; xx*xx*x }
это уже и не partial evaluation.
источник

AZ

Alex Zhukovsky in rust_offtopic
polunin.ai
это уже и не partial evaluation.
это он и есть, почитай определение. Проекции футамуры и это всё
источник

EG

Emmanuel Goldstein in rust_offtopic
В идеале программа, которая, например, считает первые 10000 символов числа пи, будет естественным образом полностью исполняться в компайл-тайме
источник

EG

Emmanuel Goldstein in rust_offtopic
Потому что у неё нет входных данных => до рантайма ждать не нужно
источник

p

polunin.ai in rust_offtopic
Alex Zhukovsky
это он и есть, почитай определение. Проекции футамуры и это всё
The partial evaluation that we will look at will do (more or less) the following optimizations:

   constant folding
   loop unrolling
   function specialization and inlining
источник

EG

Emmanuel Goldstein in rust_offtopic
Это как раз function specialization and inlining
источник

А⚙

Антон ⚙️ in rust_offtopic
Roman Proskuryakov
blockReturn реально очень удобный. не надо городить всяких штук типа let x = f().map_err(|..| ..)?;
И как бы это выглядело в Kotlin?
источник

RP

Roman Proskuryakov in rust_offtopic
Антон ⚙️
И как бы это выглядело в Kotlin?
почитай в доке.
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
это уже и не partial evaluation.
Это он и есть
источник

DS

Doge Shibu in rust_offtopic
Прям пример из палаты мер и весов
источник

А⚙

Антон ⚙️ in rust_offtopic
Roman Proskuryakov
"код должен быть самодокументированным", и прочая хуита от мастеров неподдерживаемого кода
источник

VS

Victor Sapiens in rust_offtopic
Хай бледнолицые. У меня для вас официальное заявление - у меня классное настроение потому что я классный. Всех с пятницей. Уиииииии 😁😁😁🍺
источник