Variable | Package: excl | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 10.1 Minimally revised from 10.0. 10.0 version

## *regard-package-names-as-flat*

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.

|  | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 10.1 Minimally revised from 10.0. 10.0 version