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

GMT+3
[00:36:21] <gds> кстати вот, про qt -- была идея свести объекты к тому, что вообще под ними изначально подразумевалось (ну, помните smalltalk всякий?).  то есть, сделать канал сообщений от плюсиков с их qt и до окамла с их, например, bitstring/bitmatch, ну и указатели как-нибудь так-эдак.  трижыды решал не озвучивать идею, но вот теперь -- хрен знает, может и стоило бы.  но, наверное, нет.
[00:36:49] <Kakadu> я не знаю что такое smalltalk
[00:37:53] gds установил(а) тему: OCaml / ОКамл / Камль -- http://caml.inria.fr | http://camlunity.ru/ (теперь с git доступом!) | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв и тормозит, move on | stdlib only? - ССЗБ
[00:38:30] <gds> ygrek: если топик не ок, поменяй как надо.
[00:39:48] <gds> Kakadu: там такая гламурная фишечька -- вызов obj#meth является посылкой сообщения "meth" к объекту "obj".  Ну и около того.
[00:40:06] <Kakadu> ты про Objective-C сейчас... )
[00:41:14] <gds> я про то ООП, которое изначально подразумевалось, до того, как гниющая туша страуса начала скрещивать это с сишечькой.
[00:42:00] <gds> и до того, как какие-то яворасты, отмазываясь своей солнечностью, начали лепить ещё одно говно.
[00:43:03] <gds> те, кто после этих, уже не очень-то и виновны, их убивать не нужно.
[00:43:38] ygrek установил(а) тему: OCaml / ОКамл / Камль -- http://caml.inria.fr | http://camlunity.ru/ (теперь с git доступом!) | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв и тормозит, move on | stdlib only? - ССЗБ | Fight FUD with fire
[00:43:55] <Kakadu> что такое FUD?
[00:44:48] <ygrek> кстати, обращаю внимание qt-водом что там наследование используется просто как способ навешивания коллбэков, ввиду ущербности хост-языка (отсутствие замыканий)
[00:44:57] <ygrek> Kakadu: прогугли это!
[00:45:05] <ygrek> * водов
[00:45:32] <Kakadu> там это где?
[00:45:39] <ygrek> в qt
[00:47:10] <gds> fear FUD with fright1111
[00:49:41] <Kakadu> ygrek: не совсем согласен про коллбэки
[00:50:16] <ygrek> а для чего же ещё?
[00:50:37] <Kakadu> для коллюэков есть сигналы-слоты
[00:52:11] <Kakadu> ладно, завтра разберемся
[00:52:12] Kakadu вышел(а) из комнаты
[01:41:11] <ygrek> оmfg, Kakadu, у тебя табы в коде!!1111 окстись!
[02:06:34] <ygrek> крэшится, говоришь?
[02:06:44] <ygrek> а это что такое??
  Q_UNUSED(caml__frame); //caml_local_roots = caml__frame;
