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 sign in to comment