Home
OCaml (aka Objective Caml), а также прочие ML'и, F#, Coq, etc
ocaml@conference.jabber.ru
Понедельник, 23 сентября 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:39:34] ermine вышел(а) из комнаты
[02:26:27] Zbroyar вошёл(а) в комнату
[03:18:40] komar вышел(а) из комнаты: Logged out
[03:24:19] komar вошёл(а) в комнату
[03:33:32] tilarids вышел(а) из комнаты: Machine going to sleep
[05:21:55] f[x] вошёл(а) в комнату
[05:41:32] f[x] вышел(а) из комнаты
[06:14:11] f[x] вошёл(а) в комнату
[07:02:28] irezvov вышел(а) из комнаты: Replaced by new connection
[07:02:29] irezvov вошёл(а) в комнату
[09:55:26] f[x] вышел(а) из комнаты
[10:00:36] n06r1n вошёл(а) в комнату
[10:24:48] ermine вошёл(а) в комнату
[10:27:27] ADEpt вошёл(а) в комнату
[10:46:44] <ADEpt> gds: там есть опечатки. Ща...
[10:48:46] zinid вошёл(а) в комнату
[10:55:08] klapaucius вошёл(а) в комнату
[10:55:09] f[x] вошёл(а) в комнату
[11:12:28] <ADEpt> gds: я бы как-то так написал: http://paste.in.ua/8737/
[12:49:27] Kakadu вошёл(а) в комнату
[13:11:33] tilarids вошёл(а) в комнату
[13:14:37] n06r1n вышел(а) из комнаты
[13:14:46] n06r1n вошёл(а) в комнату
[13:30:15] <gds> ADEpt: ничо себе!  Благодарю, стало гораздо лучше.
Только ты слишком хорошо думаешь обо мне, nested structures пока нет :)
Тебя как записывать в раздел "People", так --
Dmitry Astapov <dastapov@gmail.com> -- documentation corrections
или просто "documentation"?
[13:30:50] <ADEpt> да можно никак не записывать, ерунда же
[13:31:46] <gds> мне показалось не ерунда, а годнота.  Значит documentation corrections покатит?
[13:32:24] <ADEpt> покатит :)
[14:03:30] <gds> теперь мне надо сишные enum'ы добавить.  Что-то типа type en = [A | B], let en_of_int8 = fun [ 0 -> A | 1 -> B | ??? ] and int8_of_en = fun [ A -> 0 | B -> 1 ].
вопрос в том, что писать в "???".  Как вариант, сделать конструктор Other of int8?  Потому что исключение кидать как-то не очень хорошо.  Или хорошо?
[14:04:44] <ADEpt> gds: en_of_int : int -> en option  + en_of_int_exn ?
[14:05:27] <gds> option не очень хорошо, так как в случае, когда не 0 и не 1, хочется хотя бы в лог выругаться, какой там байт был.
[14:06:01] <ADEpt> [`Left of n | `Right of int] ? :)
[14:06:15] <gds> гагага
[14:06:26] <f[x]> ну и что ты с эти pther будешь делать?
[14:06:33] <f[x]> если там не тот бит значит структура покорапчена
[14:06:40] <gds> что -- в лог писать, хотя бы.
[14:06:58] <f[x]> процесс вываливается (либо перестаёт обрабатывать этот запрос), дампит структуру и всё
[14:07:03] n06r1n вышел(а) из комнаты
[14:07:04] <f[x]> потом по дампу разбираешь
[14:07:11] n06r1n вошёл(а) в комнату
[14:07:15] <f[x]> обычно с одного байта толку тех логов
[14:07:55] <gds> впрочем вот, если "только писать в лог", то можно raise (Bad_enum "excepted value of enum Myenum, found 123").
[14:08:17] <f[x]> т.е. на низком уровне exn, на верхнем ловля exn и дамп всей структуры и выход
[14:08:27] <f[x]> ну или так
[14:08:33] <f[x]> extprot так делает например, да
[14:08:51] <gds> а как точно он делает -- исключение с человекочитаемым текстом?
[14:09:09] <f[x]> угу
[14:10:18] <gds> а может вспомнить type res 'a 'e = [= `Ok of 'a | `Error of 'e ] вместо option?
[14:10:28] <gds> (ну, кагбэ Left | Right, я понимаю.)
[14:33:38] n06r1n вышел(а) из комнаты
[14:46:45] f[x] вышел(а) из комнаты
[14:50:25] f[x] вошёл(а) в комнату
[15:17:26] <gds> как обозвать элементы енума?  Рабочий вариант -- constructor с сокращением до ctr, но хз понятно ли.
[15:18:57] <ADEpt> members?
[15:19:24] <ADEpt> elements?
[15:21:12] <gds> я про такое.  вот, объявляем енум как-то типа
let myenum = enum "myenum" uint8_t
  [ ctr "A"; ctr "B"; ctr "C" ~v:0x10; ctr "D" ]
вот я про эти "ctr".
[15:21:56] <ADEpt> elt / e ?
[15:22:09] <ADEpt> очень сильно притянуто за уши, но:
[15:22:37] <ADEpt> любой акроним, начинающийся с "c" может быть в этом контексте воспринят как что-то, отосящееся к С
[15:23:58] <gds> логично.  elt годен.
[15:46:47] f[x] вышел(а) из комнаты
[17:10:42] n06r1n вошёл(а) в комнату
[17:30:56] <gds> https://gist.github.com/gdsfh/5ac1064bda63a87c3d6e -- теперь с енумами.
[17:42:14] <gds> да, замечу, типы в енуме таки проверяются.  написать [ elt "A" ~v:0L ; elt "B" ~v:1 ] не получится.  также тип сверяется с указанным при конструировании енума, в данном случае uint8_t (т.е. явные значения, если и есть, должны принадлежать типу-носителю uint8_t, который int).
[17:44:26] <gds> а вот остальных проверок нет -- на допустимость имён, на непересечение значений енумов (типа [ elt .. ~v:0 ; elt .. ~v:0 ]).  Думаю, сделать надо бы на досуге, но не очень критично.
[17:52:38] <gds> ещё момент.  У меня для кодогенерации надо явно указать список структур, которые будем писать.  Может это лишнее, и писать надо всё, что определено?  Ну, чтобы проще было, без перечисления.
[18:00:48] n06r1n вошёл(а) в комнату
[18:01:02] n06r1n вышел(а) из комнаты
[19:04:40] <gds> f[x]: бида!  В http://extunix.forge.ocamlcore.org/api/ExtUnixSpecific.BA.LittleEndian.html для функций
val unsafe_get_uint63 : ExtUnixSpecific.buffer -> int -> int
val unsafe_get_int63 : ExtUnixSpecific.buffer -> int -> int
не описано поведение на 32-битных платформах.
[19:05:38] <zinid> какой хренью всё-таки приходится программистам заниматься :)
[19:06:01] zinid терпеть не может всю эту низкоуровниевую лабуду
[19:06:18] <zinid> онанизм для мозга какой-то
[19:06:38] <gds> давай другие идеи!
[19:06:47] <zinid> а нету идей
[19:06:51] <zinid> всё плохо
[19:06:57] <gds> мне вон тоже битодрочево не нравится.
[19:07:13] <gds> ну, давай тогда вешаться.
[19:07:55] <zinid> а я сразу сказал "приходится", что какбе намекает что выбора то нету
[19:07:55] n06r1n вышел(а) из комнаты
[19:08:36] <gds> но вдруг ты про обычных программистов говорил, а суперпрограммистам не приходится :]
[19:27:32] Kakadu вышел(а) из комнаты
[19:31:21] Kakadu вошёл(а) в комнату
[19:38:47] Kakadu вышел(а) из комнаты
[20:29:58] zinid вышел(а) из комнаты
[20:51:36] <Zbroyar> oasis-db кто-нибудь пользовал? Он (в свете opam) еще нужен?
[21:28:09] Zbroyar вышел(а) из комнаты
[22:31:09] Kakadu вошёл(а) в комнату
[22:55:47] ermine вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!