Я довольно часто меняю API своего пакета, но company-mode
вытягиваю каждый определенный символ (как и должно быть) в его дополнениях. Я не хочу случайно использовать несвязанное имя, так как я могу отменить привязку всех переменных и функций, которые начинаются, скажем, с my-package-
? После этого я просто смогу load-file
снова.
источник
feature
система; Я работаю только с функциями и переменными без какой-либо явной группировки. Я не удосужился оценить(provide 'my-package)
.provide
. Но в любом случае, если вы действительно хотите сделать что-то грязное, посмотрите мои правки.provide
, я просто не думаю, что это сработает в этом случае. Помнят ли функции, в каком файле они были определены, если они оценивались в интерактивном режиме?unload-feature
не имеет никакого эффекта, если вы оцениваете код, не загружая его из файла (который имеетprovide
).Используйте,
makunbound
чтобы удалить использование символа в качестве динамической переменной (то есть, чтобы аннулировать егоsymbol-value
).Используйте,
fmakunbound
чтобы удалить использование символа в качестве функции (то есть, чтобы аннулировать егоsymbol-function
).Используйте
mapatoms
для перебора всех символов. Действуйте на каждого, чейsymbol-name
совпадает с конкретным префиксом, который вас интересует: звоните какmakunbound
иfmakunbound
на него.Вам не нужен
unintern
символ, если только вы не используете завершение для самих символов, а не только для их использования в качестве переменных или функций. Но если вы действительно хотите , чтобы полностью удалить символ затем использоватьunintern
.источник