5.1) require - функция (ранее была частью "конструкций" языка, типа if) что читает файл и возвращает таблицу. tarantool - LuaJit (он/LuaJit пока только в ревизии API 5.1) на очень умных стероидах (нет, не умоляю разрабов и реализацию). Так вот require перед чтением файла смотрит в свой кеш, который прямиком доступен в коде (см. package.loaded). Конструкция сия - специальная! С одной стороны она сокращает обращение к ФС (IO - критичен в данном случае), с другой - дает все рули к hot-deploy. Ваша задача - вовремя тереть ссылки на ранее загруженную таблицу.
Hot reload так и делается. Посмотрите gh/moonlibs/package-reload
Так я и говорю - очень умные и логичные стероиды в тарантуле. 👍🏻
Обсуждают сегодня