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

GMT+4
[00:11:47] tilarids вышел(а) из комнаты
[00:12:42] tilarids вошёл(а) в комнату
[00:26:01] Typhon вышел(а) из комнаты: Replaced by new connection
[00:26:37] Typhon вошёл(а) в комнату
[00:56:28] Typhon вышел(а) из комнаты: Replaced by new connection
[00:56:51] Typhon вошёл(а) в комнату
[01:36:01] Typhon вышел(а) из комнаты: Replaced by new connection
[01:36:29] Typhon вошёл(а) в комнату
[02:00:12] Sun][ вышел(а) из комнаты
[02:09:48] komar вышел(а) из комнаты: Logged out
[02:42:32] Typhon вышел(а) из комнаты
[05:51:40] letrec вошёл(а) в комнату
[05:51:50] letrec вышел(а) из комнаты
[05:52:04] letrec вошёл(а) в комнату
[06:06:04] ygrek вышел(а) из комнаты
[08:46:14] ygrek вошёл(а) в комнату
[09:01:38] ygrek вышел(а) из комнаты
[09:17:17] letrec вышел(а) из комнаты
[09:45:34] komar вошёл(а) в комнату
[10:55:25] Sun][ вошёл(а) в комнату
[10:55:33] Sun][ вышел(а) из комнаты
[11:43:17] Kakadu вошёл(а) в комнату
[12:02:12] tilarids вышел(а) из комнаты: Machine going to sleep
[12:07:43] ftrvxmtrx вышел(а) из комнаты
[12:35:28] tilarids вошёл(а) в комнату
[13:13:56] mrm вошёл(а) в комнату
[13:14:48] ftrvxmtrx вошёл(а) в комнату
[13:25:15] <gds> mrm: если чо, с оверблд пока никак.  я это помню, но после текущей работы сил остаётся только на тупку.  по идее, на днях закончится такой расклад.
[13:28:13] <mrm> gds: Да ничего страшного. Меня пока в работе 3.11.2 устраивает (и на нём уже 50к строк продакшн кода компилируется). Работает -- ну и хер с ним. Просто ребёнок внутри меня хочет пощупать в деле функции нового камла (например, первоклассные модули) :-)
[13:31:06] <mrm> А с официальным дистрибутивом 4.0 были какие-то проблемы (глючил ocamlbuild, не работал odb, не собрались какие-то пакеты)
[13:37:34] mrm вышел(а) из комнаты
[14:40:33] Typhon вошёл(а) в комнату
[15:10:07] mrm вошёл(а) в комнату
[15:10:16] mrm вышел(а) из комнаты
[15:15:23] Kakadu вышел(а) из комнаты
[15:21:40] Kakadu вошёл(а) в комнату
[15:23:35] Typhon вышел(а) из комнаты: Replaced by new connection
[15:23:56] Typhon вошёл(а) в комнату
[15:29:53] letrec вошёл(а) в комнату
[16:26:32] mrm вошёл(а) в комнату
[16:57:35] mrm вышел(а) из комнаты
[17:08:07] komar вышел(а) из комнаты: Replaced by new connection
[17:08:07] komar вошёл(а) в комнату
[17:10:17] ftrvxmtrx вышел(а) из комнаты
[17:10:46] Typhon вышел(а) из комнаты
[17:12:52] Typhon вошёл(а) в комнату
[17:30:47] komar вышел(а) из комнаты: Replaced by new connection
[17:30:47] komar вошёл(а) в комнату
[17:55:40] Typhon вышел(а) из комнаты
[18:19:06] letrec вышел(а) из комнаты
[18:33:40] Typhon вошёл(а) в комнату
[19:06:17] Typhon вышел(а) из комнаты
[19:06:59] Typhon вошёл(а) в комнату
[19:20:25] mrm вошёл(а) в комнату
[19:20:49] mrm вышел(а) из комнаты
[19:38:59] Typhon вышел(а) из комнаты
[19:39:56] <Kakadu> положим есть такое сообщение об ошибке: http://paste.in.ua/4734/
Как думаете, теоретически можно заставить компилятор говорить что конкретно ему непонравилось, или как-то сокращать выхлоп? Вроде можно же?
[19:45:56] <ermine> не разглядывая выхлоп: наверное не сошлись типы возвратов
[19:46:32] <ermine> у меня щас много возни с модулями и такой выхлоп получается, если не слежу за последними аргументами функций, то бишь их результатами
[19:46:41] <ermine> то бишь их типами
[19:47:08] letrec вошёл(а) в комнату
[19:47:34] <Kakadu> да всё ОК должно быть
[19:47:43] <Kakadu> я добавил только num_sample
[19:47:51] <Kakadu> а остальное --- алиасы
[19:50:57] <gds> в общем случае -- сложно сделать так, чтобы сокращённое сообщение было осмысленным.
но конкретно тут можно напустить sort на вывод, недублирующиеся строки изучить.
[19:51:15] <Kakadu> gds: я запускал kompare
[20:02:20] ermine бьется головой об стол в поисках извечного вопроса - как на лёту перемахивать трёмя модулями с функциями read/write для работы с сетью с уже открытым дескриптором
[20:07:31] mrm вошёл(а) в комнату
[20:08:06] mrm вышел(а) из комнаты
[20:12:57] letrec вышел(а) из комнаты
[20:32:25] <ermine> Kakadu: а что это такое аццкое ты пилишь?
[20:34:01] <Kakadu> ermine: xen
[20:34:31] <ermine> Kakadu: а зачем? что ты хочешь?
[20:34:48] <Kakadu> ermine: сделать тестовое задание
[20:34:58] <ermine> или к бобры пошел на работу? :)
[20:35:19] <Kakadu> угу
[20:35:36] ermine проницательна
[20:35:48] <Kakadu> женская интуиция
[20:37:11] <ermine> gds: у тебя есть код в итератах, который сначала лопатит обычный сокет, потом tls без переоткрытия сокета? или с zlib?
[20:44:59] Zbroyar вошёл(а) в комнату
[21:10:19] Sun][ вошёл(а) в комнату
[21:35:30] komar вышел(а) из комнаты: Replaced by new connection
[21:35:30] komar вошёл(а) в комнату
[21:41:45] Zbroyar вышел(а) из комнаты
[22:55:13] komar вышел(а) из комнаты: Logged out
[22:55:19] komar вошёл(а) в комнату
[23:07:24] <gds> ermine: ну обычная горизонтальная композиция итератов.  Где первый закончил -- там второй начинает.  it1 >>= fun r1 -> (joinI & enumeratee__unwrap_tls it2) >>= fun r2 -> .., ну и варианты.
Более того, в итератах есть и поинтереснее -- например, один и тот же итерат можно покормить сначала из обычного сокета, а потом из tls, не теряя его состояние.
[23:19:32] <ermine> gds: в моем случае примерно это надо - один и тот же итерат с разными енкодингами интернета, вот думаю не жирно ли будет каждый раз переклепывать модуль с нужным в данный момент сетевым интерфейсом
[23:22:53] <gds> в итератах красиво решено -- о сути входного потока знает только энумератор, а конкретному итерату это не важно.  Мне по нраву такое.
[23:23:32] <ermine> а выходной?
[23:27:54] Sun][ вышел(а) из комнаты
[23:48:04] <gds> ermine: а смотря как его представлять.  Если Суть™ в потоковом преобразовании, то можно основную машинерию делать в виде enumeratee -- того, что получает входной поток и кормит чем-то какой-то итерат, и вот, кормимый итерат может включать в себя действия ввода-вывода.
На днях, кстати, таким образом асилил итераты char_of_utf8, utf8_of_utf16, js_unescape.  И для потоковых вещей там кое-что надо доработать, выделить общую функциональность.  Но не суть важно, всё работает.
А если схема сложнее, ввод-вывод требуется беспорядочно, то просто совершать эти действия внутри итерата.  Например, для отладки хорошо.  Или же, внутри некоторых итератов у меня рожается lwt preemptive thread, открывается коннект к постгресу, куча выборок, всё это закрывается, и потом отправляется миленький хттп-ответ в браузер.  (и гарантии того, что всё будет работать параллельно, мне дают: 1. lwt, 2. факт того, что итераты используют для ввода-вывода только манатку-аргумент.)
[23:58:01] <ermine> gds: у меня стримовая имплементация такая, что оригинальный стрим - байтовый, а что надо обработчику - не задано типом в модуле жестко, помнится, весной я не осиливала модуляцию с юзер-дефинед преобразования потоков, а вот сейчас это получилось изумительно легко
[23:58:29] <ermine> т.е. не нужна совсем идеология subarray как у тебя
[23:59:18] <ermine> пришлось только бубнить при модуляции "полиморфная - не полиморфная функция" :))
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!