Ayrat
Логгер без эффектов не логгер. Логировать православно только так for { logger <- getEffectfulLoggerWithEffects() _ <- logger(...) } И такую портянку предлагают писать везде. Из плюсов предлагают контроль эффектов
Ayrat
Из минусов все остальное
Dr. Friedrich
С таким кодом сразу полезай в печь
Ayrat
Ну и все на тайпклассах да. Этот эффектфул логгер в тофу выводится для типа из инстанса тайпкласса
Dr. Friedrich
взывает
Dr. Friedrich
Вон там на фоточке даже кусочек этого логгера можно увидеть
Ayrat
Ну короче там маразм, а автор упорот и не понимает какую дичь творит
Ayrat
Он даже доку не пишет, потому что "тайпклассы самодокументируемы"
Ayrat
как же хорошо в нашем уютном фшарпе
В целом можно не трогать всю эту котовую ссанину и жить нормально, но vocal minority скалы тащат её туда очень активно. А скала чате 1600 тел, активно как всегда полтос, из этого полтоса подавляющее большинство дрочат на котов
Ayrat
@DogeShibu на страже!
Roman
но рано или поздно обнаружатся фатальные недостатки тофу, и придется написать новые эффективные дырки
Ayrat
У вас дыркофобия
Я считаю это бойлерплейт
Ayrat
Из разряда паттерна репозиторий и юнит оф ворк
Vladislav
все эти дырки звучат как типизированные абстрактные билдеры для абстрактных билдеров
Ayrat
Нужен одному из сотни, но делают все потому что не понимают
Doge
Я считаю это бойлерплейт
Не совсем, это кусок стандартной хаскелевский архитектуры приложений, которой более-менее в скале работает
Ayrat
Я кстати за тайпклассы, хочу их, но обмазывать ими все не буду
Vladislav
Я кстати за тайпклассы, хочу их, но обмазывать ими все не буду
ну я пока один реальный кейс у нас видел для кодгена
Doge
Я кстати за тайпклассы, хочу их, но обмазывать ими все не буду
Ну они не всегда и удобны. Бывает удобнее трейтами (скала), дин трейтами (раст) или рекордами функций (хаскель) работать
Ayrat
Ну вот рекордами функций я уже работал в фшарпе. Вербозненько
Doge
Ну вот рекордами функций я уже работал в фшарпе. Вербозненько
Ну в фшарпе это и не надо, есть интерфейсы же
Doge
В хаскеле у тебя их нет
Ayrat
Тайп классы я хз как в дотнете сделают, но если можно будет к старыми BCL типам свои интерфейсы докинуть или даже не свои, будет здорово. Но я чот в них сомневаюсь
Ayrat
Точнее не доделали
Ayrat
А в фшарпе судьба недоделанных PR не завидная
Dr. Friedrich
А в фшарпе судьба недоделанных PR не завидная
Сайм пинает его, буквально на днях был последний коммит.
Vladislav
сртп же нихуя не дебажится
Ayrat
fslang-design/FS-1043-extension-members-for-operators-and-srtp-constraints.md at master · fsharp/fslang-design https://github.com/fsharp/fslang-design/blob/master/RFCs/FS-1043-extension-members-for-operators-and-srtp-constraints.md
Dr. Friedrich
сртп же нихуя не дебажится
Хз, вроде всё ок было
Ayrat
Хз, вроде всё ок было
В инлайн методы бряки не ставятся
Dr. Friedrich
Ayrat
Нет.
А про что?
Dr. Friedrich
А про что?
Хотя погодь. Да, про это.
Ayrat
Хотя погодь. Да, про это.
Даже РФЦ пустоват. Есть сомнения, но хочу верить
Vladislav
Не ставятся
Dr. Friedrich
Читаю там про какие-то операторы, вроде не то сначала показалось
Vladislav
Не точнее там ставятся но не работает
Vladislav
По очевидным причинам
Ayrat
По очевидным причинам
На самом деле мне кажется можно поправить
Ayrat
Если дебаг инфу по-другому генерить
Ayrat
Ну типа мапу символов направлять на инлайн метод Хотя если он в другой сборке без сорцов то пизда. Да, не взлетит
Dr. Friedrich
Ну типа мапу символов направлять на инлайн метод Хотя если он в другой сборке без сорцов то пизда. Да, не взлетит
Если он в другой сборке без сорцов, то что ты вообще хочешь там отлаживать, куда брейкпоинт-то ставить?
Ayrat
Я регулярно бряки в глубокий говнокод ставлю
Ayrat
Как?
Ну типа ставишь бряку в какую-то срань драйвера, запускаешь, а оно работает
Dr. Friedrich
Я не уверен, что инлайн метод в котлине можно отладить без сорцов.
Dr. Friedrich
Ну типа ставишь бряку в какую-то срань драйвера, запускаешь, а оно работает
Ты ставишь бряку в код. В описанной тобой ситуации, в какой код ты её поставишь, откуда он возьмётся?
Dr. Friedrich
Напомню, у тебя вызов инлайн функции без сорцов, код ты можешь только из метаданных сборки вытащить, а для них пока нет декомпилятора вообще.
Ayrat
Я ж написал выше ту же мысль
Dr. Friedrich
Так я и говорю что с инлайном не взлетит
Так это не в отладчике проблема, а только лишь в декомпиляторе.
Ayrat
Ааа, ты подумал что я сказал что идея ставит бряки в чужой инлайн код. Но я это не имел в виду
Dr. Friedrich
Научимся декомпилировать метаданные — можно будет и отлаживать их.
Ayrat
Так это не в отладчике проблема, а только лишь в декомпиляторе.
Декомпилятор как допрет что некий кусок байткода был заинлайнен и откуда?
Dr. Friedrich
Хотя, если честно, я с трудом представляю такую ситуацию в реальности.
Ayrat
Причем этот кусок байткода может быть тривиальным сложением
Dr. Friedrich
У него есть стек. По стеку видно, что мы зашли в инлайн вызов
Dr. Friedrich
Если сам код инлайна достать из метаданных, то проблема в сущности решена.
Ayrat
А в чём проблема?
Ну вот у тебя большой кусок IL, и там где-то в середине сложение двух чисел самым примитивным способом. Какую метадату и где надо намазать чтобы декомпилятор именно это сложение декомпилировал в вызов другого (инлайн) метода?
Dr. Friedrich
По нему я вижу, что я внутри инлайна, ок?