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

GMT+4
[00:06:16] gds вышел(а) из комнаты
[00:21:58] shaggie вышел(а) из комнаты
[00:24:55] ftrvxmtrx вышел(а) из комнаты
[00:56:49] Kakadu вышел(а) из комнаты
[01:10:26] <Typhon> ocaml_skeleton, a basic OCaml project with unit tests: https://github.com/wickedchicken/ocaml_skeleton
[03:38:18] letrec вошёл(а) в комнату
[03:53:07] Typhon вышел(а) из комнаты
[04:51:44] letrec вышел(а) из комнаты
[05:33:23] ftrvxmtrx вошёл(а) в комнату
[07:03:08] zert вошёл(а) в комнату
[07:59:32] klapaucius вышел(а) из комнаты
[09:37:31] bobry вошёл(а) в комнату
[10:03:55] arhibot вошёл(а) в комнату
[10:33:05] arhibot вышел(а) из комнаты
[11:03:19] ermine вошёл(а) в комнату
[11:06:47] klapaucius вошёл(а) в комнату
[11:11:39] Kakadu вошёл(а) в комнату
[11:12:30] bobry вышел(а) из комнаты
[11:42:00] ftrvxmtrx вышел(а) из комнаты
[11:43:25] gds вошёл(а) в комнату
[11:48:11] zert вышел(а) из комнаты
[11:48:43] zert вошёл(а) в комнату
[11:58:18] Typhon вошёл(а) в комнату
[12:01:56] shaggie вошёл(а) в комнату
[12:22:39] ftrvxmtrx вошёл(а) в комнату
[12:41:47] komar вышел(а) из комнаты: Replaced by new connection
[12:41:47] komar вошёл(а) в комнату
[12:46:00] bobry вошёл(а) в комнату
[12:49:49] <bobry> даешь OASIS в skeleton!
[12:50:01] <bobry> а то наплодят же makefileов и баш скриптов
[12:56:51] <Kakadu> bobry: не во все проекты он хорошо войдет
[13:01:56] <bobry> Kakadu: предполагается, что это только стимулирует развитие OASIS'a :)
[13:04:16] ftrvxmtrx вышел(а) из комнаты
[14:54:47] bobry вышел(а) из комнаты
[14:59:36] <gds> ну чего, f[x], придётся иттить таким путём? -- http://paste.in.ua/3110/
вообще не уверен, может лучше были бы объекты.  но там можно было бы сделать, если в терминах этой копипасты, что-то типа tt (list 'a), и я не уверен, что это здорово.  тут же тип гарантированно не параметризованный.
[15:03:19] <Kakadu> а type tt 'a = (module T with type t = 'a); это опять хитронепонятный синтаксиси первоклассных модулей?
[15:04:41] <gds> Kakadu: я изучил формальное описание грамматики в http://caml.inria.fr/pub/docs/manual-ocaml/manual021.html#toc81 , дальше по примерам из "Basic example" лепил, там в целом нормально.  Ну, original/revised = val/value, а так всё.
[15:05:54] <f[x]> ну это эмуляция type class, да?
[15:06:32] <Kakadu> ойойой. Мне никогда не призодило в голову хранить в Hashtbl.t модуля
[15:08:03] <gds> f[x]: что-то типа того.  Это не rtti, вот тут согласен.
В "кадастре" я иду другим путём, там значения и функции упакованы в объекты, но там оверхед просто обязан быть ощутимым (но там это приемлемо) (однако не мерял).
[15:08:16] zert вышел(а) из комнаты
[15:08:56] <gds> Kakadu: во.  Там вообще с этими первоклассными модулями много чего изначально в голову не приходит.
[15:10:28] <gds> Kakadu: вот олег пишет, если не видел: http://okmij.org/ftp/ML/first-class-modules/
[15:11:36] <Kakadu> gds: спасибо, надеюсь после этого я смогу распарсить http://alaska-kamtchatka.blogspot.com/2011/09/higher-order-fun.html
[15:12:28] <gds> f[x]: я уже смирился с тем, что информацию о типе нужно иметь в явном виде.  Пока другие варианты не получаются нормально.  А выбор был между объектами и модулями.  То, что раньше не нравилось в модулях, теперь кажется приемлемым (надо будет сигнатурки налепить, типа "Eq : sig val eq end", "Cmp : sig val compare end", "CmpEq : sig val compare val eq end").
[15:13:54] <gds> Kakadu: ага, сможешь, если будет нужно.  Но смысла мало, могу как-нибудь рассказать, почему.  Мне помогла такая мысль: посмотрел на пример (самый последний) и подумал -- а что же представляют собой эти значения до вызова XxxM.run?  Вот как-то так.
[15:19:27] <f[x]> согласен
[15:34:04] letrec вошёл(а) в комнату
[18:42:08] Kakadu вышел(а) из комнаты
[19:38:45] Kakadu вошёл(а) в комнату
[19:51:17] Typhon вышел(а) из комнаты
[20:28:13] ftrvxmtrx вошёл(а) в комнату
[20:28:57] ftrvxmtrx вышел(а) из комнаты
[20:34:59] ftrvxmtrx вошёл(а) в комнату
[20:54:44] shaggie вышел(а) из комнаты
[21:04:03] letrec вышел(а) из комнаты
[21:37:37] <Kakadu> кто что скажет насчет последнего коммента отсюда: http://queue.acm.org/detail.cfm?id=2038036 ?
[21:44:15] bobry вышел(а) из комнаты
[21:45:08] ftrvxmtrx вышел(а) из комнаты
[21:45:42] bobry вошёл(а) в комнату
[21:49:31] <bobry> Kakadu: про твой коммент или шо?
[21:49:37] <bobry> Kakadu: собирать то нады?
[21:50:06] <Kakadu> bobry: не, про Tim Daly коммент
[21:52:19] shaggie вошёл(а) в комнату
[21:59:41] <Kakadu> bobry: Я тут колдую над сборкой
[22:00:14] <bobry> чем колдуешь?
[22:00:21] <Kakadu> vimом
[22:00:50] <Kakadu> оказывает не стоит писать make -C xml clean depend all
[22:01:02] <Kakadu> это не работает как ожидал я.
[22:01:08] <Kakadu> и теперь я даже понимаю почему
[22:05:07] <bobry> Kakadu: почему?
[22:05:23] <bobry> вообще, я скорее за вкручивание оасиса и написание множественных фичреквестов :)
[22:05:38] <Kakadu> после деланья depend'a он не инклудит этот .depend
[22:06:12] <Kakadu> bobry: Запили на гитхаб норм мануал по оазису!
[22:06:14] <gds> так можно вкрутить оазис в отдельной ветке, трогающей только сборку, и...
[22:07:20] <gds> нормальный мануал по оазису: 1. http://oasis.forge.ocamlcore.org/quickstart.html , 2. поиграться с oasis quickstart на тестовом говне, 3. http://oasis.forge.ocamlcore.org/MANUAL.html в качестве справочника, 4. нелегалл в качестве интерактивного справочника в худших случаях.
[22:07:59] <bobry> Kakadu: да там мануалить особо нечего
[22:08:08] <bobry> он у нас кстати на камловики есть
[22:14:14] <Kakadu> bobry: что-то не видно мне
[22:16:02] <bobry> Kakadu: так ета -- https://github.com/camlunity/kamlo_wiki/blob/master/GettingStarted.md
[22:22:24] <Kakadu> bobry: апдейться в lablqt
[22:22:37] <bobry> done
[22:23:54] <Kakadu> ocaml build.ml
[22:25:47] <Kakadu> Я тут смутно понимаю, что такое парсер-комбинаторы, но некоторый человек утверждает, что с ними сложно сделать исправление ошибок. Врет ли?
[22:26:47] <bobry> Exception: Failure "can't make test test4".
[22:26:50] <bobry> остальное собралось
[22:27:01] <Kakadu> test4?
[22:27:05] <Kakadu> а что говорит?
[22:27:17] <bobry> тоже что и вчера :)
[22:27:21] <bobry> g++ -g -I.. -I/usr/include/qt4/ -I/usr/include/qt4/QtCore    -c moc_UserSlots.cpp
In file included from ../headers.h:3:0,
                 from UserSlots.h:3,
                 from moc_UserSlots.cpp:10:
