Страница 2 из 2

Re: Скриптовый движок на Ruby

СообщениеДобавлено: 06.05.2011 16:36:03
Coriolis
Приветствую!
Иван, скажите, а многопоточность нормальная будет доступна, если я расширение пишу (.so файлик)?
А то я пробую через Thread в руби - не получается, вызовы последовательные, блокирующие т.е.

Re: Скриптовый движок на Ruby

СообщениеДобавлено: 07.05.2011 04:41:00
Иван Шихалев
В настоящее время не получится. Цитата из документации по встраиванию интерпретатора Ruby в свои программы:
One last thing: the Ruby interpreter was not originally written with embedding in mind.
Probably the biggest problem is that it maintains state in global variables, so it isn’t
thread-safe. You can embed Ruby—just one interpreter per process.

Re: Скриптовый движок на Ruby

СообщениеДобавлено: 03.07.2011 19:07:16
kipar
Не совсем в тему, но все же.
При вызове ruby процедуры, из который вызывается паскалевский метод (выполняющий работу с массивом ~1Мб) через несколько десятков вызовов возникает Segmentation fault в f_rb_eval_string_protect. Если уменьшить объем массива, segfault не возникает. Хотя при определенных условиях возникает даже с маленькими массивами. Ничем кроме бага ruby, я это объяснить не могу. Видимо лучше все-таки не выпедриваться и использовать lua.
------

Решилось заменой Ruby 1.8.7 на Ruby 1.8.6.
Надеюсь, хоть в 1.8.6 багов не встретится.

Re: Скриптовый движок на Ruby

СообщениеДобавлено: 26.07.2011 17:54:13
Иван Шихалев
Очень интересно... Массив паскалевский или рубишный?

Re: Скриптовый движок на Ruby

СообщениеДобавлено: 27.07.2011 13:30:56
kipar
Паскалевский динамический массив паскалевских объектов, выделяется память соответственно тоже паскалем.
В общем, в 1.8.6 тоже проблемы начались, так что я забил и сделал все вообще без скриптов. И то, что при реализации целиком на паскале все заработало косвенно подтверждает, что виноват все-таки не я.

Какой-то короткий пример с демонстрацией бага тоже сложно вычленить, тем более баг через раз возникает. Но я так понял проблема где-то в чередовании кода Паскаля и Руби. Может, GC пытается что-то не принадлежащее ему зохавать, или что-то в этом роде.

Re: Скриптовый движок на Ruby

СообщениеДобавлено: 27.07.2011 18:14:26
Иван Шихалев
Теоретически, может быть проблема и из-за моей прослойки. Если Ruby возьмется освобождать объект, выделенный в FPC. По идее, не должно произойти ничего (я придерживался принципа, что управление жизненным циклом объекта должно полностью происходить на одной стороне), но баги не исключаю. Так что, если все же получится сделать минимальный пример — я бы с удовольствием посмотрел.

Re: Скриптовый движок на Ruby

СообщениеДобавлено: 10.02.2012 19:59:11
katarina
Тоже попробую...надеюсь у меня все получится.