gavr_sas
210 subscribers
2.66K photos
181 videos
26 files
780 links
JB пропаганда
Download Telegram
GPT 4 просто запомнил паттерн)
👍1
Организаторы в тысячный раз совершили критическую ошибку, дав аудитории писать текст который появится на экране, Бауманка
😁4
gavr_sas
Уже могу сделать Result, крута Потребовалось реализовать пустые конструкторы без параметров в резолвере типов А вот реализовать unwrap система типов пока не позволяет( Походу нужно вводить Bottom тип: Nothing И надо бы подглядеть как это в остальных яп решают…
Ну вот спустя 6-7 часов кодинга оно работает.
1) я не сразу додумался что если у веток потомков есть дженерик поля, то теже дженерик поля нужно добавлять и в Root, иначе при вызове функций будет невозможно вывести дженерик параметр, а также внутри матчей придется делать касты as T, потому что чертовы дженерики erased в JVM

То есть тут не видно, но и Option и Non это тоже дженерик типы, у Option тоже T что у Some, а вот у None забавное Nothing, что тоже не так уже и очевидно, ведь полей то у него нет.

2) Добавление bottom типа Nothing, который является локальным подтипом всех типов, что дает возвращать его из веток switch(все ветки switch должны возвращать один и тот же тип).
Тк кк Nothing в компараторе типов с чем угодно дает true
gavr_sas
Ну вот спустя 6-7 часов кодинга оно работает. 1) я не сразу додумался что если у веток потомков есть дженерик поля, то теже дженерик поля нужно добавлять и в Root, иначе при вызове функций будет невозможно вывести дженерик параметр, а также внутри матчей…
чертовы капиталисты
3) Добавил кастомные Keyword конструкторы типов(раньше были только unary, типа Float pi == 3.14)
Потому что я не хочу сначала создавать экземпляр эксепшона, а потом уже отдельным сообщением его throwить, это тупа, так что вот throwWithMessage вызывается напрямую на Error, а не на экземпляре Error, потому что конструктор

PS ну и да, Error, а не Exception, потомушо пишется проще ^_^
сори, но тг неудобный, скину так
Классные слайды объясняющие зачем в самой спецификации Wasm GC
Forwarded from gavr
пропосалы которые сильнее всего повлияют на васм перфоманс
симд и треды понятно, тэил позволит юзать корутины, функциональные языки

мемори64 позволит выделять в васме более 4гигов памяти и легче портировать код 64битный

js промисы — вызов асинхронного кода из синхронного без оверхеда, это чисто их V8
Forwarded from gavr
чистят сами
Forwarded from gavr
тащат свой
Forwarded from gavr
опа, а это че такое
Forwarded from gavr
Вот кстати еще проблема, непонятно сколько памяти нужно выделять под васм модуль, и поцы сейчас выделяют просто максимальное количество всегда, даже если под их апп нужно меньше
Forwarded from gavr
проблема номер 2 такой архитектуры, приложение васма должно быть правильно сархитуктированно to avoid corruption, when for example the js GC come along and freezes the memory that actually still needed in Wasm part or vice вёрса
Forwarded from gavr
another problem, in the original design of wasm, only the js part has access to web api, and js and wasm has its own isolated memory