Home
Objective Caml
ocaml@conference.jabber.ru
Суббота, 7 января 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:00:47] <bobry> Товарищи, а как бы мне прочитать с помощью scanf вот такое "foo bar baz" -> ("foo", "bar baz")?
[00:00:56] <bobry> пока придумал только "%s %s@\n", но это как то уродливо
[00:07:02] <bobry> gds: не хочешь такой конфиг в барбару? http://paste.in.ua/3578/ с контекстами
[00:12:12] ermine вышел(а) из комнаты
[00:30:01] <bobry> gds: и еще предложение, добавить в am_Stream функцию tap, которая вызывается только ради сайд эффектов
[00:30:02] savikov вошёл(а) в комнату
[00:30:18] <bobry> вдохновлено http://documentcloud.github.com/underscore/#tap
[00:30:18] <savikov> посоны тут ярые поклюники есть линукса? =="
[00:30:25] <bobry> savikov: а шо?
[00:30:44] <savikov> если я хочу основную систему поставить на SD то какую фс лучше использовать?
[00:30:55] <savikov> примечание: не SSD а SD
[00:31:02] <bobry> а черт его знает
[00:31:14] <savikov> а /home/ будет на hdd для файловой помойки
[00:31:17] <savikov> =_=
[00:31:22] <bobry> gds: и еще, как насчет перетащить все такси из гуглодока в issues на GH?
[00:31:39] <bobry> savikov: ты для /boot только хочешь? или вообще /?
[00:31:53] <savikov> вообще для /
[00:32:11] <bobry> а нафига на SD?
[00:32:14] <bobry> в чем профит та?
[00:32:46] <bobry> на SSD для сравнения советуют нежурналируемые, тобишь ext2, ну или ext3-4 с noatime
[00:32:48] <savikov> ну типо sd не жалко если что =_=
[00:32:54] <bobry> лол
[00:32:59] <savikov> а hdd на 2.5 я могу и с собой таскать =_=
[00:33:08] <savikov> а там ток home
[00:33:18] <savikov> и в винде в принципе увидеть моно будет файлы
[00:49:05] savikov вышел(а) из комнаты: QIP 2010: Спокойное общение
[00:49:30] savikov вошёл(а) в комнату
[00:49:40] <bobry> savikov: QIP 2010, zomg ..
[00:49:47] <savikov> =_="""
[00:50:53] <savikov> ну обосрал обосрал >_> что ж браво браво...
[00:52:08] <savikov> насчёт sd, раньше когда ёжики ток появлялись (eee pc), то там было ток ssd и она была впаена
[00:52:18] <savikov> поэтому некоторые ставили ОС на сд
[00:52:24] <savikov> её не жалко было
[00:53:44] <bobry> https://github.com/camlunity/barbra/issues пасаны, все велкам -- каментим, добавляем таски!
[01:15:45] <bobry> в общем я перетащил все такси релевантные для 1.1 в issues; у кого есть возможность -- допишите свое видение бандлов и venvов, там пока просто заглушка
[02:05:43] <bobry> не нравится мне что-то наш код, очень уж много костылей ..
[02:07:25] <bobry> лол, так thelema еще и наш синтаксис взял целиком
[02:07:26] <bobry> вот так лол
[02:07:32] <bobry> см https://github.com/thelema/odb
[02:08:57] <bobry> кстати было бы круто чтобы Syscaps сами делали и форсили thunkи
[02:09:02] <bobry> gds: это тебе если что :)
[02:39:03] Typhon вышел(а) из комнаты
[02:56:05] Kakadu вышел(а) из комнаты
[03:58:55] komar вошёл(а) в комнату
[04:43:19] komar вышел(а) из комнаты: Replaced by new connection
[04:43:19] komar вошёл(а) в комнату
[06:37:57] savikov вышел(а) из комнаты
[07:01:36] komar вышел(а) из комнаты
[07:02:42] komar вошёл(а) в комнату
[07:34:55] komar вышел(а) из комнаты: Replaced by new connection
[07:34:55] komar вошёл(а) в комнату
[07:36:52] letrec вошёл(а) в комнату
[09:48:51] komar вышел(а) из комнаты: Replaced by new connection
[09:48:52] komar вошёл(а) в комнату
[10:08:07] komar вышел(а) из комнаты: Replaced by new connection
[10:08:07] komar вошёл(а) в комнату
[11:23:13] Kakadu вошёл(а) в комнату
[11:54:46] altinbek вошёл(а) в комнату
[11:56:22] altinbek вышел(а) из комнаты: QIP Infium: Спокойное общение
[12:09:06] ermine вошёл(а) в комнату
[12:10:32] <gds> bobry:
> http://paste.in.ua/3578/
такие модные конфиги -- гламур, неизвестно, оправданный ли.  как хотите, так и делайте, только учтите, что как-то нужны будут "источники пакетов".
кроме того, не очень хорошо, что ключевое слово получается разным для похожих целей, Patch{1,2}.
[12:11:58] <gds> bobry: про tap -- если хочешь, давай.  видимо, функция должна брать Stream.t 'a и ('a -> unit), правильно представляю исходный underscore's tap?
[12:13:24] <gds> bobry: про таски в issues -- если хочешь, давай.  В принципе, гуглодок уже выполнил свою задачу -- быстрое проектирование, прикидки идей, обсуждения-с-редактированием, написание первой документации.
[12:14:42] <gds> bobry: про Syscaps непонятно.
[12:27:00] <letrec> gds: не знаешь чего ему нехватает http://ocaml.paste.pro/5139622 ?
[12:27:18] <letrec> в камлоирке молчат
[12:29:07] <gds> почему -1?
[12:30:15] <letrec> хочу, чтобы файл увеличивался по мере записи в него
[12:30:23] <letrec> с 0 тоже не работает
[12:30:45] <letrec> из доки
To adjust automatically the dimensions of the big array to the actual size of the file, the major dimension (that is, the first dimension for an array with C layout, and the last dimension for an array with Fortran layout) can be given as -1.
[12:30:55] <gds> значит смотри исходники камла, данную функцию, погляди, где/почему оно Sys_error "Invalid argument" кидает.
[12:31:17] <gds> я использовал bigarrays чисто пипизодически.
[12:31:22] <letrec> походу больше ничего не остаётся
[12:31:38] <letrec> видно memory mapped files не очень часто используют
[12:32:11] <letrec> вот http://caml.inria.fr/mantis/view.php?id=5463 ещё по этой же теме
[12:32:42] <gds> может и оно, хз.
[12:38:29] <bobry> gds: про Syscaps -- хочется чтобы lazy ( ... ) и Lazy.force были спрятаны где то в недрах syscaps
[12:43:34] <gds> bobry: придётся оформлять тип данных в Syscaps, хранящих это ленивое, функцию типа "создать это самое, ленивое", и функцию наподобие "взять первый попавшийся вариант".  Ничего нереального, но старые функции лучше не прятать на всякий случай.  Есть желание -- делай или хотя бы в issues оформи.  У меня пока другие дела есть, парвел внезапно ожил.
[12:46:23] <bobry> gds: оке, еще насчет tap, мне это лучше на битбакет заслать или прямо в коде барбары?
[12:47:14] <gds> tap -- да проще наверное в барбру, я уже потом как-нибудь добавлю tap в amall/cadastr.
[12:47:23] <bobry> core выложили на битбакет! йома ..
[12:56:30] <Kakadu> bobry: боян
[12:56:36] <Kakadu> теперь его хер соберешь
[12:57:49] <bobry> Kakadu: почему?
[12:58:05] <bobry> интересно почему на битбакет, а не на гитхаб, как планировалось изначально
[12:58:10] <Kakadu> оазис
[12:58:22] <Kakadu> см. письмо в гуглогруппе
[13:31:52] <gds> как бы в окамловской программе без внешних утилит и без сишечьки вытащить хостнейм или ещё какой идентификатор хоста?  не обязательно совсем уникальный.  набор ип-адресов сетевых интерфейсов покатил бы.
[13:41:36] <gds> можно почитать окружение, $HOSTNAME, но всегда ли там ставят нормальное значение?
[14:11:22] ygrek вошёл(а) в комнату
[14:12:55] <ygrek> Unix.gethostname
[14:16:17] <gds> вах, шикарно!
[14:27:18] <bobry> Kakadu: ты про то шо у них oasis свой?
[14:28:13] <bobry> gds: а почему таки конфиг то гламурный? можно даже без индентации:
dep ...
<все дальше это поля для указанного dep>
dep ...
<это поля для нового dep>
[14:29:32] <ygrek> плюсую
[14:29:35] <ygrek> не нужно инденты
[14:30:22] <bobry> ygrek: ну с индентами читаемость повышается, я к тому что они опциональны
[14:30:32] <ygrek> угу
[14:30:32] <bobry> и не являются частью синтаксиса
[14:30:38] <ygrek> плюсую ещё раз
[14:31:06] <bobry> ygrek: а чего скажешь про источники пакетов? practicality beats purity?
[14:33:27] <ygrek> bobry: не читал
[14:36:08] ygrek вышел(а) из комнаты
[14:36:12] ygrek вошёл(а) в комнату
[14:41:19] <bobry> gds: https://github.com/camlunity/barbra/issues/9 -- и еще про конфиг
[14:42:36] <bobry> кстати кто предложил вот это? http://paste.in.ua/3436/
зачем явно указывать depends?
[14:48:43] <Kakadu> я предложил
[15:02:18] <gds> явно полезно тем, что не везде есть brb.conf, и на текущий момент уж точно нигде его нет.
[15:03:27] <bobry> ну тык есть же оазис
[15:03:35] <bobry> оттуда вполне можно вытащить depends
[15:05:30] <gds> а если проект не использует оазис?  впрочем, смотрите сами.
[15:05:59] <gds> про необязательность индентов -- ок.  про источники пакетов -- думайте.
[15:06:14] <bobry> gds: нафи такой пакет
[15:06:21] <bobry> ну или patch
[15:06:57] <gds> оазисофицировать пакеты для их использования барброй -- это как-то слишком.
[15:06:58] <Kakadu> вытаскивать зависимости из оазиса потащит за собой зависимость барбары от оазиса
[15:07:10] <bobry> true
[15:07:30] <bobry> ок, depends указывает на пакеты известные барбаре, так?
[15:07:35] <bobry> Kakadu: добавишь issue?
[15:07:37] <gds> или давайте продвигать патч к оазису, чтобы ocaml setup.ml -info давал что-то полезное.
[15:07:49] <Kakadu> bobry: неа
[15:07:54] <Kakadu> gds: +1
[15:08:11] <bobry> ну тогда у нас будут пакеты со старым оазисом и с новым ..
[15:08:16] <bobry> не решает проблему до конца
[15:09:11] <gds> по-любому надо складывать зависимости.  пока считать, что ocaml setup.ml -info при ошибке возвращает просто пустой список зависимостей.  а явное указание зависимостей -- полезно хотя бы на всякий случай.
[15:11:40] <gds> кстати, ещё применение источников пакетов -- кроме глобально-выкладываемых можно использовать "внутрикорпоративные" источники, чтобы иметь гарантии того, что все бинарники/либы собраны с одной версией библиотек.  ну, для бинарной совместимости полезно, например.
[15:17:58] <bobry> gds: поясни про внутрикорпоративные источники? пока что-то не понятно о чем ты
[15:18:20] <bobry> Kakadu: "неа" это на что ответ?
[15:18:45] <Kakadu> bobry: на issue
[15:19:19] <gds> везде при сборке иметь include http://some-development-server/common-brb.conf , в котором будут источники пакетов (библиотек и прочего), и в каждом конкретном проекте будут "dep pkg1 \n dep pkg2 \n ..." так, чтобы эти пакеты брались из тех источников.
[15:22:28] <gds> соответственно, "корпоративный апгрейд на новую версию либы" будет делаться изменением ровно одной строки общего конфига.
[15:22:36] <bobry> gds: в смысле чтобы синхронно обновлять все внутренние зависимости?
[15:22:41] <bobry> нуу, этом имеет смысл
[15:22:54] <bobry> gds: а что думаешь про %S?
[15:23:03] <bobry> dep "foobar", вместо dep foobar
[15:25:06] <gds> про %S -- там, где могут быть пробелы-кавычки, это имеет смысл.  в имени пакета -- не имеет смысла.  в урле -- тоже не обязательно, так как его всегда можно иметь в строке последним и читать до конца строки.  в других элементах, например, в зависимостях, если они будут, тоже мало смысла.  синтаксический шум, в целом.  можно разве что опциональным сделать это.
кстати, будете трогать конфиг -- меняйте его версию.  пусть будет 1.1 или 2, как хотите.
[15:26:21] <bobry> да, да, я описал это
[15:26:29] dzhon вошёл(а) в комнату
[15:26:54] <bobry> идея с  %S что все variable поля должны быть заковычены, незаковычены остаются только choice fields, например тип источника
[15:27:07] <bobry> про версию 1.1 я отписал в issue, ага
[15:29:13] <gds> не вижу смысла кавычить то, что не может содержать кривых символов.  имя пакета, например.  или будешь ставить пакет "\tsome\n\r\r\r\"kewl\"\n\t\tshit\"\'\x00"?
[15:36:24] <bobry> еще один аргумент, "" упростит нам переход на камло подобный конфиг :)
[15:38:22] <gds> камлоподобный конфиг == дырка в безопасности.  нафиг надо.
[15:39:03] <bobry> ну он именно "-подобный", выглядит как камло, но не более
[15:40:15] <gds> хз, нужно ли это.  мне -- точно нет.  мне нужно, чтобы не надо было его запускать камлом и чтобы оно работало, при этом содержало как можно меньше мусорных символов.  для урлов -- точно оправдано квотить, но и то, я бы сделал опциональным.
[15:40:20] <bobry> gds: надо отставлять код для конфига версии 1.0?
[15:40:55] <gds> надо.  если мешает, в отдельный модуль его присунь, пофиг.
[15:41:49] letrec вышел(а) из комнаты
[15:57:18] iNode вошёл(а) в комнату
[16:16:49] <bobry> gds: тянуть за собой v1 будет очень поцно, потому что в новой версии у пакетов будут дополнительные поля, не только имя, источник
[16:17:06] <bobry> имхо, на данном этаме мы можем просто забить на compatibility
[16:52:06] <gds> bobry: в общем случае эти поля будут необязательными (иначе покажи пример обязательного поля, которого нет в v1), следовательно, у них будут какие-то значения по умолчанию.
[16:53:23] <bobry> ну я к тому что нам придется адаптировать код V1, как ни крути
[16:53:26] <bobry> стоит ли оно того?
[16:53:44] <ygrek> ы??
[16:53:55] <ygrek> вы ещё и forward-compatibility хотите что-ли?? o_O
[16:54:46] komar вышел(а) из комнаты
[16:54:58] <gds> bobry: если не стоит -- вынеси код v1 в модуль, не включай обработку в исходнике конфига (закомментируй ветку "1" -> parse_v1_config, или как там), и этот модуль не будет браться в компиляцию, а там, если чо, я поправлю.
[16:55:05] <bobry> ygrek: enterprise!
[16:55:29] <bobry> в модуль уже вынес, сама идея мне кажется сомнительной
[16:55:40] <bobry> учитывая что в старых brb.conf надо будет поправить только version
[16:55:42] <gds> тогда закомментируй ветку и живи спокойно.
[16:55:44] <bobry> после апдейта до 2.0
[16:55:51] bobry не любит лишний код ..
[16:56:26] <gds> это не лишний, а запасной.
[16:57:25] <bobry> git checkout v1.0?
[16:57:28] <bobry> && make
[16:58:08] Kakadu вышел(а) из комнаты
[16:59:11] <gds> новые фичи тоже рекомендуешь через v1.0?
[16:59:37] <bobry> новые фичи это уже v2.0
[16:59:46] <bobry> хочешь фичи -- обновляй версию в конфиге
[17:08:32] <gds> короче, давайте без меня, так как сейчас мне лень спорить, есть другие дела, и буду "тормозить".
[17:13:16] <bobry> кроме тебя похоже никто не хочет / может
[17:14:22] ermine тоже застряла в своем парсинге и не знает что делать дальше
[17:14:33] <ermine> рождество вот такое вот рождество
[17:15:09] <ermine> с плюсовой температурой за бортом
[17:19:21] <gds> bobry: не согласен.  у тебя есть куча идей, кроме того, есть немного времени.  ну и вперёд.
у меня сейчас сраный парвел надо допиливать, ибо уже с мая 2011г оно висит недоделанным, а я всё обещаю, что "да, в будущих версиях можно будет разделить процессы на разные процессоры/хосты".  более того, это будет тоже определять, будет ли камло использоваться на моей работе.  то есть, барбра 1.0 меня устраивает пока, а вот парвел в одном процессе ос -- не устраивает.
[17:26:06] <bobry> gds: окей, я просто не хочу шобы получилось что я запилил, а оно должно было быть по другому
[17:27:54] <gds> если дело только в конфиге, это будет легко поправить, введя типа-старую версию конфига (или другую версию).  однако учитывай, что минимальный конфиг = "ничего для сборки не требуется".  следующий "минимальный" -- "для сборки требуются такие-то либы (опционально с конкретными способами достать либы по local-dir/hg/git и урлам)".
[18:10:49] <bobry> gds: не перебор будет для нового синтаксиса ocamlyacc заюзать?
[18:11:25] <gds> вроде очень даже нормально.  понятно, что на стримах только тупак можно/разумно парсить.
[18:13:05] <gds> против технических средств у меня только одно: хочется сделать так, чтобы барбра не тащила внешних зависимостей.  если что-то явно нужно, надо будет вдобавок научиться собирать с забандленными зависимостями.  без этого будет пичалька на хостах, где кроме ocaml+findlib не гарантируют ничего.
[18:14:32] <bobry> ну тык ocamlyacc вроде как из коробки идет, не?
[18:14:40] <bobry> к тому же можно сгенеренный им ml держать в репке
[18:14:41] <bobry> для удобства
[18:15:10] <gds> вот именно, из коробки.  поэтому против него не могу ничего иметь против, даже если бы был глупым и почему-то захотел бы этого.
[18:15:59] <bobry> okay :)
[19:17:29] Typhon вошёл(а) в комнату
[19:48:49] Typhon вышел(а) из комнаты
[19:49:30] Typhon вошёл(а) в комнату
[20:01:38] Typhon вошёл(а) в комнату
[20:12:27] Typhon вышел(а) из комнаты
[20:30:09] letrec вошёл(а) в комнату
[21:28:43] letrec вышел(а) из комнаты
[21:37:29] ftrvxmtrx вышел(а) из комнаты
[21:40:07] ftrvxmtrx вошёл(а) в комнату
[22:36:58] ftrvxmtrx вышел(а) из комнаты
[22:37:08] ftrvxmtrx вошёл(а) в комнату
[23:08:24] shaggie вошёл(а) в комнату
[23:09:42] shaggie вышел(а) из комнаты
[23:12:30] shaggie вошёл(а) в комнату
[23:14:13] shaggie вышел(а) из комнаты
[23:14:24] shaggie вошёл(а) в комнату
[23:30:46] gds вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!