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

GMT+3
[00:21:23] Typhon вошёл(а) в комнату
[00:22:16] Typhon вышел(а) из комнаты: offline
[00:33:05] gds вышел(а) из комнаты
[00:38:52] digital_curse вышел(а) из комнаты
[00:46:34] Typhon вошёл(а) в комнату
[01:40:35] Typhon вышел(а) из комнаты
[01:56:43] Typhon вошёл(а) в комнату
[04:36:22] daapp вошёл(а) в комнату
[05:56:58] Typhon вышел(а) из комнаты
[09:05:35] gds вошёл(а) в комнату
[09:47:47] valexey_ вошёл(а) в комнату
[10:09:21] <valexey_> хм. а в камле есть единицы измерения?
[10:09:25] <valexey_> как в f#
[11:16:12] daapp вышел(а) из комнаты
[11:23:37] daapp вошёл(а) в комнату
[11:25:50] ermine вошёл(а) в комнату
[11:37:19] <valexey_> хм. глупый вопрос -- а как поменять один элемент массива не пересоздавая массив?
[11:38:35] <gds> array.(index) <- new_value
[11:38:51] <valexey_> ага. спасибо.
[11:42:54] <valexey_> т.е. потроха массива в окамле по сути мутабельны?
[11:43:12] <gds> да.
[11:44:17] <valexey_> это приводит меня в смешанные чувства. с одной стороны это приводит меня в ужас (это видимо та моя часть что за Haskell), а с другой в восторг (это которая за С++ )
[11:46:26] <gds> это понятно.  Для получения иммутабельных массивов можно попробовать заменить модуль Array на другой, не содержащий операций изменения, и по идее операции изменения будут обламываться.
[11:48:49] Typhon вошёл(а) в комнату
[11:51:48] f[x] вошёл(а) в комнату
[11:58:44] serp256 вошёл(а) в комнату
[12:56:14] sceptic вошёл(а) в комнату
[13:37:43] iNode вышел(а) из комнаты
[14:17:24] <gds> пробую боторейки под мингвом, наткнулся на классику -- сравнивают мд5 файлов, причём боторейки открывают файл по умолчанию в двоичном режиме, а окамл -- в текстовом.  И что-то упорно не сходится там.  Страшное дело.
[14:19:44] <valexey_> брр.
[14:19:45] <valexey_> а зачем сравнивают?
[14:19:58] <Typhon> я кстати поставил девственно чистую win7 64bit, так что готов тестировать оверблдъ
[14:20:49] <valexey_> "оверблдъ" -- звучит почти матерно.
[14:21:52] <gds> сравнивают -- чтобы проверить, не поломали ли Digest в батарейках.
[14:22:00] <gds> оверблдъ -- Так!
[14:22:30] <gds> Typhon: а я сделал клёвую штуку с оверблд, упрощается процедура в разы.  Ща опишу.
[14:38:23] <gds> странная шняга всё-таки с батарейками.  В расчёте legacy_result поправил открытие файла на Pervasives.open_in_bin, в batteries_result стоит BatFile.open_in и отладочная печать показывает, что из BatFile в Pervasives.open_in_gen таки попадает флаг Open_binary.
Кто-нибудь из ковырявших батарейки может заметит, в чём дело?  Батарейки 1.1.0, фейлится testsuite/test_digest.ml:
OUnit: expected: "Т6Ж#zkп\1859\0169_ Сe#" but got: "\n\031#б7#Q#\026#йкФw\nЭ"
(непечатное заменил на "#")
[14:56:14] <Typhon> чо та не пойму: у меня в ФБСД и с Pervasives.open_in и с Pervasives.open_in_bin тест успешно проходит (batteries_result не меняю).
[15:01:24] <gds> на юниксах текстовый режим открытия файлов эквивалентен двоичному, и, если проблема в разных режимах, то на юниксах проблема замаскирована.
[15:05:23] daapp вышел(а) из комнаты
[15:19:34] valexey_ вышел(а) из комнаты
[15:39:53] <gds> насчёт батареек -- отписал им в http://github.com/thelema/batteries-included/issues , поглядим на реакцию.
[15:40:03] <gds> Typhon: насчёт оверблд -- тут канал загружать не могу (в том числе перекидкой архива на какой-нибудь другой хостинг), поэтому вечером из дома выложу зип-архив, содержащий настроенную среду разработки под mingw, но без скомпилированного лицензионно-грязного окамла (предоставляю это пользователю).  Оказывается, в реестр писать ничего не надо, и так всё работает.
[15:44:24] <gds> а пока зацените README (который является как бы "интерфейсом пользователя" для этой хрени): http://paste.in.ua/475/
[15:46:05] <Typhon> пункт 0 клевый :)
[15:46:32] <gds> первый и последний выполняют клованскую роль :)
[15:47:31] <Typhon> :) а помнишь была проблема с отсутсвтием в msys програм, использующихся в оверблд? сейчас это как-нибудь решаться будет?
[15:49:03] <gds> ага, как раз вчера решил кое-что.  половину соурсфорджа скачал, так и не нашёл nl.exe.  плюнул, написал на баше аналог: http://overbld.hg.sourceforge.net/hgweb/overbld/overbld/rev/dba45d61628a
[15:49:14] <f[x]> btw, debian то распостраняет бинарный камль со своими патчами - значит можно
[15:49:36] <gds> Typhon: если ещё будет подобное (нет проги какой-то) -- сообщай, подумаем.
[15:49:56] <gds> f[x]: оппаньки, клёво, а где бы посмотреть их патчи?
[15:53:21] <Typhon> так, а окамль мне ставить нужно будет перед установкой оверблд, или нет?
[15:54:15] <gds> не нужно, он будет компиляться.
[15:54:31] <gds> но если стоит, то он не помешает.
[15:54:32] ermine вышел(а) из комнаты
[15:55:06] <f[x]> http://git.debian.org/?p=pkg-ocaml-maint/packages/ocaml.git;a=tree;f=debian/patches;hb=HEAD
[15:57:35] <f[x]> "if you speak russian" примерно как - "don't"
[15:59:02] <f[x]> compile in fixed work directory -> compile in specified directory (used for intermediate files)
[15:59:12] <gds> f[x]: ага, поглядел.  Но патчи там в основном "игрушечные", как и большинство моих (кроме сокетов).  То есть, может и можно собирать окамл в фиксированную директорию и раздавать.  Попробовать по крайней мере можно, а там, если намекнут, можно и убрать будет потом.
[15:59:49] <gds> про don't ниасилил -- имеешь ввиду, что тот, кто будет читать ридми, не будет знать русского?  туплю.
[15:59:55] <f[x]> compile in automatically created temporary directory + (will be automatically deleted after successful compilation)
[16:00:26] <f[x]> такой припиской ты сразу отсекаешь потенциальных нерусскоязычных пользователей
[16:00:27] <gds> за исправления благодарю, ибо стыд, этотсамый.
[16:00:44] <f[x]> ой, получается два automatically - нехорошо
[16:01:57] <f[x]> remove fixed work directory -> remove compilation|intermediate directory (not needed anymore)
[16:02:56] <gds> а как же сказать, чтобы и чятик попеарить, и не отсекать?
[16:03:17] <f[x]> и нужен какой-то интро - типа bld will use working directory for compilation and install compiled binaries to another directory - чтобы пользователь знал какие каталоги и для чего участвуют
[16:03:34] <f[x]> просто join xmpp:
[16:06:14] ermine вошёл(а) в комнату
[16:06:32] <f[x]> я вот тоже думаю ocaml-mysql следующий релизнуть сразу и бинарники (для msvc)
[16:08:22] <gds> о да, это полезно (особенно для msvc).
[16:09:55] <f[x]> трабла в версиях - не буду же я по все варианты пар ocaml-msvc делать билд :)
[16:10:15] <f[x]> правда сишная либа "теоретически" от версии msvc зависеть не должна
[16:10:43] <f[x]> хотяе нет, будет зависеть, там версия рантайма
[16:10:47] <f[x]> короче мрак
[16:12:32] <f[x]> нужно compile farm под винду (даёшь oss бинарные пакеты на windows! с менеджером пакетов итд итп)
[16:13:12] <f[x]> правда есть уже нечто - cygwin
[16:15:08] <gds> compile farm можно и сделать.
[16:15:49] <f[x]> проблема как всегда конечно не в железках, а в людях/времени
[16:17:10] <f[x]> кто-то должен всем этим заниматься, тестировать, патчить, убивать писателей скриптов на баше, итд итп
[16:18:36] <gds> с последним я не справлюсь, суецыт будет :]
[16:19:49] <gds> весьма оперативно: http://github.com/thelema/batteries-included/issues#issue/52
[16:27:34] <f[x]> %)
[16:36:24] <gds> поправил, но что-то мог не заметить: http://paste.in.ua/477/
[16:39:34] <Typhon> gds: не думал, в *.msi какой-нибудь это запихнуть получится?
[16:40:47] <gds> если известно будет, как прописать путь в env.bat, и если заморочиться на эту тему в целом, вполне реально.  Только вот не знаю, имхо зип-архив как-то ближе к народу, да и открывается любой вендой.
[16:40:51] <gds> (почти любой)
[16:41:47] <Typhon> gds: по идее, путь можно передать в енв параметром, его можно будет считать текущей рабочей папкой (комманда CD), из которой будет запускать инсталлер
[16:42:20] <Typhon> в самораспаковывающиеся зипархивы тож можно, емнип, действия прописывать какие-то
[16:42:22] <gds> ещё лажа в том, что, если верить ребятам, делавшим msys/mingw, в пути до msys'а обязано не быть пробелов, поэтому "c:\program files\overbld" в качестве дефолта не катит.
[16:44:29] <gds> о да, "cd" даёт диру, но, опять же, требуются какие-то действия.  Пока поглядим, приживётся ли такая версия -- уж очень не хочется с msi возиться.
Про sfx-архив не думал, интересно.  Мой archiver of choice -- 7zip, и не знаю, умеет ли он запускать что-то после распаковки.  Буду читать.
[16:45:19] <gds> "archiver of choice" -- в смысле, винрары всякие не хочу.
[16:46:29] <Typhon> с msi или иным каким инсталлером будет удобно указать любую папку -- вечером поглазею тогда
[16:46:31] <gds> хотя, если кто законтрибутит изготовление msi -- приму с радостью.
[16:47:18] <gds> ага, я вечером (минимум -- через 1ч15м) выложу зип-архив, дам тут ссылку, а там поглядим, что из этого можно сделать.
[16:51:09] <gds> круто, 7zip умеет.  из примеров:
config.txt:
;!@Install@!UTF-8!
RunProgram="StartX.exe /WAIT \"msiexec /i  Adobe7.msi /qn\""
;!@InstallEnd@!
> COPY /b 7zs.sfx + config.txt + adobe7.7z adobe7.exe
поиграюсь, но не сегодня.
[16:51:09] serp256 вышел(а) из комнаты
[16:53:57] <gds> у меня там проблемка нарисовалась -- дома нетбук, а там win xp home, всё не как у людей.  (кстати, лицензионная, что вызывает у меня смешанные чувства.)  И там были проблемы с линковкой к tcl/tk ещё раньше (в конце прошлого года писал тут), и там сейчас проблемы с запуском hg.exe (там рядом лежат hg.exe + python26.dll, и венда пишет, что не может найти/загрузить python26.dll (не помню точно)).  вот над этим подумаю сегодня вечером.
[16:54:01] serp256 вошёл(а) в комнату
[16:56:09] <gds> (кстати, может кто-нибудь посоветует.  что делал: 1. прописывал диру с dll в path, пофиг, 2. через cacls устанавливал права "всем всё", тоже пофиг.  что планирую сделать: 3. взять какой-нибудь трейсер (filemon для начала) и посмотреть, что где он обламывается.  Если есть другие идеи -- буду рад услышать.)
[17:05:36] <Typhon> gds: в Path системный или пользовательский прописывал?
[17:06:18] <gds> > set PATH=дира;%PATH%
> .\hg.exe
[17:07:34] <gds> но намёк понял, попробую в тот и в другой.
странно же то, что на одной из машин (тоже вчера "седьмёрку"(tm) нашёл для тестов) просто скопированный hg работает нормально.  может ему чего-то не хватает из системных библиотек?..
[17:11:47] <f[x]> gds: посмотри dependency walker (depends.exe в составе msvc)
[17:11:51] <Typhon> mfc71.dll меркуриал может требовать
[17:12:38] <Typhon> (или питон)
[17:13:20] <f[x]> наверное у python26.dll есть ещё зависимости, которые не находятся, потому-что загрузчик всегда ищет в текщуем рабочем каталоге сначала
[17:15:17] <f[x]> кстати я бы для installed software выделил бы отдельный каталог (опционально с возможностью указать вне дерева)
[17:16:48] <gds> да, версия с зависимостями вполне логична.  depends.exe у меня нет вот, попробую filemon'ом посмотреть.
mfc71.dll возьму домой, погляжу.  Но "по F3" ни в .exe, ни в .dll не ищется импортов из mfc*.dll.
[17:17:36] <gds> про "installed software" -- наверное ты прав.  Как же всё это оформить, чтобы красиво было -- сходу не знаю.
[17:17:52] <f[x]> http://www.dependencywalker.com/
[17:19:59] <gds> благодарю, беру на вооружение.
[17:26:11] valexey вошёл(а) в комнату
[17:30:04] gds вышел(а) из комнаты
[17:31:43] <f[x]> ermine: а sulci умеет плагином rss'ы в конфу кидать?
[17:31:57] <f[x]> прикрутим коммиты в конфу объявлять
[17:35:02] <sceptic> лишний трафик
[17:35:42] <ermine> нет
[17:35:49] <valexey> лишний спам :-)
[17:35:56] <ermine> но rss - это просто
[17:36:56] <ermine> в rss только одно неприятное - надо хранить что-то, с помощью которого можно отследить, что новости мы уже брали и не надо их повторять
[17:37:25] ermine забиндила около 40 функций bdb и пыхтит дальше
[17:39:51] <f[x]> ermine: ну тогда я сам напишу, не проблема, какой кстати статус у новой версии?
[17:41:25] <ermine> f[x]: ржавый
[17:41:47] f[x] неодобряет велосипедостроение, тем более сишных биндингов
[17:42:13] <f[x]> т.е. работает, но не релизилась?
[17:42:22] <f[x]> или бажная?
[17:42:43] <ermine> т.е. он работает как и старый сульци, но лень довести сборку до ума
[17:45:01] valexey вышел(а) из комнаты
[17:52:14] valexey_ вошёл(а) в комнату
[17:58:50] <valexey_> а как создать двумерный массив? Array.create создает одномерный вроде только.
[18:03:48] <ermine> matrix
[18:04:46] <valexey_> matrix это функция или модуль?
[18:05:05] <ermine> Array.matrix
[18:05:38] <ermine> но собственно можно и через Array.make, Array.init и так далее
[18:16:36] valexey_ вышел(а) из комнаты
[18:22:20] valexey_ вошёл(а) в комнату
[18:22:53] <valexey_> ня. что-то в F# ничего этого толи нет, толи сделано иначе, и называется иначе.
[18:22:57] sceptic вышел(а) из комнаты
[18:23:47] <valexey_> причем многомерные массивы там точно есть. прям даже написано, что не больше 4-х измерений :-)
[18:24:09] <Typhon> а чтобы мне использовать для общения между lw-тредами (из lwt), по типу Control.Concurrent.Chan из х-я? пока не нашел ничего подходящего в Lwt_*, смотрю на очередь из http://ambassadortothecomputers.blogspot.com/2009/05/lwt-and-concurrent-ml.html
[18:24:23] <Typhon> valexey_: http://en.wikibooks.org/wiki/F_Sharp_Programming/Arrays
[18:24:40] <Typhon> Array2D.zeroCreate<int> 2 3;; например
[18:25:58] <valexey_> ага. у них по отдельному модулю для 1,2,3,4 измерений.
[18:28:35] <valexey_> о! а у этих буржуёв в топлевеле даже по табу автокомплит выскакивает.
[18:28:46] <valexey_> таки топлевел у фшарпа поудобней будет.
[18:30:53] <Typhon> enhtop можешь попробовать для камла (сам не тыкал -- оно оригинальный, кажется, патчит)
[18:31:13] <valexey_> типа расширенный и улучшенны?
[18:31:17] <valexey_> надо будет пощупать.
[18:31:30] <Typhon> valexey_: http://www.pps.jussieu.fr/~li/software/index.html#enhtop
[18:31:41] <valexey_> ок. пощупаю.
[18:31:45] iNode вошёл(а) в комнату
[18:34:13] valexey_ вышел(а) из комнаты
[18:36:31] <f[x]> Typhon: а что надо для общения между lwt? Они же кооперативные, просто пиши в переменную/очередь сообщение и всё
[18:36:45] <f[x]> или не так?
[18:37:48] <f[x]> а, ещё нотификация чтобы разбулить принимающую сторону, какие-нибудь event'ы там есть наверняка
[18:38:07] <Typhon> хм, типа у меня чтение/запись в очередь атомарными итак будут, и париться об этом не надо?
[18:38:35] <f[x]> естественно
[18:38:53] <f[x]> но там в посте как раз такая general-purpose очередь и есть
[18:42:27] gds вошёл(а) в комнату
[18:45:00] <Typhon> хм, но он там внутри take мьютексом защищает
[18:45:17] <f[x]> мутексом защищает только читателя
[18:45:33] <f[x]> а если у тебя читатель один только - то и этот мутекс не нужен
[18:47:28] <f[x]> хотя он нужен чтобы делать condition.wait, но это опять-таки потому что general-purpose, можно обойтись и без condition вообще (для одного читателя)
[18:52:09] <f[x]> чтобы put : Q.t -> unit Lwt.t сам вызывал читателя если читатель спит (один булевый флажок)
[18:52:44] <f[x]> по-моему всё верно - выше всё теория, не проверял :)
[18:54:15] <Typhon> надо б получше посмотреть в самом Lwt, а то они любят туда нововведения добавлять и не документировать, а меня задалбало сначала что-то писать, а потом тут же "блин, да это ж уже есть" :)
[18:55:36] <gds> Typhon: http://gdsfh.dyndns.org/gds/ov-src-201003181622.zip
но исход только 25кб/с...  Может стоит куда-нибудь залить?  129Mb правда вот.  И хз куда.
[18:56:00] <f[x]> в торренты?
[18:58:41] <gds> какой трекер брать?
[18:59:07] <f[x]> openbittorrent.com
[18:59:32] <gds> понял, пофтыкаю, сообщу о результатах.
[19:36:53] serp256 вышел(а) из комнаты
[19:45:08] <f[x]> иногда прога висит при выходе (exit в обработчике сигнала), вдруг кто сталкивался http://ocaml.pastebin.com/sKtggkVX
[20:01:06] gds вышел(а) из комнаты: Replaced by new connection
[20:01:11] gds вошёл(а) в комнату
[20:47:46] Typhon вышел(а) из комнаты
[21:33:56] digital_curse вошёл(а) в комнату
[21:39:44] ygrek вошёл(а) в комнату
[21:45:55] Typhon вошёл(а) в комнату
[22:37:52] Typhon вышел(а) из комнаты
[22:44:16] Typhon вошёл(а) в комнату
[22:46:41] <Typhon> gds, торрент раздачу не организовывал еще? еле идет оверблд :(
[23:03:33] sceptic вошёл(а) в комнату
[23:04:20] Typhon вышел(а) из комнаты
[23:06:16] <ygrek> "нельзя распространять модифицированный окамл." - а откуда это взялось? если я правильно помню то нельзя распостранять исходники камля с приложенными патчами, а распостранять апстрим+патчи - можно. и делать из него бинарную сборку (при условии что доступны исходники) - тоже можно
[23:06:31] <ygrek> > Temporary Error (Resource Constraint): Traffic rate limit is exceeded
ыыы???
[23:12:36] Typhon вошёл(а) в комнату
[23:14:18] <Typhon> ежели кто качал, поделитесь оверблдом свежим :)
[23:14:58] <ygrek> ждём торрентов (посидирую из альтруизма)
[23:16:20] <sceptic> даёшь децентрализованный трэкинг и магниты!
[23:27:29] <ermine> если я в камле биндчусь к сишней функции, которая в аргументах хочет FILE* file, то что стоит передавать туда из камля?
[23:27:54] <ermine> ygrek: ?
[23:30:08] <ygrek> Unix.file_descr
[23:30:39] <ermine> а как из него создавать FILE* ?
[23:30:44] <ygrek> хотя стоп - FILE это же какая-то буферизированная прослойка из сишного рантайма?
[23:30:59] <ygrek> а что это за функция?
[23:31:02] <ygrek> не знаю
[23:31:08] <ygrek> узнаешь - напиши в вики
[23:31:54] <ermine> ыы
[23:33:01] <ermine> у sks нет этой функции, не удалось слизать чужой солюшен
[23:33:23] <ermine> а функция полезная - db->verify(), проверяет, не накрылась ли база
[23:55:43] <gds> пока не организовал раздачу, руки не дошли.  сейчас хз, осилю ли.  Если получится быстро, то организую.
про модифицированный окамл -- перечитаю лицензию, сообщу.  Но помню там подобное.
Traffic rate limit -- это ещё куда, от моего вебсервера?  Если да, то интересны детали.
[23:58:37] <ygrek> не, это jabber сервер
[23:59:41] <Typhon> а на вебсервере ща так: 29.2 kB/s – 79.2 MB из 129.4 MB :)
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!