chicken-janitors
[Top][All Lists]
Advanced

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

Re: [Chicken-janitors] #850: dbus: Scheme closure passed where function


From: Chicken Trac
Subject: Re: [Chicken-janitors] #850: dbus: Scheme closure passed where function pointer is expected and triple compilation
Date: Tue, 02 Oct 2012 20:30:41 -0000

#850: dbus: Scheme closure passed where function pointer is expected and triple
compilation
-------------------------+--------------------------------------------------
  Reporter:  sjamaan     |       Owner:  ecloud  
      Type:  defect      |      Status:  accepted
  Priority:  major       |   Milestone:          
 Component:  extensions  |     Version:  4.7.x   
Resolution:              |    Keywords:          
-------------------------+--------------------------------------------------
Changes (by ecloud):

  * status:  new => accepted


Comment:

 OK about the .setup file, that's easy.  However I'm not sure how to fix
 the vtable thing.

 
http://dbus.freedesktop.org/doc/api/html/group__DBusConnection.html#ga24730ca6fd2e9132873962a32df7628c

 explains about being able to register a handler by putting it in a vtable
 and then calling dbus_connection_register_object_path.  My goal is to take
 a user-provided function taking 3 parameters (because dbus will provide
 those 3 when it calls the callback) and make a C function pointer out of
 it.  This must be done anonymously - which is why define-external won't
 work.  I can write a function which calls C_callback to invoke the user-
 provided callback, but that function would have to be given the Scheme
 closure to be able to call it; but I'm not going to call it, rather dbus
 is going to call it.

 Furthermore I don't have any use for this functionality, there aren't any
 provided examples that use it, and I wonder if there are any users trying
 to use this feature at all.

 But it ought to be easy to fix, in theory, if the whole FFI wasn't so
 perpetually confusing and easily-forgotten for me.

 salmonella --specialize seems to be undocumented?  What does it do?  I
 tried running it in the egg directory, and the output was the same as it
 was without the --specialize parameter.

 ~/prj/chicken-eggs/release/4/dbus/trunk
 [i7][10:29:06 PM] salmonella --specialize
 Using /home/rutledge/prj/chicken-eggs/release/4/dbus/trunk/salmonella-tmp-
 d24dc as temporary directory
 ==== dbus (1 of 1)====
   Fetching........................................[ ok ] 0s
   Reading .meta...................................[ ok ] 0s
   Checking dependencies...........................[ ok ] 0s
   Checking category...............................[ ok ] 0s
   Checking license................................[ ok ] 0s
   Checking author.................................[ ok ] 0s
   Installing......................................[ ok ] 27s
   Checking version................................[ -- ]
   Testing.........................................[ -- ]
   Checking documentation..........................[ ok ] 1s

 ***************************************************************************

 === Summary
 Total eggs: 1

 ==== Installation
 Ok: 1
 Failed: 0

 ==== Tests
 Ok: 0
 Failed: 0
 No tests: 1

 ==== Documentation
 Documented: 1
 Undocumented: 0

 ==== Total run time
 28s

-- 
Ticket URL: <http://bugs.call-cc.org/ticket/850#comment:2>
Chicken Scheme <http://www.call-with-current-continuation.org/>
Chicken Scheme is a compiler for the Scheme programming language.

reply via email to

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