[sv-bc] Summary of name resolution face to face

From: Gordon Vreugdenhil <gordonv_at_.....>
Date: Thu Sep 27 2007 - 07:51:02 PDT
First of all, thanks to all the people that attended the name
resolution face to face.  It was a productive meeting with
a number of issues reaching consensus and other issues
becoming more clearly focussed.

We did not reach consensus on the "opaque type" issue that
I discussed on the slides.  Neil will be posting a follow-up
on the next steps following discussion at the Working Group
level.  I think there was enough good interaction on the issue
to give me hope that consensus can be reached for this version
of the LRM.


In terms of the rest of the slides, we only had time to discuss
the issues through slide 30.  There was broad consensus on
most of the "suggestions" that I made on those slides.  There
were a couple of changes that should be noted:

1) On slide 30, we agreed to the following stronger wording:

         A reference to a visible scope name from a package shall cause
         that name to be imported.  A dotted name without a “::” prefix
         shall be resolved downwards if the first name denotes a name
         imported from a package

     Here is an example that helps to explain this (a variant of what
     is on slide 29):

       package p;
          task t;
             int x;
          endtask
       endpackage

       module m;
          import p::*;
          int x = t.y;
       endmodule

     The questions being answered are the following:
       1) does using "t" as the prefix of a dotted name
          cause "t" to be imported?

          Answer: yes

       2) is "t.y" still potentially a hierarchical name with
          upwards resolution (since "y" is not in t.y)

          Answer: no.  Since "t" was an imported identifier,
          we decided that the dotted name *MUST* resolve
          downwards into that name.  Originally I had gone
          the other way on this point, but the group felt
          that we definitely wanted this answer for
          resolving  p::t.y and wanted "t.y" to have the same
          behavior since "t" was an imported identifier.


2) As has been discussed already on the reflector (thanks Jonathan!) in
       http://www.eda-stds.org/sv-bc/hm/6826.html
       http://www.eda-stds.org/sv-bc/hm/6845.html
    my wording on slide 24 is not correctly expressing my intent.

    On slide 24, the statement:
       Intent: Once we start with a “selected” name, we never revert
       to a hierarchical resolution.
    Is correctly expressed as:
       Intent: Once we start with a “selected” name, we commit to
       that downward path; no further upwards resolution occurs.

    I don't think there would be any disagreement on that change.


3) As I discuss towards the bottom of:
       http://www.eda-stds.org/sv-bc/hm/6845.html
    there is still some question of whether there is complete
    agreement on how hard upwards resolution should try to
    resolve names in the face of resolution into structs.


Dave Rich and I will work on turning the suggestions through
slide 30 into Mantis proposals.



BTW, I have no problem with people using my slides as a basis
for presentations, etc. as long as the original authorship
and company affiliation is referenced and it is clear what
portions are my content versus modified content.

Gord.
-- 
--------------------------------------------------------------------
Gordon Vreugdenhil                                503-685-0808
Model Technology (Mentor Graphics)                gordonv@model.com


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Thu Sep 27 07:53:02 2007

This archive was generated by hypermail 2.1.8 : Thu Sep 27 2007 - 07:54:12 PDT