:out parameters
Ben <ben-PLN1j/[email protected]> Fri, 27 Aug 2004 00:40:39 -0400 (EDT)
| Newsgroups | gmane.lisp.uffi.devel |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format... --0-1018233897-1093581639=:67679 Content-Type: text/plain; name="warning1.txt" Content-Disposition: inline; filename="warning1.txt" Content-Transfer-Encoding: 7bit MIME-Version: 1.0 X-Mailer: MIME-tools 5.411 (Entity 5.404) WARNING: This e-mail has been altered by MIMEDefang. Following this paragraph are indications of the actual changes made. For more information about your site's MIMEDefang policy, contact B9.com MIMEDefang Administrator <[email protected]>. For more information about MIMEDefang, see: http://www.roaringpenguin.com/mimedefang/enduser.php3 An attachment named make.sh was removed from this document as it constituted a security hazard. If you require this document, please contact the sender and arrange an alternate means of receiving it. --0-1018233897-1093581639=:67679 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Content-Disposition: inline [switching to uffi-devel] attached are my modified src/functions.lisp tests/make.sh tests/uffi-c-test.c tests/uffi-c-test-lib.lisp sorry i'm not so good with patch. if you give me the correct incantations i'll do it. i modified make.sh to work on FreeBSD. currently i am supporting :out arguments only for numeric types. probably other things work too but the different platforms support different things. in particular CMUCL doesn't support :out for pointer-like types. as such the tests work on :floats and :unsigned-ints. all the tests pass on CMUCL and Allegro on FreeBSD. in particular none of the old tests should be affected since the new code won't get called without :out parameters. next time i'm on a linux box i'll test Lispworks, and as soon as my roommate upgrades his computer i'll test on OpenMCL (which should be identicle to Allegro since they both use wrapper functions.) meanwhile, i would like to release some software which depends on the :out parameters stuff. since a new release of UFFI is probably not imminent, how should i do this? thanks and take care, B On Fri, 20 Aug 2004, Ben wrote: >> Great -- backward compatibility is essential. I think well-written is >> more important than touching existing code. Feel free to improve >> things. You have the test suite to exercise your changes. > > i'm only able to test CMUCL + Allegro on FreeBSD. looking for > volunteers who have access to Lispworks, SBCL and OpenMCL. > >>> it supports CMUCL, SBCL, Lispworks :outs. otherwise it wraps. i've >>> tested the wrapping on Allegro, so it should work elsewhere. >> >> What do you mean by wrapping? > > it creates a wrapper function that allocates space for the return > value arguments, calls the function defined by the original > uffi:def-function (whose name has been gensym'd), and returns all the > values. > >>> i'll try to get my hands on a copy of lispworks et al and try to >>> bulletproof it. > > actually it looks like there's no lispworks for freebsd. volunteers? > > B > --0-1018233897-1093581639=:67679 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="functions.lisp" Content-Transfer-Encoding: BASE64 Content-ID: <20040827004039.H67679-hPn5cYFhuWsSFmXig5rcr2jVSZ/[email protected]> Content-Description: Content-Disposition: attachment; filename="functions.lisp" Ozs7OyAtKi0gTW9kZTogTGlzcDsgU3ludGF4OiBBTlNJLUNvbW1vbi1MaXNw OyBCYXNlOiAxMDsgUGFja2FnZTogVUZGSSAtKi0NCjs7OzsgKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKg0KOzs7OyBGSUxFIElERU5USUZJQ0FUSU9O DQo7Ozs7DQo7Ozs7IE5hbWU6ICAgICAgICAgIGZ1bmN0aW9uLmxpc3ANCjs7 OzsgUHVycG9zZTogICAgICAgVUZGSSBzb3VyY2UgdG8gQyBmdW5jdGlvbiBk ZWZpbml0aW9ucw0KOzs7OyBQcm9ncmFtbWVyOiAgICBLZXZpbiBNLiBSb3Nl bmJlcmcNCjs7OzsgRGF0ZSBTdGFydGVkOiAgRmViIDIwMDINCjs7OzsNCjs7 OzsgJElkOiBmdW5jdGlvbnMubGlzcCA5MDEyIDIwMDQtMDQtMTUgMTA6NDM6 MDFaIGtldmluICQNCjs7OzsNCjs7OzsgVGhpcyBmaWxlLCBwYXJ0IG9mIFVG RkksIGlzIENvcHlyaWdodCAoYykgMjAwMiBieSBLZXZpbiBNLiBSb3NlbmJl cmcNCjs7OzsNCjs7OzsgVUZGSSB1c2VycyBhcmUgZ3JhbnRlZCB0aGUgcmln aHRzIHRvIGRpc3RyaWJ1dGUgYW5kIHVzZSB0aGlzIHNvZnR3YXJlDQo7Ozs7 IGFzIGdvdmVybmVkIGJ5IHRoZSB0ZXJtcyBvZiB0aGUgTGlzcCBMZXNzZXIg R05VIFB1YmxpYyBMaWNlbnNlDQo7Ozs7IChodHRwOi8vb3BlbnNvdXJjZS5m cmFuei5jb20vcHJlYW1ibGUuaHRtbCksIGFsc28ga25vd24gYXMgdGhlIExM R1BMLg0KOzs7OyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQoNCihp bi1wYWNrYWdlICM6dWZmaSkNCg0KKGRlZnVuIHByb2Nlc3MtZnVuY3Rpb24t YXJncyAoYXJncykNCiAgKGlmIChudWxsIGFyZ3MpDQogICAgICAjKyhvciBs aXNwd29ya3MgY211IHNiY2wgc2NsIGNvcm1hbmxpc3AgKGFuZCBtY2wgKG5v dCBvcGVubWNsKSkpIG5pbA0KICAgICAgIythbGxlZ3JvICcoOnZvaWQpDQog ICAgICAjK29wZW5tY2wgKHZhbHVlcyBuaWwgbmlsKQ0KDQogICAgICA7OyBh cmdzIG5vdCBudWxsDQogICAgICAjKyhvciBsaXNwd29ya3MgYWxsZWdybyBj bXUgc2JjbCBzY2wgKGFuZCBtY2wgKG5vdCBvcGVubWNsKSkgY29ybWFubGlz cCkNCiAgICAgIChsZXQgKHByb2Nlc3NlZCkNCgkoZG9saXN0IChhcmcgYXJn cykNCgkgIChwdXNoIChwcm9jZXNzLW9uZS1mdW5jdGlvbi1hcmcgYXJnKSBw cm9jZXNzZWQpKQ0KCShucmV2ZXJzZSBwcm9jZXNzZWQpKQ0KICAgICAgIytv cGVubWNsDQogICAgICAobGV0ICgocHJvY2Vzc2VkIG5pbCkNCgkgICAgKHBh cmFtcyBuaWwpKQ0KCShkb2xpc3QgKGFyZyBhcmdzKQ0KCSAgKGxldCAoKG5h bWUgKGNhciBhcmcpKQ0KCQkodHlwZSAoY29udmVydC1mcm9tLXVmZmktdHlw ZSAoY2FkciBhcmcpIDpyb3V0aW5lKSkpDQoJICAgIDs7KHdoZW4gKGFuZCAo bGlzdHAgdHlwZSkgKGVxIChjYXIgdHlwZSkgOmFkZHJlc3MpKQ0KCSAgICA7 OyhzZXRmIHR5cGUgOmFkZHJlc3MpKQ0KCSAgICAocHVzaCBuYW1lIHBhcmFt cykNCgkgICAgKHB1c2ggdHlwZSBwcm9jZXNzZWQpDQoJICAgIChwdXNoIG5h bWUgcHJvY2Vzc2VkKSkpDQoJKHZhbHVlcyAobnJldmVyc2UgcGFyYW1zKSAo bnJldmVyc2UgcHJvY2Vzc2VkKSkpDQogICAgKSkNCg0KKGRlZnVuIHByb2Nl c3Mtb25lLWZ1bmN0aW9uLWFyZyAoYXJnKQ0KICAobGV0ICgobmFtZSAoY2Fy IGFyZykpDQoJKHR5cGUgKGNvbnZlcnQtZnJvbS11ZmZpLXR5cGUgKGNhZHIg YXJnKSA6cm91dGluZSkpKQ0KICAgICMrKG9yIGNtdSBzYmNsIHNjbCkNCiAg ICA7KGxpc3QgbmFtZSB0eXBlIDppbikNCiAgICBgKCxuYW1lICx0eXBlICxA KGlmICg9IChsZW5ndGggYXJnKSAzKSAobGlzdCAodGhpcmQgYXJnKSkgKHZh bHVlcykpKQ0KICAgICMrKG9yIGFsbGVncm8gbGlzcHdvcmtzIChhbmQgbWNs IChub3Qgb3Blbm1jbCkpKQ0KICAgIChpZiAoYW5kIChsaXN0cCB0eXBlKSAo bGlzdHAgKGNhciB0eXBlKSkpDQoJKGFwcGVuZCAobGlzdCBuYW1lKSB0eXBl KQ0KICAgICAgKGxpc3QgbmFtZSB0eXBlKSkNCiAgICAjK29wZW5tY2wNCiAg ICAoZGVjbGFyZSAoaWdub3JlIG5hbWUgdHlwZSkpDQogICAgKSkgICAgDQoN Cg0KKGRlZnVuIGFsbGVncm8tY29udmVydC1yZXR1cm4tdHlwZSAodHlwZSkN CiAgKGlmIChhbmQgKGxpc3RwIHR5cGUpIChub3QgKGxpc3RwIChjYXIgdHlw ZSkpKSkNCiAgICAgIChsaXN0IHR5cGUpDQogICAgdHlwZSkpDQoNCihkZWZ1 biBmdW5jYWxsYWJsZS1sYW1iZGEtbGlzdCAoYXJncykNCiAgKGxldCAoKGxs IG5pbCkpDQogICAgKGRvbGlzdCAoYXJnIGFyZ3MpDQogICAgICAocHVzaCAo Y2FyIGFyZykgbGwpKQ0KICAgIChucmV2ZXJzZSBsbCkpKQ0KDQojfA0KKGRl Zm1hY3JvIGRlZi1mdW5jYWxsYWJsZSAobmFtZSBhcmdzICZrZXkgcmV0dXJu aW5nKQ0KICAobGV0ICgocmVzdWx0LXR5cGUgKGNvbnZlcnQtZnJvbS11ZmZp LXR5cGUgcmV0dXJuaW5nIDpyZXR1cm4pKQ0KCShmdW5jdGlvbi1hcmdzIChw cm9jZXNzLWZ1bmN0aW9uLWFyZ3MgYXJncykpKQ0KICAgICMrbGlzcHdvcmtz DQogICAgYChmbGk6ZGVmaW5lLWZvcmVpZ24tZnVuY2FsbGFibGUgLG5hbWUg LGZ1bmN0aW9uLWFyZ3MNCiAgICAgIDpyZXN1bHQtdHlwZSAscmVzdWx0LXR5 cGUNCiAgICAgIDpsYW5ndWFnZSA6YW5zaS1jDQogICAgICA6Y2FsbGluZy1j b252ZW50aW9uIDpjZGVjbCkNCiAgICAjKyhvciBjbXUgc2NsIHNiY2wpDQog ICAgOzsgcmVxdWlyZXMgdGhlIHR5cGUgb2YgdGhlIGZ1bmN0aW9uIHBvaW50 ZXIgYmUgZGVjbGFyZWQgY29ycmVjdGx5IQ0KICAgIChsZXQqICgocHRyc3lt IChnZW5zeW0pKQ0KCSAgIChsbCAoZnVuY2FsbGFibGUtbGFtYmRhLWxpc3Qg YXJncykpKQ0KICAgICAgYChkZWZ1biAsbmFtZSAsKGNvbnMgcHRyc3ltIGxs KQ0KCShhbGllbjo6YWxpZW4tZnVuY2FsbCAscHRyc3ltICxAbGwpKSkNCiAg ICAjK29wZW5tY2wNCiAgICAobXVsdGlwbGUtdmFsdWUtYmluZCAocGFyYW1z IGFyZ3MpIChwcm9jZXNzLWZ1bmN0aW9uLWFyZ3MgYXJncykNCiAgICAgIChs ZXQgKChwdHJzeW0gKGdlbnN5bSkpKQ0KCWAoZGVmdW4gLG5hbWUgLChjb25z IHB0cnN5bSBwYXJhbXMpDQoJICAoY2NsOjpmZi1jYWxsICxwdHJzeW0gLEBh cmdzICxyZXN1bHQtdHlwZSkpKSkNCiAgICAjK2FsbGVncm8NCiAgICA7OyB0 aGlzIGlzIG1vc3QgZGVmaW5pdGVseSB3cm9uZw0KICAgIChsZXQqICgocHRy c3ltIChnZW5zeW0pKQ0KCSAgIChsbCAoZnVuY2FsbGFibGUtbGFtYmRhLWxp c3QgYXJncykpKQ0KICAgICAgYChkZWZ1biAsbmFtZSAsKGNvbnMgcHRyc3lt IGxsKQ0KCShzeXN0ZW06OmZmLWZ1bmNhbGwgLHB0cnN5bSAsQGxsKSkpDQog ICAgKSkNCnwjICAgIA0KDQooZGVmdW4gY29udmVydC1saXNwd29ya3MtYXJn cyAoYXJncykNCiAgKGxvb3AgZm9yIGFyZyBpbiBhcmdzDQoJd2l0aCBwcm9j ZXNzZWQgPSBuaWwNCglkbw0KCShpZiAoYW5kICg9IChsZW5ndGggYXJnKSAz KSAoZXEgKHRoaXJkIGFyZykgOm91dCkpDQoJICAgIChwdXNoIChsaXN0IChm aXJzdCBhcmcpDQoJCQkobGlzdCA6cmVmZXJlbmNlLXJldHVybiAoc2Vjb25k IGFyZykpKSBwcm9jZXNzZWQpDQoJICAgIChwdXNoIChzdWJzZXEgYXJnIDAg MikgcHJvY2Vzc2VkKSkNCglmaW5hbGx5IChyZXR1cm4gcHJvY2Vzc2VkKSkp DQoNCihkZWZ1biBwcmVwcm9jZXNzLW5hbWVzIChuYW1lcykNCiAgKGxldCAo KGZuYW1lIChnZW5zeW0pKSkNCiAgICAoaWYgKGF0b20gbmFtZXMpDQoJKHZh bHVlcyAobGlzdCBuYW1lcyBmbmFtZSkgZm5hbWUgKHVmZmk6Om1ha2UtbGlz cC1uYW1lIG5hbWVzKSkNCgkodmFsdWVzIChsaXN0IChmaXJzdCBuYW1lcykg Zm5hbWUpIGZuYW1lIChzZWNvbmQgbmFtZXMpKSkpKQ0KDQooZGVmdW4gcHJl cHJvY2Vzcy1hcmdzIChhcmdzKQ0KICAobG9vcCBmb3IgYXJnIGluIGFyZ3MN Cgl3aXRoIGxpc3AtYXJncyA9IG5pbCBhbmQgb3V0ID0gbmlsIGFuZCBwcm9j ZXNzZWQgPSBuaWwNCglkbw0KCShpZiAoPSAobGVuZ3RoIGFyZykgMykNCgkg ICAgKGVjYXNlICh0aGlyZCBhcmcpDQoJICAgICAgKDppbiANCgkgICAgICAg KHByb2duDQoJCSAocHVzaCAoZmlyc3QgYXJnKSBsaXNwLWFyZ3MpDQoJCSAo cHVzaCAobGlzdCAoZmlyc3QgYXJnKSAoc2Vjb25kIGFyZykpIHByb2Nlc3Nl ZCkpKQ0KCSAgICAgICg6b3V0DQoJICAgICAgIChwcm9nbg0KCQkgKHB1c2gg KGxpc3QgKGZpcnN0IGFyZykgKHNlY29uZCBhcmcpKSBvdXQpDQoJCSAocHVz aCAobGlzdCAoZmlyc3QgYXJnKSAobGlzdCAnKiAoc2Vjb25kIGFyZykpKSBw cm9jZXNzZWQpKSkpDQoJICAgIChwcm9nbg0KCSAgICAgIChwdXNoIChmaXJz dCBhcmcpIGxpc3AtYXJncykNCgkgICAgICAocHVzaCBhcmcgcHJvY2Vzc2Vk KSkpDQoJZmluYWxseSAocmV0dXJuICh2YWx1ZXMgKG5yZXZlcnNlIGxpc3At YXJncykgDQoJCQkJKG5yZXZlcnNlIG91dCkgDQoJCQkJKG5yZXZlcnNlIHBy b2Nlc3NlZCkpKSkpDQoNCg0KKGRlZm1hY3JvIGRlZi1mdW5jdGlvbiAobmFt ZXMgYXJncyAma2V5IG1vZHVsZSByZXR1cm5pbmcpDQogICMrKG9yIGNtdSBz YmNsIHNjbCBhbGxlZ3JvIG1jbCBjb3JtYW5saXNwKSAoZGVjbGFyZSAoaWdu b3JlIG1vZHVsZSkpDQoNCiAgKG11bHRpcGxlLXZhbHVlLWJpbmQgKGxpc3At YXJncyBvdXQgcHJvY2Vzc2VkKQ0KICAgICAgKHByZXByb2Nlc3MtYXJncyBh cmdzKQ0KICAgIChpZiAoPSAobGVuZ3RoIG91dCkgMCkNCglgKCVkZWYtZnVu Y3Rpb24gLG5hbWVzICxhcmdzIA0KCSAgLEAoaWYgbW9kdWxlIChsaXN0IDpt b2R1bGUgbW9kdWxlKSAodmFsdWVzKSkNCgkgICxAKGlmIHJldHVybmluZyAo bGlzdCA6cmV0dXJuaW5nIHJldHVybmluZykgKHZhbHVlcykpKQ0KDQoJIyso b3IgY211IHNjbCBzYmNsKQ0KCWAoJWRlZi1mdW5jdGlvbiAsbmFtZXMgLGFy Z3MgDQoJICAsQChpZiByZXR1cm5pbmcgKGxpc3QgOnJldHVybmluZyByZXR1 cm5pbmcpICh2YWx1ZXMpKSkNCgkjK2xpc3B3b3Jrcw0KCWAoJWRlZi1mdW5j dGlvbiAsbmFtZXMgLChjb252ZXJ0LWxpc3B3b3Jrcy1hcmdzIGFyZ3MpIA0K CSAgLEAoaWYgbW9kdWxlIChsaXN0IDptb2R1bGUgbW9kdWxlKSAodmFsdWVz KSkNCgkgICxAKGlmIHJldHVybmluZyAobGlzdCA6cmV0dXJuaW5nIHJldHVy bmluZykgKHZhbHVlcykpKQ0KCSMtKG9yIGNtdSBzY2wgc2JjbCBsaXNwd29y a3MpDQoJKG11bHRpcGxlLXZhbHVlLWJpbmQgKG5hbWUtcGFpciBmbmFtZSBs aXNwLW5hbWUpDQoJICAgIChwcmVwcm9jZXNzLW5hbWVzIG5hbWVzKQ0KCSAg YChwcm9nMQ0KCSAgICAoJWRlZi1mdW5jdGlvbiAsbmFtZS1wYWlyICxwcm9j ZXNzZWQgDQoJICAgICA6bW9kdWxlICxtb2R1bGUgOnJldHVybmluZyAscmV0 dXJuaW5nKQ0KCSAgICA7KGRlY2xhaW0gKGlubGluZSAsZm5hbWUpKQ0KCSAg ICAoZGVmdW4gLGxpc3AtbmFtZSAsbGlzcC1hcmdzDQoJICAgICAgKHdpdGgt Zm9yZWlnbi1vYmplY3RzICxvdXQNCgkJKHZhbHVlcyAoLGZuYW1lICxAKG1h cGNhciAjJ2ZpcnN0IGFyZ3MpKQ0KCQkJLEAobWFwY2FyICMnKGxhbWJkYSAo YXJnKQ0KCQkJCSAgICAgIChsaXN0ICdkZXJlZi1wb2ludGVyDQoJCQkJCSAg ICAoZmlyc3QgYXJnKQ0KCQkJCQkgICAgKHNlY29uZCBhcmcpKSkgb3V0KSkp KSkpDQoJKSkpDQoJDQoNCjs7IG5hbWUgaXMgZWl0aGVyIGEgc3RyaW5nIHJl cHJlc2VudGluZyBmb3JlaWduIG5hbWUsIG9yIGEgbGlzdA0KOzsgb2YgZm9y ZWlnbi1uYW1lIGFzIGEgc3RyaW5nIGFuZCBsaXNwIG5hbWUgYXMgYSBzeW1i b2wNCihkZWZtYWNybyAlZGVmLWZ1bmN0aW9uIChuYW1lcyBhcmdzICZrZXkg bW9kdWxlIHJldHVybmluZykNCiAgIysob3IgY211IHNiY2wgc2NsIGFsbGVn cm8gbWNsIGNvcm1hbmxpc3ApIChkZWNsYXJlIChpZ25vcmUgbW9kdWxlKSkN CiAgDQogIChsZXQqICgocmVzdWx0LXR5cGUgKGNvbnZlcnQtZnJvbS11ZmZp LXR5cGUgcmV0dXJuaW5nIDpyZXR1cm4pKQ0KCSAoZnVuY3Rpb24tYXJncyAo cHJvY2Vzcy1mdW5jdGlvbi1hcmdzIGFyZ3MpKQ0KCSAoZm9yZWlnbi1uYW1l IChpZiAoYXRvbSBuYW1lcykgbmFtZXMgKGNhciBuYW1lcykpKQ0KCSAobGlz cC1uYW1lIChpZiAoYXRvbSBuYW1lcykgKG1ha2UtbGlzcC1uYW1lIG5hbWVz KSAoY2FkciBuYW1lcykpKSkNCg0KICAgIDs7IHRvZG86IGNhbGxpbmctY29u dmVudGlvbiA6c3RkY2FsbCBmb3IgY29ybWFubGlzcA0KICAgICMrYWxsZWdy bw0KICAgIGAoZmY6ZGVmLWZvcmVpZ24tY2FsbCAoLGxpc3AtbmFtZSAsZm9y ZWlnbi1uYW1lKQ0KCSAsZnVuY3Rpb24tYXJncw0KICAgICAgIDpyZXR1cm5p bmcgLChhbGxlZ3JvLWNvbnZlcnQtcmV0dXJuLXR5cGUgcmVzdWx0LXR5cGUp DQogICAgICAgOmNhbGwtZGlyZWN0IHQNCiAgICAgICA6c3RyaW5ncy1jb252 ZXJ0IG5pbCkNCiAgICAjKyhvciBjbXUgc2NsKQ0KICAgIGAoYWxpZW46ZGVm LWFsaWVuLXJvdXRpbmUgKCxmb3JlaWduLW5hbWUgLGxpc3AtbmFtZSkNCgkg LHJlc3VsdC10eXBlDQogICAgICAgLEBmdW5jdGlvbi1hcmdzKQ0KICAgICMr c2JjbA0KICAgIGAoc2ItYWxpZW46ZGVmaW5lLWFsaWVuLXJvdXRpbmUgKCxm b3JlaWduLW5hbWUgLGxpc3AtbmFtZSkNCgkgLHJlc3VsdC10eXBlDQogICAg ICAgLEBmdW5jdGlvbi1hcmdzKQ0KICAgICMrbGlzcHdvcmtzDQogICAgYChm bGk6ZGVmaW5lLWZvcmVpZ24tZnVuY3Rpb24gKCxsaXNwLW5hbWUgLGZvcmVp Z24tbmFtZSA6c291cmNlKQ0KCSAsZnVuY3Rpb24tYXJncw0KICAgICAgICxA KGlmIG1vZHVsZSAobGlzdCA6bW9kdWxlIG1vZHVsZSkgKHZhbHVlcykpDQog ICAgICAgOnJlc3VsdC10eXBlICxyZXN1bHQtdHlwZQ0KICAgICAgOmxhbmd1 YWdlIDphbnNpLWMNCiAgICAgICA6Y2FsbGluZy1jb252ZW50aW9uIDpjZGVj bCkNCiAgICAjKyhhbmQgbWNsIChub3Qgb3Blbm1jbCkpDQogICAgYChldmFs LXdoZW4gKDpjb21waWxlLXRvcGxldmVsIDpsb2FkLXRvcGxldmVsIDpleGVj dXRlKQ0KICAgICAgIChjY2w6ZGVmaW5lLWVudHJ5LXBvaW50ICgsbGlzcC1u YW1lICxmb3JlaWduLW5hbWUpDQogICAgICAgICAsZnVuY3Rpb24tYXJncw0K ICAgICAgICAgLHJlc3VsdC10eXBlKSkNCiAgICAjK29wZW5tY2wNCiAgICAo ZGVjbGFyZSAoaWdub3JlIGZ1bmN0aW9uLWFyZ3MpKQ0KICAgICMrKGFuZCBv cGVubWNsIGRhcndpbnBwYy10YXJnZXQpDQogICAgKHNldGYgZm9yZWlnbi1u YW1lIChjb25jYXRlbmF0ZSAnc3RyaW5nICJfIiBmb3JlaWduLW5hbWUpKQ0K ICAgICMrb3Blbm1jbA0KICAgIChtdWx0aXBsZS12YWx1ZS1iaW5kIChwYXJh bXMgYXJncykgKHByb2Nlc3MtZnVuY3Rpb24tYXJncyBhcmdzKQ0KICAgICAg YChkZWZ1biAsbGlzcC1uYW1lICxwYXJhbXMNCiAgICAgICAgIChjY2w6OmV4 dGVybmFsLWNhbGwgLGZvcmVpZ24tbmFtZSAsQGFyZ3MgLHJlc3VsdC10eXBl KSkpDQogICAgIytjb3JtYW5saXNwDQogICAgYChjdDpkZWZ1bi1kbGwgLGxp c3AtbmFtZSAoLGZ1bmN0aW9uLWFyZ3MpDQogICAgICAgOnJldHVybi10eXBl ICxyZXN1bHQtdHlwZQ0KICAgICAgICxAKGlmIG1vZHVsZSAobGlzdCA6bGli cmFyeS1uYW1lIG1vZHVsZSkgKHZhbHVlcykpDQogICAgICAgOmVudHJ5LW5h bWUgLGZvcmVpZ24tbmFtZQ0KICAgICAgIDpsaW5rYWdlLXR5cGUgLGNhbGxp bmctY29udmVudGlvbikgOyB3ZSBuZWVkIDpwYXNjYWwNCiAgICApKQ0KDQoN Cg0KDQo= --0-1018233897-1093581639=:67679 Content-Type: TEXT/x-csrc; charset=US-ASCII; name="uffi-c-test.c" Content-Transfer-Encoding: BASE64 Content-ID: <20040827004039.C67679-hPn5cYFhuWsSFmXig5rcr2jVSZ/[email protected]> Content-Description: Content-Disposition: attachment; filename="uffi-c-test.c" LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICogRklMRSBJREVO VElGSUNBVElPTg0KICogIA0KICogIE5hbWU6ICAgICAgICAgYy10ZXN0LWZu cy5jDQogKiAgUHVycG9zZTogICAgICBUZXN0IGZ1bmN0aW9ucyBpbiBDIGZv ciBVRkZJIGxpYnJhcnkNCiAqICBQcm9ncmFtZXI6ICAgIEtldmluIE0uIFJv c2VuYmVyZw0KICogIERhdGUgU3RhcnRlZDogTWFyIDIwMDINCiAqDQogKiAg Q1ZTIElkOiAgICRJZDogdWZmaS1jLXRlc3QuYyA5MzMwIDIwMDQtMDUtMTMg MDQ6MzQ6NDRaIGtldmluICQNCiAqDQogKiBUaGlzIGZpbGUsIHBhcnQgb2Yg VUZGSSwgaXMgQ29weXJpZ2h0IChjKSAyMDAyIGJ5IEtldmluIE0uIFJvc2Vu YmVyZw0KICoNCiAqIFVGRkkgdXNlcnMgYXJlIGdyYW50ZWQgdGhlIHJpZ2h0 cyB0byBkaXN0cmlidXRlIGFuZCB1c2UgdGhpcyBzb2Z0d2FyZQ0KICogYXMg Z292ZXJuZWQgYnkgdGhlIHRlcm1zIG9mIHRoZSBMaXNwIExlc3NlciBHTlUg UHVibGljIExpY2Vuc2UNCiAqIChodHRwOi8vb3BlbnNvdXJjZS5mcmFuei5j b20vcHJlYW1ibGUuaHRtbCksIGFsc28ga25vd24gYXMgdGhlIExMR1BMLg0K DQogKiBUaGVzZSB2YXJpYWJsZXMgYXJlIGNvcnJlY3QgZm9yIEdDQw0KICog eW91J2xsIG5lZWQgdG8gbW9kaWZ5IHRoZXNlIGZvciBvdGhlciBjb21waWxl cnMNCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCiNpZmRl ZiBXSU4zMg0KI2luY2x1ZGUgPHdpbmRvd3MuaD4NCg0KQk9PTCBXSU5BUEkg RGxsRW50cnlQb2ludChISU5TVEFOQ0UgaGluc3RkbGwsDQogICAgICAgICAg ICAgICAgICAgICAgICAgIERXT1JEIGZkd1JlYXNvbiwNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgTFBWT0lEIGxwdlJlc2VydmVkKQ0Kew0KICAgICAg ICByZXR1cm4gMTsNCn0NCiAgICAgICANCiNkZWZpbmUgRExMRVhQT1JUIF9f ZGVjbHNwZWMoZGxsZXhwb3J0KQ0KDQojZWxzZQ0KI2RlZmluZSBETExFWFBP UlQgDQojZW5kaWYNCg0KI2luY2x1ZGUgPGN0eXBlLmg+DQojaW5jbHVkZSA8 c3RkbGliLmg+DQojaW5jbHVkZSA8bWF0aC5oPg0KDQoNCkRMTEVYUE9SVCB1 bnNpZ25lZCBjaGFyIHVjaGFyXzEzID0gMTM7DQpETExFWFBPUlQgc2lnbmVk IGNoYXIgc2NoYXJfbmVnXzEyMCA9IC0xMjA7DQpETExFWFBPUlQgdW5zaWdu ZWQgc2hvcnQgdXdvcmRfMjU3ID0gMjU3Ow0KRExMRVhQT1JUIHNpZ25lZCBz aG9ydCBzd29yZF9uZWdfMzIxID0gLTMyMTsNCkRMTEVYUE9SVCB1bnNpZ25l ZCBpbnQgdWludF8xMjM0NTY3ID0gMTIzNDU2NzsNCkRMTEVYUE9SVCBzaWdu ZWQgaW50IHNpbnRfbmVnXzEyMzQ1NiA9IC0xMjM0NTY7DQpETExFWFBPUlQg ZG91YmxlIGRvdWJsZV8zXzEgPSAzLjE7DQpETExFWFBPUlQgZmxvYXQgZmxv YXRfbmVnXzRfNSA9IC00LjU7DQoNCi8qIFRlc3Qgb2YgY29uc3RhbnQgaW5w dXQgc3RyaW5nICovDQpETExFWFBPUlQNCmludA0KY3NfY291bnRfdXBwZXIg KGNoYXIqIHBzeikNCnsNCiAgaW50IGNvdW50ID0gMDsNCg0KICBpZiAocHN6 KSB7DQogICAgd2hpbGUgKCpwc3opIHsNCiAgICAgIGlmIChpc3VwcGVyICgq cHN6KSkNCgkrK2NvdW50Ow0KICAgICAgKytwc3o7DQogICAgfQ0KICAgIHJl dHVybiBjb3VudDsNCiAgfSBlbHNlIA0KICAgIHJldHVybiAtMTsNCn0NCg0K LyogVGVzdCBvZiBpbnB1dCBhbmQgb3V0cHV0IG9mIGEgc3RyaW5nICovDQpE TExFWFBPUlQNCnZvaWQNCmNzX3RvX3VwcGVyIChjaGFyKiBwc3opDQp7DQog IGlmIChwc3opIHsNCiAgICB3aGlsZSAoKnBzeikgew0KICAgICAgKnBzeiA9 IHRvdXBwZXIgKCpwc3opOw0KICAgICAgKytwc3o7DQogICAgfQ0KICB9DQp9 DQoNCi8qIFRlc3Qgb2YgYW4gb3V0cHV0IG9ubHkgc3RyaW5nICovDQpETExF WFBPUlQNCnZvaWQNCmNzX21ha2VfcmFuZG9tIChpbnQgc2l6ZSwgY2hhciog YnVmZmVyKQ0Kew0KICBpbnQgaTsNCiAgZm9yIChpID0gMDsgaSA8IHNpemU7 IGkrKykNCiAgICBidWZmZXJbaV0gPSAnQScgKyAocmFuZCgpICUgMjYpOw0K fQ0KDQogICAgDQovKiBUZXN0IG9mIGlucHV0L291dHB1dCB2ZWN0b3IgKi8N CkRMTEVYUE9SVA0Kdm9pZA0KaGFsZl9kb3VibGVfdmVjdG9yIChpbnQgc2l6 ZSwgZG91YmxlKiB2ZWMpDQp7DQogIGludCBpOw0KICBmb3IgKGkgPSAwOyBp IDwgc2l6ZTsgaSsrKQ0KICAgIHZlY1tpXSAvPSAyLjsNCn0NCg0KICAgIA0K DQpETExFWFBPUlQNCnZvaWQgKg0KY2FzdF90ZXN0X2ludCAoKSB7DQogIGlu dCAqeCA9IChpbnQgKikgbWFsbG9jKHNpemVvZihpbnQpKTsNCiAgKnggPSAy MzsNCiAgcmV0dXJuIHg7DQp9DQoNCkRMTEVYUE9SVA0Kdm9pZCAqDQpjYXN0 X3Rlc3RfZmxvYXQgKCkNCnsNCiAgZG91YmxlICp5ID0gKGRvdWJsZSAqKSBt YWxsb2Moc2l6ZW9mKGRvdWJsZSkpOw0KICAqeSA9IDMuMjE7DQogIHJldHVy biB5Ow0KfQ0KDQpETExFWFBPUlQNCmxvbmcNCnJldHVybl9sb25nX25lZ2F0 aXZlX29uZSAoKQ0Kew0KICByZXR1cm4gLTE7DQp9DQoNCkRMTEVYUE9SVA0K aW50DQpyZXR1cm5faW50X25lZ2F0aXZlX29uZSAoKQ0Kew0KICByZXR1cm4g LTE7DQp9DQoNCkRMTEVYUE9SVA0Kc2hvcnQNCnJldHVybl9zaG9ydF9uZWdh dGl2ZV9vbmUgKCkNCnsNCiAgcmV0dXJuIC0xOw0KfQ0KDQpETExFWFBPUlQg aW50IGZ2YXJfYWRkZW5kID0gMzsNCg0KdHlwZWRlZiBzdHJ1Y3Qgew0KICBp bnQgaTsNCiAgZG91YmxlIGQ7DQp9IGZ2YXJfc3RydWN0X3R5cGU7DQoNCmZ2 YXJfc3RydWN0X3R5cGUgZnZhcl9zdHJ1Y3QgPSB7NDIsIDMuMn07DQoNCkRM TEVYUE9SVA0KaW50IGZ2YXJfc3RydWN0X2ludCAoKSB7DQogIHJldHVybiAo ZnZhcl9hZGRlbmQgKyBmdmFyX3N0cnVjdC5pKTsNCn0NCg0KRExMRVhQT1JU DQpkb3VibGUgZnZhcl9zdHJ1Y3RfZG91YmxlICgpIHsNCiAgcmV0dXJuIGZ2 YXJfc3RydWN0LmQ7DQp9DQoNCkRMTEVYUE9SVA0Kdm9pZCB0ZXN0X2FyZ19v dXQoZmxvYXQgaW4sIGZsb2F0ICpvdXQpIHsNCiAgKm91dCA9IGluOw0KfQ0K DQpETExFWFBPUlQNCmludCB0ZXN0X2FyZ19hbmRfcmV0dXJuX291dCh1bnNp Z25lZCBpbnQgaW4sIHVuc2lnbmVkIGludCAqb3V0KSB7DQogICpvdXQgPSBp bjsNCiAgcmV0dXJuIDExOw0KfQ0K --0-1018233897-1093581639=:67679 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="uffi-c-test-lib.lisp" Content-Transfer-Encoding: BASE64 Content-ID: <20040827004039.M67679-hPn5cYFhuWsSFmXig5rcr2jVSZ/[email protected]> Content-Description: Content-Disposition: attachment; filename="uffi-c-test-lib.lisp" Ozs7OyAtKi0gTW9kZTogTGlzcDsgU3ludGF4OiBBTlNJLUNvbW1vbi1MaXNw OyBCYXNlOiAxMCAtKi0NCjs7OzsgKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKg0KOzs7OyBGSUxFIElERU5USUZJQ0FUSU9ODQo7Ozs7DQo7Ozs7IE5h bWU6ICAgICAgICAgIHVmZmktYy10ZXN0LWxpYi5saXNwDQo7Ozs7IFB1cnBv c2U6ICAgICAgIFVGRkkgRXhhbXBsZSBmaWxlIGZvciB6bGliIGNvbXByZXNz aW9uDQo7Ozs7IFByb2dyYW1tZXI6ICAgIEtldmluIE0uIFJvc2VuYmVyZw0K Ozs7OyBEYXRlIFN0YXJ0ZWQ6ICBNYXIgMjAwMg0KOzs7Ow0KOzs7OyAkSWQ6 IHVmZmktYy10ZXN0LWxpYi5saXNwIDk0MzIgMjAwNC0wNS0yMyAwMDozMzo1 OVoga2V2aW4gJA0KOzs7Ow0KOzs7OyBUaGlzIGZpbGUsIHBhcnQgb2YgVUZG SSwgaXMgQ29weXJpZ2h0IChjKSAyMDAyLTIwMDMgYnkgS2V2aW4gTS4gUm9z ZW5iZXJnDQo7Ozs7DQo7Ozs7ICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioNCg0KKGluLXBhY2thZ2UgIzp1ZmZpLXRlc3RzKQ0KDQoNCih1ZmZpOmRl Zi1mdW5jdGlvbiAoImNzX3RvX3VwcGVyIiBjcy10by11cHBlcikNCiAgKChp bnB1dCAoKiA6dW5zaWduZWQtY2hhcikpKQ0KICA6cmV0dXJuaW5nIDp2b2lk DQogICkNCg0KKGRlZnVuIHN0cmluZy10by11cHBlciAoc3RyKQ0KICAodWZm aTp3aXRoLWZvcmVpZ24tc3RyaW5nIChzdHItZm9yZWlnbiBzdHIpDQogICAg KGNzLXRvLXVwcGVyIHN0ci1mb3JlaWduKQ0KICAgICh1ZmZpOmNvbnZlcnQt ZnJvbS1mb3JlaWduLXN0cmluZyBzdHItZm9yZWlnbikpKQ0KDQoodWZmaTpk ZWYtZnVuY3Rpb24gKCJjc19jb3VudF91cHBlciIgY3MtY291bnQtdXBwZXIp DQogICgoaW5wdXQgOmNzdHJpbmcpKQ0KICA6cmV0dXJuaW5nIDppbnQpDQoN CihkZWZ1biBzdHJpbmctY291bnQtdXBwZXIgKHN0cikNCiAgKHVmZmk6d2l0 aC1jc3RyaW5nIChzdHItY3N0cmluZyBzdHIpDQogICAgKGNzLWNvdW50LXVw cGVyIHN0ci1jc3RyaW5nKSkpIA0KDQoodWZmaTpkZWYtZnVuY3Rpb24gKCJo YWxmX2RvdWJsZV92ZWN0b3IiIGhhbGYtZG91YmxlLXZlY3RvcikNCiAgICAo KHNpemUgOmludCkNCiAgICAgKHZlYyAoKiA6ZG91YmxlKSkpDQogIDpyZXR1 cm5pbmcgOnZvaWQpDQoNCih1ZmZpOmRlZi1mdW5jdGlvbiAoInJldHVybl9s b25nX25lZ2F0aXZlX29uZSIgcmV0dXJuLWxvbmctbmVnYXRpdmUtb25lKQ0K ICAgICgpDQogIDpyZXR1cm5pbmcgOmxvbmcpDQoNCih1ZmZpOmRlZi1mdW5j dGlvbiAoInJldHVybl9pbnRfbmVnYXRpdmVfb25lIiByZXR1cm4taW50LW5l Z2F0aXZlLW9uZSkNCiAgICAoKQ0KICA6cmV0dXJuaW5nIDppbnQpDQoNCih1 ZmZpOmRlZi1mdW5jdGlvbiAoInJldHVybl9zaG9ydF9uZWdhdGl2ZV9vbmUi IHJldHVybi1zaG9ydC1uZWdhdGl2ZS1vbmUpDQogICAgKCkNCiAgOnJldHVy bmluZyA6c2hvcnQpDQoNCih1ZmZpOmRlZi1mdW5jdGlvbiAoInRlc3RfYXJn X291dCIgJXRlc3QtYXJndW1lbnQtb3V0KQ0KICAgICgoaW4gOmZsb2F0KQ0K ICAgICAob3V0IDpmbG9hdCA6b3V0KSkNCiAgOnJldHVybmluZyA6dm9pZCkN Cg0KKGRlZnVuIHRlc3QtYXJndW1lbnQtb3V0IChpbikNCiAgKG11bHRpcGxl LXZhbHVlLWJpbmQgKHJldCBvdXQpDQogICAgICAoJXRlc3QtYXJndW1lbnQt b3V0IGluKQ0KICAgICg9IG91dCBpbikpKQ0KDQoodWZmaTpkZWYtZnVuY3Rp b24gKCJ0ZXN0X2FyZ19hbmRfcmV0dXJuX291dCIgJXRlc3QtYXJndW1lbnQt YW5kLXJldHVybi1vdXQpDQogICAgKChpbiA6dW5zaWduZWQtaW50KQ0KICAg ICAob3V0IDp1bnNpZ25lZC1pbnQgOm91dCkpDQogIDpyZXR1cm5pbmcgOmlu dCkNCg0KKGRlZnVuIHRlc3QtYXJndW1lbnQtYW5kLXJldHVybi1vdXQgKGlu KQ0KICAobXVsdGlwbGUtdmFsdWUtYmluZCAocmV0IG91dCkNCiAgICAgICgl dGVzdC1hcmd1bWVudC1hbmQtcmV0dXJuLW91dCBpbikNCiAgICAoYW5kICg9 IGluIG91dCkgKD0gMTEgcmV0KSkpKQ0KDQoodWZmaTpkZWYtY29uc3RhbnQg K2RvdWJsZS12ZWMtbGVuZ3RoKyAxMCkNCihkZWZ1biB0ZXN0LWhhbGYtZG91 YmxlLXZlY3RvciAoKQ0KICAobGV0ICgodmVjICh1ZmZpOmFsbG9jYXRlLWZv cmVpZ24tb2JqZWN0IDpkb3VibGUgK2RvdWJsZS12ZWMtbGVuZ3RoKykpDQoJ cmVzdWx0cykNCiAgICAoZG90aW1lcyAoaSArZG91YmxlLXZlYy1sZW5ndGgr KQ0KICAgICAgKHNldGYgKHVmZmk6ZGVyZWYtYXJyYXkgdmVjICcoOmFycmF5 IDpkb3VibGUpIGkpIA0KCSAgICAoY29lcmNlIGkgJ2RvdWJsZS1mbG9hdCkp KQ0KICAgIChoYWxmLWRvdWJsZS12ZWN0b3IgK2RvdWJsZS12ZWMtbGVuZ3Ro KyB2ZWMpDQogICAgKGRvdGltZXMgKGkgK2RvdWJsZS12ZWMtbGVuZ3RoKykN CiAgICAgIChwdXNoICh1ZmZpOmRlcmVmLWFycmF5IHZlYyAnKDphcnJheSA6 ZG91YmxlKSBpKSByZXN1bHRzKSkNCiAgICAodWZmaTpmcmVlLWZvcmVpZ24t b2JqZWN0IHZlYykNCiAgICAobnJldmVyc2UgcmVzdWx0cykpKQ0KDQooZGVm dW4gdDIgKCkNCiAgKGxldCAoKHZlYyAobWFrZS1hcnJheSArZG91YmxlLXZl Yy1sZW5ndGgrIDplbGVtZW50LXR5cGUgJ2RvdWJsZS1mbG9hdCkpKQ0KICAg IChkb3RpbWVzIChpICtkb3VibGUtdmVjLWxlbmd0aCspDQogICAgICAoc2V0 ZiAoYXJlZiB2ZWMgaSkgKGNvZXJjZSBpICdkb3VibGUtZmxvYXQpKSkNCiAg ICAoaGFsZi1kb3VibGUtdmVjdG9yICtkb3VibGUtdmVjLWxlbmd0aCsgdmVj KQ0KICAgIHZlYykpDQoNCiMrKG9yIGNtdSBzY2wpDQooZGVmdW4gdDMgKCkN CiAgKGxldCAoKHZlYyAobWFrZS1hcnJheSArZG91YmxlLXZlYy1sZW5ndGgr IDplbGVtZW50LXR5cGUgJ2RvdWJsZS1mbG9hdCkpKQ0KICAgIChkb3RpbWVz IChpICtkb3VibGUtdmVjLWxlbmd0aCspDQogICAgICAoc2V0ZiAoYXJlZiB2 ZWMgaSkgKGNvZXJjZSBpICdkb3VibGUtZmxvYXQpKSkNCiAgICAoc3lzdGVt OndpdGhvdXQtZ2NpbmcNCiAgICAgKGhhbGYtZG91YmxlLXZlY3RvciArZG91 YmxlLXZlYy1sZW5ndGgrIChzeXN0ZW06dmVjdG9yLXNhcCB2ZWMpKSkNCiAg ICB2ZWMpKQ0KICAgIA0KKGRlZnRlc3QgYy10ZXN0LjEgKHN0cmluZy10by11 cHBlciAidGhpcyBpcyBhIHRlc3QiKSAiVEhJUyBJUyBBIFRFU1QiKQ0KKGRl ZnRlc3QgYy10ZXN0LjIgKHN0cmluZy10by11cHBlciBuaWwpIG5pbCkNCihk ZWZ0ZXN0IGMtdGVzdC4zIChzdHJpbmctY291bnQtdXBwZXIgIlRoaXMgaXMg YSBUZXN0IikgMikNCihkZWZ0ZXN0IGMtdGVzdC40IChzdHJpbmctY291bnQt dXBwZXIgbmlsKSAtMSkNCihkZWZ0ZXN0IGMtdGVzdC41ICh0ZXN0LWhhbGYt ZG91YmxlLXZlY3RvcikNCiAgKDAuMGQwIDAuNWQwIDEuMGQwIDEuNWQwIDIu MGQwIDIuNWQwIDMuMGQwIDMuNWQwIDQuMGQwIDQuNWQwKSkNCihkZWZ0ZXN0 IGMtdGVzdC42IChyZXR1cm4tbG9uZy1uZWdhdGl2ZS1vbmUpIC0xKQ0KKGRl ZnRlc3QgYy10ZXN0LjcgKHJldHVybi1pbnQtbmVnYXRpdmUtb25lKSAtMSkN CihkZWZ0ZXN0IGMtdGVzdC44IChyZXR1cm4tc2hvcnQtbmVnYXRpdmUtb25l KSAtMSkNCihkZWZ0ZXN0IGMtdGVzdC45ICh0ZXN0LWFyZ3VtZW50LW91dCAx MC4wMSkgVCkNCihkZWZ0ZXN0IGMtdGVzdC4xMCAodGVzdC1hcmd1bWVudC1h bmQtcmV0dXJuLW91dCAxMjMxKSBUKQ0KDQo= --0-1018233897-1093581639=:67679 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ UFFI-Devel mailing list [email protected] http://lists.b9.com/mailman/listinfo/uffi-devel --0-1018233897-1093581639=:67679--