0
Учитывая следующий фрагмент кода:Jruby проблема с нумерацией строк?
hash = { # 1
(line = __LINE__) => # 2
lambda { x } # 3
}
Doing некоторый осмотр JRuby:
puts line # >> 2
puts hash[line].inspect >> #<Proc:[email protected]/tmp/test.rb:2>
, кажется, отличаются от стандартного мрт:
puts line # >> 2
puts hash[line].inspect >> #<Proc:[email protected]/tmp/test.rb:3>
прок, как представляется, по линии в mri, тогда как в jruby это линия ... это ошибка? Любое обходное решение для этого?
Почему это имеет значение для вас? – jtbandes
Скорее всего, ошибка. У JRuby есть несколько из них здесь и там, где фреймы не выровнены одинаково. Большую часть времени они достаточно малы, чтобы не заметить. Если вы можете, помогите придумать некоторые тестовые примеры, в которых они ошибаются (их должно быть несколько, попробуйте также с отправкой блоков) и разместите их на http://bugs.jruby.org/. –
@jtbandes: Причина, по которой это меня беспокоит, заключается в том, что я реализую serializable_proc (http://github.com/ngty/serializable_proc) с помощью ruby_parser, который выполняет статический анализ кода, и мне нужен номер строки, сгенерированный ProC# inspect чтобы определить, какую строку я хочу обработать, поскольку jruby дает мне неточную нумерацию строк, SerializableProc работает не так, как ожидалось. Во всяком случае, SerializableProc может не иметь практического использования, но я думаю, что это будет просто один из моих интересных проектов, чтобы увидеть, как далеко я могу продвинуть идею сериализации proc. – ngty