[gambit-list] Anyone else working in a schemey wrapper for c structs/unions/types?

Mikael mikael.rcv at gmail.com
Tue Dec 24 12:22:21 EST 2013


Estevo,

To get where you are at now - at the current point, are you happy with what
Gambit does right now, or are you still seeing an issue?

If so, can you provide like a three-line example illustrating the problem
and how it could be resolved?

Happy Holidays,
Mikael




2013/12/24 Estevo <euccastro at gmail.com>

> >> I've experimented in the past with making a macro that would generate
> the
> >> appropriate ffi code to create and manage c structs/unions/types.  The
> >> challenge was to handle references obtained from accessors to fields
> >> containing other structs/union/types within them in such a way that
> >> - no copying was necessary, and
> >> - the original structure wouldn't be released as long as derived
> references
> >> existed
> >
> > Anyone know what guile does?  If anything?
> >
> > -- hendrik
>
> Well, I was interested in how to make it work in Gambit as is.  If we
> consider modifications to Gambit, there is an easy solution: give foreign
> objects a 'data' field that holds a user-settable strong reference to a
> Scheme object.  Then, whenever you need to make sure that object A is not
> reclaimed while foreign object B is reachable, you just say
> (foreign-data-set! B A).
>
> Indeed, after having tried hard, my current impression is that the above
> can't be done in a way that is robust and seamless to the user without
> modifying Gambit.  I'd be very happy to be proven wrong in this!
>
> I have made a pull request proposing that change:
>
> https://github.com/feeley/gambit/pull/59
>
> but I don't know whether the cost of one extra pointer per foreign object
> is a showstopper here.
>
> _______________________________________________
> Gambit-list mailing list
> Gambit-list at iro.umontreal.ca
> https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20131224/57c83053/attachment.htm>


More information about the Gambit-list mailing list