Home
Objective Caml
ocaml@conference.jabber.ru
Вторник, 13 декабря 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:01:24] <gds> не может быть, что это убрали.  надо будет проверить.
[00:01:28] <gds> cp -R -- пока ок.
[00:04:25] <bobry> gds: а на венде which есть?
[00:04:40] <gds> если подразумеваем cp -R, то which есть.
[00:05:10] <bobry> не, это такая фигня которая ищет программы по PATH
[00:05:15] <gds> я про то же.
[00:05:31] <gds> со своими же итератами (из тестового примера) понял, что ./configure не везде есть.  ну, буду проверять его наличие, а если его нет -- не запускать его.
[00:05:38] <bobry> тогда я тебя не понял :)
[00:06:12] <gds> если есть cp -- есть mingw/cygwin.  в них есть which.
[00:07:36] <bobry> oh, okay
[00:09:19] <gds> ещё недоработка: если распаковали через tar -x{z,j}, то результат будет _dep/src/iteratee/ocaml-iteratees-0.3, то есть, надо смотреть, распаковалась ли только одна дира.  куда-то во временное место, наверное, распаковывать.
[00:09:55] <gds> вот тут уже with_temp_dir будет годно, так как при успехе перенесём всё в другую диру, а эта будет пустая, готовая к удалению.
[00:10:31] <gds> делать же "cd ocaml-iteratees-0.3 && mv * ../" не рекомендую, можно случайно пересечься с файлом "ocaml-iteratees-0.3", находящимся внутри тарбола.
[00:10:32] <bobry> а по моему все ок, просто Source.archive должен возвращать не dest_dir а ocaml-iteratess-0.3
[00:11:00] <Kakadu> bobry: ку!
[00:11:11] <bobry> Kakadu: вливайся :) или занят сегодня?
[00:11:15] <gds> а, нормальный вариант про source_path или как там его.
[00:11:26] <Kakadu> да вот я тут сумел человеку объяснить что такое монаы
[00:11:28] <gds> и да, распаковывать такое надо в tmp
[00:11:28] <Kakadu> монады
[00:11:35] <bobry> gds: ну т.е. штука которая распаковывает сама скажет в какой директории надо собирать
[00:11:39] <Kakadu> наверное я понял что это такое
[00:11:44] <bobry> Kakadu: расскажи и нам чтоли
[00:12:00] <gds> bobry: понял, хороший вариант.  в _dep/tmp только наверное, асилишь?
[00:12:03] <Typhon> у нас в андеве есть хорошее объяснение. мы, кажется, игреку с коллегами рассказывали %)
[00:12:14] <Kakadu> ну это тип данных, над которым определены три функции с особыми сигнатурами
[00:12:20] <Kakadu> bobry: ^
[00:12:23] <bobry> Typhon: поделись?
[00:12:30] <bobry> Kakadu: это объяснение без погружения :)
[00:12:34] <Typhon> bobry, оно неприличное ^____^
[00:12:48] <bobry> gds: /_dep/src/<dep_name>/   --  директория с хранящимися в составе проекта исходниками зависимости <dep_name>
[00:12:50] <gds> неприличное?  ХАЧЮХАЧЮХАЧЮ
[00:12:55] <bobry> вроде ж в src договорились?
[00:13:15] <Kakadu> далее идет декартово произведение списков с монаой лист, и монада Maybe
[00:13:23] <gds> bobry: я поправил спеку и попросил посмотреть.  src -- для хранящегося в проекте.  tmp -- для сборки.
[00:14:19] <gds> bobry: то, что не хранится в проекте -- где-то в tmp будет.
[00:14:33] <bobry> gds: мне кажется что мы говорим об одном и том же.
remote --> качает в _dep/tmp
archive --> распаковывает в _dep/src/<name>
build --> берет то, что ему вернул archive и копирует в _dep/tmp/<name>
[00:14:34] <gds> цель -- иметь пустой tmp на момент "собрано всё".
[00:15:16] <bobry> кстати пустой tmp не ок, например вытягивать каждый раз сырцы не хочется
[00:15:17] <gds> предлагаю в src только постоянные забандленные, чтобы отличать их от временный-скачиваемых.
[00:15:42] <bobry> ну временные у нас в tmp
[00:15:55] <gds> а вытягивать надо, вдруг изменились, вдруг там в репку присунули шось или тарбол перезалили.
как оптимизацию -- можно сделать потом кеш.
[00:16:01] <bobry> хотя не, щас все в src распаковываются
[00:16:14] <gds> ну вот, archive -> распаковать -- оно тоже временное, если архив временный.
[00:17:33] <bobry> можешь описать судьбу временного Bundled до состояния Installed?
[00:18:48] <gds> временный Bundled -- получен из других источников.  судьба -- сбилдить, при удачном билде замочить и Installed, при неудачном -- фейл и пусть юзер разбирается сам, что же там не срослось (а такое будет, и это важно предусмотреть сразу).  если сбилдилось -- оно уже в lib есть.
[00:21:28] dzhon вошёл(а) в комнату
[00:38:01] Typhon вышел(а) из комнаты
[00:42:46] <gds> bobry: что делаешь, чтобы не пересекаться?
[00:43:05] <bobry> я пока на паузе
[00:43:33] <bobry> по хорошему надо запилить то о чем говорили -- Temp / Persist для Bundled
[00:43:54] Typhon вошёл(а) в комнату
[00:44:06] <gds> ты про копирование src -> tmp?
[00:44:34] <bobry> я про распаковку в tmp или в src, в зависимости от типа
[00:45:02] <gds> распаковываться/скачиваться/билдиться всё будет в tmp.  храниться всё будет в src.  нормально?
[00:45:16] <gds> храниться == "с текущим бандлом".
[00:45:31] <bobry> стоп-стоп, что именно в таком случае будет в src?
[00:45:58] <gds> хранящиеся в проекте исходники.  bundled-{dir,tar*}.
[00:46:28] <gds> а вообще, хз, что.
[00:47:01] <gds> но, если забандлено, то нужно место для хранения.  с другой стороны, для билда -- явно нужно временную диру делать и билдить там, а потом всё мочить.
[00:47:03] <bobry> все равно не очень понятно, если в tmp лежат скачанные / распакованные файлы, то что остается для src
[00:47:18] <bobry> или в src будет то шо сбилдилось?
[00:47:42] <gds> проще избавиться от src вообще к чорту.  только путает тебя.
[00:47:58] <gds> то, что сбилдилось -- в _dep/{bin,lib}.
[00:48:25] <bobry> ну тобишь ocamlfind install на то шо сбилдилось
[00:48:31] <bobry> наверное разуменей отказаться от src -- ты прав
[00:48:35] <gds> да.  сбилдилось -- проинсталлили.
[00:49:17] <gds> про отказаться полностью в менеджере -- да.  но я бы туда клал исходники, которые буду "dep pkg bundled-dir _dep/src/pkg"
[00:50:10] <bobry> хм
[00:50:15] <bobry> чисто для бандлов тобишь
[00:51:10] <gds> да, из ТЗ можно смело убирать.  так и сделаю.
[00:52:05] <gds> а про install -- я не додумал до конца.  там и etc/findlib.conf генерить надо, и подсовывать его в окружение ещё.
[00:52:36] <bobry> gds: стоит пояснить еще что у нас называется бандлом
[00:53:28] <gds> в целом -- проект и зависимости, находящиеся в том же дереве, адресуемые как "dep pkg bundled-* project_path".
[00:55:08] <gds> кое-чем чую, что одной из следующих фич будет "сделать бандл на основании brb.conf текущего проекта", ну там и перепишем brb.conf, доведя до bundled-dir всё, например.
[00:55:34] <gds> точнее, не перепишем, а в бандл положим новый brb.conf, как и новые _dep/src/pkg
[00:56:12] <bobry> ну кстати логичная фича -- ага
[01:01:06] <gds> не просто логичная фича, а так называемый МЕГАПРОФИТ ведь!
[01:03:22] <bobry> uberprofit
[01:03:56] <bobry> кстате go можно вынести из install_from, ибо он ни от чего не зависит
[01:04:39] <gds> только от конфига, факт.
[01:05:02] <bobry> и наверное логичней парсить конфиг в install
[01:05:02] <f[x]> вы камрады натурально жжёте
[01:05:04] <gds> у тебя чувство прекрасного индента развито больше, ты и выноси :]
[01:05:05] <f[x]> мне аж страшно
[01:05:12] <bobry> gds: гг, это все туарег
[01:05:16] <bobry> f[x]: шо такое?
[01:05:19] <gds> bobry: почему парсить в install??
[01:05:25] <f[x]> bobry: всё чотко
[01:06:01] <gds> f[x]: скажи мысленное спасибо тупому мне, который решил по своему образу и подобию сделать тупую версию1.  иначе бы не жгли.
[01:06:09] <bobry> тогда предлагаю другую схему, все штуки в barbra принимают уже распарсенный config
[01:06:21] f[x] off
[01:06:55] f[x] вышел(а) из комнаты
[01:07:53] <gds> bobry: тьфуты, не так понял.  если про "внутри barbra.ml" -- проще install + install_from + go, заодно типа-декомпозиция.
[01:08:03] <gds> ну и профит при отладке.
[01:08:16] <bobry> вощем щас сделаю -- покажу
[01:08:20] <bobry> если что откатим
[01:08:41] Андрей Ковбович вошёл(а) в комнату
[01:11:19] <gds> кстати, я рассказывал про "межпакетные зависимости", но про кое-что умолчал.  аж на языке крутится.  в общем, можем потом параллельно пускать билд/скачивание/распаковку.  конечно, нужно будет простой make сделать, но простой make это не страшно.
[01:11:37] <gds> это в вопросу "преобразовывать типы до Installed".
[01:12:52] <gds> сделаем обязательно STM с монадами, и там будем апдейтить Map.  как же иначе параллельность реализовывать, а.
[01:17:50] Андрей Ковбович вышел(а) из комнаты
[01:24:32] <bobry> ах как хотелось бы в камл х-левский where
[01:25:09] bobry пушнул with_config
[01:25:34] <bobry> у меня кстати install ниале
[01:25:57] Андрей Ковбович вошёл(а) в комнату
[01:26:07] <Kakadu> bobry: так в revised вроде был where
[01:26:24] <bobry> был-был, только вот в tuareg'e нет revised
[01:26:41] <bobry> а я как gds не могу -- мне с цветами хочется, и с автоматической индентацией
[01:26:47] bobry развращен емаксом
[01:29:11] <gds> дело не в емаксе/туареге, а в том, что для данного проекта original -- это очень ок с точки зрения популярности-дописываемости.  поэтому лично я решил взять его.  видите, чуть ли не матом ругаюсь, но кодю.
[01:29:46] <bobry> это да.. вон на camlp4 без матов расширения не пишутся
[01:29:49] <bobry> проверно
[01:31:40] Typhon вышел(а) из комнаты
[01:33:04] Kakadu вышел(а) из комнаты
[01:35:46] <bobry> gds: твоя позиция по поводу капутта для тестов не поменялась? против?
[01:36:25] <gds> кстати, почему я вынес with_sys_chdir в функтор WithM.W -- чтобы было значение WithM.WithI.with_sys_chdir, которое и без монадок хорошо работает, типы тупые, исключения ловить нативно.
[01:36:42] Andrey Popp вошёл(а) в комнату
[01:37:53] <gds> bobry: если сделать так, чтобы у юзера тесты не собирались, а у разработчика брался алес капут из бандла -- покатит.  пользователей заставлять его инсталлить -- криво.  у меня в системе он не стоит тоже.  вроде не первоочередная задача.  есть желание пилить -- давай.
[01:38:20] <bobry> gds: так в чем проблема то, у нас же флаг для тестов есть
[01:38:24] <bobry> сделать его false по умолчанию
[01:38:32] <bobry> а локально вызывать ./configure --enable-tests
[01:38:40] <gds> bobry: смотри сам.  если получится как описал -- давай, будет хорошо.
[01:38:51] <gds> если не получится -- будет похуже.
[01:39:09] <bobry> так не раз уже так делал :) получится еще как
[01:40:04] <gds> мне кажется, что в текущем проекте тесты вообще мало нужны, ибо сайдэффектов слишком много, и проще "тестить" это через отладочную печать, расставленную в нужных местах.
[01:40:31] <bobry> имеет смысл -- да
[01:40:33] <gds> но смотри сам, не мне же капут прикручивать.
[01:40:40] <bobry> тогда мб удалить те что есть, чтобы они меня не смущали?
[01:41:07] <gds> да пусть будут, не мешают ведь.  запускаются, как-то тестят, и ок.  мои баги с конфигом словили, уже хорошо.
[01:41:27] <bobry> ну пока мне бы хотелось чтобы коммиты не ломали ./brb.byte :)
[01:41:28] <gds> вдруг ещё что припихнём туда, нормально же будет.
[01:41:32] <bobry> кстати у тебя install то работает?
[01:41:45] <gds> а мне бы хотелось, чтобы всё сразу заработало!111 :]
[01:42:02] <bobry> hah
[01:42:11] <bobry> без кода, слабо?!!11
[01:42:13] <gds> install -- ему неправильную диру дают, тесты на iteratees падают, так как tar.gz распаковывается в поддиру.
[01:42:58] <gds> кроме того, install не заработает, там надо для ocamlfind генерить конфиг, это делаю ща.
[01:43:09] <bobry> а, точно -- надо диру выдергивать
[01:43:11] <bobry> это на мне
[01:44:35] <bobry> gds: а в чем смысл list_all в Common?
[01:44:52] <gds> не знаю, он там был, я его переписал.
[01:45:05] <gds> вроде для тестов пользуется.
[01:45:27] <bobry> странная какая то штука
[01:47:28] <gds> оставим, не мешает же.
[01:56:47] <bobry> и почему в stdlib нету Array.filter
[01:56:51] <bobry> oh, caml ..
[01:59:02] <gds> мог бы присунуть am_Array.ml и оттуда map_filter, но проще to_list .. of_list для простых целей.
[02:00:36] <gds> кстати вот, засада с ld.conf.  как я понимаю, при каждом билде надо его копировать откуда надо, и только потом билдить всё.  или как?
[02:00:40] dzhon вышел(а) из комнаты
[02:03:41] bobry вышел(а) из комнаты
[02:06:33] bobry вошёл(а) в комнату
[02:07:18] <bobry> gds: по моему ocamlfind сам будет его искать в dest_dir
[02:07:31] <gds> найдёт пустой, что дальше?
[02:07:39] <bobry> ничего, продолжит сборку
[02:07:56] <bobry> $ cat /usr/lib/ocaml/ld.conf
/usr/lib/ocaml/stublibs
/usr/lib/ocaml
[02:08:07] <bobry> все что нам надо по идее
[02:08:16] <bobry> только не /usr/lib а dest_dir/lib
[02:08:27] <gds> вот-вот.
[02:08:43] <gds> а системно-стоящее тоже надо юзать при сборке ведь.
[02:10:13] <bobry> ну можно копировать системный ldconf при инициализации
[02:11:34] <gds> точнее, тот, на который ocamlfind показывает.
[02:28:48] <gds> bobry: лучше было бы проверять просто на наличие одной директории, а не убирать файлы перед проверкой.  потому что должна быть в tar-архиве ровно одна директория, а файлы -- ошибочный случай.  потому что может оказаться так, что будет дира src и файлы типа configure, README и прочие, и 1. перейдём в src и там будем билдить -- явно фейл, 2. не сразу обнаружим ошибку автора тарбола.
[02:30:29] <gds> bobry: кроме того, сейчас запустил, явная бага -- Install подразумевает, что находимся в директории проекта, а, судя по сообщению --
findlib: [WARNING] cannot read directory /home/gds/dev/barbra.hg/_dep/src/iteratee/ocaml-iteratees-0.3/_dep/lib: No such file or directory
+ ocamlfind ocamlc -where > /home/gds/dev/barbra.hg/_dep/src/iteratee/ocaml-iteratees-0.3/_build/ocamlc.where
  -- где-то не там.
