Home
Objective Caml
ocaml@conference.jabber.ru
Среда, 4 января 2012< ^ >
ygrek установил(а) тему: OCaml / ОКамл / Камль -- http://caml.inria.fr | http://camlunity.ru/ (теперь с git доступом!) | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв и тормозит, move on | stdlib only? - ССЗБ | Fight FUD with fire
Конфигурация комнаты
Участники комнаты

GMT+4
[00:01:12] komar вошёл(а) в комнату
[00:02:09] <Kakadu> savikov: пофиксь статус, а то достало
[00:02:25] Typhon вышел(а) из комнаты: Replaced by new connection
[00:02:27] Typhon вошёл(а) в комнату
[00:12:04] ftrvxmtrx вошёл(а) в комнату
[00:29:10] ftrvxmtrx вышел(а) из комнаты
[00:37:48] <savikov> ок
[00:38:02] <savikov> у кого псп или вообще консоли есть? -_-''''
[00:38:10] Typhon продал ps3
[00:38:50] <savikov> я просто думаю об одном планше, брать или не брать...
[00:39:09] <savikov> http://www.pandawill.com/yinlips-ydpg18-game-tablet-pc-5-inch-amlogic-a9-8gb-hdmi-1080p-camera-black-p54352.html
[00:39:22] <savikov> http://habrahabr.ru/blogs/gadgets/135379/
[00:40:31] <savikov> хочу наконец-то просматрвиать на телеке фильмы, а там есть вход hdmi... плееры под него стоят от 100$
[00:40:45] <savikov> вот и думал мож взять китайский планш и юзать его и для этого
[00:42:25] qrntz вошёл(а) в комнату
[00:53:17] ermine вышел(а) из комнаты
[01:06:18] <qrntz> Kakadu: ping
[01:06:56] <Kakadu> qrntz: понг
[01:07:38] <qrntz> насколько (примерно) доделаны биндинги к qt4? думаю использовать в своем проекте :-)
[01:07:56] <Kakadu> qrntz: херово доделаны и не обещаю что будут
[01:08:33] <qrntz> печально. альтернатив тоже пока нет?
[01:08:40] <Kakadu> gtk только
[01:08:55] <qrntz> брр. ладно. спасибо за информацию
[01:08:56] <Kakadu> но вот если бы кто-то допилил, было бы круто
[01:09:36] <Kakadu> я б даже рассказал что там с ним не так сейчас
[01:09:56] <qrntz> хм
[01:10:10] <qrntz> не уверен что я как кодер дорос до допиливания чужих библиотек
[01:11:04] <Kakadu> qrntz: отмазываешься?)
[01:11:11] <qrntz> но могу попробовать. :-) до конца февраля реально при наличии свободного времени?
[01:11:31] <qrntz> я ж не знаю сколько там еще не доделано
[01:11:42] <Kakadu> если не наткнемся на суровые идеалогические проблемы то да
[01:11:49] <qrntz> ок, если объяснишь, буду благодарен
[01:12:10] <Kakadu> ты в чатик будешь заходить
[01:12:12] <Kakadu> ?
[01:12:32] <Kakadu> а то у меня час ночи и я не очень сейчас настроен((
[01:12:49] <qrntz> угу. но в чатик я только с домашнего компа захожу, в IRC на #ocaml я всегда есть если что
[01:13:00] <qrntz> это без проблем
[01:13:09] <Kakadu> о, так вот где я твой ник видел
[01:13:10] <qrntz> могу и почаще заходить
[01:13:13] <qrntz> таки да
[01:16:01] <Kakadu> круть
[01:16:12] <Kakadu> я иногда забываю заходить в ирку
[01:16:17] <Kakadu> пинай меня тута
[01:16:29] <Kakadu> qrntz: ^^
[01:16:46] <qrntz> ок, спасибо :-)
[01:16:51] <qrntz> попинаю завтра
[01:17:08] <Kakadu> да, у тебя что за ось?
[01:17:14] <qrntz> гентушник я
[01:17:20] <Kakadu> ну ОК
[01:17:30] <qrntz> с кде, поэтому и куте выбрал
[01:19:13] <Kakadu> угу
[01:59:45] Kakadu вышел(а) из комнаты
[02:09:30] komar вышел(а) из комнаты: Replaced by new connection
[02:09:30] komar вошёл(а) в комнату
[02:37:29] gds вышел(а) из комнаты
[02:59:27] Typhon вышел(а) из комнаты
[03:41:54] letrec вошёл(а) в комнату
[05:00:49] <savikov> пинг
[05:04:29] letrec вышел(а) из комнаты
[05:21:47] qrntz вышел(а) из комнаты
[05:43:34] komar вышел(а) из комнаты
[05:47:14] komar вошёл(а) в комнату
[06:05:18] savikov вышел(а) из комнаты
[09:37:15] Typhon вошёл(а) в комнату
[11:21:42] bobry вышел(а) из комнаты
[11:24:38] bobry вошёл(а) в комнату
[11:29:27] <Typhon> gds: прочитал туториал текущий, dcc80ff59c18 .
[11:32:52] Kakadu вошёл(а) в комнату
[11:33:50] <Typhon> "(однако, нужно учитывать, что lwt это
не IO-монада, а thread-монада, то есть, работает над легковесными
потоками, а не над значениями ввода-вывода)" — что из этого следует? нужно ли мне, простому пацану знать об этом для использования итератов?
"потоки" используется в двух значениях, там где про лвтшные, я б поменял на нити/треды.
" по правилам хорошего тона должны только читать этот массив и не модифицировать его" — а типами это можно ограничить?
"IE_cont of option err_msg and …" — почему option err_msg, а не отдельный конструктор?
в revised есть where?
"S.get_first_item" -- почему не .first? или head?
"| Chunk _ -> End_of_file"  непонятно, да
"Итак, с учётом этих изменений" -- ещё ничего не было, чтобы менять :-)
"set_eof" -- строанное название, вроде мы ошибку получаем, а не устанавливаем чота :-)
[11:35:42] <Typhon> а так — мясца хочется! пока что из туториала создаётся впечатление, что итераты нужны для работы с итератами %) но я так понимаю, что примеры дальше. а пока что я бы добавил, даже может где-то в начале либо кодэ как создавать потоки, то есть енумератор, либо кодэ, который пользует готовые энумераторы from_string/from_file, etc., и запускает всю машинерию. чтобы можно было сразу пробовать всё.
[11:36:12] <Typhon> (да, кстати, заметки я по мере чтения делал, так что некоторые стали неактуальны, но я их оставил, на всякий случай :-) )
[11:36:41] ermine вошёл(а) в комнату
[11:41:29] ftrvxmtrx вошёл(а) в комнату
[12:17:55] <f[x]> letrec: да
[13:08:03] <Kakadu> надо было вчера ловить этого qrnt
[13:08:05] <Kakadu> z
[13:36:04] gds вошёл(а) в комнату
[14:09:07] ftrvxmtrx вышел(а) из комнаты
[14:24:59] savikov вошёл(а) в комнату
[14:25:10] <savikov> с добрым
[14:29:04] <savikov> человеки =.=" если не заподло напиши плиз функцию для вывода таблицу умножения
[14:29:19] <savikov> на верблюде :З
[14:29:23] <savikov> прмиер: http://ideone.com/Y2qmR
[14:30:10] <Kakadu> кажись ему нужна монада лист
[14:33:16] <Kakadu> savikov: а самому что мешает?
[14:34:03] <savikov> я не дошёл до i/o к прмиеру необходим аналог printf()
[14:34:37] <Kakadu> давай вначале просто породи список в виде таблицы умножения
[14:34:51] <Kakadu> а потом будешь смотреть на модуль Printf
[14:35:17] shaggie вошёл(а) в комнату
[14:39:06] ftrvxmtrx вошёл(а) в комнату
[14:44:14] <savikov> так а как сделать список список целых чисел?
[14:44:46] <savikov> [
[123;123];
[12;455]
]
[14:46:37] <savikov> *афк, приду доделаю
[14:46:56] <Kakadu> savikov: делай не списк списков а один большой список
[14:49:22] <savikov> http://codepad.org/XVmafQCt
[14:51:27] <savikov> http://codepad.org/rQnIJhRr - вот
[14:52:33] <Kakadu> кхм
[14:52:37] <savikov> дадад
[14:52:40] <Kakadu> давай по чуть-чуть
[14:52:41] <savikov> утечка будет
[14:52:44] <savikov> я просто спешу
[14:52:55] <Kakadu> ну тогда возвращайся и деделаем
[14:55:12] <savikov> http://codepad.org/yhpbpbQm
[14:55:15] <savikov> вот правильно
[14:55:17] <savikov> но грубо :(
[14:56:26] <savikov> http://ideone.com/8rRSJ терь над с выводом
[14:56:31] <savikov> я ушёл
[15:44:49] letrec вошёл(а) в комнату
[15:49:38] <savikov> тута
[15:50:20] <savikov> ну вроде всё
[16:13:34] <gds> ну чо, все заинтересованные асилили туториал по итератам до текущего места?
[16:16:21] <Typhon> gds: читни логи!
[16:16:28] <Typhon> а тебе писанул фидбэка даже
[16:18:48] <gds> в рот мне ноги, вот логи прочитать забыл.  заняли меня сегодня с самого утра.  ща.
[16:23:27] qrntz вошёл(а) в комнату
[16:23:39] <qrntz> Kakadu: pong
[16:24:00] <qrntz> извини, сплю долго @ встаю позно
[16:25:45] <Kakadu> qrntz: а у тебя какой часовой пояс?
[16:25:54] <qrntz> gmt + 2, киев
[16:26:04] <Kakadu> тогда реально долго)
[16:26:07] <Typhon> тогда нормально
[16:26:10] <qrntz> :)
[16:26:31] <Typhon> я вчера по мск встал в 15, а позавчера так около 16 %(
[16:26:33] <qrntz> сейчас пол-третьего примерно
[16:30:33] <f[x]> letrec: на вчерашний вопрос ответ : да
[16:46:52] savikov вышел(а) из комнаты
[17:11:21] iNode вошёл(а) в комнату
[17:29:44] <Kakadu> http://paste.in.ua/3571/
[17:29:55] <Kakadu> кто знает где есть либы для caml_hash_variant
[17:29:57] <Kakadu> ?
[17:30:31] <f[x]> какие ещё либы? это же функция из рантайма
[17:30:51] <Kakadu> не найдена
[17:30:54] <qrntz> угу
[17:30:59] <Kakadu> undefinened reference
[17:31:11] <qrntz> 3.12.1 у меня, если что
[17:31:43] <f[x]> как отрепродьюсить?
[17:31:54] <Kakadu> хз
[17:32:33] <f[x]> ы? что собирать вообще?
[17:32:35] <f[x]> master?
[17:32:41] <qrntz> хз, ничего хитрого не делал, почти все установлено из портажей
[17:32:46] <qrntz> в ирц отписались, кстати
[17:34:40] <f[x]> аргх, у меня система в своп уходит при сборке этого чуда
[17:35:21] <bobry> gds: я еще не осилил, rl не дает ..
[17:35:26] <Kakadu> черт
[17:35:52] <f[x]> master у меня собрался без проблем
[17:36:14] <f[x]> ISSUE CLOSED - CANNOT REPRODUCE
[17:36:17] <f[x]> back to work
[17:39:01] komar вышел(а) из комнаты
[19:11:24] savikov вошёл(а) в комнату
[19:21:23] Typhon вышел(а) из комнаты
[19:50:20] <gds> дошли руки до туториала.  Жена чото рожать захотела внезапно, и на всякий случай побегал и купил то, что пригодится, если таки придётся скоро ехать в роддом.
Итак, учитываю фидбэк:
[19:50:29] <gds> Typhon: про lwt-манатку -- описал тут: https://bitbucket.org/gds/ocaml-iteratees-tutorial-rus/src/c54c181268d1/input.txt#cl-223
[19:56:49] <gds> далее, с "поток vs нить" разобрался, поменял везде.
[20:01:19] <bobry> gds: вот это ты увлеченный пацан :)
[20:01:44] <gds> ну а чо, дела сделал, отдохнул, а чо ещё делать.
[20:02:55] <f[x]> сначала роддом, потом монадки
[20:02:58] <f[x]> всё правильно сделал!
[20:03:12] letrec вышел(а) из комнаты
[20:04:17] <gds> а по-другому не получается, инстинкт размножения сильнее всего.
[20:04:50] <gds> (разве что, слабее инстинкта самосохранения.)
[20:05:43] <ermine> монады нужны только для ленивых программеров, привыкших выписывать каждую строчку кода вручную
[20:06:14] ermine пытается примирить оазис со сборкой гениального парсера
[20:07:00] letrec вошёл(а) в комнату
[20:07:08] <ermine> придется руками рисовать мойкамлобилд
[20:09:03] ftrvxmtrx вышел(а) из комнаты
[20:09:08] <ermine> ыыы
[20:09:21] <ermine> а ваша варвара еще не заменяет оазис?
[20:09:28] <ermine> Kakadu: ?
[20:09:41] <Kakadu> ermine: неа
[20:10:14] <bobry> и не заменит никогда
[20:10:15] <bobry> вощемта
[20:10:15] <ermine> хреново
[20:10:32] <gds> Typhon:
> " по правилам хорошего тона должны только читать этот массив и не модифицировать его" — а типами это можно ограничить?
описал тут: https://bitbucket.org/gds/ocaml-iteratees-tutorial-rus/src/88e0d958cb64/input.txt#cl-324
[20:12:48] <ermine> переписать в список или private и упрятать в модуль
[20:13:55] qrntz вышел(а) из комнаты
[20:17:15] <gds> Typhon: про "option err_msg": https://bitbucket.org/gds/ocaml-iteratees-tutorial-rus/src/bb77c57ee72a/input.txt#cl-382
[20:17:53] <gds> ermine: в список -- нет, производительность важна, читай выше.  В private / в модуль -- описал, почему нет, и как раз именно это я и описал, погляди внимательнее.
[20:19:10] <gds> Typhon:
> в revised есть where?
да!  и это радует.  но where кое-как ограничен: например, "where rec func1 = ... and func2 = ..." не прокатит.  но это мелочи.  where всё равно только для простых случаев нужен.
[20:24:10] <ermine> хаскелопоклонство
[20:25:06] qrntz вошёл(а) в комнату
[20:26:06] <gds> Typhon:
> "S.get_first_item" -- почему не .first? или head?
исторически сложилось :)  да вроде пофиг, это же служебный модуль.
> "| Chunk _ -> End_of_file"  непонятно, да
ну вот и объяснил там, 1. откуда, 2. почему в целом катит, 3. почему решил оставить так.
> "Итак, с учётом этих изменений"
заменил на "Итак, с учётом этих планируемых изменений"
> "set_eof" -- строанное название
описал, что это историческое, и указал, где оно было.
[20:26:51] <gds> ermine: нет же, математикопоклонничество.  Знаешь же, "определим функцию f(x) = g(x)+123, _где_ g(x) = ...".
[20:28:16] <ermine> gds: в математеге нет where вроде
[20:28:34] <gds> а что же такое "_где_" в моей фразе выше?
[20:29:42] <ermine> а кто там сказал про математикопоклонство
[20:30:58] <ermine> в матлогике проводят ровную черточку над выражением и пишут замену над выражением
[20:31:26] <gds> матлогика <> математика
[20:31:54] <ermine> ну раздел одной их матнаук для мозговитых
[20:32:21] <ermine> или мы про арифметику просто?
[20:32:47] <gds> кроме того, ты смешиваешь вывод некоторых логических выражений с матлогикой в целом.
[20:32:59] <gds> я про математику в целом говорю.
[20:33:00] <ermine> в арифметике кстати тоже сначала развертывание, потом равенство, потом семантическое значение выражения
[20:33:07] <ermine> 1+2=3
[20:33:32] <ermine> так что писать 3 where 3 = 1+2 - это от лукавого Хаскелля
[20:33:57] ermine пошутила и пошла налить себе бейлизу
[20:38:10] <bobry> хм, так ocamlbrew это venv'ы
[20:38:13] <bobry> https://github.com/hcarty/ocamlbrew
[20:42:58] <gds> Typhon:
> а так — мясца хочется!
к сожалению, сразу мясо без подготовки пищеварительной системы не переварится.  Но пожелание учёл, а именно, написал план документа: https://bitbucket.org/gds/ocaml-iteratees-tutorial-rus/src/ce68e168ff14/input.txt#cl-130 , и в этом плане будет следующим пунктом именно запуск первых итератов.
[20:48:01] <gds> ну всё, фидбэк обработал, тот, который можно было.  Если у кого есть комментарии по "плану изложения" (см. предыдущую ссылку), прошу.
[20:50:30] <ermine> gds: у тебя уже есть либла парсинга хттп мессаг?
[20:50:54] <ermine> которую можно применить в качестве "чья быстрее будет"
[20:51:33] <gds> ermine: либа есть, https://bitbucket.org/gds/amall/src/9dd5067030c4/src/amall_http.ml , но мне лень готовить её к бенчмаркам.  мне вообще бенчмарки отвратительны.
[20:53:10] <ermine> бенчмарк наверное простой - берешь толстый хидер с разнообразными частями и дергаешь его сотню раз
[20:57:40] <ermine> а вот чтобы избавиться от бэктрейса в своем парсере - надо избавляться от комбинаторов
[20:58:27] <ermine> иначе цепочка комбинаторов при обломе вернется в начало цепочки или еще попытается перейти в другую цепочку, если это была ветвь бранча альтернативы
[20:58:29] <Kakadu> \
[20:58:48] <ermine> хренота
[20:59:27] <Kakadu> ой
[20:59:48] <ermine> Kakadu: не ешь комбинаторов, если хочешь спать крепко
[21:02:23] <gds> а зачем в http нужен бэктрейс?
[21:02:51] <ermine> кстати, предикаты из PEG не требуют бэктрейса, о ни требуют накапливания чрезмерно длинных чанков только для lookahead, но это редко бывает и этот случай обрабатывать значительно легче чем накапливание чанков из-за бэктрейса
[21:05:00] <ermine> gds: ну peg парсеру пофигу cs или cf грамматика, вообще при анализе грамматики это легко выяснить, но если, например, в инпуте происходит ошибка, то будет возврат в начало грамматики,  если ты не догадался по дороге понавставлять красные флажки
[21:07:10] <ermine> это вообще недостаток top-down грамматики
[21:07:49] <ermine> при bottom-up парсинге облом сразу выявится, когда не найдешь соответствующего куска правила
[21:10:04] <ermine> щас пишу abnf2peg
[21:10:22] <ermine> чтобы рфцы не читать
[21:11:23] <ermine> если кто не понял - в большинстве рфцов применяется abnf
[21:14:37] <ermine> Kakadu: а ты до чего дошел в своем парсинге?
[21:14:48] <gds> о, про барбру в рассылке говорят.  про то, что телемко спёр оттуда...
[21:15:01] <Kakadu> ermine: до рутрекера и поиска чего бы посмотреть
[21:16:22] <gds> ага, и, пирод этакий, не пропеарил нас.
[21:16:58] <ermine> Kakadu: я читаю грюна, технологии парсинга, второе издание, у тебя в коллекции она была, только не посмотрела первого или второго издания
[21:17:33] <gds> так, народ.  чо у нас по барбре?  чо допилили в 1.1?  чо откидываем в 1.2 / 2.x?
[21:19:11] <ermine> gds: а какая шдавгая цедб юаоюаоы - сборка со всеми потрохами?
[21:19:29] <ermine> gds: а патчи оно умеет, как в годи?
[21:19:54] <gds> ermine: поясни первое сообщение.  про шдавгую цедбу непонятно.
[21:20:31] <ermine> gds: потроха - все депендсы утянуть и собрать?
[21:20:45] <gds> есть такое.  если депенденсы укажешь.
[21:21:01] <letrec> gds: дай ссылку на обсуждение, что-то поиском не находится
[21:21:23] <gds> про патчи -- локально распакуй/склонируй, пропатчь, укажи в исходниках, будет щасте.
[21:21:51] <ermine> gds: а паьчи - чинилки или а-ля фришные порты или локальные изменения, тоже фришние порты позволяют :)
[21:22:14] <gds> letrec: у меня тоже ссылки нет, в гмыле читал.  если интресно -- см. "локальные архивы caml-list" на сайте, сообщение от эдгарчика.
[21:22:48] <ermine> так было в gode в ранних версиях lablgtk2, пока автор lablgt2 не сделал их ненужными
[21:22:55] <gds> ermine: оверблд тоже позволяет патчи, причём даже крутые.  Означает ли это, что оверблд это круто?  Как автор оверблд, говорю, что нет.
[21:23:20] <ermine> gds: а вот попробуй собрать барбарой react, там надо починить мету и правильно инсталлить
[21:23:32] <gds> ermine: описал выше, как поступать.
[21:24:37] <ermine> gds: о, ты весь оветблд уже барбарой собрать можешь? :)
[21:25:09] <gds> ещё нет.  барбра для этого пока не годится.
как же хорошо, что я могу коммитить в оба этих проекта.
[21:25:56] <ermine> дотянуться до уровня годи и по-верьлюжби переплюнуть его
[21:52:24] <bobry> gds, Kakadu, f[x], ну шо, давайте сформулируем фичи для 2.0?
[21:52:35] letrec вышел(а) из комнаты
[21:52:36] dzhon вошёл(а) в комнату
[21:52:38] <bobry> надо бы до конца праздников барбру поковырять?
[21:52:47] <bobry> ну или 1.1, как оно у нас там обзывается
[21:53:18] bobry замешал себе поило и готов к обсуждению :)
[21:58:52] <gds> bobry: ну бери спеку и смотри, чо там в "пожеланиях к 1.1".  я вон смотрю.
[21:59:24] <bobry> okay
[22:04:59] <bobry> gds: если решим что делать с внешними зависимостями то можно заюзать и cmdliner и fileutils
[22:05:17] <gds> а нахрен это всё нужно, если и так всё работает?  ты что, не инженер?
[22:05:43] <bobry> ну, оно не заработает на виндовсе же
[22:06:57] <bobry> да и вообще, обертка над unix командами это как то не стройно
[22:07:11] <bobry> а cmdliner генерит хороший хелп
[22:09:20] savikov вышел(а) из комнаты: QIP 2010: Спокойное общение
[22:13:01] <gds> вот это и есть "любовно полировать свой нефритовый функциональный инструмент".  главное -- чтобы работало, и чтобы можно было легко обеспечить расширяемость.  Если хочешь -- оформляй, лично я не против, но и не слишком за.  Потому что, явно, нужны фичи.  Локальные патчи, передача различных опций в configure, источники пакетов, venv, рекурсивная дОбыча зависимостей, бандлы, бинарные сборки.
[22:14:05] <bobry> источники пакетов?
[22:18:21] <gds> да.  что-то наподобие "если пакеты понадобятся, есть http://somehost/some-brb-conf, который брать в рассмотрение".
[22:26:48] <gds> собственно, чему меня научила практика: тому, что всё сразу не надо реализовывать, если нет явных требований, но обязательно сделать так, чтобы всё можно было реализовать.  в применении к окамлу это означает нормальную модульность.  есть модуль с файловыми операциями -- и замечательно, ocaml-fileutils вкрутить туда можно будет легко.  если я буду использовать барбру под msvc, первым же вкручу туда это.  если будет желание покодить (а надо кодить в том числе "забандленные зависимости самой барбры") -- тоже вкручу.
[22:28:40] <gds> а про ocamlbrew -- посмотрим.  но изменения, требуемые в барбре слишком малы, чтобы я не реализовал venv рано или поздно.
[22:31:05] shaggie вышел(а) из комнаты
[22:31:42] <bobry> гм, ок, тогда надо то что ты перечислил просто забить в гуглудок
[22:32:00] <bobry> хотя наверное "все" будет жирновато для версии
[22:32:36] <bobry> "передача различных опций в configure" -- вот это например совсем тривиально, добавить сюда еще 2-3 фичи на выбор
[22:33:06] <gds> опции передавать можно, но надо сделать так, чтобы конфиг не был похож на говно.
[22:33:59] <gds> чото у меня короткий день сегодня.  вы пишите в чятик либо, лучше, сразу фиксите документ.  завтра разберусь (если это потребуется).
[22:36:23] gds вышел(а) из комнаты
[22:38:46] ermine грустит над потрохами своего гениального парсера - как заставить камлобилд игнорировать myocamlbuild.ml?
[22:39:42] <ermine> или как сказать ему, чтобы не втыкал галимый ocamlfind везде
[22:39:57] komar вошёл(а) в комнату
[22:41:35] <ermine> галимая немецкая сволочь
[23:18:33] ermine вышел(а) из комнаты
[23:59:17] dzhon вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!