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

GMT+4
[00:00:33] <ermine> ой, ну и телеги у тебя
[00:02:09] <gds> конкретно эта телега уже никуда не едет, ибо rbac -- штука нифига не гибкая. пользователь -> роли, роль -> действия. если хватит такого -- делай.
[00:02:42] <gds> если не хватит, обязательно упрёшься или в недостаток гибкости, или в слишком сложные алгоритмы, которые будет сложно проследить в уме.
[00:04:16] <ermine> есть еще такое понятие прав, как такое: если ты так выглядишь - к тебе надо применить определенные действия, например, за вход в конференцию посредством клиента пиджина - забанить. :)
[00:04:29] <ermine> но это уже сценарии
[00:05:00] <ermine> я пока начну с простого доступа для доступа к действию
[00:06:23] <gds> сценарии тоже выражаются декларативно, если простые по предполагаемым действиям. Иначе -- dsl тянуть.
[00:07:28] <ermine> ну палюбому юзер сам вызовет действие сценария хотя бы просто входом в конфу
[00:08:20] <ermine> в общем, есть творческий зуд
[02:00:31] Genix вышел(а) из комнаты
[02:00:42] Genix вошёл(а) в комнату
[02:15:02] Genix вышел(а) из комнаты
[02:16:01] Genix вошёл(а) в комнату
[02:25:31] Genix вышел(а) из комнаты
[02:25:41] Genix вошёл(а) в комнату
[02:25:55] Genix вышел(а) из комнаты: offline
[04:35:54] xkrt_ вошёл(а) в комнату
[05:54:06] xkrt_ вышел(а) из комнаты
[06:51:38] john вышел(а) из комнаты: Replaced by new connection
[06:51:39] john вошёл(а) в комнату
[08:06:37] sevenov вышел(а) из комнаты
[09:58:44] Typhon вошёл(а) в комнату
[10:51:11] ygrek вошёл(а) в комнату
[10:51:33] sevenov вошёл(а) в комнату
[11:41:34] f[x] вошёл(а) в комнату
[12:01:40] ygrek вышел(а) из комнаты
[12:10:13] Mon вышел(а) из комнаты
[12:11:21] Mon вошёл(а) в комнату
[12:18:05] Typhon вышел(а) из комнаты: Replaced by new connection
[12:18:06] Typhon вошёл(а) в комнату
[12:22:22] <f[x]> открытие: оказывается форк переживает только поток который собственно вызвал Unix.fork, а остальные идут лесом..
[12:25:05] Mon вышел(а) из комнаты
[12:42:48] Mon вошёл(а) в комнату
[13:43:04] <f[x]> интересно, можно ли в камле огрести проблем с кэшированием значений в разных потоках?
type t = { mutex : Mutex.t; mutable m : SomeMap.t; }
let add t k v = locked t.mutex (fun () -> t.m <- M.add k v t.m)
let get t k = locked t.mutex (fun () -> M.find k t.m)
[13:43:22] <f[x]> если вокруг get'а убрать мутекс - будет бяка?
[13:44:18] <gds> сходу, думаю, не будет бяк: значение сразу берётся M.find'ом, а, так как структура иммутабельная, она не изменится в процессе M.find.
[13:44:33] <f[x]> не, я не то имел ввиду
[13:45:09] <f[x]> может ли так быть что после того как add полностью отработал в одном потоке, в другом потоке get возьмёт старое езначение t.m (например не из памяти, а из регистра..)
[13:45:53] ygrek вошёл(а) в комнату
[13:48:46] <gds> если будет
let get t k = M.find k t.m
, то навряд ли будет старое значение. Гарантий нет, но, предполагаю, кешировать мутабельное поле никто в здравом уме не будет, и если написано t.m, значит будет доступ к полю.
[13:49:18] <f[x]> хорошо, а кэш процессора например
[13:49:30] <f[x]> read barrier там врял ли есть..?
[13:49:57] <f[x]> наверное лучше асм покурить и эмпирически проверить..
[13:50:26] <f[x]> хотя туплю, процессор то один, это ж камль
[13:51:35] <gds> тоже хотел вспомнить данную инвалидность, но не был уверен в том, что это гарантирует успех get'а.
[13:56:20] sevenov вышел(а) из комнаты
[14:50:17] xkrt_ вошёл(а) в комнату
[14:53:27] Typhon вышел(а) из комнаты
[14:54:35] Typhon вошёл(а) в комнату
[16:34:59] ygrek вышел(а) из комнаты
[16:48:54] <ermine> пчу в модуле List нет zip?
[16:49:30] <ermine> или List.merge - оно?
[16:49:39] <gds> потому что он может быть разным, понятие не универсальное.
[16:49:58] <gds> т.е. какая реакция должна быть на списки разной длины -- не ясно. либо по короткому смотрим, либо ошибку даём.
[16:51:09] <ermine> ну заюзаем List.merge
[16:52:36] <ermine> да, мне надо породить список равный длине списка скажем в первом аргументе
[16:53:30] <ermine> хм, оно хочет отсортированные списки
[16:54:40] <ermine> придется городить своего верблюда
[17:01:06] <gds> опять горбатого сделаешь, небось.
[17:03:17] <ermine> и пушистого
[19:55:07] f[x] вышел(а) из комнаты
[19:57:42] xkrt_ вышел(а) из комнаты
[20:34:26] Typhon вышел(а) из комнаты
[22:07:38] ygrek вошёл(а) в комнату
[22:58:42] Genix вошёл(а) в комнату
[23:00:01] Genix вышел(а) из комнаты: offline
[23:27:37] ygrek наблюдает аккаунт xleroy на ocamlcore.org o_O
[23:29:28] Michael Holub вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!