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

GMT+4
[00:13:08] <gds> а вот про типы (про их представление) -- думается вот что.  Скажу сразу, что я мало работал с первоклассными модулями.  Но, по тупому предположению, надо сделать сигнатуру модуля, которой удовлетворяют все, кто только предоставил тип, а функции разделить на opt_{eq,cmp,hash} и has_{eq,cmp,hash}, и требовать везде opt_*, но в случаях, когда нужна обязательно-осмысленная функция, требовать has_функция.
Если функция has_функция определена (по семантике), предпологаем, что opt_функция имеет физически равное значение.  Если opt_функция физически равна "no_функция_for_this_type" (например, "no_cmp_for_this_type = fun _ _ -> raise No_fckng_cmp"), то has_функция тоже равна такому физически.
То есть, к описанию типа будут требоваться все opt-функции (часть из которых выдаёт исключения), и некоторые (по нужде) has-функции.  Таким образом, часть условий (самых важных) можно будет проверить статически, требуя нужные has-функции в типе модуля, а часть условий, опциональных, -- динамически, путём физического сравнения opt-функции с заранее определёнными значениями типа no_cmp, no_eq, no_hash.
[00:20:32] ermine не помнит, чтобы /me восхищалась меркуриалом
[00:21:32] <komar> gds: КОСТЫЛИ
[00:21:45] komar вышел(а) из комнаты
[00:21:49] <ermine> у меркуриала дела вообще обстоят еще худе, чем с гитом: по гиту я уже прочитала вагон доков (хотя мало что помню), но по меркуриалу - не читала и лень
[00:24:13] <gds> ermine: вот!  ты абсолютно правильно подметила суть.  по меркуриалу я тоже почти не читал документации, но там это мало нужно.
[00:25:17] <gds> ну, конечно, тупой туториал, да "hg --help команда" -- это бывает, но реденько.  в отличие от гита.
[00:25:48] <ermine> gds: а там есть бранчи для фич? если да, то что делать, если случайно закоммитил изменения не в ту ветку?
[00:26:16] <ermine> в гите - надо отменить коммит, но лень было искать как это делается
[00:26:29] <ermine> сочла что проще скачать репу и похерить ветку
[00:26:54] <ermine> ибо какая-то косноязычная ветка получилась, ну ее
[00:30:23] <Typhon> наверняка надо было git help rebase сделать
[00:30:36] <Typhon> и посмотреть там те сотни флагов, которые нужны для простого rollback %)
[00:30:37] <gds> ermine: бранчи есть разные, под разные нужды.  и для фич тоже.
отменить коммит -- hg rollback, но в гите тоже это делается просто.  по собственно возможностям они равны.  дело в юзабилити, не больше.
[00:31:54] ermine шарахается от Typhon
[00:32:17] <ermine> читать еще какую-то доку, когда вот так проперло от строгания клиента
[00:43:40] <Typhon> bobry, что-то я не понял, как мне пины настраивать, если онейрик подключить: если для ocaml, то он брокен-пакгаге пишет, требует ocaml-base и ocaml-nox-base -- это типа мне руками надо для каждого пакета пин делать? oO и там 3.12.0 :-( а если от ocaml-task-forces подключать репки, то lwt, например, поставить не могу -- libev'а подходящего нету :-(
[00:43:42] <Typhon> бида
[00:43:53] <Typhon> (походу проще руками собрать таки %) )
[00:48:45] komar вошёл(а) в комнату
[00:48:56] <ermine> ea
[00:49:31] <ermine> уф то бишь
[00:49:36] ermine вышел(а) из комнаты
[00:57:38] arhibot вошёл(а) в комнату
[00:57:42] arhibot вышел(а) из комнаты
[01:04:01] <Kakadu> ermine: затра будут тебе табы на виджетах
[01:04:46] Kakadu вышел(а) из комнаты
[01:38:54] ygrek вышел(а) из комнаты
[01:50:09] komar вышел(а) из комнаты
[02:09:09] Typhon вышел(а) из комнаты
[02:43:44] ftrvxmtrx вышел(а) из комнаты
[02:46:05] shaggie вышел(а) из комнаты
[09:55:03] ftrvxmtrx вошёл(а) в комнату
[10:39:29] letrec вошёл(а) в комнату
[10:59:17] ermine вошёл(а) в комнату
[11:12:23] ygrek вошёл(а) в комнату
[11:51:52] ermine копипастует куски кода из сульци в горгону
[12:02:44] <ermine> мда, я бы щас сказала, что сульци неплохо спроектирован местами
[12:20:46] letrec вышел(а) из комнаты
[12:22:34] Kakadu вошёл(а) в комнату
[12:27:43] <Kakadu> ermine: можешь напомнить к чему ты спрашивала про коллекцию ококшек с табами?
[12:29:23] <ermine> Kakadu: может, будет клон горгоны на qt?
[12:29:51] <Kakadu> ermine: это у которой волосы были  в виде змей?
[12:30:05] <ermine> там виджетов немного - дерево, табы, строчка ввода и отображение текста
[12:30:13] <ermine> с картинками
[12:30:38] <Kakadu> а где на неё посмотреть?
[12:30:52] <ermine> да, змеиная голова
[12:31:03] <ermine> многа змей - разные гуи :)
[12:31:20] <Kakadu> аж две змеи будет :)
[12:31:25] <ermine> а может наоборот сестрами назвать вариации
[12:31:35] <Kakadu> дык где на неё посмотерть?
[12:31:48] <ermine> третью сестру хорошо бы на mac cocoa
[12:32:34] <ermine> ну на голое окошко - на гитхубе
[12:32:45] <ermine> я пока только кишки рисую
[12:33:02] <ermine> и стараюсь держать их оторванными от гуя
[12:33:36] <ermine> у меня ж щас lablgtk
[12:34:09] <ermine> а напомните, когда map эффективнее чем hashtable?
[12:34:16] komar вошёл(а) в комнату
[12:34:40] <Kakadu> ermine: когда хеш-функцию не придумать?
[12:34:45] <Kakadu> :)
[12:35:13] <ermine> Kakadu: а это когда?
[12:35:38] <Kakadu> когда храним что-то сложное наверное
[12:36:05] <ermine> ну в камле все это можно в хэштабле
[12:36:33] <ermine> правда таки не всегда, если вспомнить недавнюю бучу в мейллисте
[12:37:12] <ermine> хотя я сомневаюсь, что мап справится с референсами
[12:37:33] <Kakadu> ermine: где доставать пакет xml для горгоны?
[12:37:53] <ermine> Kakadu: все на гитхубе у меня
[12:38:05] <ermine> Kakadu: ставь там treap, xmpp, xml, mltls
[12:41:10] <Kakadu> ermine: может надо будет потом твой xml обозвать как-то по-хитрее, а то я сильно стребался что сейчас конфликт с чем-то будет...
[12:42:10] <ermine> хех
[12:42:26] <ermine> а на гитхубе есть функция переименования репы?
[12:43:00] <Kakadu> кликай на admin
[12:43:13] <Kakadu> в репе
[12:44:03] <ermine> неужто переименуется?
[12:44:32] <Kakadu> там даже кнопка rename есть
[12:45:08] <ermine> ну тогда еще придумать во что переименовать
[12:45:20] <ermine> erm_xml сойдет?
[12:45:55] <ygrek> зачем репо то перименовывать?
[12:46:02] <ygrek> в META файле достаточно
[12:47:56] <ermine> чтобы симметрично с именем либлы
[12:48:29] <ygrek> только неудобство тем кто уже склонировал
[12:48:40] arhibot вошёл(а) в комнату
[12:48:47] <Kakadu> ermine: пойдет
[12:49:14] <ermine> ну можно переименовать все репы там по такой маске, чтобы наступил глобальный гемор
[12:49:33] <ermine> вообще идея хорошая, надо будет заняться как-нить
[12:50:00] arhibot вышел(а) из комнаты
[12:50:12] <ermine> erm_xml, erm_xmpp, erm_treap, erm_tls etc
[12:50:55] <ermine> ладно, у меня там щас попытка прикрутить чат в конфе в горгоне
[12:57:30] <Kakadu> ermine: gorgona.conf ?
[12:57:46] <Kakadu> я туплю и не могу найти
[13:00:15] <ermine> щас закоммичу пример
[13:00:17] <ermine> забыла
[13:00:23] <bobry> Typhon, APT:Default-Release
[13:00:45] <ermine> а там нету точно?
[13:00:53] <ermine> gorgona.conf.example
[13:01:27] <ermine> впиши там jid и пароль
[13:04:28] <Kakadu> ermine: завтыкал)
[13:05:00] ygrek вышел(а) из комнаты
[13:05:03] ygrek вошёл(а) в комнату
[13:05:32] <ermine> пора уже готовить обед
[13:11:08] <ermine> Kakadu: запустилось?
[13:11:20] <Kakadu> ermine: угу
[13:11:50] <ermine> Kakadu: там всего два хоткея - q и j
[13:12:03] <Kakadu> да я понял
[13:12:28] <ermine> Kakadu: если у тебя получится в общем вот такой функционал - уже хорошо для старта, я буду тогда ставить галимый qt
[13:13:12] <ermine> благо что его можно тут и на макбуке поставить
[13:13:27] <ermine> Kakadu: а какой версии qt?
[13:25:13] <Kakadu> 4.7.3
[13:25:17] komar вышел(а) из комнаты
[13:27:09] komar вошёл(а) в комнату
[13:35:54] ответ вошёл(а) в комнату
[13:37:18] <ответ> Боброе утро
[13:37:40] <ответ> мне кто-то, кажется, bobry, рекламировал oasis для сборки
[13:38:04] ftrvxmtrx вышел(а) из комнаты
[13:38:23] <ответ> bobry: не подскажешь, где к нему найти примеров для сборки с js_of_ocaml?
[13:39:09] <ermine> в макпортах 4.7.4
[13:39:33] <Kakadu> ermine: годится
[13:39:55] <ermine> есть и третий :)
[13:40:11] <ermine> 3.3.8
[13:40:28] <Kakadu> ermine: не надо некромантии
[13:41:52] ftrvxmtrx вошёл(а) в комнату
[13:42:14] Typhon вошёл(а) в комнату
[13:49:47] <ygrek> ответ: js_of_ocaml это препроцессор же?
[13:50:04] <ответ> вроде не
[13:50:32] <ygrek> просто либа? тогда в чём проблема?
[13:50:44] <ответ> транслятор это
[13:51:01] <Kakadu> ответ: может стоит спросить в ирке оксигена?
[13:51:10] <ygrek> оазис подходит для 90% типичных проектов
[13:51:28] <ответ> Kakadu: у меня сложилось ощущение, что они там исключительно на мэйкфайлах сидят :)
[13:51:40] Typhon вышел(а) из комнаты
[13:51:57] <ygrek> всякие препроцессоры, кастомные компиляторы, кодогенераторы и прочая - оазисом (в текущем виде) не покрываются
[13:51:59] <Kakadu> а может оазис от лукавого дегалля?
[13:52:02] <Kakadu> л*
[13:52:30] <ygrek> т.е. всё равно придётся ручками дописывать какие-то шаги сборки
[13:52:55] <ответ> печалька
[13:53:11] <ответ> эх, сделал бы кто cmake для окамла
[13:53:36] <ygrek> и в чём была бы разница?
[13:54:37] <ответ> ygrek: ну, как правило, в cmake для всего есть готовые макросы
[13:54:52] <ответ> поэтому можно просто сказать, с какими либами и что собирать
[13:55:43] <ответ> даже для всякой нестандартной сборки типа Qt есть макросы, которые говорят, что надо предварительно натравить moc/uic и т.п.
[13:55:45] <ygrek> гг, а эти макросы там из воздуха взялись? :)
[13:56:13] <ygrek> то же самое с оазисом, пишешь свой кастомный шаг для сборки с js_of_ocaml и суёшь его в апстрим
[13:56:25] <ответ> там у них как минимум более человеческий синтаксис, чем у мэйкфайлов)
[13:56:58] <ответ> а с js_of_ocaml'ом я тупо сам не особо разобрался
[13:57:40] <ответ> за меня дефолтный мэйкфайл какие-то команды вызывает, но их вид навевает на меня мысли о гите — тонна опций и ничего осмысленного
[13:59:23] <ygrek> ты наверное имеешь ввиду всю связку ocsigen+eliom, т.к. сам js_of_ocaml концептуально вроде прост
[13:59:32] <ответ> угу
[13:59:56] Kakadu вышел(а) из комнаты
[14:00:08] Kakadu вошёл(а) в комнату
[14:00:12] <ответ> у меня перед этим ещё и ocamllex/ocamlyacc запускаются :)
[14:00:29] <ответ> я пока разобрался, как заставить это всё компилиться, чуть не опух
[14:00:35] <ygrek> ну там конечно всё на порядок сложнее
[14:01:36] Typhon вошёл(а) в комнату
[14:02:56] <ответ> больше всего меня убило то, что ocamlyacc генерит .ml+.mli, но если результат потом переименовать в .eliom и собирать для клиент-сайда, то компилиться ничего не будет, с руганью на то, что этот .mli надо было как-то хитро скомпилировать. А вот если .mli нафиг стереть, то всё пройдёт как по маслу)
[14:03:25] <ygrek> ну логично :)
[14:03:29] <ответ> дааа?
[14:03:49] <ygrek> ну отдельный компилер, он небось mli как-то препроцессит
[14:03:56] <ответ> вот объясни мне, почему .ml-лексер не компилится без интерфейса парсера, а .eliom-лексеру он наоборот противопоказан?
[14:04:36] <ygrek> почему лексер не компилится без интерфейса парсера?
[14:04:46] <ygrek> должен компилится
[14:04:46] <ответ> потому что лексер его использует
[14:04:59] <ygrek> но интерфейс ему для этого не нужен
[14:05:26] <ygrek> т.к. компилер сам сгенерит дефолтный интерфейс "всё экспортировано" если mli файла нету
[14:05:49] <ответ> тем не менее, если компилять сервер-сайд, компиляться он не будет)
[14:06:10] <ygrek> странно, покажи что за ошибка
[14:06:30] <ygrek> может порядок сборки неправильный?
[14:06:50] <ответ> айн момент
[14:07:30] <Kakadu> тьфу,  я только сейчас сообразил что ответ==torkve
[14:07:41] <Kakadu> разумеется он спрашивал в ирке
[14:07:49] <ответ> :)
[14:10:37] <ygrek> охщи, а с какого фига новый lwt требует 3.12?
[14:10:48] <ответ> ygrek: http://pastebin.com/umjfBdfu
[14:10:50] <ответ> как-то так
[14:11:39] <ответ> если не делать rm yobaParser.mli, то всё будет зашибись)
[14:12:52] <Typhon> ygrek, давно уже требует, зачем -- хз
[14:15:56] <ygrek> ответ: что это за ахтунг?
> ocamlfind ocamldep -package lwt,ocsigen,num -I "`ocamlc -where`" -I `ocamlfind query ocsigen`
[14:16:25] <ответ> эээ, генерация зависимостей?
[14:16:33] <ygrek> не, я про -I "`ocamlc -where`"
[14:16:39] <ygrek> и query ocsigen
[14:17:58] <ygrek> ну дык, лексер компилится до парсера, поэтому он его и не находит
[14:18:18] <ygrek> и почему parser.mli в аргументах ocamldep?
[14:18:27] <ygrek> давай урлу репки
[14:18:39] <ygrek> попробую причесать
[14:19:16] <ответ> потому что там вообще подставляется: $(FILES:.ml=.mli) $(FILES)
[14:20:11] <ответ> половины этих файлов нема
[14:20:28] <ответ> http://sorokdva.net/yoba.tar.gz
[14:20:40] <bobry> Typhon: ты APT:Default-Release нагуглил?
[14:21:02] <bobry> кстате lwt умеет oasis, странно что js_of_ocaml нет
[14:21:12] <bobry> хотя я не смотрел как оно собирается / работает
[14:21:28] <Typhon> bobry, нагуглил, но он какое-то не ок -- я с преференсами игрался. и вообще обновился до онейрика, хочется бить ногами коммитеров %)
[14:22:29] <bobry> Typhon: зря-зря, по идее нужно было default release поставить, а потом добавлять apt-get install ... -toneiric когда надо чего нить из unstable
[14:23:27] <Typhon> я ожидал, что достаточно  для ocaml пин настроить, и дальше версии сами разрулятся, ан нет.
[14:23:57] <ygrek> аргх!
[14:24:27] <ответ> штирлиц понял, что сейчас его будут бить
[14:24:32] <bobry> не, само оно не разруливается
[14:24:33] <ответ> ygrek: ты про мой код?)
[14:24:37] <ygrek> ответ: принято в tar.gz архивах каталог на верхнем уровне делать!
[14:24:43] <ответ> упс
[14:24:47] <ygrek> ща до кода доберусь :)
[14:24:48] <ответ> я на автомате
[14:25:03] <ygrek> я тоже на автомате :)
[14:25:07] <ygrek> распаковал
[14:25:25] <ygrek> хорошо хоть там файлов мало
[14:26:52] <Typhon> bobry, мне не очень понятно почему. вот есть у меня дефолт (натти) с P = 500. есть  онейрик с P = 300. Есть пакет окамл из онейрика с P = 600. я ставлю ocaml, он берётся из онейрика. дальше ему нужны ocaml-base и ocaml-nox, по идее, у него два кандидата, почему он из онейрика не смог взять, а завопил про брокен пакгагес?
[14:29:04] <bobry> я если честно не знаю как оно *должно* работать
[14:29:22] <bobry> щас с камло нормально только в debian sid / arch
[14:29:41] <ответ> Typhon: ты через apt-get или aptitude ставишь?
[14:29:50] <Typhon> если от окамл таскфорсес подключить репку, то лвт нельзя, например, поставить -- либев не тот
[14:29:57] <Typhon> ответ, apt-get'ом
[14:30:00] <ответ> apt-get в таких ситуациях с зависимостями плохо разбирается
[14:30:23] <bobry> кстати может aptitude попробовать действительно?
[14:30:32] letrec вошёл(а) в комнату
[14:31:06] <ygrek> ответ: если закомментить lwt из yoba.ml то весь проект собирается простым ocamlbuild yoba.native
[14:31:26] <Typhon> ну теперь уже поздно, теперь у меня онейрик, ггг. и я пытаюсь найти, куда они спрятали все настройки (даже в гноме классик!)
[14:31:55] <ответ> хммм, посмотрим-ка...
[14:32:05] <ответ> Typhon: оооо
[14:32:12] <ответ> найди в репозиториях gnome-tweak
[14:32:33] <Typhon> вот я ща убунту-твик ставил, там тоже ничего нету почти. попробую гноме-твик, спасибо
[14:32:43] <Typhon> НО ЭТО ЖЕ ВИНДОВСТАЙЛ!
[14:32:53] <ответ> без него я очень долго матерился, обнаружив, что шрифты сбросились на дефолтные и их сменить нельзя
[14:33:01] <Typhon> ДА!
[14:33:08] <Typhon> шрифты больше всего бесят
[14:33:16] <ответ> это закос под макось)
[14:33:24] <ответ> ты не должен хотеть менять системные шрифты
[14:33:28] <ermine> /похоже что jane street core - сакс
[14:33:42] <ermine> проблематично скомпилить уже на двух системах
[14:34:01] <bobry> ermine: а что именно не собирается?
[14:34:31] <ermine> ну щас не находит sexplib
[14:34:45] <ermine> а раньше тут конфлик по версии с type-conv
[14:35:31] <bobry> там надо type-conv последний если что 3.0.4
[14:36:17] <ermine> в маке он еще 2.x
[14:36:25] <ermine> а у меня был тут 3.0.1
[14:36:36] <ermine> щас поставлю 3.0.4, раз есть свежак
[14:36:42] <ermine> а оазис у тебя собрался?
[14:36:43] <bobry> там в 3.0.X какие то баги были до 3.0.4
[14:36:46] bobry уже не помнит что там
[14:36:49] <bobry> oasis собрался ага
[14:36:56] <ygrek> вот кстати легалл пилил решалку зависимостей с версиями в оазисе, а на практике никто даже простейший случай минимальных зависимостей не указывает
[14:37:09] bobry указывает
[14:37:15] <bobry> и в core тоже они есть
[14:37:26] <ответ> ygrek: хм, ругается, что XHTML не находит
[14:37:34] <ermine> ну в системе пакетманагеров надо следить, да
[14:37:43] <ответ> и что-то я не нахожу, как ему инклюд-пути правильно скормить
[14:37:45] <ygrek> ну я там всё закомментил, оставил только тот старый loop
[14:37:45] <ermine> а когда вразнобой - ахтунг
[14:38:03] <ответ> на -I `ocamlfind query ocsigen` он ругается
[14:38:09] <bobry> ermine: будь готова к тому что odn не соберется с новым type-conv
[14:38:14] <ygrek> ответ: ща, я поставлю зависимости
[14:38:18] <bobry> там надо явно в модуль Gen пару удаленных функций запихать
[14:38:22] <ygrek> там просто пакеты надо указать
[14:38:44] <ermine> а oasis-db уже вообще чонить значит?
[14:39:26] <ermine> сам qt куда проще поставить
[14:39:43] <ermine> камло сасет
[14:40:02] <bobry> ermine: ну odb из него ставит все
[14:41:01] <ygrek> ответ: ocamlbuild -pkgs lwt yoba.native
[14:41:16] <ygrek> и -pkgs добавляй пока компилер ругается
[14:41:28] <ygrek> там ocsigen.xhtml вроде
[14:41:51] <gds> ermine: а надо, чтобы и лизало вдобавок?
[14:43:11] <ygrek> как же я ненавижу js линки на сайте ocsigen
[14:43:32] <ygrek> никогда не знаешь - нажалось оно или нет
[14:43:44] <ответ> хуже, то что они в новой вкладке открываться отказываются
[14:44:02] <ygrek> французы, одно слово
[14:44:28] <ygrek> не, во вкладке открываются вроде
[14:44:46] <ответ> у меня половина открывается, а половина игнорит
[14:45:26] ygrek afk
[14:45:44] <ygrek> ответ: докладывай, получилось ли ocamlbuild'ом собрать
[14:46:03] <ygrek> а то у меня пока всё скачается/соберётся
[14:46:10] <ответ> ygrek: а ты на 2.0 или 1.3 собирал?
[14:46:30] Typhon вышел(а) из комнаты
[14:46:35] <ermine> не, type-conv по-прежнему 3.0.1
[14:47:24] <ответ> у меня эта зараза, начиная со второго пакета начала выдавать предупреждения, что
$ ocamlbuild -pkgs lwt,ocsigen.xhtml,num,ocsigen yoba.native
Warning: tag "package" does not expect a parameter, but is used with parameter "lwt"
Warning: tag "package" does not expect a parameter, but is used with parameter "num"
Warning: tag "package" does not expect a parameter, but is used with parameter "ocsigen"
Warning: tag "package" does not expect a parameter, but is used with parameter "ocsigen.xhtml"
[14:48:03] <ответ> и всё равно упорно не находит ocsipersist, ocsigen_messages, eliom_* и lwt_preemptive
[14:48:10] <ygrek> по-моему можно игнорить
[14:48:19] <ответ> пытаюсь угадать, какое ей имя пакета скормить, пока не получается)
[14:48:33] <ygrek> ocamlfind list | grep ocs :)
[14:49:02] <ответ> о
[14:49:06] <ответ> круто)
[14:49:23] <ygrek> для lwt_preemptive -> ocamlbuild -pkg thread по идее
[14:49:28] ygrek таки afk
[14:49:32] Typhon вошёл(а) в комнату
[14:52:24] <ermine> Kakadu: у тебя core какой версии?
[14:55:11] <Kakadu> 107.01
[14:59:55] <ermine> а там оно на сайте пчу-то 107.1
[15:01:56] <ermine> похоже этот компиляется
[15:02:25] Typhon вышел(а) из комнаты: offline
[15:04:39] <ermine> еще и core extended нужны, охохо
[15:04:52] <bobry> это кому?
[15:05:33] <ermine> lablqt могучему
[15:07:03] <gds> komar: ко вчерашним КОСТЫЛЯМ ( http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/2011/10/02.html#00:13:08.119285 ) -- есть альтернатива?
[15:09:29] <Kakadu> ermine: http://img515.imageshack.us/img515/6186/gorgona1.png
[15:14:05] <ermine> Kakadu: ага, только я табы рисовать буду совсем иначе, если не оторву совсем
[15:14:09] <ermine> в остальном похоже
[15:15:35] <ermine> Kakadu: на будущее сделай то, чем отображать текст в чате в разных цветах и стилях и смайлики
[15:19:42] <ответ> ygrek: наименьшего количества ненайденных модулей удалось достигнуть так:
$ ocamlbuild -use-ocamlfind -cflag -thread -lflag -thread -pkgs ocsigen.xhtml,num,ocsigen.server,ocsigen.ext.eliom,ocsigen.ext.ocsipersist-sqlite,lwt.preemptive yoba.byte
...
Error: Error while linking /usr/lib/ocaml/ocsigen/eliom.cma(Eliom_common):
Reference to undefined global `Ocsipersist'
[15:19:50] <ответ> откуда ему ещё взять Ocsipersist, я даже не знаю
[15:23:15] <ermine> Kakadu: может тебе дать доступ к репе горгоны или, чтобы вкоммитивать интерфейс для qt?
[15:24:55] ermine разбежалась ставить и тут lablqt... а core хочет посвежее findlib
[15:29:31] <Kakadu> ermine: а ты не планируешь ядерную функциональность горгоны вынести в cmaшник?
[15:30:59] ответ afk
[15:31:17] <ermine> Kakadu: именно унификацию
[15:31:35] <ermine> Kakadu: grgn_app переименовать в grgn_gtk2 и сложить туда все что туда относится
[15:31:48] <ermine> и сделать grgn_qt и вписывать туда по теме
[15:32:34] <ermine> Kakadu: давай пришли мне то что у тебя получилось, я это как-нить пристыкую и подумаю как указывать в компиляции кого компилять
[15:33:30] <Kakadu> http://paste.in.ua/3122/
[15:35:27] <Kakadu> я тут нашел что не так в моем lablqt
[15:37:20] <ermine> Kakadu: а у тебя было приложение, ради которого стоило курочить lablqt? или давай лучше горгону доводить :)
[15:38:57] <Kakadu> ermine: Ну тогда надо заставить её работать и написать в рассылке что lablqt вполне юзабельно
[15:39:25] <Kakadu> ermine: так оно у тебя скомпилилось?
[15:40:44] <ermine> Kakadu: еще не, на маке решила поставить даркс, а оно понятуло хаскиль, а даркс - чтобы tyxml скомпилить
[15:40:57] <ermine> а тут свежий core захотело обновлений
[15:41:05] <ermine> беспредел какой-то
[15:42:13] <ermine> щас откачу type-conv на 2.x какой-то там
[15:42:24] <ermine> если найду его
[15:43:19] <ermine> 2.3.0 нашла
[15:48:37] <ermine> блин, sexplib не компилится
[15:57:43] komar вышел(а) из комнаты: Replaced by new connection
[15:57:43] komar вошёл(а) в комнату
[16:04:20] ftrvxmtrx вышел(а) из комнаты
[16:05:00] ftrvxmtrx вошёл(а) в комнату
[16:06:40] ftrvxmtrx вышел(а) из комнаты
[16:07:01] ftrvxmtrx вошёл(а) в комнату
[16:08:23] <Kakadu> если честно, то мне страшно представить, что изза камля какие-то фичи кути безвозвратно исчезнут
[16:10:30] ftrvxmtrx вышел(а) из комнаты
[16:10:39] ftrvxmtrx вошёл(а) в комнату
[16:12:28] <gds> оффтопик, но может сможете подсказать?  тестирую кое-что, и хочется сделать так, чтобы git fetch вытянул какие-то из ревизий снова, несмотря на то, что они сейчас есть в репке -- т.е. мне надо как-то прибить их из репки.  не нагуглилось.
[16:12:36] ftrvxmtrx вышел(а) из комнаты
[16:13:09] ftrvxmtrx вошёл(а) в комнату
[16:15:12] ftrvxmtrx вышел(а) из комнаты
[16:15:57] ftrvxmtrx вошёл(а) в комнату
[16:17:23] ftrvxmtrx вышел(а) из комнаты
[16:18:08] ftrvxmtrx вошёл(а) в комнату
[16:22:14] ftrvxmtrx вышел(а) из комнаты
[16:22:57] ftrvxmtrx вошёл(а) в комнату
[16:26:02] ftrvxmtrx вышел(а) из комнаты
[16:26:12] ftrvxmtrx вошёл(а) в комнату
[16:26:52] ftrvxmtrx вышел(а) из комнаты
[16:27:20] ftrvxmtrx вошёл(а) в комнату
[16:28:52] <gds> отбой, по-другому решил.
[16:32:50] komar вышел(а) из комнаты
[16:40:15] ответ вышел(а) из комнаты: Disconnected: connection closed
[16:44:30] ftrvxmtrx вышел(а) из комнаты
[17:03:28] <ermine> Kakadu: не скомпилилось на маке, чота в сишечке
[17:06:03] <ermine> Kakadu: kuku.jabber.ru/~ermine/z
[17:06:28] <ermine> хм, не открывается
[17:07:06] <ermine> аа
[17:07:48] <ermine> во
[17:08:10] <ermine> шота жирное оно
[17:10:55] <ermine> непонятно, по второу разу вроде собралось
[17:11:15] <gds> ааа!1111  меня на битбакете зафолловил https://bitbucket.org/taylor_venable !1111  Что мне делать?
[17:13:48] <ermine> скоро убьют
[17:14:24] ermine поняла, пчу ошибки не попали в z :)
[17:17:45] <ermine> Kakadu: эй! шо делать?
[17:18:26] <Kakadu> ща
[17:18:59] <ermine> а, доставить дополнительные либлы
[17:19:04] <ermine> знать бы как зовутся
[17:19:18] <ermine> qt opengl
[17:20:01] <Kakadu> ну да
[17:22:06] <ermine> Kakadu: ibQGLViewer @2.3.10 (graphics)
A C++ library based on Qt that eases the creation of OpenGL 3D viewers
[17:22:11] <ermine> это?
[17:23:08] <ermine> или
GLC_lib @1.2.0 (graphics)
C++ class library that enables the quick creation of an OpenGL application based
on QT4.
[17:23:15] <ermine> видимо скорее это
[17:27:42] <Kakadu> в дебиане это libqt4-opengl-dev
[17:32:02] <ermine> тогда проблемы с путями
[17:33:36] <Kakadu> из любопытства, где на маке устанавливаются хэдэры?
[17:40:44] <Kakadu> ну я знаю что надо сделать, но чуть попозже всё будет.
[17:52:49] <ermine> Fatal error: exception Failure("unknow os: FreeBSD")
[17:52:58] <ermine> это core-0.7
[17:53:13] <ermine> ну и дерьмецо
[17:53:55] <ermine> Kakadu: всё в /opt/local/include...,
[17:56:18] <ermine> Qt/            QtDeclarative/ QtMultimedia/  QtScriptTools/ QtUiTools/
Qt3Support/    QtDesigner/    QtNetwork/     QtSql/         QtWebKit/
QtCore/        QtGui/         QtOpenGL/      QtSvg/         QtXml/
QtDBus/        QtHelp/        QtScript/      QtTest/        QtXmlPatterns/
[17:58:16] <ermine> Kakadu: видимо в qt все же есть научный метод включения инклюдов, а не абы как
[18:02:46] <ermine> Kakadu: помницо, в freetype2 нельзя делать #include <file.h>, там можно было только #include FREETYPE_H после включения самого главного инклюда
[18:03:53] <ermine> так, у меня core не компилится
[18:04:07] <ermine> а bin-prot пришлось хакнуть в трех местах
[18:04:29] <ermine> пойду жаловаться контакту из JS
[18:15:32] <ermine> в core модуль unix совсем альтернативный
[18:15:42] <ermine> хз получится ли победить
[18:21:02] <ermine> пока забью на core
[18:24:24] <ermine> странно что на макбуке собралось
[18:25:43] <Kakadu> ermine: я вернулся
[18:27:22] <ermine> Kakadu: в общем, тестить qt буду только на маке пока
[18:27:34] ermine вернулась к gtk
[18:47:29] Typhon вошёл(а) в комнату
[18:57:08] <Kakadu> ermine: https://github.com/Kakadu/lablqt/blob/master/build.ml#L18
[19:06:54] <ermine> Kakadu: ты давай лучше подпатчи чонить, чтобы скомпилить lablqt
[19:07:13] <Kakadu> ermine: только что
[19:07:35] <ermine> не таким топорным методом :)
[19:07:43] <ermine> в мейллисте точно не поймут
[19:08:04] <Kakadu> ermine: предложи свой вариант
[19:08:44] <ermine> Kakadu: а как скачать скрипт из пасты?
[19:09:55] <Kakadu> ermine: не понял
[19:10:24] <ermine> Kakadu: тогда к чему эта ссылка?
[19:11:04] <Kakadu> ermine: к тому что ты можешь так поправить компилябельность, если кути у тебя стоит черт знает где
[19:11:20] <ermine> а, гит пулл
[19:11:24] <ermine> чудеса
[19:12:55] <ermine> компиляется
[19:14:59] <ermine> сломалось
[19:15:11] <Kakadu> noooooooooooooooooooooooooooooooo
[19:16:51] <ermine> cstubs.cpp:1:23: error: Qt/QtOpenGL: No such file or directory
[19:17:11] <Kakadu> я дибилушка
[19:17:16] <ermine> а оно не в Qt
[19:17:44] <ermine> мы все такие
[19:18:04] <Kakadu> ох уж эта долбаная кроссплатформенность
[19:18:11] <ermine> ща посмотрю во фре где оно
[19:20:10] <ermine> не стоит, но там еще хуже /usr/local/include/qt4/Qt*
[19:20:38] <ermine> интересно, какая в этом система
[19:21:12] <Kakadu> видимо надо что-то типа configure
[19:22:17] <ermine> обычно pkg-config или qt4-config, если бы  такое было
[19:24:19] <ermine> в pkg-config он есть
[19:24:47] <ermine> Kakadu: короче дергай pkg-config --cflags, --clibs и не дебилируй :)
[19:25:13] <ermine> pkg-config --cflags QtCore
[19:25:51] <ermine> на маке и фре есть и выдает
[19:25:52] <Kakadu> оно и на маке есть*
[19:26:04] Kakadu никогда не юзал эту тулу
[19:26:27] <ermine> зря
[19:26:33] <ermine> я начала юзать в camlimages
[19:26:43] <Kakadu> как же виндузятникам плохо)
[19:27:25] <ermine> ну придет виндузятник типа gds/ygreka и скажут как
[19:32:20] <ermine> Kakadu: учти, что qt opengl не входит в qt core, посмотри pkg-config --list-all
[19:33:26] <Kakadu> QtCore входит в QtOpenGL
[19:34:28] <ermine> ну тебе виднее, какую муть ты используешь в биндинге
[19:35:23] <ermine> и обрывать компиляцию, если pkg-config не вернуло чонить, чтобы юзер доставил библиотек
[19:51:47] ответ вошёл(а) в комнату
[20:25:05] <Typhon> да, если запинить только ocaml из онейрика, то aptitude предлагает ставить оттуда нужное
[20:29:54] <bobry> Typhon: а как ты его пинишь?
[20:30:20] <Typhon> http://paste.in.ua/3125/
[20:30:35] <Typhon> а дальше аптитуда предлагает либо ничего не ставить, либо ставить из онейрика %)
[20:30:50] <Typhon> бтв, а помните была репка для тулзы, которая из _oasis делает .deb?
[20:30:53] <Typhon> не могу найти
[20:33:27] <Typhon> http://anonscm.debian.org/gitweb/?p=pkg-ocaml-maint/packages/oasis2debian.git;a=tree
[20:37:22] <gds> если речь про пути к вендовым .h -- так проще руками прописывать, и руками (своими же) ставить куда надо, благо, случаев, когда надо что-то хитрое, весьма мало.
[20:41:44] <Typhon> ох, всё-таки придётся иметь как системные пакеты окамловые, так и несистемные (через одб) -- не всё есть в пакетах. не нравится такое, видимо лучше всего собирать самому окамл, куда надо, и пакеты самому/через одб ставить.
[20:45:47] <gds> Typhon: о, а я даже знаю, как присунуть нужные либы в оверблд.
Кстати, не прошло и 4 лет, и я внезапно понял, что для поднятия камла и прочего падвендой достаточно скомпилировать собственно окамл и findlib (тут на скриптах ок), а дальше уже можно дать волю разным "ocaml install.ml", ну если есть.
[20:45:48] <ermine> Kakadu: нушо?
[20:45:57] <Kakadu> ermine: всё будет
[20:47:15] <ygrek> gds: yup
[20:49:21] <gds> ygrek: ок111  Буду думать.  Ещё бы стандартные библиотеки расширяли бы как надо.  Но это уже будет моим делом.
[20:49:30] letrec вышел(а) из комнаты
[20:51:58] arhibot вошёл(а) в комнату
[20:52:28] arhibot вышел(а) из комнаты
[20:59:13] <Typhon> gds, помню, были планы сделать туториал для итератов. может быть наглость, но спрошу таки, когда ждать можно? :-]
[21:02:41] <Kakadu> ermine: попробуй
[21:04:05] Typhon вышел(а) из комнаты
[21:05:00] <gds> Typhon: ни в коем случае не наглость, никак.  Я там тупо закопался в разных делах.  Как для работ, так и для клёвого (в планах) туториала (так и для приличного, более-менее, literate programming) мне были нужны trie и некий merge на них (чтобы иметь tries и тупо складывать их -- маноед же, ёма! ; ну и поверх просто отображений 'k -> 'v нужен был merge).  Давай идеи, наверное, что делать с "общим интерфейсом к структурам данных" ('k -> 'v много кто может обеспечить).
[21:05:46] <bobry> trie есть в core
[21:06:43] Typhon вошёл(а) в комнату
[21:07:55] <gds> "Module.function value arguments" vs "value#function arguments" -- есть разница.  Во втором случае динамический диспетчинг метода.  Хреновее по производительности, но полиморфизм и отсутствие нужды в точном имени модуля.
[21:10:55] <gds> Typhon: дело в том, что в последнее время мне надо писать весьма высокоуровневый код.  Но с окамлом это не очень просто.  С другой стороны, у меня есть некоторые ресурсы, чтобы "сделать всё хорошо".  Вот в ту сторону и развиваю дело.
[21:11:19] <Typhon> а почему не сделать всё через ленивый iter, и для каждой имплементации интерфейса этот ленивый итер реализовывать?
[21:12:03] <gds> Typhon: ща найду кусок обсуждений, скину ссылоту.
[21:12:08] <Typhon> против iter'а были возражения, что создание нового объекта, но ленивый итер вроде бы должен решить это
[21:12:31] <Typhon> в том, что не будет Map.merge использоваться, особой проблемы я что-то не вижу :-)
[21:14:12] <Typhon> ещё на задворках головые есть мысли про реализацию "таблицы методов" руками, типа merge для Map -> Map.merge, для trie какого-нибудь -- iter_merge, которая через iter работать будет.
[21:14:17] <gds> ага, понял, ты читал эту историю.  Ну, в кадастре хочется добавить максимум накладные расходы, но не O()-сложность.  А я, распесдол окаянный, так и не оформил первоклассные модули для описания типов.
[21:15:13] <Typhon> а во, про "накладные расходы vs O-сложность" решил мой вопрос, про "почему паришься, если кадастр, емнип, задумывался, как местами не очень эффективное"
[21:17:53] <gds> про "таблицу методов" -- да, как-то так и надо.  Вот думал про это, но в окамловской системе типов не получается "френд-методы" иметь.  Но это и нормально, такая типизация.  Надо как-то вытягивать репрезентацию и смотреть "ага -- умеем мержить дерево с ассоциативным списком, где тоже умеют упорядочивание -- ага! будем мержить через дерево!".
[21:21:04] <gds> Typhon: если придётся (без вариантов будет) про слияние через iter -- так и сделаю.  Действительно, эффективности особо не надо, но, если будет по O() приемлемо, мне это понравится.
Но там ещё надо подумать про то, как определить, что отображения можно слить через Map (которое строить через iter) -- я вчера поднимал вопрос про то, что не для всех типов можно/нужно определять все операции.  Ответ про "костыли" слышал -- ага, знаю, но как-то решать вопрос придётся.
[21:22:38] <gds> например, если оба типа хешируются, я бы их в Hashtbl загнал без вопросов.  Обычно это получается хорошо.
[21:24:22] komar вошёл(а) в комнату
[21:28:09] <gds> в общем, мне надо сделать так, чтобы все аргументы, представляющие тип, были какими-то первоклассными модулями, наподобие Typeinfo.  Либо сразу Ti взять как аббревиатуру?  Но там надо прописать будет многое.
[21:33:47] <Kakadu> всё-таки у меня паника
[21:35:10] <Kakadu> в кути списки строятся с помощью паттерна Model-View и новая модель наследуется от абстрактного класса (например, QAbstractListModel)
[21:37:52] <ermine> пробую
[21:38:08] <Kakadu> и как конвертить в камло такой вот класс: http://doc.qt.nokia.com/4.7-snapshot/qvariant.html ?
[21:38:54] <ermine> Kakadu: мне для ростера нужен будет список или tree как раз
[21:39:09] <ermine> не одноколоночный
[21:39:11] <Kakadu> ermine: да я вот это уже понял
[21:39:15] <ermine> ибо в ростере есть группы
[21:40:20] <ermine> щас оно или соберется или обломается и я пойду в кроватку
[21:41:06] <ermine> обломалось
[21:42:28] <ermine> ld: library not found for -lQtGui
[21:42:48] <Kakadu> а хедеры есть?
[21:43:03] <ermine> проверять надо наличие в pkg-config
[21:43:18] <ermine> не знаю
[21:43:25] <ermine> я видела что это отдельный пакет
[21:45:23] <ermine> в pkg-config есть QtGui
[21:46:59] <Kakadu> надо заставить pkg-config печатать что-то типа -L/usr/lib/qt4
[21:47:20] <Kakadu> $ pkg-config --libs QtOpenGL
-lQtOpenGL -lQtGui -lQtCore  
[21:47:26] <Kakadu> это я уже умею
[21:48:05] <ermine> dyn08:lablqt ermine$ pkg-config --libs QtGui
-L/opt/local/lib -lQtGui -lQtCore
[21:48:32] <Kakadu> а у меня -L не печатает
[21:49:11] <ermine> либла на месте есть
[21:49:39] <Kakadu> pull
[21:49:49] <ermine> у тебя -L не печатает потому что gcc по дефолту смотрит в /usr/lib
[21:50:08] <Kakadu> ermine: но не в /usr/lib/qt4 же
[21:50:08] <ermine> гнусный же компилер
[21:51:35] <ermine> а еще ocaml build.ml каждый раз пересобирает все заново :) ужос
[21:52:12] <ermine> поюзал бы нормальный оазис или omakebuild
[21:52:43] <Kakadu> а как оазису объяснить про автогенеренный сишные файлы?
[21:53:23] Kakadu в 10 пойдет овощить в шахматы на турнир
[21:53:25] <ermine> ну это камлобилд будет генерить по запросу
[21:53:50] <ermine> посмотри на ocamlbuild --documentation и задумайся о том, как оно генерит *.cmx
[21:55:20] <ermine> ocamlmklib -o lablqt -L/usr/lib/qt4 -lQtGui -lQtCore -lQtOpenGL -lpthread  cstubs.o stub_helpers.cmo qtstubs.cmo \
                `find ./out/cpp/ -name "*.o"` out/stubs.cmo out/classes.cmo out/creators.cmo
ld: library not found for -lQtGui
[21:55:28] <ermine> вот тебе чуток подробнее
[21:55:49] <Kakadu> ты не запуллила ещё
[21:56:18] <Kakadu> должно быть
ocamlmklib -o lablqt `pkg-config --libs QtOpenGL` -lpthread  cstubs.o stub_helpers.cmo qtstubs.cmo \
                `find ./out/cpp/ -name "*.o"` out/stubs.cmo out/classes.cmo out/creators.cmo
[21:56:21] <ermine> еще как запулила
[21:56:27] <ermine> а вот clean есть?
[21:56:43] <Kakadu> собери в test_gen руками
[21:56:53] <Kakadu> make
[21:58:26] <ermine> тяжко оно компилится, тяжче чем gtk, следовательно gtk рулит?
[21:58:39] <Kakadu> gtk файлы не автогенерит вроде
[21:59:21] Kakadu просит скрестить за него пальцы в часовом мочилове
[22:00:16] <Typhon> E: OCaml version 3.13.0+dev7 (2011-09-22) doesn't match version constraint >= 3.12
E: 1 configuration error
при конфигурации type-conv
[22:00:21] <Typhon> было тут такое, а то я не помню сходу
[22:00:31] <Typhon> ^ -- это вопрос :-)
[22:01:30] <ermine> File "_none_", line 1, characters 0-1:
Error: Error while building custom runtime system
[22:03:29] <ermine> ld: symbol(s) not found
[22:03:48] <ermine> блин ну и мышка
[22:07:14] <ermine> бегала чистить мышку
[22:07:20] <ermine>       CIE in liblablqt.a(enum_Qt_ConnectionType.o)
[22:07:47] <ermine> блин, чота не могу выделить :)
[22:08:02] <ermine> в общем где-то не дослинковалось
[22:10:32] <Typhon> exlitb-1.5.2 on ocaml3.13-dev, via odb: http://paste.in.ua/3126/
[22:15:06] ad1862 вошёл(а) в комнату
[22:20:10] ermine отчаливает
[22:20:13] ermine вышел(а) из комнаты
[22:43:17] ad1862 вышел(а) из комнаты
[22:50:19] <Typhon> http://paste.in.ua/3127/
[23:13:45] <Kakadu> мне нужны телепаты: http://paste.in.ua/3128/
[23:15:30] <gds> это же плюсы.  тут нужны не обычные телепаты, а с родословной.
[23:16:55] <ответ> unsigned long const& std::min<unsigned long>
[23:17:12] <ответ> это нам как минимум намекает на то, что возможно нужен -lstdc++
[23:17:53] <ответ> хотя это очень странно, потому что метод шаблонный и по идее должен полностью в хидере имплементироваться
[23:18:21] <Kakadu> дополнение: на линуксе всё норм, не линкуется на маке
[23:19:02] <ответ> у мака свой уличный stdc++, тем не менее, подозреваю, что с ним тоже надо линковаться)
[23:35:01] f[x] вышел(а) из комнаты
[23:38:46] <Typhon> http://forge.ocamlcore.org/tracker/?func=detail&atid=291&aid=888&group_id=54 бага про версии вроде бы пофикшена, осталось, чтобы чуваки перегенирили с новым оазисом свои файлы %)
[23:46:30] <gds> кто только ни присовывал эту багу легаллу :)  я тоже.
[23:47:10] <Typhon> 964 как дубликат закрыт, я оттуда патч срисовал ^_^
[23:47:38] <Typhon> bobry, а что ты про odn говорил, типа c Gen что-то патчить надо? или кажется мне, ибо найти не могу
[23:53:31] <Typhon> http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/2011/10/02.html#14:38:18.172426 нашёл
[23:56:58] <bobry> Typhon: я в багтрекере отписал легаллу
[23:57:02] <bobry> но видимо он так не хочет :)
[23:57:13] <Typhon> я хотел в тайп-конв присунуть
[23:57:16] <Typhon> чтобы вернули
[23:57:20] <Typhon> чо им жалко штоле
[23:57:31] <bobry> я тоже не понял нафига они выпилили
[23:57:38] <bobry> никакой мотивации в changelog'e нет
[23:57:40] <Typhon> а есть под рукой ссылка на твой issue?
[23:57:48] <Typhon> сошлюсь тогда на него
[23:58:38] <bobry> http://forge.ocamlcore.org/tracker/index.php?func=detail&aid=1033&group_id=148&atid=674
[23:59:20] <Typhon> угу, спасибо
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!