2011-03-04 2 views
0

나는 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.cLXR for Ruby interpreter?

확실히 내 컴퓨터에 LXR을 설치할 수 있지만 루비에 대한 공용 LXR이 있다면 누구나 알 수 있습니까? Google은별로 도움이되지 않습니다. http://www.google.com/search?ie=UTF-8&q=lxr+ruby

답변

1

아직 MRI 용 공개 LXR을 찾지 못해서 내 컴퓨터에 하나를 설정했습니다. 여기에 우분투 10.10에 그것을 할 방법은 다음과 같습니다

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

Options All 
AllowOverride All 

: [email protected]; sudo vim /usr/share/lxr/http/.htaccess 
: [email protected]; sudo cat /usr/share/lxr/http/.htaccess 

SetHandler cgi-script 

: [email protected]; sudo mkdir -p /usr/share/lxr/source/1.8.7-p334 
: [email protected]; cd /usr/share/lxr/source/1.8.7-p334 
: [email protected]; sudo tar xvjf /tmp/ruby-1.8.7.tar.bz2 
: [email protected]; sudo mv ruby-1.8.7 ruby 
: [email protected]; sudo vim /usr/share/lxr/source/versions 
: [email protected]; sudo cat /usr/share/lxr/source/versions 
1.8.7-p334 
: [email protected]; sudo ln -s /usr/share/lxr/source/1.8.7-p334 /usr/share/lxr/source/defversion 
: [email protected]; 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. 
: [email protected]; sudo chmod -R o+r . 
: [email protected]; sudo vim /usr/share/lxr/http/lxr.conf 
: [email protected]; sudo cat /usr/share/lxr/http/lxr.conf 
# Configuration file. 
# [...] 
# The source is here. 
sourceroot: /usr/share/lxr/source/$v/ruby/ 
srcrootname: Ruby 
# [...] 
0

LXR이 아니지만 최근에 그랬습니다. Understand 매우 유용합니다. 그것은 임의의 기호를 클릭하고 정의/선언으로 이동하고 간단한 콜 그래프 및 기타 정적 분석을 수행하게합니다. 그저 루비 소스를 지원하기를 바랍니다.

libxml도 여전히 절망적입니다. Nokogiri로 마이그레이션 할 수 있다면 슬픔을 많이 줄일 수 있습니다. API는 매우 유사합니다.

+0

감사를 일반적으로 사용하기 위해 다른 코드의 크로스 레퍼런스 사이트를 소개합니다. 나는 Nokogiri를 조사 할 것이다. 우리는 libxml/Ruby 버그에 대한 해결 방법을 찾았습니다. 주로 패치를 즐기기 때문에 패치 작업을 할 수 있습니다. ;) –