[02:27:54] ygrek вышел(а) из комнаты
[02:40:20] shaggie вышел(а) из комнаты
[09:02:11] bobry вышел(а) из комнаты
[09:02:51] bobry вошёл(а) в комнату
[09:27:46] Kakadu вошёл(а) в комнату
[09:29:03] <Kakadu> я не знал что с этим делать. Я это выдрал из потрохов макроса CAMLreturn
[10:15:14] <Kakadu> ygrekу пришлось прочитать мои файлы lablqt. бедный ygrek
[10:17:08] ygrek вошёл(а) в комнату
[10:48:15] ermine вошёл(а) в комнату
[10:50:33] Typhon вошёл(а) в комнату
[11:10:27] ygrek вышел(а) из комнаты
[11:21:15] f[x] вошёл(а) в комнату
[11:24:56] <f[x]> что делать - читать мануал
[11:25:04] <f[x]> CAMLreturnT
[11:27:17] komar вышел(а) из комнаты: Replaced by new connection
[11:27:17] komar вошёл(а) в комнату
[11:51:15] <Kakadu> f[x]: но это ни разу не объясняет почему inher крешится
[11:53:09] <gds> почему не объясняет?  место бага может быть отдалено от места его проявления, особенно в случае, когда работа со сборщиком мусора.  кроме того, неоднократное появление таких хаков вызывает сомнения по поводу остальной части кода, куда ещё не заглядывал глаз человека.
[11:55:14] <Kakadu> gds: в дируктории inher такого кода как описал ygrek нет
[11:55:21] <Kakadu> всегда ваш, КО
[11:55:35] <Kakadu> следовательно это не объясняет
[11:57:40] <f[x]> Kakadu: ок, но фигли у тебя код в 100500 каталогах разбросна
[11:57:43] <f[x]> я там нушнул вчера
[11:57:53] <f[x]> но получается правил не то что актуально сейчас
[11:57:56] <f[x]> круто
[11:58:01] <Kakadu> я видел
[11:58:13] bobry вошёл(а) в комнату
[11:58:13] <f[x]> посмотрю тогда inher, позжее
[11:58:35] <Kakadu> ок
[12:03:39] <ermine> Kakadu: переделал?
[12:04:11] <Kakadu> ermine:  ты про что?
[12:04:51] <ermine> Kakadu: про value self
[12:06:57] <Kakadu> ermine: ты вчера ушло топиццо не рассказав что тебя там так поразило
[12:08:13] <ermine> Kakadu: да я тебе много раз уже говорила, что не стоит возвращать абстрактные тэги как value-кастованные
[12:10:18] <ermine> Kakadu: в смысле A *a = malloc(); CAMLreturn((value)a);
[12:11:56] <Kakadu> а при кастовании их из камла в С++ нужны будут телодвижения ещё?
[12:13:21] <ermine> Kakadu: ты лучше расскажи про механизм работы gc и безопасность такого метода
[12:13:51] <ermine> Kakadu: про этот метод имхо нет ни слова в мануале камла
[12:23:00] <Kakadu> ermine: походу теледвижения при касте из камла нужны, ибо креш у меня теперь другой, но это я уже встречал когда забывал прилинковывать файло moc_*.o
[12:23:35] <Kakadu> ermine: #define BIO_val(v)             (*((BIO **) Data_custom_val(v)))
?
[12:26:48] <ermine> биореактор
[12:26:59] <ermine> Kakadu: ну да
[12:28:42] ermine во вчерашнем потопе нагенерила в уме кучу идей для горгоны и записала их всех в файлик
[12:29:13] <ermine> пока lablqt нету, придется поиграть с labltk
[12:30:33] <Kakadu> lablTK?
[12:30:39] <Kakadu> lablgtk!?
[12:31:02] <ermine> оба
[12:31:23] <ermine> на чем-то вытаптывать отделение кожи от мяса
[12:31:41] <f[x]> Kakadu: ты теряешь кастомеров просто каждую секунду!
[12:32:10] <Kakadu> f[x]: я почти потерял себя как кастомера на днях
[12:34:12] <ermine> не, я всяко lablqt буду юзать, как только оно поспеет
[12:34:59] ermine дает пинка Kakadu под ребро
[12:35:47] <Kakadu> ermine: иди почитай про qmд
[12:35:49] <Kakadu> qml*
[12:36:28] <ermine> где?
[12:36:42] <Kakadu> в гугле
[12:38:15] <Kakadu> ermine: можешь просто установит кутишные примеры и запустить в qtcreator
[12:39:56] <ermine> Kakadu: давай внедряй caml_alloc_small(1, Abstract_tag) в inher
[12:42:04] <ermine> а у меня inher опять не собирается
[12:43:09] <ermine> AA.cpp:1:2: error: invalid preprocessing directive #nclude
[12:43:18] <ermine> это уже qml? :)
[12:44:00] <Kakadu> Я злой и страшный серый волк. Я в горностаях знаю толк. Рр-р-р.
)
[12:54:02] <ermine> собрала и оно крэшится
[12:54:53] <Kakadu> поковыряв с абстрактами я получил тот же крещ
[12:55:08] <ermine> как вчера
[12:55:23] <Kakadu> на QWidget::keyPressEvent
[12:55:48] <ermine> закоммити
[12:55:54] <ermine> я посмотрю что ты наковырял
[13:01:28] <ermine> Kakadu: а может этот ваш qt не приемлет arg0=0?
[13:01:49] <Kakadu> из С++ всё ОК
[13:05:04] <Kakadu> ermine: пулься
[13:06:33] <gds> Kakadu: какие пакеты требуется поставить в дебиане/убунте, чтобы компилировать lablqt?
[13:09:18] <Kakadu> libqt4-core libqt4-dev libqt4-gui libqt4-opengl libqt4-opengl-dev
попробуй так
[13:09:19] <f[x]> а вот ты начни собирать, и озвучивай всё что ставишь
[13:09:26] <f[x]> так списочек и соберётся
[13:09:44] <ermine> кора слегка другая
[13:09:45] <Kakadu> и вообще qtcreator чтобы потому с qtdeclarative поиграться
[13:09:54] <f[x]> FUUU достаточно libqt4-opengl-dev - оставльно по зависимостям притянется
[13:12:19] <Kakadu> f[x] ты уверен что *-dev притянутся?
[13:13:03] <f[x]> угу
[13:13:15] <gds> а почему уверен?
[13:13:58] <Kakadu> gds: и ещё libqt4-dbg !!
[13:14:05] <f[x]> $ dpkg-query -W -f '${Depends}\n' libqt4-opengl-dev
libgl1-mesa-dev, libglu1-mesa-dev, libqt4-dev (= 4:4.7.3-5), libqt4-opengl (= 4:4.7.3-5)
[13:14:40] <ermine> ну значит чуда не случилось
[13:14:54] <gds> f[x]: ээ, это не то -- это фактические данные, а меня интересовала "политика".
[13:16:28] <f[x]> ну, если я ставлю xxx-dev то в результате у меня должна собираться прога юзающая xxx, а если сама xxx зависит от другой либы, то эта зависимость чаще всего будет отражена в хидерах, т.е. для сборки другая-либа-dev тоже нужна будет, значит она должна быть в депендсах
[13:17:23] <gds> во я тупой.  понял.
[13:18:34] shaggie вошёл(а) в комнату
[13:19:26] <Kakadu> ermine: всё говорит о том, что нельзя передавать QKeyEvent == NULL но это не объясняет почему это в С++ работает
[13:22:30] <ermine> Kakadu: я помню, как мучалась с одной корой в freetype2, когда там производилось субклассирование и надо было понять как возвращать результат субкласса, вот оно падало, если я создавала новый абстрактный тэг нового результата
[13:22:31] <Kakadu> бял
[13:22:42] <Kakadu> реально нельзя NULL передавать
[13:22:44] <Kakadu> я кран
[13:22:46] <f[x]> Kakadu: https://github.com/Kakadu/lablqt/commit/891d97f11e887fc6b67108a2a42843509e37e6b4#commitcomment-699549
[13:22:46] <Kakadu> днище
[13:23:51] <Kakadu> почему?
[13:23:54] <Kakadu> f[x]: ?
[13:24:16] <Kakadu> ну да фэйл
[13:29:13] <ermine> Kakadu: может и правда юзать qml, если он позволяет строго специфицировать возможные значения переменных?
[13:30:33] <f[x]> правильно! если не удаётся закончить начатое, то лучше начать ещё что-нибудь. сам так делаю постоянно :)
[13:30:33] <Kakadu> просто я не умею на нём клепать гуй чтобы сделать proof-of-concept
[13:32:52] <Kakadu> f[x]: https://github.com/Kakadu/lablqt/commit/c53a25d595a12d8c36f4180157300b7362474bb7
[13:33:16] <Kakadu> отлично, мы поняли что сейчас не работает
[13:34:36] <ermine> моск
[13:36:29] <Kakadu> можно пуллиться и наслаждаться http://paste.in.ua/3281/raw/
[13:37:01] ermine пульнула, скомпилила, и оно улеглось в кору
[13:37:12] <Kakadu> а подкорой ты что понимаешь?
[13:38:17] <ermine> а там нормальный абстрактный тэг?
[13:38:31] <ermine> это вариант самой первой коры в этом вашем lablqt
[13:38:47] <ermine> абстрактный тэг самого QApplication
[13:39:03] <Kakadu> там он не абстрактный
[13:39:16] <Kakadu> я 100% уверен что эта абстрактность ни при чем
[13:43:48] <Kakadu> ermine: но теперь там они тоже абстрактные и ничегго не поменялось
[13:44:00] <ermine> ну давай копай лапкой песочек
[13:44:09] <ermine> а у меня тут тоже своя песочница ждет меня
[13:45:25] <Kakadu> f[x]: http://paste.in.ua/3282/ мне нужны телепатические способности твои
[13:45:57] Kakadu чувствует колебания Силы
[13:46:09] <f[x]> корни регистрировал?
[13:46:31] <f[x]> отключи gc и посмотри упадёт или нет
[13:46:37] <Kakadu> считаю что да
[13:47:19] <f[x]> поставь minor_heap очень большой и отключи компактинг (и включи дебажный gc вывод чтобы видеть если gc сработает)
[13:47:43] f[x] вообще сейчас занят
[13:47:44] <f[x]> потом
[13:48:27] <ermine> да проще воткнуть культурную абстрактность везде и сразу
[13:50:24] ermine пошла делать свои кейпрессы
[14:05:49] <Kakadu> сделал export OCAMLRUNPARAM=s=1000000000,v=0x1ff
одна фигня
[14:06:23] <f[x]> gc не включался?
[14:06:42] <f[x]> значит бага простая - где-то левый указатель
[14:06:44] <Kakadu> сообщения об этом не было
[14:06:48] bobry вышел(а) из комнаты
[14:07:01] <Kakadu> я начинаю ненавидеть С+
[14:07:04] <Kakadu> +
[14:08:36] <f[x]> лучше нежно любить и с++ ответит взаимностью :)
[14:10:21] <Kakadu> я правильно понимаю что после #0  0x000000000040a56e in caml_send0 ()
стектрейс обрывается не потому что дальше ничего не работает, а потому что дальше в камло заглянуть нельзя?
[14:10:23] <ermine> -pedantic или как там
[14:13:58] <Kakadu> ermine: в  g++ pedantic просто включает ворнинги...
[14:14:01] <Kakadu> или ты про чт?
[14:14:06] <Kakadu> про что*
[14:15:10] <ermine> про него
[14:15:31] <ermine> а вообще лучше абстракщину довести до упора
[14:15:47] <ermine> оно не только из-за gc, но и из-за однородности кода полезно
[14:16:10] <Kakadu> я думаю что в начале надо сделать чтоб работало
[14:17:04] <ermine> а я вот при поиске баги полирую каждый сучок до зеркального блеска, пока бага не найдется
[14:32:33] <gds> ermine: правильно делаешь.  взаимосвязи в коде могут быть сильно сложнее, чем кажется на первый взгляд.
[14:40:33] <ermine> этот метод применяется и в том случае, когда просто не знаешь, что делать дальше
[14:46:17] <gds> то есть, когда нет цели, или когда не знаешь, как точно дойти до цели?  первое порицаю, второе одобряю.
[14:47:18] <gds> кстати, http://okmij.org/ftp/rss.xml
[14:48:42] <gds> у меня там 3 непрочитанных поста лежат, а руки не доходят толком.  и вот это надо прочитать -- http://research.microsoft.com/pubs/155638/msr-tr-2011-117.pdf -- ибо мы изобрели почти подобное (только не так сильно формализованное), следовательно, надо знать, как у нормальных людей делается.
а ещё хочется и отдохнуть/потупить.
чо ж делать...
[14:48:49] <ermine> а что там?
[14:49:06] <gds> в файле rss.xml -- угадай.
[14:49:20] <gds> ну, точнее, по данному урлу, но пофиг.
[14:50:00] <gds> resident set size, наверное.
[15:03:36] <f[x]> xml over ftp
[15:06:39] <gds> ну, если было tcp/ip over dns, уже ничего не страшно.
[15:12:12] <ermine> Kakadu: полируешь сучки?
[15:12:23] <ermine> или cexre
[15:12:30] <ermine> или сучку
[15:14:27] <Kakadu> ermine: дополировался что падать стало ещё раньше чем было
[15:15:27] <ermine> Kakadu: это хороший результат
[15:16:19] <ermine> Kakadu: а я вижу в корке все тот же fromlocal8bit
[15:16:46] <Kakadu> ничерта он не хороший
[15:19:39] <ermine> там еще как минимум один кривой тэг остался в camlobj = (value)...
[15:19:48] <ermine> пополируй эту штуку лучше
[15:26:50] <Kakadu> ermine: там так и должно быть
[15:38:12] <Kakadu> такое ощущение что каст из камлевого абстрактного типа в С++ работает не так
[15:45:04] <ermine> Kakadu: а ты точно не путаешь свои *_val и Val_*?
[15:48:32] <Kakadu> я поменял по сравнению с твоим вариантом
[15:48:38] <ermine> и наверное Data_custom и Field
[15:50:15] Kakadu медитирует над http://paste.in.ua/3283/raw/
[16:22:21] <Kakadu> ermine: скажи веское слово о http://paste.in.ua/3283/raw/
[16:24:47] <f[x]> Kakadu: кто тебе сказал что так можно делать?
[16:25:28] <Kakadu> я по аналогиии с mltls
[16:25:31] <ermine> ужос
[16:25:37] <ermine> (*int *))
[16:26:05] <ermine> Kakadu: а там еще вроде кастомерные структуры
[16:26:08] <ermine> у меня
[16:26:27] <f[x]> в mltls нет такого
[16:26:36] <f[x]> если ты пишешь в Field то и доставай по Field
[16:26:39] <Kakadu> f[x]: https://github.com/ermine/mltls/blob/master/mltls_stub.c
[16:26:47] <f[x]> если пишешь в data_custom то и доставая через custom
[16:26:51] <f[x]> а ты смешиваешь
[16:28:18] <ermine> Kakadu: почитай ту главу в камлевом мануале
[16:28:50] <ermine> не сдохнешь от этого занятия
[18:20:15] Typhon вышел(а) из комнаты
[18:48:45] ftrvxmtrx вошёл(а) в комнату
[18:52:07] ygrek вошёл(а) в комнату
[18:54:23] ftrvxmtrx вышел(а) из комнаты
[18:54:42] ftrvxmtrx вошёл(а) в комнату
[18:54:50] ftrvxmtrx вышел(а) из комнаты
[20:38:47] shaggie вышел(а) из комнаты
[20:39:17] <ermine> о, новости в лаблкути
[20:39:19] <ermine> ща заценим
[20:39:32] <ermine> кора!
[20:40:25] <ermine> новая!
[20:40:27] <ermine> в camlobj
[20:41:01] <Kakadu> я извлек истину из мануала
[20:41:43] <ermine> Kakadu: поздравляю с прогрессом!
[20:41:57] <Kakadu> тьфу
[20:42:03] <Kakadu> я хотел написать что не извлек
[20:42:46] <ermine> а почему тогда кора сместилась в другое место?
[20:43:38] <ermine> 54          printf("qobject's classname = %s\n", o->metaObject()->className() );
[20:44:03] <ermine> это реально немерянно круто!
[20:45:39] <Kakadu> потому что я прикрутил твои asbtract тэги
[20:45:57] <ermine> очевидно что в камло ушло и из камла пришло разные указатели или ушло в камло не всё
[20:45:58] <Kakadu> и сейчас у меня из камла в ис кастуется через жопу
[20:46:13] <Kakadu> си*
[20:46:32] <Kakadu> у меня такое ощущение что ты наворотила что-то невменяемое в mltls
[20:47:42] <ermine> не
[20:48:13] <ermine> я там думала заюзать кастомные структуры для абстрактных типов, чтобы использовать свой финализатор, но забила
[20:50:47] <ermine> Kakadu: в твоем случае надо Field(v, 0), а не Data_custom
[20:52:19] <ermine> а вообще я уже частично утеряла навык работы с этой частью биндингов
[20:52:31] <ermine> надо было писать в вики
[20:54:44] <ermine> а то, что принтф падает, может означать, что в камло передается субкласс, а не класс, а в этом субклассе своя ссылка на класс
[20:55:42] <ermine> еще вдобавок надо различать, где ссылка, а где кусок памяти
[20:55:47] <Kakadu> я знаю почему принты падает
[20:56:35] <ermine> а как пофиксть - тоже?
[20:56:47] ermine проверит через полчасика
[20:57:25] <Kakadu> ermine: может тупо писать
#define QKeyEvent_val(v)          (QKeyEvent*)      Field(v,0)
?
[20:58:47] <Kakadu> да. походу так
[20:59:31] <Kakadu> и мы вернулись к старому стектрейсу
[21:00:25] ermine тоскливо подумала о судьбе целого проекта lablqt, если там два месяца путем проб и корок угадывают правильность сочетания латиницы для кода
[21:03:41] f[x] eagerly points at https://github.com/camlunity/kamlo_wiki/blob/master/bindings.md
[21:04:32] <Kakadu> там сплошной сарказм
[21:05:05] <ermine> ново-старая кора детектед
[21:05:39] <Kakadu> ermine: #0  0x000000000040a41e in caml_send0 ()
?
[21:06:17] <f[x]> это не сарказм, это суровая правда
[21:06:40] <ermine> 0x000000080167d0b9 in QString::fromLocal8Bit ()
   from /usr/local/lib/qt4/libQtCore.so.4
