29 November, 2005

Cut and iced. That's all the source

As I said in a previous post, I've been collecting source code to examine. Candidates have included the three major free BSD world trees (i.e. what's in their source tarballs), OpenSolaris world, and of course, the Linux kernel (world's a bit big to reasonably subset in Linux). I've also added some GNU software - glibc, gcc, flex, binutils, coreutils, etc etc. NetBSD world is nuts, I had to spread it over three CDs, although if I thought about it properly, I would have put NetBSD on just two CDs, and packed out the second CD with something small, like some of the GNU utility programs. As it is, I've thrown current copies of the state of play for X11 for Xorg, NetBSD and OpenBSD all on an additional CD, so I've ended up doing a bit of burning. Other stuff includes sed, awk, and even grep. Thankfully I don't have any more major examples of sourcecode to ice, having done the major ones I wanted. Theoretically, if I examine the current state of play for commonly used programs, I may have a tutorial of good clean code to learn from. And with tools like openGrok to format the sourcecode, I may even be able to trace changes in the code, though code like flex and make hasn't changed for a very long time. OpenGrok (from the Open Solaris project) is a sourcecode browser and indexing application that provides a full-text search front end to any source code you index with it. In my view it is a bit complicated just to do code viewing and diff'ing. The web application (currently) installs within a TomCat server, and the database is prepared with a java console tool. It seems a bit complicated to have to create the database from existing sourcecode, then go and open up the source.war file, edit the web.xml file, then rezip everything back up into another .war file for deploying on to Tomcat. I don't imagine the average Windows refugee wanting to do that every time she wanted to view a different source tree. However I haven't given the application a very hard job, and I do like the job it does. Imagine that it's a java front end to a ctags database, and so far you'll have almost my total understanding of the application. I'll let you know if I do anything much more with it.

No comments: