Re: [sv-ec] ext9 - Stream Generation


Subject: Re: [sv-ec] ext9 - Stream Generation
From: Neil Korpusik (Neil.Korpusik@Sun.com)
Date: Mon Oct 20 2003 - 17:24:08 PDT


FYI,

Enclosed is the rest of my feedback on EXT-9:

1. 12.14.3 Case production statements

   The example uses case syntax. None of the case items are followed by ';'.
   Is the intent here for this new case statement to be identical to the
   existing case statement, except for the missing ';' after each case item?

   Currently there is no mention of the following:

     a. X,Z values in a case expression.
     b. Lengths of case expressions
     c. casex, casez forms allowed or not
     d. The number of default case items that are allowed

2. 12.14.4 Repeat production statements

   There isn't any mention of X or Z values within the repeat expression.

3. 12.14.5 Interleaving productions - rand join

   The exact order of the sub-sequences may or may not be maintained. The
   relative order is always maintained.

   "... randomly interleave two or more production sequences while maintaining
   the order of each sequence."

       should be

   "... randomly interleave two or more production sequences while maintaining
   the relative order of each sequence." // add the word 'relative'

4. 12.14.5, last example

   Sequence CADB is shown twice. The first one should have been CABD.

5. 12.4.6 Aborting productions - break and return

   Page 5, 2nd paragraph, last sentence:

   "When a break statement is executed from within a production code block,
    it forces a jump out the randsequence block."

       should be

   "When a break statement is executed from within a production code block,
    it forces a jump out of the randsequence block." // add word 'of'

6. 12.14.7 Value passing between productions

   a. Page 6, first paragraph under the BNF, first sentence.

      "A value is returned from a production by using the return with ..."

          should be
 
      "A value is returned from a production by using return with ..."

   b. Page 6, first example

      This is a re-write of the example on page 2, which we have already
      mentioned contains some inconsistencies. The example in 12.14.7 may
      need to be modified after the example on page 2 is made consistent.
 
   c. Page 7, first example
 
      ITEM :=2 {q={q,item);} // uses ')'
 
         should be

      ITEM :=2 {q={q,item};}
 
   d. Page 7, first paragraph, first sentence, typo
 
      "When the randsequence in function GenQueue is executes, it ..."
 
          should be
 
      "When the randsequence in function GenQueue executes, it ..."

   e. Somewhat confusing syntax
 
      I understand the syntax as defined in the writeup but I find it to
      be a bit unwieldy. Having so many uses of the same identifier is
      what makes the code confusing (e.g. the use of ITEM in this example).
 
      The first example is as follows:
 
1 randsequence()
2 int ITEM;
3
4 TOP : BOUND(low) LIST BOUND(high);
5 LIST: LIST ITEM :=8 { q={q,ITEM}; }
6 | ITEM :=2 { q={q,ITEM}; }
7 ;
8 ITEM: { return $urandom_range(low,high); };
9
10 BOUND(int b) : { q={q,b}; };
11 endsequence
 
      I prefer a syntax similar to the following instead:
 
1 randsequence()
3
4 TOP : BOUND(low) LIST BOUND(high);
5 LIST: LIST ITEM1 :=8 { q={q,ITEM}; }
6 | ITEM2 :=2 { q={q,ITEM}; }
7 ;
8 ITEM: { return $urandom_range(low,high); };
9
10 BOUND(int b) : { q={q,b}; };
11 endsequence
 
   f. Page 7, last example
 
      The data and crc values don't show up as being initialized.
 
 
Neil

---------------------------------------------------------------------
Neil Korpusik Tel: 408-720-4852
Member of Technical Staff Fax: 408-720-4850
Frontend Technologies - ASICs & Processors (FTAP)
Sun Microsystems
email: neil.korpusik@sun.com
---------------------------------------------------------------------



This archive was generated by hypermail 2b28 : Mon Oct 20 2003 - 17:26:59 PDT