Home
Objective Caml
ocaml@conference.jabber.ru
Вторник, 28 июня 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:19:59] gds вышел(а) из комнаты
[00:21:23] ftrvxmtrx вышел(а) из комнаты
[00:22:58] ftrvxmtrx вошёл(а) в комнату
[00:38:39] <ygrek> g-w ,kz страница в твиттере с одним сообщением тянет под МБ
[00:40:32] <Typhon> фон, наверное, какой-то "кастомный"?
[00:57:15] ygrek вышел(а) из комнаты
[01:16:15] ermine вышел(а) из комнаты
[01:42:02] zert вышел(а) из комнаты
[01:44:12] bobry вышел(а) из комнаты
[01:44:41] bobry вошёл(а) в комнату
[03:00:27] Typhon вышел(а) из комнаты
[04:04:10] zinid вошёл(а) в комнату
[08:57:12] gds вошёл(а) в комнату
[09:43:31] bobry вышел(а) из комнаты
[10:34:23] ygrek вошёл(а) в комнату
[11:02:54] ygrek вышел(а) из комнаты
[11:03:19] ygrek вошёл(а) в комнату
[11:09:30] ftrvxmtrx вышел(а) из комнаты
[11:17:06] <gds> http://caml.inria.fr/mantis/view.php?id=5301 -- reopened.  реально ведь, если создаём исключение, равное другому, то хорошо бы иметь возможность сделать подобно остальным типам -- уметь абстрагировать какой-либо из типов значений, носимых этим исключением.  и вообще, даже не знаю, что ответить.  feedback -- по идее, он хочет от меня мнение на тему того, что и как правильно?
[11:49:43] ftrvxmtrx вошёл(а) в комнату
[11:56:35] ermine вошёл(а) в комнату
[11:57:07] ygrek вышел(а) из комнаты
[11:57:12] ygrek вошёл(а) в комнату
[12:26:01] komar вышел(а) из комнаты: Replaced by new connection
[12:26:01] komar вошёл(а) в комнату
[12:37:34] ftrvxmtrx вышел(а) из комнаты
[12:39:31] zert вошёл(а) в комнату
[12:39:41] ftrvxmtrx вошёл(а) в комнату
[12:40:49] ftrvxmtrx вышел(а) из комнаты
[12:42:06] ftrvxmtrx вошёл(а) в комнату
[12:47:40] komar вышел(а) из комнаты: Logged out
[12:47:47] komar вошёл(а) в комнату
[12:59:33] gds вышел(а) из комнаты
[14:08:35] <komar> zinid: йоу, а ты ерланга разработчик или мимокрокодил?
[14:09:10] <zinid> komar: да я так, за еду кодю на похапе ;)
[14:10:05] <komar> Ты просто не стесняйся, держи нас в курсе разработки.
[14:52:22] gds вошёл(а) в комнату
[15:16:22] bobry вошёл(а) в комнату
[15:16:34] <bobry> товарищи, неужели в stdlib камла нету ничего для http?
[15:16:36] <bobry> что то не вижу <_<
[15:16:55] <komar> Откуда?
[15:17:05] <bobry> ну вот
[15:17:23] <komar> Ты совершенно не понимаешь сути stdlib'ы.
[15:17:43] <bobry> наверное, питон меня развратил
[15:18:10] <komar> Окамловая стдлиба это не питон с его «о, смотрите, тормозной веб-сервер в одну строчку».
[15:18:36] <bobry> ну пардон, мне надо файл вытянуть по http, это такая редкая задача?
[15:19:15] <komar> А кофе тебе сварить не надо?
[15:19:53] <ermine> gds: что нового в мире итератоизвращения?
[15:20:04] <bobry> komar: можно, ty
[15:20:34] <gds> ermine:
0.4 (upcoming)
    I.itlist_anyresult_lasterror
     : list (iteratee 'el a') -> iteratee 'el 'a
    I.junk ( = drop 1)
    Reading integers with functions
    I.read_[u]int{,32,64}[_nz]
    Pure_IO for pure computations
    I.enum_string for enumerating strings in constant and adjustable
    memory
    I.Reading_num(Num) for reading arbitrary precision numbers
    in decimal fixed point notation.
