faq
flatforty
contribute
subscribe
configure
search
rdf
main
parent
thread
|
What Smoke is (Re: shameless cheerleading.)
by David Faure on Tuesday 17/Sep/2002, @12:17
|
Smoke is a wrapper around Qt (later: KDE), which sort of indexes everything in Qt. All classes, all methods, with all arguments, etc. are put into cross-referencing arrays (for fast lookups). So smokeqt is a meta-definition of qt, where one can read (and call) the whole Qt API by simply reading a few arrays.
The main purpose of Smoke is to make it easy to write bindings from scripting languages to Qt and KDE - with an emphasis on performance.
At the moment it's only used by PerlQt, but feel free to look into it for developing your next generation language bindings ;)
Note: most of the design of Smoke is from Ashley Winters, the PerlQt guy.
I only helped generating the arrays, hacking kalyptus for that. So... in case of further questions on smoke, better ask on the kde-perl@kde.org mailing-list (which is where the PerlQt development happens). |
|
|
The Fine Print: The following comments
are owned by whomever posted them.
( Reply )
|
Re: What Smoke is (Re: shameless cheerleading.)
by Ashley Winters on Tuesday 17/Sep/2002, @12:37
|
David is right on the money. In fact, Smoke contains two different types of information.
First, it has a wrapper around every function in every class -- ala. SIP for PyQt. Static languages (Java, C#, etc) can use that part of PerlQt just like they would use SIP.
In addition to that, SMOKE contains meta-information... a sort of reflective introspection of the Qt library allowing queries of what functions are available and their arguments and return-types. The PerlQt binding takes full advantage of that information by providing do-what-I-mean function calling and automagic type coercion and multimethod dispatch. It also helps me make up nonsensical buzzwords to make me look smart.
Scripting languages can take advantage of that added information to provide neato stuff. Neato stuff is the best.
In conclusion (my writing teacher loves when I use that), SMOKE is the best thing since libc. Thank you. Please send your checks to me, since I'm homeless and can't work on PerlQt except to respond to e-mails from the local library. Feel free to Cc me on your Smoke questions to the PerlQt mailing-list if you're patient enough to wait a week for my response. Sadly, my Yahoo account would croak if I subscribed to the PerlQt mailing-list but only checked it once a week.
Sorry to dump it all on you Germain, but you've done a great job. Congratulations!
|
[
Reply To This | View ]
|
Re: What Smoke is (Re: shameless cheerleading.)
by Adam Treat on Tuesday 17/Sep/2002, @16:24
|
Wow! Looks like you guys have done some *amazing* work with SMOKE and PerlQt. Congratulations!
Regarding the usefullness of smoke for the C# bindings... I'm not sure this is the way to go. We are in the midst of a major refactor of Qt# with the goal to replace libqtc altogether. We've written a custom parser in C# that takes the Qt headers and outputs an xml representation of them. We will then feed this xml into our generator. We are going to replace libqtc with libqtsharp which will contain all the constructors for the QObjects and then we'll call libqt directly by mangling our function names. The idea is to reduce our dependencies and tailor our glue code to meet the specific needs of the CLR.
Anyways, Nice Work: Ashley, David, Everyone
Adam Treat
|
[
Reply To This | View ]
|
|
The Fine Print: The previous
comments are owned by whomever posted them.
( Reply )
|
|