RE: [sv-ac] 1704, empty match, and local variable assignments

From: Eduard Cerny <Eduard.Cerny_at_.....>
Date: Tue Feb 06 2007 - 07:18:52 PST
John,

Yes, this is what I meant.

Therefore, the expression

(a, v=val)[*0:$]

is OK, but

(a[*0:$], v=val) 

would be illegal. Correct?

ed

> -----Original Message-----
> From: John Havlicek [mailto:john.havlicek@freescale.com] 
> Sent: Tuesday, February 06, 2007 10:06 AM
> To: Eduard.Cerny@synopsys.COM
> Cc: john.havlicek@freescale.com
> Subject: Re: [sv-ac] 1704, empty match, and local variable assignments
> 
> Ed:
> 
> I don't think it is necessary.  I like the following:
> 
>     It is illegal to attach a sequence_match_item to a sequence that
>     admits an empty match.
> 
> There will need to be some analogous statement in 17.8 to prevent
> local variable assignments from being attached to sequences that 
> admit empty match.
> 
> J.H.
> 
> 
> > X-MimeOLE: Produced By Microsoft Exchange V6.5
> > Content-class: urn:content-classes:message
> > Date: Tue, 6 Feb 2007 05:55:12 -0800
> > Thread-Topic: [sv-ac] 1704, empty match, and local variable 
> assignments
> > Thread-Index: AcdJ6zHJVQnPD0iJTIuV9noEtzujvAACynwA
> > From: "Eduard Cerny" <Eduard.Cerny@synopsys.com>
> > X-OriginalArrivalTime: 06 Feb 2007 13:55:14.0032 (UTC) 
> FILETIME=[6CD96F00:01C749F6]
> > 
> > Why is it necessary to put stress on "subroutine", rather than just
> > sequence_match_item?
> > 
> > ed
> > =20
> > 
> > > -----Original Message-----
> > > From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On=20
> > > Behalf Of John Havlicek
> > > Sent: Tuesday, February 06, 2007 7:33 AM
> > > To: piper@cadence.com
> > > Cc: john.havlicek@freescale.com; sv-ac@eda-stds.org
> > > Subject: Re: [sv-ac] 1704, empty match, and local 
> variable assignments
> > >=20
> > > Hi Lisa:
> > >=20
> > > I like this idea.  I recommend changing
> > >=20
> > >    It is illegal to attach a subroutine, or any 
> sequence_match_item,
> > >    to an empty match.
> > >=20
> > > to
> > >=20
> > >    It is illegal to attach a subroutine, or any 
> sequence_match_item,
> > >    to a sequence that admits an empty match.
> > >=20
> > > J.H.
> > >=20
> > >=20
> > > > X-MimeOLE: Produced By Microsoft Exchange V6.5
> > > > Content-class: urn:content-classes:message
> > > > Date: Mon, 5 Feb 2007 18:47:10 -0500
> > > > X-MS-Has-Attach:=20
> > > > X-MS-TNEF-Correlator:=20
> > > > Thread-Topic: [sv-ac] 1704, empty match, and local variable=20
> > > assignments
> > > > Thread-Index: Acc/WJTmTM+3is1SQCq33XgaVC2NeQKJhQsA
> > > > From: "Lisa Piper" <piper@cadence.com>
> > > > X-Received: By mx-sanjose.cadence.com as l15NlCVC002190 at=20
> > > Mon Feb  5 15:47:12 2007
> > > > X-OriginalArrivalTime: 05 Feb 2007 23:47:16.0259 (UTC)=20
> > > FILETIME=3D[F7555F30:01C7497F]
> > > >=20
> > > > This is a multi-part message in MIME format.
> > > >=20
> > > > ------_=3D_NextPart_001_01C7497F.F57F7E59
> > > > Content-Type: text/plain;
> > > > 	charset=3D"us-ascii"
> > > > Content-Transfer-Encoding: quoted-printable
> > > >=20
> > > > Hi John,
> > > >=20
> > > > =3D20
> > > >=20
> > > > I would like to keep the handling of local variables=20
> > > consistent with the
> > > > treatment of all sequence_match_items. So to be consistent=20
> > > with the way
> > > > Annex E is already written, I think we should state that it=20
> > > is illegal
> > > > to attach any sequence_match_item to an empty match.  I'd=20
> > > like to get
> > > > feedback from the group and then I will update the 
> formal writeup.
> > > >=20
> > > > =3D20
> > > >=20
> > > > =3D20
> > > >=20
> > > > REPLACE:
> > > >=20
> > > > =3D20
> > > >=20
> > > > 17.9 Calling subroutines on match of a sequence
> > > >=20
> > > > Tasks, task methods, void functions, void function methods,=20
> > > and system
> > > > tasks can be called at the end of a successful match of a=20
> > > sequence.=3D20
> > > >=20
> > > > =3D20
> > > >=20
> > > > WITH:
> > > >=20
> > > > =3D20
> > > >=20
> > > > 17.9 Calling subroutines on match of a sequence
> > > >=20
> > > > Tasks, task methods, void functions, void function methods,=20
> > > and system
> > > > tasks can be called at the end of a successful 
> non-empty match of a
> > > > sequence. It is illegal to attach a subroutine, or any
> > > > sequence_match_item, to an empty match.
> > > >=20
> > > > =3D20
> > > >=20
> > > > Note that this section talks about Subroutines on 
> sequence match.  I
> > > > extended the second line to clarify that this applies to any
> > > > sequence_match_item since there were not other=20
> > > corresponding places to
> > > > state it.=3D20
> > > >=20
> > > > =3D20
> > > >=20
> > > > Lisa
> > > >=20
> > > > =3D20
> > > >=20
> > > > -----Original Message-----
> > > > From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On=20
> > > Behalf Of John
> > > > Havlicek
> > > > Sent: Tuesday, January 23, 2007 8:38 PM
> > > > To: sv-ac@eda-stds.org
> > > > Subject: [sv-ac] 1704, empty match, and local variable 
> assignments
> > > >=20
> > > > =3D20
> > > >=20
> > > > All:
> > > >=20
> > > > =3D20
> > > >=20
> > > > I thought some this afternoon about 1704 and empty match=3D20
> > > >=20
> > > > assignments.
> > > >=20
> > > > =3D20
> > > >=20
> > > > It seems intuitive to me that if a sequence matches empty, then
> > > >=20
> > > > no local variable assignment within the sequence should be=3D20
> > > >=20
> > > > executed during that evaluation thread. =3D20
> > > >=20
> > > > =3D20
> > > >=20
> > > > It also seems intuitive that if a sequence matches 
> empty, then=3D20
> > > >=20
> > > > we do not want a local variable assignment attached to the=20
> > > sequence=3D20
> > > >=20
> > > > to execute during that evaluation thread. =3D20
> > > >=20
> > > > =3D20
> > > >=20
> > > > I think these are consistent with what is written in 1704 now.
> > > >=20
> > > > =3D20
> > > >=20
> > > > What we have currently in Annex E is
> > > >=20
> > > > =3D20
> > > >=20
> > > >    (R, v=3D3De)  \equiv  (R ##0 (1, v=3D3De))
> > > >=20
> > > > =3D20
> > > >=20
> > > > Notice that this says more, namely that if we attach a local
> > > >=20
> > > > variable assignment to a sequence, then the underlying 
> sequence=3D20
> > > >=20
> > > > is no longer allowed to match empty.  In other words, 
> Annex E=3D20
> > > >=20
> > > > today implies that
> > > >=20
> > > > =3D20
> > > >=20
> > > > (1)   (R, v=3D3De)  \equiv  (R intersect 1[*1:$], v=3D3De)
> > > >=20
> > > > =3D20
> > > >=20
> > > > (This looks clear to me, although I haven't written a proof.)
> > > >=20
> > > > I don't think there is anything wrong with this, but it might
> > > >=20
> > > > be criticized as too restrictive.  It is certainly not 
> saying the
> > > > following:=3D20
> > > >=20
> > > > =3D20
> > > >=20
> > > > (2)  (R, v=3D3De)  \equiv  (R intersect 1[*0]) or (R=20
> > > intersect 1[*1:$], =3D
> > > > v=3D3De)
> > > >=20
> > > > =3D20
> > > >=20
> > > > The righthand side of (2) says that if R matches empty,=20
> > > ignore the=3D20
> > > >=20
> > > > local variable assignment and go on; otherwise, perform 
> the local
> > > > variable=3D20
> > > >=20
> > > > assignment at the end of a non-empty match of R.
> > > >=20
> > > > =3D20
> > > >=20
> > > > Applying the flow rules to the RHS of (2) does no seem to=20
> > > be the right
> > > >=20
> > > > thing to do if R cannot match empty -- we get an artificial
> > > >=20
> > > > requirement that v flow in in order for v to flow out of (R, =
> > v=3D3De).
> > > >=20
> > > > On the other hand, if R can match empty, then applying the=20
> > > flow rules
> > > >=20
> > > > to the RHS of (2) seems to give the desirable condition 
> that v=3D20
> > > >=20
> > > > flow out of (R, v=3D3De) only if it flows in.
> > > >=20
> > > > =3D20
> > > >=20
> > > > We may want to think about changing the semantics of 
> (R, v=3D3De) =
> > from
> > > >=20
> > > > (1) to (2), but there may be some non-trivial work to 
> adapt the flow
> > > >=20
> > > > rules to work with this.  In any case, such a change 
> should be made
> > > >=20
> > > > with great care.
> > > >=20
> > > > =3D20
> > > >=20
> > > > Best regards,
> > > >=20
> > > > =3D20
> > > >=20
> > > > John H.
> > > >=20
> > > > =3D20
> > > >=20
> > > > --=3D20
> > > >=20
> > > > This message has been scanned for viruses and
> > > >=20
> > > > dangerous content by MailScanner, and is
> > > >=20
> > > > believed to be clean.
> > > >=20
> > > > =3D20
> > > >=20
> > > >=20
> > >=20
> > > --=20
> > > This message has been scanned for viruses and
> > > dangerous content by MailScanner, and is
> > > believed to be clean.
> > >=20
> > >=20
> 

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Tue Feb 6 07:19:30 2007

This archive was generated by hypermail 2.1.8 : Tue Feb 06 2007 - 07:19:33 PST