Re: [sv-bc] explicit package exports

From: Gordon Vreugdenhil <gordonv_at_.....>
Date: Thu Sep 14 2006 - 10:18:53 PDT
Stuart Sutherland wrote:

> I agree that adding 'local' to package declarations is intuitive and makes
> for self-documenting code.  Since it is likely that it will be the intent
> that most package items will be visible to importers of the package, only a
> few, if any, items will typically need to be declared as local.  If, on the
> other hand, the export was used to make package items "importable" (a new
> word?), then to hide a small number of items would require explicitly
> exporting almost all other package items.
> 
> I also think it makes sense to include local package items as part of the
> export proposal.  The two go hand in hand.


The grammar changes for allowing "local" to package declarations might
be a bit ugly.  There are two choices -- the easy choice is to add
"local" as an optional qualifier in the package_item rule.  Ie:

    package_item ::=
         [ local ] package_or_generate_item_declaration
       | anonymous_program
       | timeunits_declaration

Then we might have to have some semantic constraints that "local"
isn't legal for some constructs but I'm not sure if that is in
fact the case.

The other option would be separate package_or_generate_item_declaration
into two parts -- one for packages and the other for generates.

I am willing to add the former solution and a bit of text to
what I am writing up but I don't want this to snowball and I
don't have the time to try to figure out all of situations in
which "local" on a package_or_generate_item_declaration might
not be reasonable.  If people are Ok with the simple change, fine,
otherwise let's separate "local" from export so that there can
be more time for consideration.

Gord.

-- 
--------------------------------------------------------------------
Gordon Vreugdenhil                                503-685-0808
Model Technology (Mentor Graphics)                gordonv@model.com
Received on Thu Sep 14 10:18:56 2006

This archive was generated by hypermail 2.1.8 : Thu Sep 14 2006 - 10:19:16 PDT