RE: [sv-bc] 10.8 Named blocks and statement labels - question

From: Michael \(Mac\) McNamara <mcnamara_at_.....>
Date: Mon Feb 13 2006 - 10:55:03 PST
It seems that the clear answer is that there is no basis for making
multiple labels for a single statement illegal.  It was just done that
way.

By the way, your current "answer" still adds no clarity; you hint that
with out this restriction it would be possible to have:

A: begin : B
  statements;
end

There you leave us, assuming we would recognize some inherent problem
with the above.

I fail to see that problem.  

Sure, there are now two ways to disable the block of statements (disable
A or disable B).

There are now two ways to refer to variables defined in the scope.
(assuming one of the statements was a declaration of a variable called
foo, viewed from the statement before the label, is the variable  A.foo
or B.foo, or is it A.B.foo ? 

It would seem least surprizing that the variable be known as A.B.foo in
this case, and that the source text "label : statement;" consistantly
mean that we treat the the text as if it was:
"begin : label statement; end"  without regard for what statement
consists of.

If statement is "begin :B integer a; a = b + c; d = a; end" then and
label is "A", we process this as if we had read: "begin : A begin :B
integer a; a = b + c; d = a; end end"
which is well defined, well behaved verilog.

Bottom line: We should have good reasons for introducing special cases
to a language.  Orthaganality is a virtue.

Michael McNamara
mcnamara@cadence.com
408-914-6808 work
408-348-7025 cell


-----Original Message-----
From: owner-sv-bc@eda.org [mailto:owner-sv-bc@eda.org] On Behalf Of
Rich, Dave
Sent: Monday, February 13, 2006 10:27 AM
To: sv-bc@eda.org
Subject: RE: [sv-bc] 10.8 Named blocks and statement labels - question

Not all clear questions have clear answers :)

If you ask me why begin/end blocks can't have both a statement label and
a block name, I'll say that 'label : begin' is supposed to be the same
as 'begin : label', as the example shows, and I agree that needs to be
put in the normative text. So if you agree with that, then you observe
that two labels would be provided for one named block without that
restriction.

Dave



> -----Original Message-----
> From: Bresticker, Shalom [mailto:shalom.bresticker@intel.com]
> Sent: Monday, February 13, 2006 9:50 AM
> To: Rich, Dave; sv-bc@eda.org
> Subject: RE: [sv-bc] 10.8 Named blocks and statement labels - question
> 
> I agree that it might be classified as an enhancement. What Mac has
> asked is what is the justification for the restriction. I still have
not
> heard a clear answer.
> 
> Shalom
> 
> > -----Original Message-----
> > From: Rich, Dave [mailto:Dave_Rich@mentor.com]
> > Sent: Monday, February 13, 2006 7:43 PM
> > To: Bresticker, Shalom; sv-bc@eda.org
> > Subject: RE: [sv-bc] 10.8 Named blocks and statement labels -
> > question
> >
> > No, Named blocks currently only have one name. Statement labels
> > are
> > another way to express a named block. If you want named blocks
> > to have
> > two names, that's another enhancement.
> >
> > Nesting block names is not the same as giving one block two
> > names.
> >
> >
> >
> > Dave
> >
> >
> > > -----Original Message-----
> > > From: Bresticker, Shalom [mailto:shalom.bresticker@intel.com]
> > > Sent: Monday, February 13, 2006 9:31 AM
> > > To: Rich, Dave; sv-bc@eda.org
> > > Subject: RE: [sv-bc] 10.8 Named blocks and statement labels -
> > question
> > >
> > > That's a circular answer, I think: they can have only one
> > name because
> > > they can have only one name.
> > >
> > > Shalom
> > >
> > > > -----Original Message-----
> > > > From: Rich, Dave [mailto:Dave_Rich@mentor.com]
> > > > Sent: Monday, February 13, 2006 7:27 PM
> > > > To: Michael (Mac) McNamara; Steven Sharp; Bresticker,
> > Shalom;
> > > > sv-bc@eda.org
> > > > Subject: RE: [sv-bc] 10.8 Named blocks and statement labels
> > -
> > > > question
> > > >
> > > > Because a statement label is just syntactic sugar for a
> > named
> > > > block, and
> > > > right now, named blocks only have one name.
> > > >
> > > > > -----Original Message-----
> > > > > From: Michael (Mac) McNamara
> > [mailto:mcnamara@cadence.com]
> > > > > Sent: Monday, February 13, 2006 8:46 AM
> > > > > To: Rich, Dave; Steven Sharp;
> > shalom.bresticker@intel.com;
> > > > sv-bc@eda.org
> > > > > Subject: RE: [sv-bc] 10.8 Named blocks and statement
> > labels -
> > > > question
> > > > >
> > > > > Just curious: what is so bad about allowing multiple
> > names
> > > > for the
> > > > same
> > > > > block of code?  I do not know of other languages with
> > such a
> > > > > restriction.
> > > > >
> > > > >
> > > > > Michael McNamara
> > > > > mcnamara@cadence.com
> > > > > 408-914-6808 work
> > > > > 408-348-7025 cell
> > > > >
> > > > >
> > > > > -----Original Message-----
> > > > > From: owner-sv-bc@eda.org [mailto:owner-sv-bc@eda.org] On
> > > > Behalf Of
> > > > > Rich, Dave
> > > > > Sent: Friday, February 10, 2006 4:20 PM
> > > > > To: Steven Sharp; shalom.bresticker@intel.com; sv-
> > bc@eda.org
> > > > > Subject: RE: [sv-bc] 10.8 Named blocks and statement
> > labels -
> > > > question
> > > > >
> > > > > Steve,
> > > > >
> > > > > The reason the rule "It shall be illegal to have both a
> > label
> > > > before a
> > > > > begin or fork and a block name after the begin or fork."
> > > > exists is
> > > > > because there is only one block being created; otherwise,
> > it
> > > > wouldn't
> > > > > have been a problem.
> > > > >
> > > > > I've got someone writing a proposal to put normative text
> > > > that
> > > > supports
> > > > > the example.
> > > > >
> > > > > Dave
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: Steven Sharp [mailto:sharp@cadence.com]
> > > > > > Sent: Thursday, February 09, 2006 4:53 PM
> > > > > > To: shalom.bresticker@intel.com; sv-bc@eda.org; Rich,
> > Dave
> > > > > > Subject: RE: [sv-bc] 10.8 Named blocks and statement
> > labels
> > > > -
> > > > question
> > > > > >
> > > > > >
> > > > > > >From: "Rich, Dave" <Dave_Rich@mentor.com>
> > > > > >
> > > > > > >Well, section 17.2 does say so explicitly and there is
> > an
> > > > example
> > > > in
> > > > > > >10.8 of both a begin/end and fork/join with a matching
> > end
> > > > label.
> > > > > >
> > > > > > Actually, 17.2 says that it creates a named block
> > around
> > > > the
> > > > statement
> > > > > > to which it applies.  This means that the label would
> > not
> > > > name the
> > > > > > begin/end that it was attached to, but would create a
> > new
> > > > named
> > > > block
> > > > > > around the statement (the begin/end) that it was
> > attached
> > > > to.
Received on Mon Feb 13 10:55:15 2006

This archive was generated by hypermail 2.1.8 : Mon Feb 13 2006 - 10:55:38 PST