common-lispparenscript

Parenscript name conflicts with uncommonweb (UCW)


Many name conflicts arises when I use-package :parenscript in UCW . Parenscript doesn't work if I keep old ones (also, parenscript misbehaves with direct parenscript:ps call) and if I import new ones, UCW seems to be broken. Is there any way in common lisp to use packages with conflicting names side by side?


Solution

  • also, parenscript misbehaves with direct parenscript:ps call

    I guess this is because if you don't use the package, symbols such as parenscript:@ won't be imported, and so:

    * (ps:ps (@ a b))
    
    "at(a, b);"
    

    But if you do:

    * (ps:ps (ps:@ a b))
    
    "a.b;"
    

    Is there any way in common lisp to use packages with conflicting names side by side ?

    If you need both foo:a and bar:a, then you cannot just write a and let the interpreter find out what you mean. So you have to qualify at least one them. Do you need to use the parenscript package and import non-conflicting symbols ones from UCW ? Do you need to shadow-import other ones? Without more details, it is hard to say what is the best thing to do here. In case you need it, see Programming in the Large: Packages and Symbols (Practical Common Lisp, P. Seibel).