Home
Objective Caml
ocaml@conference.jabber.ru
Понедельник, 31 октября 2011< ^ >
f[x] установил(а) тему: Камль -- http://caml.inria.fr | http://camlunity.ru/ (теперь с git доступом!) | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв и тормозит, move on | stdlib only? - ССЗБ
Конфигурация комнаты
Участники комнаты

GMT+3
[00:46:37] Kakadu вышел(а) из комнаты
[02:06:33] <ygrek> аргх!
[02:06:56] <ygrek> конечно extern "C" ни на что не влияло потому что enum_headers не был в депендсах и либа не пересобиралась
[02:07:08] <ygrek> повбывав бы за кривые билд системы
[02:17:06] <ygrek> Kakadu: напомни мне завтра чтобы я тебя повбывал
[02:18:03] <ygrek> теперь оно работает - но крэшится :
QApplication created
creating normal QWidget
normal QWidget created
Segmentation fault
[02:18:21] <ygrek> работает но падает, да
[02:18:26] <ygrek> компилится, но падает
[02:20:35] <ygrek> http://paste.in.ua/3255/
[02:20:49] ygrek is going down for system sleep
[02:40:48] ygrek вышел(а) из комнаты
[09:30:37] ygrek вошёл(а) в комнату
[09:40:56] ygrek вышел(а) из комнаты
[09:49:51] bobry вошёл(а) в комнату
[09:59:46] bobry вошёл(а) в комнату
[10:00:02] bobry вышел(а) из комнаты
[10:07:34] Kakadu вошёл(а) в комнату
[10:18:42] ermine вошёл(а) в комнату
[10:20:15] klapaucius вошёл(а) в комнату
[10:21:30] <Kakadu> кхм, а у меня не падает)
[10:38:49] gds вышел(а) из комнаты
[10:39:18] gds вошёл(а) в комнату
[10:56:49] Typhon вышел(а) из комнаты: Replaced by new connection
[10:56:51] Typhon вошёл(а) в комнату
[11:14:26] bobry вышел(а) из комнаты
[11:14:53] bobry вошёл(а) в комнату
[11:18:32] <Kakadu> черт, после фикса ygrek'a с камлобилдом после любого изменения файла, make перебилд не запускает и говорит up-to-date TT
[11:20:33] Typhon вышел(а) из комнаты
[11:21:15] <f[x]> да, я там неправильно сделал
[11:21:19] <f[x]> дай мне коммитера что-ли в репку
[11:22:38] <Kakadu> дал
[11:25:29] <Kakadu> у меня есть ещё супер-страшная проблема, с ней даже ermine не справилась
[11:25:56] <Kakadu> про сегфолт
[11:28:22] <f[x]> ап
[11:28:59] bobry вышел(а) из комнаты
[11:31:41] <Kakadu> https://github.com/Kakadu/lablqt/issues/1
[11:31:55] <ermine> да в принципе справилась
[11:32:06] <ermine> я вынесла тебе метод лечения
[11:32:11] <Kakadu> cсамое интересное -- ссылка в конце
[11:32:17] <Kakadu> ermine: в студию!
[11:32:29] <Kakadu> черный ящик
[11:32:34] <Kakadu> пам-пам
[11:32:38] <Kakadu> парапапам пам
[11:32:46] <Kakadu> илил как там в ЧГК?
[11:37:33] <f[x]> кстати, сборка xmltool тоже поломалась
[11:38:03] <Kakadu> да я знаю
[11:38:15] <f[x]> а оно нужно*
[11:38:16] <f[x]> ?
[11:38:21] <Kakadu> надо будет её засунуть в папку xml и научить генерить 2 ехешника
[11:38:30] <f[x]> как два байта переслать
[11:38:32] <f[x]> ща
[11:38:35] <Kakadu> в будущем да. но чтобы собирать сегодня нет
[11:38:56] <Kakadu> собирать <=> тестить
[11:40:06] <Kakadu> просто я там пользую два модуля из xml: parser и superIndex
[11:43:31] bobry вошёл(а) в комнату
[11:44:45] <f[x]> чего?
[11:44:47] <f[x]> уже сделал
[11:48:56] <f[x]> wtf?
In file included from QTreeWidget_twin.cpp:6:
QTreeWidget_twin.h:1495: error: ‘int QTreeWidget_twin::metric(QPaintDevice::PaintDeviceMetric)’ cannot be overloaded
QTreeWidget_twin.h:1477: error: with ‘int QTreeWidget_twin::metric(QPaintDevice::PaintDeviceMetric)’
[11:49:27] <f[x]> ап
[11:49:33] <Kakadu> ты build.ml запускал?
[11:49:56] <Kakadu> если да, то он наверное поломан
[11:50:13] <f[x]> угу
[11:50:22] <f[x]> вообщем остальное потом буду смотреть
[11:51:13] <gds> f[x]: а мою проблемку смотрел?  жопа там?
[11:51:17] <Kakadu> будешь запускать вот так: /media/disk/kakadu/prog/lablqt_new/xml$ ./main.native -xml -file ../for_new.xml
если я build.ml не пофикшу к тому времени
[11:52:54] shaggie вошёл(а) в комнату
[11:55:27] <f[x]> Kakadu: ап
[11:55:34] <f[x]> выпилил Makefile в moc
[11:55:46] <f[x]> gds: в бэкграунде
[11:58:00] <gds> f[x]: понял, не отвлекаю.  тогда буду сам другими делами заниматься пока, а потом, как появится что -- сообщи.  вдруг что выйдет...
[11:59:21] <f[x]> мне кажется что с отображалкой должно выйти, но пока хз
[12:02:02] <Kakadu> ermine: расскажешь, как пофиксила?
[12:02:40] <Kakadu> значит build.ml пока трогать не надо. Мне надо вниматьельно посмотреть на  cannot be overloaded
[12:04:39] <gds> имеешь ввиду, для любых t 'a и u 'a сделать set/get?  Там может вот в чём проблемка возникнуть: при type t 'a = unit (фантом классический) может оказаться, что существуют (x : t 'a) == (y : t 'b) для разных 'a и 'b.  То есть, по физическому сравнению сложно определить, тот ли это t 'a.
[12:15:06] Typhon вошёл(а) в комнату
[12:55:54] <ermine> Kakadu: написала пробный биндинг в стиле биндинга в mltls_stub.c и оно не падало!!!
[12:56:33] <ermine> Kakadu: не возвращать объект как (value)obj, а засовывать в caml_alloc_small
[13:10:16] <Kakadu> что-то не понятно как одно на другое влияет
[13:20:00] <ermine> возможно что gc прихлопывает ссылку на obj
[13:24:19] <Kakadu> сколбко скобочек , блин
[13:25:49] <Kakadu> ermine: я сделал что ты сказала и получил другой креш. интересно
[13:26:38] <Kakadu> http://paste.in.ua/3256/
[13:26:44] <Kakadu> очень интересно
[13:27:11] <gds> вообще, для сишечьки часто следует оформлять сишные макросы Make_value_of_object и Object_of_value, и со скобками не запутаешься, и ГИБКАСТЬ.
[13:28:56] <Kakadu> gds: у меня много классов и генерить макросы как-то не с руки пока
[13:29:01] <Kakadu> надо будет победить себя
[13:29:08] <gds> не генерить, а один раз написать две строчки.
[13:29:39] <Kakadu> и что ты хочешь написать вместо Object_of_value(х) ?
[13:30:46] <gds> если в alloc заворачивать (custom block) всякий -- видимо, ((yourtype*)(Field((v), 0))) (по скобкам посчитай грамотно только)
[13:31:30] <gds> интересно, если в multithreaded-софтине часто дёргать Mutex.[un]lock на одном мутексе при условии очень редких конфликтов и очень быстрого туда-сюда -- это сильный удар по производительности?  Мне бы в идеале "критическую секцию"...
[13:31:45] <Kakadu> надо подумать
[13:32:56] <gds> ну или #define Object_of_value(ty, va) ( (ty*)(Field((va), 0)) )
[13:34:05] <gds> Make_value_of_object -- caml_alloc_small или как-то типа того, затем Set_field, только это всё надо будет в do-while обернуть, ибо блок с новой временной переменной.
[13:34:50] Kakadu гдаит свой моск и желает ему переварить всё это
[13:36:00] <Kakadu> я думаю может сдеалать отдельный репозиторий генеренного кода. что бы было удобнее жаловаться на сишечные креши
[13:37:16] <gds> лучше правило типа make test для воспроизводимых крашей и диру типа tests/ с ними.
[13:55:03] <gds> а вообще, в окамле есть tls?  по запросу "ocaml tls -"Question about ocaml threads and TLS (on linux)" -"SSL/TLS"" поискал.  похоже, что не существует.
[13:55:58] <Kakadu> я накопал глобальную проблему кажется.....
[13:58:17] <f[x]> по-моему в lwt было, либо эмуляция
[13:58:58] <Kakadu> с++ ники начали срач на тему чем плохо камло
[14:01:06] <gds> в lwt -- да, было.
[14:01:45] <ermine> Kakadu: закоммитил, можно тестануть?
[14:02:19] <Kakadu> ermine: про скобочки?
[14:02:34] <ermine> Kakadu: про новый крэш
[14:02:38] <Kakadu> ща
[14:03:56] <Kakadu> ermine: давай
[14:04:07] <Kakadu> только я не обещаю что build.ml будет работать
[14:04:33] <ermine> запустила сборку
[14:04:56] <ermine> как хорошо что я ранее закоммитила скриптик сборки
[14:06:02] <Kakadu> cd xml; make; ./main.native -xml -file ../for_new.xml
cd ../test_gen
mkae -C out/cpp
make
mkae -C test
если что
[14:09:44] <gds> смотрю в исходники lwt (выписал: http://paste.in.ua/3257/ ) и сбюфемхеваю: как подобная конструкция может являться lts при условии того, что 'a key могут передавать между тредами?
[14:10:55] <f[x]> ну наверное имеется ввиду что ты сверху накручиваешь свой модуль который юзает Thread.id для key?
[14:11:06] <f[x]> а в модуль это не совали чтобы от thread не зависеть?
[14:19:06] <gds> вариант.  Либо кагбэ намекают, что key должен быть разный для разных тредов.
[14:23:33] <gds> в общем, думаю как-то отрефакторить эту логику в отдельный модуль с названием типа TlsArray, который будет make новый массив нужного размера со значением по умолчанию, и в случае доступа к нему давать только те значения, которые текущий тред присунул туда (иначе -- значение по умолчанию).  Это и для ref годится, и обязательный option там не нужно тащить.  Пока тупо заглушка, потом можно будет каждому треду создавать свой массив, разграничивать их по thread id.  (то есть, разные .cm* будут для разных случаев линковки, с тредами или без.)
[14:23:54] <gds> или плохая идея?
[14:29:51] <ermine> Kakadu: где там другой крэш? все тот же strlen()
[14:30:44] <Kakadu> http://paste.in.ua/3256/
[14:30:51] <Kakadu> ermine: а ты что запускаешь?
[14:30:58] Typhon вышел(а) из комнаты: Replaced by new connection
[14:30:59] Typhon вошёл(а) в комнату
[14:31:01] <ermine> Kakadu: нее, что запустить-то?
[14:31:22] <Kakadu> test_gen/test/test
[14:35:54] <ermine> там байткод, там сложнее с корой
[14:36:53] <Kakadu> ermine: native !
[14:38:38] <ermine> а в коре ocamlrun
[14:39:08] <Kakadu> [15:37:16] <~ForNeVeR> (*((QWidget **) &Field(_ans, 0))) = ans;
[15:37:21] <~ForNeVeR> По-моему, это охуенно.
[15:38:00] <m4n71k0r> *опизденительно* как вариант
[14:39:29] <ermine> и там тот же strlen()
[14:39:44] <ermine> всё стабильно
[14:39:52] <Kakadu> ermine: типа баги только у меня??
[14:39:57] <ermine> стабильность - гарантия мира и порядка
[14:40:07] <Kakadu> я же вроде фиксил strlen как ты сказала
[14:41:12] <ermine> наверное плохо сказала
[14:41:16] <ermine> ща посмотрю в стаб
[14:41:38] <ermine> если вспомню где найти его
[14:46:13] ermine тупо погрепала весь lablqt по caml_alloc_small, оно есть где-то в бинарном виде, но никак не в исходниках
[14:47:40] <Kakadu> вот это прикол
[14:47:49] <Kakadu> наверное ты поменяла автогенеренные файлы
[14:48:48] <ermine> нет
[14:49:49] <ermine> git status показывает только наличие корок как нештатных файлов
[14:50:56] <Kakadu> cat test_gen/.gitignore
[14:52:06] <ermine> ну он такой как на гитхубе, иначе гит бы жаловался на модифицированные файлы
[14:53:08] <Kakadu> в смысле там заигнорена папка out
[14:53:23] <ermine> а, наверное у тебя бранч какойнить
[14:53:30] <Kakadu> new2
[14:53:39] <ermine> new2 например
[14:53:44] <Kakadu> блин
[14:53:51] <Kakadu> я забыл тебе сказать что - ли?
[14:53:55] Kakadu слоупок
[14:54:14] <ermine> ну хз, может это я читаю по диагонали
[14:54:45] <ermine> а там нету скрипта сборки
[14:54:47] <ermine> вот ужас
[14:55:47] <Kakadu> [15:06:51] <Kakadu> cd xml; make; ./main.native -xml -file ../for_new.xml
cd ../test_gen
mkae -C out/cpp
make
mkae -C test
если что
[14:56:00] <gds> Kakadu: прошу тебя написать такие скрипты, чтобы народ не мучился и одним запуском скрипта получал нужный результат.  А то каждый из помогающих трахается с дебильной системой сборки.  А она дебильная -- посчитай количество проблем у людей, которые хотят тебе помочь.
[14:56:39] <gds> чтобы например mkae ttse выдавал результаты тестов.
[14:57:28] <gds> ну или так, чтобы mkae ttes1 выдавал один тестовый случай, а maek tset2 -- другой.
[15:01:51] <ermine> а скриптец не пашыт в new2
[15:02:01] <ermine> в общем жпа
[15:02:33] <ermine> а не
[15:02:39] <ermine> это камлобилд жалуется
[15:04:26] <ermine> так, скрипт вроде не нужен, посмотрим чо будет дальше
[15:08:37] <f[x]> а нафига две ветки, кстати?
[15:09:22] bobry вышел(а) из комнаты
[15:09:25] <Kakadu> во второй я начал делать наследование
[15:11:38] <ermine> не собирается
[15:18:43] <Kakadu> я вроде сделал тест на этот креш отдельно
https://github.com/Kakadu/lablqt/tree/new2/crashes/test1
[15:19:38] <Kakadu> https://github.com/Kakadu/lablqt/tree/new2/crashes/test1
тест отдельно на этот креш
[15:19:38] Kakadu вышел(а) из комнаты
[15:20:00] Kakadu вошёл(а) в комнату
[15:20:29] <Kakadu> что-то залагало и не отправлялось сразу
[15:20:41] <Kakadu> кто с линуксом можете посмотреть
[15:27:18] <f[x]> вот это тот же крэш что я вчера говорил
[15:28:35] <f[x]> -include .depend
[16:02:25] shaggie вышел(а) из комнаты
[16:13:27] shaggie вошёл(а) в комнату
[16:24:26] <ermine> Kakadu: пни, когда можно будет собрать
[17:42:42] <Kakadu> мдя, после прохождения C++ генератора QWidget из неабстрактного превращается в абстрактный
[17:42:54] <Kakadu> что за хрень?!
[17:43:03] <Kakadu> мутабельные строки?
[17:44:00] <Kakadu> хотя походу куда-то конструкторы деваются.....
[19:32:48] <ermine> Kakadu: всё еще воюешь?
[19:33:04] <Kakadu> угу
[19:33:09] <Kakadu> опять линковка матерится
[19:33:18] <ermine> давай, не сдавайся
[20:04:18] <Kakadu> я опять запутался в протектедах
[20:05:06] shaggie вышел(а) из комнаты
[20:05:16] <ermine> в чем?
[20:05:35] <Kakadu> в protected методах. мы с gds шаманили
[20:05:53] <Kakadu> 1) итак, если protected есть в QObject то он торчит в камло
[20:06:30] <ermine> а, ща тебе в приват расскажу способ как не путаться
[20:10:01] <Kakadu> gds:  ты тут?
[20:11:31] <ermine> рисовать!!!
[20:16:48] arhibot вошёл(а) в комнату
[20:20:35] <gds> Kakadu: тут, но уже почти свалил.  А ты билд-систему наладил?
[20:21:18] <Kakadu> ничего не конпилится потому что я запутался в протектедах
[20:23:54] <Kakadu> снова проблема что делать если протектед не был переопределен
[20:24:38] <Kakadu> мы хотели бросать исключение если класснэйм не тот, но это вроде хрень
[20:25:09] <gds> придумай не-хрень.
[20:25:25] <Kakadu> я беру обычный QWidget открываю его, жмакаю кнопку, он посылает сигнал что нажата кнопка и мы валимся в камле
[20:25:45] <Kakadu> всё упирается в то что нет дефотного значения если метод был вызван
[20:26:15] <Kakadu> пришло в голову разрешить только протектеды возвращающие указатель или войд
[20:33:30] Typhon вошёл(а) в комнату
[20:35:20] arhibot вышел(а) из комнаты
[21:13:08] <Kakadu> ermine и все-все-все: ваяю mindmap для lablqt
http://go.comapping.com/comapping.html#mapid=109591&publishKey=345qM4xXXg
[21:15:57] <ermine> плешь
[21:16:34] <Kakadu> мне вообще идея таких мапов не очень...
[21:17:12] <ermine> бумага рулит
[21:17:29] <Kakadu> бумагу вам и буржуям не покажешь
[21:42:01] ermine вышел(а) из комнаты
[22:07:56] <gds> > Kakadu: всё упирается в то что нет дефотного значения если метод был вызван
чей метод?  protected -- чисто для своих, как я понял?  (давно ссал на страусовый труп, забыл всё...)  Как делается в случаях, когда плюсятина наследуется?  Возьмём её поведение и всё.
[22:10:11] <Kakadu> в плюсах вызывается метод предка тупо
[22:10:14] <Kakadu> у меня так не получится
[22:10:42] <Kakadu> если я его в близнеце переопределил, то базовый метод исчез вроде
[22:11:04] <Kakadu> если только super::methname не работает
[22:11:53] <Kakadu> чей метод? объекта, я не совсем понимаю что ты хочешь получить
[22:18:34] <gds> Kakadu: хочу скопировать плюсовое поведение в случае protected-методов.  это -- цель.
[22:18:44] <gds> чтобы не падало, например.
[22:20:10] <Kakadu> скомпилировать то можно, но поведение будет хреновое
[22:20:44] <gds> почему-то я не вижу разницы между protected и public в данном конкретном моменте.  С public та же история -- если переопределил, то метод того, от кого наследуешься, не вызвать.  Поэтому вроде хотели делать камлокласс, который точно повторяет плюсовый класс, а наследование и прочее -- поверх камлокласса.
[22:23:11] <Kakadu> лучше завтра, сегодня мой мозг уже переключился на иное
[22:37:20] ygrek вошёл(а) в комнату
[22:39:17] <ygrek> во во, зачем концентрироваться на protected/public?
[22:39:41] <Kakadu> иначе нельзя научиться ловить нажатия клавиш на виджете
[22:41:22] ygrek вышел(а) из комнаты: Replaced by new connection
[22:41:28] ygrek вошёл(а) в комнату
[23:02:24] <gds> Kakadu: ну давай мы с тобой как-нибудь попробуем.  Например, почему нельзя <...>?
[23:03:34] <gds> конечно, когда будет время+желание.  Вот тогда и попробуем.  Всяко-всяко, мой ожидаемый lablqt.
[23:03:55] <Kakadu> что таокое <...> ?
[23:04:13] <gds> почему нельзя ловить нажатия клавиш на виджете
[23:05:47] <Kakadu> меня атакуют
[23:05:53] <Kakadu> со всех стороно
[23:07:31] <gds> тохес береги.
[23:11:40] gds вышел(а) из комнаты
[23:16:20] Typhon вышел(а) из комнаты: Replaced by new connection
[23:16:23] Typhon вошёл(а) в комнату
[23:41:03] <Kakadu> что такое тохес?
[23:52:20] ygrek вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!