Catching up on DXR blogging
<@taras> you should blog that
< andrew> you should blog more about that project
My students have a first release due today by midnight, and all day I've been watching attachments go up on bugs and demos getting posted online. It's been really cool to watch how far many of them have gotten with their 0.1 release on a Mozilla project.
I blogged earlier in the term that I would be working on my own stuff in parallel, in the form of DXR (though I ended up doing a bunch of Thunderbird bugs too, which were also useful for teaching). DXR is a web-based source code indexing tool that incorporates static analysis data. You can read more about it here, watch a demo, and try it out yourself.
My work since then has been focused on plumbing vs. new features I can easily demo. I've rewritten the back-end in order to make it faster. When I started this work it took ~400 mins to do a full index and generate static html for the source of mozilla-central (Firefox) and comm-central (Thunderbird, Suite) together. After lots of experiments, deleting code, and digging into python, I have this down to ~100 mins. This means it's now fast enough that I can start doing constant re-indexing of our source. I'm going to be testing this over the weekend to work out a few more kinks. Taras has been working on getting a dedicated box at Mozilla, so we can use it in production, which will make it better than the demo I have up now. Once that's in place, I'll see about setting it up there.
I'm also working on front-end fixes and data improvements, as described on this wiki page. If you have other ideas for things you'd like to see, add them to the wiki or talk to me on irc (humph). Many very useful things are easy to add, for example, bz wanted a way to query for derived:nsIFoo::GetBar so I added that today (it's not in the demo yet, but will be next week), . You can also file bugs for DXR in Mozilla's bugzilla under WebTools:DXR.
Next week Taras Glek and Benjamin Smedberg descend on Toronto for FSOSS (Taras and I have a talk at FSOSS about Dehydra and DXR), and we are going to spend some time Tuesday planning more of the work that will be done in the coming months. Benjamin has already written a patch to move my changes to xpidl into his python version of the same. I'm looking forward to seeing them again after so much time just on irc, and to getting to talk with them about ideas I have for next steps.
The fall has been tremendously exciting and busy, with Mozilla Education and Seneca Mozilla teaching taking the bulk of my time. It's fantastic to be so busy with my own and other students, and to be helping profs get started doing the same. However, I haven't lost track of DXR, and am actively working on it with the remaining time I have. Thanks to all of you who have given me feedback, reported bugs, and generally encouraged me with this work. It's very rewarding when you know that others are interested and cheering you on.
P.S. I was also asked to add a new web front-end for Mozilla's static analysis tools, dehydra and jshydra. Jason Orendorff named "View Source" and you can try it out here, download a tarball here, or get the source here. It is much easier than setting up your own environment for doing debugging of analysis scripts or looking at small test cases. Here's what it looks like: