Thread overview
'package'
Jul 21, 2014
Manu
Jul 21, 2014
Dicebot
Jul 22, 2014
Manu
July 21, 2014
I'm having all sorts of visibility problems.
I have this:

  app/system/...
  app/system/widgets/...

The 'system'/manager should be able to access all the widgets internals, but things outside the system shouldn't be able to touch the internals. This is what 'package' is supposed to be for, except 'package' in widgets only allows access to other widgets, 'system' level modules have no access...

Is there a workaround for this case? I'm not sure what to do.

I guess the trouble is that 'package' specifies sibling modules and below,
but nothing above... but this isn't always the module structure.
I'm thinking 'package' needs to know the top level that can access
internals. Perhaps this would solve my problem elegantly:

  module app.system.widgets.widget;  // <- module is beneath 'widgets'

  package(app.system):
  ...  internal stuff that 'app.system' (ie, the 'package') and below can
access ...

Or is there an existing solution that I can't find?


July 21, 2014
On Monday, 21 July 2014 at 17:32:53 UTC, Manu via Digitalmars-d wrote:
> I'm having all sorts of visibility problems.
> I have this:
>
>   app/system/...
>   app/system/widgets/...
>
> The 'system'/manager should be able to access all the widgets internals,
> but things outside the system shouldn't be able to touch the internals.
> This is what 'package' is supposed to be for, except 'package' in widgets
> only allows access to other widgets, 'system' level modules have no
> access...
>
> Is there a workaround for this case? I'm not sure what to do.
>
> I guess the trouble is that 'package' specifies sibling modules and below,
> but nothing above... but this isn't always the module structure.
> I'm thinking 'package' needs to know the top level that can access
> internals. Perhaps this would solve my problem elegantly:
>
>   module app.system.widgets.widget;  // <- module is beneath 'widgets'
>
>   package(app.system):
>   ...  internal stuff that 'app.system' (ie, the 'package') and below can
> access ...
>
> Or is there an existing solution that I can't find?

https://github.com/D-Programming-Language/dmd/pull/3651
July 22, 2014
Awesome!
Here's hoping for swift inclusion! :)


On 22 July 2014 03:43, Dicebot via Digitalmars-d < digitalmars-d@puremagic.com> wrote:

> On Monday, 21 July 2014 at 17:32:53 UTC, Manu via Digitalmars-d wrote:
>
>> I'm having all sorts of visibility problems.
>> I have this:
>>
>>   app/system/...
>>   app/system/widgets/...
>>
>> The 'system'/manager should be able to access all the widgets internals, but things outside the system shouldn't be able to touch the internals. This is what 'package' is supposed to be for, except 'package' in widgets only allows access to other widgets, 'system' level modules have no access...
>>
>> Is there a workaround for this case? I'm not sure what to do.
>>
>> I guess the trouble is that 'package' specifies sibling modules and below,
>> but nothing above... but this isn't always the module structure.
>> I'm thinking 'package' needs to know the top level that can access
>> internals. Perhaps this would solve my problem elegantly:
>>
>>   module app.system.widgets.widget;  // <- module is beneath 'widgets'
>>
>>   package(app.system):
>>   ...  internal stuff that 'app.system' (ie, the 'package') and below can
>> access ...
>>
>> Or is there an existing solution that I can't find?
>>
>
> https://github.com/D-Programming-Language/dmd/pull/3651
>