guile-gtk-general
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Roadmap to 2.8 platform bindings


From: Andy Wingo
Subject: Re: Roadmap to 2.8 platform bindings
Date: Mon, 10 May 2004 22:10:58 +0100

So I meant to go do email today, but I didn't. Here's my progress:

On Sat, 2004-05-08 at 22:56, Andy Wingo wrote:
>      1. The module split. I assume rotty's on this and it will happen
>         magically ;)

No progress :)

>      2. Fix the convoluted primitives/non-primitives distinction for the
>         base object wrappers.

Well, I'm not sure if it's fixed, but I did a good two day's work on
this. Here's the note I put in for the latest commit,
address@hidden/guile-gobject--dev--0--patch-1:

=========begin
Summary: Split gobject wrapper into pieces
Keywords:
 
This is a biggie! The primitives/non-primitives split that was inherited
from early versions was arbitrary. In light of the upcoming GNOME 2.7
platform bindings, I went through the gobject wrapper and split it into
functionality-related pieces. One might draw a diagram like this:
 
+----------------------------------------------------------------------+
|                                                                      |
|                       gobject                                        |
|                                              +-----------------------+
|                                              |   gsignal             |
|    +----------------+                 +----------------------+       |
|    |     gparam     |                 |        gclosure      |       |
|    |  +---------------------------------------------------+  |       |
|    |  |                 gvalue                            |  |       |
+----------------------------------------------------------------------+
|                         gtype                                        |
+----------------------------------------------------------------------+
 
So, (gnome gobject primitives) is no more. There does exist
(gnome gobject), which re-exports all of the above modules, which live
below (gnome gobject): (gnome gobject gtype), etc.
 
A fair amount of the interface that was previously exposed is now kept
private. So although the entire set of modules is exported, the total
number of functions is fewer than before, although I don't have numbers.
 
Other changes appearing in this changeset include:
 
* Fixing history handling in the graphical repl
* gclosure-primitive is gone (from the public api)
* the repl reads and writes the guile history file
* the repl demo restores the previous ports when it exits
* No more strange warning about linking to a loadable module
* All exports for the object wrapper are made in scheme, with the
  exception of gtype:* -- you know what you are getting
* g-wrap doesn't wrap core functions any more (g-type-*)
* we now treat untagged source as precious, cause I'm lazy and build in
  my source dir

========end

>      3. Define the public namespace to be (gnome FOO):

Not done yet. Waiting on the split.

>      4. We need to go through the gobject API with a fine-toothed comb

It was coarse-toothed.

BTW. I don't think we can make the platform bindings if GDK is to be
included. Wrapping GDK seems like it would be a tough task, as it's a
big API that has a lot of special wrapper needs.

And, incidentally:
> > 4) Enums and flags: genum->symbol, gflags->value-list, etc.
Had to be grouped with gvalue, because the instances are represented as
gvalues.

> > care? I would like to think that this is our last major reshuffle,
> > besides maybe module locations.

And we're headed up on module location reshuffle time. Sweet.

Peace,
-- 
Andy Wingo <address@hidden>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]