Точно везде возвращаешься из chdir?
[02:32:11] <gds> я на сегодня всё, спатке.  изменения запушил.
[02:35:22] gds вышел(а) из комнаты
[02:41:58] Андрей Ковбович вышел(а) из комнаты: Replaced by new connection
[02:42:17] Андрей Ковбович вошёл(а) в комнату
[02:42:23] Андрей Ковбович вышел(а) из комнаты
[03:15:10] Andrey Popp вышел(а) из комнаты
[03:37:36] letrec вошёл(а) в комнату
[03:37:44] letrec вышел(а) из комнаты
[03:37:59] letrec вошёл(а) в комнату
[04:41:16] letrec вышел(а) из комнаты
[05:21:35] ftrvxmtrx вышел(а) из комнаты
[08:50:34] ermine вошёл(а) в комнату
[09:17:59] Typhon вошёл(а) в комнату
[09:40:59] <Typhon> gds, bobry, посоны, а вы, если не сложно, поддерживайте ТУДУ в репке барбры почётче, чтобы чувакам, которые отваливались на нек-е время, можно было включаться быстро в работу :-)
[10:01:47] Andrey Popp вошёл(а) в комнату
[10:41:30] Andrey Popp вышел(а) из комнаты
[10:46:11] Andrey Popp вошёл(а) в комнату
[11:36:43] <f[x]> в ld.conf тоже можно переменной окружения добавлять
[11:46:47] ftrvxmtrx вошёл(а) в комнату
[11:47:11] Andrey Popp вышел(а) из комнаты
[11:59:11] gds вошёл(а) в комнату
[12:05:54] Kakadu вошёл(а) в комнату
[12:06:46] <gds> f[x]: да, можно, но надо, наверное, старый ld.conf спереть, чтобы системно-стоящие либы учитывались?
[12:08:08] <gds> Typhon: идея хорошая, надо бы.  но тебе оно сейчас актуально? (т.е. сейчас есть время*возможность помогать?)
[12:10:02] <f[x]> gds: зачем? это же в добавку к системным и будет
[12:11:05] <gds> а если какой-нибудь ещё результат "кастомного" билда стоит типа оверблд, у него же будет ld.conf, но будет ещё и системный.  если прописать пустой ld.conf, оверблд не учтётся.
[12:12:28] <f[x]> gds: не понял нифига
[12:12:39] <f[x]> ld.conf один - системный
[12:13:04] <f[x]> его никто не трогает
[12:13:36] <f[x]> brb же при сборке просто выставляет caml_ld_library_path на используемый сейчас dest_dir
[12:14:04] <gds> brb должна использовать то, что даёт текущий ocamlfind согласно текущему окружению.  у меня, например, http://paste.in.ua/3448/raw/
[12:14:26] <f[x]> если ещё какие-то кастомные либы ставились не в систему, то brb про них знает (чтобы разрулить зависимости) и ихний destdir тоже пихает в окружение
[12:15:23] <f[x]> ну, это же системный ocamlfind?
[12:15:26] arhibot вошёл(а) в комнату
[12:15:46] <gds> не системный в плане apt-get, это пользовательская компиляция в пределах ~/
[12:16:12] <f[x]> эт неважно, он системный для brb
[12:16:23] <f[x]> лучше говорить "дефолтный"
[12:16:33] arhibot вышел(а) из комнаты
[12:16:47] <f[x]> ну т.е. делаешь caml_ld_library_path=.deps и всё будет учитываться
[12:17:03] <f[x]> кстати зачем там столько каталогов в ld.conf? почему в stublibs не ставится?
[12:17:55] <gds> потому что не было цели ставить туда, и так всё работает.
[12:20:17] <f[x]> тормоза же
[12:21:29] <gds> не замечал.
[12:23:14] <gds> caml_ld_library_path=.deps -- это на случай, если сошки будут в одной указанной дире.  а там может быть такая же котовасия, как и с оригинальным ld.conf.
[12:24:25] <f[x]> .deps:.deps2:.deps3
[12:24:57] <f[x]> ну так просто mkdir .deps/stublibs и ocamlfind всё сложит в один каталог
[12:36:14] <gds> в локальной инсталляции можем сделать stublibs, в дефолтной -- нет.  как быть?
[12:40:00] <f[x]> ну и что? в чём проблема-то? компилер всё найдёт
[12:40:10] <f[x]> * то?
[12:40:19] <f[x]> или хз нужен там дефис или нет
[12:42:26] <gds> вроде нужен.
а как компилятор будет искать _dep/lib/liba{1,2}/*.so и /home/gds/ovm/ocaml/lib/liba{3,4}/*.so одновременно?  или даже не компилятор, а байткодовая софтина, которая внешние сошки хочет.
[12:43:05] <f[x]> /home/gds/ovm/ocaml/lib/liba{3,4} прописано в ld.conf
[12:43:15] <f[x]> _dep/lib/liba{1,2} прописано в c_l_l_p
[12:43:32] <f[x]> а лучше _dep/lib/stublibs
[12:44:40] <f[x]> насчёт байткодовой софтины - либо её пускать в таком окружении либо зашить пути через rpath в бинарник либо собрать все so шки в одно место (плюс один юзкейс кстати) и выдать их пользователю
[12:46:23] <gds> про юзкейс -- как определить, что из дефолтной инсталляции нужны только некоторые сошки?
[12:46:36] Kakadu вышел(а) из комнаты
[12:47:16] <f[x]> по зависимостям?
[12:47:23] <f[x]> можно экспорты бинарника смотреть
[12:47:37] <f[x]> но это уже какое-то теоретизирование
[12:48:26] <gds> понял.  если что, явно укажут, какие зависимости брать в дело.
[12:48:57] <f[x]> байткод зависящий от стабов это сейчас вообще юзкейс непокрытый
[12:51:04] <gds> а чем плох подход "скопировать тот ld.conf, который даёт ocamlfind printconf и указать его через OCAMLFIND_LDCONF"?
[12:55:26] <f[x]> ocamlopt не будет смотреть в этот ld.conf
[12:55:47] <f[x]> ocamlfind_ldconf нужен только для того чтобы ocamlfind его модифицировал при install если нет stublibs каталога
[12:56:18] <f[x]> если же юзать stublibs то ocamlfind в ld.conf писать ничего не надо
[12:56:57] <f[x]> насчёт читания из него я не уверен
[12:57:22] <f[x]> но если билд процесс не юзает ocamlfind ocamlopt а только инсталлит через ocamlfind install то это будет фэйл
[12:57:44] Kakadu вошёл(а) в комнату
[13:00:12] <gds> да не бывает такого, чтобы инсталлил через ocamlfind, но не юзал его.
[13:03:11] <f[x]> полно такого
[13:03:45] <f[x]> правда там зависимостей нет :)
[13:04:19] <gds> то есть, я делаю так: 1. не буду копировать ld.conf, 2. не буду ставить OCAMLFIND_LDCONF, 3. перед инсталляцией поставлю OCAMLFIND_CONF с путём до локального findlib.conf, 4. в локальном findlib.conf будут указания path="`pwd`/_dep/lib/site-lib:старый_path", destdir="`pwd`/_dep/lib/site-lib", 5. mkdir _dep/lib/site-lib/stublibs, 6. к CAML_LD_LIBRARY_PATH спереди доклеиваю `pwd`/_dep/lib/site-lib/stublibs.
так?
[13:04:54] <f[x]> а зачем локальный findlib_conf?
[13:05:10] <f[x]> destdir и site-lib тоже можно через окружение указать
[13:05:34] <f[x]> это наверное bike-schedding, но мне не нравятся лишние конф. файлы
[13:06:03] <f[x]> например трабл - в системном findlib.conf указаный .opt версии компилеров
[13:06:22] <f[x]> если не копировать findlib.conf то получаем медленный билд
[13:06:36] <f[x]> а если копировать - то надо писать парсер findlib.conf
[13:06:51] <f[x]> а там есть всякие интересные штуки типа toolchain
[13:06:54] <f[x]> морока
[13:08:01] <f[x]> а с помощью окружения получается точечный оверрайд именно того что надо и не более
[13:08:38] <gds> да, точно, можно через окружение.  осталось вспомнить, нахрена я вообще findlib.conf генерил.
[13:08:59] <gds> выпиливать -- не запиливать, делается быстро.
[13:08:59] <f[x]> ну типа проще - в комстроке одну переменную указал и всё
[13:09:08] <f[x]> а так целых три
[13:09:14] <bobry> Installed /home/bobry/Code/barbra/_dep/lib/site-lib/iteratees/it_type.ml
...
[13:09:16] <bobry> wohoo :)
[13:09:59] <gds> bobry: там в инсталляции пипец как криво, пока даже лучше не тестить.
[13:10:30] <bobry> ну я просто поправил чутка, чтобы оно хоть как то работало
[13:10:32] <bobry> щас пушну
[13:13:23] arhibot вошёл(а) в комнату
[13:13:24] arhibot вышел(а) из комнаты
[13:13:26] arhibot вошёл(а) в комнату
[13:13:31] arhibot вышел(а) из комнаты
[13:13:41] <bobry> gds: кстати, я решил запилить то, о чем вчера говорили -- все архивы распакаковываются в tmp, src_dir перестает существовать
[13:14:21] <bobry> вопрос: кто и когда удаляет тарбол -- можно ли делать это сразу после распаковки
[13:14:23] <gds> bobry: это хорошо.  Кстати, там ещё пара дел ждёт тебя.
[13:14:29] <gds> после распаковки -- да.
[13:14:32] <bobry> ты бы их в issue на gh складывал
[13:14:41] <gds> лучше в локальный TODO
[13:14:48] <bobry> ну хоть куда нибудь :)
[13:15:08] <gds> ок, в TODO, так проще пока.  более чотко.
пушнул?
[13:15:26] <bobry> uhuh
[13:16:12] <bobry> ох йома, камло не умеет rm -rf
[13:16:17] <bobry> надо точно потрогать эти fileutils
[13:16:21] <bobry> чую без них совсем туго будет
[13:17:01] <Kakadu> да, не умеет
[13:17:15] <gds> в общем, пока Sys.command предлагаю, так проще, а потом уже fileutils потрогаем.  Только бы выносить это всё в один модуль, чтобы потом можно было только его заменить.
[13:17:55] <bobry> gds: кстати вынесешь command куда нить? или оно уже?
[13:18:06] <bobry> let command fmt = Printf.ksprintf Sys.command_ok fmt in
[13:18:30] <gds> вынесу.
[13:19:06] bobry выпилил src_dir
[13:19:58] <bobry> gds: так шо за туду? иде смотреть?
[13:22:31] <bobry> давай может в гуглодоке тогда писать -- он у всех есть
[13:23:44] <gds> один из пунктов -- надо определиться, что делать с chdir.  то есть, предлагаю один из вариантов: 1. определить абсолютные пути проекта один раз, использовать везде, chdir делать спокойно и по любой нужде (а именно, фактически, всегда, когда нужно удостовериться, что мы именно там), 2. каждая функция предполагает, что она находится в корневой директории проекта, за исключением явно описанных случаев, ну и делает with_chdir по нужде.
[13:26:07] <bobry> install сейчас вообще не используется chdir, к слову
[13:26:13] <bobry> тьфу ты source т.е.
[13:26:34] <bobry> я вот думаю, может нам как в оазисе, завести рекорд context, и в нем хранить все пути? вместо Global
[13:26:38] <bobry> в том числе и корневой путь
[13:27:04] <gds> чем Global не устраивает?
[13:27:11] komar вышел(а) из комнаты
[13:27:32] <bobry> да пока всем устраивает
[13:27:46] <bobry> в общем то там можно и завести abs_base_dir?
[13:28:02] <bobry> или сделать base_dir сразу abs
[13:28:15] <bobry> аа, стоп -- надо не base_dir а project_dir
[13:29:15] <bobry> gds: кстати может смержить local_archive и bundled archive?
[13:29:22] <bobry> в смысле два кейса в go
[13:29:52] <gds> только bundled persistent можно смержить с local_archive.
[13:30:59] <gds> про пути -- может сразу в Global прописывать абсолютные пути до всех нужных мест?  которые будут валидными, если brb.conf найден.
[13:31:22] <bobry> можно и так -- достаточно будет сделать base_dir абсолютынм
[13:32:05] <gds> кто сделает?
[13:32:14] <bobry> давай я -- дело не хитрое :)
[13:33:23] <gds> f[x]: проверяй окружение!  http://paste.in.ua/3449/raw/  (with_env_prepended -- это "что-дописываем:старое-значение")
[13:34:20] <bobry> gds: а почему ты в DEST_DIR указываешь site-lib?
[13:36:52] <gds> а вообще, если подумать, можно и просто lib.
[13:37:12] <gds> ждём мнения f[x] и по этому вопросу в том числе :)
[13:37:18] <bobry> что-то я не могу найти как мне получить абсолютный путь в камло
[13:37:41] <bobry> аа -- getcwd ()
[13:38:44] <gds> bobry: кстати, очень важный момент:
    List.iter makedirs [...];
    with_config go
  -- что будет, если конфига нет?  (например, если запустили в левой директории)
[13:39:05] <bobry> фигня будет
[13:39:34] <bobry> вот почему на нужен контекст ... Global может только getcwd () поюзать
[13:40:32] <gds> не нужен контекст.  в Global запихнуть getcwd, но использовать его только после проверки наличия конфига.  зачем всё усложнять?
[13:41:33] <gds> кроме того, я уверен, что создавать директории нужно только при первом запуске первой инсталляции.  то есть, надо это вынести в ленивое значение, которое форсить в Install.makefile.
[13:43:42] komar вошёл(а) в комнату
[13:44:10] <gds> bobry: скажи, что ты будешь делать, чтобы я занялся другим, либо дообсудим текущее.
[13:44:43] <bobry> не только в makefile, мне эти пути нужны в Source.*
[13:45:40] <f[x]> gds: вроде всё чётко
[13:46:15] <gds> bobry: точно.  значит, List.iter makedirs выношу, увидишь, как.
[13:46:30] <gds> f[x]: ну всё, багословление получено, можно кодить :]
[13:46:37] <bobry> gds: я их выпилил -- см коммит
[13:48:47] <f[x]> и крошитяся баги пред вами рассупониваясь фичами!
[13:50:08] <gds> Так!
[13:52:21] <gds> bobry:
-let base_dir = "_dep"
+let base_dir = Sys.getcwd ()
хмммм
[13:52:43] <bobry> я написал в commit msg :)
[13:53:00] <bobry> base == project_dir, а директория барбары теперь dep_dir
[14:03:05] <bobry> gds: а какой смысл буквы h в hname и htyp?
[14:03:12] <gds> head vs tail
[14:03:34] <bobry> hrm, как то неочевидно :)
[14:03:37] <gds> горшочек, ты меня заставляешь второй или третий раз ребейсить!
[14:03:54] <bobry> sorry
[14:03:59] <gds> меня это ребесит!111 :]]
[14:04:06] <bobry> не ребесись
[14:06:28] <gds> всё.
[14:12:06] <bobry> а где обещанные ленивые пути?
[14:13:02] <bobry> было бы клево кстати при форсе создавать директорию и возвращать путь
[14:14:13] <gds> bobry: пушнул.
[14:15:36] <gds> либо не форсить-создавать, а что-то типа G.path [`Lib|`Bin|`Tmp], чтобы оно просто проверяло, вызвали ли create_dirs (или, хотя бы, есть директория или нет).
[14:17:01] <gds> или, тупее, проверяло, зафорсено ли lazy_dirs_creation.
[14:20:11] <gds> что забыл сказать.  почему именно так сделал: чтобы диры создавались не как в камлобилде, а только при необходимости в них.  чтобы не срать этими _dep, когда это не нужно.
[14:25:40] <gds> lib/site-lib выпилил тоже, ап.
[14:32:10] <gds> запилил TODO.txt
[14:32:55] <Kakadu> >Java — это Domain Specific Language для конвертации XML в стектрейсы.
)
[14:34:29] <Typhon> Kakadu: ты пропустил целый поток подобных, только непереведённых, твитов Н месяцев тому назад %)
[14:35:25] <gds> Typhon: не только он!  и при том, что у тебя френдфид есть для подобного!
[14:35:36] <Kakadu> Typhon: а я не в твиттере
[14:44:37] <Typhon> ну типа были "Haskell is a DSL for writing monad tutorials"
[14:44:45] <Typhon> "Haskell is a DSL for abstracting simple problems into ever-more elaborate abstractions in category theory"
[14:48:16] <gds> понравилось :)
[14:49:15] <gds> Typhon: забыл сказать, что выше говорил именно про нужный todo, вот он: https://github.com/camlunity/barbra/blob/master/TODO.txt
[14:50:17] <gds> кстати, дамы и господа, давайте коррективы к этому TODO, что ещё там нужно сделать в рамках текущей версии1, ну и какие вещи нужно протестировать, чтобы на этапе тестов нашли как можно больше вкусных багов нямням.
[14:51:34] <Typhon> про failwith не понятно — это типа баги и нужно поправить? или наоборот, это ошибочная ситуация, и надо обработать и порайсить?
[14:52:47] <gds> это типа in-code todo, это надо обработать и выдать нормальный результат.
[15:04:04] <gds> bobry: ты придумал эти классы, ты и отвечай.  как мне сделать клонирование, допустим, меркуриаловской репки.  что надо создать и что прописать.
[15:06:50] <bobry> создать класс VCS и научить его командам клонирования для нужных типов VCS
реализовывать нуна два метода
is_available -- который проверяет есть ли у нас нужные бинарники
fetch : dest_dir:string -> (string, exn) res -- который клонирует репку в dest_dir и возвращает энтот самый dest_dir для порядку
[15:08:45] <Typhon> is_available оставили таки?
[15:10:12] <bobry> ага -- имеет смысл, как мне кажется
[15:10:20] <bobry> правда оно пока не задействовано нигде
[15:12:18] <bobry> gds: вощемта я могу сам накидать класс, если ты еще не начал
[15:13:21] <bobry> gds: а ты чего в Install.makefile не удаляешь build_dir, или это должен делать кто-то другой?
[15:14:26] <gds> bobry: не начал, но смотри, для hg vs git нужно разное is_available.  более того, иногда хочется один раз проверить, есть ли у нас git или же откатываться на hg-git (а ведь вариант), ну или hg-svn в случае, если бинарника svn нет.  как это делать?
[15:15:08] <bobry> hg-svn мы никак не можем проверить, оно же плагином идет, не?
[15:15:50] <Kakadu> > This attitude partially explains why support for OCaml under Windows lacks behind: people want it to work, because they somehow have to produce applications running under Windows, but they really don't like this OS and certainly don't want to invest time in learning its gory details in order to improve the situation with OCaml.
[15:18:43] <Kakadu> bobry: а для чего hg-svn?
[15:18:53] <bobry> Kakadu: ну типа если svn'a нема
[15:19:02] <bobry> на самом деле такие финты явно не для первой версии
[15:19:08] <Kakadu> предлагаю пока на это забить
[15:22:40] <Kakadu> а это норм что `ocaml setup.ml -build` требует установленного оазиса?
[15:23:13] <gds> bobry: есть подозрение, что такие вещи (удаление vs не удаление) нужно решать ровно там, где разбираем варианты (именно там содержится логика Temporary | Persistent и переходы между ними), а не тащить как милые сайдэффекты в функцию типа Install.makefile (которая будет использоваться в том числе для билда собственно _проекта_).
[15:24:06] <gds> про hg-svn -- кривенький способ нашёл, "LANG=C hg help -v extensions" -> grep "^\s*enabled extensions:$" и искать.  у меня там находит hggit, например.
[15:24:20] <gds> да, финты не для первой версии, но лучше сделать такие типы, чтобы это в них вписалось.
[15:25:27] <bobry> Kakadu: да, там setup-dev
[15:25:40] <Kakadu> по-моему это не тру
[15:25:41] <bobry> gds: (про hg-svn) как то совсем не кошерно, даже не знаю
[15:25:47] <bobry> Kakadu: это только на время разработки
[15:27:56] <gds> hg-svn -- ну хоть какой вариант, как и hg-git.  потом надо будет.]
[15:28:38] <bobry> как то не стыкуется с принципом наибольшей тупости :)
[15:28:51] <gds> так это я в версию2 запихну ща.
[15:29:36] letrec вошёл(а) в комнату
[15:29:45] <gds> ну вот и всё.
[15:29:49] letrec вышел(а) из комнаты
[15:30:05] letrec вошёл(а) в комнату
[15:30:30] <gds> bobry: про удаление после билда разобрались?  про классы (очевидно разные) для hg, git -- оформишь?
[15:43:15] <bobry> gds: с удалением еще вот что -- archive возвращает путь к папке из архива, даже если мы ее удалим _dep/tmp/<name> останется
[15:44:15] <gds> а я ж говорил, что надо делать не /tmp/pkg/pkg-0.1.2.3, а более честно.  однако подумаю.
[15:44:41] <gds> придумал.
[15:46:48] <gds> после распаковки архива смотрим, есть ли там ровно одна директория.  если есть -- mv pkg-0.1.2.3 ../brb-build-<pkg>, удаляем /tmp/pkg, имеем /tmp/brb-build-<pkg> как результат.
[15:47:33] <bobry> мне кажется честнее делать mv pkg-0.1.2.3/* ../
[15:47:57] <gds> это только если там нет файла или директории с именем pkg-0.1.2.3 внутри.
[15:49:32] <f[x]> не надо ничего мувать
[15:52:32] <gds> расскажи решение.
[15:52:51] <f[x]> пусть _dep/tmp остаётся, проблема что ли?
[15:53:33] <gds> некрасиво.  будет _dep/tmp/pkg, даже.
[15:54:36] <f[x]> потом можно поудалять пустые каталоги рекурсивно
[15:54:49] <f[x]> лучше чем мувать
[15:55:01] <f[x]> с кучей краевых случаев
[16:04:11] <bobry> gds: sh: ./configure: Permission denied
Fatal error: exception Res.Sys.Command_failed("./configure", _)
[16:04:19] <bobry> надо делать +x или sh configure
[16:11:23] ad1862 вошёл(а) в комнату
[16:13:11] <ad1862> O'Caml for iOS (O'Caml on iPod Touch/iPad/iPhone) http://web.yl.is.s.u-tokyo.ac.jp/~tosh/ocaml-on-iphone/
[16:13:17] <ad1862> http://psellos.com/ocaml/compile-to-iphone.html
[16:14:52] <ad1862> игрушка на камле: http://itunes.apple.com/us/app/cassino/id411381417?mt=8&ign-mpt=uo%3D4
[16:15:52] <bobry> gds: и еще, в чем выражается "разная специфика"?
[16:15:56] <bobry> это я про VCS
[16:16:19] <bobry> реквестирую ссылки на камлорепки без зависимостей в svn / cvs / darcs и bzr
[16:21:52] <gds> (отвлекли на реаллайф)
ну да, мувать криво этими краевыми случаями.  а может сделать, чтобы возвращалось что-то типа Bundled (Temporary, ..., [`Cleanup of path])?
[16:23:42] <gds> bobry: +x криво, всяко лучше через sh.  но "sh filename" выполняет как шелл-скрипт, надо "sh -c filename".
[16:24:21] <bobry> поправишь? я там пушнул vcs
[16:24:22] <gds> bobry: разная специфика -- пока это разные командные строки.  может потом понадобится что-то с разной обработкой веток-ревизий.
[16:24:36] <gds> поправлю sh -c
[16:24:40] <bobry> когда понадобится, тогда и разнесем imho
[16:24:50] <bobry> это в любом случае будет не больно
[16:25:23] <gds> ну смотри сам.  а командные строки?  clone vs checkout.
[16:25:30] <bobry> fuck it?
[16:25:41] <gds> чочо
[16:25:43] <bobry> там порядок аргументов по моему один и тот же
[16:26:34] <gds> смотри сам.  тогда у тебя будет класс, принимающий имя бинарника и собственно опцию clone/checkout.
[16:27:01] <gds> если что -- классами легко разнести, факт.  просто осознавай такую возможность.
[16:27:31] <bobry> ну как то так ага, просто пока нет явной необходимости -- лучше не разносить
[16:27:43] <bobry> а в версии 1 этой необходимости не предведится
[16:30:05] <bobry> плохо читается наш жирный go
[16:30:10] <bobry> надо что-то сделать с ним
[16:32:23] <gds> вот только не надо ничего с ним делать, он работает.
[16:33:01] <gds> он работает так, что в одном определённом месте разбирает один тип данных полностью.  это хорошо.
[16:39:24] <bobry> gds: а нужен ли нам Res если мы все равно юзаем res_exn?
[16:39:30] <bobry> точнее exn_res
[16:40:21] <gds> в конкретном частном случае, если везде будет exn_res -- не нужен.  в более общем случае, потом, вероятно будет нужен (или не Res, а другая манатка -- например, на случай параллельных действий в пределах lwt).
[16:41:07] <bobry> не думаю что мы потащим с собой lwt :)
[16:42:08] <Kakadu> ad1862: боян
[16:43:13] <gds> поглядим.  но пофиг.
[16:44:54] <gds> bobry: "пропускать установку пакетов, которые уже есть в _dep" -- зачем/почему/как?
[16:45:18] <bobry> gds: а ты попробуй два раза подряд brb.byte запустить
[16:45:27] <bobry> ocamlfind install ругаится
[16:47:25] <ad1862> Kakadu: баян так баян, через поиск в логах чата не нашел ссылок на такое (так обычно делаю чтобы не боянить)
[16:48:22] <f[x]> боян это нормально, в мыллисте было, но и здесь не повредит
[16:48:32] <f[x]> а ещё лучше в вики
[16:48:52] <gds> а вот тут, мне кажется, надо просто мочить всё в _dep/{bin,lib} при старте.  а вдруг сверху версия изменилась -- обрекать пользователя руками чистить всё?  у нас же хрень для "запустил - сбилдил - замочил".  для более постоянного хранилища -- ставить системно то, в чём уверен.
[16:49:45] <bobry> gds: тобишь в принципе чистить venv? hrm ...
[16:49:50] <gds> ну или не системно, а venv
[16:50:24] <bobry> тобишь надо запилить Barbra.cleanup ()
[16:50:46] <bobry> на самом деле проще просто удалять _dep и все ...
[16:50:48] <gds> ну пока не знаю более нормальных подходов.  остальные подходы требуют более сложных действий -- учёт версий, учёт "доверия" (кому доверяют, кому нет), может даже сохранение ревизии сбилденной версии в случае vcs.
[16:51:29] <gds> просто _dep -- вариант, если это прописать в ТЗ1, чтобы никто не клал в _dep/src ничего, например.
[16:51:42] <Kakadu> f[x]: просто здесь уже было когдато
[16:51:51] <bobry> у нас уже нет src по тз
[16:51:59] <gds> Kakadu: ну и что, что боян, вдруг кто не видел.
[16:52:10] <gds> bobry: это да, но надо прописать, чтобы никто туда не клал.
[16:52:15] <gds> в _dep вообще, в целом.
[16:52:39] <bobry> Library "fileutils"
  BuildDepends: unix
[16:52:45] <bobry> гг.. вот тебе и msvc
[16:52:50] <gds> лол
[16:53:00] <gds> unix на msvc работает нормально.
[16:53:11] <bobry>   InternalModules: ...
                   Win32Path
[16:53:14] <bobry> надо брать
[16:53:39] <gds> смотри сам, мне кажется пока проще command ..
[16:54:45] <bobry> ну, там точно есть все что нам надо
[16:54:50] <bobry> но command действительно проще
[16:54:54] <gds> cleanup -- вариант, но по событиям 1. старт brb, 2. успешный билд всего, что затребовали.  В случае неуспешного билда -- необходимо оставить _dep так, как она была, чтобы пользователь мог а) разобраться с проблемой, б) повторить частичный билд в будущих версиях, в) в случае, если зависимости сбилдились -- перезапустить make myprog, не перезапуская brb.
[16:55:11] <gds> про command я в todo отписал, кстати.  квотинг когда-нибудь подсунет подлянку.
[16:55:46] <bobry> ты про >>=?
[16:55:58] <gds> я про [| "rm" ; "-rf" ; path |]
[16:56:11] <bobry> аа.. да, неисключено
[16:56:41] <bobry> надо про cleanup в туду
[16:56:59] <gds> и в ТЗ
[16:57:24] <gds> я впишу
[16:59:57] <gds> есть
[17:12:21] <gds> леплю class directory path : source_type = object
[17:15:21] <bobry> okay
[17:19:24] <gds> есть.
[17:22:43] <gds> видимо, пошёл избавляться от command.
[17:23:09] <bobry> я пока afk, часов до 9
[17:24:26] <bobry> gds: а почему Filew.is_directory а не Sys.is_directory?
[17:24:47] <gds> потому что Sys.is_directory кидает исключение, если не найдено.
[17:25:14] <bobry> аа
[17:25:21] <bobry> глупый stdlib
[17:26:15] <gds> не глупый, заточенный под другое.
[17:26:43] <bobry> под что? is_directory явно предикат, то бишь должен возвращать true | false
[17:26:53] <bobry> а не true | exn
[17:27:20] <gds> для файлов возвращает false.
[17:29:22] bobry надо сравнить два dfa, один из которых обязательно минимален, а другой мб любой ... кто бы мог подумать что это так геморно
[17:29:27] letrec вышел(а) из комнаты
[17:37:50] <bobry> gds: ты щас будешь fileutils впиливать?
[17:38:09] <gds> нет, пока избавляться от command.  не считаю нужным fileutils сейчас.
[17:38:20] <bobry> мм, а что вместо command тогда?
[17:38:31] <bobry> или просто абстрагируешь файловые операции в отдельный модуль
[17:39:13] <gds> exec : string -> string array -> (unit, exn) Res.res
[17:39:19] <gds> описал же в todo
[17:39:20] <bobry> oh, okay
[17:39:26] bobry пока не смотрел :)
[17:40:52] ad1862 вышел(а) из комнаты
[17:55:39] <gds> пушнул, последний коммит явно покажет, что к чему, если кто продолжать будет.  а сейчас -- убегаю на пару часов, видимо.
[18:01:05] shaggie вошёл(а) в комнату
[18:47:30] Kakadu вышел(а) из комнаты
[19:31:45] <gds> f[x]: тебя хотят в рассылке
[19:32:06] <f[x]> ?
[19:32:25] f[x] до сих пор почтовый клиент не настроил на новой хате
[19:32:34] <f[x]> даже камло ещё не установил!
[19:33:26] <gds> хотят узнать, можешь ли ещё хадсон-хреней поднять.
[19:33:36] <f[x]> слейвов?
[19:33:43] <gds> да
[19:34:17] <f[x]> у меня железа нету больше
[19:34:27] <f[x]> как тред называется?
[19:36:24] <f[x]> а, вижу
[19:37:44] <f[x]> с виндовыми слейвами трабла одна - их долго мышкоклацать настраивать
[19:38:06] <f[x]> под юниксовые у меня скрипт который тянет/компилит камло и пару либ
[19:38:17] <f[x]> а так то проблем нет
[19:38:32] <f[x]> gds: мерси за нотификасьон
[19:44:38] shaggie вышел(а) из комнаты
[19:45:13] Kakadu вошёл(а) в комнату
[19:58:27] <gds> выпилил command где надо.
[20:09:33] Typhon вышел(а) из комнаты
[20:15:34] Andrey Popp вошёл(а) в комнату
[20:22:45] <Kakadu> в TODO сказано потестить на норм сборку где надо трогать ld.conf. Не собралось. http://paste.in.ua/3452/
[20:22:48] <Kakadu> gds: bobry: ^^
[20:23:52] <gds> Kakadu: увидел.
[20:25:50] <gds> Kakadu: поставь OCAMLFIND_LDCONF=ignore в окружении, потестим, поможет ли.
[20:26:38] <Kakadu> ошибки нет
[20:27:16] <gds> а в _dep/lib/stublibs/ есть соответствующие .so?
[20:27:48] <Kakadu> $ ls _dep/lib/erm_tls/
dllerm_tls.so  erm_tls.a  erm_tls.cma  erm_tls.cmxa  liberm_tls.a  META  mltls.cmi  mltls.mli
[20:27:48] <gds> к этому проекту должна быть dllerm_tls.so только.  (к другим -- другие.)  а у тебя что?
[20:28:06] <Kakadu> stublibs не существует
[20:28:37] <gds> всё понял, ща ещё эксперимент проведём.
[20:30:30] <gds> Kakadu: обновись с репки, убери OCAMLFIND_LDCONF из окружения, запусти, интересен вывод.
[20:31:41] <Kakadu> убрать в смысле сделать пустым?
[20:31:51] <gds> если делал export -- сделай unset.
[20:34:03] <Kakadu> ocamlfind: [WARNING] You have installed DLLs but the directory /media/disk/kakadu/prog/barbra/_dep/lib/stublibs is not mentioned in ld.conf
[20:34:07] <Kakadu> но в остальном ОК
[20:36:13] <gds> это по логике нормально.  для локального проекта ld.conf не будет нужен.  с другой стороны, варнинг некрасивый.  я его пока запишу.
строчка конфига -- точно "dep erm_mltls git git://github.com/ermine/mltls.git"?
[20:37:00] <Kakadu> угу
[20:55:12] ermine озирается -- кто хайлатил?!
[20:57:34] <ermine> я тут борюсь с маркдауном, сама чуть не полный даун
[21:05:49] Andrey Popp вышел(а) из комнаты
[21:12:45] dzhon вошёл(а) в комнату
[21:13:52] ftrvxmtrx вышел(а) из комнаты
[21:15:27] <Kakadu> ermine: мы тут на твоих либах барбру тестиь
[21:18:13] <gds> f[x]: вот не знаю, как корректно решить ocamlfind warning, который на несколько сообщений выше в чятике.  есть идеи?
[21:19:21] <gds> особенно учитывая, что в make install подсовывать обрезанный ld.conf нехорошо, так как там могут участвовать байткод-исполняемые, требующие нормального ld.conf.
[21:29:37] <ermine> (с даунистическим приветом) подсовывать камлофинду левый конфиг с левым путем к лд.конфу
[21:32:48] <gds> ermine: это тоже вариант.
[21:36:26] <ermine> а еще в этом ld.conf первой строкой может быть путь в общедоступную помойку
[21:50:28] <gds> это ведь надо создавать ld.conf, что не очень хорошо.
[21:55:00] <ermine> его сначала создает инсталлятор камла
[21:55:21] <ermine> и у него свой подкаталог дллок
[21:55:32] <gds> ermine: ты вне контекста.  в текущем контексте всё ставится внутрь текущего проекта.
[21:57:12] <ermine> gds: ну я примерно знаю, что тебе не нравится варнинг камлофинда, что не может вписать в ld.conf, а еще оно ругается когда в ld.conf указан несуществующий путь!
[21:57:29] ermine даунистически помахала ручкой и решила пойти на горизонталь
[22:12:22] dzhon вошёл(а) в комнату
[22:15:09] f[x] вошёл(а) в комнату
[22:15:11] f[x] вышел(а) из комнаты
[22:16:12] <bobry> пасаны, какой расклад
[22:17:23] dzhon вышел(а) из комнаты: I'm happy Miranda IM user. Get it at http://miranda-im.org/.
[22:17:56] f[x] вошёл(а) в комнату
[22:18:47] <f[x]> gds: -ldconf ignore не спасает?
[22:21:55] ermine вышел(а) из комнаты
[22:24:21] ftrvxmtrx вошёл(а) в комнату
[22:37:13] Andrey Popp вошёл(а) в комнату
[23:00:21] <gds> bobry: в репке расклад пока
[23:00:25] <gds> f[x]: проверю сейчас.
[23:13:06] <gds> f[x]: помогло!  благодарю.
только нет уевренности, что CAML_LD_.. стоит абсолютно правильно, но потестим потом.
[23:23:58] <gds> bobry: почти единственное, что нужно для версии1 -- это удаление _dep при старте и успешной компиляции.
ну и надо подумать, как быть в типичном случае, когда в _dep лежит всё правильное, а разрабатывать надо собственно проект.  тут надо и способ сбросить/удалить _dep (пока rm -rf _dep ок), и как-то сделать так, чтобы brb с подобным же окружением мог скомпилять проект (то есть, запустить Install.* на директории "корень проекта").
пока не знаю, как будет лучше, но с вероятностью 80% на сегодня отваливаюсь.
[23:24:49] <bobry> мне кажется что можно пойти по пути оазиса и удалять _dep только при запуск brb, то есть никаких cleanups для успешного билда итп
[23:25:13] <bobry> чем меньше логики в этом месте -- тем лучше, первая версия же
[23:25:44] <gds> тоже вариант.  только про итп не понял, вроде больше случаев удаления не думали.
[23:26:47] <gds> может сделать какой-нибудь ключ, чтобы в мейкфайле можно было прописывать "all : brb set_env $(MAKE) all", хз.
[23:32:28] <bobry> вместо итп должны были быть примеры когда мы еще удаляем _dep
[23:32:31] <bobry> но похоже что их нет :)
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!