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