[21:06:49] <f[x]> Kakadu: дебажишь крэш -> минимизируй
[21:07:04] <f[x]> бери сгенеренный код и вырезай из него куски пока не станет понятно где бага
[21:07:16] <f[x]> крэш то детерминированный - фигня делов
[21:11:20] <ermine> Kakadu: ты можешь применить тот же хитрый принтф везде где падает
[21:12:17] <ermine> а по этой коре видно что падает в exec()
[21:12:45] <ermine> то бишь value app кривой
[21:13:14] <Kakadu> ermine: у тебя другая кора
[21:13:30] <Kakadu> она падает по нажатию любой клавиши
[21:13:52] <ermine> Kakadu: ну рандомно может падать в области кривого value app, где успело утечь
[21:14:32] <Kakadu> я тебе говорю что после нажатия любой кнопки падает
[21:15:18] <ermine> а я еще ничо не нажимаю
[21:15:22] Typhon вошёл(а) в комнату
[21:15:33] <ermine> у меня окошко и не рисуется, если оно вообще должно рисоваться
[21:16:07] <Kakadu> запулься из нужной бранчи
[21:16:25] <ermine> и падает стабильно в одном и  том же месте - в начале запуска exec()
[21:16:56] <Kakadu> а трейс есть?
[21:16:58] <ermine> какой бранчи?
[21:17:02] <Kakadu> new2
[21:17:17] <ermine> ну да
[21:17:58] <ermine> трейс ровно тот же, с которым мы начали компилять во фре
[21:18:44] <ermine> #0  0x000000080167d0b9 in QString::fromLocal8Bit ()
   from /usr/local/lib/qt4/libQtCore.so.4
