Re: [STUMP] Why does `defcommand' export the command symbol?

"Diogo F. S. Ramos" <[email protected]>
Newsgroups gmane.comp.window-managers.stumpwm.devel
Message-ID <[email protected]>
>> By using `defcommand' in a module (separate package), I couldn't
>> redefine the package because the symbols defining the commands were
>> exported but they were not listed in my new package redefinition.
>
> If you call (stumpwm:defcommand foo ...) from an external package, you
> export foo from your package (ie module:foo), but you never defined
> module:foo for your package, so your encountering an error?  

The error occurs when I try to redefine a package using `defpackage'.
It is not something one has to do, but it can happen during interactive
development.

Suppose I have a module like:

(defpackage #:my-module
  (:use #:cl))

(in-package #:my-module)

(stumpwm:defcommand my-command () ()
  "This is my command."
  (values))

Now I change my mind about the `defpackage' form and I want to compile a
new one to import the symbol `defcommand' from the package `stumpwm'.

(defpackage #:my-module
  (:use #:cl)
  (:import-from #:stumpwm #:defcommand))

SBCL won't let me because `defcommand' exported the symbol `my-command'
and my redefinition does not list it as an exported symbol.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.