Я использую sbcl со слизью. я определил функцию с именем slot
и SbCl компилятор бросил мне ошибку следующим образом:Ошибка подавления компилятора
Lock on package SB-ALIEN violated when defining SLOT as a
function while in package COMMON-LISP-USER.
[Condition of type SYMBOL-PACKAGE-LOCKED-ERROR]
See also:
SBCL Manual, Package Locks [:node]
Restarts:
0: [CONTINUE] Ignore the package lock.
1: [IGNORE-ALL] Ignore all package locks in the context of this operation.
2: [UNLOCK-PACKAGE] Unlock the package.
3: [ABORT] Abort compilation.
4: [*ABORT] Return to SLIME's top level.
5: [ABORT] Abort thread (#<THREAD "worker" RUNNING {C3E4771}>)
Это выглядит как имя функции slot
зарезервирован для какой-либо причины.
Я могу продолжить с опцией 0 или 2, однако я не хочу видеть эту ошибку каждый раз после компиляции.
Можно ли подавить эту ошибку после компиляции?
Я думал о том, чтобы не загружать предварительно зарезервированное имя функции, например слот, но я не уверен.
Ваш пакет использует пакет 'SB-ALIEN' и экспортирует' SLOT'. Ваш код пытается переопределить эту функцию, которая может сломать этот пакет. – Barmar
Если вы не используете 'SB-ALIEN: SLOT', вы можете затенять его в своем собственном пакете. – Barmar
Как «не использовать» пакет SB-ALIEN? –