RE: [sv-bc] explicit package exports

From: Rich, Dave <Dave_Rich_at_.....>
Date: Thu Sep 14 2006 - 13:03:29 PDT
Greg and Surrendra,

I think you are confusing visibility with exporting a symbol.

All identifiers are public by default. (Available for importation). This
is separate from exportation.

As we discussed in the sv-bc meeting, export would change the way an
import works. It means that a symbol will get exported to the symbol
table of the package doing the import, i.e. allow chaining.

Dave




> -----Original Message-----
> From: owner-sv-bc@server.eda.org [mailto:owner-sv-bc@server.eda.org]
On
> Behalf Of Surrendra Dudani
> Sent: Thursday, September 14, 2006 12:53 PM
> To: sv-bc@server.verilog.org
> Subject: RE: [sv-bc] explicit package exports
> 
> It makes sense to have public visibility by default, and optionally,
> restrict it by using local, such as
> local import Q::myInt;
> 
> There would be no need for export.
> 
> Surrendra
> 
> -----Original Message-----
> From: owner-sv-bc@eda.org [mailto:owner-sv-bc@eda.org] On Behalf Of
Greg
> Jaxon
> Sent: Thursday, September 14, 2006 3:32 PM
> To: Gordon Vreugdenhil
> Cc: Brad Pierce; sv-bc@eda-stds.org; SV_EC List; sv-ac@verilog.org
> Subject: Re: [sv-bc] explicit package exports
> 
> Well  "local import Q::myInt;"  seems odd if the default will be local
> visibility for imports.  Also "local export Q::myInt;" seems
> self-contradictory.
> 
> Greg
> 
> P.S. To me this argues for default public visibility (i.e. import ==
> export),
>       but as I understand it the committees hav already reached a
> compromise
>       to not do that.
> 
> Gordon Vreugdenhil wrote:
> >
> >
> > Brad Pierce wrote:
> >
> >> The first option is the right way to go and doesn't look ugly to
me.
> 
> >
> >
> > I should have been more careful in how I phrase that -- the first
> > option isn't ugly but I don't want to have to dig through all the
> > semantic implications on my own.  The second option would be ugly.
> >
> > Does anyone have opinions on when "local" should NOT be permitted
for
> > the proposed change:
> >     [ local ] package_or_generate_item_declaration
> >
> > "local" might not make sense to me in the context of things that
might
> 
> > not have names but I'm not sure if that can happen here given other
> > semantic constraints.
> >
> > Gord.
> >
> >> -----Original Message-----
> >> From: Gordon Vreugdenhil [mailto:gordonv@model.com] 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 13:03:38 2006

This archive was generated by hypermail 2.1.8 : Thu Sep 14 2006 - 13:03:43 PDT