A64m
на реддите тем временем иксперт уже комментирует проблему GND с join > Yikes, I really hope GND is really worth all this additional complexity. I can't help thinking that Coercible should have been done at the value level and we should just have accepted a small amount of boilerplate.
Denis
У меня есть парсер, который как конечный автомат со стеком реализован, мне нужно на его интерфейс все остальное натянуть.
Влод
точнее совсем не ast а какая-нибудь таргетная структурка и он её хочет сразу собрать
Denis
видимо у него ast не очень
там нет AST, это sax-парсер
Denis
а так да, мне нужно сразу собрать итоговую структуру
Влод
ну примера ты всё равно не приводишь
Denis
пробую это на продолжениях сделать, мозг вскипает
Denis
да вы надоели уже
Denis
дайте поработать
Denis
сижу работаю
Denis
покажи пример, докажи что не верблюд
Влод
вот предположение: парсер в ходе работы что-нибудь считатет. строки на которых что-нибудь встречается. там нужно прибавлять к некоторому полю соотвественно это поле апдейтится
Влод
обычно просто апликативно/альтернативно парсишь в свою кайнд-оф-аст и по ней проводишь редьюсы в итоговую структуру
Denis
тут не так, тут поток ивентов идет и надо на continuations(иначе я не представляю как) сразу свинтить итоговую
Denis
т.е. получаешь ивенты вида “открывается тег foo”, “закрывается тег foo”, “нашел текст: bar”
Denis
AST не собирать промежуточное - одна из целей этого упражнения как раз
Влод
а как выглядит эта функция которая тебе ивенты кидает? (я то тебе точно не помогу просто из интереса)
Влод
там наверное мог бы быть writer или state но тебе жалко апдейтить
Denis
я в streaming обернул просто: т.е. Stream (Of SaxEvent) m ()
Leonid 🦇
А ты делай sax до уровня нужного элемента, потом собирай кишки в дом и парси дом
Leonid 🦇
Будет бест оф ту волдс
Denis
Будет требовать решения где дом начинать при таком подходе
Denis
Т.е. нельзя просто структуру нарисовать и сказать «распарси»
Alexander
я примерно так делал, но это не идеально
Leonid 🦇
Если у тебя поля в случайном порядке то я даже не знаю как быть
Alexander
собирать стейтмашинку, которая парсить будет
Alexander
надо бы таки запилить вечером
Dmitry
#anime а вот может кто-то проконсультировать по курощению постгреса?
Alexander
а что там именно, у нас слегка постргреса есть
Dmitry
ускорить запись очень большой таблицы с GIN индексом
Alexander
ой
Dmitry
точнее так - почему ручной шардинг не ускоряет значительно запись (много ядер, SSD)
Misha
точнее так - почему ручной шардинг не ускоряет значительно запись (много ядер, SSD)
checkpoint_* параметры подкрутить? дефолтные обычно очень скромные
Dmitry
имеет ли смысл шардить если у нас физически один SSD
Dmitry
А gin-индексы могут какую-то одну область использовать для внутренних нужд и лочить её? Потому что у нас получается параллельно создавать btree индексы. А вот gin - нет
Denis
собирать стейтмашинку, которая парсить будет
стейт-машину я сделал со стеком
Denis
мне поверх теперь надо остальное навернуть
Vitaly
Скажите, почему cabal может не давать мне последнюю версию пакета? Вот тут 1.4.1: https://hackage.haskell.org/package/graphmod а мне дают максимум 1.4, а если я явно прошу 1.4.1, говорят, что нету. Сам cabal вроде свежий, update делал. $ cabal —version cabal-install version 2.0.0.1 compiled using version 2.0.1.0 of the Cabal library
Vitaly
1.4 не собирается, там 1.4.1 как раз переделывалась под GHC 8.* и Cabal 2.0
Cheese
cabal update пробовал?
Vitaly
Делал
Vitaly
cabal list говорит, что последняя 1.4
Cheese
у меня 1.4.1 сама пришла, даже без update
Vitaly
ну да, она с 2 января там
Vitaly
А что у тебя в cabal —version?
Cheese
может, она в локальной базе ghc как-то помечена выключенной?
Cheese
$ cabal -V cabal-install version 1.24.0.2 compiled using version 1.24.2.0 of the Cabal library
Cheese
(обычный убунтовый cabal)
Leonid 🦇
какой древний
Vitaly
Странно. Загруженные сегодня на Hackage пакеты отлично отдаёт.
kosc
/stat@combot
Combot
combot.org/chat/-1001043143583
кана
как в стеке обновить ghc до 8.4?
Alexander
выбрать нужный снапшот
кана
ясно, там еще даже ночная сборка на 8.2.2
A64m
как в стеке обновить ghc до 8.4?
https://www.reddit.com/r/haskell/comments/808vfa/ghc_841rc1_available/duttkdc/
Alexander
но можно просто использовать shell.nix + cabal-install
A64m
но ничего нормально не будет работать наверняка замечание было про стек, но подозреваю что с никсом будет также, там надо специальный лейер хекеджа подключать чтоб что-то нормально собиралось
кана
но можно просто использовать shell.nix + cabal-install
я все хочу, но сложно вкатываться во что-то новое (кабал, никс)
Alexander
причем nix можно в любой дистр поставить
Alexander
он параллельно дистру жить будет, это более лайтовый вход
кана
никс я поставил через brew, в PATH ничего не попало из-за fish, нужно переписывать баш-скрипт на фиш
Alexander
ой макось
Alexander
тогда там может быть сложнее
Alexander
хотя у нас есть кто использует
кана
да полагаю с fish такие же проблемы будут и на линуксе
кана
внезапно universum не экспортит writer @chshersh, почему так, редко используется?
Vitaly
Странное дело: у меня в package index кабаловском отстутствуют все пакеты, загруженные на Hackage с 27 декабря по 6 января.
Vitaly
Создал нового пользователя, сделал ему с нуля cabal update — там всё есть
Алексей
Нюкни ~/.cabal
Алексей
Там что-то испортилось
Vitaly
Ага, мне как раз интересно, что именно пошло не так, у меня тут расследование
Alexander
а там был косяк временный какой-то
Alexander
в кафе писали
Vitaly
Ага, нашёл https://mail.haskell.org/pipermail/haskell-cafe/2018-January/128385.html, спасибо!
A64m
я все хочу, но сложно вкатываться во что-то новое (кабал, никс)
что точно работало это такой вот кабал.проджект файл with-compiler: ghc-8.4.0.20171214 allow-newer: all packages: . repository head.hackage url: http://head.hackage.haskell.org/ secure: True root-keys: 07c59cb65787dedfaef5bd5f987ceb5f7e5ebf88b904bbd4c5cbdeb2ff71b740 2e8555dde16ebd8df076f1a8ef13b8f14c66bad8eafefd7d9e37d0ed711821fb 8f79fd2389ab2967354407ec852cbe73f2e8635793ac446d09461ffb99527f6e key-threshold: 3 только вместо беты версия релиз кандидата, ключевая деталь тут хекеджевый лейер с патчами для 8.4
кана
есть ворнинг, что "" дефолтно [Char] выбирается, но нужно явно аннотировать (из-за OverloadedString очевидно), но почему он возникает, если результат явно как String задан? Он не может вывести?