#1  0x000000080172d0bc in QCoreApplication::arguments ()
   from /usr/local/lib/qt4/libQtCore.so.4
#2  0x0000000800bb511a in sm_performSaveYourself ()
   from /usr/local/lib/qt4/libQtGui.so.4
#3  0x0000000800bb5b77 in sm_saveYourselfCallback ()
   from /usr/local/lib/qt4/libQtGui.so.4
[21:18:52] <ermine> первые четыре
[21:20:16] <Kakadu> я такого ни разу у себя ни в чате не видел
[21:20:54] <Kakadu> ааа
[21:21:37] <Kakadu> let app = create_app [|  "1";"2";"3";"4";"5";"6";"7" |];;
сделай в main.ml
[21:22:40] <ermine> два аргумента?
[21:23:08] <ermine> а, не, массив
[21:24:45] <ermine> Kakadu: у тебя падает не из-за аргументов, скорее всего
[21:25:50] <Kakadu> ermine: поправка: у _тебя_ падает
[21:25:58] <Kakadu> у меня другой креш
[21:26:31] <ermine> ну тогда у меня
[21:26:40] <ermine> у нас падает не из-за аргументов
[21:27:13] <Kakadu> а ты помнишь ту хрень со strlen?
[21:27:14] <ermine> Kakadu: у тебя кора стабильная?
[21:27:43] <ermine> Kakadu: ага, а что?
[21:27:45] <Kakadu> что ты под этим понимаешь?
[21:27:51] <Kakadu> под стабильной корой
[21:28:14] <ermine> кривые указатели
[21:28:18] <Kakadu> аргументы лучат хрень со strlen
[21:28:27] <ermine> strlen тоже получает указатель в качестве аргумента
[21:28:45] ermine насмешливо улыбается
[21:28:52] <Kakadu> конкретно лечат хрень с аргументами -O5
[21:29:10] <Kakadu> мне помогло, теперь я могу запускать без аргументов
[21:29:30] <ermine> у меня не лечит
[21:30:05] <ermine> Kakadu: а ты app суешь культурно в абстрактный тэг?
[21:30:13] <ermine> и field того
[21:30:25] <Kakadu> да
[21:30:59] <ermine> а там по ходу не делается субклассирования?
[21:33:20] <Kakadu> непонятно что значит "походу"
[21:34:28] <ermine> такого слова нет в русском языке
[21:34:55] <Kakadu> сам я наследую QWidget_twin от QWidget
[21:35:08] <Kakadu> QWidget extends QObject, QPaintDevice
[21:35:49] <Kakadu> QApplication extendes QCoreApplication extendes QObject
[21:37:13] <ermine> ну смотря что это значит
[21:37:28] <ermine> и что такое указатель на qapplication, это там маллок или чо?
[21:37:42] <Kakadu> new
[21:38:07] <Kakadu> видимо я не понимаю вопроса
[21:38:30] <ermine> понимаешь
[21:39:44] <ermine> Kakadu: давай попробуй финт ушами - caml_alloc какой-то там, где можно указать размер памяти, и запихать туда весь qapplication и посмотреть, не будет ли падать
[21:40:21] <ermine> если размер хз, можно sizeof(qapplication * n)
[21:40:38] <ermine> где n - сколько щас памяти не жалко
[21:42:28] <Kakadu> это вместо caml_alloc_small?
[21:44:01] <ermine> да, конкретно для qapp
[21:44:37] <ermine> а с Field - почти что все так же, надо посмотреть указатели, я лох в них
[21:45:15] <ermine> как-то там
[21:45:30] <ermine> вообще уже все смутно помню и лень смотреть куда-либо еще
[21:45:48] <Kakadu> ну я тупо заменил место для аллока qapp
[21:46:22] <Kakadu> http://www.paste.in.ua/3285/
[21:46:33] <ermine> падает?
[21:46:38] <Kakadu> у меня также
[21:46:42] <Kakadu> у тебя хз
[21:46:46] <Kakadu> у нас разные креши
[21:47:14] <ermine> если запушишь - отвечу
[21:47:59] <ermine> шота гитхуб в последнее время медленно реагирует на пуллинг
[21:48:44] <Kakadu> запушил
[21:48:44] <ermine> ы?
[21:49:08] <ermine> падает
[21:50:04] <ermine> идентично
[21:50:15] <Kakadu> мдя
[21:50:46] <gds> йоу!  народ, я вот тут подумал -- а не сделать ли биндинг к qt?  как считаете, идея годная?  какие подводные камни?
[21:51:37] <Kakadu> gds: лучше сразу к qml
[21:51:57] <Kakadu> я даже немного понял как оно должно выглядеть
[21:51:57] komar вышел(а) из комнаты
[21:52:47] komar вошёл(а) в комнату
[21:53:07] <ermine> gds: мало секса в этой жизни?
[21:53:16] <Kakadu> там даже stateless объекты будут
[21:53:27] <Kakadu> ermine: это хорошо что мало
[21:53:50] <Kakadu> вот человек, который подсадил меня на линукс стал семейным и в инете не появляется (
[21:53:59] <gds> ermine: вообще да, но в данный момент нет.
[21:55:32] <ermine> gds: тогда подключайся к lablqt и трахайся :)
[21:55:46] <ermine> может под винду тоже будет падать
[21:55:52] komar вышел(а) из комнаты
[21:56:37] <ermine> Kakadu: у меня почти нет версий пчу оно у меня падает, только кривые указатели, ****&**&*** типа того
[21:56:37] komar вошёл(а) в комнату
[21:57:03] <ermine> а может еще надо CAMLprim обвесить все функции
[21:57:20] <Kakadu> нет, на линуксе оно пустое
[21:57:41] <ermine> а как проверить чему оно равно?
[21:58:00] <Kakadu> g++ -CC -E
[21:58:29] ermine добавила camlprim к exec
[22:00:42] <ermine> падаль падает
[22:00:49] <ermine> с двумя камлпримами
[22:01:03] <Kakadu> камлприм нужен на венде
[22:01:40] <ermine> ну вставляй, полируй сучку пока падает
[22:02:05] <ermine> а винда кстати как известно списана с фрибсд
[22:02:13] <gds> ermine: я вот не знаю.  Сейчас конкретно -- мне надо завершить Одну Большую Шнягу в кадастре.  Но, видя наплевательское отношение Kakadu к качеству кода и к билд/конфигуре-системам, я даже не знаю, что делать.  Наверное, стоило бы отревьюить код и указать на потенциальные кизяки?  Ведь оно не просто так падает, куча биндингов же работает.  Нельзя думать, что они работают из-за валшэбства, которое б-жьей благодатью распространяется только на избранные биндинги.  Моей "жизненной энергии" сейчас мало, но и на эти мохнаткострадания смотреть -- не поверишь, но ой как тяжело.
Kakadu: и да, CAMLprim нужен всегда и везде, потому что "только на венде" -- это тупая отмазка.  Ты abi всех систем изучил?  Точно?
[22:03:06] <ermine> Kakadu: давай везде втыкай камлприм
[22:03:29] <Kakadu> я уже везеде воткнул абстракты и нечерта не помоглло
[22:05:08] <Kakadu> добавил
[22:05:11] <Kakadu> одна фигня
[22:05:14] <Kakadu> ЧИТД
[22:05:26] <ermine> лавай втыкай!
[22:05:33] <gds> ну, значит, на других платформах не будет падать, если добавил.
[22:05:38] ermine выдергивает перо из Kakadu
[22:06:21] ermine вспоминает как выглядят попугаи ара - красивые птички, перьев дофига
[22:08:30] <ermine> беспонтяк
[22:08:42] <ermine> хоть пиши биндинг сама
[22:09:03] Kakadu когда придумывал ник перепутал какаду с кем-то ещё
[22:10:41] <ermine> я еще встречала, что не знают, что такое индиго
[22:11:04] <Kakadu> я такого цвета в реале ни разу не видел
[22:11:12] <Kakadu> и ещё я хз что такоецвет электрик
[22:11:57] <ermine> индиго - не только синий цвет, но еще и мелкая птичка
[22:13:02] <ermine> gds: а ты уже скомпилил inher у себя на линуксе и нашел БАГУ?
[22:13:47] <gds> ermine: подожду вендового релиза, хехехе
[22:14:20] <gds> а так -- пока нет.
расскажите, падает только то, что внутри inher/ ?
[22:15:19] <Kakadu> gds: так как я не знаю как наладить работу inher, я не знаю какой код порождать, чтобы наследование работало
[22:15:27] <gds> понел.
[22:16:10] <gds> Kakadu:
printf("inside A constructor, this = %x\n", this);
на эту строчку не ругается ли компилятор, типа, this это указатель, а требуется int/long/void* ?
[22:16:38] <Kakadu> ругается если включить много ворнингов
[22:17:14] <ermine> Kakadu: в app есть строковое поле, которое можно в принфе попечатать?
[22:17:35] <gds> компилятор может оптимизировать.  Прошу, добавь туда явное приведение типа к нужному.  Вроде даже есть %p для void* -- чего бы нет?
Мы сейчас ловим Неведомую Ё Х.  Давайте ловить по всем правилам.
[22:17:51] <Kakadu>    printf("qobject's classname = %s\n", o->metaObject()->className() );
[22:17:57] <gds> или в unsigned long long, например.
[22:18:17] <Kakadu> ermine: ^^
[22:19:00] <gds> Kakadu: пофиксишь этот момент?  Понятно, не в нём дело, но проще сделать "как надо", чтобы исключить баги, о времени на которые придётся потом долго сожалеть.
[22:19:43] <gds> Kakadu:
> A* a = (A*) obj;
прошу таки, сделай везде custom objects.
[22:20:17] <Kakadu> gds: > A* a = (A*) obj;
ты это где взял?
[22:20:35] <gds> это я из https://github.com/Kakadu/lablqt/blob/master/inher/A.cpp взял.
[22:20:46] <Kakadu> new2 бранча
[22:20:46] <ermine> Kakadu: печатает перед app->exec
[22:21:15] <ermine> Kakadu: теперь надо вручную еще чонить попечатать, например аргументы
[22:21:20] <gds> Kakadu: https://github.com/Kakadu/lablqt/tree/new2/inher -- правильный урл?
[22:21:28] <ermine> сохраненные в app
[22:21:44] <Kakadu> gds: да
[22:24:03] <gds> > camlobj = (value)the_caml_object;
это точно нормально?  Если да, то почему?
[22:24:13] <gds> я в режиме "ищу баг", если чо.
[22:24:30] <gds> > %x\n", camlobj);
опять же.
[22:25:09] ermine с надеждой смотрит на светило конфы
[22:25:13] <gds> кстати, знаете ли вы, сколько багов я нашёл тупыми при.бками к коду?  оооо.  я ещё и на "энтерпрайз" работал почти 8 лет.
[22:25:55] <gds> и там эти баги ловились очень просто.  смотришь на функцию, видишь "эээ, чото кривое, не?  а ну-ка тут поглядим на передаваемые значения...  оппа!"
[22:26:22] ermine готова компилять до посинения
[22:26:57] <gds> ermine: светило -- это y=f[x], а я -- так, хня.
[22:27:07] <Kakadu> gds: > camlobj = (value)the_caml_object;
ИМХО, да. свойства QObject хранятся как QVariant и там самое близкое что есть к value это long long
[22:28:20] <gds> Kakadu: какой-то баг с strlen -- это в /inher/ ?
[22:28:55] <ermine> при разборе пропертей
[22:29:22] <ermine> а пропертей тут вроде нет
[22:29:55] <ermine> gds: ты вообще скомпилил, и оно упало где-то?
[22:30:30] <Kakadu> gds: про strlen может быть и есть в inher, но я точно знаю иное место,
[22:30:40] <Kakadu> как повезет
[22:30:41] <gds> ermine: я же лох, я сначала в исходники смотрю.  как посмотрю -- и компилить буду.
[22:30:55] <Kakadu> ermine: пропети там есть
[22:31:14] <gds> Kakadu: "new QWidget_twin(_arg0)" -- он создаёт камловские значения?
[22:31:41] <ermine> Kakadu: а ты можешь мне наладить принтилку аргументов app?
[22:32:10] <ermine> Kakadu: вторая строчка в моем трейсе
[22:34:04] <Kakadu> gds: именно этот кусок кода создает С++ный класс из AA.h. Никаких камловских классов он не создает
[22:37:47] <Kakadu> ermine: в какой момент ты хочешь их печатать?
[22:38:19] <ermine> сразу перед app->exec()
[22:40:38] <gds> а мне одному этот кусок кода кажется слегка эклектичным?  :
  char **copy = new char*[argc];
  for (int i = 0; i < argc; i++) {
    int l = string_length(Field(argv,i));
    copy[i] = strcpy (new char[l+1], String_val(Field(argv,i)));
  }
