xmpp: libstrophe stanza bindings, gray streams, SWANK support (!)
- We now have some bindings to libstrophe's stanza creation and getter functions. - Stanzas coming from C->Lisp get all of their properties (children, name, attrs) read out as Lisp objects when crossing the FFI boundary. You can't currently mutate them, but it's unclear when you'd really want to do that. - Lisp code can create stanzas by instantiating a NODE-STANZA or a TEXT-STANZA, which creates a libstrophe stanza behind the scenes and does the necessary libstrophe calls to add all the Lisp properties to the C object. - The STANZAIZE macro is a nice CXML-style overlay to make stanzas in Lisp. - (and it's possible to verify its function with RENDER-STANZA, which is libstrophe-backed!) - A Gray stream is used to redirect *STANDARD-OUTPUT* and *ERROR-OUTPUT* to weechat's weechat_printf() function, so it doesn't mess up the terminal (and you can actually see it, too). - An *incredibly* hacky support file to make Emacs' SLIME/SWANK work is now included. - This required hacking up SWANK's :FD-HANDLER support to integrate with weechat's event loop. - The WEE-IMPL::HOOK-FD function can be used to register a callback when a given file descriptor is readable. - However, the SWANK code is architected rather stupidly, and needed some bodging to get everything to work. - This can and should be done more cleanly in future. - Also, attempting to do 2 connections currently crashes WeeChat...
Loading
Please register or sign in to comment