Home
Objective Caml
ocaml@conference.jabber.ru
Среда, 26 мая 2010< ^ >
ygrek установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Верблюды грязи не боятся! | release crap | judge by commits, not comments | ocaml мёртв, move on
Конфигурация комнаты
Участники комнаты

GMT+4
[01:03:24] ygrek вышел(а) из комнаты
[01:30:48] npoektop вышел(а) из комнаты
[04:26:00] Typhon вышел(а) из комнаты
[07:54:38] iNode вошёл(а) в комнату
[08:25:13] gds вышел(а) из комнаты
[08:58:32] gds вошёл(а) в комнату
[10:12:43] ermine вошёл(а) в комнату
[10:15:47] ygrek вошёл(а) в комнату
[10:21:24] <gds> загадка про перл хороша, но изначально думал, что это sed, так как он более уродлив, по моему мнению :)
а насчёт сэма-лисповода -- удивительно всё это.  Нафига ему tuareg-mode, если ocaml sucks, казалось бы.
[10:33:15] serp256 вошёл(а) в комнату
[11:10:57] ʇsʎɯ вошёл(а) в комнату
[11:12:42] <olegfink> а здесь никто arm не умеет?
[11:12:45] <f[x]> можно ли как-то интерпретировать .ml файл например со стрим-парсером без явного указания cma в ком строке
[11:13:05] <f[x]> т.е. ocaml script.ml, а внутри через #load подгрузить camlp4o?
[11:13:20] <f[x]> у меня что-то не получается, ни руками, ни через topfind
[11:16:41] <ʇsʎɯ> f[x]: а через shell script?
[11:17:04] <ʇsʎɯ> #!/usr/bin/ocaml .cma опять же?
[11:23:38] npoektop вошёл(а) в комнату
[11:28:01] <f[x]> не переносимо
[11:28:07] <f[x]> и не работает всё равно
[11:31:22] <ʇsʎɯ> однострочный shell script c расширением .bat - переносим
[11:32:47] <f[x]> вопрос в том чтобы без доп скрипта
[11:40:46] ygrek вышел(а) из комнаты
[11:42:59] <ʇsʎɯ> зачем?
[11:43:14] <ʇsʎɯ> 40-символьный скрипт куда-то не помещается?
[11:45:10] <f[x]> навжно зачем. такое условие задачи
[11:45:14] <f[x]> * неважно
[12:04:48] <f[x]> хорошая утилита xmldiff - сравниваю две xml по 100К - зажрало 1.5 гига памяти, прибил
[12:07:39] <gds> f[x]: а если запускать как ocaml < script.ml?  Проверил, директивы работают, но приемлемо ли это?
[12:11:11] <f[x]> вариант
[12:11:23] <f[x]> только я читаю данные со stdin :)
[12:11:50] <f[x]> и требует ;; для всех фраз
[12:12:29] <f[x]> я так понимаю принципиальная проблема в том что камло не хочет менять синтаксис посреди файла
[12:14:28] <gds> принципиально -- да, я тоже так понимаю.
[12:22:50] <gds> люди меняются, и вот мне тоже захотелось поиграться с композициями функций.  Получилось как-то так: http://pastebin.com/F8r5MYmg
Выводы: 1. "%" и "%%" для двухаргументной функции (и можно "%%%" для трёх-) -- вполне приличный синтаксис.  2. код всё равно более запутанный, так как прячутся аргументы, их имена, труднее ограничивать тип аргументов посередине композиции, труднее вклиниваться посередине (по сравнению с let-in привязками каждого промежуточного результата).  3. разница между композицией и просто применением аргументов (как было в let ( & ) f x = f x) -- большая.  4. разница между "&" и ">>" (let ( >> ) x f = f x) -- сильно меньше (фактически, зеркальное отражение, плюс-минус).
Думаю закинуть в вику, если не будет исправлений/дополнений.
[12:32:12] <f[x]> я вместо % использую $
[12:32:36] <f[x]> приоритет меньше чем у + - ::
[12:33:15] <f[x]> хотя вряд ли это на практике вылезет
[12:34:38] <gds> $ -- там вроде какая-то лажа с camlp4 была?
[12:43:28] <f[x]> нельзя использовать внутри quotation'ов
[12:51:28] <gds> тогда есть смысл объявить ( $ ) = ( % ), думаю.  Ассоциативность у них одинаковая, приоритет различный, остальное на любителя.
[12:52:54] <f[x]> угу, кому надо сам разберётся
[13:08:35] ygrek вошёл(а) в комнату
[13:08:50] ygrek вышел(а) из комнаты
[13:09:24] ygrek вошёл(а) в комнату
[13:16:38] ygrek вышел(а) из комнаты
[13:36:09] Typhon вошёл(а) в комнату
[14:34:13] Kakadu вошёл(а) в комнату
[14:46:01] Kakadu вышел(а) из комнаты
[14:46:06] Kakadu вошёл(а) в комнату
[14:46:15] Kakadu вышел(а) из комнаты
[15:08:27] <gds> ну вот, циклические списки -- как-то так: https://forge.ocamlcore.org/projects/ocaml-cyclist/ + http://hg.ocamlcore.org/cgi-bin/hgwebdir.cgi/ocaml-cyclist/ocaml-cyclist/
[15:21:07] <f[x]> хинт: заменяй index.html у проекта с ссылкой на репо, а то большинство проектов на ocamlcore как лунатики - где код - непонятно
[15:22:16] <olegfink> вообще у gforge худшее юзабилити из всего, что я видел
[15:22:22] <olegfink> ерунды много, а что с ней делать -- не понятно абсолютно
[15:24:03] <ʇsʎɯ> да можно всё на базе github сделать и не париться
[15:25:43] <gds> про замену index.html думал, но это надо остальные вещи тоже вывести туда, типа трекера, файлов и подобного.
[15:43:02] <gds> по идее, надо сделать что-то типа http://ocaml-mysql.forge.ocamlcore.org/ , или лучше будет ещё что-то доработать?
[15:50:23] <f[x]> ну это как фантазии минус лени хватит :)
[15:50:38] <f[x]> главное чтобы можно было хотя бы код без гугля найти
[16:00:57] <gds> а чего "<!-- Generated with BraceTax -->" -- реально оказался полезен этот зверь?
[16:03:08] <ʇsʎɯ> ?
[16:05:01] <gds> http://ocaml-mysql.forge.ocamlcore.org/ -> "исходный код" -> "<!-- .. -- >" кагбэ намекает нам, что была использована утилита http://bracetax.berlios.de/  
[16:08:41] <ʇsʎɯ> а
[16:18:52] <f[x]> ну, генерит
[16:19:00] <f[x]> я как бы всё жду универсальную разметку которая спасёт мир
[16:19:24] <ʇsʎɯ> LaTeX2e
[16:24:03] <komar> XML!
[16:25:27] <gds> с разметкой засада -- все супер-мега-проекты, где она была нужна, потеряли актуальность.  Оба.  Сначала один, потом другой.  Абыдна, вах.  Плюс к тому, мои метания по поводу того, как же сделать лучше: к simply-typed lambda добавить индуктивные типы данных или же использовать scheme-like quotations.  В этой области (разметка + около того) недостатки крутых индуктивных типов данных перевешивают плюсы криво-типизируемых s-выражений.
[16:25:57] <gds> а про index.html -- спёр ocaml-mysql'евское, творчески переработал, выложил, теперь вот: http://ocaml-cyclist.forge.ocamlcore.org/
[16:30:57] <f[x]> не переносимо и зачем?
rm -rf cyclist.docdir &&
[16:31:04] <f[x]> clean:
  ocamlbuild -clean
