Home
OCaml (aka Objective Caml), а также прочие ML'и, F#, Coq, etc
ocaml@conference.jabber.ru
Воскресенье, 15 сентября 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:17:18] <gds> qu1ntus: "обработка ленивая" -- это с какого хрена такого?  Можно и энергично сделать так, чтобы всё было хорошо.  Комар про Stream сказал, они ок (только там дописать кое-что стоит для удобства, или взять ocaml-batteries).  Для аццких случаев можно итераты использовать, когда есть несколько уровней между потоком байтов и высокоуровневым представлением.  Но тут навряд ли они будут нужны.  Вообще, такие задачи вполне хорошо решаются.  Общего инструмента нет, так как задача сама по себе очень общая.  А вот "парсилки из" и "принтеры в" -- вполне так вещь, которую можно поискать тут или на других ресурсах про окамл.
[00:21:47] <komar> qu1ntus: http://dump.bitcheese.net/texts/adimasi/Ocaml ← парсинг цвс, поточный, работает.
Это сооруженный на коленке приватекоде, не бейте за косожопость.
[00:22:23] <komar> Охщи, у меня там не комма сепарейтед валуес, а пробел сепарейтед.
[00:25:10] <komar> Этой хренью я строю смешные графики, например, http://dump.bitcheese.net/images/axihocy/graph_.png
[00:30:52] <gds> komar: да забей, речь же была про cvs, concurrent versions system.
а если про csv -- "opam install csv" даёт результат.
[00:55:50] Kakadu вышел(а) из комнаты
[01:25:43] qu1ntus вышел(а) из комнаты
[03:46:27] Zbroyar вошёл(а) в комнату
[03:50:05] <Zbroyar> komar: так ты у нас золотокопатель, выходит?
[05:53:56] n06r1n вошёл(а) в комнату
[06:27:18] n06r1n вышел(а) из комнаты
[06:29:24] zinid вошёл(а) в комнату
[06:35:17] James вошёл(а) в комнату
[07:07:05] n06r1n вошёл(а) в комнату
[08:24:29] f[x] вошёл(а) в комнату
[08:46:50] <f[x]> gds: таки flock нужен?
[08:47:46] <zinid> flock - тормозная срань
[08:48:39] zinid как раз борется с flock'ами
[08:51:10] <zinid> блокировки и прочие мьютексы - каменный век
[08:51:43] <zinid> у меня тут 64-core cpu и на нём софт просто не работает, потому что всё время сидит в блокировках
[08:52:04] <f[x]> так тогда уже правильней говорить 64-core cpu - тормозная сранб
[08:52:20] <zinid> LA = 0.0, при этом нулевая отзывчивость
[08:53:16] <zinid> почему это он срань?
[08:53:28] <f[x]> ну потому что тормозит
[08:53:29] <zinid> он как раз шустрый если запускать всё параллельно
[08:53:31] <f[x]> логика ведь такая?
[08:53:45] <zinid> нет, логика такая, что блокировать надо меньше
[08:53:48] <f[x]> если flock правильно использовать там где надо - тоже шустр оработает
[08:54:15] <zinid> а то понапишут:
pthread_mutex_lock(blah);
counter++;
pthread_mutex_unlock(blah);
[08:54:27] <f[x]> и pthread_mutex виноват в этом очевидно
[08:54:37] <f[x]> а не кривые руки или просто изменившиеся условия
[08:55:51] n06r1n вышел(а) из комнаты
[08:56:33] <zinid> я не совсем понимаю как правильно юзать flock
[08:57:10] <zinid> как и любой другой lock
[11:07:57] Kakadu вошёл(а) в комнату
[11:18:00] zinid вышел(а) из комнаты
[11:38:00] n06r1n вошёл(а) в комнату
[11:39:51] n06r1n вышел(а) из комнаты
[11:41:03] n06r1n вошёл(а) в комнату
[11:41:48] n06r1n вышел(а) из комнаты
[11:55:07] n06r1n вошёл(а) в комнату
[12:06:46] n06r1n вышел(а) из комнаты
[12:09:34] n06r1n вошёл(а) в комнату
[12:20:20] <n06r1n> не по-теме конфы
[12:20:45] <n06r1n> но вот блин, хочу записать образ на флешку. Образ записывается, но система с него не грузится
[12:20:52] <n06r1n> ноутбук просто зависает при включении
[12:21:14] <n06r1n> помогает только новая флешка
[12:25:11] <ForNeVeR> У меня постоянно такое происходит.
[12:25:18] <n06r1n> и чем решаешь?
[12:25:25] <ForNeVeR> Причём иногда, если помучить бук - отпускает.
[12:25:36] <ForNeVeR> Повставлять в другие юсб-порты, например.
[12:26:28] <n06r1n> решение уровня эникея просто.
Я вот сейчас попробовал побитово скопировать образ на флешку. Она стала только для записи, лол
[12:26:40] <n06r1n> но разве поможет просто подлкючение в разные порты?
[12:26:50] <ForNeVeR> Китайская техника, бро.
[12:26:59] <ForNeVeR> Решения такого уровня всегда работают.
[12:28:58] f[x] вышел(а) из комнаты
[12:29:54] <komar> Агрх.
[12:30:30] komar добавил в todo: написать нормальный unetbootin.
[12:43:35] n06r1n вышел(а) из комнаты
[13:42:11] <gds> f[x]: flock не нужен уже -- подумал, как сделать с Unix.lockf, и так будет кошернее.
[13:42:36] <gds> zinid: а других вариантов, кроме flock-подобного, у меня особо и нет.
[13:44:03] <gds> "блокировать надо меньше".  НУ ТЕПЕРЬ ЗБС БУДЕТ.
[15:07:15] <Zbroyar> gds: кстати вот да
[15:07:31] <gds> чо "да"?
[15:07:34] <Zbroyar> недавно переделывал архитектуру коллектора данных
[15:08:08] <Zbroyar> Там был один аккумулятор, защищенный локами + threads, которые хавали вход
[15:08:52] <Zbroyar> так вот все стало гораздо веселее, когда каждому потоку выделился отдельный акумулятор
[15:09:11] <Zbroyar> плюс реализовался алгоритм мерджинга нескольких аккумов
[15:09:53] <Zbroyar> Фактически, я поменял локи на бОльшее потребление памяти, но работать все стало почти вдвое быстрее
[15:10:18] <Zbroyar> вот,  jfyi :-)
[15:12:11] <gds> пришёл к успеху.
а у меня расклад другой.  либо делать много краткосрочных блокировок, либо в несколько раз увеличивать запись на диск ( = делать честную версионность) до уровня, когда поделка станет неконкурентноспособной.  а конкурировать собираюсь, например, с постгресом (на некоторых задачах).  а на других -- с какими-нибудь риаками, штоле.
[16:32:06] James вышел(а) из комнаты
[18:01:21] Kakadu вышел(а) из комнаты
[18:23:34] Zbroyar вышел(а) из комнаты
[18:25:51] ermine вышел(а) из комнаты
[18:26:56] gds вышел(а) из комнаты
[18:27:04] gds вошёл(а) в комнату
[18:29:33] ftrvxmtrx вышел(а) из комнаты
[18:29:36] ftrvxmtrx вошёл(а) в комнату
[18:33:45] gds вышел(а) из комнаты
[18:33:59] gds вошёл(а) в комнату
[18:39:27] ermine вошёл(а) в комнату
[19:32:29] Kakadu вошёл(а) в комнату
[19:39:28] komar вышел(а) из комнаты: Replaced by new connection
[19:39:28] komar вошёл(а) в комнату
[20:00:43] Typhon вошёл(а) в комнату
[20:01:14] komar вышел(а) из комнаты
[20:05:34] komar вошёл(а) в комнату
[20:07:30] Typhon вышел(а) из комнаты
[20:07:51] f[x] вошёл(а) в комнату
[21:14:01] f[x] вышел(а) из комнаты
[21:41:21] Typhon вошёл(а) в комнату
[21:55:35] <gds> у меня вот микс из int и int64 в основном.  Чтобы удобнее было работать, часть значений объявляю как int64.  Работа в основном "плюс, минус, сравнение".  Вот что интересно: оптимизирует ли компилятор случаи вида "a + Int64.of_int b" так, чтобы "Int64.of_int b" реально не выделялся?
[21:56:13] <gds> тьфуты.  "Чтобы удобнее было работать, все значения объявляю как int64."
[22:21:56] <gds> f[x]: говно, натурально: http://paste.in.ua/8713/
может, похакать extunix так, чтобы оно не смотрело на первый типовой параметр bigarray?  Ввести новый тип type 'a int8_t_bigarray = ('a, Bigarray.int8_unsigned_elt, Bigarray.c_layout) (название условное), сделать type buffer = int int8_t_bigarray, а типам в BA указать, что любой из int8_t_bigarray годен для всяких там all_read?
хакать cstruct сложнее, упрёмся в мономорфизм ("какого int/char вы создаёте Cstruct.buffer?").
[22:24:37] <gds> f[x]: сейчас ничего не буду делать до обсуждения вопроса с тобой.  Вдруг я не вижу чего-то очевидного.
[22:26:59] komar вышел(а) из комнаты: Replaced by new connection
[22:27:00] komar вошёл(а) в комнату
[22:59:06] Typhon вышел(а) из комнаты
[23:19:15] <gds> и, кто-нибудь, расскажите господину японцу в рассылке, что он неправильно представляет себе работу с массивами байтов в окамле, считая их строками, тогда как camomile важно не только для строк, но и для массивов байтов.  Я начал, но "не с той стороны сосёте", как говорится.
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!