| Allegro CL version 10.1 Minimally revised from 10.0. 10.0 version |
When this variable is true, the :flat
option
to defpackage and the
flat keyword argument to make-package will be set to true when
packages are defined. That option/argument specifies that names and
nicknames are not hierarchical, despite possibly having dots (periods)
in their names.
This variable is designed for systems which have package names
containing dots which are not intended to be hierarchical. Those could
be created with the :flat
option/argument specified
as true explicitly, but in large and complex systems, that might be
inconvenient and error-prone.
While this variable is true, a warning is signaled whenever a package
is defined without the :flat
option/agument being
specified. Further, the primary name of any package defined while
*regard-package-names-as-flat*
and no
value is specified for :flat
is pushed onto the
value of
*global-flat-package-option-used*
.
When *regard-package-names-as-flat*
is
non-nil
but (:flat nil)
is
specified to defpackage/:flat nil
to make-package, a
hierarchical package is created as usual (i.e. the variable is
overridden).
cl-user(1): (setq excl:*regard-package-names-as-flat* t) t cl-user(2): excl:*global-flat-package-option-used* nil cl-user(3): (defpackage :foo) Warning: Defining :foo with :flat attribute because *regard-package-names-as-flat* is non-nil. See documentation on cl:defpackage in implementation.htm. #<The foo package> cl-user(4): excl:*global-flat-package-option-used* ("foo") cl-user(5): (defpackage :bar (:flat t)) ;; when :flat is specified, no warning #<The bar package> cl-user(6): excl:*global-flat-package-option-used* ("foo") ;; and the package is not added to this list.
See Extensions to cl:make-package, cl:disassemble, cl:truename, cl:probe-file, cl:open, cl:apropos and cl:defpackage and cl:in-package, both in implementation.htm, for more information on extensions to defpackage and make-package. Flat if hierarchical packages are discusses in Hierarchical Packages in packages.htm.
Copyright (c) 1998-2022, Franz Inc. Lafayette, CA., USA. All rights reserved.
This page has had minimal revisions compared to the 10.0 page.
Created 2019.8.20.
| Allegro CL version 10.1 Minimally revised from 10.0. 10.0 version |