Hi, Following earlier email threads regarding "illegal" unique if and case statements, I submitted Mantis 1345: In 10.4, there are some unclearnesses about 'illegal' unique if and case statements. This is a follow-up to the long email discussion which began in http://www.eda.org/sv-bc/hm/3691.html. 10.4 says, "A unique if shall be illegal if, for any such interleaving of evaluation and use of the conditions, more than one condition is true. For an illegal unique if, an implementation shall be required to issue a warning, unless it can demonstrate a legal interleaving so that no more than one condition is true." and "A unique case shall be illegal if, for any such interleaving of evaluations and comparisons, more than one case item matches the case expression. For an illegal unique case, an implementation shall be required to issue a warning message, unless it can demonstrate a legal interleaving of evaluations and comparisons so that no more than one case item matches the case expression." 1. In each quote, the first sentence contains the phrase "for any such interleaving". This is ambiguous. It can be interpreted as "there exists some such interleaving" or as "for all such interleavings" (as in mathematical expressions, "for any x", which means "for all x"). In fact, the email discussion showed that the intent was closer to the first interpretation, but more precisely something like "the tools detects such an interleaving", which is subtly different from the first interpretation also. 2. The wording "For an illegal unique case, an implementation shall be required to issue a warning message, unless it can demonstrate a legal interleaving" (same for if statements) sounds like it is saying "It shall issue a warning for an illegal case unless it is legal", which sounds self-contradictory. 3. "Shall be required to issue" is verbose. "shall issue" is enough. Again, in two places. 4. The text is not clear as to whether the tool is required to look for a legal ordering. 5. The term "illegal" is not appropriate. "illegal" designates a construct with bad syntax or a run-time condition which is not allowed. Here, the intent is simply an assertion which fails. Contrast to "It shall be illegal to make nonblocking assignments to automatic variables" two paragraphs before 10.4, or "The unique and priority keywords apply to the entire series of if...else...if conditions. In the preceding examples, it would have been illegal to insert either keyword after any of the occurrences of else" in 10.4 itself. 6. Subject for possible discussion: why should a tool not issue a warning if it finds ANY ordering which violates uniqueness (even if it finds a different ordering which does not, which probably makes it a pathological case anyway)? Thanks, Shalom Shalom Bresticker Intel Jerusalem LAD DA +972 2 589-6852 +972 54 721-1033 I don't represent IntelReceived on Mon Feb 20 07:16:33 2006
This archive was generated by hypermail 2.1.8 : Mon Feb 20 2006 - 07:18:21 PST