Alexander
но это такие мелочи
Alexander
пока не 100% тестов и не оттесчено в работе
Quet
шанс контрибутнуть в обе библиотеки ))
Alexander
в highlevel так точно
Quet
а то прям such haskell.. две либы и обе сырые
Alexander
ну raw я доволен, ей хотя бы пользоваться можно
Quet
хотя конечно lmdb не то чтоб супер-популярная штука
Alexander
c highlevel непонятно что делать
Alexander
я понимаю даже почему они сделали так, как сделали
Quet
почему?
Alexander
они пытались абстрагироваться и подстроить под свои кейсы
Alexander
апи у lmdb вообще такой что там удобно писать свои прокси под свои задачи
Alexander
а как его сделать обобщенно - непонятно
Quet
задачи сделать так чтобы через хаскельный интерфейс были видны все фичи у них не было?
Alexander
для этого raw
Alexander
не похоже что у highlevel эта задача была
Quet
надо взять от highlevel все хорошее и притащить в тот другой пакет )
Alexander
надо придумать, что делать с Multi$Type и Type
Alexander
которые там дублируются не по делу
Alexander
и тупым дефолтам. типа если env RW то и транзакция RW
Alexander
если транзакция RW то именованные базы мы создаем
Quet
а они делают Multi для DUP баз что ли?
Alexander
да
Alexander
причем у них курсор тоже Multi и обычный
Alexander
неожиданно
Quet
кунг-фу на типах у авторов оказалось недостаточно сильное ))
Alexander
угу
Alexander
или например есть на уровне типов кайнд ReadWrite / ReadOnly
Alexander
оно логично
Alexander
но почему-то все RO операции не полиморфные по нему
Alexander
хотя они и в RO и RW работать могут
Quet
сделай issue авторам с предложением ) мож там активные люди
Quet
@qnikst слушай, а где у них ffi делается? чет смотрю либу и никаких там foreign import
Alexander
foreign import ccall safe "lmdb.h mdb_get" _mdb_get :: Ptr MDB_txn -> MDB_dbi -> Ptr MDB_val -> Ptr MDB_val -> IO CInt
Alexander
https://hackage.haskell.org/package/lmdb-0.2.5/docs/src/Database-LMDB-Raw.html#mdb_get
Quet
нене, а в хайлевеле?
Alexander
кстати ccall лучше не надо лучше capi
Alexander
хайлевел же на основе лоу-левела
Quet
аа, блин
Quet
тогда точно начинать допиливать с лоу левела
Alexander
от лоу-левела я хочу чего-то больше похожего на zerocopy
Alexander
совсем-то не получится т.к. модель объектов в памяти другая
Alexander
влоть до того как компакты придут
Ruslan
Всем доброго утра
Ruslan
кто-нибудь работал с shake? использовал add/askOracle?
Anatolii
кто так быстро среагировал на спам?:)
Dmitry
тут удобно, всё делается одним правым кликом
Quet
@voidlizard не участвуешь в специальной олимпиаде? http://maxim.livejournal.com/503548.html
Dmitry
неа
Dmitry
В соответствии с новым законопроектом сборщики мусора в работающих на территории РФ Java-машинах обязаны хранить данные в течение полугода.
Dmitry
интересно, хаскела это касается или нет
Misha
конечно, теперь надо будет все вычисления заворачивать в специальную монаду, которая все будет будет отправлять товарищу майору
igo
лол
Vladislav
В Советском Союзе Хаскелл бы запретили, потому что ленивые вычисления противоречат идеологии максизма-ленинизма.
Serghei
https://www.evernote.com/l/ALH5zThdaxBEeqn5nZ4yCHVlyAojBHaSCb0B/image.png
Misha
FsbT наверное
Misha
моноид
Dmitry
А нету ли у нас чего-нибудь подобного xpath по семантике для запросов по ADT ? Ну, что-то типа линз, только создаваемое в рантайме?
Alexander
Либы нету, при желании можно накостылять, но или это будет сильно небезопасно, или придется typeable или даже инфу от generic таскать чтобы имена полей ловить
Dmitry
зайдем с другой стороны
Dmitry
ну почему небезопасно? если у нас есть какой-то a , нам надо сделать какой-то query a "/employees[*]/name" ну и что такого, если не сматчится? вернем Nothing
Dmitry
или так: query a "/employees[name="Вася"]/salary"
Alexander
Тебе нужно будет чуть-ли не по raw памяти бегать
Dmitry
но почему?
Alexander
А хорошо я с Dynamic можно наверное
Alexander
Map Name TypeRep и cast к нужному типу
Dmitry
что если для такого доступа достаточно какой-то там тайпкласс заимплементить для всех типов, которые в это входят? может, в сторону Generic или Data надо копнуть?
Alexander
Data я вот кстати не знаю, может там изкоробки есть
Alexander
Generic чтобы генерировать поля для языка и функции
Alexander
Я бы так накостылял, но я у компа только завтра буду
Dmitry
посмотрю, что за Dynamic
Alexander
Это просто data D = forall x.typeable x => D x
Dmitry
т.е я подобное делал для валидации модели TR-069 но там кажется был один тип
Alexander
+-
Alexander
Слушай, я точно попробую такое запилить, оно мне может быть нужно
Dmitry
да оно всем нужно, это ж будет linq для х-ла
Dmitry
удивительно, что нет такого
Alexander
Я знаю как сделать для фиксированного числа типов
Alexander
Как совсем linq сделать я не знаю, без плагина