[16:32:26] <f[x]> $(wildcard _build/cyclist.a _build/cyclist.lib)
[16:33:16] <f[x]> ну и ещё тру линуксоиды могут захотеть DESTDIR и cma cmxa отдельно для убогих платформ, но это придирки
[16:33:35] <f[x]> я уже говорил что best practices надо куда-то в вики складывать?
[16:34:07] <f[x]> а, это по биндингам есть
[16:34:09] <gds> без rm .. && имеем:
>make doc
ocamlbuild cyclist.docdir/index.html
ln: `./cyclist.docdir': cannot overwrite directory
это обход бага, ясное дело, но я лентяй, не хочу разбираться в самом баге.
а вот "&&" заменю.
[16:34:29] <gds> best practices -- надо.  я думал было идти в вику, а потом вспомнил, что руки не дошли.
[16:34:39] <f[x]> надо и вообще по build процессу сделать
[16:34:45] <f[x]> а, тогда ocamlbuild -no-links
[16:35:33] <gds> надо бы сделать, конечно.  Кто-нибудь должен начать :)
[16:35:47] <f[x]> и кстати oasis я пробовал, вполне юзабельно
[16:35:59] <f[x]> если проект без camlp4 так вообще всё работает из коробки
[16:36:53] f[x] смотрит на ermine и вспоминает начатую статью по эрлангу :)
[16:38:28] <ermine> f[x]: а она имхо утратила смысл после публикации чьего-то аналогичного решения
[16:39:53] <f[x]> согласен, момент был безответственно упущен
[16:40:18] <gds> f[x]: без -no-links надо руками копировать директорию из _build наверх.  cp -R тоже будет непортабельно?
[16:41:33] <f[x]> а, точно.
[16:41:40] <f[x]> я оставляю в _build просто :)
[16:42:11] <f[x]> но вообще это не критичный target, пускай виндузятники страдают, им не привыкать
[16:42:36] <gds> ну пускай будет rm -rf, они и руками поудаляют, если чо.
[16:42:48] <f[x]> хе хе
[16:44:37] <gds> вообще интересно, есть ли стандартные способы инсталлировать документацию (html)?  пока в некоторых либах только видел такое (docdir ставится в configure и всё такое).  Каждую либу запинывать на тему документации -- гемор.
[16:45:51] <f[x]> не, дебиановцы это руками делают afaik
[16:46:03] <f[x]> но oasis наше всё в плане стандартизации
[16:46:20] <f[x]> кстати, не вижу test.ml в репо..
[16:48:34] <gds> $(wildcard _build/cyclist.a _build/cyclist.lib) -- это куда, вместо _build/cyclist.a?
[16:48:50] <f[x]> угу
[16:49:04] <ʇsʎɯ> xml - шит
[16:50:04] <ermine> не уметь готовить xml - в лес не ходить
[16:52:03] <gds> насчёт тестирования -- вот уж не знаю, как правильно сделать всё.  tests.ml, в котором тесты?
[16:52:19] <f[x]> ну да, заодно примеры использования
[16:52:34] <f[x]> ounit удобен
[16:54:38] <gds> удобен -- да.  но требовать его для сборки -- не знаю вот.
[16:56:19] <komar> Для ounit есть феерическое видео на ютубе.
[16:57:11] <ʇsʎɯ> как шит не готовь - получится шит
[16:57:29] <f[x]> для сборки тестов только
[17:02:31] iNode вышел(а) из комнаты
[17:08:53] <gds> запилил тесты.  Есть ещё какие-нибудь дополнения/исправления?
[17:11:16] <f[x]> текст readme, но не сейчас
[17:13:59] <ʇsʎɯ> и всё переделать ;)
[17:14:41] <gds> m, вперёд, форкай, переделывай :)
[17:15:17] <komar> И ник поменяй.
[17:15:29] <gds> да, readme кривой до жути.  Смесь, бОльшей частью незнание языка, меньшей частью лень и нежелание тратить кучу времени.
[17:16:15] ermine морально готовится к новым сегфолтам
[17:17:25] <ʇsʎɯ> komar: мой ник - мои правила
[17:17:52] <gds> мои слёзы -- моя печаль, ололо
[17:17:55] ʇsʎɯ ковыряется в быдлокоде на JS
[17:20:11] <ermine> gds: мне твой совет про create_int, create_string очень помогли :))
[17:20:46] <gds> травишь?  давай конкретику.
[17:21:28] <ermine> gds: не, это ж дает типизацию изнутри потрохов биндинга
[17:22:00] <ermine> gds: но скоро будет непонятно что, когда буду делать джойны разнотипных курсоров
[17:22:16] <ermine> но я пока об этом стараюсь не задумываться
[17:23:23] <gds> если джойны сформулируешь так, чтобы внешний наблюдатель (т.е. я, например) понял, то давай.  Извращения с типизацией мне по нраву.
[17:27:25] <ermine> gds: потом-потом, дай пока понаслаждаться простотой текущей ситуации
[17:28:21] <ermine> а ожидаемые сегфолты - я начну вводить в практику вторичные индексы
[17:30:14] gds вышел(а) из комнаты
[19:40:03] serp256 вышел(а) из комнаты
[20:02:52] ʇsʎɯ вышел(а) из комнаты
[20:03:51] npoektop вышел(а) из комнаты
[20:50:00] Typhon вышел(а) из комнаты
[21:10:27] gds вошёл(а) в комнату
[21:34:23] digital_curse вышел(а) из комнаты: Replaced by new connection
[21:34:27] digital_curse вошёл(а) в комнату
[21:35:35] ygrek вошёл(а) в комнату
[21:42:41] iNode вошёл(а) в комнату
[21:43:44] <olegfink> кстати, а кто тут реализацию js писал? :-)
[21:45:23] <komar> Jake Donham?
[21:46:16] <olegfink> ну, во-первых, он не здесь, а во-вторых, это реализация окамла на жс, а не реализация жс
[21:46:27] <komar> Ну второе же хорошо.
[21:46:45] <komar> К тому же я хотел спросить, насколько оно юзабельно.
[21:50:37] serp256 вошёл(а) в комнату
[21:53:30] dimitrykakadu вошёл(а) в комнату
[22:05:24] serp256 вышел(а) из комнаты
[22:30:37] Typhon вошёл(а) в комнату
[22:38:23] dimitrykakadu вышел(а) из комнаты
[22:50:37] serp256 вошёл(а) в комнату
[22:52:22] iNode вышел(а) из комнаты
[22:53:15] serp256 вышел(а) из комнаты
[22:59:06] serp256 вошёл(а) в комнату
[23:41:17] ygrek вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!