public inbox for guile-gtk@sourceware.org
 help / color / mirror / Atom feed
* guile-gobject/g-wrap status update
@ 2003-10-06 15:11 Andreas Rottmann
  2003-10-06 15:34 ` Rob Browning
  0 siblings, 1 reply; 3+ messages in thread
From: Andreas Rottmann @ 2003-10-06 15:11 UTC (permalink / raw)
  To: guile-gtk, guile-gtk-general; +Cc: Rob Browning

Hi!

[BTW: There seem to be two guile-gtk mailing lists ATM - I guess
people should migrate to the one at GNU...]

I'm ATM working at implementing "glueless" wrapping for g-wrap,
i.e. instead of using a dedicated C wrapper for each wrapped function
creating an applicable smob that invokes a general marshaller which in
turn calls the C function via libffi.

This of course means a good amount of modifying/hacking g-wrap (Hi,
Rob!), mostly to spit out all the necessary argument type information,
so it can be used for marshalling. My main idea is to have each type
have a flag that indicates it is "dynamic" (suggestions for better
name welcome), which means that the type can be marshalled at
runtime. Whenever all argument types on a wrapped function are
dynamic, g-wrap will be able to spit out a bunch of conversion
functions (c->scm, scm->c, c-destructor, ...) for each argument type
along with a desciption of the argument types (basically function
pointers to the conversion functions). This information then will be
used by the marshaller. For a start, I plan to make all types that are
generated by (gw:wrap-simple-type) dynamic.

Regards, Andy
-- 
Andreas Rottmann         | Rotty@ICQ      | 118634484@ICQ | a.rottmann@gmx.at
http://www.8ung.at/rotty | GnuPG Key: http://www.8ung.at/rotty/gpg.asc
Fingerprint              | DFB4 4EB4 78A4 5EEE 6219  F228 F92F CFC5 01FD 5B62

Python is executable pseudocode, Perl is executable line-noise.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: guile-gobject/g-wrap status update
  2003-10-06 15:11 guile-gobject/g-wrap status update Andreas Rottmann
@ 2003-10-06 15:34 ` Rob Browning
  2003-10-06 22:59   ` Andreas Rottmann
  0 siblings, 1 reply; 3+ messages in thread
From: Rob Browning @ 2003-10-06 15:34 UTC (permalink / raw)
  To: Andreas Rottmann; +Cc: guile-gtk, guile-gtk-general

Andreas Rottmann <a.rottmann@gmx.at> writes:

> [BTW: There seem to be two guile-gtk mailing lists ATM - I guess
> people should migrate to the one at GNU...]
>
> I'm ATM working at implementing "glueless" wrapping for g-wrap,
> i.e. instead of using a dedicated C wrapper for each wrapped function
> creating an applicable smob that invokes a general marshaller which in
> turn calls the C function via libffi.

Interesting.  A couple of questions come to mind.  First, how portable
is libffi?  Will it cover all the existing architectures?  Also, do we
know what the overhead's likely to be?  I suppose the performance
argument could go either way when comparing to the existing approach
since the existing one-function-per-wrapper approach may well have
poorer interactions with the memory hierarchy.  In any case, I do want
to preserve the ability for people who want to, to be able to have
close to minimal ffcall overhead using g-wrap.  When calling from
interpreted languages, you may have a lot more leeway before you
noticably affect performance, but in the long run, I'm hoping guile
will also provide some form of compilation.

On a related front, I've decided to just use CVS at savannah, so I
should be setting that up over the next week (plus or minus -- I have
family coming to visit).  It also probably makes sense to have a place
where those interested can discuss "what should happen next" with
g-wrap.  I'm happy to have that discussion on an existing list if that
would be appropriate, or to create a new one.  I've had some ideas I'd
like to discuss, and to compare and contrast (to the extent that they
overlap) with the above.

Thanks

-- 
Rob Browning
rlb @defaultvalue.org and @debian.org; previously @cs.utexas.edu
GPG starting 2002-11-03 = 14DD 432F AE39 534D B592  F9A0 25C8 D377 8C7E 73A4

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: guile-gobject/g-wrap status update
  2003-10-06 15:34 ` Rob Browning
