caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Eray Ozkural <erayo@cs.bilkent.edu.tr>
To: Stefano Zacchiroli <zack@cs.unibo.it>, OCaml <caml-list@inria.fr>
Subject: Re: [Caml-list] OCaml QT bindings
Date: Fri, 12 Jul 2002 20:30:39 +0300	[thread overview]
Message-ID: <200207122030.39591.erayo@cs.bilkent.edu.tr> (raw)
In-Reply-To: <20020712081055.GD756@cs.unibo.it>

On Friday 12 July 2002 11:10, Stefano Zacchiroli wrote:
> On Fri, Jul 12, 2002 at 04:41:36AM +0300, Eray Ozkural wrote:
> > > Ohhhh.. just imagine if GTK/Gnome/Gui stuff on RH linux
> > > were written in Ocaml .. it might actually work!
> >
> > You guys really need my ocaml bindings for Qt/KDE (assuming I finish
> > writing it....) ;)
>
> Yup!!! I've been wondering for such a binding for months .... (anyway
> the impressive work to build up one stops me from starting the work :-),
> could you tell us when you expect to have a working version?
>
> BTW, obviously if you need help, feel free to ask!

I think I will need help. The ocaml type system makes it very easy to get it 
right at the abstraction level but the mundane work of providing entry points 
for all Qt classes itself is not an easy task since you need a successful 
translator, or you will have to correct things by hand which is highly 
undesirable.

I'm right now at the stage of writing a C++ parser that will be sufficient for 
header files in KDE. The parser isn't finished yet, but I've based it on a 
grammar which targeted part of the ISO standard so when it's done I think it 
will be worthwhile.

Since I'm fond of parser combinators I'm writing the translator in Haskell 
language using Parsec library.

I've thought about what should be involved in the library and it seems at 
least the following will be necessary:

1) "C" bindings which will be entry points for constructor/destructor, member 
functions and selector/modifier functions for each member variable in each Qt 
class... This will abstract away C++ dispatch, inline, etc. Template 
functions will not be addressed. (But it will not be a problem to implement 
things like QStringList which inherit from template classes....)

2) A mapping of class inheritance and subtyping relations to ocaml classes. 
This should be relatively straightforward since ocaml type/class system 
covers a lot more ground than C++.

3) A mapping of parameter passing, and "new" / "delete" to ocaml. We're 
passing mostly plain pointers/references in Qt, but I think there are cases 
where this is not true. The object model would be taken akin to Java where 
each object is allocated on the heap to simplify this matter.

Optionally, I will see if I can come up with some ocaml code that will provide 
high level access to GUI code.

The help I can use now is: do you observe any difficulties with the approach I 
have roughly outlined? And are there any vital points that I seem to be 
missing?

Thanks,

-- 
Eray Ozkural (exa) <erayo@cs.bilkent.edu.tr>
Comp. Sci. Dept., Bilkent University, Ankara
www: http://www.cs.bilkent.edu.tr/~erayo  Malfunction: http://mp3.com/ariza
GPG public key fingerprint: 360C 852F 88B0 A745 F31B  EA0F 7C07 AE16 874D 539C

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


  reply	other threads:[~2002-07-12 17:36 UTC|newest]

Thread overview: 92+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-07-08 19:53 [Caml-list] productivity improvement Oleg
2002-07-08 20:14 ` Michael Vanier
2002-07-10 15:50   ` John Max Skaller
2002-07-10 18:56     ` Alessandro Baretta
2002-07-10 19:09       ` Jun P.FURUSE
2002-07-11 23:43         ` Pierre Weis
     [not found] ` <15657.61603.221054.289184@spike.artisan.com>
