Hello all,
I have discovered defsystem names systems in a bit opposite way defpackage does:
(defsystem :some-system .) and (defsystem "some-system" .) define the same system, when (defsystem "SOME-SYSTEM" .) defines the other system.
In contradiction, (defpackage :some-package .) and (defpackage "SOME-PACKAGE" .) define the same package, when (defpackage "some-package" .) defines the other package.
Is this done intentionally?
It would be good to point this difference in the documentation.
Serhiy Y
On 9/13/10 Sep 13 -8:05 AM, Serhiy Yakovyn wrote:
Hello all,
I have discovered defsystem names systems in a bit opposite way defpackage does:
(defsystem :some-system …) and (defsystem “some-system” …) define the same system, when (defsystem “SOME-SYSTEM” …) defines the other system.
In contradiction, (defpackage :some-package …) and (defpackage “SOME-PACKAGE” …) define the same package, when (defpackage “some-package” …) defines the other package.
Is this done intentionally?
Yes, this is done intentionally. Canonical (i.e., what you get when you translate a symbol) names for ASDF systems (and other ASDF components) are downcased.
I /suspect/ (I am not privy to the intentions of the original developer) that this is because the downcased names --- this policy is applied not just to systems, but to other components as well --- map better to the way people use modern file-systems.
E.g., we typically don't want
(:file "foo")
to map to "FOO.LISP" or "FOO.lisp"
Best, r