Home
Objective Caml
ocaml@conference.jabber.ru
Четверг, 28 июля 2011< ^ >
f[x] установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Светлое будущее -- http://camlunity.ru/ | Нефильтрованное настоящее -- https://github.com/camlunity/kamlo_wiki | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | **ocaml мёртв, move on**
Конфигурация комнаты
Участники комнаты

GMT+4
[00:11:44] komar вышел(а) из комнаты: Replaced by new connection
[00:11:45] komar вошёл(а) в комнату
[00:19:20] Typhon вошёл(а) в комнату
[00:30:04] ermine вышел(а) из комнаты
[01:18:47] ad1862 вошёл(а) в комнату
[01:18:52] ftrvxmtrx вышел(а) из комнаты
[02:01:41] ad1862 вышел(а) из комнаты
[02:19:06] zert вышел(а) из комнаты
[03:09:10] Typhon вышел(а) из комнаты
[04:10:44] ftrvxmtrx вошёл(а) в комнату
[04:27:19] zinid вошёл(а) в комнату
[05:17:21] ftrvxmtrx вышел(а) из комнаты
[05:19:00] ftrvxmtrx вошёл(а) в комнату
[06:05:54] delete_ вошёл(а) в комнату
[07:07:37] delete_ вышел(а) из комнаты
[07:08:55] delete_ вошёл(а) в комнату
[07:20:12] delete_ вышел(а) из комнаты
[07:49:20] ermine вошёл(а) в комнату
[09:22:26] komar вышел(а) из комнаты: Replaced by new connection
[09:22:26] komar вошёл(а) в комнату
[09:28:32] bobry вышел(а) из комнаты
[09:30:46] bobry вошёл(а) в комнату
[10:14:59] bobry вышел(а) из комнаты
[10:27:17] gds вошёл(а) в комнату
[10:30:28] bobry вошёл(а) в комнату
[10:35:58] bobry вышел(а) из комнаты
[10:51:14] Typhon вошёл(а) в комнату
[11:23:57] bobry- вышел(а) из комнаты
[11:24:10] bobry- вошёл(а) в комнату
[11:24:27] <bobry-> товарищи, а камло Queue thread safe?
[11:25:55] komar вышел(а) из комнаты: Replaced by new connection
[11:25:55] komar вошёл(а) в комнату
[11:26:28] <f[x]> нет конечно
[11:27:02] <bobry-> почему конечно?
[11:27:20] <ermine> в камле есть мутексы
[11:27:35] <bobry-> ага, я видел -- думал что Queue уже их использует
[11:27:44] <bobry-> похоже питон научил меня плохому <_<
[11:27:57] <bobry-> там есть blocking queue из коробки
[11:28:06] <ermine> а зачем ему хлестать мутексом, когда нет тредов?
[11:28:15] <f[x]> вот именно
[11:28:42] <bobry-> ок, почему бы не сделать блокирующий аналог queue в конце концов, в качестве отдельного модуля
[11:29:09] <f[x]> кому не сделать?
[11:29:09] <ermine> возьми jocaml
[11:29:13] <f[x]> я себе сделал
[11:29:49] <ermine> а еще можно на хаскиль перейти
[11:30:05] <ermine> там библиотека, по сравнению с камлевой, ого-го!
[11:30:33] <f[x]> ну по такому критерию лучше на жабу
[11:30:34] <bobry-> ох, ocaml makes me sad
[11:30:54] <f[x]> привыкай находить в этом удовольствие
[11:31:07] <bobry-> f[x]: почему ты на нем пишешь?
[11:31:10] <ermine> да камло вообще убогий минимум, даже не скажешь, что он быстрый во всем
[11:31:52] <f[x]> деньги платят, вот и приходится страдать
[11:32:30] <ermine> а за хаскил пчу-то не платят?
[11:33:33] <ermine> bobry-: а тебе-то камло зачем?
[11:39:53] <bobry-> ermine: тык xen-api же, ну и вообще интересно покопаться пока что
[11:44:11] <ermine> bobry-: а что xen-api? на работе?
[11:45:55] zert вошёл(а) в комнату
[12:17:50] <bobry-> ermine: ага, правда никто кроме меня камль учить не хочет :)
[12:18:04] <bobry-> кстати из каких соображений Unix.sleep не разрешает float?
[12:20:03] shaggie вошёл(а) в комнату
[12:20:07] shaggie вышел(а) из комнаты
[12:20:19] shaggie вошёл(а) в комнату
[12:22:48] <komar> bobry-: а черт его знает. Заюзай Lwt_unix.sleep.
[12:23:12] <bobry-> я тут подсмотрел грязный хак, sleep эмулируют через select
[12:23:25] <bobry-> Unix.select [] [] [] 0.01
[12:23:32] <gds> это не грязный хак, это юникс.
[12:24:24] <komar> gds: шо?
[12:25:18] <gds> это до некоторых времён было самым кроссплатформенным способом поспать нецелое количество секунд.  может и сейчас остаётся даже.
[12:25:21] <Typhon> bobry-: питон, например, также делает
[12:25:27] <Typhon> http://hg.python.org/cpython/file/e8da570d29a8/Modules/timemodule.c#l926
[12:25:38] <zert> да и перл
[12:25:39] <Typhon> просто в окамеле не стали засовывать это внутрь
[12:25:43] <zert> я такое помню
[12:25:49] <f[x]> Thread.delay
[12:25:56] <f[x]> делает _это)
[12:26:00] <f[x]> _это_
[12:26:13] <f[x]> а sleep это sleep(3)
[12:26:19] <f[x]> который int
[12:26:43] <gds> все делают _это_, но почему-то это считается постыдным.  Как онанизм, в общем.
[12:27:56] Typhon вышел(а) из комнаты
[12:27:57] <komar> Поцоны, а Unix чо, и на винде заработает?
[12:28:13] <bobry-> ну винда же умеет POSIX по слухам
[12:28:53] <zert> я шёл по раёну и увидел Unix на винде я резко подскочил....
[12:29:09] <komar> zert: не порть хорошую пасту.
[12:29:12] <gds> komar: Unix -- бОльшей частью да.  И даже без сираных ограничений типа "не более 64 сокета в селекте" и "только сокеты в селекте".
[12:29:16] ftrvxmtrx вышел(а) из комнаты
[12:29:27] <komar> Малаца хорошо зделали.
[12:30:13] <gds> наш соотечественник делал, dbely.  видимо, в рашке шиндоус нужнее, чем везде.
[12:33:24] <klapaucius> Уже лет 10 как из коробки не умеет.
[12:33:45] Typhon вошёл(а) в комнату
[12:43:36] ad1862 вошёл(а) в комнату
[12:43:44] <gds> а у меня текущая работа из "веб-сервисы + json" плавно переходит к тому, что их надо оформлять как "процессы парвела".  Может на волне этого (пока "предметная область" есть у меня в голове) камлунити соберётся и поможет с тем, чтобы заставить парвел работать между разными процессами ОС и хостами?
напомню, парвел -- проект, по своему дизайну являющийся message passing in actors style, имеющий типизацию в отличие от эрланга, и лишённый хтонических недостатков, замеченных у большинства подобных проектов на х-е, ну и позволяющий легко написать "ноду" на любом другом языке, не обязательно на окамле (из-за простоты протокола).
[12:44:33] <gds> ad1862: вчера не ответил, спать пошёл.  Про ATS -- я не копенгаген, и хз, гут или нет.  Но то, что в него, по-хорошему, стоит повтыкать-поизучать, это я уверен.
[12:45:27] <Typhon> тем более, что какой-то чувак пилит camlats, или как там (он ещё в чятик зашлядывал).
[12:47:51] <ermine> bobry-: в мане sleep не видно флоатов, а зачемЮ
[12:48:44] <f[x]> gds: так основная проблема во всех этих распределённых системах это сериализация сообщений
[12:48:53] <f[x]> в однородных средах маршалят средствами языка
[12:49:06] <gds> не только сериализация.  ещё -- адресация узлов.
[12:49:23] <gds> с сериализацией -- я даже вроде накодил её.  с версионностью, всеми понтами.
[12:49:32] <f[x]> для всех языков? ;)
[12:50:07] <f[x]> без ручного описания?
[12:50:14] <gds> да!  например, возможно будет использовать сериализацию в json или в любой другой формат, поддерживаемый одновременно камлом и почти любым другим языком.
[12:50:21] <f[x]> я хочу делать x#send (2,"dsds")
[12:50:40] <f[x]> нигде не описывая int * string
[12:51:01] <f[x]> не, в одном месте описывая
[12:52:00] <ad1862> gds: (ATS) сейчас ковыряю, компилируется через С, вроде даже быстрый, синтаксис произошел от окамл так пишут, но для меня х.з. я окамл не сильно то знаю, похож он или нет
[12:52:00] <gds> опиши тип средствами atdgen, нарисуй генератор кода в нужный язык (в камло уже есть), и всё.
[12:52:45] <gds> f[x]: либо ещё проще -- если между камлом и js гонять, то как раз в одном месте и будет описан тип.  какие типы в js? :)
[12:53:37] <f[x]> сам видишь - много мороки
[12:54:45] <gds> для чисто-камловых "нод" -- не много.  разве что если захочется поддерживать версионность / плавное обновление кода.
[12:55:16] <gds> но и на это я пойтить могу, в типах уже есть версия (целое число) и возможность для разных версий реагировать по-разному.
[12:55:32] <ermine> может пора перейти на агду?
[12:55:39] <ermine> типы по зависимости
[12:55:50] <gds> ermine: давай!  расскажешь, как там чего?
[12:55:58] <Typhon> а как же петух?
[12:56:07] <Typhon> агду надо сначала собрать, а это ооочень долго :-(
[12:56:13] <Typhon> с учётом, что сначала надо собрать гхц
[12:56:56] <ermine> Typhon: под макось же инсталлер есть
[12:57:34] komar вышел(а) из комнаты: Replaced by new connection
[12:57:35] komar вошёл(а) в комнату
[12:57:44] <Typhon> Agda.app ? засовывается в док, о выведенных типах сообщает в growl  нотификации?
[12:58:13] <f[x]> лучше на почту
[12:58:34] <f[x]> "Хозяин! Вывелся ещё один тип, как прикажете подать?"
[12:59:47] <ermine> блин, в портах фри нет агды :((((((((((
[13:10:27] ad1862 вышел(а) из комнаты: I'm happy Miranda IM user. Get it at http://miranda-im.org/.
[13:15:26] delete_ вошёл(а) в комнату
[13:18:05] ftrvxmtrx вошёл(а) в комнату
[13:25:48] delete_ вышел(а) из комнаты
[14:17:41] delete_ вошёл(а) в комнату
[14:17:59] delete_ вышел(а) из комнаты
[14:25:59] delete_ вошёл(а) в комнату
[14:26:50] bobry- вышел(а) из комнаты
[14:40:53] bobry- вошёл(а) в комнату
[14:45:55] delete_ вышел(а) из комнаты
[14:52:52] delete_ вошёл(а) в комнату
[14:53:01] delete_ вышел(а) из комнаты
[16:46:52] bobry- вышел(а) из комнаты
[16:47:01] bobry- вошёл(а) в комнату
[17:14:40] <bobry-> ну вот, Unix не умеет TTL сокету ставить :(
[17:18:05] <f[x]> а что это такое?
[17:18:14] <f[x]> RCVTIMEO?
[17:18:15] <Typhon> IP_TTL, i guess
[17:18:32] <bobry-> IP_TTL ага
[17:19:01] <f[x]> ясно
[17:19:30] bobry- не может получить ICMPv6 пинги :(
[17:19:59] <Typhon> bobry-: напейши екстернал функцию %)
[17:20:10] <f[x]> не портабельно
[17:20:20] <bobry-> Typhon: я си только читать умею
[17:20:44] <bobry-> я нагуглил библиотеку oping
[17:20:49] <bobry-> думаю вай вай -- какое счастья
[17:20:52] <bobry-> а она pure C
[17:21:12] <bobry-> ни строчки камла
[17:21:49] ad1862 вошёл(а) в комнату
[17:23:33] <komar> Че писать-то на покойничке.
[17:25:41] <ad1862> на pic18 запустили в этом году http://www.algo-prog.info/ocaml_for_pic/distribution/ocapic-ocamlmeeting-2011.pdf , кое как жив вроде
[17:29:40] <ad1862> а у него 4кб ОЗУ и оно работает, помойму все проекты на этом языке не от мира сего или я не прав ?
[17:32:27] <ermine> не все археоптериксы - птички
[17:35:21] <komar> ad1862: ну дык это же обалденно.
[17:35:50] <f[x]> а у меня 40Гб ОЗУ и тоже работает, правда с трудом o_O
[17:37:08] komar в окамле даже при построении синтаксического дерева промежуточного кода из дизасма winword'а проблем с памятью не имел.
[17:37:15] <komar> f[x]: что у тебя там с трудом работает?
[17:38:05] <ermine> хурд у него с трудом работает
[17:38:16] <komar> О Боже.
[17:38:34] <komar> f[x]: Луговский, вы?
[17:39:03] <bobry-> офигеть, oping открывает по сокету на хост
[17:39:06] <bobry-> вот расточительный
[17:39:28] <ermine> слишком молод для Луговского
[17:41:22] <f[x]> кстати да, хурд я что-то не осилил запустить, может надо было маны почитать
[17:51:07] <bobry-> Typhon: а чего нибудь типа питоновского struct для камла нету случаем?
[17:54:05] <ermine> а что это?
[17:54:41] <bobry-> это такая фигня чтобы байт строки распаковывать в питоновские типы
[17:54:44] <bobry-> и наоборот
[17:55:20] <bobry-> >>> struct.pack("iii", 100, 200, 300)
b'd\x00\x00\x00\xc8\x00\x00\x00,\x01\x00\x00'
>>> struct.unpack("iii", _)
(100, 200, 300)
[17:55:23] <ermine> маршаллинг?
[17:55:37] <bobry-> ну да, по сишному только
[17:56:32] <ermine> был где-то вариант, называемый безопасный маршалинг
[17:56:49] <bobry-> да, я как раз про что то такое
[17:57:02] <bobry-> а то Marshal.from_string -- какой то type-safety fail
[17:57:55] <ermine> ну погугли
[17:58:06] <ermine> а мне надо успеть еще почитать про хаскиль
[18:01:24] <bobry-> ermine: ты что то уже хочешь на нем написать? или пока просто играешься?
[18:02:33] <ermine> bobry-: хачу!!!
[18:02:52] <bobry-> шо?
[18:03:08] <ermine> чо-нить!!!
[18:04:21] <bobry-> где же gds, он бы уже предложил факториал!
[18:06:49] <ermine> или фипонач
[18:08:24] <ermine> вспомнилось - на споже был же конкурс по вычислению сколько-то там знаков для числа пи, там среди языков был и хаскиль
[18:08:43] <ermine> правда, для 32-битного хаскиля выявился заглюк в нём
[18:08:57] <ermine> а вы - какие-то факториалы
[18:22:40] ad1862 вышел(а) из комнаты: I'm happy Miranda IM user. Get it at http://miranda-im.org/.
[18:23:11] komar вышел(а) из комнаты: Replaced by new connection
[18:23:11] komar вошёл(а) в комнату
[18:24:59] <bobry-> товарищи, а можно как нить сказать что у модуля *может быть* функция а может и не быть в signature?
[18:31:04] <ermine> две сигнатуры пеши и кастуй где надо
[18:32:34] zinid посмотрел на ermine снизу вверх
[18:33:00] <bobry-> не кошерна чета
[18:33:06] <Typhon> bobry-: я не видел, struct'а то. ты смотрел cobson ж, там ручками в инты правильные сериализуется
[18:33:27] <Typhon> bobry-: не кошерно хотеть модуль, где может быть, а может и не быть %)
[18:33:38] <bobry-> тогда такой вопрос
[18:33:58] <bobry-> у меня есь public api у модуля, а в тестах я хочу проверить и private API, закрытый сигнатурой
[18:33:59] <bobry-> шо делать?
[18:34:19] <ermine> bobry-: зато строго типизировано!
[18:34:20] <Typhon> а зачем приват апи тестировать ? :-)
[18:34:28] <Typhon> паблик апи по идее использует приватные функции?
[18:34:30] <bobry-> ну как зачем
[18:34:35] <ermine> zinid: я всяко ниже тебя ростом
[18:34:37] <Typhon> значит, если они навернутся — значит что-то сломано
[18:35:03] <bobry-> Typhon: ну надо же снизу вверх, от мелких функций к жирным, public api самые жирные, их неудобно тестировать :)
[18:35:43] <Typhon> не, я не фанат тестировать всё подряд. используются извне публичные функции. их и надо тестировать
[18:35:58] <bobry-> okay
[18:35:59] <Typhon> если во время разработки, то во время разработки можно и не закрывать ничего
[18:36:12] <bobry-> кстати документация у камловского quickcheck'a сакс
[18:36:27] <Typhon> документации у камлового квикчека вроде как нет
[18:36:28] <Typhon> %)
[18:36:30] <f[x]> ну пиши тесты под сигнатурой и экспортируй их
[18:36:48] <bobry-> f[x]: что что?
[18:37:15] <Typhon> bobry-: бтв. который из квикчеков берёшь? для тестов есть ещё капуты всякие
[18:37:29] <f[x]> тесты пиши рядом с приватной реализацией а в сигнатуре реализацию спряь, оставь только тесты торчать
[18:38:10] <bobry-> Typhon: я сейчас пробую ounit, quickcheck брал из камлюнити
[18:38:47] <Typhon> bobry-: а в камлунити честно написано "more docs coming soon" ^__^
[18:39:31] <bobry-> "soon" :D
[19:18:35] <ermine> Typhon: когда было последнее пополнение там?
[19:23:34] <bobry-> http://batteries.forge.ocamlcore.org/doc.preview:batteries-beta1/html/extensions.html
[19:23:37] <bobry-> ох сколько вкусностей
[19:23:45] <bobry-> и чего инриа не хочут принять батарейки
[19:25:50] <ermine> дык чистое камло - камло без батареек
[19:26:36] <ermine> чистое камло компилится и ставится быстро-быстро
[19:26:50] <ermine> а батарейки небось компилятся так же долго, как иксы
[19:26:58] <zinid> это очень важно, да :)
[19:27:25] <zinid> where кстати круто
[19:33:16] <bobry-> ermine: если бы оно было чистое и хорошее, батареек бы не было, а была бы пачка разных либ для всего
[19:38:53] zinid вышел(а) из комнаты
[19:41:32] Typhon вышел(а) из комнаты
[19:45:21] ad1862 вошёл(а) в комнату
[20:00:41] ftrvxmtrx вышел(а) из комнаты
[20:11:33] ad1862 вышел(а) из комнаты
[20:21:16] <gds> а в чём вообще проблемы с батарейками?  по-моему, проблемы с камлом чуть в другом месте.  надо батарейки/extlib -- ну поставьте, чо.
[20:27:15] <bobry-> проблема в том что в батарейках есть, а в камле нет
[20:28:43] <gds> батарейки -- библиотека.  в любом языке есть библиотеки.  библиотеки -- код для решения специфических проблем.  язык -- для решения проблем общего назначения.
[20:32:22] shaggie вышел(а) из комнаты
[20:36:00] <bobry-> в случае батареек больше похоже что это библиотека для решения проблем языка
[20:37:17] bobry- вышел(а) из комнаты
[20:37:40] <gds> у перла есть проблема -- не умеет новости по nntp получать.
[21:14:33] <ermine> недаром батарейки называются батарейками, у этого слова есть термин-смысл
[21:18:57] bobry вошёл(а) в комнату
[21:31:45] <bobry> товарищи, у кого есть камль 3.12? у меня как оказалось уже 3.12.1
[21:46:14] shaggie вошёл(а) в комнату
[22:07:36] <bobry> real nice http://paste.in.ua/2823/
[22:10:51] <gds> баги фиксятся?
[22:12:57] <bobry> ведь в 3.12.1 правильно поведение
[22:13:00] <bobry> или я чего не понимаю?
[22:24:08] <gds> сейчас точно не подскажу.  на 64-битной машине должен быть другой результат, в отличие от 32-битной, поэтому это тут тоже важно.  по идее, рассматривается арифметика 31 / 63 -битных чисел.  для 31 бит оказывается, что lsr вставляет нули (судя по доке), и из 31 бита окажется 7 битов единичных, и там land 0xFF дадут 0x7F.  для 63 бит -- должно остаться 63-24=39 единичных битов, и там после land 0xFF будет 0xFF.  точно битность одинаковая в обоих случаях?
[22:25:53] <bobry> хм, что то я забыл про то что в камле 31 / 63, битность действительно разная
[22:26:55] <bobry> gds: спасибо, прямо в точку :)
[22:29:48] <gds> тут надо либо конкретные Int32/Int64, либо, может, bitstring/bitmatch?  хз, как правильно называется, но там сильно удобнее протоколы разбирать.
[22:42:14] bobry поменял все инты на Int32 и оно заработало
[22:42:16] <bobry> sweet :)
[22:44:18] <gds> во, чотко.  А int, как и большинство окамловских решений, для СКОРАСТИ.  гарантированное попадание в регистр и всё такое.
[22:45:31] <bobry> ну да, понятное дело -- он там unboxed же?
[22:46:07] <bobry> кстати, в чем бонус Buffer перед String, кроме быстрой конкатенации?
[22:49:31] ygrek вошёл(а) в комнату
[22:54:33] <gds> int -- всегда unboxed.  Buffer -- вот тем и преимущество.  Люди вон как извращаются, когда есть иммутабельные строки -- см. известную жабью "stringbuilder" или как-то там, см. недавнюю х-евую библиотеку (опупенно-быстрое склеивание!1222222).
[23:19:35] <ermine> ых, переход на камло 3.12.1 ломает либлы
[23:21:53] <bobry> ermine: кривые руки ломают либы :)
[23:22:28] <bobry> и не только либы
[23:22:59] bobry нашел кусок кода где камло список написан на хацкеллевский манер
[23:23:01] <bobry> бррр
[23:23:44] <gds> а это как это?
[23:24:07] <bobry> это когда ; на следующей строчке
[23:24:08] <ermine> в смысле?
[23:24:37] <ermine> это и ревизед тоже, не то что хаскиль
[23:25:17] <ermine> впрочем, ревизед - для тайных поклонников х-ля, не желающих в этом признаться, типа gds
[23:25:32] <bobry> revised? где это он такой?
[23:26:00] <gds> я часто пишу списки-структуры-туплы как
[ 1
; 2
; 3
]
[23:26:30] <gds> ermine: это кто тут заспамил всю конфу про свою новую манечку -- я?
[23:26:30] <ermine> вооот!!! он сам сознался!!!
[23:26:53] <bobry> :D
[23:26:56] <bobry> drama!
[23:27:30] <bobry> ну так мне тоже нравится кстати, там ; не выровнены по []
[23:27:52] <ermine> а мне - нет
[23:28:06] <ermine> и на хаскиле не собираюсь писать в таком стиле
[23:28:34] <ermine> это ведь ужасно и противоречит всем нормам женской логики, в которой знаки препинания никак не предшествуют фразам
[23:29:01] bobry ждет не дождется первой х-л либы от ermine :)
[23:31:22] <gds> ermine: в женском стиле речи знак препинания предшествует фразе в качестве интонации, и частенько контекстно-зависимо меняет смысл фразы вплоть до противоположного.
[23:31:27] <ermine> а что эта либла должна будет делать?
[23:32:07] <gds> вот что мне нравится в камле, что выравнивание не обязательно решать на уровне языка.
[23:32:59] <bobry> даже не знаю, что щас модно писать?
[23:35:11] <gds> bobry: parvel конечно.  но это на окамле.  на х-е -- по-старому, нутыпонел.
[23:35:13] <ermine> gds: да, твои дебаги в итератах неудобно смотреть!
[23:35:20] <ermine> не выровнены!!!
[23:35:35] <gds> ermine: есть патчiiiiiк?
[23:36:08] <ermine> gds: на тему, куда как делать опциональным?
[23:37:03] <gds> ermine: недопонял.  Если про dbg, то хрен знает, как правильно.  По идее, препроцессором.  Пока вопрос не поднимался, и "не буди лихо пока этосамое".
[23:37:34] <ermine> gds: ну сделай отдельный итерат для дебагов, ты же любишь скопище отдельных итератов
[23:38:01] <ermine> в смысле итерат получает стрим и печатает его содержимое и потом шлет его куда подальше
[23:38:30] <ermine> что-то типа хаскильного writter
[23:38:48] <gds> ermine: честно, не понимаю, как там для дебагов сделать итерат, даже так.  И это порушит всю идею "отладочных сообщений" как тех, которые полностью выключаются в релиз-билде.
[23:40:08] <ermine> gds: а всё потому, что у тебя >>=, >>&, а writter - это еще один слой монад
[23:40:26] <ermine> не тем путём идёте, дарагие товагищи
[23:40:43] <gds> ermine: в рот мне ноги!1111111111
[23:41:11] <ermine> чьи ноги?
[23:42:07] <gds> с чего вообще мысль о том, что для синтаксического выравнивания отладочных сообщений нужна третья монада?
[23:44:47] <ermine> она может аккумулировать логи, а не печатать императивно, по ходу выполнения
[23:45:00] <ermine> красиво выровненные сообщения
[23:45:49] <ermine> gds: смотри на часы - я чота к ночи разтроллилась :)
[23:46:45] <bobry> вопрос на засыпку, в камле модуль знает по какому пути он лежит?
[23:46:59] <gds> выравнивать сообщения -- фигня.  а кумулировать -- там не нужно.  это же отладочные сообщения, их надо выводить сразу, как выполнение дошло до данной печати.
[23:47:16] <gds> bobry: обычно нет.
[23:47:25] <bobry> а научить его можно?
[23:47:51] <bobry> может есть какая переменная хитрая
[23:47:51] <gds> смотря какая цель.  обычно-то оно и не нужно.  а так -- препроцессором, видимо.
[23:48:13] <ermine> gds: зато не надо будет проверять на каждый чих if debug then print_debug "lala"
[23:48:17] <gds> какие-то __FILE__ в каком-то из препроцессоров есть.
[23:48:24] <bobry> да у меня тестам нужны файлики, лежат они в директории projectdir/tests
[23:48:30] <bobry> я вот думаю как их читать
[23:48:40] <bobry> относительный путь явно не катит, ибо зависит от cwd
[23:49:03] <ermine> bobry: чур меня, чур меня, ты тоже в камле пытаешься применить прочтенное из туториалов по хаскилю
[23:49:38] <bobry> ermine: та не, пока не пытался особо
[23:49:41] <gds> ermine: а представляешь другой оверхед, от манатки?  я думаю, if debug -- это реально мелочи.  даже в плюсеках статические переменные внутри функций подобным образом проверяются на инициализированность.
[23:50:52] <gds> bobry: как вариант -- заверни выполнение тестов в скрипт, в котором по известным путям будут и тесты, и файлы.
[23:52:02] <ermine> gds: та плюсики! а то фп!
[23:53:03] <bobry> в плюсиках то теперь можно анониманые функции
[23:53:07] <bobry> так шо они почти фп :)
[23:53:09] Typhon вошёл(а) в комнату
[23:53:47] <ermine> крестов на вас нет
[23:58:24] <bobry> кстати, а почему во многих камлоисходних проскакивает тех?
[23:58:33] <bobry> это еще со времен когда не было ocamldoc'a?
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!