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

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

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

Сообщение Coriolis » 06.05.2011 16:36:03

Приветствую!
Иван, скажите, а многопоточность нормальная будет доступна, если я расширение пишу (.so файлик)?
А то я пробую через Thread в руби - не получается, вызовы последовательные, блокирующие т.е.
Coriolis
незнакомец
 
Сообщения: 4
Зарегистрирован: 13.11.2010 12:47:22

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.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1140
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

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

Сообщение kipar » 03.07.2011 19:07:16

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

Решилось заменой Ruby 1.8.7 на Ruby 1.8.6.
Надеюсь, хоть в 1.8.6 багов не встретится.
kipar
новенький
 
Сообщения: 78
Зарегистрирован: 04.03.2010 12:15:54

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

Сообщение Иван Шихалев » 26.07.2011 17:54:13

Очень интересно... Массив паскалевский или рубишный?
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1140
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

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

Сообщение kipar » 27.07.2011 13:30:56

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

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

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

Сообщение Иван Шихалев » 27.07.2011 18:14:26

Теоретически, может быть проблема и из-за моей прослойки. Если Ruby возьмется освобождать объект, выделенный в FPC. По идее, не должно произойти ничего (я придерживался принципа, что управление жизненным циклом объекта должно полностью происходить на одной стороне), но баги не исключаю. Так что, если все же получится сделать минимальный пример — я бы с удовольствием посмотрел.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1140
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

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

Сообщение katarina » 10.02.2012 19:59:11

Тоже попробую...надеюсь у меня все получится.
Аватара пользователя
katarina
незнакомец
 
Сообщения: 4
Зарегистрирован: 09.02.2012 16:28:29

Пред.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

Рейтинг@Mail.ru