[Top][All Lists]
[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Chicken-janitors] #850: dbus: Scheme closure passed where function pointer is expected and triple compilation,
Chicken Trac <=