Home
OCaml (aka Objective Caml), а также прочие ML'и, F#, Coq, etc
ocaml@conference.jabber.ru
Четверг, 12 сентября 2013< ^ >
f[x] установил(а) тему: OCaml / ОКэмл / Камль -- http://ocaml.org/ | Камло - http://camlunity.ru/ | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв и тормозит, move on | stdlib only? - ССЗБ | Fight FUD with fire | Мойте руки перед чатом | KEEP CAML AND CURRY ON | F#, Coq - де-факто онтопик
Конфигурация комнаты
Участники комнаты

GMT+4
[00:25:16] Typhon вошёл(а) в комнату
[00:25:23] Zbroyar вышел(а) из комнаты
[01:21:26] Kakadu вышел(а) из комнаты
[02:24:58] komar вышел(а) из комнаты
[02:56:36] komar вошёл(а) в комнату
[03:54:24] Typhon вышел(а) из комнаты
[04:25:10] Typhon вошёл(а) в комнату
[04:46:55] Typhon вышел(а) из комнаты
[05:29:18] Typhon вошёл(а) в комнату
[05:31:30] Typhon вышел(а) из комнаты
[05:38:34] f[x] вошёл(а) в комнату
[06:29:50] Typhon вошёл(а) в комнату
[06:32:02] Typhon вышел(а) из комнаты
[07:30:42] Typhon вошёл(а) в комнату
[07:30:45] Typhon вышел(а) из комнаты
[08:16:34] Typhon вошёл(а) в комнату
[08:32:33] Typhon вышел(а) из комнаты
[09:17:10] Typhon вошёл(а) в комнату
[09:34:53] Typhon вышел(а) из комнаты
[09:47:27] f[x] вышел(а) из комнаты
[10:04:04] ftrvxmtrx вышел(а) из комнаты
[10:19:15] Typhon вошёл(а) в комнату
[10:51:26] Typhon вышел(а) из комнаты
[11:02:28] komar вышел(а) из комнаты: Replaced by new connection
[11:02:28] komar вошёл(а) в комнату
[11:02:55] f[x] вошёл(а) в комнату
[11:41:27] Kakadu вошёл(а) в комнату
[11:57:58] zinid вошёл(а) в комнату
[12:31:22] ftrvxmtrx вошёл(а) в комнату
[12:51:50] ForNeVeR вошёл(а) в комнату
[13:00:56] klapaucius вышел(а) из комнаты
[13:11:51] Typhon вошёл(а) в комнату
[13:50:38] <f[x]> Kakadu: а чего ж ты ренегат такой не юзаешь camlunity/repo для opam пакетов??
[13:51:34] <Kakadu> А вы уже сделал github pages чтобы можно было опаму урлу давать?
[13:55:37] <f[x]> см. http://camlunity.ru
[13:55:49] <f[x]> из гита напрямую берёт норм
[14:48:04] f[x] вышел(а) из комнаты
[15:01:27] f[x] вошёл(а) в комнату
[15:39:40] gds вошёл(а) в комнату
[15:40:11] <gds> всё, с оплатой домена решили.
[15:41:10] n06r1n вошёл(а) в комнату
[15:42:32] <f[x]> в честь этого запилил туда фавиконку
[15:44:43] <gds> кококая горбатая иконка!
[16:03:10] f[x] вышел(а) из комнаты
[16:11:22] <gds> хочу bitstring (разбор бинарных структур из строк битов и байтов), но без camlp4 и, главное, без создания значения в памяти, когда нужно всего пару полей.  То есть, для type r = { a : int32 ; b : bool } чтобы были функции {get,set}_{a,b}, и, например, set_b имела бы тело fun str new_b -> str.[4] := (if new_b then '\x01' else '\x00').
такое уже есть?
[16:32:30] ForNeVeR вошёл(а) в комнату
[16:35:06] ForNeVeR вышел(а) из комнаты: Unhandled exception at 0x00000000.
[16:35:15] ForNeVeR вошёл(а) в комнату
[16:38:05] ForNeVeR вышел(а) из комнаты: Unhandled exception at 0x00000000.
[16:38:14] ForNeVeR вышел(а) из комнаты: Unhandled exception at 0x00000000.
[16:38:23] ForNeVeR вошёл(а) в комнату
[16:38:56] ForNeVeR вышел(а) из комнаты
[16:39:03] ForNeVeR вошёл(а) в комнату
[16:46:59] ForNeVeR вышел(а) из комнаты: Unhandled exception at 0x00000000.
[16:47:12] ForNeVeR вошёл(а) в комнату
[17:04:14] komar вышел(а) из комнаты: Replaced by new connection
[17:04:14] komar вошёл(а) в комнату
[18:06:46] f[x] вошёл(а) в комнату
[18:09:34] <f[x]> bitstring оч хорош
[18:09:58] <f[x]> и ничего в памяти не создаёт кроме того что надо, емнип
[18:10:10] <f[x]> могу предложить его допилить в тех местах где надо
[18:10:40] <f[x]> условие без camlp4 вообще стрёмное, всё равно какой-то препроцессор нужен, либо будет своё мета описание структуры
[18:10:55] <gds> понимаю, но на каждый чих создавать структуру не ок.  У меня в структуре 20 полей, а обычно надо 2..3.  Получается, чтение будет выливаться в создание структуры из 20 полей?  Это не ок вообще.
[18:11:04] <gds> вот, я и начал:
короче, надо велосипедить.  Будет описание разбираемой структуры в виде камлокода и генерилка исходника с соответствующими {get,set}_<field>.  Или завернуть это дело в объект (чтобы на основании строки получался объект obj, с методами obj#<field> для доступа и obj#<set_field> для записи?  но мне тут важно отсутствие оверхеда.).
[18:11:17] <f[x]> кто сказал что там будет структура?
[18:12:09] <gds> ну ё, у меня в задаче есть си-подобное описание struct { .. }, как с этим работать в bitstring?  очевидно, описать type myrecord = { .. } и всасывать в этот тип данных.
[18:12:54] <gds> кроме того, сходу не разобрался, можно ли в bitstring сделать такой фокус: по одному описанию заставить camlp4 генерить как матчинг ("десериализацию"), так и "сериализацию".
[18:19:25] <gds> в общем, надо говновелосипедить.  Как проект обозвать?
[18:19:47] <gds> cstruct какое-нибудь штоле.
[18:20:15] <gds> лололо, https://github.com/avsm/ocaml-cstruct
[18:21:33] <f[x]> gds: там не создаются структуры
[18:21:42] <f[x]> у тебя просто приступ NIH
[18:22:31] <gds> тогда, если не создаются, как мне сделать в одном случае вынималку полей a, b, а в другом случае c, d?  Дублировать структуру в обоих матчах?
[18:23:20] <f[x]> там типа макросы
[18:23:37] <f[x]> let pkt_out out (pkt:pkt) =
  bitmatch pkt with
  | { :dns_header; :rest } ->
      IO.printf out "DNS: id %u\n" id;
[18:23:43] <f[x]> dns_header опредлён выше
[18:23:53] <f[x]> let bitmatch dns_header =
    { id : 16;
      qr : 1; opc : 4; aa : 1; tc : 1; rd : 1; ra : 1; z : 3; rcode : 4;
      qdcount : 16; (** question *)
      ancount : 16; (** answer *)
      arcount : 16; (** authority *)
      adcount : 16  (** additional *)
    }
[18:24:15] <f[x]> если я исопльзую в скоупе только id - то только id и заэкстрактится
[18:49:52] <gds> во, для чтения решение годное.  А для записи подобного нет.
[18:50:34] <f[x]> для записи похоже cstruct лучше
[18:50:41] <f[x]> bitstrng не допилили до такого состояни получается
[19:21:43] komar вышел(а) из комнаты: Replaced by new connection
[19:21:44] komar вошёл(а) в комнату
[19:31:45] <gds> всё равно не идеально подходит cstruct.  Надо допиливать чтение из Unix.file_descr в заданный bigarray.  Через строки копировать плохо, а поддерживает оно доступ только к структурам, хранимым в bigarray.  (или налепить доступ к структурам в строках?)
[19:34:25] <gds> или есть уже чтение из file_descr в bigarray?  Просветите, если кто помнит.
[20:01:02] n06r1n вышел(а) из комнаты
[20:02:57] <f[x]> map?
[20:03:37] <gds> ты про mmap?  не хочу его тут.
[20:03:56] <f[x]> ну ты какой капризный
[20:04:08] <f[x]> тогда читай в строку и копируй в bigarray
[20:04:24] <f[x]> либо читай сразу в bigarray
[20:04:36] <f[x]> ExtUnix.Specific.BA.read
[20:05:03] <gds> через строку плохо, как описал выше.  Вот про extunix -- годно!  Беру.
[20:07:45] <gds> кстати, а почему Specific?
[20:09:13] <f[x]> есть All  и Specific
[20:09:24] <f[x]> в Specific только функции которые configure нашёл
[20:09:34] <f[x]> в All все, но те которых нет - кидают exn
[20:10:53] <gds> понял, грамотно.
[20:16:24] Typhon вышел(а) из комнаты
[20:55:57] Kakadu вышел(а) из комнаты
[21:23:54] ermine вышел(а) из комнаты
[21:23:56] ermine вошёл(а) в комнату
[21:25:53] ermine вышел(а) из комнаты
[21:26:12] ermine вошёл(а) в комнату
[21:43:48] f[x] вышел(а) из комнаты
[22:09:19] zinid вышел(а) из комнаты
[22:15:17] ForNeVeR вышел(а) из комнаты
[22:36:57] Kakadu вошёл(а) в комнату
[22:38:19] Kakadu вышел(а) из комнаты
[22:39:17] komar вышел(а) из комнаты: Logged out
[22:39:23] komar вошёл(а) в комнату
[23:02:32] Typhon вошёл(а) в комнату
[23:03:34] Typhon вышел(а) из комнаты
[23:04:33] ermine вышел(а) из комнаты
[23:06:31] Typhon вошёл(а) в комнату
[23:09:52] Typhon вышел(а) из комнаты: Replaced by new connection
[23:10:02] Typhon вошёл(а) в комнату
[23:13:42] ermine вошёл(а) в комнату
[23:15:03] ermine вышел(а) из комнаты
[23:15:28] ermine вошёл(а) в комнату
[23:22:39] Typhon вышел(а) из комнаты
[23:23:01] Typhon вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!