Dr. Friedrich
Или это оверрайд какой-то? Тут я мб туплю действительно
Viacheslav
Doge
Viacheslav
Ох уж эта современная вёрстка
Dr. Friedrich
Короче, мне на этом примере действительно смысел непонятен, почему это должно быть лучше,
Dr. Friedrich
На прошлом ICFPC мы пытались использовать Scala, и сдуру взяли fastparse
Dr. Friedrich
А он как раз в таком вот стиле написан
Dr. Friedrich
def number[_: P]: P[Int] = P( CharIn("0-9").rep(1).!.map(_.toInt) )
Dr. Friedrich
Это разные P или одна и та же?
Dr. Friedrich
А хрен разбери!
Крылатый
Dr. Friedrich
В итоге что-то набросали, а потом пукнуть в его направлении боялись — при любом мельчайшем телодвижении там всё разъёбывало, и не отладить
Dr. Friedrich
И это ещё лайтовый случай, да
Dr. Friedrich
@DogeShibu, о, у меня серьёзный вопрос
Dr. Friedrich
В Scala3 сделают using, наконец?
Doge
А зачем val console = test?
Это уже чисто зио-проблемы.
А так вон, в хаскеле было бы:
do
test <- TestConsole.makeTest TestConsole.defaultData
provide test
out <- test.output
assert $ ...
Одно и то же по сути, а так просто придирки по синтаксису выходят
Dr. Friedrich
Dr. Friedrich
Вроде всё понятно.
Doge
Dr. Friedrich
https://github.com/codingteam/icfpc-2019/blob/5e625d27a36abfca8443f1bf94b847d86b13af23/src/main/scala/org/codingteam/icfpc2019/AppEntry.scala#L292-L295 а вот тут даже бага была — я по первости закрывал не то
Dr. Friedrich
Ayrat
Даже в жабе есть
Dr. Friedrich
Кажись, там только для AutoCloseable это работает?
Dr. Friedrich
Но уже лучше, чем в Scala.
Крылатый
Ayrat
Dr. Friedrich
Dr. Friedrich
Который вечно отставал от компилятора на одну мажорную версию
Dr. Friedrich
И поэтому его абсолютно невозможно было использовать
Dr. Friedrich
Почему-то обычный Closeable не осилили
Ayrat
Dr. Friedrich
А в легаси коде про AutoCloseable не знали
Dr. Friedrich
И поэтому приходится делать «ехал враппер через враппер».
Dr. Friedrich
Кажись, там ещё с исключениями был какой-то идиотизм
Dr. Friedrich
Closeable::close кидает IOException, а AutoCloseable::close кидает Exception
Dr. Friedrich
Ну, тут, кажись, получше таки сделали
Dr. Friedrich
Попытались исправить ошибки прошлого
Dr. Friedrich
Dr. Friedrich
scala-arm так вообще кастомный деструктор позволял определить, кажется
Dr. Friedrich
Вообще прям ракетная наука
Dr. Friedrich
Ребят, знаете, что охуенно?
Dr. Friedrich
Стабильность — это охуенно
Dr. Friedrich
По сей день scala-arm до сих пор отстаёт от компилятора на одну мажорную версию :)
Dr. Friedrich
Казалось бы, релизный цикл Scala ощутимо забуксовал с 2016 года
Dr. Friedrich
Поэтому мейнтейнерам ценою нечеловеческих усилий пришлось забуксовать так же сильно
Ayrat
Ayrat
Не получалось
Dr. Friedrich
> 2.13 already has try-with-resources.
O____O
Ayrat
Doge
Dr. Friedrich
Dr. Friedrich
А вот 2.12 вышла в ноябре 2016 года, там была пробуксовочка
Dr. Friedrich
Щас норм
Ayrat
Dr. Friedrich
Ну т.е. 2.12 vs 2.13
Ayrat
Понимаю
Dr. Friedrich
Потому что там же тупо зделоно, нужно всё перекомпилять
Ayrat
Да вроде и в пределах 2.хх нужен кросскомпайл
Ayrat
Пакеты особо под 2.11 или под 2.12 тут и там
Ayrat
У - удобно
Dr. Friedrich
Dr. Friedrich
Под 2.13 нужно перекомпилять
Ayrat
spark-json_2.11:1.2.3
Dr. Friedrich
Под 2.13.3 — нет
Dr. Friedrich
Слава кт-лху
Ayrat
Да, в скале йобнутая экосистема
Ayrat
Но местные терпят
Dr. Friedrich
Ты просто не видал scala.js
Dr. Friedrich
Это там ёбнутая
Dr. Friedrich
А в основной скале ещё можно жить в сравнении с этим
Danil
https://twitter.com/davidfowl/status/1281979493612044288?s=19 😏