Dr. Friedrich
Я сам лично на это уже не один раз натыкаюсь, и приходится таскать свой волшебный жезл Utils.scala из проекта в проект 🤷‍♂️
Dr. Friedrich
Это издевательство, вот ей богу.
Dr. Friedrich
Это ещё одна причина, по которой такую ерунду нужно иметь в стдлибе
Dr. Friedrich
Хотя у нас в F# тоже есть несколько таких же продолбов в разных местах стдлибы (одно из них — таски, которые как раз сейчас Сайм пытается залатать).
Dr. Friedrich
Но таски — это хотя бы крупная задача, а не какой-то паршивый юзинг :)
Hog
Устроили тут филиал, понимаешь!
Dr. Friedrich
Устроили тут филиал, понимаешь!
В топике написано, что тут про башкиров и про Скалу.
Dr. Friedrich
И вроде как надо одно с другого сбросить?
Dr. Friedrich
Но я не читатель, не специалист
Dr. Friedrich
по этим вашим топикам. :)
Hog
Я сам лично на это уже не один раз натыкаюсь, и приходится таскать свой волшебный жезл Utils.scala из проекта в проект 🤷‍♂️
Почему нельзя сделать какой-нить приватный репозиторий пакетов и таскать оттудова?
Dr. Friedrich
Dr. Friedrich
Это ж ещё мейнтейнить
Dr. Friedrich
Прости оспаде, под каждую минорную версию скалы обновлять.
Hog
Да уж
Dr. Friedrich
Я не вижу, почему я с этим бы справлялся лучше, чем настоящий мейнтейнер настоящего скалошного компилятора
Dr. Friedrich
Который не всегда справляется с аналогичной задачей по отношению к либе scala-arm.
Dr. Friedrich
Кросскомпайлер жеж
А что кросскомпайлер?
Dr. Friedrich
Он меня как-то избавит от гойловной боли пересобирать либу под каждую минорную версию Скалы?
Dr. Friedrich
Ну, минорную — это не так стрёмно, как кажется, это под 2.12 и 2.13, например,
Dr. Friedrich
scala-arm под 2.13 всё ещё нету, кстати :)
Dr. Friedrich
Dr. Friedrich
Я попробовал нагуглить и нашёл вот этот показательный тред: https://www.reddit.com/r/scala/comments/83yn44/scala_trywithresources/dvmgwtf/
Doge
Там есть юзинг?
Не, но там куча достаточно часто нужных мелочей встречается. Вместо юзинга там есть Resource, но не факт, конечно, что под твои юз кейсы подойдёт.
Dr. Friedrich
Не, но там куча достаточно часто нужных мелочей встречается. Вместо юзинга там есть Resource, но не факт, конечно, что под твои юз кейсы подойдёт.
Мне просто нужна функа вида def using[T <: Closeable, R](r: T, f: T => R): T = try { f(r) } finally { r.close() }, вот и всё, я же не прошу каких-то супер сложных вещей :)
Dr. Friedrich
В треде выше cats-адепт её написал, но обвешал какой-то шелухой. Ему говорят: мол, зачем? А он в ответ: The JVM world is fundamentally flawed.
Dr. Friedrich
Славно поговорили :)
Dr. Friedrich
https://github.com/typelevel/cats-effect/pull/113 — во, а вот тут более прилично, кажется
Dr. Friedrich
Правда, я в примере использования ни рожна не могу понять, но чем-то похоже на то, что надо %)
Dr. Friedrich
https://github.com/pathikrit/better-files/ всё, ок, вот частичное решение для файлов
Dr. Friedrich
for comprehension — норм
Doge
Правда, я в примере использования ни рожна не могу понять, но чем-то похоже на то, что надо %)
Я и сказал, что можешь посмотреть Resource из cats, но он требует какой-нибудь эффект использовать, так что для стандартного ОО использования не пойдет
Dr. Friedrich
Я же не иерархию каких-то там классов строю, я просто хочу закрывать файл после чтения.
Dr. Friedrich
Это, гм, ну, типа, императивное использование, наверное?
Dr. Friedrich
И я понимаю, что в мир чистых функций то, что мне хотелось бы, не очень вписывается, это нормально.
Anonymous
народ, а что такое "тулинг"?
Vladislav
Tooling
Hog
Tooling
Нормально перевёл!
Андрей
народ, а что такое "тулинг"?
хаскелистов тут ещё не хватало
Doge
народ, а что такое "тулинг"?
Набор средств для разработки: IDE, системы сборки, линтеры, анализаторы, отладчики, профилировщики и т.д. и т.п.
Anonymous
ончо
Крылатый
Doge
Лучший перевод, если одним словом
Shub
Но блин идеология, как оно всё интегрирует друг с другом — это прекрасно.
если б только они документацию по derivations внятно написали
Dr. Friedrich
Ну я как-то по примерам делал свои пакеты туда.
Dr. Friedrich
С трудом :)
Shub
нууу... мне пакеты делать не надо, мне иногда хочется их venv-like профили использовать. и надо каждый раз гуглить как
Ayrat
Он меня как-то избавит от гойловной боли пересобирать либу под каждую минорную версию Скалы?
Я пока ещё не настолько оскалился, поэтому неясно почему это надо?
Dr. Friedrich
Я пока ещё не настолько оскалился, поэтому неясно почему это надо?
Ой, там какие-то мутные гарантии бинарной совместимости, поди разбери %)
Dr. Friedrich
В целом кароч надо
Dr. Friedrich
Shub
Я пока ещё не настолько оскалился, поэтому неясно почему это надо?
нету совместимости abi между версиями. даже между патч версиями
Shub
в понве рассказывали офигительные истории про 27 видов АСТ, мол, наконец-то ПОЧИСТИЛИ
Ayrat
нету совместимости abi между версиями. даже между патч версиями
Ну да, я мог бы догадаться что для скалистов слова обратная совместимость - пустой звук.
Ayrat
Сайм-то молодец
Shub
типа для кого-то - не пустой
Ayrat
типа для кого-то - не пустой
Ну вот товарищи в дотнете пекутся регулярно
Shub
так и в скале пекутся. ближе к зиме обещали завести
Shub
что слегка улучшает ситуацию: в скале миграция на новую версию - это Событие
Shub
раз в жизни проекта бывает, если бывает
Shub
но вообще да, там своя атмосфера
Doge
что слегка улучшает ситуацию: в скале миграция на новую версию - это Событие
Ну да, они достаточно редко выходят, да и не всегда смысл переходить в рамках уже готового проекта имеется.
Shub
Ну да, они достаточно редко выходят, да и не всегда смысл переходить в рамках уже готового проекта имеется.
оно становится важно, когда есть несколько проектов, которые интегрируются через либы
Doge
оно становится важно, когда есть несколько проектов, которые интегрируются через либы
Это да, но кроссбилд у важных опен сорс библиотек обычно есть
Shub
тогда ты должен свои либы собирать под все версии вообще. то есть, появляется релиз-процесс без особо важных на то причин
Doge
А в своих тогда придется кросс билд настраивать
Doge
Я на 2.13 буду переходить, но позже. А то, конечно, нормальных литеральных типов без хаков хочется
Ayrat
Хоспади, какой мрак.
Ayrat
И какую версию надо юзать чтобы не было мучительно больно?
Doge
И какую версию надо юзать чтобы не было мучительно больно?
Если все либы, которые нужны уже настроили кроссбилд в 2.13, то можно её. Если нет - тогда 2.12
Ayrat
Значит 2.12
Hog
Погулял :)