Home
Objective Caml
ocaml@conference.jabber.ru
Понедельник, 16 ноября 2009< ^ >
f[x] установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Верблюды грязи не боятся! | release crap | voice по запросу | ocaml мёртв, move on
Конфигурация комнаты

GMT+3
[00:15:20] ygrek вышел(а) из комнаты
[00:52:31] ermine вышел(а) из комнаты
[01:00:58] sceptic вошёл(а) в комнату
[07:06:34] sceptic вышел(а) из комнаты
[07:20:44] ermine вошёл(а) в комнату
[07:59:29] geovit вошёл(а) в комнату
[07:59:52] gds вышел(а) из комнаты
[08:37:20] iNode вошёл(а) в комнату
[08:58:52] gds вошёл(а) в комнату
[09:16:58] Typhon вошёл(а) в комнату
[09:24:44] aloner2k вышел(а) из комнаты
[09:39:38] ygrek вошёл(а) в комнату
[10:52:48] daapp вошёл(а) в комнату
[10:55:05] f[x] вошёл(а) в комнату
[11:00:14] sceptic вошёл(а) в комнату
[11:01:30] animist вошёл(а) в комнату
[11:44:31] <f[x]> gds: а что случилось?
[11:48:34] michael.holub вошёл(а) в комнату
[11:49:56] <gds> 1. творческий кретинизис (с разметкой; но фигня, можно было бы и форсировать; так и сделаю на днях), 2. жизнь слишком интересная. дома бываю только чтобы отдохнуть пару часов после работы да покормить кошек, 3. официальная работа -- в ощутимых количествах.
[11:52:02] michael.holub вышел(а) из комнаты
[12:00:15] <f[x]> ну это ок
[12:00:45] <gds> ну, а по другим причинам выпадать не собирался.
[12:02:08] <f[x]> ну там хаксели-шмаксели :)
[12:04:37] <gds> да ну, на травлю не так уж много времени уходит, и вполне делается во время камлания.
[13:18:54] Kakadu вошёл(а) в комнату
[13:22:25] geovit вышел(а) из комнаты
[13:22:54] <ermine> блин!
[13:23:18] <ermine> ocamlc не ругается, если в let _ = оставить партиал аппликешн
[13:23:31] <ermine> хоть бы какойнить варнинг был
[13:25:20] <gds> никакого варнинга тут не придумать.
[13:25:22] <f[x]> ну звыняйте
[13:26:11] <ermine> надо let () =
[13:26:21] <ermine> надо приучаться
[13:26:24] <gds> http://gdsfh.dyndns.org/kamlo/OCamlFAQ , в вопросе №3 изложил своё видение.
[13:26:37] <f[x]> почему нельзя полиморфные исключения?
[13:26:41] <gds> иногда бывает не unit, тогда let (_ : mytype) = ..
[13:27:10] <f[x]> хочу exception 'a Error of 'a list например
[13:28:54] <gds> вроде они решили сделать как проще. в том числе, упростить типизацию всяких raise/try.
[13:29:00] <Typhon> f[x], а зачем это нужно тебе?
[13:29:37] <ermine> и printexc.to_string упрощается
[13:30:08] <ermine> Typhon: експшны испльзуют и для передачи данных
[13:30:13] <gds> если известно, что дальше будет делаться с этим списком (и результат обработки мономорфен), можно завернуть список в нужный мономорфный тип.
[13:31:01] <Typhon> ermine: я в курсе, но что мешает Error of mytype list
[13:31:24] michael.holub вошёл(а) в комнату
[13:31:37] daapp вышел(а) из комнаты
[13:31:38] michael.holub вышел(а) из комнаты
[13:32:02] <f[x]> ermine: не уверен что printexc упрощается т.к. он всё равно не глубоко распечатывает
[13:32:48] <ermine> ну наверное
[13:33:09] <ermine> но писать Error (_ _) будет смешно
[13:33:20] <f[x]> Typhon: был модуль с типом t = { .. } и exception Error of t * string, расширяю - получилось type 'a t = { ..; extra : 'a } и упс
[13:34:23] <f[x]> но сейчас я поискал и понял что этот exception всё равно идёт наружу пользователю и ему до того extra дела нет, поэтому сделал exception Error of string и ок, но вопрос остался
[13:35:38] <Kakadu> ermine: Error (_ _) на баш надо
[13:35:40] <f[x]> gds: и по этой же причине мономорфизация не катит
[13:35:55] <f[x]> точнее Error(_,_)
[13:37:21] <ermine> f[x]: а как описать в синшном биндинге такой экспшн?
[13:38:01] <f[x]> также как и любой полиморфный тип?
[13:38:38] <ermine> а в камлевом коде для регистрации именнованного экспшна надо какое-то дефолтное значение указать
[13:39:31] <f[x]> ну задай любое, если у него снаружи тип 'a то его никто не сможет рассмотреть всё равно :)
[13:40:16] <ermine> ну тогда пиши в мейллист :)
[13:40:25] <ermine> к спорам ты готов
[13:40:39] <f[x]> :)
[13:41:21] <f[x]> краем уха слышал что полиморфные исключения - это advanced topic, так что я лучше в сторонке постою
[13:41:41] <f[x]> btw, небольшая шедевра
let check_unique t = is_unique t || raise (Error (t,"duplicate attributes"))
[13:42:55] <gds> неплохо. ещё в ignore завернуть, чтобы вообще unit выдавало.
[13:44:12] <ermine> let die = raise
[13:44:38] <ermine> потом еще допилить, и от перла не отличить
[13:45:28] <gds> наши, так сказать, коллеги уже допилили кое-что до читаемости перла. хватит извращений.
[13:45:44] <ermine> тут плачутся по поводу полиморфных экспшнов, а я, помнится, рыдала по партиал аппликешнам алгебраических типов
[13:46:45] <ermine> gds: а пчу нету камлевой реализации pugs?
[13:48:41] <gds> для подобного нужна особая гендерная конфигурация.
[13:48:45] f[x] думает на отдельной странице собирать вопросы ermine
[13:49:34] <f[x]> с title'ом : попробуй-ка ответь
[13:51:30] <f[x]> и кстати value restriction иногда достаёт
[14:05:57] animist вышел(а) из комнаты
[14:06:14] animist вошёл(а) в комнату
[14:08:20] <gds> кстати вот, про работу, оффтопик. сейчас час бодался из-за того, что оракловая база криво вычисляет условие в "case when a=0 and b>c then .." (выдаёт результат false при обоих выражениях, равных true). Рядом стоящая, ровно такая же база выдаёт результат правильно. Почти уверен, что после перегрузки текущей базы она тоже будет правильно работать.
Как после этого чем-то умным заниматься -- ума не приложу.
[14:17:31] Kakadu вышел(а) из комнаты: I'm happy Miranda IM user. Get it at http://miranda-im.org/.
[14:18:37] ermine вышел(а) из комнаты
[14:20:29] sevenov вышел(а) из комнаты
[14:20:38] sevenov вошёл(а) в комнату
[14:33:05] geovit вошёл(а) в комнату
[14:34:31] <Mon> gds, а будешь жаловаться - заставим на mysql девелопить.
[14:40:45] ermine вошёл(а) в комнату
[14:43:15] ermine допиливает матюгальник сульци
[14:46:22] Kakadu вошёл(а) в комнату
[15:39:34] sevenov вышел(а) из комнаты
[15:39:47] sevenov вошёл(а) в комнату
[16:10:39] <ermine> есть у меня тупой вопрос!
[16:11:04] <ermine> gds: мне нужна фичастая очередь типа Queue.t, но мне ее нужно иногда чистить
[16:12:18] <ermine> можно соорудить из двух частей - какойнить хэштаблицы и чего-то weakоподобного
[16:12:20] <gds> ermine: Queue.clear?
[16:12:58] <ermine> в первой части удалил - само уплыло из второй части, зато очередность во второй части нарушена не будет и не придется каждый рза вручную пропалывать очередь
[16:13:32] <ermine> gds: не всю очередь
[16:14:03] <gds> на те же 10 элементов?
[16:14:34] <ermine> gds: пример: у бота в очереди много-много мессаг в конференцию, адресованы конкретному чуваку. Чувак вышел из конференции, не забрав все свои мессаги из очереди. Очередь надо почистить, а не попытаться палюбому спихнуть в конференцию
[16:15:08] <ermine> такая морока еще и нужна, потому что в джаббере есть антифлуд, с которым надо мириться и рассчитывать скорость посылки мессаг
[16:16:29] <gds> конкретно тут можно просто смотреть при попытке спихивания, есть ли чувак. Если его нет, не посылать сообщение и всё.
[16:17:16] <ermine> м
[16:17:23] <ermine> в принципе можно
[16:18:06] <gds> проблема только в обработке случая: вышел и сразу же вошёл, что с мессагами делать? у тебя они убились бы, у меня продолжались бы доставляться, если ещё есть.
[16:18:16] <ermine> а Condition.t позволит мне обойтись без мутекса? чота я запамятовала
[16:18:29] <gds> вроде там только с мутексом работает.
[16:19:39] <ermine> ну насчет летающего юзера ты прав
[16:20:16] <gds> насчёт condition'ов -- как-то налепил себе такое: http://paste.defun.ru/m3e84362c , с тех пор не вникаю.
[16:21:56] <ermine> мутекс просто не разрешает изменения где-то там, а кондишн ждет сигнала, мне надо дождаться сигнала, что можно послать очереднюю мессажку
[16:23:24] <gds> и никакой мутекс не должен прикрывать посылку следующего сообщения?
[16:25:16] <f[x]> "jocaml" кричали пьяные пионеры
[16:25:24] <ermine> а зачем? послал мессагу - ждем сигнал
[16:25:35] <ermine> одну за другой
[16:26:21] <ermine> по ходу дела будет видно, какие там пороги на реке трафика
[16:27:51] <ermine> осталось понять как реализовать саму посылку, хотелось бы пока обойтись без тредов
[16:29:44] <ermine> а нет, обойдемся без тредов :)
[16:30:17] <ermine> и сигналов
[16:43:19] Typhon вышел(а) из комнаты
[16:54:18] ermine вышел(а) из комнаты
[16:54:29] Typhon вошёл(а) в комнату
[16:55:23] ermine вошёл(а) в комнату
[16:56:36] geovit вышел(а) из комнаты
[17:30:50] gds вышел(а) из комнаты
[17:58:46] iNode вышел(а) из комнаты
[18:02:30] gds вошёл(а) в комнату
[19:06:48] sceptic вышел(а) из комнаты
[19:57:46] Typhon вышел(а) из комнаты
[20:11:12] Kakadu вышел(а) из комнаты
[20:19:10] Mon вышел(а) из комнаты
[20:19:23] Mon вошёл(а) в комнату
[20:27:24] f[x] вышел(а) из комнаты
[20:32:44] Mon вышел(а) из комнаты
[20:32:59] Mon вошёл(а) в комнату
[20:33:19] Mon вышел(а) из комнаты
[20:33:32] Mon вошёл(а) в комнату
[20:33:49] Mon вышел(а) из комнаты
[20:34:00] Mon вошёл(а) в комнату
[20:35:56] iNode вошёл(а) в комнату
[20:36:06] Mon вышел(а) из комнаты
[20:36:17] Mon вошёл(а) в комнату
[20:50:56] Mon вышел(а) из комнаты
[20:51:04] Mon вошёл(а) в комнату
[20:54:05] sceptic вошёл(а) в комнату
[21:02:10] DimitryKakadu вошёл(а) в комнату
[21:14:58] sceptic вышел(а) из комнаты: Replaced by new connection
[21:15:03] sceptic вошёл(а) в комнату
[21:16:59] <ermine> http://angelov.ya.ru/replies.xml?item_no=3552
[21:23:04] animist вышел(а) из комнаты
[21:23:21] animist вошёл(а) в комнату
[21:32:20] Typhon вошёл(а) в комнату
[22:06:51] <ermine> gds: как узнавать, что данные в сокет ушли?
[22:11:15] <Typhon> ermine, send возвращает количество отправленных символов, не пойдет?
[22:12:03] <ermine> это тогда надо юзать select(), чтобы было незастревающе
[22:12:49] <ermine> ладно, это моя заморочка, одна их тех, о которых ygrek завидует
[22:20:25] Mon вышел(а) из комнаты
[22:20:36] Mon вошёл(а) в комнату
[22:46:19] ermine вышел(а) из комнаты
[23:26:37] DimitryKakadu вышел(а) из комнаты
[23:35:35] ygrek вышел(а) из комнаты
[23:36:25] ygrek вошёл(а) в комнату
[23:43:27] DimitryKakadu вошёл(а) в комнату
[23:59:31] <gds> ermine: не заморачивайся по этому вопросу :) в общем случае, не стоит лезть за пределы абстракции без крайней необходимости. а у тебя абстракция прописана сверху: xmpp (xml) over tcp/ip.
(а про системы контроля версий -- правильно!)
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!