LXR for Ruby解释器?

时间:2011-03-04 14:17:26

标签: c ruby

我正在尝试track down a bug caused by the intersection of MRI 1.8.7 and libxml-1.1.3,我需要在Ruby解释器本身的代码库中进行一些挖掘。 SVN browser的效用有限;我真正喜欢的是使用LXR,它超链接C代码库以便于导航,例如http://lxr.linux.no/perl+perl-5.10.1/utf8.c

我当然可以在我的机器上设置LXR,但有没有人知道是否有适用于Ruby的公共LXR?谷歌不是很有帮助:http://www.google.com/search?ie=UTF-8&q=lxr+ruby

3 个答案:

答案 0 :(得分:1)

我还没有找到用于MRI的公共LXR,所以我在我的机器上设置了一个。以下是在Ubuntu 10.10上的操作方法:

: josh@josh; cat /etc/issue
Ubuntu 10.10 \n \l
: josh@josh; sudo aptitude install apache2 lxr
: josh@josh; sudo vim /etc/apache2/sites-available/default
: josh@josh; tail -6 /etc/apache2/sites-available/default
Alias /lxr /usr/share/lxr

Options All
AllowOverride All

: josh@josh; sudo vim /usr/share/lxr/http/.htaccess
: josh@josh; sudo cat /usr/share/lxr/http/.htaccess

SetHandler cgi-script

: josh@josh; sudo mkdir -p /usr/share/lxr/source/1.8.7-p334
: josh@josh; cd /usr/share/lxr/source/1.8.7-p334
: josh@josh; sudo tar xvjf /tmp/ruby-1.8.7.tar.bz2
: josh@josh; sudo mv ruby-1.8.7 ruby
: josh@josh; sudo vim /usr/share/lxr/source/versions
: josh@josh; sudo cat /usr/share/lxr/source/versions
1.8.7-p334
: josh@josh; sudo ln -s /usr/share/lxr/source/1.8.7-p334 /usr/share/lxr/source/defversion
: josh@josh; sudo genxref ruby
Starting pass 1: Collect identifier definitions.
(Pass 1) vms/vmsruby_private.c (993), file 1 of 262…
[...]
(Pass 3) identifier 8200 of maximum 17136…
(Pass 3) identifier 8300 of maximum 17136…
Completed pass 3 (0s):Information on 8316 identifiers dumped to disk.
: josh@josh; sudo chmod -R o+r .
: josh@josh; sudo vim /usr/share/lxr/http/lxr.conf
: josh@josh; sudo cat /usr/share/lxr/http/lxr.conf
# Configuration file.
# [...]
# The source is here.
sourceroot: /usr/share/lxr/source/$v/ruby/
srcrootname: Ruby
# [...]

答案 1 :(得分:0)

它不是LXR,但最近我做了很多,发现Understand非常有帮助。它允许您单击任何符号并转到定义/声明并执行简单的调用图形和其他静态分析。我只是希望它也支持Ruby源代码。

另一方面,libxml仍然无可救药地被破坏,如果你可以迁移到Nokogiri它会给你带来很多悲伤。他们的API非常相似。

答案 2 :(得分:0)

引入另一个代码交叉引用站点,除了linux内核之外一般用途 https://code-grep.com