Home
Objective Caml
ocaml@conference.jabber.ru
Среда, 3 октября 2012< ^ >
f[x] установил(а) тему: OCaml / ОКамл / Камль -- http://caml.inria.fr | Камло - http://camlunity.ru/ | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв и тормозит, move on | stdlib only? - ССЗБ | Fight FUD with fire | Мойте руки перед чатом | 4.00.0 уже таки да, см. kamlo_wiki/OCamlChanges
Конфигурация комнаты
Участники комнаты

GMT+4
[00:53:09] dzhon вышел(а) из комнаты
[01:23:27] Typhon вошёл(а) в комнату
[01:24:10] Zbroyar вошёл(а) в комнату
[01:44:09] Kakadu вышел(а) из комнаты
[01:48:24] <Zbroyar> Привет, вопрос:
[01:48:45] <Zbroyar> у меня часто в свертках (List.fold_left, например)
[01:49:31] <Zbroyar> встречаются конструкции вида val = try Map.find ket map with Not_found -> default_val
[01:50:00] <Zbroyar> дальше какая-то операция с val и Map.add key val map
[01:50:28] <Zbroyar> Беспокоит эффективность конструкции try … with Not_found
[01:50:46] <Zbroyar> Может, есть более оптимальный способ? Кто подскажет?
[03:53:16] ketrec вошёл(а) в комнату
[03:53:26] ketrec вышел(а) из комнаты
[03:53:39] <gds> Zbroyar: исключения очень быстрые, не нужно беспокоиться.  Разве что если они наворачиваются друг на друга, тогда хвостовая рекурсия не будет работать, ну и можно оставить в памяти лишнее.
Вот когда будет вопрос оптимизации хвостовой рекурсии или задолбает _всегда_ ловить исключения от Map.find (которые можно легко пропустить!), тогда да, будет смысл сделать Map.find_opt какую-нибудь, с возвращаемым типом 'v option.
[03:53:41] ketrec вошёл(а) в комнату
[04:07:24] <Zbroyar> Спасибо, отлично.
[04:07:53] <Zbroyar> Насчет пропустить я не беспокоюсь, поскольку у меня эта конструкция "стабильная".
[04:08:13] <Zbroyar> Разве-что макроса в Emacs для ее ввода я еще не прикрутил.
[04:55:37] ketrec вышел(а) из комнаты
[07:04:14] addilbek вошёл(а) в комнату
[07:04:26] <addilbek> ублюдина свинячья
[07:06:45] <addilbek> пиздуй сука в строймаркет там раков привезли за три рубля депеша пришла аборигенам скидки делать бугага
[07:10:48] <addilbek> нам нужны амфитеатры кинотеатры драмтеатры театры имени красной армии и прочие мосфильмы и ленфильмы ,много много клоунов актеришек и виликих режиссеров имени станиславского и немировича данченко
[07:12:17] <addilbek> нам нужны волоокие красавицы чтобы возбуждать крайнюю плоть зрителя и питать остальные места воображения и вдохновения творческого
[07:14:50] <addilbek> и вообще,какого хуя вам от меня надо ублюдки?
[07:14:57] addilbek вышел(а) из комнаты: QIP 2012: Спокойное общение
[07:47:00] komar вышел(а) из комнаты
[07:54:36] komar вошёл(а) в комнату
[09:10:44] komar вышел(а) из комнаты: Logged out
[09:30:57] dzhon вошёл(а) в комнату
[10:28:29] ftrvxmtrx вышел(а) из комнаты
[11:03:14] mrm вошёл(а) в комнату
[11:11:22] Sun][ вошёл(а) в комнату
[11:13:46] ftrvxmtrx вошёл(а) в комнату
[11:25:48] ermine вошёл(а) в комнату
[11:30:57] dzhon вышел(а) из комнаты: Replaced by new connection
[11:30:58] dzhon вошёл(а) в комнату
[11:52:50] Kakadu вошёл(а) в комнату
[11:59:15] Kakadu вошёл(а) в комнату
[13:00:27] dzhon вышел(а) из комнаты
[13:01:12] tilarids вышел(а) из комнаты: Machine going to sleep
[13:26:02] tilarids вошёл(а) в комнату
[13:28:03] komar вошёл(а) в комнату
[13:49:36] komar вышел(а) из комнаты
[14:54:51] Zbroyar вышел(а) из комнаты
[15:38:42] ketrec вошёл(а) в комнату
[15:38:48] ketrec вышел(а) из комнаты
[15:39:03] ketrec вошёл(а) в комнату
[16:11:06] <Kakadu> nicollet новый веб-фреймворк аннонсировал
[16:12:52] akovbovich вышел(а) из комнаты
[16:13:33] <Kakadu> утверждает что он практичный
[16:13:33] akovbovich вышел(а) из комнаты
[16:13:33] akovbovich вышел(а) из комнаты
[16:13:53] komar вошёл(а) в комнату
[16:20:10] komar вышел(а) из комнаты: Replaced by new connection
[16:20:11] komar вошёл(а) в комнату
[16:43:12] Sun][ вышел(а) из комнаты
[16:47:41] <mrm> Всё ещё вожусь с oasis/ocamlbuild под виндой. Новая проблема: ocamlbuild, оказывается, вообще никак не работает :-)
[16:48:21] <mrm> mrm@proxima /cygdrive/c/projects/pcre-ocaml
$ ocamlbuild setup.byte
The system cannot find the path specified.
Exception End_of_file.
[16:48:38] <mrm> А вот вывод strace: http://slexy.org/view/s21gFkz1g6
[16:49:04] <mrm> У меня уже голова квадратная от всего этого кошмара [8-(]
[16:49:22] <mrm> У кого-нибудь есть идеи?
[16:52:59] <mrm> Поправка: не работает ocamlbuild только в этом каталоге (где, в частности, лежит оазизовский myocamlbuild)
[16:53:36] <Kakadu> ты из _build запускаешь?
[16:54:16] <Kakadu> кажется оттуда не гоже
[16:54:53] <f[x]> неадо стрейснуть бы сам myocamlbuild.exe
[16:55:41] <mrm> И как это по-простому сделать?
[16:56:34] <mrm> Kakadu: не из _build, т.к. оттуда запускать ocamlbuild вправду негоже
[16:57:30] <mrm> Сейчас я не на том же компе работаю, что вчера, но все проблемы легко воспроизвелись
[16:57:49] <mrm> Вчера был Win7, сейчас WinXP, так что один фактор из рассмотрения исключается
[16:59:04] <Kakadu> я вот забыл как получается myocamlbuild.exe
[16:59:25] <Kakadu> это камлобилдный файл, который собирает в соответствии с тем что написано в _tags?
[17:00:29] <f[x]> mrm: просто запусти его
[17:00:34] <f[x]> так же как ocamlbuild это делает
[17:01:05] <f[x]> bash -c ''''C:\projects\pcre-ocaml\_build/myocamlbuild.exe' -no-plugin setup.byte'
[17:08:26] <mrm> Блин. Туплю с тем, как в эту команду strace впихнуть
[17:08:30] <mrm> $ bash -c 'strace 'c:/projects/pcre-ocaml/_build/myocamlbuild.exe' -no-plugin setup.byte'
The system cannot find the path specified.
Exception End_of_file.
[17:08:51] <mrm> Это воспроизведение проблемы. А где же вывод strace? :-(
[17:09:22] <f[x]> а без strace то же самое?
[17:09:28] <mrm> Да, абсолютно
[17:09:38] <f[x]> т.е. дело в кавычках??
[17:10:04] <mrm> $ bash -c 'strace c:/projects/pcre-ocaml/_build/myocamlbuild.exe -no-plugin setup.byte'
The system cannot find the path specified.
Exception End_of_file.
[17:10:16] <mrm> Возможно. Экспериментирую
[17:10:34] <f[x]> а не, исключение то камлевое
[17:11:08] <mrm> mrm@proxima /cygdrive/c/projects/pcre-ocaml
$ bash -c "strace c:/projects/pcre-ocaml/_build/myocamlbuild.exe -no-plugin setup.byte"
The system cannot find the path specified.
Exception End_of_file.
[17:11:17] <mrm> Странно
[17:12:13] <mrm> О, я стрейснул сам strace. Получилось
[17:12:46] <mrm> http://slexy.org/view/s21XFUt3pp
[17:12:53] <mrm> Теперь я окончательно запутался
[17:13:33] <mrm> ! -- myocamlbuild.ml -- это уже не сигвиновскый бинарник, а нативный виндовый!
[17:13:42] <mrm> *myocamlbuild.exe
[17:14:04] <mrm> И strace нечего перехватывать
[17:15:31] <mrm> Пыщь, пышь. Бдыщь. Бдыщь. Бдыщь. Чу-чу... Пф-пф-пф-пф-пф
[17:15:33] <mrm> :-)
[17:15:34] <Kakadu> А ты можешь пофиксить код нагенеренного myocamlbuild.ml?
[17:15:49] <mrm> Вставить туда кучу принтов? Могу.
[17:16:01] <Kakadu> Printexc.record_backtrace True;
и try .. with
[17:16:09] <Kakadu> f[x]: или не сработает?
[17:17:39] komar вышел(а) из комнаты: Logged out
[17:18:57] <mrm> Блин. Ну почему этот myocamlbuild собирается без отладочной информации? Что за экономия на семечках?
[17:19:28] komar вошёл(а) в комнату
[17:21:26] <mrm> (Program not linked with -g, cannot print stack backtrace)
[17:22:24] Sun][ вошёл(а) в комнату
[17:23:51] <mrm> Kakadu: что-то не работает. OCAMLRUNPARAM=b тоже не помогает
[17:24:23] <Kakadu> исключение не ловится?
[17:24:33] <Kakadu> или стек не печатает?
[17:24:42] <Kakadu> а может его в натив коде нет.
[17:24:43] Sun][ вышел(а) из комнаты
[17:24:45] <Kakadu> тьфу
[17:24:54] <mrm> Печатает "(Program not linked with -g, cannot print stack backtrace)"
[17:25:02] Sun][ вошёл(а) в комнату
[17:25:03] <mrm> Ибо экономия на семечках
[17:25:11] <mrm> Теперь придётся сборку myocamlbuild исправлять
[17:25:23] <Kakadu> может её можно руками выполнить?
[17:25:33] Sun][ вышел(а) из комнаты
[17:25:36] <mrm> ocaml myocamlbuild.ml?
[17:25:44] <mrm> А, понял
[17:25:46] <mrm> Сейчас
[17:25:56] <Kakadu> не совсем так
[17:26:11] <Kakadu> но он печатает комаду как собирать
[17:26:13] <Kakadu> при make
[17:26:25] <mrm> Ага. Сейчас буду искать
[17:27:26] <mrm> Что-то нигде этой команды не видно
[17:28:18] <Kakadu> http://paste.in.ua/4828/
[17:28:22] <mrm> В обилдовском логе ничего
[17:29:31] <mrm> mrm@proxima /cygdrive/c/projects/pcre-ocaml
$ ocaml setup.ml -build
The system cannot find the path specified.
E: Failure("Command '/cygdrive/c/OCaml/bin/ocamlbuild.exe -classic-display -no-log -no-links -install-lib-dir /cygdrive/c/OCaml/lib/ocamlbuild -byte-plugin lib/libpcre_stubs.a lib/dllpcre_stubs.dll lib/pcre.cma lib/pcre.cmxa lib/pcre.a lib/pcre.cmxs examples/cloc/cloc.native examples/count_hash/count_hash.native examples/pcregrep/pcregrep.native examples/subst/subst.native -tag debug' terminated with error code 1")
[17:29:41] <mrm> С этой проблемы всё и началось
[17:29:58] <mrm> Ужас. Ужас. Ужас :-(
[17:32:41] <Kakadu> окай, грязный хак который хз поможет ли
[17:33:36] <Kakadu> найди в setup.ml `let prog prg`
[17:33:44] <mrm> Нашёл
[17:33:48] <Kakadu> мне кажется он так ищет ocamlbuild
[17:34:25] <mrm> Да, через "OASISFileUtil.which"
[17:34:48] <mrm> Но пути к обилду я вручную пофиксил в setup.data
[17:35:18] <mrm> Так что не в этом проблема. Сам обилд находится, а вот уже из него Not_found вылетает
[17:39:54] <mrm> Я начал склоняться к тому, что проще было бы gds-овский overbld допилить, чем продолжать трахаться с путями в сигвине. С этой проблемой разберусь -- ещё где-нибудь бяка обязательно вылезет (например, сейчас ещё menhir не работает, mikmatch не собирается)
[17:40:30] Sun][ вошёл(а) в комнату
[17:40:59] <Kakadu> тебе не лень залезть в ирку?
[17:41:06] <mrm> Я в ирке
[17:41:23] <mrm> Вру, отвалился
[17:41:30] <mrm> Зашёл
[17:42:09] <mrm> про свои беды я ещё вчера там начал ныть, но никто не ответил
[17:50:49] <Kakadu> расскажи ещё раз. может проснутся
[17:51:04] <Kakadu> Газагнэ он шарит
[17:53:53] <Kakadu> mrm ^^
[17:54:19] Sun][ вышел(а) из комнаты
[18:00:30] <mrm> Газагнэ -- это грузинское имя?
[18:00:49] <Kakadu> фамилия
[18:00:56] <mrm> :-)
[18:00:57] ftrvxmtrx вышел(а) из комнаты
[18:00:59] <Kakadu> франция же
[18:01:05] <mrm> Gazagnaire
[18:01:10] <mrm> Забавно
[18:01:27] <mrm> О. Это чувак из OCamlPro
[18:01:47] <Kakadu> <thomasga> Kakadu: Not_found in myocamlbuild.ml is almost certainly a missing ocamlfind package (if you are using oasis)
[18:01:59] ftrvxmtrx вошёл(а) в комнату
[18:02:13] <mrm> Который OPAM пилит. Кстати, надо мне попробовать заюзать pcre из OPAM
[18:02:53] UncleVasya вошёл(а) в комнату
[18:08:54] UncleVasya вышел(а) из комнаты
[18:11:03] <Kakadu> печалька
[18:11:12] <Kakadu> ты всегда можешь атаковать камльлист
[18:22:50] dzhon вошёл(а) в комнату
[18:33:34] Kakadu вышел(а) из комнаты
[18:33:50] Kakadu вышел(а) из комнаты
[19:10:00] dzhon вышел(а) из комнаты
[19:14:34] Kakadu вошёл(а) в комнату
[20:08:51] <mrm> Kakadu: меня нельзя заманивать в ирк. У меня зависимость :-(
[20:09:09] <Kakadu> пиши тогда в камлолист
[20:10:01] <mrm> Я на первом-втором курсах по вечерам только и делал, что часами в ирке сидел :-) Пришлось мотивационным автотренином заниматься, чтобы отвыкнуть :-)
[20:10:18] <mrm> *автотренингом
[20:15:51] ketrec вышел(а) из комнаты
[20:37:25] ftrvxmtrx вышел(а) из комнаты
[20:41:30] UncleVasya вошёл(а) в комнату
[21:15:22] Zbroyar вошёл(а) в комнату
[21:47:16] Zbroyar вышел(а) из комнаты: Replaced by new connection
[21:47:17] Zbroyar вошёл(а) в комнату
[21:51:37] ermine вышел(а) из комнаты
[21:51:51] ygrek вошёл(а) в комнату
[22:18:51] Sun][ вошёл(а) в комнату
[22:27:42] Zbroyar вышел(а) из комнаты: Replaced by new connection
[22:27:43] Zbroyar вошёл(а) в комнату
[22:32:04] ygrek вышел(а) из комнаты
[22:37:37] <gds> mrm: а объясни сначала, нахрена cygwin?
[22:38:06] <mrm> gds: Ну cygwin/mingw64-w32 -- это, как никак
[22:38:19] <mrm> , официальная платформа теперь
[22:38:53] <mrm> Ожидалось, что там с полпинка всё заработает
[22:39:19] <mrm> А оказалось, что всё примерно так же грустно, как и несколько лет назад
[22:39:51] <Kakadu> mrm: в мэйллист нажаловался?
[22:40:27] <mrm> Пока не жаловался. Пожалуюсь (и товарищу Проценко в багтрекер инсталлятора)
[22:40:56] <gds> mrm: я ж предлагал план, как сделать проще.  Возьми msys+mingw (хотя бы из оверблд), распакуй исходники последнего релиза, посмотри патчи, каждый, их логику, тупо заменяя %%overbld_var%% на какие-то фиксированные значения, затем добейся компиляции окамла4, и всё, считай, многое уже сделано для оверблд с окамл4.
[22:41:34] <gds> это проще в том числе в том, что некоторые вещи они не пофиксили, а тут всяко придётся на эти вещи наткнуться при изменении патчей.
[22:42:04] <gds> далее скинь (или даже закоммить) мне новый окамл, новые патчи, к тому времени будет время разбираться с остальным.
[22:42:39] <mrm> gds: Возможно, что так и придётся сделать (допиливать overbld). Пока хочется разобраться с проблемами в cygwin, тем более что окружение cygwin мне намного больше нравится, чем mingw/msys
[22:43:41] <mrm> Под cygwin, собственно, почти всё уже работает. У меня остались проблемы со сборкой pcre-ocaml, mikmatch, menhir. Везде проблемы с путями
[22:44:42] <gds> а там лицензия же плохая на cygwin1.dll, ну и тормоза какие-то.  ещё что-то плохое было, уже не вспомню.
[22:45:17] <mrm> В результате получаются вполне себе нативные бинарники, не зависящие от сигвина
[22:45:26] <mrm> Это кросскомпиляция через mingw64
[22:46:44] <mrm> Все нужные мне сишные либы запросто собрались с "./configure --host=i686-w64-mingw32", точно так же, как они собираются под линуксом (тоже с кросскомпиляцией через mingw)
[22:47:10] <mrm> Тормозов никогда не замечал
[22:49:03] <mrm> Плохое то, что вот сейчас при использовании официального камлового инсталлятора есть нерешённые проблемы, с которыми я столкнулся (причём это почти точно не баги самого сигвина). А кроме камла всё ну просто замечательно работает
[22:52:24] <mrm> gds: Короче, хочу пока cygwin поковырять (пока нервы не сдадут). Если получится, то mingw/msys можно будет вообще выкинуть нафиг, ибо больше как для камла он ни для чего мне не сдался :-)
[22:53:13] <gds> mrm: твоё дело.  я-то всяко сделаю оверблд с окамл4.
[22:58:16] tilarids вышел(а) из комнаты: Machine going to sleep
[23:02:11] UncleVasya вышел(а) из комнаты
[23:10:33] ygrek вошёл(а) в комнату
[23:28:40] tilarids вошёл(а) в комнату
[23:38:04] ygrek вышел(а) из комнаты
[23:43:59] ftrvxmtrx вошёл(а) в комнату
[23:49:44] tilarids вышел(а) из комнаты: Replaced by new connection
[23:49:49] tilarids вошёл(а) в комнату
[23:52:25] <Kakadu> mrm: А у тебя в цигвине есть pcre-config?
[23:52:59] <mrm> Я дал ссылку на него при помощи флага --with-pcre-config
[23:55:06] <mrm> В setup.data у меня задан абсолютный путь:
[23:55:10] <mrm> with_pcre_config="/cygdrive/c/projects/pcre-8.31/pcre-config"
[23:55:43] <Kakadu> да я понял уже
[23:55:56] <mrm> Сам pcre собрался без проблем. Уверен, что не в нём дело (до pcre-config при сборке pcre-ocaml дело не доходит)
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!