Выгрузка библиотек из кэша

Выгрузка библиотеки из кэша

При разработке либ очень мешает кэширование библиотек: пофиксил очепятку в функции, запускаешь прогу, а она ту же багу выдаёт, так как использует закэшированную версию.

Очевидный вариант решения проблема — это перезагрузить компьютер. Но не думаю, что после каждого изменения кому-то в самом деле захочется бежать перезагружать компьютер.

Другой вариант — это просто выгрузить библиотеку из кэша. Это возможно потому, что кэш является частью либы package и доступен в package.loaded. Это таблица, ключи которой — спецификатор библиотеки (т. е. название, например library.util.math), ну а значения — результаты их выполнения.

Поэтому если заменить значение на nil, то при следующем вызове require с тем же спецификатором библиотека будет ещё раз загружена с диска.

Для библиотеки library.util.math это делается так:

require("package").loaded["library.util.math"] = nil

results for ""

    No results matching ""