Anonymous
Потому что его ты не сделаешь так, чтобы он нормально соптимизировался.
нет, ну может быть какие-нибудь пятиэтажные макросы и смогли бы. я не знаю, но пользоваться этакой кракозяблей было бы ужасно.
Ayrat
а преждевременные оптимизации все же зло. Это не оправдание говнокода, это именно про преждевременные оптимизации
Vladislav
я про итераторы
Doge
там нет инвариантных/ко дженериков что ль или ещё чего
Нет, тут две проблемы: 1. Все замыкания, генераторы и футуры из асинков имеют принципиально неназываемые в стабильном расте типы, поэтому если ты хочешь вернуть из метода трейта без боксинга футуру асинковую или замыкание - то тебе придется ощутимо извращаться. В ночном расте получше, но всё равно с приключениями. 2. Отсюда идёт вторая проблема, чтобы вернуть без боксинга подобный тип из трейта, ты в трейте создаешь ассоциированный тип вроде: trait HasIterator { type MyIterator: Iterator<Item = i32>; fn create_iterator(&self) -> Self::MyIterator; } И вопрос, а как выразить то, что у твоего типа &'a self и его итератора будет одинаковое время жизни? Т.е. что итератор зависит от времени жизни текущей ссылки на твой тип? А никак
Doge
Потому что ты в стабильном расте не можешь написать такую штуку: ``` trait HasIterator { type MyIterator<'a>: Iterator<Item = i32> + 'a; fn create_iterator(&'a self) -> Self::MyIterator<'a>; } ```
Doge
Потому что ассоцированных типов, зависящих от других типов пока не завезли (это как раз некое подмножество HKT)
Doge
А прикол в том, что чтобы в расте вернуть из трейта итератор не сделав бокс - тебе нужны: 1. Ассоциированные типы (это аналог type families из хаскеля в неком смысле) 2. Экзистенциальные типы (чтобы назвать неназываемый тип генератора, замыкания или асинка) 3. HKT или Rank2 трейты (если костылём пользоваться) Офигеть как прагматично
Vladislav
Чёт они перемудрили но я понял проблему, странно что итераторы и прочее не являются типами стдлибы или ещё как
Anonymous
звучит так, что чтобы в Расте вернуть итератор из трейта, нужна степень в компютер саенс
Vladislav
типо даже в плюсах не так хуево, учитывая их тоже перемудреное апи
Doge
Чёт они перемудрили но я понял проблему, странно что итераторы и прочее не являются типами стдлибы или ещё как
Ну тут проблема в том, что для каждого замыкания, асинка или генератора генерируется свой тип, который назвать просто так ты принципиально не можешь. Тип есть, компилятор его знает, он им пользвуется, но дать название ты, человек, ему не можешь. И следовательно нормально сослаться на него ты тоже не можешь.
Doge
(В стабильном расте, в ночном можно как раз экзистенциалы подцепить)
Doge
А тип генерируется, чтобы не боксить замыкания, генераторы и т.п. и чтобы можно было их сделать зирокост на статическом диспатче
Doge
Без всяких безумных девиртуализаций в компиляторе
Doge
Проблемы бы не было, если бы можно было сразу дать названия таким типам, но разработчики языка об этом не подумали
Anonymous
А тип генерируется, чтобы не боксить замыкания, генераторы и т.п. и чтобы можно было их сделать зирокост на статическом диспатче
т.е. на выходе получится самый обычный тип, который в свой улословный конструктор получит самым триваиальным образом копии значения/ссылок всего, что ты замкнул?
Doge
Ну и статически диспатчеризованный метод, который содержит в себе логику самого замыкания
Doge
И вся история именно ради статического диспатча этой красоты
Vladislav
А тип генерируется, чтобы не боксить замыкания, генераторы и т.п. и чтобы можно было их сделать зирокост на статическом диспатче
Да, я понял что там анонимные типы плюются, но грубо говоря если смешать лайфтайм из лямбд плюсов и какой-нибудь IEnumerable то можно просто генерировать не хз что а анонимных наследников от этого самого интерфейса, который можно вырезать в компайлтайме
Хаскель
Неужели так можно работать?.. Мне требуется 100% сосредоточение, чтобы ничего вообще не отвлекало, а тут надо будт с ноги на ногу переминаться...
Doge
угу, понятно. звучит круто, конечно, перформанс сумасшедший.
Да, и оно реально отлично компилируется в итоге, но можно было бы сделать это куда более удобно, если дали бы изначально хоть какую-то возможность эти типы назвать. И можно было бы хотя бы без экзистенциалов жить. Уже проще было бы.
Anonymous
отличная инициатива чтобы искать новую работу, да.
спешить-то не надо! гордой плывущей походкой )))
Хаскель
так офигенно работать, прям неожиданно хорошо!
А если нудо думать, не получается что-то, если целый день фтыкааешь в две строки?.. не представляю, как можно стоя сосредоточиться.
Anonymous
можно ж повлиять на развитие компилятора
Anonymous
и садишься
Anonymous
в чем проблема
Doge
а комьюнити не взбунтовалось благородной яростью?!
Комьюнити ждёт фич. Проблема в том, что они в ночной версии компилятора и непонятно когда будут стабилизированы. То есть анонимные типы подобные сейчас можно на ночном называть через impl трейты: type MyClosure = impl Fn(i32) -> i32; fn create_closure(value: i32) -> MyClosure { move |x| x + value } Ну и т.п. с местным HKT в трейтах, тоже есть в ночном, когда стабилизируется непонятно.
Doge
а комьюнити не взбунтовалось благородной яростью?!
А так пока кому нужно либо сидят на ночном, либо боксят, либо пишут руками итераторы и футуры
Vasiliy
Microsoft начал тестирование поддержки запуска GUI-приложений Linux в Windows https://www.opennet.ru/opennews/art.shtml?num=55002
Sergey
А шо там в семёрке? Там интегрированная виртуалка для хп вроде только была
Sergey
На базе какой-то стрёмной вм
Sergey
Ну я просто особо не пользовался этим, хотя и знал что оно есть, поэтому я хз какой там уровень интеграции был
Anonymous
А так пока кому нужно либо сидят на ночном, либо боксят, либо пишут руками итераторы и футуры
А боксинг же насмерть убивает перф? Ведь ты этот код в перфуритикал компонентах используешь.
Anonymous
То есть, в чем смысл тогда.
AlexB
я так в ковид в Черногорию летал, потому что все остальное было закрыто - охуел от цен. Никого блять не было нигде, а пожрать в кафе - 20 евро с человека. В ЧЕРНОГОРИИ БЛЯТЬ
Черногория это разводняк для русских увы. Если бы не бизвиз с ними, туда бы никто не ездил (европейцы и не ездят). Хорватия, например, просто в разы лучше.
Ayrat
так да, в ковид в наших пердях визу не получить, посольства все закрыты были
Ayrat
поэтому пришлось в черногорию
Doge
А боксинг же насмерть убивает перф? Ведь ты этот код в перфуритикал компонентах используешь.
Ну не насмерть, но шансов, что компилятор сможет девиртуализовать методы итераторы куда меньше. А я лично просто сижу на ночном расте фиксированного билда и раз в какое-то время обновляюсь.
Ayrat
больше ни ногой туда
Sergey
А что там совсем плохо? Друг в котор ездил, ему вроде понравилось. А он любитель путешествий, ну то есть вроде было с чем сравнивать. Правда это было лет 5-6 назад
AlexB
больше ни ногой туда
Черногория это одно из 2х мест где мне пришлось дать на лапу менту за 15 лет вождения (предыдущее было в Боснии 2 дня до этого 😅).
Kirill
А правда что в некоторых странах европы ипотечный платеж меньше чем арендная плата? что мешает взять квартиру в ипотеку и сразу начать сдавать, и сделать так n раз?
Ayrat
то есть зазывать кататься на бананах - будут Охуевшие рестораторы - будут Дикие цены - будут Говорят на русском - да
Sergey
А ну норм геленджик прям
Sergey
Что не так я не понял
Ayrat
> что мешает взять квартиру в ипотеку и сразу начать сдавать, и сделать так n раз? её цена
Sergey
Это же и есть море!
AlexB
А правда что в некоторых странах европы ипотечный платеж меньше чем арендная плата? что мешает взять квартиру в ипотеку и сразу начать сдавать, и сделать так n раз?
Например в Ирландии. Можешь сдать, арендатели перестанут платить и года через 3 через суд если тебе повезёт ты сможешь их выселить
Ayrat
Что не так я не понял
ну только то, что я не хочу в Геленджик
Ayrat
понятно, законы защищающие нахлебников
но в целом капиталисты местные так и делают. Строят 5ти этажные ЖК с кучей апартов, не продают, а сдают!
Ayrat
я в таком живу.
Ayrat
Денег они гребут камазами, не успевают вывозить
AlexB
А правда что в некоторых странах европы ипотечный платеж меньше чем арендная плата? что мешает взять квартиру в ипотеку и сразу начать сдавать, и сделать так n раз?
Но вообще многие так делали до 2008, когда банки раздавали кредиты пачками, а потом печально банкротились. В предыдущей квартире у хозяина было 17 квартир вроде набрано, но 2 года назад у него всё банки изъяли.
AlexB
Денег они гребут камазами, не успевают вывозить
Это потому что у них на поток поставлено, юристы и прочие каналы где надо чтобы неплательщиков прижимать. Частника всё это может быстро разорить.
Doge
каких?
Если удачно всякие апарты покупать, то вообще не проблема
Doge
Но тут не бездумно надо действовать, это да
Ayrat
Так ты на первый взнос денег найди
а потом купи вот это https://www.daft.ie/for-sale/detached-house-ringcurran-cottage-ardbrack-kinsale-co-cork/2918501
Ayrat
И сдавай!!1
Ayrat
В - ВЫГОДА
Mikhαil
а потом купи вот это https://www.daft.ie/for-sale/detached-house-ringcurran-cottage-ardbrack-kinsale-co-cork/2918501
Отличный дом. Архитектурный памятник в самом центре окраин трущоб пригорода Дублина
Ayrat
!!11