alias = namespace [Re: alternative aliases [Re: [fpc-devel] Re: [fpc-pascal] Re: Ideas for namespace implementation]]
Martin
fpc at mfriebe.de
Mon Jul 26 18:17:49 CEST 2010
That can be interpreted as following:
The search path becomes the namespace => by defining an alias for a
search path
-Fu=LCL::/path/to/lcl
the alias "LCL" has been defined, to include all unist in this search path
using a unit from a anmespace is done with the existing "IN" operator
(which needs to be extended to support this, and which needs to be
allowed to be used in the scope)
uses Buttons in 'LCL';
Conflicts in names are solved by aliases. Therefore there never is a
need to specify a fully qualified name "LCL.Buttons" (such a name does
not exist / can not even be used). Instead the alias is used.
all solved.
No new syntax elements needed (except for alias)
---------
Advantage over namspaces:
Namespaces send the (wrong) message: the developper does no longer need
to care about clashes.
that message is wrong, because:
1) one name => many units => unreadable
2) while unitname clashes can be solved => namespace-name clashes can
not be solved
That message also leads to using names that are more likely to clash,
resulting in more clashes, that require more fully qualified names....
using IN and ALIAS,
- the developper should still attempt to use names that he hopes to be
unique: MyFooStrUtils,instead of StrUtils
- only in the rare case of a conflict, action is needed
Martin
More information about the fpc-devel
mailing list