Size: a a a

2021 May 27

Т8

Т-34 85 in dlang.ru
Какой тайпчек?
источник

0

000Sanya in dlang.ru
обычный
источник

0

000Sanya in dlang.ru
проверка типов
источник

Т8

Т-34 85 in dlang.ru
Там проверка на уровне "соответствует интерфейсу или нет"
источник

Т8

Т-34 85 in dlang.ru
И работаешь ты с интерфейсом
источник

Т8

Т-34 85 in dlang.ru
источник

0

000Sanya in dlang.ru
так там ясно написано: порождаем на каждый генерик свой тип
Rust takes a different approach: it monomorphizes all generic types. This means that compiler stamps out a different copy of the code of a generic function for each concrete type needed. For example, if I use a Vec<u64> and a Vec<String> in my code, then the generated binary will have two copies of the generated code for Vec: one for Vec<u64> and another for Vec<String>. The result is fast programs, but it comes at the cost of compile time (creating all those copies can take a while) and binary size (all those copies might take a lot of space).
источник

0

000Sanya in dlang.ru
где стирание?
источник

Т8

Т-34 85 in dlang.ru
Monomorphization is the first step in the backend of the rust compiler.


А во фронте как? Получается, затёрт?
источник

0

000Sanya in dlang.ru
как он тебе тогда в бэке его получит?
источник

0

000Sanya in dlang.ru
судя по тому что я вижу, в мире оно остается генериком
источник

Т8

Т-34 85 in dlang.ru
Ну, судя по всему, повторно по исходному коду проходится и вытаскивает типы
источник

0

000Sanya in dlang.ru
да нет
источник

0

000Sanya in dlang.ru
он их прям до MIR и тащит
источник

0

000Sanya in dlang.ru
fn <impl at src/main.rs:10:1: 12:2>::item(_1: &Foo<T>) -> &T {
   debug self => _1;                    // in scope 0 at src/main.rs:11:13: 11:18
   let mut _0: &T;                      // return place in scope 0 at src/main.rs:11:28: 11:39

   bb0: {
       _0 = &((*_1).0: T);              // scope 0 at src/main.rs:11:28: 11:39
       return;                          // scope 0 at src/main.rs:11:41: 11:41
   }
}
источник

0

000Sanya in dlang.ru
в mir еще есть генерики
источник

0

000Sanya in dlang.ru
А вот дальше уже происходит их подстановка
источник

Т8

Т-34 85 in dlang.ru
В смысле, мономорфизация?
источник

0

000Sanya in dlang.ru
Да
источник

Т8

Т-34 85 in dlang.ru
Ну и отлично, что ты согласен
источник