../ml_headers.h:7:27: fatal error: caml/mlvalues.h: No such file or directory
[22:27:26] <Kakadu> аааа
[22:27:34] <Kakadu> я это только в test5 пофиксил
[22:28:55] <Kakadu> fixed
[22:30:40] <Kakadu> ну совсем чуть-чуть осталось... :-)
[22:36:43] <gds> Kakadu: в простых парсер-комбинаторах -- сложно исправлять.  Но 1. есть и непростые, 2. это никому не нужно.
[22:37:42] <Kakadu> gds: А правда что там экспоненциальная сложность?
[22:37:58] <Kakadu> ааа
[22:38:04] <Kakadu> "в худшем случае"
[22:39:05] <gds> если криво накодить -- правда.  А так -- вроде O(n^3) самое худшее, как всегда для "достаточно гибких грамматик".  Но я давно это не трогал (даже палочкой), поэтому лучше смотреть на первоисточники конкретно в этом вопросе.
[22:46:03] Typhon вошёл(а) в комнату
[22:46:39] Typhon вышел(а) из комнаты
[22:46:56] Typhon вошёл(а) в комнату
[22:48:05] bobry вышел(а) из комнаты
[22:55:07] ad1862 вошёл(а) в комнату
[23:02:22] <gds> тут вербализовалось по текущему вопросу.  Грамматики и их виды -- это не только механизмы собственно парсинга, но и ограничители на вид самой грамматики.  То есть, "умеем то и то, но есть такие-то ограничения, зато укладываемся в O() процессора и O() памяти+стека".  Чем отличаются парсер-комбинаторы -- что они умеют многое, но из многих умений -- многие ресурсы, в теории.  Где-то это хорошо, так как производительность мало важна, а гибкость важнее.  Где-то -- не очень, так как ясно, что данный парсер будет поставлен в жёсткие условия.  А парсер переписывать -- мало желающих, потому все и хотят выбрать ту грамматику, которая будет достаточна, но не больше (не больше по производительности в среднем/худшем случае).
[23:03:32] bobry вошёл(а) в комнату
[23:22:28] ermine вышел(а) из комнаты
[23:28:15] Typhon вышел(а) из комнаты
[23:28:30] Typhon вошёл(а) в комнату
[23:36:36] bobry вышел(а) из комнаты
[23:41:30] shaggie вышел(а) из комнаты
[23:47:44] ad1862 вышел(а) из комнаты
[23:57:34] Typhon вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!