Now that I've gotten my rendering library and markup stuff underway, I've been trying to create a saner implementation of gzochi using Glib on the server to shore up the threading and event handling. Glib is quite useful in this regard, though I'm avoiding using it in the client library for the sake of portability (which is probably a bit of a pie-in-the-sky concern at the moment). I'm thinking I might ditch the SourceForge project I set up so long ago, since the code base is completely different this point, and re-create it on Savannah.
Don't get me wrong: I love GUILE with a fierce, enduring love, but its shortcomings can be sort of infuriating. Case in point -- I wanted to write an exception handler that would print out a stack trace for Scheme errors in gzochi. Forgetting the fact that Scheme exceptions are like C++'s in that you can "throw" whatever you want, you should be able to retrieve / manipulate stack information programmatically because, hey, it's a scripting language, not native code, and I was getting hints from Google and friendly folk on IRC towards various ways I could do this the "right way," but, ultimately, it turns out this is how you dump stack traces in 1.8:
SCM_DEVAL_P = 1; SCM_BACKTRACE_P = 1; SCM_RECORD_POSITIONS_P = 1; SCM_RESET_DEBUG_MODE;Ugh.