Size: a a a

Compiler Development

2020 January 28

AT

Alexander Tchitchigin in Compiler Development
Oleg Morozov
сабтайпинг для меня больше ассоциируется с underlying types
типа как в Go
где ты можешь сделать именованный int, и он будет относится  именно к интам и ничему больше
Это type aliases. 😊
источник

M

MaxGraey in Compiler Development
Andrei Kurosh
@maxgraey вроде как AssemblyScript должен такое уметь?
Нет, пока нет, но Crystal вроде умеет
источник

МБ

Михаил Бахтерев in Compiler Development
Alexander Vershilov
Мне кажется, мне придётся явно передавать тот A, что я захочу?
Придётся
источник

А

Алексей in Compiler Development
Алексей
придётся объект передавать тогда
тогда вообще смысл? легче сразу дефолт передать и ввсё
источник

AV

Alexander Vershilov in Compiler Development
Тогда согласимся, что разница между интерфейсами и классами типов проходит по этой линии? )
источник

AK

Andrei Kurosh in Compiler Development
MaxGraey
Нет, пока нет, но Crystal вроде умеет
А планируется? Т.е. получается что у вас не структурная, а номинальная типизация?
источник

МБ

Михаил Бахтерев in Compiler Development
Alexander Vershilov
Тогда согласимся, что разница между интерфейсами и классами типов проходит по этой линии? )
Ok
источник

M

MaxGraey in Compiler Development
Andrei Kurosh
А планируется? Т.е. получается что у вас не структурная, а номинальная типизация?
Планируется, но пока есть хадачи по-насущнее. А пока да, все номинальное
источник

DP

Dmitry Ponyatov in Compiler Development
Oleg Morozov
да, это естественно
но это уже детали реализации

тут можно идти двумя путями, либо при вызове кастовать типы c копированием
либо компилировать функции под каждый новый тип с другими оффсетами, но это сломает весь ABI, будет килотонна таких функций
В OCaml похоже на tagged union тип, в функции матчить
источник

M

MaxGraey in Compiler Development
но вообще да, это через taggad unions можно сделать, но придется явно матчить
источник

OM

Oleg Morozov in Compiler Development
Alexander Tchitchigin
Это type aliases. 😊
да, я уже почитал подробнее
источник

AT

Alexander Tchitchigin in Compiler Development
Dmitry Ponyatov
В OCaml похоже на tagged union тип, в функции матчить
В OCaml есть объекты со структурной подтипизацией.
источник

DP

Dmitry Ponyatov in Compiler Development
Alexander Tchitchigin
В OCaml есть объекты со структурной подтипизацией.
сомнительное свойство, типа утиная типизация по набору полей данных
источник

AT

Alexander Tchitchigin in Compiler Development
Dmitry Ponyatov
сомнительное свойство, типа утиная типизация по набору полей данных
При наличии строгой статической проверки - норм. 😃
источник

E

Eugene in Compiler Development
лучше объясните как классы типов через GADT выразить...
источник

AT

Alexander Tchitchigin in Compiler Development
Eugene
лучше объясните как классы типов через GADT выразить...
Э-ээ... Никак?
источник

E

Eugene in Compiler Development
Alexander Tchitchigin
Э-ээ... Никак?
а я слышал что типа это возможно... о_О зх ((
источник

AV

Alexander Vershilov in Compiler Development
Вот я к тому же склоняюсь, кажется получить когерентность нельзя
источник

AV

Alexander Vershilov in Compiler Development
Да и автоматическое нахождение словарика
источник

AT

Alexander Tchitchigin in Compiler Development
Eugene
а я слышал что типа это возможно... о_О зх ((
Разве что тупо руками всё рассахарить и принимать/передавать словари куда надо, но для этого и GADT не нужны - можно хоть на C зафигачить... 🤷‍♀️
источник