On Thursday, 6 June 2013 at 06:26:17 UTC, Jonathan M Davis wrote:
On Thursday, June 06, 2013 08:09:38 Max Samukha wrote:
On Thursday, 6 June 2013 at 02:36:12 UTC, Jonathan M Davis
wrote:
> But I believe that package level access only works on the
> same
> level, so you
> couldn't have separate modules for compressing and
> decompressing as was being
> suggested.
'package' should be fixed so that 'package' declarations are
accessible within nested packages.
Well, it _is_ debatable as to whether that's desirable or not.
With the
current behavior, you can have a package which shares stuff
within itself but
not with its sub-packages, but there's no way to share with the
sub-packages
without making the symbols public; whereas if sub-packages have
access to
their parent packages' package functions, then packages _can_
share with their
sub-packages, but they can't restrict anything to just the
package. Both ways
have their pros and cons. I don't know which is ultimately
better.
There is not much to debate. Get your hands dirty with a real
project having more than two levels of packages and you'll see
that the first is ultimately better.
While limiting 'package' to one level may be sometimes desirable,
forcing package-private members to be world-public is highly
undesirable. As a package author I can tolerate loose access
policies within a package tree that *I* control but I definitely
don't want to expose to the user of my package what he shouldn't
have access to.