Home
Objective Caml
ocaml@conference.jabber.ru
Пятница, 2 июля 2010< ^ >
ygrek установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Верблюды грязи не боятся! | release crap | judge by commits, not comments | ocaml мёртв, move on
Конфигурация комнаты
Участники комнаты

GMT+4
[00:14:05] ygrek смотрит на ооп у thedeemon и думает camlp4mapgenerator
[00:14:06] vshender вышел(а) из комнаты
[00:56:02] ermine вышел(а) из комнаты
[01:09:41] digital_curse вышел(а) из комнаты
[01:36:32] ygrek вышел(а) из комнаты
[01:53:08] Kakadu вышел(а) из комнаты
[03:09:16] Typhon вышел(а) из комнаты
[04:43:47] komar вышел(а) из комнаты
[06:55:41] zert вышел(а) из комнаты
[08:05:55] iNode вышел(а) из комнаты
[09:50:14] serp256 вошёл(а) в комнату
[09:53:39] gds вошёл(а) в комнату
[09:55:36] Typhon вошёл(а) в комнату
[10:09:12] vshender вошёл(а) в комнату
[10:17:46] serp256 вышел(а) из комнаты
[10:17:56] gds вышел(а) из комнаты
[10:18:40] gds вошёл(а) в комнату
[10:19:43] serp256 вошёл(а) в комнату
[10:21:30] serp256 вышел(а) из комнаты
[10:25:15] serp256 вошёл(а) в комнату
[10:47:35] <gds> есть ли в природе декомпилятор окамловского байткода?  То есть, из байткодового бинарника получить инструкции ocaml bytecode vm в текстовом виде, типа "засунуть в стек", "вызвать функцию" и так далее.
[10:48:23] ʇsʎɯ вошёл(а) в комнату
[10:52:29] <vshender> gds: думается нет. Тебе как инструмент или в самом байт-коде разобраться?
[10:54:43] <Typhon> gds: http://caml.inria.fr/pub/ml-archives/caml-list/1997/06/dc085b7b31470110d87c837b3aab7d69.en.html -- не то?
[10:54:55] <gds> как инструмент.  У меня не компилируется новый окамл под мингвом, он не кушает _tags файл, тогда как под msvc вроде как кушает.  Но программа, которая работает по-разному, распространяется в бинарном виде, в исходниках лежит как boot/myocamlbuild.boot, и именно она глючит.
[10:55:38] <Typhon> а, стоп, из бинарника надо ж
[10:55:41] <gds> Typhon: похоже на то, но у меня уже бинарник, что усложняет.
[10:56:53] <f[x]> gds: а бутстрапнуть самому?
[10:57:14] <gds> бутстрап сделать на msvc или на чём-то другом, а потом подсунуть mingw'у?
[10:58:32] <f[x]> разве на mingw не получится?
[10:59:58] gds вышел(а) из комнаты
[11:00:07] gds вошёл(а) в комнату
[11:00:13] <gds> f[x]: или я тупой, или не получится.  http://caml.inria.fr/mantis/view.php?id=5077
[11:00:23] <gds> если я тупой, это хорошие новости.
[11:00:32] <gds> если не получится -- это плохие :)
[11:02:58] <f[x]> хм, а myocamlbuild собрать без ocamlbuildlib никак..
[11:05:17] serp256 вышел(а) из комнаты
[11:06:57] <gds> честно говоря, не особо разбирался.  Догадываюсь, что какая-то из процедур сборки использует ocamlbuild/start.sh, в котором стоит нужный -rectypes.
[11:09:43] <gds> если с другой стороны подходить, можно filemon заюзать, чтобы проследить, пробует ли оно искать "_tags", и где, если да.
[11:16:05] <f[x]> тоже рабочий вариант
[11:20:27] <f[x]> по идее boot файлы на всех ОС одинаковые
[11:21:09] <gds> учитывая, что они из дистра достаются -- точно одинаковые.
[11:21:51] <gds> или ты про те, которые при компиляции создаются?  ну, байткод одинаковый.
[11:21:54] <gds> по идее.
[11:24:04] serp256 вошёл(а) в комнату
[11:28:05] ermine вошёл(а) в комнату
[11:31:18] <f[x]> gds: myocamlbuild.boot создаётся в build/myocamlbuild.sh
[11:31:55] <f[x]> попробовать пересоздать?
[11:32:08] <f[x]> но это реально какое-то тыкание наугад
[11:40:14] <gds> кстати да, в этом же скрипте идёт (cd ocamlbuild && make), что очень вероятно запускает ocamlbuild/start.sh с правильными -rectypes.  Но не представляю, как всё это сделать нормально.
Поиграюсь с filemon.  Но другие идеи тоже полезны.
Байткод декомпилировать -- страшно.
А вот взять свежесобранный boot/myocamlbuild.boot откуда-то с другой системы и подсунуть его в качестве исходного для mingw-сборки -- это хорошая идея.
[11:44:05] <f[x]> так просто запустить myocamlbuild.sh - не получается?
[11:44:40] <f[x]> (я правда слабо представляю процесс бутстрапа камлевский)
[11:45:03] <gds> попробую в первую же очередь.
[11:47:38] komar вошёл(а) в комнату
[11:51:15] <gds> валится на
+ cp ocamlbuild/_build/ocamlbuildlight.cmo _build/ocamlbuild
cp: cannot stat `ocamlbuild/_build/ocamlbuildlight.cmo': No such file or directory
что кагбэ намекает на то, что в директории ocamlbuild должна быть проведена сборка.
Ну ничо, я не особо рассчитывал, что что-то получится.
[11:57:28] <f[x]> ну, в том скрипте и вызов make есть :)
[11:57:37] <f[x]> он что - не выполнился?
[12:02:36] <gds> если руками, то выполнилось, в ocamlbuild/Makefile дошло до точки
    @echo "Please copy the myocamlbuild_config.ml of the OCaml source distribution"
    @echo "  as ocamlbuild_Myocamlbuild_config.ml"
а откуда брать myocamlbuild_config.ml -- надо копать.
[12:03:21] <f[x]> а он из configure вроде где-то получается, это аналог config/Makefile
[12:03:35] <f[x]> можно ещё в irc спросить кто mingw использует
[12:07:27] <gds> пока filemon попробую натравить на -show-tags, посмотреть на обращения к "_tags".  О результатах отпишу.
[13:11:25] serp256 вышел(а) из комнаты
[13:58:59] serp256 вошёл(а) в комнату
[14:10:40] iNode вошёл(а) в комнату
[14:12:32] <gds> вот это жесть.  Оно читает/ищет файлы (в том числе "_tags", код в ocamlbuild/slurp.ml) через вызов команды find!
Если на момент запуска (из boot.sh) в OCAMLBUILD_FIND значение по умолчанию ("/usr/bin/find"), то фейл, как и в случаях "/bin/find", "/usr/bin/find.exe", "/bin/find.exe", "c:/path/to/find.exe".  Если поставить просто "find", _tags находит и читает.  Если поставить любой скрипт, вызывающий "find", то 50/50, либо валится в глубоком ассерте, либо находит "_tags".
[14:32:41] vshender вышел(а) из комнаты
[14:45:39] vshender вошёл(а) в комнату
[14:46:54] <f[x]> ё
[14:47:21] <f[x]> нафига там find?
[14:47:53] <gds> сурове юниксоиде!
[14:50:09] <f[x]> повбывав бы
[14:51:53] <ʇsʎɯ> попячьтесь!
[14:51:57] <gds> ага.  Плюс к тому, делают редирект через sprintf "%s > '%s' " cmd filename, а потом ещё добавляют "bash -c " впереди (с каким-то непонятным квотингом).  Где-то в этих строковых магических ритуалах всралась ошибка.
[15:08:58] <gds> ну вот.
$ ocaml
        Objective Caml version 3.12.0+beta1
# Sys.os_type;;
- : string = "Win32"
дальше уже дело техники.
Как бы это написать в багтрекере, что "дебилам, юзающим find, не хочу помогать в поиске ошибок, а вот workaround -- получите"?
[15:22:37] <f[x]> если надо будет это заплюсовать - можешь на меня рассчитывать :)
[15:29:59] <gds> http://caml.inria.fr/mantis/view.php?id=5077 , но тупаково всё это.  Самому фиксить это уродство -- неохота, если workaround есть.
[15:33:09] <Typhon> "I've got lost in all these magical quotings" :)
[15:44:03] <f[x]> как в omake проинсталлить в ocamlfind (в OMakefile присутствует обьявление/цель/декларация OCamlPackage)
[15:44:06] <f[x]> ?
[15:47:16] iNode вышел(а) из комнаты
[15:48:17] iNode вошёл(а) в комнату
[15:48:39] <vshender> f[x]: Вроде из коробки такого нету :/
[15:48:52] <vshender> То есть ручками.
[15:48:58] <vshender> Но ручаться не могу.
[17:33:07] gds вышел(а) из комнаты
[18:08:32] ʇsʎɯ вышел(а) из комнаты
[18:10:08] Typhon вышел(а) из комнаты
[18:28:54] gds вошёл(а) в комнату
[18:51:21] iNode вышел(а) из комнаты
[19:42:08] f[x] вышел(а) из комнаты
[20:01:25] m1cko вошёл(а) в комнату
[20:02:25] m1cko вышел(а) из комнаты: offline
[20:24:55] bLaDe вошёл(а) в комнату
[20:44:09] iNode вошёл(а) в комнату
[20:51:15] zert вошёл(а) в комнату
[20:51:17] bLaDe вышел(а) из комнаты
[21:32:41] serp256 вышел(а) из комнаты
[21:39:49] <gds> пробую скомпилировать батарейки новым окамлом, валится на этом:
    | <:ctyp@_loc< $a$ $b$ >> ->
+ ocamlfind ocamldep -package camlp4.lib -native -pp camlp4of -I . -I ..\\..\\../libs/estring pa_format.ml
File "pa_format.ml", line 249, characters 19-22:
While expanding quotation "ctyp" in a position of "patt":
  Parse error: EOI expected after [quotation of type] (in [quotation of type])
(ошибка показывает на "$a$")
удивительно, но подобные quotation есть и в другом коде, и компилируется; например, в окамловском camlp4/Camlp4/Printers/OCaml.ml:
    match a with
    [ <:ctyp< $a1$ $a2$ >> -> get_ctyp_args a1 [a2 :: al]
может дело в опциях компиляции, или что-то криво собралось?
[22:32:56] ygrek вошёл(а) в комнату
[22:34:32] <ygrek> gds: это regression
[22:34:36] <ygrek> в мантисе баг есть
[22:35:15] <zert> а новый окамл — это какой?
[22:36:52] <ygrek> 12
[22:44:32] <zert> релиз уже или рц?
[22:54:38] <ygrek> beta
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!