@ 2003-10-06 22:59   ` Andreas Rottmann
  0 siblings, 0 replies; 3+ messages in thread
From: Andreas Rottmann @ 2003-10-06 22:59 UTC (permalink / raw)
  To: Rob Browning; +Cc: guile-gtk, guile-gtk-general

Rob Browning <rlb@defaultvalue.org> writes:

> Andreas Rottmann <a.rottmann@gmx.at> writes:
>
>> [BTW: There seem to be two guile-gtk mailing lists ATM - I guess
>> people should migrate to the one at GNU...]
>>
>> I'm ATM working at implementing "glueless" wrapping for g-wrap,
>> i.e. instead of using a dedicated C wrapper for each wrapped function
>> creating an applicable smob that invokes a general marshaller which in
>> turn calls the C function via libffi.
>
> Interesting.  A couple of questions come to mind.  First, how portable
> is libffi?  Will it cover all the existing architectures?
>
At auric.debian.org:

rotty@auric:~% madison libffi2
   libffi2 |  1:3.0.4-7 |        stable | alpha, arm, i386, ia64, m68k, powerpc, s390, sparc
   libffi2 | 1:3.3.2-0pre4 |       testing | alpha, arm, i386, ia64, m68k, powerpc, s390, sparc
   libffi2 | 1:3.3.2-0pre4 |      unstable | arm, m68k, powerpc, s390, sparc
   libffi2 | 1:3.3.2-0pre5 |      unstable | alpha, i386, ia64

So libffi seems pretty portable.

> Also, do we know what the overhead's likely to be?  I suppose the
> performance argument could go either way when comparing to the
> existing approach since the existing one-function-per-wrapper
> approach may well have poorer interactions with the memory
> hierarchy.  In any case, I do want to preserve the ability for
> people who want to, to be able to have close to minimal ffcall
> overhead using g-wrap.
>
I plan to make "glueless" wrapping an optional feature that you can
turn on and off at your delight (at wrapper creation time, that is, of
course).

> When calling from interpreted languages, you may have a lot more
> leeway before you noticably affect performance, but in the long run,
> I'm hoping guile will also provide some form of compilation.
>
Yes, I'd like to see that, too.

> On a related front, I've decided to just use CVS at savannah, so I
> should be setting that up over the next week (plus or minus -- I
> have family coming to visit).
>
Cool. I think that you can integrate GNU arch somehow with CVS, so if
we are going to do multi-branch development (which CVS is poor at), we
could have just the mainline in CVS and use arch for the harrier stuff
I think.  I've not yet very much looked into arch, but perhaps someone
else here has real experience.

> It also probably makes sense to have a place where those interested
> can discuss "what should happen next" with g-wrap.  I'm happy to
> have that discussion on an existing list if that would be
> appropriate, or to create a new one.  I've had some ideas I'd like
> to discuss, and to compare and contrast (to the extent that they
> overlap) with the above.
>
Maybe guile-gtk is appropriate (the GNU one, /methinks), but I'm not
the one to decide this and I'll be happy either way.

Regards, Andy
-- 
Andreas Rottmann         | Rotty@ICQ      | 118634484@ICQ | a.rottmann@gmx.at
http://www.8ung.at/rotty | GnuPG Key: http://www.8ung.at/rotty/gpg.asc
Fingerprint              | DFB4 4EB4 78A4 5EEE 6219  F228 F92F CFC5 01FD 5B62

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2003-10-06 22:59 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-10-06 15:11 guile-gobject/g-wrap status update Andreas Rottmann
2003-10-06 15:34 ` Rob Browning
2003-10-06 22:59   ` Andreas Rottmann

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 read-only IMAP folder(s) and NNTP newsgroup(s).