BXR.SU, Super User's BSD Cross Reference w/ OpenGrok, publicly private beta
Constantine Aleksandrovich Murenin
C++ at Cns.SU
Mon Apr 1 01:41:56 PDT 2013
Dear users@,
It is my great pleasure to announce the immediate availability of a
publicly private IPv6-only beta test of BXR.SU -- Super User's BSD Cross
Reference.
BXR.SU is based on an OpenGrok fork, but it's more than just OpenGrok.
We've fixed a number of annoyances, eliminated features that just never
worked right from the outright, and provided integration with tools like
CVSweb (including awesome mirrors like allbsd.org), FreeBSD's ViewVC
(SVN), as well as Gitweb from git.freebsd.your.org, plus a tad of other
improvements, including a complete rewrite of an mdoc parser. Last, but
definitely not least, is an extensive set of nginx rewrite rules that
makes it a breeze to use BXR.SU as a deterministic URL compactor for
referencing BSD source code.
What's up with the publicly private beta test?
We're launching today in a publicly private beta. Participation in the
beta is invitation-only; everyone with IPv6 is invited.
We're cooperating with ISPs around the world, and in order to be able to
access BXR.SU during this beta phase, you must have a special token,
also known as a publicly routable IPv6-address, with proper
IPv6-connectivity and upstream peering. If you don't have IPv6 yet, but
want to participate in this beta test ASAP, then ask your ISP for IPv6
ASAP! Else, if your ISP is not part of our beta rollout, you could try
something like tunnelbroker.net from he.net.
What's the release schedule?
BXR.SU is available through IPv6 today, 2013-04-01. It is currently an
IPv6-only site, with an IPv6-only glue, too.
As an IPv6-only site, we hereby declare that 2013-04-04 is an IPv4 day.
On April 4, we will temporarily enable IPv4 connectivity, for one day,
to test the water. (We've heard that IPv4 has some connectivity issues
related to NAT, double-NAT, carrier-grade NAT and NAT64, and some small
percentage of users (but significant in absolute terms) might not be
able to access the site if an A record is published, due to the
plentiful of misconfigurations out there; so, we want to take things
slow, and ensure our users don't suffer from any inferior connectivity.)
If things do go well (we expect IPv6/IPv4-related improvements as time
goes by), we will permanently publish an A record for BXR.SU on 2013-04-14.
IPv4 glue records will be published shortly thereafter, on 2013-04-24
(we don't do this today, because we're afraid that the nameservers of
some ISPs are not configured correctly, and our IPv6 users won't be able
to access our site otherwise, so, we think it's a good idea to take
things slow and in steps).
But why another OpenGrok?
Over the years, there have been a number of OpenGrok installations that
have made it possible to study and grok BSD code, for which we are very
thankful to their maintainers. However, as a general rule, none of them
have been inclusive of all BSD flavours, all of them have had rather
long and hard-to-remember URLs, which also didn't really look permanent
at all, and, unfortunately, many of them no longer exist today, or some
new uber-inclusive services like code.metager.de have recently
flourished, with an astounding 8 second (yes, eight second) delay for
satisfying any single search query (hot queries are returned in as
little as just under 4 seconds by metager, yet everything is nonetheless
buffered, so, you get no rendering at all for those whole 4 or 8
seconds). So, we thought this had to change.
So, what's the deal?
It's simple.
Say, someone doesn't know who PHK is. You can point them to:
http://bxr.su/s?q=phk
Want to see if DragonFly keeps queue.h in sync? Take a look at:
http://bxr.su/d/sys/sys/queue.h
Want to look at FreeBSD's queue.h, to manually compare? Just change the
"d" from "/d/" (or select and replace the whole world "DragonFly" from
"/DragonFly/") to "f", and you're in FreeBSD:
http://bxr.su/f/sys/sys/queue.h
Too many /sys/sys/? We've still got you covered, thanks to nginx:
http://bxr.su/o/queue.h
Anyone uses TAILQ_SWAP? Is that a new thing? Check it out:
http://bxr.su/search?q=TAILQ_SWAP
Any mentions of "OpenBSD" or "NetBSD" in FreeBSD and DragonFly?
http://bxr.su/f,d/s?q=OpenBSD+OR+NetBSD
Who's this guy writing this email anyway? Is he BXR'able?
http://bxr.su/s?q=%22Constantine%20A.%20Murenin%22%20OR%20cnst
Etc.
Just how fast is BXR.SU?
We expect that most search requests should be fulfilled (search page
results generated) in well under 100ms. In my tests, and according to
OpenGrok metrics at the bottom of each search page, most search pages
are generated in about 30 to 50ms, so, it does seem like there's some
room to spare. In addition, of course we use nginx, so, once generated
at 40ms, a page should be available immediately in no time should a
subsequent identical request come along within a couple of seconds or so.
How does it compare with fxr.watson.org?
+ we're based on OpenGrok, instead of LXR
+ we also index userland of all BSDs, not just the kernels like the fxr
+ we do daily updates and re-index of all 4 BSDs
- we only track -CURRENT of each BSD
+ the -current that we track is actually current
Is this a replacement to nxr.netbsd.org?
Not necessarily. We've noted that the /gnu/ and /contrib/ directories
of various BSDs have been constantly giving out lots of false positives
on all kinds of search queries, and they have been excluded, for both
the accuracy and disc space utilisation. This only affects userland,
and mostly excludes stuff that noone really cares about anyways (some
exceptions were made, and this is not really in stone anyways).
Otherwise, BXR.SU is much faster than the nxr -- nxr search is
unbuffered, but takes several seconds on cold runs, and about half a
second on hot runs.
How does it compare with code.metager.de?
+ we're over 20000% faster (0.04s vs. 8s). 'nuff said.
I welcome comments, questions and suggestions. I hope that this site
will be useful to the BSD community, and will join other great and
invaluable BSD-related sites that we all use and depend on.
In summary, what's unique about bxr.su?
* Supports all 4 BSDs
* Daily updates
* Short URLs, deterministic URL shortener for BSD source code
* Kernel + non-gnu userland
* Very fast -- most search pages generated in under 50ms
* IPv6-only for now, will be dual-stacked very soon
Enjoy!
Constantine.
More information about the Users
mailing list