0
鉴于下面的代码片断:Jruby行号问题?
hash = { # 1
(line = __LINE__) => # 2
lambda { x } # 3
}
在JRuby做一些检查:
puts line # >> 2
puts hash[line].inspect >> #<Proc:[email protected]/tmp/test.rb:2>
似乎从标准MRI不同:
puts line # >> 2
puts hash[line].inspect >> #<Proc:[email protected]/tmp/test.rb:3>
体proc似乎是线 in mri,而在jruby中,它是行 ...是这个a错误?任何解决方法?
为什么这对你很重要? – jtbandes 2010-08-11 02:37:54
最有可能的一个错误。 JRuby在这里和那里确实有一些框架没有完全一致。大多数时候他们足够小,不会注意到。如果可以的话,帮助提出一些他们错误的测试用例(应该有几个,也可以尝试一些block dispatch),并将它们发布到http://bugs.jruby.org/。 – 2010-08-11 17:58:27
@jtbandes:它困扰我的原因是我正在使用ruby_parser实现serializable_proc(http://github.com/ngty/serializable_proc),它执行静态代码分析,并且我需要Proc#检查生成的行号以确定哪一行我想处理,因为jruby给我不准确的行号,SerializableProc不能按预期工作。无论如何,SerializableProc可能没有实际用途,但我想这只是我有趣的项目之一,看看我可以推动序列化proc的想法。 – ngty 2010-08-15 02:06:11