Home
Objective Caml
ocaml@conference.jabber.ru
Вторник, 3 мая 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:07:39] komar вышел(а) из комнаты: Replaced by new connection
[00:07:39] komar вошёл(а) в комнату
[01:01:08] ermine вышел(а) из комнаты
[01:06:46] komar вышел(а) из комнаты
[01:06:58] komar вошёл(а) в комнату
[01:20:50] komar вышел(а) из комнаты: Replaced by new connection
[01:20:50] komar вошёл(а) в комнату
[01:24:57] Kakadu вышел(а) из комнаты
[01:57:13] zert вышел(а) из комнаты
[02:28:48] komar вышел(а) из комнаты: Replaced by new connection
[02:28:48] komar вошёл(а) в комнату
[03:47:25] Diggimortal вошёл(а) в комнату
[04:42:03] Typhon вышел(а) из комнаты
[04:50:11] Diggimortal вышел(а) из комнаты
[08:23:21] iNode вошёл(а) в комнату
[08:57:52] ftrvxmtrx вышел(а) из комнаты
[09:01:10] ftrvxmtrx вошёл(а) в комнату
[10:52:25] Kakadu вошёл(а) в комнату
[11:34:37] ermine вошёл(а) в комнату
[11:54:34] Kakadu вышел(а) из комнаты
[12:20:07] gds вошёл(а) в комнату
[12:33:14] Typhon вошёл(а) в комнату
[12:48:36] komar вышел(а) из комнаты: Replaced by new connection
[12:48:36] komar вошёл(а) в комнату
[13:25:33] komar вышел(а) из комнаты: Replaced by new connection
[13:25:33] komar вошёл(а) в комнату
[13:34:21] komar вышел(а) из комнаты: Replaced by new connection
[13:34:22] komar вошёл(а) в комнату
[13:40:13] komar вышел(а) из комнаты
[13:40:36] komar вошёл(а) в комнату
[14:33:06] komar вышел(а) из комнаты: Replaced by new connection
[14:33:06] komar вошёл(а) в комнату
[14:34:31] iNode вышел(а) из комнаты: Replaced by new connection
[14:34:31] iNode вошёл(а) в комнату
[14:54:44] <gds> асилил message passing style общение с процессами ОС.  чтобы долго не думать, назвал модуль "Port".  Как-то так: http://paste.in.ua/2278/
[15:00:36] <Typhon> а что за Lwt_unix.sleep 4. ?
[15:04:17] <gds> тут две проблемы.  Первая -- надо уметь напускать что-то типа Thread.join / Lwt.join на процессы парвела, вторая, конкретно тут, -- хттп-сервер при закрытии сокета на отправку по идее должен прекратить обрабатывать запрос, и в идеале закрыть соединение на отправку со своей стороны.  Получается, что для определения того, можно ли закрывать соединение на отправку, следует получить полностью хттп-ответ, а контролировать это в тестовом примере мне не очень хотелось бы, ибо он раздулся бы логикой обработки хттп-ответа.
[15:09:12] <Typhon> а, ок, если это тестовое то всё ок. почитать данные, я так понимаю, P.recv и ничего экстравагантного там? и P — это парвел ?
[15:11:00] <Typhon> а Lwt_process напрямую не получилось использовать? или реализация IO на LWT так и делает? там вроде можно читать/писать порождённому процессу (считай, посылать сообщения). ну то есть, как фичи у Порта по отношению к
[15:19:32] komar вышел(а) из комнаты: Replaced by new connection
[15:19:32] komar вошёл(а) в комнату
[15:27:39] <gds> Typhon: не, не recv, у меня же actors, и все recv неявны.  P -- парвел.
Вот полный пример: http://paste.in.ua/2280/
"Группы" я скоро выпилю, а остальное, видимо, так и будет.
Lwt_process используется в реализации таки.
[15:31:13] <gds> можно было бы оформить это как "сервер", которому даёшь запрос типа "дай stdout/stderr/кодзавершения", а он это выдаёт.  Но смысла меньше, плюс к тому, вычитка stdout/stderr была бы относительно синхронная, по мере call'ов, тогда как сейчас прочитанное отправляется сообщениями и буферизация/блокировки определяются свойствами очереди сообщений.  И будет "сетевая прозрачность" в плане процессов.
[15:33:23] <gds> и интерфейс "портов": https://bitbucket.org/gds/parvel/src/9449eb843165/parvel_lwt.ml#cl-15
[15:42:45] Diggimortal вошёл(а) в комнату
[15:49:13] <gds> и сейчас есть две сущности, одна из которых, вероятно, лишняя.  1. process 'a -- собственно запущенный процесс, принимающий сообщения с типом 'a, ассоциированный с ним локальный пид, очередь сообщений, 2. addrt 'a -- адресат, принимающий сообщения с типом 'a, будет состоять в том числе из нескольких конкретных адресатов, в том числе с возможностью локальной предобработки сообщения ("('a -> 'b) * addrt 'b"), с возможностью оптимизаций типа "по сети сообщение пойдёт один раз, а если адресатов на том хосте несколько, то там оно десериализует и раздаст всем локально".
process 'a -- частный случай addrt 'a.
но ещё есть "адресат нетипизированный", а именно, пид процесса (в том числе глобальный) с возможностью сделать из него типизированного адресата addrt 'a, указав имятипа-версиютипа-сериализацию значений данного типа.
[15:55:16] komar вышел(а) из комнаты: Replaced by new connection
[15:55:16] komar вошёл(а) в комнату
[16:07:39] komar вышел(а) из комнаты: Replaced by new connection
[16:07:41] komar вошёл(а) в комнату
[16:23:41] Kakadu вошёл(а) в комнату
[16:25:14] komar вышел(а) из комнаты: Replaced by new connection
[16:25:15] komar вошёл(а) в комнату
[16:49:26] iNode вышел(а) из комнаты
[16:57:35] komar вышел(а) из комнаты: Replaced by new connection
[16:57:35] komar вошёл(а) в комнату
[16:58:12] Kakadu вышел(а) из комнаты
[17:03:44] komar вышел(а) из комнаты: Replaced by new connection
[17:03:44] komar вошёл(а) в комнату
[17:07:55] zert вошёл(а) в комнату
[17:36:43] komar вышел(а) из комнаты: Replaced by new connection
[17:36:44] komar вошёл(а) в комнату
[17:39:40] komar вышел(а) из комнаты: Replaced by new connection
[17:39:41] komar вошёл(а) в комнату
[18:16:07] <Diggimortal> а почему тИповые переменные имеют тупловый синтаксис? чтобы ненароком не захотелось карринга на уровне типов?
[18:21:53] <Typhon> если ты про конструкторы, то http://caml.inria.fr/pub/ml-archives/caml-list/2009/10/c52bdaf88a932ffd02a17cf12e7a6843.en.html
[18:22:40] <Diggimortal> я про type ('a, 'b)  имя_типа
[18:29:04] komar вышел(а) из комнаты: Replaced by new connection
[18:29:04] komar вошёл(а) в комнату
[18:32:33] <Typhon> Diggimortal: в revised :   Hashtbl.t 'a bool
[18:32:44] <Typhon> ( но list (list 'a); )
[18:53:42] <Diggimortal> а есть причины по которым в качестве исключения нельзя использовать значения произвольного типа?
[19:04:02] <Typhon> типизация? во-первых, raise: exn -> 'a  (exception'ы — это конструкторы типа exn, со специальным синтаксисом). во-вторых, try / with — это паттерн матчинг обычный (ну может с каким-то темами :-) ) — паттерн матчить можно только определённый тип, здесь — exn. (я не эксперт ни разу, но тут вроде бы интуитивно понятно. можно попробовать посмотреть пирса про ексепгны).
[19:05:11] <Diggimortal> точно - ПМ всё объясняет
[19:13:06] komar вышел(а) из комнаты
[19:32:46] komar вошёл(а) в комнату
[19:46:39] komar вышел(а) из комнаты: Replaced by new connection
[19:46:39] komar вошёл(а) в комнату
[19:50:12] ftrvxmtrx вышел(а) из комнаты
[20:06:56] Diggimortal вышел(а) из комнаты
[20:19:30] ftrvxmtrx вошёл(а) в комнату
[20:30:48] komar вышел(а) из комнаты: Replaced by new connection
[20:30:49] komar вошёл(а) в комнату
[20:52:42] komar вышел(а) из комнаты: Replaced by new connection
[20:52:44] komar вошёл(а) в комнату
[21:19:24] komar вышел(а) из комнаты: Replaced by new connection
[21:19:26] komar вошёл(а) в комнату
[21:33:26] komar вышел(а) из комнаты: Replaced by new connection
[21:33:28] komar вошёл(а) в комнату
[21:43:38] Typhon_ вошёл(а) в комнату
[21:45:33] komar вышел(а) из комнаты: Replaced by new connection
[21:45:34] komar вошёл(а) в комнату
[22:02:13] komar вышел(а) из комнаты: Replaced by new connection
[22:02:14] komar вошёл(а) в комнату
[22:03:43] Kakadu вошёл(а) в комнату
[22:07:35] komar вышел(а) из комнаты: Replaced by new connection
[22:07:35] komar вошёл(а) в комнату
[22:27:55] komar вышел(а) из комнаты: Replaced by new connection
[22:27:55] komar вошёл(а) в комнату
[22:40:11] komar вышел(а) из комнаты: Replaced by new connection
[22:40:12] komar вошёл(а) в комнату
[22:48:04] komar вышел(а) из комнаты: Replaced by new connection
[22:48:05] komar вошёл(а) в комнату
[22:56:30] jackass-bot вошёл(а) в комнату
[22:57:20] jackass-bot вышел(а) из комнаты: QIP 2010: Quiet Communication
[23:15:49] komar вышел(а) из комнаты: Replaced by new connection
[23:15:50] komar вошёл(а) в комнату
[23:23:55] komar вышел(а) из комнаты: Replaced by new connection
[23:23:55] komar вошёл(а) в комнату
[23:30:15] komar вышел(а) из комнаты: Replaced by new connection
[23:30:16] komar вошёл(а) в комнату
[23:44:44] gds вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!