2002-07-09  4:43   ` [Caml-list] Universal Serializer (was: productivity improvement) Oleg
2002-07-09  7:56     ` Nicolas Cannasse
2002-07-09  7:59     ` Nicolas Cannasse
2002-07-10 16:06       ` John Max Skaller
2002-07-10 22:29         ` Michael Vanier
2002-07-11  8:13           ` Nicolas Cannasse
2002-07-12 12:41           ` John Max Skaller
2002-07-14 12:25             ` [Caml-list] Statically detecting arrays bound exceptions ?? (was: Universal Serializer) Berke Durak
2002-07-14 13:24               ` Alessandro Baretta
2002-07-15  8:23                 ` Xavier Leroy
2002-07-15  8:39                 ` Noel Welsh
2002-07-15 21:22                   ` Oleg
2002-07-15 22:44                     ` Michael Vanier
2002-07-16  6:43                     ` Florian Hars
2002-07-16 20:22               ` [Caml-list] " John Max Skaller
2002-07-16 20:36                 ` Johan Baltié
2002-07-16 20:55                   ` Hao-yang Wang
2002-07-17  8:25                   ` Noel Welsh
2002-07-12  1:41         ` [Caml-list] Universal Serializer (was: productivity improvement) Eray Ozkural
2002-07-12  8:10           ` [Caml-list] OCaml QT bindings Stefano Zacchiroli
2002-07-12 17:30             ` Eray Ozkural [this message]
2002-07-12 10:37         ` [Caml-list] Re: productivity improvement Oleg
2002-07-12 11:23           ` Markus Mottl
2002-07-12 11:34             ` Oleg
2002-07-12 11:43               ` Markus Mottl
2002-07-12 12:59                 ` Pierre Weis
2002-07-12 16:42                   ` Markus Mottl
2002-07-14 20:44                 ` Dave Berry
2002-07-14 22:13                   ` Markus Mottl
2002-07-15 16:43                     ` Alwyn Goodloe
2002-07-16 20:14                     ` Dave Berry
2002-07-17  3:21                       ` Eric Merritt
2002-07-15  9:39                   ` Alessandro Baretta
2002-10-15  8:38                   ` Eray Ozkural
2002-10-17 21:27                     ` Dave Berry
2002-10-18  2:48                       ` Eray Ozkural
2002-10-20 12:46                         ` Dave Berry
2002-10-21  6:11                           ` Michael Vanier
2003-05-10 20:41                           ` Eray Ozkural
2002-07-12 11:43             ` Noel Welsh
2002-07-12 12:10               ` Markus Mottl
2002-07-12 13:44           ` John Max Skaller
2002-07-12 16:19             ` Alan Schmitt
2002-07-12 20:41             ` John Carr
2002-07-13 21:19               ` [Caml-list] Re: productivity improvementu Pierre Weis
2002-07-12 21:24             ` [Caml-list] Re: productivity improvement Brian Smith
2002-10-15  8:57             ` Eray Ozkural
2002-10-15 11:50               ` [Caml-list] eproductivity improvement Alessandro Baretta
2002-07-09 12:45 ` [Caml-list] productivity improvement Basile STARYNKEVITCH
2002-07-09 18:20   ` Shannon --jj Behrens
2002-07-09 19:16     ` Oleg
2002-07-09 20:31       ` Shannon --jj Behrens
2002-07-10 10:02     ` sebastien FURIC
2002-07-10 11:58       ` Dave Mason
2002-07-10 13:11         ` sebastien FURIC
2002-07-10 19:22           ` nadji
2002-07-10 20:15       ` Sieve of Eratosthenes Performance: various languages (Re: [Caml-list] productivity improvement) Oleg
2002-07-10 20:34         ` [Caml-list] " William D. Neumann
2002-07-10 20:47           ` [Caml-list] Re: Sieve of Eratosthenes Performance: various languages Alexander V.Voinov
2002-07-10 21:16             ` William D. Neumann
2002-07-10 20:49           ` [Caml-list] Re: Sieve of Eratosthenes Performance: various languages (Re: [Caml-list] productivity improvement) William D. Neumann
2002-07-11 22:30           ` [Caml-list] Array.resize ? Oleg
2002-07-11 23:06             ` Alessandro Baretta
2002-07-12 13:01               ` John Max Skaller
2002-07-12 18:24                 ` Shawn Wagner
2002-07-11 23:31             ` Markus Mottl
2002-07-12 12:54             ` John Max Skaller
2002-07-12 13:23               ` Olivier Andrieu
2002-07-12 14:05                 ` John Max Skaller
2002-07-12 16:09               ` Brian Rogoff
2002-10-19  9:16                 ` Eray Ozkural
2002-10-19 22:15                   ` [Caml-list] debugger losing contact with debuggee process Lex Stein
2002-10-20 10:06                     ` Pierre Weis
2002-10-21  9:11                     ` Xavier Leroy
2002-10-18  3:05             ` [Caml-list] Array.resize ? Eray Ozkural
2002-10-19  1:51               ` Oleg
2003-05-10 20:24                 ` Eray Ozkural
2002-07-10 20:48         ` Sieve of Eratosthenes Performance: various languages (Re: [Caml-list] productivity improvement) Markus Mottl
2002-07-11  5:53           ` Anton E. Moscal
2002-10-18  3:07           ` Eray Ozkural
2002-07-10 15:39 ` [Caml-list] productivity improvement John Max Skaller
2002-07-11  8:57   ` Nicolas barnier
2002-07-12 12:16   ` [Caml-list] Is this a bug? John Max Skaller
2002-07-12 14:05     ` Xavier Leroy
2002-07-16  3:34   ` [Caml-list] productivity improvement Oleg
2002-10-18  3:13     ` Eray Ozkural

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200207122030.39591.erayo@cs.bilkent.edu.tr \
    --to=erayo@cs.bilkent.edu.tr \
    --cc=caml-list@inria.fr \
    --cc=zack@cs.unibo.it \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).