Have you ever wanted to know what exactly VALUE is? Wondered about
rb_str_new2
implementation? Tried to grep some obscure function? If your answer is
yes,
then RXR is for you!
Grep is from stone age. The Cross Reference, a tool which originally
was written
to index Linux kernel sources, will instantly find declaration and all
references
to an identifier, converts tokens in source file to convenient links
and even
has some full-text search capabilities.
Three versions of Ruby source tree are indexed: 1.8.7, 1.9.2 and HEAD,
all taken
from Ruby mirror on GitHub and updated daily.
I don’t know if you’ve been hacking on LXR yourself, but I thought I’d
let you know about some issues I’ve seen with parsing of Ruby files.
First: an underscore sometimes gets split apart from the word it
belongs to, and cross-referenced, as with line 139 with “def
self.load(str)" at http://rxr.whitequark.org/rubinius/source/kernel/common/tuple.rb. In
that case, the text for “load” is not a link; just "”. Line 134 with
“def _dump(depth)” in the same file correctly treats “_dump” as one
word.
Another thing I notice in that file is that argument names are
sometimes cross-referenced and sometimes not; e.g. “depth” in _dump
is, but not “str” in _load. This might be related to the previous
issue.
Finally, method names like “==” and “[]” aren’t cross-referenced.
On Sat, 16 Apr 2011 14:54:59 +0900, Eric C. wrote:
I’d
Another thing I notice in that file is that argument names are
sometimes cross-referenced and sometimes not; e.g. “depth” in _dump
is, but not “str” in _load. This might be related to the previous
issue.
Finally, method names like “==” and “[]” aren’t cross-referenced.
Thanks.
Yes, I’ve hacked on LXR code itself (i.e. reworked all the templates,
fixed a few bugs etc.), and it does not have Ruby support out of the
box. I’ve added something, but… the whole LXR and the parsing code
particularily is… well, it is a huge crappy heap of most obscure Perl
code I’ve seen in my entire life.
I definitely lack the knowledge needed to add proper Ruby support. I
slowly
explore things out, but if you (or anyone else) may help, that would be
very great!