Я пытаюсь ознакомиться с lua и играю с ягодами-программистами (http://berrybots.com/) для этой цели. Он использует движок C ++, и пользователи / игроки могут предоставлять скрипты lua для программирования их собственный "бот-AI", чтобы сражаться с другими ботами.
Я программирую своего собственного бота, но я хочу использовать более интенсивные числовые идеи, поэтому мне нужно импортировать / требовать внешнюю библиотеку чисел (я предполагаю, что numlua, https://github.com/carvalho/numlua) в песочнице пользователя скрипты. Я не возражаю изменить исходный код ягодных роботов, чтобы он работал, и я уже предполагаю, что в песочнице этого нет пути (но, может быть, есть?).
На стороне C ++ запускается песочница, и стандартные библиотеки загружаются с
*state = luaL_newstate();
lua_setcwd(*state, stateCwd);
luaL_openlibs(*state)
Я хочу также загрузить библиотеку numlua, которую я обычно могу импортировать в любой скрипт lua с помощью
require "numlua"
но явно не в песочнице.
Я знаю, что luaL_register
используется для регистрации функций C, но я не мог заставить его работать, и я думаю, что должен быть более простой способ импортировать numlua, не возвращаясь к C API numlua.
Мне все равно, если решение представляет угрозу безопасности, поскольку я только планирую использовать его самостоятельно. Для полноты картины было бы неплохо иметь (достаточно) безопасное решение.
Я новичок в lua (в основном знаком с Python / Cython / C), поэтому прости меня, если я упускаю некоторые очевидные вещи.