October 18, 2007

rdocで生成されるyamlのファイルがへん?

multilibの都合で、例えばi386とx86_64で同一パス上にインストールされるようなファイルは中身は同じでなければならない、という条件があって、これが違うとrpmはファイルが衝突してると怒るわけだけれども、rdocで生成されるなんちゃら.yamlのファイルでi386とx86_64で結果が違うという問題に遭遇した。

ちなみに結果は以下のとおり:
system/Kernel/warn-i.yaml at i386:
--- !ruby/object:RI::MethodDescription
aliases: []

block_params:
comment:
full_name: Kernel#warn
is_singleton: false
name: warn
params: (msg)
visibility: public


system/Kernel/warn-i.yaml at x86_64:
--- !ruby/object:RI::MethodDescription
aliases: []

block_params:
comment:
- !ruby/struct:SM::Flow::P
body: Display the given message (followed by a newline) on STDERR unless warni
ngs are disabled (for example with the -W0 flag).
full_name: Kernel#warn
is_singleton: false
name: warn
params: |
warn(msg) => nil

visibility: public


ちょっとした一例にすぎないけど、まあこんな感じ。
元となっているerror.c内のコメントをみるとx86_64側が正しい結果に見える。実際のところparse時にはコメントの情報はちゃんと得られているようで、error.c単体をrdocに食わせればそれっぽく出力されるけど、他のメソッドで微妙な抜けや順序が違うなどの問題もでたりするので、ちょっとまだ調査中。

No comments: