Re: [Chicken-users] Qt egg - understanding it
Sorry I haven't been following this since I was just in the middle of moving. A few notes. Which Qt egg are people referring to? There's Felix's original and then there are my extensions to it. The extensions add slots and signals with arguments, fairly complete DBus support and some basic networking, enough to write simple things that use HTTP, as well as some other minor things. Concentrating on just the GUI bits seems like a nice idea at first and it's what I tried to do. I ported the old dbus egg to v4 and attempted to use it with Qt. It all becomes a bit of a mess unless you're ok with polling, and since I was on a phone I definitely was not. Adding in DBus support took about 1 day of effort, so it was pretty cheap. Given that this was really easy I don't see how the other APIs would be much worse, and so I'm no worried about this. I too would like to see smoke bindings but I definitely don't have the time. If someone wants to work with me and put in the bulk of the effort, I can provide guidance. Keep in mind though, smoke does not seem very straightforward and there would be quite a bit of work involved in setting it up for chicken. Some of the bindings seem to involve a lot of code: http://websvn.kde.org/branches/KDE/4.5/kdebindings/ The other major question about Smoke is, how much does it need to change when Qt and KDE change? Right now with our light bindings many Qt changes won't affect us but if the Smoke bindings need to be updated with every Qt point release then we're just going to have amazing but constantly broken bindings. Another reservation is that Smoke is part of KDE and at least on some devices getting it installed may not be trivial, like say on the N900 or the Kindle (you can write code for the Kindle in chicken with Qt, almost the same toolchain as for the n900). At least for me this would be a deal-breaker but I don't know enough about Smoke to tell if this is an issue. QListWidget support should be really straightforward to add. If you're using the new egg you can do it all in base-qt.scm as I've modified the build system to generate a cpp file from it. Writing C wrappers for every function gets really tedious in a hurry. Also, remember that you never have to construct the widget, the ui designer does that for you, although you will have to construct QListWidgetItem. This is basically identical to how the QVariantList stuff is set up. Andrei On Thu, Aug 26, 2010 at 09:36, Felix wrote: > From: Martin DeMello > Subject: Re: [Chicken-users] Qt egg - understanding it > Date: Wed, 25 Aug 2010 21:05:55 +0530 > >> Also, as others have noted, I would love to help with the Qt egg; I >> just don't know enough about Qt or FFI bindings to C++. I can happily >> contribute gruntwork once someone else has pointed the way, though :) > > Many thanks for the offer, Martin, I'll gladly accept it. > > > cheers, > felix > > ___ > Chicken-users mailing list > Chicken-users@nongnu.org > http://lists.nongnu.org/mailman/listinfo/chicken-users > ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg - understanding it
From: Martin DeMello Subject: Re: [Chicken-users] Qt egg - understanding it Date: Wed, 25 Aug 2010 21:05:55 +0530 > Also, as others have noted, I would love to help with the Qt egg; I > just don't know enough about Qt or FFI bindings to C++. I can happily > contribute gruntwork once someone else has pointed the way, though :) Many thanks for the offer, Martin, I'll gladly accept it. cheers, felix ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg - understanding it
Yes, having the Qt egg concentrate on GUI support seems like the best way to me too. If I manage to get some free time next week, I'll have a proper try at putting in QListWidget support, since it seems like reasonably low-hanging fruit and would help me get the hang of the code to some extent. It's definitely nice to see the sudden surge of interest in the Qt egg - there really aren't enough options for writing native apps using Qt. martin On Thu, Aug 26, 2010 at 12:29 AM, Arthur Maciel wrote: > Martin, indeed Smoke seems to do what it is proposed to, but Chicken team is > at an unfavorable moment for it: there are few people with a good > knowledge+time score to explore that kind of solution. > > I thought about setting the Qt egg to give the maximum of GUI support, > leaving other functionalities to other eggs. For this, direct implementing > each of GUI widgets seems to be the best way. However, one of the great > advantages of Qt is to integrate many non-GUI functionalities into GUI > (DBUS/IPC, networking,databases, XML processing support, etc.). With this in > mind I imagine the only practical solution would be to build the giant > wrapper or invest on porting Smoke. > > Let's wait for Felix and Andrei to have their time, even in order to point > us a direction on where we can help. Until then I believe what we can do is > exactly what you have done: to list what needs we expect the egg to support. > If those resume to strict GUI stuff, we can dedicate our learning effort to > extend the multiple GUI widgets after the guys set the coordinates. > > Regards, > Arthur > > 2010/8/25 Martin DeMello >> >> On Wed, Aug 25, 2010 at 5:05 PM, Felix >> wrote: >> > >> > Parsing the headerfiles is not that easy - there is a lot of magic >> > in there and complex macros. You also would end up with a huge pile >> > of wrapper code. There appear to be ways to invoke object-methods >> > dynamically, though. But as I said repeatedly: I need some time >> > to look into it. >> >> Another approach would be to try to bind to smoke - there are Ruby and >> C# bindings to act as an example, though when I asked Andrei about it >> he said smoke was complex and poorly documented. I'm coming around to >> his pov, that adding widgets in the order that people feel the need >> for them would get us more bang for the buck. >> >> Also, as others have noted, I would love to help with the Qt egg; I >> just don't know enough about Qt or FFI bindings to C++. I can happily >> contribute gruntwork once someone else has pointed the way, though :) >> >> As a personal priority, I'd like to have bindings for keystroke >> events, QListWidgetItem and the whole QGraphicsView/QGraphicsScene >> framework (the latter might be more of a pipe dream at this point :)) >> I tried looking at the development egg, but couldn't figure out how to >> add a new widget type, or whether I could just manipulate it as a >> QWidget. >> >> martin > > ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg - understanding it
Martin, indeed Smoke seems to do what it is proposed to, but Chicken team is at an unfavorable moment for it: there are few people with a good knowledge+time score to explore that kind of solution. I thought about setting the Qt egg to give the maximum of GUI support, leaving other functionalities to other eggs. For this, direct implementing each of GUI widgets seems to be the best way. However, one of the great advantages of Qt is to integrate many non-GUI functionalities into GUI (DBUS/IPC, networking,databases, XML processing support, etc.). With this in mind I imagine the only practical solution would be to build the giant wrapper or invest on porting Smoke. Let's wait for Felix and Andrei to have their time, even in order to point us a direction on where we can help. Until then I believe what we can do is exactly what you have done: to list what needs we expect the egg to support. If those resume to strict GUI stuff, we can dedicate our learning effort to extend the multiple GUI widgets after the guys set the coordinates. Regards, Arthur 2010/8/25 Martin DeMello > On Wed, Aug 25, 2010 at 5:05 PM, Felix > wrote: > > > > Parsing the headerfiles is not that easy - there is a lot of magic > > in there and complex macros. You also would end up with a huge pile > > of wrapper code. There appear to be ways to invoke object-methods > > dynamically, though. But as I said repeatedly: I need some time > > to look into it. > > Another approach would be to try to bind to smoke - there are Ruby and > C# bindings to act as an example, though when I asked Andrei about it > he said smoke was complex and poorly documented. I'm coming around to > his pov, that adding widgets in the order that people feel the need > for them would get us more bang for the buck. > > Also, as others have noted, I would love to help with the Qt egg; I > just don't know enough about Qt or FFI bindings to C++. I can happily > contribute gruntwork once someone else has pointed the way, though :) > > As a personal priority, I'd like to have bindings for keystroke > events, QListWidgetItem and the whole QGraphicsView/QGraphicsScene > framework (the latter might be more of a pipe dream at this point :)) > I tried looking at the development egg, but couldn't figure out how to > add a new widget type, or whether I could just manipulate it as a > QWidget. > > martin > ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg - understanding it
On Wed, Aug 25, 2010 at 5:05 PM, Felix wrote: > > Parsing the headerfiles is not that easy - there is a lot of magic > in there and complex macros. You also would end up with a huge pile > of wrapper code. There appear to be ways to invoke object-methods > dynamically, though. But as I said repeatedly: I need some time > to look into it. Another approach would be to try to bind to smoke - there are Ruby and C# bindings to act as an example, though when I asked Andrei about it he said smoke was complex and poorly documented. I'm coming around to his pov, that adding widgets in the order that people feel the need for them would get us more bang for the buck. Also, as others have noted, I would love to help with the Qt egg; I just don't know enough about Qt or FFI bindings to C++. I can happily contribute gruntwork once someone else has pointed the way, though :) As a personal priority, I'd like to have bindings for keystroke events, QListWidgetItem and the whole QGraphicsView/QGraphicsScene framework (the latter might be more of a pipe dream at this point :)) I tried looking at the development egg, but couldn't figure out how to add a new widget type, or whether I could just manipulate it as a QWidget. martin ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg - understanding it
From: "Sean D'Epagnier" Subject: Re: [Chicken-users] Qt egg - understanding it Date: Tue, 24 Aug 2010 22:55:36 -0700 > I would be very interested in this egg if it were dynamically > generated. Wouldn't this be possible by parsing Qt header files and > generating scheme code to provide the appropriate functions? > Parsing the headerfiles is not that easy - there is a lot of magic in there and complex macros. You also would end up with a huge pile of wrapper code. There appear to be ways to invoke object-methods dynamically, though. But as I said repeatedly: I need some time to look into it. cheers, felix ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg - understanding it
From: Arthur Maciel Subject: Re: [Chicken-users] Qt egg - understanding it Date: Tue, 24 Aug 2010 23:30:59 -0300 > Hum... to understand it a little more: why protobj instead of TinyCLOS or > coops? It's simple and leightweight. And coops didn't exist when the qt egg was written. > PS.: Tell me if I'm being boring about intense questioning. > Hey, you're welcome to ask. cheers, felix ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg - understanding it
On Tue, Aug 24, 2010 at 11:30:59PM -0300, Arthur Maciel wrote: > Hum... to understand it a little more: why protobj instead of TinyCLOS or > coops? Probably because coops didn't exist when it was written and TinyCLOS has been broken ever since Chicken 4 was released IIUC. > Is there any advantage of that or it was for the ease of use? Coops might be the sane choice now we have it. I don't know if that exists now for coops, but in Chicken 3 there was an automatic C++ to TinyCLOS class conversion. This might be used to automate some of the stuff you've been wondering about. But then again, I'm just shooting from the hip because I have absolutely no clue about C++. Cheers, Peter -- http://sjamaan.ath.cx -- "The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it can be an aesthetic experience much like composing poetry or music." -- Donald Knuth ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg - understanding it
I would be very interested in this egg if it were dynamically generated. Wouldn't this be possible by parsing Qt header files and generating scheme code to provide the appropriate functions? Sean On 8/24/10, Arthur Maciel wrote: > Hum... to understand it a little more: why protobj instead of TinyCLOS or > coops? > Is there any advantage of that or it was for the ease of use? > > Thanks again, > Arthur > > PS.: Tell me if I'm being boring about intense questioning. > > 2010/8/24 Felix > >> From: Arthur Maciel >> Subject: Re: [Chicken-users] Qt egg - understanding it >> Date: Tue, 24 Aug 2010 14:04:17 -0300 >> >> > Dear Felix, can I access this devel Qt egg from a devel branch? >> >> Sure, you can grab it like this: >> >> svn co >> http://chicken.kitten-technologies.co.uk/svn/release/4/qt/branches/0xab >> >> > >> > I really don't have much expertise with FFI, but I believe I can >> > copy/paste/adapt code to support other widgets. >> >> You are free to mess with it to your liking of course, but since I >> have to wait for the contributor to finish and document his >> enhancements and because I have to test it myself, and because I'm >> totally drowning in stuff to do and because I have a cold and am >> dead-tired, I might not accept any patches in the near future. >> >> > >> > I really consider we could rename (or create new names to maintain >> > compatibility with previous versions) procedures relating them to >> widgets. >> > >> > Like qt:add and qt:insert: their names do not mention to which widgets >> they >> > relate to. It is easy to check on wiki now, but if the egg expands, it >> will >> > be pretty difficult to establish this relation. >> >> I basically agree. On the other hand, these are generic operations at >> least over a set of widget classes. >> >> > Indeed I prefer to directly relate Scheme procedures to C++ widget >> > procedures. This would promote more flexibility to the programmer. If he >> or >> > she needs a procedure to abstract some utilities (like qt:insert that >> copies >> > the pointer of a QTextEdit, gets its cursor, and insert code at it), it >> > would be implemented on Scheme code, not on C++ one. Probably I'm >> > missing >> a >> > lot of gaps between one language and the other, but that's my humble >> > opinion. >> >> IIRC, (and this is funny, because I've never tried the new qt egg and >> never found the time to look at it more deeply, so I'm talking about >> something that I actually don't have a clue of) the new qt egg allows >> invoking arbitrary widget methods, so there is no need to create tons >> of wrappers. >> >> Thanks for your interest. Please give it a try and have fun hacking >> it. We need good support for a decent GUI toolkit. Feedback is >> certainly appreciated, regardless of how slow or fast we can make use >> of it. >> >> >> cheers, >> felix >> > ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg - understanding it
Hum... to understand it a little more: why protobj instead of TinyCLOS or coops? Is there any advantage of that or it was for the ease of use? Thanks again, Arthur PS.: Tell me if I'm being boring about intense questioning. 2010/8/24 Felix > From: Arthur Maciel > Subject: Re: [Chicken-users] Qt egg - understanding it > Date: Tue, 24 Aug 2010 14:04:17 -0300 > > > Dear Felix, can I access this devel Qt egg from a devel branch? > > Sure, you can grab it like this: > > svn co > http://chicken.kitten-technologies.co.uk/svn/release/4/qt/branches/0xab > > > > > I really don't have much expertise with FFI, but I believe I can > > copy/paste/adapt code to support other widgets. > > You are free to mess with it to your liking of course, but since I > have to wait for the contributor to finish and document his > enhancements and because I have to test it myself, and because I'm > totally drowning in stuff to do and because I have a cold and am > dead-tired, I might not accept any patches in the near future. > > > > > I really consider we could rename (or create new names to maintain > > compatibility with previous versions) procedures relating them to > widgets. > > > > Like qt:add and qt:insert: their names do not mention to which widgets > they > > relate to. It is easy to check on wiki now, but if the egg expands, it > will > > be pretty difficult to establish this relation. > > I basically agree. On the other hand, these are generic operations at > least over a set of widget classes. > > > Indeed I prefer to directly relate Scheme procedures to C++ widget > > procedures. This would promote more flexibility to the programmer. If he > or > > she needs a procedure to abstract some utilities (like qt:insert that > copies > > the pointer of a QTextEdit, gets its cursor, and insert code at it), it > > would be implemented on Scheme code, not on C++ one. Probably I'm missing > a > > lot of gaps between one language and the other, but that's my humble > > opinion. > > IIRC, (and this is funny, because I've never tried the new qt egg and > never found the time to look at it more deeply, so I'm talking about > something that I actually don't have a clue of) the new qt egg allows > invoking arbitrary widget methods, so there is no need to create tons > of wrappers. > > Thanks for your interest. Please give it a try and have fun hacking > it. We need good support for a decent GUI toolkit. Feedback is > certainly appreciated, regardless of how slow or fast we can make use > of it. > > > cheers, > felix > ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg - understanding it
From: Arthur Maciel Subject: Re: [Chicken-users] Qt egg - understanding it Date: Tue, 24 Aug 2010 14:04:17 -0300 > Dear Felix, can I access this devel Qt egg from a devel branch? Sure, you can grab it like this: svn co http://chicken.kitten-technologies.co.uk/svn/release/4/qt/branches/0xab > > I really don't have much expertise with FFI, but I believe I can > copy/paste/adapt code to support other widgets. You are free to mess with it to your liking of course, but since I have to wait for the contributor to finish and document his enhancements and because I have to test it myself, and because I'm totally drowning in stuff to do and because I have a cold and am dead-tired, I might not accept any patches in the near future. > > I really consider we could rename (or create new names to maintain > compatibility with previous versions) procedures relating them to widgets. > > Like qt:add and qt:insert: their names do not mention to which widgets they > relate to. It is easy to check on wiki now, but if the egg expands, it will > be pretty difficult to establish this relation. I basically agree. On the other hand, these are generic operations at least over a set of widget classes. > Indeed I prefer to directly relate Scheme procedures to C++ widget > procedures. This would promote more flexibility to the programmer. If he or > she needs a procedure to abstract some utilities (like qt:insert that copies > the pointer of a QTextEdit, gets its cursor, and insert code at it), it > would be implemented on Scheme code, not on C++ one. Probably I'm missing a > lot of gaps between one language and the other, but that's my humble > opinion. IIRC, (and this is funny, because I've never tried the new qt egg and never found the time to look at it more deeply, so I'm talking about something that I actually don't have a clue of) the new qt egg allows invoking arbitrary widget methods, so there is no need to create tons of wrappers. Thanks for your interest. Please give it a try and have fun hacking it. We need good support for a decent GUI toolkit. Feedback is certainly appreciated, regardless of how slow or fast we can make use of it. cheers, felix ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg - understanding it
Dear Felix, can I access this devel Qt egg from a devel branch? I really don't have much expertise with FFI, but I believe I can copy/paste/adapt code to support other widgets. I really consider we could rename (or create new names to maintain compatibility with previous versions) procedures relating them to widgets. Like qt:add and qt:insert: their names do not mention to which widgets they relate to. It is easy to check on wiki now, but if the egg expands, it will be pretty difficult to establish this relation. I suggest long names for it: qt:list-widget-add-item, qt:text-edit-insert-text, etc. It is intuitive for me, but for GUI programming I really prefer long and clear names. If you don't like it I suggest an abbreviation table like (LW = list widget, TE = text edit), but this sounds like Windows programming to me. Indeed I prefer to directly relate Scheme procedures to C++ widget procedures. This would promote more flexibility to the programmer. If he or she needs a procedure to abstract some utilities (like qt:insert that copies the pointer of a QTextEdit, gets its cursor, and insert code at it), it would be implemented on Scheme code, not on C++ one. Probably I'm missing a lot of gaps between one language and the other, but that's my humble opinion. Thanks for the enlightenment! Arthur 2010/8/24 Felix > From: Arthur Maciel > Subject: [Chicken-users] Qt egg - understanding it > Date: Mon, 23 Aug 2010 23:15:04 -0300 > > > > > Isn't it possible to directly map every procedure/slot of a Qt widget > into > > an equivalent Scheme code? > > Unfortunately not without generating a huge pile of wrapper code (see > "Smoke", which does that for PyQt). The qt egg we currently have takes > advantage of the fact that properties can be dynamically changed, but > (currently) only explicitly wrapped methods can be invoked. Some > widget-classes are available directly for convenience, though, but the > selection is (currently) more or less arbitrary. > > > cheers, > felix > ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg - some examples does not work here
From: Arthur Maciel Subject: Re: [Chicken-users] Qt egg - some examples does not work here Date: Mon, 23 Aug 2010 21:12:38 -0300 > Oops... running 'csi -s -:d test.scm' gives me: > > (...) > [debug] entering toplevel toplevel... > [debug] forcing finalizers... > Error: "/var/tmp/kdecache-arthur" is owned by uid 1000 instead of uid 0. > # > # > # > # > # > > Error: unbound variable: 0.01 > > Call history: > > (print "closed") > (exit) > (qt:connect app "lastWindowClosed()" (qt:receiver > (lambda () (print "closed") (exit > (qt:receiver (lambda () (print "closed") (exit))) > (define t (qt:timer 0.01)) > (##core#set! t (qt:timer 0.01)) > (qt:timer 0.01) > (qt:timer 0.01) <-- > > > It seems it is not accepting floating point numbers as a valid ones (I say > this because if I change (qt:timer 0.001) to (qt:timer 1), it complains > about (gl:Vertex2f -0.5 -0.5) as -0.5 as an unbound variable). > I'm confused. Is this some charset or locale issue? Something must be heavily broken here. Can you send me the file ("test.scm")? cheers, felix ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg - understanding it
From: Arthur Maciel Subject: [Chicken-users] Qt egg - understanding it Date: Mon, 23 Aug 2010 23:15:04 -0300 > > Isn't it possible to directly map every procedure/slot of a Qt widget into > an equivalent Scheme code? Unfortunately not without generating a huge pile of wrapper code (see "Smoke", which does that for PyQt). The qt egg we currently have takes advantage of the fact that properties can be dynamically changed, but (currently) only explicitly wrapped methods can be invoked. Some widget-classes are available directly for convenience, though, but the selection is (currently) more or less arbitrary. cheers, felix ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg - some examples does not work here
From: Arthur Maciel Subject: Re: [Chicken-users] Qt egg - some examples does not work here Date: Mon, 23 Aug 2010 21:04:48 -0300 > Mario and Felix, I've just searched on google about the error and many > people say it occurs when they upgrade to Ubuntu 10.04. > > Although in my case no IBus problem is mentioned, installing ibus and > running it as daemon fixed the problem. > Really weird, but it works perfectly now. Good news. > > BTW, any idea to support Qt printing functionalities for the egg? I think this was requested before. I have to check, but the problem is (if I remember correctly), that we don't really have access to the graphics API, so there are no graphics that could be redirected to a QPrinter instance (I think it works that way, but I haven't done much recently with it). Do you want to print a Window with OpenGL graphics? Perhaps that is possible, I'll try it, anyway. There is also a new version of the qt egg pending, which provides much improved access to the Qt meta-object model, but it will take a while until it can be released. cheers, felix ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg - some examples does not work here
Oops... running 'csi -s -:d test.scm' gives me: (...) [debug] entering toplevel toplevel... [debug] forcing finalizers... Error: "/var/tmp/kdecache-arthur" is owned by uid 1000 instead of uid 0. # # # # # Error: unbound variable: 0.01 Call history: (print "closed") (exit) (qt:connect app "lastWindowClosed()" (qt:receiver (lambda () (print "closed") (exit (qt:receiver (lambda () (print "closed") (exit))) (define t (qt:timer 0.01)) (##core#set! t (qt:timer 0.01)) (qt:timer 0.01) (qt:timer 0.01) <-- It seems it is not accepting floating point numbers as a valid ones (I say this because if I change (qt:timer 0.001) to (qt:timer 1), it complains about (gl:Vertex2f -0.5 -0.5) as -0.5 as an unbound variable). What am I missing? Thanks, Arthur 2010/8/23 Arthur Maciel > Mario and Felix, I've just searched on google about the error and many > people say it occurs when they upgrade to Ubuntu 10.04. > > Although in my case no IBus problem is mentioned, installing ibus and > running it as daemon fixed the problem. > Really weird, but it works perfectly now. > > BTW, any idea to support Qt printing functionalities for the egg? > > Thanks! > Arthur > > > > 2010/8/23 Mario Domenech Goulart > > Hi Arthur >> >> On Sun, 22 Aug 2010 16:53:43 -0300 Arthur Maciel >> wrote: >> >> > I`ve perfectly installed Qt egg (using qt-sdk package from Kubuntu as >> > the Qt4 source) and hello-world.scm example runs smoothly. >> > >> > But when I try to run editor.scm or egg-browser.scm eggs I get: >> > >> > QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed:File >> or >> > directory not found >> > Segmentation fault >> > >> > What might be the problem? >> >> I cannot reproduce the problem here (Ubuntu 9.10, chicken 4.5.0). >> >> A google query for "QInotifyFileSystemWatcherEngine::addPaths: >> inotify_add_watch failed:File" (without quotes) returns a lot of >> things. Maybe it's related to some system [mis]configuration. >> >> >> Best wishes. >> Mario >> -- >> http://parenteses.org/mario >> > > ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg - some examples does not work here
Mario and Felix, I've just searched on google about the error and many people say it occurs when they upgrade to Ubuntu 10.04. Although in my case no IBus problem is mentioned, installing ibus and running it as daemon fixed the problem. Really weird, but it works perfectly now. BTW, any idea to support Qt printing functionalities for the egg? Thanks! Arthur 2010/8/23 Mario Domenech Goulart > Hi Arthur > > On Sun, 22 Aug 2010 16:53:43 -0300 Arthur Maciel > wrote: > > > I`ve perfectly installed Qt egg (using qt-sdk package from Kubuntu as > > the Qt4 source) and hello-world.scm example runs smoothly. > > > > But when I try to run editor.scm or egg-browser.scm eggs I get: > > > > QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed:File > or > > directory not found > > Segmentation fault > > > > What might be the problem? > > I cannot reproduce the problem here (Ubuntu 9.10, chicken 4.5.0). > > A google query for "QInotifyFileSystemWatcherEngine::addPaths: > inotify_add_watch failed:File" (without quotes) returns a lot of > things. Maybe it's related to some system [mis]configuration. > > > Best wishes. > Mario > -- > http://parenteses.org/mario > ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg - some examples does not work here
Hi Arthur On Sun, 22 Aug 2010 16:53:43 -0300 Arthur Maciel wrote: > I`ve perfectly installed Qt egg (using qt-sdk package from Kubuntu as > the Qt4 source) and hello-world.scm example runs smoothly. > > But when I try to run editor.scm or egg-browser.scm eggs I get: > > QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed:File or > directory not found > Segmentation fault > > What might be the problem? I cannot reproduce the problem here (Ubuntu 9.10, chicken 4.5.0). A google query for "QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed:File" (without quotes) returns a lot of things. Maybe it's related to some system [mis]configuration. Best wishes. Mario -- http://parenteses.org/mario ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg - some examples does not work here
From: Arthur Maciel Subject: [Chicken-users] Qt egg - some examples does not work here Date: Sun, 22 Aug 2010 16:53:43 -0300 > Hi there! > > I`ve perfectly installed Qt egg (using qt-sdk package from Kubuntu as the > Qt4 source) and hello-world.scm example runs smoothly. > > But when I try to run editor.scm or egg-browser.scm eggs I get: > > QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed:File or > directory not found > Segmentation fault > > What might be the problem? I don't really know. Can you run the program with "-:d" (either pass it to csi or to your compiled example, in case you have compiled it)? Or better, is it possible to figure out what operation in the example program(s) triggers this runtime error? Does it happen when you open a file, or does it throw the segfault right after starting? cheers, felix ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] qt egg hello world example broken
From: Mario Domenech Goulart Subject: Re: [Chicken-users] qt egg hello world example broken Date: Wed, 07 Jul 2010 08:31:06 -0400 > Hi Felix > > On Wed, 07 Jul 2010 14:27:10 +0200 (CEST) Felix > wrote: > >> From: Mario Domenech Goulart >> Subject: Re: [Chicken-users] qt egg hello world example broken >> Date: Tue, 06 Jul 2010 17:00:01 -0400 >> >>> Thanks for reporting this. It's actually an issue with the wiki, which >>> renders Form as [class] Form. The same for >>> >> >> BTW, can someone give me a hint where those special tags are documented? > > There's something here: http://chicken.wiki.br/wiki-syntax-chicken. It > is linked from the wiki menu (Chicken-specific wiki syntax), right above > the search box. > Thanks! cheers, felix ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] qt egg hello world example broken
Hi Felix On Wed, 07 Jul 2010 14:27:10 +0200 (CEST) Felix wrote: > From: Mario Domenech Goulart > Subject: Re: [Chicken-users] qt egg hello world example broken > Date: Tue, 06 Jul 2010 17:00:01 -0400 > >> Thanks for reporting this. It's actually an issue with the wiki, which >> renders Form as [class] Form. The same for >> > > BTW, can someone give me a hint where those special tags are documented? There's something here: http://chicken.wiki.br/wiki-syntax-chicken. It is linked from the wiki menu (Chicken-specific wiki syntax), right above the search box. Best wishes. Mario -- http://parenteses.org/mario ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] qt egg hello world example broken
From: Mario Domenech Goulart Subject: Re: [Chicken-users] qt egg hello world example broken Date: Tue, 06 Jul 2010 17:00:01 -0400 > Hi Martin > > On Wed, 7 Jul 2010 02:21:50 +0530 Martin DeMello > wrote: > >> The qt egg example on http://chicken.wiki.br/eggref/4/qt doesn't work >> out of the box - Qt seems to want >> >> Form >> >> rather than >> >> [class] Form >> >> in the ui file, and likewise for all other such declarations. > > Thanks for reporting this. It's actually an issue with the wiki, which > renders Form as [class] Form. The same for > BTW, can someone give me a hint where those special tags are documented? cheers, felix ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] qt egg hello world example broken
From: Martin DeMello Subject: [Chicken-users] qt egg hello world example broken Date: Wed, 7 Jul 2010 02:21:50 +0530 > The qt egg example on http://chicken.wiki.br/eggref/4/qt doesn't work > out of the box - Qt seems to want > > Form > > rather than > > [class] Form > > in the ui file, and likewise for all other such declarations. > I'm afraid I can't quite follow. I can't see no "[class] Form" anywhere. cheers, felix ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] qt egg hello world example broken
Hi Martin On Wed, 7 Jul 2010 02:21:50 +0530 Martin DeMello wrote: > The qt egg example on http://chicken.wiki.br/eggref/4/qt doesn't work > out of the box - Qt seems to want > > Form > > rather than > > [class] Form > > in the ui file, and likewise for all other such declarations. Thanks for reporting this. It's actually an issue with the wiki, which renders Form as [class] Form. The same for I've fixed the example. Best wishes. Mario -- http://parenteses.org/mario ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg
On Tue, Dec 1, 2009 at 10:42 PM, Nicholas "Indy" Ray wrote: > While the code is in egg form, It isn't actually ment for general > consumption yet, If you are interested in trying it out, I can give > you an overview of how to use it. I'm interested! I've beaten my head against the qt egg before, before realising how minimal it was. And so far, the only really good Qt binding I've found is the Ruby one, which doesn't compile to native code. I'd love to see a good scheme/qt implementation. martin ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg
So, Mario, you believe it only provides the GUI stuff, right? (just to check) Regards, Arthur 2009/12/2 Mario Domenech Goulart > Hi > > On Tue, 1 Dec 2009 09:12:38 -0800 "Nicholas \"Indy\" Ray" < > arel...@gmail.com> wrote: > > > I was under the impression that the QT egg was more a demo, then an > > egg ment to be practical, and hence was *finished*. > > I'm not a Qt expert, but my impression is that when the documentation > for the Qt egg says it's supposed to be incomplete, one of the meanings > is that the egg tends to focus on the Qt features NOT provided by > chicken and any other egg. A bunch of Qt features are provided by > chicken itself or eggs, so, there's no reason to make bindings for those > features. > > Best wishes. > Mario > ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg
Hi On Tue, 1 Dec 2009 09:12:38 -0800 "Nicholas \"Indy\" Ray" wrote: > I was under the impression that the QT egg was more a demo, then an > egg ment to be practical, and hence was *finished*. I'm not a Qt expert, but my impression is that when the documentation for the Qt egg says it's supposed to be incomplete, one of the meanings is that the egg tends to focus on the Qt features NOT provided by chicken and any other egg. A bunch of Qt features are provided by chicken itself or eggs, so, there's no reason to make bindings for those features. Best wishes. Mario ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg
Hi therer, Nicholas. I really didn't think QT egg was a demo. As I'm kind of new to Scheme, could you give me an example with working code using your egg, please? I would like to see how would it be to use your bindings. Really thanks! Arthur 2009/12/1 Nicholas "Indy" Ray > I was under the impression that the QT egg was more a demo, then an > egg ment to be practical, and hence was *finished*. > > I myself would like QT bindings. Considering such I decided I'd start > writing some myself; My approach was two fold, first to generate a set > of macros that would generate proper bindings given S-expression that > declare the QT layout. Then, I was building a gcc plugin that will > generate those declarations by compiling the QT code base. > > If you'd like to see the code it is here: > http://github.com/Arelius/chicken-qt > > Currently the generator macros are mostly complete, I need to add > support for receiving messages in scheme code. After that, I still > need to do the declarations, but It's pretty simple to add a few of > your own to get the functionality required. > > While the code is in egg form, It isn't actually ment for general > consumption yet, If you are interested in trying it out, I can give > you an overview of how to use it. > > Indy > > 2009/11/29 Arthur Maciel : > > Hi! > > > > Felix, I would like to know which is your plan to support the various Qt > > functionalities (PDF, database, networking). You say on the wiki that it > is > > going to be incomplete to be lightweight. If you could point what you > intend > > to implement and what not I would really appreciate. > > > > Thanks, > > Arthur > > > > PS.: Unfortunately, I don't feel myself skilled enough to help extending > it. > > I hope I can be in the near future. > > > > ___ > > Chicken-users mailing list > > Chicken-users@nongnu.org > > http://lists.nongnu.org/mailman/listinfo/chicken-users > > > > > ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg
I was under the impression that the QT egg was more a demo, then an egg ment to be practical, and hence was *finished*. I myself would like QT bindings. Considering such I decided I'd start writing some myself; My approach was two fold, first to generate a set of macros that would generate proper bindings given S-expression that declare the QT layout. Then, I was building a gcc plugin that will generate those declarations by compiling the QT code base. If you'd like to see the code it is here: http://github.com/Arelius/chicken-qt Currently the generator macros are mostly complete, I need to add support for receiving messages in scheme code. After that, I still need to do the declarations, but It's pretty simple to add a few of your own to get the functionality required. While the code is in egg form, It isn't actually ment for general consumption yet, If you are interested in trying it out, I can give you an overview of how to use it. Indy 2009/11/29 Arthur Maciel : > Hi! > > Felix, I would like to know which is your plan to support the various Qt > functionalities (PDF, database, networking). You say on the wiki that it is > going to be incomplete to be lightweight. If you could point what you intend > to implement and what not I would really appreciate. > > Thanks, > Arthur > > PS.: Unfortunately, I don't feel myself skilled enough to help extending it. > I hope I can be in the near future. > > ___ > Chicken-users mailing list > Chicken-users@nongnu.org > http://lists.nongnu.org/mailman/listinfo/chicken-users > > ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg
On Sun, Nov 2, 2008 at 7:14 AM, Shawn Rutledge <[EMAIL PROTECTED]> wrote: > > 1) export QTDIR=/usr > 2) export QMAKESPEC=macx-g++ > (to get a Makefile rather than XCode project) > 3) tar zxvf qt.egg and modify the last line of qt.pro like this: > QT+=opengl xml > 4) chicken-setup > > Felix - I think maybe you don't need to depend on QTDIR at all; it's > probably OK to require that qmake be in the user's path. For anyone > who's doing Qt development, it would tend to be. There is not always > a top level Qt directory - in fact I consider that to be poor system > integration, which the Qt install process gives you by default when > you build it from source (installing _everything_ to > /usr/local/Trolltech does not conform to any system standard... > besides what are they going to do, change it to /usr/local/Nokia now? > But at least you can change it when you run configure.) When > installed via the gentoo ebuild, or when you install the Qt binary > package on MacOS, qmake is in /usr/bin, as it should be IMO. > Thanks, Shawn. I'll check this as soon as possible (which may take a while), perhaps I can improve the setup script to work better on mac. There is indeed some problem on OS X (as you note in your next mail), but I can't recall right now. I'll check that, too. cheers, felix ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg
On Sat, Nov 1, 2008 at 5:35 PM, Vincent Manis <[EMAIL PROTECTED]> wrote: > I neglected to thank Shawn for getting back to me on this! My apologies -- v No worries. I just finally got interested in checking out this egg while I was at Qt Developer Days. :-) ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg
On Sun, Nov 2, 2008 at 12:08 AM, Shawn Rutledge <[EMAIL PROTECTED]> wrote: > As for running it, there are some problems too I forgot to mention the default init.scm gives me this error: [mini][11:26:10 PM] ChickenQt.app/Contents/MacOS/ChickenQt QWidget: Must construct a QApplication before a QPaintDevice Abort trap ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg
As for running it, there are some problems too: [mini][11:48:58 PM] ChickenQt.app/Contents/MacOS/ChickenQt Error: unbound variable: qt The hello world app has (use qt utils), and asking for qt isn't necessary... so by taking it out I can get it to run. But if I try to run the egg-browser demo, after changing the (use... ) line to (require 'posix 'regex 'utils) I get this: [mini][11:54:43 PM] ChickenQt.app/Contents/MacOS/ChickenQt Error: unbound variable: <> Call history: [refresh] (map pathname-file (glob (make-pathname (repository-path) "*.setup-info"))) [refresh] (glob (make-pathname (repository-path) "*.setup-info")) [refresh] (make-pathname (repository-path) "*.setup-info") [refresh] (repository-path) [refresh] (qt:clear *list*) [refresh] (qt:clear *props*) [refresh] (for-each (cut qt:add *list* <>) eggs) [refresh] (cut qt:add *list* <>)<-- I assume you had some difficulty getting the qt egg to work like usual, i.e. be able to load it as a shared object? The app bundle approach could have its uses, but being able to mess around on the csi prompt would also be useful. BTW I think this egg is a great start in general. It runs fine on Linux. ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg
On Sat, Nov 1, 2008 at 5:32 PM, Vincent Manis <[EMAIL PROTECTED]> wrote: > On 2008-Nov-1, at 01:39, Shawn Rutledge wrote: >> Did you succeed yet? I just got around to trying this. qt.setup only >> uses QTDIR to find qmake, so you can set QTDIR to "/usr". But the >> next problem is that qmake generates an XCode project rather than a >> Makefile. > > Actually, I made no progress with it, as I put that project on the back > burner, and > if I do go back to it, I'm likely to do it on Linux rather than OSX. > However, it would > still be nice to have a recipe to give to everyone :-) I just got it to build: 1) export QTDIR=/usr 2) export QMAKESPEC=macx-g++ (to get a Makefile rather than XCode project) 3) tar zxvf qt.egg and modify the last line of qt.pro like this: QT+=opengl xml 4) chicken-setup Felix - I think maybe you don't need to depend on QTDIR at all; it's probably OK to require that qmake be in the user's path. For anyone who's doing Qt development, it would tend to be. There is not always a top level Qt directory - in fact I consider that to be poor system integration, which the Qt install process gives you by default when you build it from source (installing _everything_ to /usr/local/Trolltech does not conform to any system standard... besides what are they going to do, change it to /usr/local/Nokia now? But at least you can change it when you run configure.) When installed via the gentoo ebuild, or when you install the Qt binary package on MacOS, qmake is in /usr/bin, as it should be IMO. Adding "xml" fixed a bunch of linker errors. The Qt binaries came from here: ftp://ftp.trolltech.com/qt/source/qt-mac-opensource-4.4.3.dmg I'll make a note on the wiki about the QMAKESPEC. ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg
I neglected to thank Shawn for getting back to me on this! My apologies -- v ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg
On 2008-Nov-1, at 01:39, Shawn Rutledge wrote: Did you succeed yet? I just got around to trying this. qt.setup only uses QTDIR to find qmake, so you can set QTDIR to "/usr". But the next problem is that qmake generates an XCode project rather than a Makefile. Actually, I made no progress with it, as I put that project on the back burner, and if I do go back to it, I'm likely to do it on Linux rather than OSX. However, it would still be nice to have a recipe to give to everyone :-) -- v ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg
Did you succeed yet? I just got around to trying this. qt.setup only uses QTDIR to find qmake, so you can set QTDIR to "/usr". But the next problem is that qmake generates an XCode project rather than a Makefile. On Sat, Aug 23, 2008 at 8:09 AM, Vincent Manis <[EMAIL PROTECTED]> wrote: > Can someone walk me through the installation of the qt egg on OS X? I've > installed the > binary distribution from Trolltech's website (qt-mac-opensource-4.4.1.dmg). > My main problem > is figuring out what to set QTDIR to, as there doesn't seem to be a `Qt' > directory as such. > Any help would be appreciated. > > Thanks! -- v > > > ___ > Chicken-users mailing list > Chicken-users@nongnu.org > http://lists.nongnu.org/mailman/listinfo/chicken-users > ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: Re: [Chicken-users] Qt egg
Aug 24, 2008 12:34:42 AM, [EMAIL PROTECTED] wrote:>Hi,>>i don't know where exactly the mac-version places the qt-directory, but>it is certainly there. Did you try to issue a find?>>If not try to determine the location of the QtCore directory.>>$ find / -name QtCore -print>>The parent-directory of QtCore is QTDIR.>>Hth>>DavidDavid, thanks for getting back to me. I bet that's great advice on a Linux system, but on OS X it didn't in fact help. When I tried looking for QtCore, I found it in /Library/Frameworks/QtCore.framework/QtCore, (which is a link to /Library/Frameworks/QtCore.framework/Versions/4/QtCore) and also /Library/Frameworks/QtCore.framework/Versions/4/Headers/QtCore). Setting QTDIR to any of these fails, as it can't find qmake (which has been installed into /usr/bin, with a link to it in /Developer/Tools/Qt). So far, what I've discovered as candidates for `the qt directory' include * /Developer/Tools/Qt * a whole bunch of frameworks in /Library/Frameworks/Qt*.framework * examples in /Developer/Examples/Qt * documentation in /Developer/DocumentationA quick look at the egg shows that it includes QtGui, which is a header found in /Library/Frameworks/QtGui.framework/Versions/4/Headers/QtGui. I am now completely baffled as to what to set QTDIR to. Any advice would be greatly appreciated!-- v ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Fwd: Re: Re: [Chicken-users] Qt egg
My apologies if this is spam, but I sent this reply to David Krentzlin's kind advice on getting Qt to work earlier today. Apparently my ISP's webmail interface was being cranky. -- vAug 25, 2008 01:14:54 PM, [EMAIL PROTECTED] wrote:===Aug 24, 2008 12:34:42 AM, [EMAIL PROTECTED] wrote:>Hi,>>i don't know where exactly the mac-version places the qt-directory, but>it is certainly there. Did you try to issue a find?>>If not try to determine the location of the QtCore directory.>>$ find / -name QtCore -print>>The parent-directory of QtCore is QTDIR.>>Hth>>DavidDavid, thanks for getting back to me. I bet that's great advice on a Linux system, but on OS X it didn't in fact help. When I tried looking for QtCore, I found it in /Library/Frameworks/QtCore.framework/QtCore, (which is a link to /Library/Frameworks/QtCore.framework/Versions/4/QtCore) and also /Library/Frameworks/QtCore.framework/Versions/4/Headers/QtCore). Setting QTDIR to any of these fails, as it can't find qmake (which has been installed into /usr/bin, with a link to it in /Developer/Tools/Qt). So far, what I've discovered as candidates for `the qt directory' include * /Developer/Tools/Qt * a whole bunch of frameworks in /Library/Frameworks/Qt*.framework * examples in /Developer/Examples/Qt * documentation in /Developer/DocumentationA quick look at the egg shows that it includes QtGui, which is a header found in /Library/Frameworks/QtGui.framework/Versions/4/Headers/QtGui. I am now completely baffled as to what to set QTDIR to. Any advice would be greatly appreciated!-- v ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] Qt egg
Hi, i don't know where exactly the mac-version places the qt-directory, but it is certainly there. Did you try to issue a find? If not try to determine the location of the QtCore directory. $ find / -name QtCore -print The parent-directory of QtCore is QTDIR. Hth David Am Sat, 23 Aug 2008 08:09:19 -0700 schrieb Vincent Manis <[EMAIL PROTECTED]>: > Can someone walk me through the installation of the qt egg on OS X? > I've installed the > binary distribution from Trolltech's website (qt-mac- > opensource-4.4.1.dmg). My main problem > is figuring out what to set QTDIR to, as there doesn't seem to be a > `Qt' directory as such. > Any help would be appreciated. > > Thanks! -- v > > > ___ > Chicken-users mailing list > Chicken-users@nongnu.org > http://lists.nongnu.org/mailman/listinfo/chicken-users ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] qt-egg on windows
On 1/20/07, Brandon J. Van Every <[EMAIL PROTECTED]> wrote: Daniel Sadilek wrote: > > So, the build of the qt egg under windows does not work out of the > box. I would like to help with that but I am not skilled enough in > this whole qmake, egg building process to provide a fully working > patch that does not break the build on other systems :) You have mentioned "qmake" several times. Chicken doesn't use qmake, it uses CMake, and only to build Chicken itself. So I'm not understanding what you mean by "this whole qmake, egg building process." qmake just generates makefiles from a Qt project specification, but shares the general problem with all of Qt: it's quite helpful in the general case, but breaks down horribly when you have special needs (like compiling dynamically loaded shared libs, among other things). I've heard die-hard Qt/KDE hackers speak in contempt of qmake... To avoid figuring out all the necessary compile options, the qt.setup script invokes qmake and than does some fiddling to pick out the .so and install it as a dynamically loadable shared object (it is compiled as a normal dynamic library - which is for example not the same as a shared object on Mac OS X). cheers, felix ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] qt-egg on windows
On 1/20/07, Daniel Sadilek <[EMAIL PROTECTED]> wrote: I am wondering, why it is not linked with "-shared", because actually the TEMPLATE in qt.pro is set to "LIB". So, the build of the qt egg under windows does not work out of the box. I would like to help with that but I am not skilled enough in this whole qmake, egg building process to provide a fully working patch that does not break the build on other systems :) So here is all I figured out: Many thanks for this information! I will try to incorporate your input into the .setup script. Not using qmake would be nice, but I'm somewhat afraid that this might lose platform-specific options. The main reason for using qmake is that it takes care of platform- and configuration-specific options and doing everything by hand might end with a broken dll. Anyway, well done! cheers, felix ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] qt-egg on windows
You have mentioned "qmake" several times. Chicken doesn't use qmake, it uses CMake, and only to build Chicken itself. So I'm not understanding what you mean by "this whole qmake, egg building process." Qmake is used for the qt-egg build. ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] qt-egg on windows
On Fri, 19 Jan 2007 16:41:59 -0800 "Brandon J. Van Every" <[EMAIL PROTECTED]> wrote: > Daniel Sadilek wrote: > > > > So, the build of the qt egg under windows does not work out of the > > box. I would like to help with that but I am not skilled enough in > > this whole qmake, egg building process to provide a fully working > > patch that does not break the build on other systems :) > > You have mentioned "qmake" several times. Chicken doesn't use qmake, > it uses CMake, and only to build Chicken itself. So I'm not > understanding what you mean by "this whole qmake, egg building > process." qmake is a tool used by Qt: http://doc.trolltech.com/4.2/qmake-manual.html Best wishes, Mario ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] qt-egg on windows
Daniel Sadilek wrote: So, the build of the qt egg under windows does not work out of the box. I would like to help with that but I am not skilled enough in this whole qmake, egg building process to provide a fully working patch that does not break the build on other systems :) You have mentioned "qmake" several times. Chicken doesn't use qmake, it uses CMake, and only to build Chicken itself. So I'm not understanding what you mean by "this whole qmake, egg building process." Cheers, Brandon Van Every ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] qt-egg on windows
apparently CHICKEN tries to load the compiled DLL as source code. Maybe it doesn't contain the correct dynamic symbols to be loaded as an egg. Guessing into the blue I would say this is a linker problem. Hello, this was the right hint, thanks. The qt.dll was compiled as executable not as shared library. After running the linker command manually with "-shared" it works fine. The hello world example and the egg-browser are running great! I am wondering, why it is not linked with "-shared", because actually the TEMPLATE in qt.pro is set to "LIB". So, the build of the qt egg under windows does not work out of the box. I would like to help with that but I am not skilled enough in this whole qmake, egg building process to provide a fully working patch that does not break the build on other systems :) So here is all I figured out: qmake needs to be run with "-unix"; otherwise backslashes in the Makefile break the build. The dll-file is created in the release-subfolder of the egg-dir, so copying it to the egg-dir is necessary. I have made this with the following patch: == --- qt.egg-dir.orig/qt.setupWed Jan 3 13:24:39 2007 +++ qt.egg-dir/qt.setup Fri Jan 19 23:19:21 2007 @@ -2,11 +2,13 @@ (or (getenv "QTDIR") (error "please set the QTDIR environment variable") ) ) -(make (("Makefile" ("qt.pro") (run (,(make-pathname QTDIR "bin/qmake") qt.pro))) +(make (("Makefile" ("qt.pro") (run (,(make-pathname QTDIR "bin/qmake") -unix qt.pro))) ("qt.so" ("prototypes.h" "main.cpp" "qt-base.c" "Makefile") - (run (make)) - #+(not macosx) - (run (cp libqtb.so.1.0.0 qt.so))) + (run (make release)) + #+(and (not macosx) (not windows)) + (run (cp libqtb.so.1.0.0 qt.so)) + #+windows + (run (cp release/qtb.dll qt.dll))) ("qt-base.c" ("qt-base.scm" "prototypes.h") (run (csc -t qt-base.scm -O2 -d1 -X easyffi)) ) ) "qt.so") == The build does not find the Chicken includes and libraries automatically, so I added them to qt.pro: == --- qt.egg-dir.orig/qt.pro Fri Nov 3 08:06:28 2006 +++ qt.egg-dir/qt.pro Fri Jan 19 18:53:59 2007 @@ -9,6 +9,7 @@ TEMPLATE=lib TARGET=qtb } -unix:QMAKE_LFLAGS_DEBUG+=`csc -libs` -unix:QMAKE_CFLAGS_DEBUG+=-w `csc -cflags` QT+=opengl + +INCLUDEPATH=/c/programme/chicken/include +LIBS=-L/c/programme/chicken/lib -lchicken == A call of "chicken-setup qt" builds only in the debug-subfolder. As I wanted a release-version I called "make release-all" in the egg-dir. I just copied the linker command from the make-stdout-output, added "-shared" and ran it again. I had to add the Chicken-bin and QT-bin directories to the Windows PATH. This was just a quick'n'dirty solution. Much of the trouble seems to come from using qmake. Wouldn't it be possible to go without it? Best regards Daniel Sadilek ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] qt-egg on windows
Daniel Sadilek wrote: > [...] > I had to change some things in qt.setup and qt.pro, see below. After > these changes it compiled fine. But when using it, it breaks with a > strange error: > > -- > #;1> (use qt) > ; loading C:\Programme\Chicken\lib\chicken\1\qt.dll ... > Error: unbound variable: |MZ[...] Hello, apparently CHICKEN tries to load the compiled DLL as source code. Maybe it doesn't contain the correct dynamic symbols to be loaded as an egg. Guessing into the blue I would say this is a linker problem. cu, Thomas ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] qt-egg on windows
> I tried to compile the qt-egg on windows. I use the MinGW that comes > with QT 4.2.2 and MSYS 1.0.10. Did you use CMake or ./configure to build Chicken? Did you use the same MinGW to build Chicken as you used to build the QT egg? Just checking the basics. Hi, I used CMake to build Chicken and I built it with the same MinGW as I used for the qt-egg. Best regards Daniel Sadilek ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users
Re: [Chicken-users] qt-egg on windows
Daniel Sadilek wrote: Hello, I tried to compile the qt-egg on windows. I use the MinGW that comes with QT 4.2.2 and MSYS 1.0.10. Did you use CMake or ./configure to build Chicken? Did you use the same MinGW to build Chicken as you used to build the QT egg? Just checking the basics. Cheers, Brandon Van Every ___ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users