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

GMT+4
[00:22:47] ygrek вошёл(а) в комнату
[00:27:47] Kakadu вышел(а) из комнаты
[00:32:10] <ygrek> Kakadu:
> printf ("Fuck\n");
why so brutal?
[01:11:38] klapaucius вышел(а) из комнаты
[01:28:53] bobry вышел(а) из комнаты
[01:29:46] bobry вошёл(а) в комнату
[01:40:16] bobry вышел(а) из комнаты
[01:41:07] bobry вошёл(а) в комнату
[01:51:15] ygrek вышел(а) из комнаты
[02:21:21] bobry вышел(а) из комнаты
[02:22:02] bobry вошёл(а) в комнату
[02:35:09] bobry вышел(а) из комнаты
[02:36:01] bobry вошёл(а) в комнату
[03:37:00] letrec вошёл(а) в комнату
[04:40:35] letrec вышел(а) из комнаты
[06:01:27] bobry вышел(а) из комнаты
[06:17:33] bobry вошёл(а) в комнату
[08:34:57] Typhon вышел(а) из комнаты
[09:22:30] bobry вошёл(а) в комнату
[09:41:25] gds вошёл(а) в комнату
[09:51:12] bobry вышел(а) из комнаты
[10:40:20] ygrek вошёл(а) в комнату
[10:52:58] ermine вошёл(а) в комнату
[11:18:10] ygrek вышел(а) из комнаты
[12:13:13] klapaucius вошёл(а) в комнату
[12:14:01] Kakadu вошёл(а) в комнату
[12:15:28] <Kakadu> f[x]: потому что я не знал как ещё кратко сказать что всё плохо
[12:20:19] <f[x]> чоткая логика, чо
[12:26:02] <Kakadu> мне совсем херово от lablqt. Такое ощущение, что с наследованием сделать вообще никак нельзя
[12:42:08] <f[x]> Kakadu: а кому ща легко?
[12:42:33] <Kakadu> жизнь вообще полная лажа
[12:43:28] <f[x]> ну да
[12:43:34] <f[x]> новость что ли?
[12:46:34] <Kakadu> сказал бы что-то ободряющее лучше
[12:47:03] <gds> ну почему нельзя?  можно даже тупее и проще, чем я вчера предложил. в классе AA припихивать свойство "camlobj" в класс A, а потом, если этот объект будут возвращать из метода parent, брать именно его.  если такого свойства нет -- создавать камлообъект-обёртку через create_AA, привязывать его к qt'шному объекту через свойства и в следующий раз он не пересоздастся.
[12:47:38] <gds> то есть, есть смысл для любого qt-объекта делать зеркальный камловский объект, который возвращать из методов.
[12:48:33] <Kakadu> дык у меня сейчас АА есть потомок А, а не обертка
[12:48:48] <Kakadu> _наследник_, _подкласс_
[12:49:16] shaggie вошёл(а) в комнату
[12:49:46] <Kakadu> так что идея с камлооберткой совсем какая-то глупая
[12:50:29] <Kakadu> ну я могу ещё предположить,что мы сможем обернуть публичные методы как-то, но что делать с protected virtual void keyPressed(KeyEvent*) у меня нет идей
[12:50:41] <Kakadu> следователь перехватить нажатие кнопки никак
[12:50:53] <Kakadu> следовательно я получаю леща от ermine
[12:56:38] <gds> так.  A -- qt'шный объект.  AA -- его наследник, нужный для вызова методов камлообъекта.  камловский a -- класс, создающий AA.  (**)
предположим, a#parent : ... -> qobj
предположим даже, что этот qobj на самом деле тоже камлообъект, к которому мы, например, обращались ранее. (*)
в биндингах, реализующих a#parent в плюсах, делаем: 1. берём parent = cppobj->parent(), 2. берём parent->property("camlobj"), 3. возвращаем его как значение класса qobj.
(*) если ранее не обращались, алгоритм таков: 1. смотрим, чо за parent вообще (например, достаём его имя класса), 2. создаём камловский класс (qobj или какой-нибудь qwidget, смотря что за класс) поверх имеющегося класса -- то же самое, что при new a, но без вызова непосредственно new AA -- считаем, что плюсовый объект уже есть, 3. прописываем созданный камлокласс в cppobj->setProperty("camlobj"), 4. возвращаем этот камлокласс.
[12:58:56] <gds> то есть, для каждого qt'шного A, участвующего в камловызовах, создаётся AA и объект нужного камлокласса.
[12:59:44] <gds> > protected virtual void keyPressed(KeyEvent*)
оно как бы возвращает нажатую клавишу по указателю?  ну да, тут надо что-то типа idl, где этот параметр должен быть помечен [out].
[13:00:23] <gds> вообще, может, всё это надо было делать поверх camlidl?  там оно какие-то плюсовые объекты умело, даже что-то с виндовым COM делало.  хотя хз.
[13:15:30] <Kakadu> так, я сейчас должен это прочитать
[13:18:59] <Kakadu> прочитал\
[13:43:03] komar вышел(а) из комнаты: Replaced by new connection
[13:43:03] komar вошёл(а) в комнату
[14:37:53] <ermine> Kakadu: что там у тебя за матлогика?
[14:38:07] <ermine> Kakadu: в псе же работает
[14:40:31] <Kakadu> что в псе  работает?
[14:40:43] <Kakadu> пся на камле написана?
[14:41:01] <ermine> неа, но работает же там перехват кнопок
[14:41:17] <ermine> в горгоне кстати еще не победила до конца, грамматика отвлекает
[14:42:23] <Kakadu> чтобы сделать перехват кнопок надо уметь наследоваться...\
[14:44:21] <ermine> в lablgtk кстати тоже с наследованием, я пока еще не поняла, зачем коннектору к сигналу нужен аргумент виджет#obj
[14:58:19] <gds> я тут вяло пишу хреньку для lit.pro., и, в рамках удовлетворения потребности в публичном самолюбовании, хотел показать кусок кода.  вроде неплох по стилю: http://paste.in.ua/3208/ (что увидительно -- компилируется)
[14:59:58] <Typhon> ещё б запятые стояли там, где им положено :P
[15:01:00] <gds> на "положено" йенг наложено!  :]
[15:01:56] <gds> ( e1
)
( e1
, e2
)
( e1
, e2
, e3
)
удобно для редактирования, для выравнивания кода.  добавление компонента вызывает добавление строки тупо.
[15:11:33] <f[x]> ну да, по логике - эргономично, не не по-людски!
[15:20:55] <gds> да я вообще социопат!
[15:25:10] <klapaucius> Лучше так http://paste.in.ua/3210/ а то мониторы в наше суровое время очень уж узкие. Зато высокие-высокие!
[15:27:53] Kakadu думает что gds занимается какой-то ерундой
[15:29:14] <gds> klapaucius: да!  только ещё недоработочки есть, например, почему
{ current_path = resolve segs
}
всего на двух строках.  Но в продакшоне я это исправлю.  Благодарю за фидбэк.
[15:29:19] <gds> Kakadu: да!
[15:29:39] <Typhon> Kakadu: почему?
[15:29:53] <Kakadu> Typhon: непонятно зачем надо
[15:30:03] <Typhon> чтобы код был с документацией
[15:30:12] <Typhon> для того, чтобы обучающие штуки делать
[15:30:16] <Typhon> типа туториала по итератам
[15:30:32] <gds> и не только!  я нашёл ещё порядка 5 разумных применений.
[15:30:36] <Kakadu> раньше люди боролись чтобы процедуры были маленькие и что бы помещались на экран и их можно было охватывать взглядом, а тут gds старается писать по 1 токену на каждой строчке
[15:33:15] <gds> не по одному токену, а так, чтобы разные сущности, постоянно присутствующие в коде (контекст + результат обработки) разделялись глозами.
[15:33:24] <f[x]> oasis написан в похожем стиле - меня напрягает
[15:33:41] <gds> лучше перл и хаскель.
[15:33:53] <klapaucius> Раньше люди боролись за то, чтоб строка умещалась на перфокарту. А потом перфокарты исчезли и теперь просто борются просто за то, чтоб строки были короче и было их побольше - потому, что если оторваться от корней - все дерево погибнет. очевидно же.
[15:34:08] <f[x]> klapaucius: тоньше надо
[15:37:01] <Kakadu> klapaucius: я говорю про компании, которые проапгрейдив мониторы с 17 до >20 дюймов получили снижение рождаемости багов на солидное число процентов
[15:37:21] letrec вошёл(а) в комнату
[15:37:30] <Typhon> с чего вдруг?
[15:37:38] <Typhon> строка ж осталась равной 80 символам? %)
[15:37:45] <Typhon> или даже 79!
[15:37:54] <gds> 79 надо.  Иначе не тру.
[15:38:08] <klapaucius> Мониторы-то разворачиваются.
[15:38:10] <Kakadu> экран больше ёпрст
[15:38:15] <Kakadu> они же в гуе кодили
[15:38:40] <Kakadu> или вы меня троллите?
[15:38:43] <Kakadu> )
[15:39:41] <klapaucius> Можно открывать параллельно 5-6 файлов.
[15:39:55] <Typhon> вот такие на больших экранах понапишут строки по 180 символов, а 2 буфера в имаксе не откроешь!
[15:39:58] <klapaucius> Сразу сколько кода одновременно обозревается!
[15:43:10] <Kakadu> да ну вас
[18:29:32] Kakadu вышел(а) из комнаты
[19:14:17] Kakadu вошёл(а) в комнату
[19:24:35] ygrek вошёл(а) в комнату
[20:20:44] komar вышел(а) из комнаты
[20:35:24] komar вошёл(а) в комнату
[20:35:49] Typhon вышел(а) из комнаты
[21:15:05] letrec вышел(а) из комнаты
[21:34:33] ermine вышел(а) из комнаты
[21:49:45] shaggie вышел(а) из комнаты
[22:19:48] <Kakadu> что-то дока по camlidl гнилая какая-то
[22:35:26] <gds> Kakadu: ясное дело.  мне леройчег сказал "двигайте camlidl сами".  что я мог ответить ему?
[22:54:35] <Kakadu> я тут ещё подумал над тем что ты говорил днем
[22:55:58] <Kakadu> там будет маленькая проблема в том, что если мы переопределим в камле метод класса, а потом запустим этот объект в си и как-то получим его оттуда то никак не сможем определить (вроде бы) что это наш объект с переопределенным методом (хотя хз надо ли будет его таки на это проверять и вообще хз заработает ли это всё)
[22:59:59] <gds> Kakadu: в любом qt'шном A мы делаем AA, связанный с A, но имеющий камлообъект (который тоже связан с A).  Для определения того, "наш" ли это объект, я предложил срать объекту A через setProperty каким-либо свойством, например, "camlobj".  По этому свойству и определим, наш объект ли, или нужно создавать наш и прописывать его в свойства.
[23:02:07] <Kakadu> не совсем понятно 1) как АА связан с А?
2) > или нужно создавать наш и прописывать его в свойства.
какой наш объект ты будешь создавать на основе А?
[23:05:48] <gds> 1) при new QШтучка -- будет создаваться на сишной стороне объект класса AA с указателями на камлообъект, у которого указатели на A -- собственно, то, что сделано в /inher
2) в доках на qt я видел "имя класса" -- получается, только по нему можно определить, какой объект создавать.  Наверное, где-то надо сгенерить соответствия "имя класса" -> "конструктор камловского объекта этого класса на основании его сишного объекта".
[23:07:13] <Kakadu> а, я понял в чем коллизия наших обозначений
[23:07:29] <Kakadu> ок
[23:08:17] <gds> Kakadu: точно ок?  Я вот внезапно спатке захотел, поэтому, если нужен сегодня, давай дорешаем дело.
[23:08:37] <Kakadu> с этим ОК
[23:08:50] <Kakadu> просто у меня ещё сомнения как f[x] проперти будет присваивать
[23:10:00] <Kakadu> а не, всё, дочитал
[23:48:24] gds вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!