[22:41:43] <gds> > _ans = caml_alloc(5000, Abstract_tag);
почему/откуда 5000?
[22:41:46] <ermine> gds: а как иначе в с++?
[22:42:03] <gds> ermine: конструкторами копировать строки, или это не модно?
[22:42:13] <gds> я не знаю, я так, погулять вышел
[22:42:27] <Kakadu> gds: 1е это капипаст с жака
[22:42:43] <Kakadu> второе --- потому что меня ermine просила протестить
[22:42:53] <ermine> gds: я пробовала тупо a = "abc", не канает :)
[22:44:11] <gds> ermine: это плюсеки, там вроде и не должно канать.  Вообще, народ, вы смотрите внимательно.  Я вам сейчас нарисую.  Сишечька: malloc, free, strdup.  Плюсеки: new, delete, конструктор копирования.
Я, как киви, летаю как говно, но всё же.
[22:44:43] <gds> то есть, либо new, либо strcpy.  как-то так.
[22:44:47] <ermine> Kakadu: последнее что оно печатает
showing QWidget_twin = 0x803b68f70
[22:44:54] <ermine> а где аргументы? :)
[22:45:36] <gds> учитывая, что я говно в плюсах, это мнение -- тупое, не утверждает про причину, но, хотя бы, сужает пространство поиска.
[22:46:43] ermine заправилась клопиным ядом ака кока-кола
[22:47:07] <gds> ermine: ортофосфорная.
[22:47:12] <ermine> а может у нас просто разные версии gcc
[22:47:40] <gds> точнее, не так.
ermine ортофосфорная.
[22:47:55] <ermine> но меня потрясает стабильность корок, и их чистота
[22:47:59] <Kakadu> что-то у меня аргументы не печатаются
[22:48:06] <Kakadu> пультесь
[22:48:14] <ermine> ша
[22:48:15] <Kakadu> может код Жака я скопипастил плохо
[22:48:18] <Kakadu> ?!
[22:48:40] <ermine> РАБОТАЕТ
[22:48:58] <Kakadu> кто?
[22:49:41] <ermine> оно окошко показало, я кнопку нажала, оно закрылось и ушло в кору
[22:49:50] <Kakadu> да, у меня также
[22:50:10] <ermine> preparing before app.exec(). arguments are:
end of arguments list
inside QWidget_twin::keyPressedEvent, camlobj = 34424747008, this=0x803b68f70
tag of meth is 247
calling callback of meth = 34424747656
Bus error: 10 (core dumped)
[22:50:32] <ermine> но я вообще первый раз увидела окошко на фре
[22:50:36] <gds> э, у вас там какие-то ошибки автобуса!  я так не играю.
[22:51:08] <Kakadu> http://paste.in.ua/3286/ ?
[22:51:45] <ermine> #0  0x0000000000409bfe in caml_send0 ()
[22:51:48] <ermine> аштойта?
[22:52:09] <gds> Kakadu: "in caml_send0 ()" -- это вроде тот случай, когда камлообъект крив?
[22:52:10] <Kakadu> я хз очень сильно
[22:52:24] <Kakadu> gds: я хз
[22:52:38] <ermine> видимо аргументы улетучивались
[22:52:47] <gds> Kakadu: вроде это исключали/подтверждали прямым вызовом, не?
[22:53:14] <Kakadu> gds: я вызывал прямой вызов с NULL, что походу нельзя
[22:53:25] <Kakadu> значит надо сконструировать свой QKeyEvent
[22:53:57] <gds> те вещи, которые я указал (особенно про new+strcpy) -- лучше поправить, иначе ональный плюсовый ад вылезет рано или поздно.  Поэтому, учитывая хрупкость положения, считаю пока не очень нужным смотреть дальше в исходники.
[22:54:46] <gds> ну кто бы мене в кадастром помог, ну людишечььки...  :[
[22:57:50] <ermine> gds: а ты пиши попроще и понятнее :)
[22:58:09] ermine стесняется свой непонятный парсер показывать
[22:59:36] <ermine> а вообще это круто - впервые увидеть окошко кути на фре после двух месяцев напряженной работы Kakadu над этим
[23:01:42] <gds> ermine: проще vs удобнее для использования.  пока как-то так.  но, так как пользователь пока один, приходится подстраиваться под него.  под себя.  а там -- что он захочет, то и придётся сделать.  хнык хнык :[[[
[23:02:02] <Kakadu> gds: запушил вызов метода напрямую из камла. вроде работает
[23:04:05] ermine тестит
[23:04:30] <ermine> все так же, результат не ухудшился
[23:05:19] <gds> "
эээх!  Код, код, говнокод
Фендер стратокастер!
И камлом я срать могу,
И плюсами мастер!
"
[23:05:51] <gds> Kakadu: это не к текущим изменениям, я их пока не смотрел.  Так, просто.
[23:06:03] <ermine> #0  0x0000000000409d2e in caml_send0 ()
#1  0x000000000040a148 in camlClasses__method_keyPressEvent_1117 ()
[23:07:40] <Kakadu> дадада
[23:08:11] <ermine> Kakadu: а у тебя такая кора?
[23:09:37] komar вышел(а) из комнаты
[23:10:05] komar вошёл(а) в комнату
[23:10:06] komar вышел(а) из комнаты
[23:12:01] komar вошёл(а) в комнату
[23:13:23] <Kakadu> креш такой же
[23:13:49] <ermine> ну видимо теперь кончились различия в версиях gcc
[23:14:37] ermine пожалуй не будет сама писать биндинг к qt
[23:32:14] komar вышел(а) из комнаты: Replaced by new connection
[23:32:14] komar вошёл(а) в комнату
[23:35:42] komar вышел(а) из комнаты
[23:36:01] komar вошёл(а) в комнату
[23:53:37] ermine вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!