Home
Objective Caml
ocaml@conference.jabber.ru
Понедельник, 6 июня 2011< ^ >
gds установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Светлое будущее -- http://camlunity.ru/ | Нефильтрованное настоящее -- https://github.com/camlunity/kamlo_wiki | Портер прошлое -- http://gdsfh.dyndns.org/kamlo/ | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв, move on
Конфигурация комнаты
Участники комнаты

GMT+4
[00:12:22] ygrek ковыряет сегфолт в llvm биндингах, и внезапно - http://llvm.org/bugs/show_bug.cgi?id=8847
[00:13:53] <gds> будешь знать, как подсказывать всяким людям!
[00:14:51] <ygrek> жаль это не мой сегфолт :)
[00:53:35] gds вышел(а) из комнаты
[01:05:08] <ygrek> ermine: я честно говоря не осилил твой код пофиксить
[01:28:36] ygrek вышел(а) из комнаты
[02:54:42] zert вышел(а) из комнаты
[03:21:35] komar вышел(а) из комнаты: Replaced by new connection
[03:21:35] komar вошёл(а) в комнату
[08:59:56] gds вошёл(а) в комнату
[09:18:41] komar вышел(а) из комнаты
[09:26:31] <gds> ermine: я скомпилил твой код!  Ну или почти твой.  http://paste.in.ua/2540/
[09:31:14] <gds> можно было бы гламурнее, с разными constraint'ами на типах, но вот -- боевое человекообразное ml-style решение.
[10:16:06] ermine вошёл(а) в комнату
[10:18:38] Typhon вышел(а) из комнаты
[10:20:37] Kakadu вошёл(а) в комнату
[10:21:37] <ermine> gds: твой код совсем хитрый
[10:22:24] <ermine> если бы там в модулях действительно было бы по одной функции...
[10:22:41] <gds> а там тупое преобразование: module -> type, val -> поле записи.  параметры типа = типы, участвующие в модуле и его функциях.
[10:22:53] <gds> ну сделай по несколько функций, добавляется легко.
[10:25:04] <ermine> зато в модуль можно упрятать кучу функций, не обязанных быть по сигнатуре
[10:25:30] <ermine> а модуль x я точно не упрячу в такое вот извращение
[10:25:44] <ermine> жаль
[10:26:45] <gds> так и тут можно упрятать легко.
value make_x .. =
let func1 = ... in
let func2 = ... in
{ exported1 = ...; exported2 = ... };
[10:28:03] <ermine> согласна
[10:29:34] ygrek вошёл(а) в комнату
[10:29:48] ygrek вышел(а) из комнаты
[10:32:33] <ermine> а так - me в глубокой печали
[10:33:48] <gds> хорошо, что на раннем этапе.  Если бы был код на функторах уже написан, печаль могла бы быть глубже.
[10:34:57] <ermine> ну это попытка развития уже имеющегося кода, который, кстати, еще не в функторах
[10:35:29] <ermine> пока не знаю, куда ползти дальше
[10:36:25] <gds> а зачем тебе именно модули-функторы были нужны -- подменять типы-функции?  ну хз, тут вроде можно.
[10:37:23] <ermine> ну удобно же выделить некоторый параметрический код и вставлять легким движением типа module Cool = X(Y)(Z)
[10:37:59] <ermine> с рекордами жизнь не выглядит такой легкой
[10:39:00] <gds> применить функцию -- не сложнее применения функтора.
хотя вот, надо на первоклассные модули посмотреть, может они помогут.
[10:41:21] <ermine> с первокласными модулями я чебя чувствую как с базой оракла для подсчета палцев на руках
[10:41:52] <gds> это да, есть такое :)
[10:42:01] <ermine> первокласные модули хорошо менять на ходу, а тут ты в рантайме имеешь скорее всего только один
[10:43:11] ftrvxmtrx вышел(а) из комнаты
[10:44:26] <ermine> но может и правда надо попробовать, только сходу не придумывается реогранизация того кода
[10:45:15] <ermine> там тип придется иметь в аргументах функции отдельно
[11:05:43] klapaucius вошёл(а) в комнату
[11:26:45] f[x] вошёл(а) в комнату
[11:48:52] ftrvxmtrx вошёл(а) в комнату
[12:14:41] <f[x]> gds: читер!
[12:16:25] <gds> f[x]: ну дык!  с функторами зачастую это решение самое лучшее!  не всегда, правда.  и, действительно, надо как-то поковырять оригинальный пример.
[12:16:28] <ermine> каждый работающий программный код - чит
[12:16:36] <f[x]> я в принципе понял в чём затык - прокинуть через функтор применение другого функтора с расшаренными типами, но непонятно как это сделать (и нужно ли?!)
[12:16:58] <gds> во, я тоже это понял.  и даже пытался в том направлении что-то делать, но фейл.
[12:17:37] <gds> конечно, тривиальную ошибку (тип модуля vs тип функтора) мы оба заметили, я об этом не сообщал просто.
[12:17:41] <f[x]> ага, ermine пишет загадками
[12:17:54] <f[x]> (ну само собой)
[12:18:12] <ermine> да вы пробовали с просто with type?
[12:18:34] <ermine> если не нравится двойное применение функтора
[12:24:48] <ermine> я пробовала добавить третий модуль, из которого берутся типы
[12:30:40] <f[x]> ха, ocamlopt на mips и hppa официально не поддерживается
[12:37:24] gds вышел(а) из комнаты
[12:49:39] Typhon вошёл(а) в комнату
[12:58:35] komar вошёл(а) в комнату
[13:39:11] komar вышел(а) из комнаты: Replaced by new connection
[13:39:12] komar вошёл(а) в комнату
[14:06:05] Kakadu вышел(а) из комнаты
[15:40:50] gds вошёл(а) в комнату
[16:55:20] <f[x]> gds: я планирую на неделе минорный релиз ocaml-mysql - если у тебя есть патчи - говори
[16:56:21] <gds> f[x]: я с тех пор вообще никаким боком mysql не трогал, поэтому нечем делиться.  Всё, что было (не помню, было ли) -- на repo.or.cz.
[16:56:31] <f[x]> ок
[17:07:26] <f[x]> (ничему жизнь не учит, опять выпиливал Scanf из внутреннего цикла)
[17:13:26] <gds> а что случилось -- тормозит?
[17:14:31] <f[x]> ещё как
[17:26:56] ermine почитала чуток http://www.mailrepository.com/caml-list.inria.fr/msg/3615708/ , ну это же кошмар какой-то
[17:43:09] komar вышел(а) из комнаты: Replaced by new connection
[17:43:10] komar вошёл(а) в комнату
[18:11:43] zert вошёл(а) в комнату
[19:02:47] ermine медитирует над своими модулями X, Y и Z
[20:22:11] Typhon вышел(а) из комнаты
[20:23:05] ftrvxmtrx вышел(а) из комнаты
[21:21:59] ermine пытается понять как склепать функтор об два аргумента
[21:22:21] <ermine> module A = functor (X)(Y) -> .. оно не жует
[21:23:28] ftrvxmtrx вошёл(а) в комнату
[21:32:07] komar вышел(а) из комнаты
[21:32:25] <ermine> а, оно хочет чтобы аргументы были одного типа, сакс
[21:33:11] <ermine> охренеть
[21:46:54] <ermine> ААААА!!!!
[21:47:00] <ermine> скомпилилось!
[21:48:45] <ermine> если кому интересно - http://yo.jabber.ru/~ermine/a1.ml
[21:49:00] <ermine> вчерашний код в a.ml, оставила для сравнения
[21:49:12] ermine пнула ножкой gds
[21:50:16] <ermine> наверное можно еще упростить... надо попробовать
[21:53:30] <ermine> gds: эй! где аплодисменты???
[21:55:22] komar вошёл(а) в комнату
[21:56:44] <gds> ermine: отходил.  Что скомпилилось -- это хорошо.  С другой стороны, гемор только начинается.
[21:58:49] <ermine> gds: не, я хоть узнала как таки расшарить тип между двумя модулями, которые втыкаются в третий
[22:00:33] <ermine> я даже давно забыла, что у одного и того же модуля могут быть куча сигнатур
[22:01:54] <ermine> щас вернула имплементацию модуля Z к вчерашнему - скомпилилось
[22:02:01] <ermine> ну значит гемора пока нет
[22:02:08] <ermine> ура, ура и ура
[22:04:46] <gds> ermine: ога, про шаринг типа в функторе -- это ты грамотно оформила.
[22:09:12] <ermine> gds: ну там гемор видится только в том, чтобы выписать две сигнатуры лишние, ну разве это гемор?
[22:10:26] <ermine> надо было только полистать доку и додуматься... ых
[22:11:39] <gds> с функторами гемор подстерегает в самых неожиданных местах.  Уверен, что гемор не завершён.
[22:12:34] <ermine> гемор там где пробелы в знаниях
[22:13:16] <ermine> в camlimages кстати используются рекорды для симуляции модулей
[22:13:43] <ermine> чтобы заполучить рекорды-модули работающими, надо либлу линковать с -linkall
[22:13:48] <ermine> вот где гемор!
[22:20:29] <gds> недопонимаю, зачем нужен -linkall.  расскажешь?
[22:21:16] <ermine> да я пошутила, скорее недошутила
[22:21:41] <ermine> там рекорды еще в хэштаблицу засовывать надо было
[22:21:55] <gds> про -linkall обычно грустно, обычно не шутят, и периодически бывает надо.  Ага, идею понял.
[22:22:02] <ermine> в рекордах заключалась конкретная имплементация png, tiff, gif, etc
[22:22:43] <ermine> вот по linkall выполнялись функции, которые засовывали рекорды в хэштабло из отдельных подбиблиотек
[22:23:16] <ermine> как бы замета первокласных модулей, которых тогда еще не было
[22:23:25] <gds> понятно.  прозреваю наследие caml light.
[22:23:26] <ermine> надо подумать об их внедрении
[22:24:27] <ermine> gds: а ты читал работу лероя про аппликативные функторы?
[22:24:36] <ermine> стоит ли почитать?
[22:24:40] <gds> первоклассные модули и записи вполне так дублируют друг друга.
[22:25:19] <gds> лероя про это не читал.  и те аппликативные функторы, которые в окамле, отличаются от тех, про которые я говорил недавно в чятике.
[22:28:11] <gds> кстати, в рассылке докладывают, что ocaml cheat sheets появились.
[22:30:11] <ermine> http://caml.inria.fr/about/papers.en.html  там я увидела чота такое
[22:31:33] <ermine> под [5]
[22:31:58] <ermine> ой, 4 то есть
[22:33:10] <ermine> читалка постскрипта находится в нескольких метрах от меня, лень идить
[22:36:17] <gds> ничего не скажу -- общие идеи, лежащие в основе модульной системы, мне понятны, остальное проще получать неформально, нежели читать талмуды.
[22:55:37] <ermine> gds: блин!
[22:56:09] <ermine> gds: я только щас обратила внимание, что хитрую сигнатуру с расшаренным типом я нигде не использую...
[22:56:30] <ermine> и оно само без нее инферит "почему-то"
[22:56:45] ermine впала в панику
[23:14:38] ygrek вошёл(а) в комнату
[23:18:44] adept вошёл(а) в комнату
[23:20:12] arhibot вошёл(а) в комнату
[23:25:23] ygrek вышел(а) из комнаты
[23:25:44] ygrek вошёл(а) в комнату
[23:40:23] <ermine> скомпилила и материнский код, уф
[23:49:07] <ygrek> у кого-нибудь есть свежий llvm-ocaml - потестить код?
[23:49:16] <ygrek> а то я не дождусь пока он соберётся
[23:52:58] <arhibot> 2.9?
[23:53:37] <ygrek> годится
[23:55:08] <arhibot> что компилировать?
[23:55:32] <ygrek> http://paste.in.ua/2549/
[23:55:46] <ygrek> ocamlfind ocamlopt -linkpkg -package llvm,llvm.analysis,llvm.executionengine,llvm.scalar_opts -g -annot gen.ml -o gen
[23:57:32] <arhibot> блин, окамл новый ему надо
[23:57:36] <arhibot> сейчас поставится
[23:58:07] <ygrek> отож, поэтому я решил что проще будет llvm пересобрать, но что-то оно долго :)
[23:58:43] <arhibot> ygrek: а не в курсе, нет ли возможности писать расширения на окамле?
[23:59:04] <ygrek> расширение чего?
[23:59:23] <arhibot> в ллвм на этап компиляции
[23:59:28] <arhibot> оптимизаторы и тп
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!