Имя Parenscript конфликтует с uncommonweb (UCW)

Много конфликтов имен возникает, когда я использую-package:parenscript в UCW . Parenscript не работает, если я сохраняю старые (также, parenscript неправильно ведет себя с прямым вызовом parenscript:ps), и если я импортирую новые, UCW кажется сломанным. Есть ли в общем лиспе способ использовать пакеты с конфликтующими именами рядом?

1 ответ

Решение

также, parenscript плохо себя ведет с прямой parenscript:ps call

Я думаю, это потому, что если вы не используете пакет, такие символы, как parenscript:@ импортироваться не будет, а так:

* (ps:ps (@ a b))

"at(a, b);"

Но если вы делаете:

* (ps:ps (ps:@ a b))

"a.b;"

Есть ли в общем лиспе способ использовать пакеты с конфликтующими именами рядом?

Если вам нужны оба foo:a а также bar:aтогда вы не можете просто написать a и пусть переводчик выяснит, что вы имеете в виду. Таким образом, вы должны квалифицировать по крайней мере один из них. Вам нужно использовать пакет parenscript и импортировать неконфликтующие символы из UCW? Вам нужно shadow-import другие? Без подробностей сложно сказать, что здесь лучше всего делать. Если вам это нужно, см. Программирование в целом: пакеты и символы (Practical Common Lisp, P. Seibel).

Другие вопросы по тегам