Today I made a new Synopsis release. Its main feature is an updated Cpp processor (aka. ‘preprocessor’) which is able to annotate macros and cross-reference them, just as Synopsis does with C and C++ declarations.
I updated the ucpp version that is used as backend. Hacking the required support hooks into that was surprisingly delicate.
Unfortunately, ucpp’s author and boost’s preprocessor experts disagree on the interpretation of the CPP specification, resulting in it not being able to process an important part of boost correctly.
A couple of years ago I attempted to use boost.wave as an alternative Cpp processor backend. Unfortunately, that has its own share of bugs, which very much restrict its usefulness, at least for applications such as Synopsis.



I have recently completed a 1-month sabbatical that allowed me to work on Roundup. A big part of that consisted in pushing upstream lots of small (and occasionally not so small) fixes and enhancements that we developed at CodeSourcery. (For example, we dramatically improved performance for serving (large) files.)
I also worked on the XMLRPC frontend (hoping that this will allow customized client applications to be written).
Overall, I’m very happy with this work. As I knew I was going to work on this, I started by rewriting the Roundup website (discovering sphinx in the process), and migrating Roundup’s own bug tracker away from, near the tracker. (We are finally self-hosting !)
The desired effect was to help revive the Roundup community (both, user and developer). It seems this worked well: now we even have a candidate project for this year’s Google Summer of Code !