Thanks to Radek’s tireless work, CWS cairocanvas is now finally integrated (into the 2.0.3 code line). Took about eight months to get there, and now provides a nicely anti-aliased slideshow experience, with even the alpha effects running at a decent speed.
The downside: you need a fairly recent X server and cairo 1.0.x on your system.
After having played
a bit with cpd, I
went searching for more elaborate source code analysis tools. And there are some, even in the FLOSS realm:
- pygccxml, a gcc plugin to generate XMLized
output from the AST (plus a python framework to actually work with this representation).
- gccxml, quite similar to pygccxml, focused on extracting declarations
- synopsis, a standalone parser plus analysis framework – a bit lacking
for c++, which is inherently hard to parse.
- opencxx, same as above (actually a predecessor/inspiration for synopsis)
- rtlcheck, a gcc plugin that extracts code on the RTL (register-transfer level).
Currently, seems to be used only for c, extending that to c++ should be both easy & rewarding (as rtlcheck appears to be the
most elaborate project of all listed).
- Also quite interesting, though with different scope (being a runtime-analysis tool) is the
Design Recovery Tool, roughly characterizable as a means to get from UI
actions to the code involved processing them.
I do like the gcc patching/plugin approach the most, knowing how complex it is to get c++ parsing even half-way right. And as OpenOffice.org is such a beast, code-size wise, getting all the help we could from automatic tools appears wise to me.
Quite coincidentally, after having rambled about everybody rolling their own copy-on-write implementations, I’ve found severe issues with some of the COW implementations in VCL. Most notably, they employ 16 bit refcounts – which is a bad idea indeed, when used for objects that occur ten thousands of times, e.g. in metafiles. brrr.
Thus, this needs some larger fixups, work for that is going to happen in CWS cowfixes01.