[15:22:05] <ygrek> а зачем http в stdlib?
[15:22:20] <ermine> о, в список
[15:22:44] <komar> Зачем HTTP, когда у нас есть сокеты?
[15:24:44] <ermine> зачем хттп, если в stdlib нет smp, kqueue, epoll?
[15:26:10] <ermine> gds: с junk чота не поняла
[15:27:55] <ermine> gds: или ты решил причесать к интерфейсу Stream камлевого?
[15:29:45] <gds> ermine: оказалось, я периодически (больше 5 раз) использую peek + drop 1.  ну вот, чтобы не drop 1.
[15:31:28] <ermine> gds: гы
[15:32:08] <ermine> gds: а вставить функцию, которая экономит на peek >> drop и делала бы это напрямую с subarray и возвращала None | Some el?
[15:34:17] <gds> ermine: junk не всегда нужен.  например, как я читаю знак числа:
peek >>= fun optc -> match optc with [Some '-' -> junk >>= fun () -> return (-1) | Some '+' -> junk >>= fun () -> return 1 | _ -> return 1] >>= fun sign -> ...
[15:36:20] <ermine> gds: ну если моя функция возвращает None, то там не происходит junk, а передавать функции тоже надо функцию "тестирования" стрима
[15:37:19] <ermine> gds:  element (function '+' | '-' -> true | _ -> false) >>= fun z -> .., а про junk можно забыть
[15:37:47] <gds> ermine: гы, нет, это если тупо пропустить знак надо, не учитывая его.
[15:38:55] <gds> ermine: а вот если возвращать из функции что-то типа ([=`Junk|`Leave], 'a), то было бы ок.  Но пока не знаю, нужно ли так.
[15:40:59] <ermine> смешно
[15:51:15] Digimmortal вошёл(а) в комнату
[16:26:53] Typhon вошёл(а) в комнату
[17:54:41] <zinid> а есть возможность преверить код на необработанные исключения?
[17:54:46] <zinid> *проверить
[17:55:01] <zinid> штобы в рантайме лажу не выхватить
[17:59:11] <gds> zinid: был раньше http://caml.inria.fr/pub/old_caml_site/ocamlexc/ocamlexc.htm , но он говну мамонта подобен по возрасту.  Обычно проще решают -- всё опасне заворачивают в try-with либо пишут так, чтобы было безопасно изначально.
[17:59:46] <zinid> ых
[17:59:50] <zinid> плохо
[18:02:09] <Typhon> про "пишут так, чтобы было безопасно" — типа, обернуть все стдлиб вызовы в трайблок, а у себя фейломонаду, например?
[18:02:30] <Typhon> ocamlexc у меня, кажется, на завёлся как-то 2 или чуть больше года назад :-)
[18:03:06] <zinid> я вот не пойму как можно сразу правильно писать
[18:03:17] <gds> там, где сайд-эффекты в top-level module values -- обмазываются try-with, а остальное -- просто в нужном месте ловят просто.
[18:03:18] <zinid> новые исключения ведь могут добавить
[18:05:28] <gds> в большинстве случаев исключения делятся на два класса: известные-конкретные, которые ловим и особо реагируем, и остальные, которые либо ясно, что пропускаем наверх, либо ясно, что не пропускаем (а игнорируем, логируем, показываем пользователю).
[18:10:41] <ermine> exn - зе бест мультиморфный ... (не знаю что вписать), который еще и добавить можно где угодно
[18:12:53] <gds> я пробовал как-то писать с исключениями, представленными полиморфными вариантами -- там гламурно, всё видно в типе, и вообще ня.  Обломался на таком, в частности: если есть функция, кидающая [= `Err1 | `Err2 ], и есть комбинатор над ней, который может кинуть ещё `Myerr, то невозможно записать результирующий тип, так как функция может быть разной, и надо делать что-то типа my_combinator : ('a -> result int 'e) -> 'a -> result int ('e + `Myerr) -- конечно же, "+" это очень образною
[18:14:16] <ermine> gds: ну герд же так юзает в equeue
[18:18:02] <gds> ermine: http://docs.camlcity.org/docs/godipkg/3.11/godi-ocamlnet/lib/ocaml/pkg-lib/equeue/equeue.mli -- не вижу.  где-то в другом месте?
[18:23:38] <ermine> в другом значит
[18:23:44] <ermine> скорее в примерах
[18:36:32] <ermine> gds: можно ли склеить один чанк из двух subarray?
[18:41:56] <gds> ermine: копированием -- всегда можно.  Кроме него -- посмотри subarray_cat.ml*, мне для utf8 было это нужно (хотя не знаю, сейчас как бы решал это).
[18:59:25] <bobry> у меня вопрос, мне Unix.lstat возвращает вот такое {Unix.st_dev = 2055; Unix.st_ino = 5044; Unix.st_kind = Unix.S_REG; Unix.st_perm = 420; Unix.st_nlink = 1; Unix.st_uid = 1000;
Unix.st_gid = 1000; Unix.st_rdev = 0; Unix.st_size = 6;
Unix.st_atime = 1309272363.; Unix.st_mtime = 1309272363.;
Unix.st_ctime = 1309272363.}
[18:59:51] <bobry> как можно из этого рекорда поля вытащить?
[19:01:53] <gds> let r = Unix.lstat ... in r.Unix.st_gid
либо
open Unix
let r = lstat ... in r.st_gid
либо
Unix.(let r = lstat ... in r.st_gid)
[19:02:38] <gds> а я предпочитаю
module U = Unix
let r = U.lstat .. in r.U.st_gid
[19:02:40] <bobry> спасибо, ведь читал же про третий способ :)
[19:06:31] bobry вышел(а) из комнаты
[19:07:48] <ermine> когда пишешь для себя - всё можно, остальным надо запоминать что к чему
[19:08:53] <ermine> бедные гопники, которым надо читать чужой код
[19:09:43] ermine передумала скрещивать два чанка
[19:10:13] <ermine> вообще надо еще чонить изучить по парсингу без бэктрекинга
[19:15:15] <Typhon> bobty, битбакет апи на окамле сношаешь? ^_^
[19:15:19] zinid вышел(а) из комнаты: спать
[19:29:13] <Digimmortal> я правильно понимаю, что здесь есть люди пишущие на камле в конторе http://lionet.livejournal.com?
[19:31:24] <ygrek> если есть то они не палятся
[19:33:55] <ermine> таких можно вычислить по месту текущего проживания
[19:34:04] <ermine> лионет работает в ульяновске
[19:35:11] <ygrek> ну ка, по широте-долготе рассчитайсь, раз-два
[19:35:14] <Digimmortal> что-то тут большинство пользователей не спешит адрес указывать
[19:35:26] <Digimmortal> что естественно
[19:37:51] ermine посмотрела в вкард Digimmortal
[19:38:09] <Digimmortal> и чё там?
[19:38:10] <ermine>      Birthday: 2011-07-02
[19:38:14] <ermine> омг
[19:38:19] <Digimmortal> :)
[19:38:29] <Digimmortal> что-то я на год не обратил внимания
[19:39:38] <ermine> если это второго июля, то вообще гнать надо еще не вылупившихся
[19:49:42] ermine вышел(а) из комнаты
[19:52:52] bobry вошёл(а) в комнату
[19:55:00] <bobry> Typhon: не, битбакет это для django-dash :)
[20:14:18] ftrvxmtrx вышел(а) из комнаты
[20:16:12] Digimmortal вышел(а) из комнаты
[20:20:20] ygrek вышел(а) из комнаты
[20:48:15] ftrvxmtrx вошёл(а) в комнату
[21:47:16] avysk вошёл(а) в комнату
[21:48:39] avysk вышел(а) из комнаты
[22:12:13] bobry вышел(а) из комнаты
[22:31:11] ygrek вошёл(а) в комнату
[22:50:33] Typhon вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!