Евгений
@qnikst, ты, кстати, до сих пор gentoo developer?
Alexander
формально да, по факту очень inactive
Евгений
А кто openrc пилит щас?
Alexander
williamh и ещё компания
Alexander
там прикольные ребята пришли
Alexander
с williamh невозможно работать : (
Евгений
define "невозможно"
Alexander
у него свой взгляд на жизнь PR могут висеть годами, и он их может хотеть передалать почти полностью введя кучу проблем
Alexander
у меня так с cgroups было
Alexander
я конечно тоже "молодец" криво сделал
Alexander
там из debian/debian-like люди подключились им удается лучше общий язык найти
Alexander
нет
Alexander
если про openrc
Alexander
к сожалению
Alexander
в итоге я долго вообще жил со своим форком openrc
Alexander
но там мелочи, из меня сишник не очень хороший
Евгений
Про openrc. Про haskell overlay я с тебя спрошу, когда у меня очередь раз развалится полсистемы после обновления ghc
Alexander
рекурсивных сабслотов так и не довезли, без них печалька
Евгений
Рекурсивных это как? Звучит тьюринг-полно, т.е harmful
Alexander
A->B->C (зависимость по сабслотам), если A меняет версию, то ретригерриться должны и B и C
Alexander
сейчас только B
Alexander
соотвественно C - ломается
Alexander
сейчас это не выражается в зависимостях, а это именно то, что нужно хаскелю
Alexander
с другой стороны сабслоты сейчас в солвере ужасно реализованы, там шаг backtracking алгоритма на каждый сабслот
Alexander
в итоге когда 900+ пакетов стоит то все ломается
Alexander
в итоге кол-во шагов бактреккига нужно или в очень много ставить или наоборот и в получучном режиме обновлять
Alexander
haskell-updater — ghc иногда помогает
Евгений
Удобно (нет)
Евгений
Хоть ставь всё в локальный стак
Alexander
ну haskell-updated правильный порядок хотя бы дает
Alexander
вообще все печально
Alexander
terminateProcess :: ProcessHandle -> IO () <- кто-нить знает system agnostic аналог, который будет SIGKILL слать на юниксах?
Alexey
А есть ли способ объявить несколько data type в одном модуле чтобы у них были одинаковые имена полей? Эти имена не используются на прямую, но используются аесоном.
Alexander
пока нельзя, aeson можно TH инстансы делать, там можно модификатор передать
Alexander
TH все равно лучше работает, иногда даже быстрее (при компиляции), чем generic deriving и всегда быстрее в runtime
Alexander
да
Max
когда?
Alexander
https://prime.haskell.org/wiki/TypeDirectedNameResolution
Alexey
TH?
Alexander
будет понятная ООП-ным программистам точечка
Alexander
вообще там какие-то куски этого уже в 8.0, 8.1, 8.2 появились (я никогда не интреселовался)
Alexey
да бог с ней с точечкой... без нее норм, но нужно же метаданные передать о полях
Max
будет понятная ООП-ным программистам точечка
даже не в этом, меня каждый раз напрягает придумывать имена для одинаковых сущностей
Alexander
@l3h3r TemplateHaskell
Max
очень не нравится такое
Alexander
зачем думать, если первые буковы от типа и имя поля
Alexey
это не всегда так.
Alexander
` Foo = Foo { _fooIndex :: } FooBar = FooBar { _fbIndex :: } ``
Max
очень жизнь портит
Alexander
ну да, портит, не знаю очень ли
Alexey
вообщем только писать вручную инстанцы? ну или TH
Max
ну и неймспейс опять же засирается
Max
зачем мне в текущем неймспейсе вот это вот всё из определения типа?
Alexander
https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedRecordFields?redirectedfrom=Records/OverloadedRecordFields/Plan
Alexander
DuplicateRecordFields <- во, это минимальный нужный зверь
Max
о, норм
Max
не знал про такое
Alexander
https://downloads.haskell.org/~ghc/master/users-guide/glasgow_exts.html#duplicate-record-fields
Alexander
since 8.0.1
Alexander
https://downloads.haskell.org/~ghc/master/users-guide/glasgow_exts.html#ghc-flag--XDisambiguateRecordFields
Alexander
@l3h3r смотри, в твоём доме счастье, можно уже сейчас использовать, если багов нету во всяких Generic
Alexey
ща попробую
Alexander
но использовать TH все равно советую
Alexander
https://hackage.haskell.org/package/aeson-1.2.1.0/docs/Data-Aeson-TH.html
Alexey
ок, посмотрю
Alexey
а как этот TH подебажить? вроде пишу все правильно, а ничего не работает. как будто не генерит инстанц вообще
Alexey
да я бы с удовольствием отказался... мне так-то нужно всего лишь json с полем с именем type сделать
Alexey
но почему-то способа кастомизации имен а аесона нет. только через TH
Max
в х-е ты обязан делать json только с одобренными ребе именами полей. и не больше одного поля с одинаковым именем в одном модуле
Alexey
это я уже полечил )
Alexey
у меня все еще есть надежда, что я делаю чтото не так и есть простое решение :)
Artyom
> способа кастомизации имен а аесона нет как нет?
Artyom
instance ToJSON Kaka where toJSON x = object [ "type" .= kakaType x, "value" .= kakaValue x ]
Artyom
а если через генерики, то тоже можно кастомизировать
Artyom
https://artyom.me/aeson#generics-customising-field-names
Artyom
пишешь genericParseJSON defaultOptions{...} и там можно к именам полей применять любую функцию перед сериализацией/десериализацией