[sv-sc] review of 1549

From: John Havlicek <john.havlicek_at_.....>
Date: Mon Jun 02 2008 - 07:24:34 PDT
Hi Folks:

I am sorry to be so late with my reviews.  It's that correlation
between utilization and response time ... .

J.H.


Review of Mantis 1549 part 1
----------------------------

- It will need to be stated somewhere that actual arguments are self-determined
  when bound to untyped formals.

- The text 

     The substitution of an actual argument for a reference to the corresponding
     formal argument in the rewriting algorithm shall preserve the integrity of
     the actual argument. An actual argument shall be enclosed in parentheses
     before being substituted for a reference to the corresponding formal
     argument unless one of the following conditions holds:

     - The entire actual argument is $.

     - The reference to the formal argument stands as a variable_lvalue in an
       operator_assignment or inc_or_dec_expression in a sequence_match_item.

     - The reference to the formal argument stands as the sequence_instance in a
       sequence_method_call.

     If, due to conflicts in operator precedence or other circumstances, an
     actual argument does not parse as a whole in the context in which it is
     substituted for a reference to the corresponding formal argument, then the
     instance is not legal and there shall be an error.

  has caused concern and may need to be written.  

  The reason that this text was written is that people asked the question, "How
  do I know if an instance of a named sequence (or property) with particular 
  actual arguments is legal?"

  It is possible that the LRM does not need to answer this question in such 
  detail.  The sentence that precedes this text is

     If the flattened sequence is not legal, then the instance is not legal and
     there shall be an error.

  and this may be enough and the text above that has caused concern may be deleted.

  If the LRM does need to answer the question above in detail, then the text
  above that has caused concern will need to be reworked.

- I think that the statement

     Otherwise, the self-determined result type of the actual argument shall be
     cast compatible (see 6.22.4) with the type of the formal argument. The
     actual argument shall be cast to the type of the formal argument before
     being substituted for a reference to the formal argument in the rewriting
     algorithm ... .

  should be changed.  Without saying so explicitly, it suggests that the 
  self-determined result type of the actual is cast to the type of the formal,
  but this is not what is intended.  I think that the type gymnastics should
  be like an assignment, where the formal plays the role of the LHS and the
  actual plays the role of the RHS.  It will be helpful if someone more 
  knowledgable about SystemVerilog types can help to craft the text.

Review of Mantis 1549 part 2
----------------------------

- In order to achieve Gord's goals about the contract between instantiating
  context and the declaration of a named sequence or property being
  instantiated, the use of operations, such as bit or part selects, on untyped
  formal arguments in the declaration of the named sequence or property should
  be reviewed.  This could affect the description of the helper function "item"
  in the rewriting algorithm.

- The handling of actuals passed to untyped formals in the rewriting algorithm
  should probably make explicity the self-determined typing of the actual 
  argument.  This could be done with a helper function, writing something
  like 

     self_determined'(a_f)

  rather than 

     (a_f)

  in step 3(b) of both flatten_property and flatten_sequence.


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Mon Jun 2 07:25:55 2008

This archive was generated by hypermail 2.1.8 : Mon Jun 02 2008 - 07:26:02 PDT