Я пытаюсь создать язык сценариев, который компилируется в Clojure, чтобы затем запустить его на JVM. Каждый отдельный скрипт в том же экземпляре JVM, но изолированным способом.
Тем не менее, когда я вижу реализацию, я вижу, что среда Clojure (пространства имен и т. Д.) Глобальны, поэтому любое изменение пространств имен одно. Скрипт может создавать, влияет на следующие скрипты.
Интересно, есть ли способ иметь несколько временных, изолированных экземпляров среды Clojure в одной JVM. Если нет, какую стратегию можно использовать, чтобы избежать загрязнения глобальных пространств имен и потенциальной утечки памяти.