Home
Objective Caml
ocaml@conference.jabber.ru
Пятница, 16 декабря 2011< ^ >
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:09:27] <ermine> слила, спасибо
[00:11:38] <ermine> f[x]: ты свап когда-нибудь чистишь?
[00:12:44] ermine вышел(а) из комнаты
[00:32:11] Kakadu вышел(а) из комнаты
[00:34:53] <f[x]> ermine: неа, это же свап
[01:00:04] komar вышел(а) из комнаты
[01:07:56] <bobry> gds: ping?
[01:08:05] <gds> pong
[01:08:08] <bobry> | пропускать установку пакетов, которые уже есть в _dep
  | в следующих версиях
[01:08:21] <bobry> это туду или "в следующих версиях"?
[01:12:10] <gds> bobry: предлагаю на следующие версии, а в todo пометка -- чтобы не потерять пункт.
[01:12:23] <gds> ну и чтобы обсудить, всё-таки.
[01:12:30] <bobry> из гуглодока не потеряется :)
[01:13:21] <bobry> с env у тебя красиво получилось, /me читает код
[01:15:23] <gds> с env -- в целом покатит, но по-мудацки из-за кривых гарантий в WithM.W.sequence.  я там откомментировал про "неосвобождение предыдущих взятых ресурсов".  надо какую-то алгебру продумать над withres, чтобы было действительно красиво.  которая позволит композицию.
[01:16:15] <gds> сейчас я смело забил, так как, по сути, пока некритично, выставлять ли окружение взад.  но я буду думать об этом, задело меня.
[01:26:11] gds вышел(а) из комнаты
[01:31:15] Typhon вышел(а) из комнаты: Replaced by new connection
[01:31:18] Typhon вошёл(а) в комнату
[01:39:11] Andrey Popp вышел(а) из комнаты
[01:45:49] Andrey Popp вошёл(а) в комнату
[01:53:18] Andrey Popp вышел(а) из комнаты
[02:03:12] f[x] вышел(а) из комнаты
[02:04:10] f[x] вошёл(а) в комнату
[02:06:31] Typhon вышел(а) из комнаты
[02:12:57] Andrey Popp вошёл(а) в комнату
[02:21:26] f[x] вышел(а) из комнаты: Replaced by new connection
[02:21:27] f[x] вошёл(а) в комнату
[02:54:09] Andrey Popp вышел(а) из комнаты
[02:57:03] Andrey Popp вошёл(а) в комнату
[03:06:27] Andrey Popp вышел(а) из комнаты
[04:08:57] f[x] вышел(а) из комнаты
[06:02:00] letrec вошёл(а) в комнату
[06:02:13] letrec вышел(а) из комнаты
[06:02:29] letrec вошёл(а) в комнату
[06:07:50] <bobry> блин, cmdliner не так крут как я думал .. он не умеет ничего кроме мана
[06:07:59] <bobry> в частности "просто показать опции" он тоже не умеет
[06:08:11] <bobry> только как в модных гитах, brb <cmd> --help открывает manpage
[06:08:19] <bobry> в общем щас пушну в отдельную веточку
[10:15:40] Andrey Popp вошёл(а) в комнату
[11:26:58] Andrey Popp вышел(а) из комнаты
[11:54:18] ftrvxmtrx вошёл(а) в комнату
[11:56:25] gds вошёл(а) в комнату
[12:03:06] <gds> bobry: ну так можно допилить cmdliner, там аппликативные функторы, они в целом приятны же.
[12:07:44] ermine вошёл(а) в комнату
[12:15:14] Kakadu вошёл(а) в комнату
[12:16:56] <Kakadu> добрый день/утро
[12:22:20] <Kakadu> gds: оглавление в ТЗ1 не соответствует пунктам (а именно "Детали реализации, важные для получения быстрого результата"). Так и задумано?
[12:22:26] Typhon вошёл(а) в комнату
[12:22:51] <gds> Kakadu: ну щёлкни на оглавление, там есть иконка "обновить".
[12:23:04] <gds> Kakadu: главу убрал, так как уже реализовали её успешно.
[12:23:28] <Kakadu> действительно, есть такая кнопка
[12:23:32] <Kakadu> сам бы не догадался
[12:24:16] <gds> я чото тоже думал, что оно автоматом должно генерить оглавление, без поглаживаний.
[12:29:16] <Kakadu> gds: кстати, когда он клонирует оверблд, то это реально долго и не понятно делает ли он там что-то в фоне
[12:31:03] <gds> Kakadu: это долго, да, там файлов немножко много, вот в чём дело.  Если хочешь, параллельно запускай du -c work1 | tail -1, будет увеличиваться размер.
[12:36:04] <Kakadu> gds: http://img14.imageshack.us/img14/3671/echof.png
[12:36:41] <gds> echo из цыгвына используется, а самого цыгвына чото нет.  пичалька.
[12:37:20] <Kakadu> а ты не зочешь собрать бандл оверблд с новым мингвом?
[12:37:29] <gds> Kakadu: кстати, есть такой прикол, иногда Ctrl-C копирует текст из подобных мессажбоксов.
[12:37:40] <Kakadu> даа??? не слышал
[12:38:10] <gds> Kakadu: хочу, конечно!  только куча более полезных дел.  кстати вот, вчера составил актуальный список, зацитирую ща.
[12:38:17] <Kakadu> ну на моем компе он заменят все буквы в минусики
[12:39:54] <gds> - parvel with os processes
- litpro -> iteratees tutorial
- barbra 1.0 release <- TODO.txt
- ms' "eventually consistent transactions"
- overbld @ Kakadu
- barbra / bytecode / f[x]
- js_of_ocaml посмотреть, module rec можно ли запилить
- WithM заменить sequence на надёжное
[12:41:30] komar вошёл(а) в комнату
[12:41:53] <gds> записал "overbld -- новый mingw".
но есть подозрение, что надо на основе барбры делать новый оверблд.
[12:42:47] <gds> впрочем, mingw-окружение там по-любому будет нужным.  да и нужно как-то более-менее автоматически генерить его уметь.
[12:43:01] <Kakadu> gds:
+ написать за Kakadu его диплом а то он пойдет в армию
+ понять что за пиздец с лаблкути, ибо там всплыли проблемы в калёвом генерируемом апи
[12:43:36] <Kakadu> )
[12:43:37] <gds> Kakadu: диплом -- сам, но если он с F# и парсерами, то жаль тебя чуток.
[12:46:11] <Kakadu> gds: у тебя сейчас есть мозг для  https://github.com/Kakadu/lablqt/wiki/Inheritance ?
[12:46:47] komar вышел(а) из комнаты: Replaced by new connection
[12:46:47] komar вошёл(а) в комнату
[12:47:35] <Kakadu> кстати, у меня барбра не заработала вчера. вначале не было капутта, а потом она перестала его находить, когда я его в /usr/lib/ocaml поставил
[12:47:47] <Kakadu> но это лучше вечерком, как супербобрый придет
[12:48:24] <gds> сейчас -- мало мозга, пытаюсь проснуться.  да и другие проблемы есть.  тот же WithM нужен мне сильно больше и для очень практических целей.
[12:48:49] <Kakadu> а где на него посмотреть?
[12:50:56] <gds> WithM?
[12:51:17] <Kakadu> угу
[12:51:33] <gds> в барбре /src/ext/withM.ml
[12:52:01] <gds> в новых версиях есть WithM.W().sequence, он стрёмный.
[12:52:36] <gds> а альтернативки -- или вторую манатку наворачивать, или хрен знает что делать вообще.
[12:53:39] <gds> про наследование -- вроде последняя проблема была с чисто виртуальным классом, когда неизвестно было, что создавать в камле?  Если да, то создай хоть какой-нибудь класс с методами, вызывающими методы сишного виртуального класса.  То есть, как-то выкрутиться через "переходники".
[12:56:12] <Kakadu> ага, я понял, но пока мне кажется что это изврат, но я подумаю надосуге ковыряя парсеры и фадиез
[12:58:18] <Kakadu> вопрос всем и ermine:
есть модуль похожий на MLный, где много парсер-комбинаторов. Мы для некоторых комбинаторов хотим наворатить расширение, которое
1) оставит за этими комбинаторами возможность исполняться
2) даст возможность доставать AST этих комбинаторов, чтобы понимать как они работают и по ним смотреть какую грамматику они парсят
[13:03:12] <Kakadu> я тут кстати агитирую приятеля заставить его собрать студентом и заставить из написать cmsку на оксигене, но хз что их этого выйдет, ему стремно . Он ещё не видел оксиген, но камло любит. Как бы зафорсировать, ибо у меня наверное не будет времени руководить в следующем году.
[13:03:16] <gds> представляй каждый комбинатор в виде значения какого-нибудь типа данных, по которому можно пройтись и получить п.2.  если надо, можно представлять их в виде тупла из значения и из "скомпилированного" представления, или не "компилировать" их, а интерпретировать.
[13:03:22] <ermine> ничо не поняла
[13:05:47] <Kakadu> ermine: есть куча функций-комбинаторов. Надо на их код наложить ограничения, и в следствии этого иметь возможность знать AST этих функций. Побочное требование --- чтобы комбинаторы могли использоваться как комбинаторы. Конечная цель --- внедриться в код, посмотреть какие комбинаторы объявлены, какое у них AST, и понять если  мы заменим комбинаторы на LALR получим ли мы какой-то профит скорости
[13:06:20] <gds> внедриться в код -- no wai.
[13:06:37] <Kakadu> .NET имеет свой вэй для этого
[13:06:48] <gds> не делай так, задолбаешься.
[13:06:53] <Kakadu> а как?
[13:06:57] <Kakadu> так работает АОП
[13:07:08] <gds> если это был бы функтор, можно было бы ему на вход разное подавать (для запуска -- одно, для просмотра -- другое).
[13:07:22] <Typhon> Kakadu: это диплом такой?
[13:07:32] <ermine> Kakadu: а еще научись делать такие операторы, которые указывают чей результат брать и двигать дальше
[13:08:00] <ermine> вот щас смотрю в markdown-peg хаскильный, а там очень хорошо комбинаторами сделано
[13:08:01] <Kakadu> Typhon: если я не докажу научнику что это изврат, то да
[13:08:53] <Kakadu> И ещё научник сказал что комбинаторы УГ, потому что они умеют только простые вещи делать, типа вопросика в ЕБНФ или сиквенса токенов. Но я ему не поверил
[13:09:00] <ermine> там оператор например A <<- B выполняет A потом B и возвращает результат A, A ->> B соответственно результат B
[13:10:03] <Typhon> Kakadu: может подраться с ним? %)
[13:10:08] <ermine> а все остальные нюансы решатся, как только приступишь к делу
[13:10:23] <Kakadu> ermine: я ничего не понял
[13:10:38] <Kakadu> и что что есть такие два комбинатора?
[13:11:08] <bobry> morning camlunity
[13:11:17] <bobry> gds: не тыкал cmdliner версию?
[13:12:21] <gds> bobry: нет, никак не тыкал.  пожалуй, для практических целей меня устроит и разбор списка, а если тебе гламура хочется -- пили, я не против, если только cmdliner не потребуется потом как зависимость.
[13:12:37] <ermine> Kakadu: ну обычными монадами типа a >> b, a >>= b ты будешь мучаться с тем, как коллекционировать ненужные результаты, в комбинаторе ты не сделаешь, что если тебе надо распарсить пробелы, но проигнорировать их (тебе не нужна строка пробелов, только наличие их как факт), то тебе пригодятся операторы выбора результата двух комбинаторов
[13:12:52] <bobry> потребуется, если будет минутка -- глянь, он в целом довольно достойно выглядит
[13:13:31] ermine в своей парсилке не использует комбинаторы, скорее получился лисп-подобный вей
[13:14:29] <gds> bobry: кстати, я там список своих текущих дел процитировал, есть и поважнее дела, даже для 1.0.
а вот что "потребуется" -- плохо.  надо придумать, как собирать с забандленными зависимостями, если уж хочешь их использовать.
как по мне -- так пофиг, что в такой мелкой софтине использовать для разбора аргументов, при условии, что разбор тупой и помещается в 20 строк.
[13:14:55] <ermine> Kakadu: возьми конкретный синтаксис чего-то и подумай, что тебе надо собсно выдрать из текста: "A = B" - тебе надо 5 токенов или только два?
[13:15:45] <ermine> 5 токенов - A, B, = и два пробела, комбинаторы вернут все
[13:16:12] <Kakadu> надо какую-то книжку про комбинаторы
[13:16:22] <ermine> для задачи же надо только A и B и AST (EQ (A, B)) ну типа того
[13:17:42] <gds> > научник сказал что комбинаторы УГ, потому что они умеют только простые вещи делать
интересно было бы у него узнать, почему комбинаторы называются именно так.  Нет ли здесь происков ЕРЖ?  Нет ли здесь тайного подтекста или скрытого смысла?
[13:19:00] Andrey Popp вошёл(а) в комнату
[13:35:37] <bobry> gds: кстати в случае cmdliner сделать bootstrap очень просто, мы делаем еще один бинарник, который соберет на brb: Barbra.(cleanup; install)
[13:36:49] <gds> вот и думаю, может, учитывая, что в простых случаях всё и так работает хорошо, может сделать два бинарника, brb0 тупой и brb нормальный.
[13:37:51] <bobry> можно, если brb0 это тот же bootstrap
[13:38:19] <gds> ну да, чисто для этих целей он.
[13:38:55] <bobry> только туда еще придется вписать with_env ["make"]
[13:39:34] <gds> зачем?  если нет MAKE в окружении, и так берётся make.
[13:39:48] <bobry> ну потому что в brb0 не будет run
[13:40:01] <Kakadu> на бсде нет make, есть gmake
[13:40:17] <bobry> Kakadu: MAKE ok :)
[13:40:47] <Kakadu> ermine: а можешь как-то прокомментировать где в комбинаторах лексер?
[13:41:36] <gds> bobry: ну сделать brb0.ml с прошитой логикой, типа "брать /brb.conf, собирать зависимости, собирать brb.ml".
[13:43:32] <ermine> Kakadu: парсер == опознавалка recognizator, т.е. тестишь текущий элемент входных данных, если он удовлетворяет условиям, вынимаешь его из инпута и возвращаешь результат и остаток входных данных
[13:43:39] <ermine> это и есть парсер тупо говоря
[13:44:35] <ermine> а комбинатор - потому что есть магическая сила, позволяющая передать результат и остаток следующей фунткции с таким же API (или сигнатурой)
[13:46:52] <Kakadu> мне научник втирал что там надо будет хакать лексер, ибо в камле есть структурное наследование в классах, а в фадиезе нет его, и чтобы не реализовывать по интерфейсу на каждй токен, лучше использовать Dynamic вызовы (которые типа без проверки типов). Я так и ничего не понял
[13:47:17] <Kakadu> Сейчас надо посмотреть на превью фадиеза 3, может они чтонить полезное внедрили
[14:12:48] <Kakadu> короче ничего полезного не внедрили
[14:13:14] <Kakadu> надо пилить барбру и двигать камло в массы, в том числе и на оффтопик по-видимому
[14:14:56] <Kakadu> bobry: а для чего вы хотели cmdliner внедрить?
[14:15:49] <ermine> Kakadu: ты лучше опиши, что ты хочешь парсить
[14:16:02] <ermine> а чем - это уже вытекает из описания задачи
[14:16:39] <Kakadu> я ничего не хочу парсить. Человек пишет парсер на комбинаторах. А моя тула на него смотрит и говорит, что вот если эту пкарсер-функцию заменить на LALR то будет профит по скорости
[14:17:28] <Typhon> грустноватая тема %(
[14:17:46] <Kakadu> Typhon: нереально?
[14:18:03] <Kakadu> в смысле не раельно такое сделать?
[14:18:29] <Kakadu> я так понимаю всё упирает в знание семантики парсер-функций и генерации грамматики по этой семантике
[14:18:46] <Kakadu> я могу наложить ограничения на комбинаторы, типа чтобы только хоршие комбинаторы были
[14:19:07] <Kakadu> могу заставить человека пользоваться своей бибилиотекой комбинаторво
[14:19:34] <Kakadu> Typhon: и ты давай конкретнее, без вас дамы и господа я не справлюсь
[14:20:02] <Typhon> не, в смысле, мне бы было неинтересно :-)
[14:20:19] <Typhon> да и для меня практическая полезность не очень понятна
[14:20:38] <Kakadu> мне виндовс банально вызывает комок в животе. Но надо как-то кончить универ
[14:20:51] <Typhon> парсеры на комбинаторах, насколько я знаю, пишут не для скорости, а для удобства выражения
[14:21:19] <Kakadu> ну вот, моя тула будет бэкэндом, который будет давать профит по скорости
[14:22:02] <Typhon> http://thedeemon.livejournal.com/1155.html
[14:32:08] <Kakadu> Typhon: ccыллка, тру!
[14:41:49] ermine не уверена, что Kakadu осознал все до конца
[14:42:21] <ermine> в любом парсинге особый смак именно в разделении синтаксиса и результата
[14:45:19] <Kakadu> ermine: разверни?
[14:50:30] <ermine> Kakadu: ну вот синтаксис равенства a = b, тебе знак равенства = нужен как результат парсера?
[14:50:46] <Kakadu> что значит мне?
[14:52:06] <Kakadu> в идеале я не должен писать парсер
[14:52:42] <ermine> тебе как читателю данных глазами - нужен, а если ты робот, который должен, например, произвести операцию сравнения, не нужен, ты просто вынул данные из трафарета, наложенного на строку данных (трафарет = синтаксис, пожалуй)
[14:52:57] <Kakadu> и?
[14:53:22] <ermine> а еще можно сказать, что синтаксис определяет семантику, здесь семантика как раз операция сравнения
[14:54:21] <Kakadu> нет, я имел ввиду другую семантику
[14:54:46] <ermine> семантика привязана к "=", который хочет два операнда определенного типа (это будет результат другого парсера)
[14:54:51] <Kakadu> положим я хочу написать парсер который парсит a = b
[14:55:11] <Kakadu> я делаю типа
let p = ident >>= eq >>= ident
[14:55:42] <Kakadu> семантика >>= в том что оно парсит последовательность
[14:56:04] <Kakadu> и я могу нашенерить БНФ как p = IDENT EQ IDENT
[14:56:15] <Kakadu> и из БНФ нагенерить lalr, и прочая
[14:56:22] <Kakadu> в этом смысле семантика
[14:56:27] <Kakadu> семантика парсер-функций
[14:59:14] <ermine> пользуясь только >> и >>=, можно быстро сдохнуть, и твой научник будет прав в том, что комбинаторами можно сделать только несложный парсер
[15:00:09] <Kakadu> ну ОК, какие там ещё операторы определяются?
[15:00:10] <ermine> тут целая толпа хаскелистов веками извращается, чтобы перловыми значками облегчить себе жизнь в парсинге сложных текстов
[15:01:00] <Kakadu> let modifier = p_static ||| p_abstract ||| p_inline
[15:01:24] <Kakadu> генерю БНФ как modifier = STATIC | ABSTRACT | INLINE
[15:01:35] <ermine> вот я говорила про markdown-peg (на гитхубе есть у одного чувака), там это выглядело бы как a <<- eq <++> b, где <<- вернет результат левого операнда, а <++> - результаты обеих операндов
[15:02:00] <Kakadu> говорила
[15:03:44] <ermine> а у меня в парсере щас техника PushDown, где я складываю в стэк то что мне надо и я четко обозначаю где надо из строки выдрать лексемы
[15:06:42] <ermine> в камле тяжко там где по инерции после хаскеля хочется результат выдирания из строки представлять в виде списка букв
[15:07:26] <ermine> а в стэке у меня фактически AST и строится
[15:09:11] <ermine> и стэк не мутабельный, он передается как результат в Parsed, что способствует сбросу ненужных результатов в случае бэктрекинга
[15:11:52] <ermine> а вот щас у меня задача в парсере - как на основании знания об синтаксисе ограничить бэктрекинг, например, синтаксис "(expr)" позволяет говорить, что если ты распарсил (, то бэктрегинг тут уже не имеет смысла, если не встретится ), то это уже ошибка в инпуте
[15:16:34] <Kakadu> запили вопрос в ru_lambda. Посмотрим что будет.
[15:16:36] Kakadu afk
[15:38:12] <bobry> Kakadu: (про cmdliner) так для барбары
[15:46:46] <ermine> да, в cmldiner тоже показано как бороться с унылостью >>=, >>
[16:30:36] <bobry> что-то я не пойму, вот есть у меня функция 'a -> 'a, на месте 'a может быть *любой* тип? даже например ('b -> 'c)?
[16:32:27] <bobry> судя по тому что получается в консольке -- так оно и есть, но почему так можно не понятно
[16:34:01] <ermine> потому что юзер может делать производные типы
[16:37:56] <bobry> gds: кстати ты видел сколько за собой тащит libwww-perl? нефига это не альтернатива
[16:47:36] <f[x]> bobry: чё, лень ещё один бинарник проверить? я видел системы где GET есть, а wget и curl - нет
[16:48:32] <bobry> имхо это какое то странное направление :) нету wget / curl -- поставь, они есть во всех дистрибутивах!
[16:49:28] ermine тоскливо смотрит на интересную задачу распарсить `code`, ``co`de``, ```co``de``` и тд, где надо считать число ` в начале и конце, чтобы совпали
[16:50:01] <ermine> Kakadu: реши эту задачку на своем мега-пупер парсере
[16:51:03] <f[x]> bobry: не надо прогибаться под изменчивый /bin?
[16:51:03] <ermine> Kakadu: http://daringfireball.net/projects/markdown/syntax#code
[16:51:29] <bobry> f[x]: не такой уж он и изменчивый :)
[17:19:10] ftrvxmtrx вышел(а) из комнаты
[17:20:20] <gds> bobry: любой тип -- да, 'b->'c тоже.
[17:20:31] <gds> bobry: GET -- нормальная альтернатива.  проверить бинарник надо.
[17:20:39] <bobry> <_<
[17:20:47] <bobry> тогда надо придумать способ по элегантней
[17:20:59] <gds> чем "проверять все сразу", как сейчас -- да.
[17:21:03] <gds> и я даже знаю, как.
[17:21:04] <gds> ща.
[17:21:07] <bobry> без res!
[17:21:31] <gds> res -- это непринципиально.
[17:23:56] <gds> вкратце, завести тип наподобие `Executable of string (потом добавить туда, например, `Hg (`Hggit | `Hgsvn)), и это прописывать в "требования".  а в "результат, если требование удовлетворено", прописывать какой-либо фиксированный тип, например, "url:string -> destdir:string -> unit".  таким образом, будет функция, которая по такому списку вернёт первое попавшееся.  а дальше результат работы этой функции в лентяйку закатать и ок.
[17:25:08] <bobry> а ведь неплохо звучит
[17:27:42] <bobry> gds: будет время набросать?
[17:28:41] <gds> будет, только сейчас реаллайфа дохрена, через несколько часов.  у нас же дело к гражданской войне идёт.  вот тебе и "маленькая, но гордая независимая республика".
[17:35:58] ftrvxmtrx вошёл(а) в комнату
[17:50:15] <f[x]> gds: ыыы
[17:51:19] <gds> хотя, вроде, в последние часы их наполовину попустило ( http://ria.ru/world/20111216/518418422.html ), но поглядим.  тут у нас весело жить.
[17:56:55] ermine подумала чуток и добавила в грамматику peg создаваемые на ходу паттерны (терминалы), для решения задачки с `
[18:01:35] <ermine> в markdown-peg подобная задача решается созданием ё0 альтернатив c заданным числом ` от 1 до 10
[18:01:45] <ermine> ну разве это декларативно?
[18:22:05] <Kakadu> ermine: может ну тебя с твоими задачками?
[18:42:37] Kakadu вышел(а) из комнаты
[19:14:47] gds вышел(а) из комнаты
[19:32:32] Kakadu вошёл(а) в комнату
[19:39:28] ftrvxmtrx вышел(а) из комнаты
[20:21:12] <ermine> Kakadu: тебя парсеры вгоняют в депресняк?
[20:24:07] <Kakadu> есть немного
[20:25:17] <ermine> меня тоже вгоняло в депресняк на заре познания
[20:27:49] gds вошёл(а) в комнату
[20:59:38] f[x] вошёл(а) в комнату
[21:00:53] Andrey Popp вышел(а) из комнаты
[21:36:58] letrec вышел(а) из комнаты
[22:20:57] Typhon вышел(а) из комнаты
[22:32:24] <Kakadu> а что по-украински чуйка значит?
[22:43:34] <gds> Kakadu: если ты про траву из чуйской долины, то это не только по-украински.
[22:46:35] <Kakadu> gds: я про http://www.youtube.com/watch?v=LosGPoQQR20
[23:02:21] Andrey Popp вошёл(а) в комнату
[23:18:35] <gds> bobry:
+      (* FIXME(bobry): do we need to check for existance? *)
       exec ["cp"; "-R"; path; dest_dir] >>= fun () ->
да, нужно проверить, чтобы из-за каких-то ошибок не перезаписать что-либо уже имеющееся.  лучше такие вещи проверять в коде, а не потом ловить в логах.
[23:33:52] <gds> bobry: сделал src/syscaps.*, погляди в master.
[23:34:05] <gds> полностью ensure не убирал, оно ведь работает.
[23:35:34] <gds> хинт hggit-юзерам: после merge надо подвинуть букмарк: "hg book master -f -r tip"
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!