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.


Reply via email to