Home
Objective Caml
ocaml@conference.jabber.ru
Среда, 23 ноября 2011< ^ >
ygrek установил(а) тему: OCaml / ОКамл / Камль -- http://caml.inria.fr | http://camlunity.ru/ (теперь с git доступом!) | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв и тормозит, move on | stdlib only? - ССЗБ | Fight FUD with fire
Конфигурация комнаты
Участники комнаты

GMT+4
[00:02:54] <ad1862> gds: мельком просмотрел про work-stealing. ну вроде да, как альтернатива разделяй\властвуй только рабы самомтоятельные
[00:03:21] <ad1862> * самостоятельные
[00:04:22] <gds> да, так, но в окамле это сделать можно лишь имея общий у группы процессов listening socket, по которому каждый раб может получить своё задание, и, опять же, сериализация влияет.
но концепция хорошая.  как бы её заюзать -- даже не знаю толком.  видимо, в полной красе не выйдет.
[00:08:35] <ad1862> труп тянет на дно все перспективные идеи :)
[00:10:18] <gds> окамл сможет даже эрланг утащить на дно!  у эрланга ведь тоже нет wsq!  аааа, надо что-то делать!  спасай эрланг111111
[00:10:18] <bobry> omake не должно было существовать ...
[00:10:25] <bobry> у motti все проекты с ним блин
[00:10:47] <bobry> как и emake, hmake, что там еще? все они должны были умереть 100500 лет назад
[00:11:16] <gds> omake -- да.  посмотри на объём патчей http://overbld.hg.sourceforge.net/hgweb/overbld/overbld/file/9fc3d4f2b5c9/src/omake/patch
[00:12:01] <gds> а, там не только патчи, там ещё и очень извращённая сборка.  не завидую себе пару лет назад.
[00:12:04] <bobry> gds: а ты говорил шо пользовался чем то с type-conv
[00:12:10] <bobry> ты как их в _tags писал?
[00:12:22] <gds> чем-то пользовался, не помню.  тогда я про _tags не знал, вроде.
[00:12:35] <bobry> ок, как ты это собирал? или не помнишь совсем?
[00:12:50] <gds> как-как.  Makefile или bld.bat!11
[00:15:39] ad1862 вышел(а) из комнаты
[00:18:11] schurshik вышел(а) из комнаты: qutIM : Jabber plugin
[00:19:56] arhibot вошёл(а) в комнату
[00:19:59] arhibot вышел(а) из комнаты
[00:23:47] <bobry> оно собирается, надо было прописать в тегах pkg_type-conv.syntax
[00:24:09] <bobry> gds: а ты вообще с camlp4 дело имел?
[00:26:03] <gds> bobry: мало, как пользователь.  Учитывая, что леплю кадастр так, чтобы он мог принципиально жить без препроцессора -- меня не нужно об этом спрашивать, толку мало.  <**/*>:camlp4r -- это хорошо, json-static -- тоже хорошо, но редко.  и всё.
[00:30:46] <bobry>  The quotations which serve as shortcuts for building nodes of the OCaml AST do not use the usual syntax of OCaml, but must be written in therevised syntax.
[00:30:53] <bobry> real nice!
[00:31:18] <gds> для того (для простоты) его и влупили, вроде.
[00:31:26] <gds> для простоты camlp4
[00:32:07] <bobry> ну учитывая что там есть оба синтаксиса, ограничение как минимум странное
[00:33:16] <gds> там != в хрени, парсящей quotations.
[00:43:35] bobry вышел(а) из комнаты
[00:45:32] bobry вошёл(а) в комнату
[01:04:53] Kakadu вышел(а) из комнаты
[01:20:06] ygrek вошёл(а) в комнату
[01:21:57] <gds> ygrek: если есть желание, погляди на спеку, там дофига вопросов ждёт именно тебя.
[01:22:28] <ygrek> original синтаксис достаточно много ambiguite имеет - его кусочно парсить (как нужно квотейшнам) - сложно (если возможно)
[01:23:01] <ygrek> квотейшны в ориджинал писать можно, но там куча багов в самом camlp4 - поэтому я настойчиво рекомендую только revised для этого
[01:23:05] <gds> возможно, но не очень точно получится, и норот захочет уточнений.
[01:23:18] <ygrek> gds: не сегодня
[01:23:28] ygrek уже в отключке
[01:23:55] <ygrek> gds: ты bend'ить умеешь?
[01:23:58] <gds> ygrek: да понятно, ты же рулишь этим делом с точки зрения идеологии и собственно погромирования.
[01:24:57] <gds> ygrek: от струн зависит.  на каустической -- 1/2..3/4 тона, не больше.
[01:25:25] <gds> на ликрической -- вплоть до двух тонов, пока не пойму, что струне сейчас капец :)
[01:27:25] <ygrek> круть
[01:28:28] <gds> хинт: бери палец, который ближе к большому, и им помогай тянуть струну, гораздо легче получается.
[01:28:56] <gds> т.е. надо потянуть 3им на 5ом ладу -- ставь 2ой на 4ом, тяни вместе.
[01:31:04] <gds> и, ясное дело, на малых ладах бендить сложнее, чем на 12ом, физика.
[01:32:51] <gds> кстати, чем в линупсе записывать с микрофона?
[01:32:51] ygrek вышел(а) из комнаты
[01:34:20] ygrek вошёл(а) в комнату
[01:36:00] <ygrek> arecord?
[01:43:20] <ygrek> так что - как насчёт openaren'ы?
[01:43:25] <ygrek> gds:^^
[01:46:51] <gds> ygrek: предупреждаю, с меня тупак.  проверил, запускается, хоткеи ок.  не в курсе я, как там чо с сетевой.  создай и расскажи?
[01:54:03] <gds> 77.235.117.90 порт дефолтовый посмотри через 20сек
[01:55:31] <ygrek> ща
[01:56:50] <ygrek> может лучше какой-то существующий сервер попробовать
[01:57:58] <gds> вариант.  ну, наверное, в приватное надо, если никто не присоединится.
[02:48:21] gds вышел(а) из комнаты
[02:54:56] ygrek вышел(а) из комнаты
[04:31:49] komar вышел(а) из комнаты: Replaced by new connection
[04:31:49] komar вошёл(а) в комнату
[05:19:34] komar вышел(а) из комнаты
[08:17:38] Typhon вошёл(а) в комнату
[09:21:00] bobry вышел(а) из комнаты
[09:21:49] bobry вошёл(а) в комнату
[09:26:31] <bobry> так вот кто мне нужен для camlp4 101 :) ygrek!
[09:26:53] <bobry> кстати дискуссия про будущее odb в #ocaml по всей видимости не состоялась, да?
[10:27:08] bobry вошёл(а) в комнату
[10:59:12] <Typhon> """основные моменты : * обсуждение в чате <http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/2011/11/15.html#12:46:25.86714> * план <https://docs.google.com/document/d/1dxbuu3RP3NCxMI54YFRtnwFUOTrIj-EWmBdwy32a0CI> в google docs""" -> по "план" — ссылка на https://docs.google.com/document/d/1oTwHxu5-nRzGqQ1Jf58ltXZ6Ny2f9wiyA5Rvl-A0bXQ/edit где как будто бы ничего нет, кто знает правильный урл?
[11:03:52] <Typhon> (а, там уже правильный, видимо старую ревизию смотрел)
[11:04:09] <bobry> йома, все что связанно с camlp4 выводит меня из себя
[11:04:30] <bobry> никакой адекватной документации, только туториал 7и летней давности и пара блог постов
[11:04:42] <bobry> лучше бы и не говорили что оно есть вообще
[11:06:24] <Typhon> апи референс ещё есть. и логгер от ермине, в кач-ве примера
[11:06:36] <Typhon> бтв, как комментить в гугледоках? :-)
[11:07:32] <bobry> insert -> comment?
[11:07:55] <bobry> api reference это почти rtfs
[11:16:00] <Typhon> """* Простое подключение других источников, помимо гемов (гисты, просто файлы, альтернативные реализации руби-пакетов).""" — из моего обсуждения с коллегой "православного бандлера" (потому что бандлер рубёвый сраное говно) — а такое нужно в nih-pm, интересно?
[11:20:38] <bobry> Typhon: почему он говно?
[11:22:03] <Typhon> нет групп толковых, медленный, у меня, пожалуй, это основные претензии
[11:23:47] <Typhon> ну и код там такоэ
[11:39:32] gds вошёл(а) в комнату
[11:40:44] ygrek вошёл(а) в комнату
[11:42:48] ermine вошёл(а) в комнату
[11:43:02] <bobry> так, я чувствую специалистов по camlp4 прибавилось
[11:43:20] <bobry> расскажите мне — что надо прописать в _tags / _oasis чтобы заюзать syntax extension?
[11:44:23] <bobry> а то я как дурак вчера весь вечер смотрел на odn / sexplib и компанию — и нифига не смог собрать
[11:51:32] <ygrek> "x.ml": syntax_camlp4o, pkg_sexplib.syntax
[11:52:05] <ygrek> Typhon: да, это решается указанием урлы/репки пакета в nih.config
[11:52:26] <ygrek> это важный для меня юзкейс
[12:23:31] <bobry> ygrek: а если мой extension в пределах этого же проекта?
[12:35:58] <bobry> кстати забавно что батарейки не используют оазис
[12:36:01] <bobry> такой жирный камло-проект
[12:36:09] <bobry> и опять все на мейкфайлах
[12:36:48] <bobry> упс, я похоже не туда смотрел — таки используют, но мейкфайлы тоже в ходу
[12:50:48] <Typhon> там оазис вызывает мейкфайлы %)
[12:51:04] <Typhon> оазис, кажется, либо я добавлял, либо что-то правил
[12:53:01] <bobry> да-да, крутой способ
[12:55:57] klapaucius вошёл(а) в комнату
[13:10:48] shaggie вошёл(а) в комнату
[13:16:03] <f[x]> bobry: если часть проекта - то хз, не пробовал, проще проинсталлить нормальным образом и юзать наверное
[13:16:34] <bobry> f[x]: так будет не очень удобно — я хочу debug environment для упражнений с camlp4
[13:18:06] <f[x]> тогда вручную правила в myocamlbuild добавить - точно будет работать
[13:21:14] <f[x]> вот из древнего проекта:
     flag ["ocaml"; "pp"; "use_openin"] (A"pa_openin.cmo");
     flag ["ocaml"; "camlp4of"] (S[A"-I"; A"+camlp4"]);
     dep ["ocaml"; "ocamldep"; "use_openin"] ["pa_openin.cmo"];
и в _tags:
"pa_openin.ml": camlp4of
"x.ml": camlp4o, use_openin
[13:22:29] <f[x]> ещё в extunix есть такое же использование
[13:22:41] <bobry> я у errmine такое же видел
[13:22:45] <bobry> неужели без этого никак
[13:22:48] <bobry> *-r
[13:24:19] <f[x]> а что тут такого сложного?
[13:24:44] <bobry> сложного ничего, просто писать что-то ручками в myocamlbuild не хочется
[13:24:47] <f[x]> ну подожди пока какой-нибудь добрый человек (aka le gall) запилит генерацию таких правил в oasis
[13:25:11] <bobry> я видел такой issue в трекере, у него было fix versions: 0.2
[13:25:14] <f[x]> таку просто копипастишь три строки и всё
[13:25:55] <bobry> f[x]: а куда именно их вставлять? можешь побольше кусок скинуть?
[13:26:04] bobry совсем не знаком со всей этой кухней
[13:26:33] <f[x]> сразу после OASIS_STOP
[14:00:59] <gds> давайте голым сувать.  Есть проект, есть его зависимости, не присутствующие в системе, но скачиваемые для билда этого проекта.  Текущий термин -- " 'project local' dependencies " -- кое-кому не нравится; если у кого-нибудь есть другие идеи или кому-нибудь он нравится, выскажитесь.  Ещё что не ок, что из двух слов, но обрезка одного из них приведёт к ощутимой потере смысла.
[14:02:06] <Typhon> builddeps? :-)
[14:02:28] <bobry> f[x]: ругается на quotation в pa_*.ml
[14:02:34] <bobry> оч странно
[14:03:08] <f[x]> project local - всё чотко и понятно
[14:03:26] <f[x]> bobry: покажи как собирается этот pa.ml
[14:03:32] <f[x]> camlp4o или camlp4of?
[14:04:09] <bobry> + ocamlfind ocamldep -package camlp4 -package calendar -package binary -syntax camlp4o -pp syntax/pa_bson.cmo -modules examples/world.ml > examples/world.ml.depends
Warning: -pp overrides the effect of -syntax partly
sh: syntax/pa_bson.cmo: Permission denied
[14:04:46] <bobry> поменял в тегах camlp4of на camlp4o — теперь вот такая ошибка
[14:06:21] <gds> Typhon: я криво сформулировал.  хотел спросить про способ установки зависимостей -- можно системно, можно в определённую внешнюю диру, можно в диру проекта.  если первое -- system, второе -- custom, то третье -- вопрос.  "project local"?  предполагается, что это будет аргумент командной строки либо конфига проекта, лучше в одно слово как-то.
[14:06:33] <gds> а то у этих юнипсоедов вечно проблемы с пробелами.
[14:07:09] <f[x]> bobry: покажи tags и myocamlbuild.ml - что-то накрутил
[14:07:30] <Typhon> bundle / vendor / local
[14:07:50] <bobry> f[x]: https://gist.github.com/1388328
[14:07:56] <bobry> так а шо —local и все
[14:08:32] <f[x]> так о то
[14:08:33] <gds> Typhon: почему bundle -- термин какой-то известный?
[14:08:56] <bobry> gds: ага, как раз когда все зависимости в куче это bundle
[14:09:31] <gds> так это, "можно системно, можно в определённую внешнюю диру, можно в диру проекта"  -- системно это bundle?
[14:09:46] <f[x]> bobry: <syntax/pa_bson.ml>: syntax_camlp4o, pkg_camlp4.quotations.r, pkg_camlp4.extend
[14:10:06] <f[x]> раз ты таким путём пошёл
[14:10:25] <bobry> f[x]: так оазис при сборке все это добавит
[14:10:44] <f[x]> что именно?
[14:10:52] <bobry> pkg_camlp4.quotations.r, pkg_camlp4.extend
[14:10:58] <f[x]> с какой радости?
[14:11:00] <Typhon> gds: bundle — это не системно точно, это либо во внешнюю диру, либо локально
[14:11:00] <bobry> удивительно кстати, что ошибка то permission denied
[14:11:12] <bobry> так они в build depends у меня указаны
[14:11:16] <bobry> для pa_bson
[14:11:38] <f[x]> не удивительно
[14:11:50] <f[x]> клонить откуда?
[14:12:02] <gds> Typhon: хорошо, значит "системно" пусть будет "system" (это через ocamlfind).  vendor / local -- это как?
[14:12:03] <bobry> http://github.com/superbobry/cobson
[14:12:15] <bobry> gds: системно лучше —global
[14:13:21] <gds> ок, пусть global.  интересно "в указанную диру" и "в диру $thisproject/deps/"
[14:13:54] Kakadu вошёл(а) в комнату
[14:14:26] <bobry> может сделаем так — по дефолту ставит в ./deps/ но можно указать —to=… или —destdir=?
[14:15:22] <gds> вариантов ровно три.  какой дефолтовый -- пофиг, но лучше локально.  как обозвать варианты "ставить через ocamlfind", "ставить в определённую диру" и "ставить в ./deps/"?
[14:15:39] <f[x]> system custom и local
[14:15:47] <bobry> так мы в любом случае будем ставить через ocamlfind
[14:16:04] <bobry> вопрос только в том куда будет показывать OCAMLFIND_DESTDIR
[14:16:16] <Typhon> gds: у меня через "/" были варианты для "project local" если что. vendor — традиционное название для внешних зав-тей в рубёвых приложениях, которые поставляются с самой аппой в папке vendor, как правило.
[14:16:22] <Typhon> удваиваю "system custom и local"
[14:16:42] <bobry> +1
[14:16:53] <gds> катит, ща исправлю.
[14:17:54] <f[x]> bobry: компилю зависимости! :)
[14:18:43] <bobry> :) sorry
[14:19:25] <f[x]> попробовал nih install type-conv - не работает нифига!
[14:20:41] <bobry> лол, кстати меня в odb бесит что там только install
[14:20:46] <bobry> и то — его даже писать не надо
[14:21:43] <bobry> кстати предлагаю заюзать cmdliner, когда nih будет ближе к коду
[14:24:55] <f[x]> omg
[14:25:03] <f[x]> kaputt не инсталлит cmi
[14:25:34] <f[x]> и зачем-то на forge выложен скомпиленный cma (без cmi) - кому он нафиг нужен - ещё и без указания версии компилера
[14:25:45] <bobry> f[x]: known bug, ага
[14:25:55] <f[x]> а, зарепортили? ок
[14:26:43] <f[x]> не вижу репорта
[14:26:46] <bobry> а нет — не зарепортили
[14:26:52] <bobry> я думал frvtmtrx заслал
[14:26:54] <f[x]> у тебя есть там логин
[14:27:00] <bobry> щас будет
[14:27:10] <bobry> кстати отличный способ не получать баг репортов
[14:27:13] <bobry> иметь свой собственный баг трекер
[14:27:17] <bobry> еще и с логином
[14:27:22] <f[x]> кстати можно было бы для таких огороженных трекеров заводить общий для camlunity account
[14:27:33] <f[x]> да, это WIN
[14:37:25] <bobry> зарепортил
[14:37:34] <bobry> и про Github с оазисом написал — ибо нефиг
[14:41:05] <gds> закончил цикл по спеке, ваша очередь.  резолвьте вопросы, задавайте новые.
[14:41:53] <f[x]> тупой камлобилд - когда я указываю ppopt - он суёт его в pp
[14:42:30] <f[x]> а, догнал
[14:42:32] <f[x]> это я тупой
[14:43:40] <f[x]> bobry: http://paste.in.ua/3347/
[14:45:26] <f[x]> правда с текущим сетапом у тебя camlp4 вкомпиливается во все example'ы
[14:47:02] <f[x]> это потому что oasis транзитивно пробрасывает зависимости cobson.syntax
[14:47:10] <f[x]> т.к. он не знает что это syntax extension
[14:52:04] ygrek вышел(а) из комнаты
[14:56:53] <f[x]> раздел терминология - одобряю
[15:05:26] <f[x]> gds: верни моноширинный текст!
[15:08:01] <gds> моноширинный полезен для иерархических планов, а тут у нас уже целый документ получается.  Как хош, но потом, когда будет цельный документ, сверстаем под нужную ширину (конечно, под 78 символов), не проблема.
[15:09:45] <f[x]> rfc все в моноширинном!
[15:10:55] <gds> да сделаем потом моноширинный, ясен хрен, ведь потом это в README какое-нибудь пойдёт.
[15:16:08] <gds> я прошёлся, ваша очередь.
[15:18:22] savikov вошёл(а) в комнату
[15:18:38] komar вошёл(а) в комнату
[15:18:57] <savikov> опять капча =_=
[15:20:38] gds' вошёл(а) в комнату
[15:21:09] <savikov> :ЗЗЗ
[15:21:14] <gds> savikov: перезайди
[15:21:21] <savikov> верю -_-
[15:21:27] gds' вышел(а) из комнаты
[15:21:39] <gds> какие же они легковерные.
[15:32:00] <bobry> f[x]: а ты больше ничего не менял?
[15:32:21] <bobry> Camlp4: Uncaught exception: DynLoader.Error ("./syntax/pa_bson.cma", "error while linking ./syntax/pa_bson.cma.\nReference to undefined global `Pa_type_conv'")
[15:32:28] <bobry> куда то видимо надо depend добавить
[15:37:12] <f[x]> момент
[15:37:42] <f[x]> git clean -fdx; patch; make
[15:37:45] <f[x]> всё ок
[15:38:03] <f[x]> покажи ком строку
[15:40:14] <bobry> just a sec
[15:43:25] <bobry> f[x]: и правда работает, спасибо большое
[15:49:32] <savikov> а как очистить в интерактивном режиме "почистить" от уже объявленых мной функций и переменых? в Ерланге использоалась функция f(). для этого
[15:50:17] <gds> savikov: открыть новый топлевел.
[15:50:43] <savikov> логично, тупо.
[15:50:44] <savikov> пинг
[15:50:44] <gds> в теории могли бы сделать подобное, но никому не надо было, так как обычно топлевел кормят из емакса, а там пофиг.
[15:51:18] <savikov> а, выходит нету. только выходом и повторным запуском. хмм.. не думал
[15:53:51] <Typhon> Toplevel.reset вспоминается, но это только про require'нные модули
[15:58:16] <bobry> что-то я не понимаю, откуда camlp4o берет path?
[15:58:50] <bobry> http://paste.in.ua/3348/
[16:01:21] <bobry> так, разобрался — извиняюсь
[16:01:58] <gds> пробежался, давайте дальше.  план явно не полный, не хватает механики.
[16:05:54] <bobry> Typhon: а не поделишься своим конфигом для tuareg-mode? у меня там что-то с индентацией стало
[16:09:37] <f[x]> gds: вообще некоторые люди работают днём, а планы пишут вечером!
[16:13:18] <Typhon> bobry: https://bitbucket.org/little_arhat/confs/src/7e5db90f4516/.emacs.d/load/elpackages_init.el#cl-32  как-то так :-)
[16:13:50] <bobry> лол
[16:13:57] <bobry> ты давно его обновлял?
[16:15:11] <gds> f[x]: согласен.  но у меня сейчас с работой небольшой затык, приходится половину времени думать о работе, а другую половину -- вот...
[16:17:36] <Typhon> bobry: кого?
[16:18:10] <Typhon> там ещё какие-то присадки есть кастомные, но я какой-то туарег-моде в ель-гет коммитил, вроде довольно свежий был. тогда и свои конфиги обновлял
[16:22:15] <bobry> el-get в смысле
[16:39:25] <f[x]> что-то я смотрю варианты и получается "сильные" указания не нужны
[16:39:55] <f[x]> т.е. если ставится локально - то и так будет браться по урле
[16:40:25] <f[x]> т.е. есть простой способ превратить все указания в "сильные" - поставить локально
[16:40:46] <f[x]> т.е. нам не нужны все комбинации вариантов - а те которые важны на практике
[16:42:47] <gds> ну да, тут получается, если есть урл, то по-любому будет локально.  Но мне видится кое-что кривое -- таким образом не сможем сделать venv, то есть, я не смогу сделать так, чтобы оверблд ставил пакеты по урлу в custom-режиме.  Это пичалька.  Давайте думать.
[16:45:46] komar вышел(а) из комнаты: Logged out
[16:45:49] komar вошёл(а) в комнату
[16:47:03] <f[x]> не, наоборот
[16:47:13] <f[x]> урл не форсирует локальную установку
[16:47:17] <f[x]> убираем это требование
[16:47:29] <f[x]> сравниваем по версии
[16:47:37] <gds> тогда твоя претензия конфликтует -- про кривые meta.
[16:48:08] <f[x]> да, пусть это решает юзер - если он знает что кривые мета итп - ставит всё локально
[16:48:11] <f[x]> или кастомно
[16:49:43] savikov вышел(а) из комнаты
[16:50:49] <gds> учитывая, что кривая мета бывает и в кастомном варианте (думай об оверблд!1), получается, нужно три индекса: глобальный (может даже централизованный), кастомный и проектный.
[16:53:32] <gds> сообщи, как можно будет смотреть.
[16:59:21] <f[x]> поформатировал
[16:59:33] <f[x]> смысл не трогал пока
[16:59:46] <f[x]> не понял про три индекса
[17:00:06] <f[x]> я предлагаю вывести эту проблему из нашего scope
[17:03:31] <f[x]> т.е. если пользователь хочет гарантированной установки по урлам - делает project local. если девелопер хочет влиться в систему и качать по меньше и пересобирать по меньше - то ставит в system, если же девелопер знает что в system лажа или древние пакеты которые не надо обновлять - ставит в custom для этого проекта (группы проектов)
[17:03:38] <f[x]> я ща юзкейсы накидаю
[17:07:32] <gds> о да, юзкейсы тут должны были быть первичны, это мой факап.
[17:08:25] <gds> ещё нужно рассмотреть случаи "жырная либа уже стоит, и, даже если остальное надо локально, её лучше/быстрее будет взять системную/кастомную".
[17:11:11] <f[x]> это какой-то странный юзкейс
[17:11:21] <f[x]> хотя
[17:11:31] <f[x]> можно просто копировать каталог установки
[17:11:40] <f[x]> там правда stublib'ы
[17:12:03] <f[x]> bobry это предлагал, видимо таки нужно, раз уже двое
[17:12:16] <f[x]> в будущие фичи
[17:16:08] <bobry> чем меньше частных случаев тем лучше
[17:16:11] <bobry> нафик такие фичи
[17:16:25] <gds> правильно я понимаю, что можно сделать так, чтобы ocamlfind брал сначала ./deps/конфиг, потом кастомный, потом системный?
[17:17:00] <gds> сообщите, как всё
[17:21:11] <f[x]> да
[17:21:14] f[x] всё
[17:21:19] <f[x]> работа есть
[17:21:42] <f[x]> bobry: оставил "на будущее"
[17:23:39] <f[x]> мне чо-то не верится что у нас будет тулза которая будет всё это делать
[17:23:51] <f[x]> не камль-way
[17:24:14] <bobry> f[x]: why?
[17:24:16] <gds> нужно десять разных, чтобы удовлетворить одэптов х-я!
[17:24:20] <gds> и одна над другой!
[17:24:27] <gds> и сотона!
[17:25:01] <f[x]> bobry: слишком как-то культурно
[17:25:13] <bobry> блин, camlp4 это проклятие
[17:25:21] <f[x]> что ещё?
[17:25:25] <bobry> ни туториалов, нифига — максимум reference manual
[17:25:30] <f[x]> уже ж вроде всё собралось?
[17:25:31] <f[x]> а
[17:25:32] <gds> f[x]: дык, потому что взялись со спеки, потому и культурно.  если бы наговнокодили -- было бы caml-way!
[17:25:43] <f[x]> дык!
[17:26:23] gds тоже робототь, идеи уже промариновались.  Ваимя СвЪтого Кадастрия, Ибо!
[17:26:26] <f[x]> bobry: по сути то там всё понятно, смотри в исходники, щупай в топлевел что во что превращается
[17:26:41] <bobry> f[x]: ну так и приходится, просто это скорее the hard way
[17:27:32] <f[x]> bobry: https://github.com/camlunity/kamlo_wiki/blob/master/camlp4.md
[17:28:41] <f[x]> там пример с "печать AST" - мне в свой время здорово пригодился
[17:43:42] <bobry> спасибо
[17:50:46] <bobry> я вот думаю, как теоретически можно превратить список пар типа [ string * bson_t ] в рекорд, где каждой строке соответствует поле?
[17:50:58] <bobry> в смысле как можно собрать такой рекорд по кусочкам?
[17:51:04] <bobry> есть какой нить умный способ?
[17:52:03] <Kakadu> В сишечке можно
[17:52:09] <bobry> в сишечке не интересно
[17:52:53] <f[x]> что значит теоретически?
[17:53:02] <f[x]> берёшь и превращаешь
[17:53:17] <f[x]> см. json-static
[17:53:40] <bobry> шас гляну
[17:54:00] <gds> > [ string * bson_t ] в рекорд, где каждой строке соответствует поле?
бери мой кадастр, там будет подобная фича.  плюс к тому, дополнительная типизация для конкретных bson_t, чтобы не просто "плоскую запись" возвращать, а тщательно протипизировать.
[17:54:41] <gds> только один раз для каждого типа таки придётся описать, как его "разрушать" и как его "создавать".
[17:54:42] <bobry> gds: да кадастр пока жирненько будет — я прикидываю варианты для Typhon'овского кобзона пока
[17:54:46] <bobry> -пока
[17:55:17] <gds> да понятно, тем более, кадастр пока не готов.
[18:09:27] letrec вошёл(а) в комнату
[18:29:12] <bobry> # Format.printf "%a\n" p#expr <:expr< $lid:"Foo"$ = 1 >>;;
Foo = 1
[18:29:16] <bobry> что то я не понимаю
[18:29:19] <bobry> почему оно не работает?
[18:34:54] <gds> lid -- lowcase identifier?
[18:35:42] <bobry> ага
[18:35:55] <gds> "Foo" таков?
[18:36:28] <bobry> нет, просто я думал что оно будет конфертить id в нужный case
[18:36:48] <gds> могу ошибаться, ибо только на "здравом смысле" утверждаю.  а так -- хз.
[18:38:18] <f[x]> нет, оно не конвертит
[18:40:07] <bobry> так, я понял как можно собрать рекорд, вин! http://paste.in.ua/3350/
[19:07:16] Typhon вышел(а) из комнаты
[19:38:03] bobry вышел(а) из комнаты
[19:49:55] <gds> про них#$себеменеджер -- подумалось, что многие проблемы можно решить, если ввести "уровень доверия".  для чисто-локальной сборки / релиза -- "доверяем никому, всё тащим из интернетов".  для конторы и оверблд (схожие ситуации) -- "доверяем конторе, остальное доставляем сами".  для "использовать системное" -- "доверяем системе, остальное тащим [либо в систему, либо в кастом, либо локально]".
[19:51:33] <f[x]> по факту - доверяем destdir'у
[19:51:46] <gds> но как?!
[19:51:47] <f[x]> локальный destdir = пустой + то что уже скачали
[19:52:39] <gds> то есть, механизмы типа "контора" -- идут лесом?
[19:53:01] <gds> *юзкейсы
[19:54:32] <f[x]> пчу?
[19:55:09] <f[x]> project local - доверяем никому - доверяем локальному каталогу (он пустой) q.e.d
[19:55:29] <gds> custom -- доверяем ему, но остальное надо ставить локально.
[19:55:38] <f[x]> custom - доверяем конторе - доверяем custom destdir'у (в который ставила только контора) q.e.d.
[19:55:50] <f[x]> и ставим тоже в custom
[19:55:56] <f[x]> почему локально?
[19:56:20] <f[x]> я кросс варианты не рассматривал пока
[19:56:27] <gds> потому что бывают случаи, когда в контору нельзя поставить новую версию либы -- например, для рефакторинга под новую её версию.
[19:56:38] <gds> да, это как раз кросс-вариант.
[19:56:39] <f[x]> т.е. ставим в local - смотрим в local и custom
[19:56:42] <f[x]> я понял
[19:57:19] <f[x]> тогда да
[19:59:04] <gds> что-то решаем, или подумаем ещё?
[20:00:04] <gds> я за "подумать", если чо.  В коитете (!) ещё трое, может будут их идеи.
[20:00:48] <gds> понятно, что система получается нетривиальной, но нужно сделать так, чтобы отношение "сложность / решаемые_проблемы" было максимальным.
[20:01:27] schurshik вошёл(а) в комнату
[20:01:57] <f[x]> я всё равно не собираюсь ничего кодить
[20:02:01] <f[x]> до выходных
[20:02:29] schurshik вышел(а) из комнаты
[20:02:35] <f[x]> в основном интересны юзкейсы и всехние требования ли они решают
[20:02:48] <gds> до выходных и спеки не будет, чего тут кодить-то.
[20:03:17] <gds> дурную работу делать -- разумный человек и так найдёт, где.  А тут -- нафиг надо.
[20:07:42] <ermine> как дела, тунеядцы?
[20:11:08] <gds> ok, mrs!
[20:43:02] ermine уныло ковыряет xsd - его структура оказалась чуток сложнее чем ожидалось
[20:43:18] <ermine> всякие ссылки и подстановки
[20:43:49] <f[x]> чорт, у меня на машине нет шрифта подходящего размера чтобы написать БГГ
[20:43:56] <gds> оказывается, class virtual qwe ['a] = object method a : 'a ... end (я чуть упростил) тоже стродает от мономорфности.  и стоит добавить () как его аргумент, всё сразу проходит.  с одной стороны, логично (вдруг отнаследуются с разными 'a).  с другой стороны -- полчаса времени.
[20:45:23] <gds> и вообще, классы-объекты -- это такой синтаксический сахар для чистой лямбды.  только иногда попадаются коричневые вкрапления, редко.
[20:46:11] <ermine> о, у всех проблемы в жизни
[20:46:36] <gds> проблемы у меня были три недели назад, сейчас -- фигня, "детали имплементации".
[20:47:43] <ermine> на камле?
[20:53:47] <gds> да, про другие не говорил.  те самые "полутипизированные значения", ну и прочие няшечки.
[21:11:45] letrec вышел(а) из комнаты
[21:19:58] ermine вышел(а) из комнаты
[21:31:34] ygrek вошёл(а) в комнату
[22:04:40] shaggie вышел(а) из комнаты
[22:12:14] ad1862 вошёл(а) в комнату
[23:12:38] ad1862 вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!