Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
2 <strong>Debian</strong> <strong>Code</strong> <strong>Search</strong>: <strong>An</strong> <strong>Overview</strong><br />
getaddrinfo 2 ; Or finding all calls of the old ifconfig and route utilities 3 .<br />
• Judge whether a function is in wide-spread use before depending on it in a project.<br />
<strong>An</strong> example is the function pthread_mutexattr_setpshared. After having read the<br />
documentation, you might still wonder whether this function is widely supported, for<br />
example on other UNIX operating systems such as FreeBSD, and whether you are using<br />
it as its authors intended. <strong>Debian</strong> <strong>Code</strong> <strong>Search</strong> reveals that the Apache web server uses<br />
the function, so depending on it should not lead to bad surprises.<br />
Being a <strong>Debian</strong> project, it is important that all parts of the system are available as FLOSS<br />
themselves. This ensures that anyone can send improvements and prevents single points of<br />
failure: when the current maintainer cannot continue for some reason, other people can take<br />
over.<br />
2.2 Other search engines<br />
Of course, the idea of a code search engine is not a novel idea. There are several code<br />
search engines available on the web currently, and others have been available in the past.<br />
Unfortunately, many are too specific because they only support one programming language,<br />
have a very small source code corpus or do not deliver high-quality results.<br />
Nullege http://nullege.com is a language-specific code search engine for Python. Its<br />
corpus contains 21 630 open-source projects 4 as of 2012-12-07, typically hosted on<br />
github or SourceForge. Nullege uses its own search engine 5 .<br />
Unfortunately, more detailed information about nullege is sparse. There is no research<br />
paper about it. <strong>Search</strong>ing for “nullege” on nullege yields no results, therefore it has to<br />
be assumed that nullege is not open source.<br />
Sourcerer sourcerer is a language-specific code search engine for Java. It is a research<br />
project from University of California, Irvine. sourcerer’s corpus contains 1555 open<br />
source Java projects.<br />
Unfortunately, the public version of sourcerer is broken at the moment and only returns<br />
an HTTP 404 error.<br />
Koders http://koders.com is a code search engine for open source code. After being<br />
acquired by Black Duck Software in 2008, the public site remains free to use 6 , but<br />
(private) code search is a component of the Black Duck Suite. Koders’ corpus contains<br />
3.3 billion lines of code, but is not actively updated at the moment because the whole<br />
Koders software is in flux. 7<br />
2 This is worthwhile because getaddrinfo is required for correctly implementing IPv6. Full IPv6 support is a<br />
<strong>Debian</strong> Release Goal: http://wiki.debian.org/ReleaseGoals/FullIPv6Support<br />
3 Done without a search engine by Adam Borowski in this discussion on the <strong>Debian</strong> development list:<br />
http://lists.debian.org/debian-devel/2012/08/msg00163.html<br />
4 Nullege searches open source projects according to http://nullege.com/pages/about. The exact number<br />
of projects is visible on http://nullege.com<br />
5 https://twitter.com/nullege/status/7637551310<br />
6 http://en.wikipedia.org/wiki/Koders<br />
7 http://corp.koders.com/about/<br />
4