LINUX.ORG.RU

как правильно готовить lua для разделения неймспейсов в одном окружении?

 , ,


0

2

Есть некая C-шная программа, в которой задействуется интерпретатор lua:

1. Для конфига, выставляются глобальные значения пользователем.

2. Для плагинов - пользователь определяет 2 глобальных функции с определенным именем, ну и кучу других (на практике тоже глобальных).

3. Для части высокоуровневой логики.

Сейчас все криво работает, потому что все это использует одно и то же окружение lua, и ничего не делается, чтобы разделить неймспейсы. Хотелось бы понять, как разделить неймспейсы так, чтобы при выполнении 3) то, что определено в 1) виделось, например,как config.name, а то, что в 2) как plugin_name.name, или plugins[x].name? Надо чтобы для писателей плагинов и конфига осталось все как раньше, чтобы им не надо было как-то отделять неймспейсы самостоятельно, а то это чревато неотлаживаемымт глюками... Единое окружение надо сохранить, чтобы при желании достукиваться до нужных значений из разных мест.

★★★★★

например, запускать конфиг и плагины в разных lua_State, а для связи между ними сделать функции в С для обращения к нужным местам друг друга

Harald ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.