[armedbear-devel] How do I release ABCL's "package-lock"?
alessiostalla at gmail.com
Wed Dec 30 11:47:06 UTC 2009
On Wed, Dec 30, 2009 at 7:18 AM, Peter Olsen <pcolsen at gmail.com> wrote:
> I'm writing to ask how to redefine the "or" macro in ABCL.
> I'm working on a project and there's one package in which I need "or" to
> mean something else than its usual definition. I've tried simply to
> redefine it, but it doesn't work. I understand that the Common Lisp spec
> requires special provision for that to be done --- such as the package-lock
> construct in SBCL.
> How can I do that in ABCL? I want to be able to do this within the code,
> for example, with in a "let" so that I can bound its scope.
> Can anyone point me in the right direction? My first --- failed ---
> experiment is below.
In addition to what Erik said, if you need you own OR to be effective
only in your package, you can use your-package:or instead of
common-lisp:or to name your macro, for example:
then, start your source files with
and in one of them put
(defmacro or ...) ;the symbol is my-package:or, not common-lisp:or
Of course, this way your macro will only get used by your own code
(and code that imports the symbol OR from your package); it won't
affect other libraries or the system itself, so it's not equivalent to
This solution has the advantage of being portable Common Lisp.
More information about the armedbear-devel