30 января 2008

Старый Ruby в убунту

Принёс на воркстанцию парочку самописных плагинов к своему любимому IRC клиенту, написаны на руби. Цели при написании преследовал две - получение нужного функционала и максимальное использование всех динамических извращений фишек языка.
Где-то на 3-4 уровне вложенности вызовов функций интерпретатор валится, жалуясь на нехватку стека:

irb(main):001:0> require 'tray.rb'
=> true
irb(main):002:0> not_found_method
SystemStackError: stack level too deep
from ./tray.rb:23:in `method_missing'
from ./tray.rb:23:in `method_missing'
from (irb):2
irb(main):003:0>

Ох уж мне эти забавные животные! В дистрибутив включён руби ветки 1.9, в то же время в ветке 1.8.x там:
ruby --version
ruby 1.8.5 (2006-08-25) [i486-linux]

Более чем годичной давности...

2 комментария:

antono комментирует...

Это потому, что бунта - соборнй дистр. В дебиане (sid) такого нет ибо он базарный. обе ветки рубей имеют адекватные версии.

PhoeniX комментирует...

Скорее всего, тут какие-то накладки с репозитариями. Ибо на домашней инсталляции кубунту 7.10:
root@pxhome:/# ruby --version
ruby 1.8.6 (2007-06-07 patchlevel 36) [i486-linux]
Но рабочую-то убунту я обновлял!