RE: [sv-bc] Email Ballot Due Sep 28

From: Bresticker, Shalom <shalom.bresticker_at_.....>
Date: Mon Oct 09 2006 - 06:45:29 PDT
Regarding this and my question (a):

1. The original VXL behavior is irrelevant regarding macro substitution
within strings since VXL behavior changed to be the reverse a long time
ago.

2. I checked various implementations regarding macro substitution and
argument substitution within strings. ALL the implementations, including
those of Synopsys, do NOT do macro substitution within strings, so there
should be no argument about that. That is another reason that the
comment about Verilog-XL is irrelevant, since the quoted reference
referred to macro substitution.

3. Where there IS a difference between implementations is with respect
to ARGUMENT substitution, which is the very reason that `" was created.
There Verilog-XL behavior is not relevant, since it does not support
macros with arguments, according to my experiments. 

However, incompatibility with current implementations is not a valid
argument since different behavior would conflict with other
implementations. Some implementation is going to have to change. The
only way out would be to leave the behavior undefined. In my mind, that
is a worse alternative, as it makes code unportable.

One more argument in favor of defining that argument substitution does
not occur within regular strings is that it allows both non-substitution
and substitution to be implemented, the latter using `".

Regards,
Shalom

> -----Original Message-----
> From: owner-sv-bc@server.eda.org [mailto:owner-sv-bc@server.eda.org]
On
> Behalf Of Brad Pierce
> Sent: Thursday, September 28, 2006 11:45 PM
> To: sv-bc@server.eda.org
> Subject: Re: [sv-bc] Email Ballot Due Sep 28
> 
> Shalom,
> 
> Maybe `" isn't needed?  The original Verilog-XL didn't need it, as
> described in --
> 
>     http://boydtechinc.com/etf/archive/etf_2003/1543.html
> 
> -- Brad
> 
> -----Original Message-----
> From: Bresticker, Shalom [mailto:shalom.bresticker@intel.com]
> Sent: Thursday, September 28, 2006 3:36 AM
> To: Brad Pierce; sv-bc@eda.org
> Subject: RE: [sv-bc] Email Ballot Due Sep 28
> 
> 1119: You're right about the missing 'end'. I fixed it and uploaded a
> corrected version.
> 
> Regarding incompatibility with existing implementations:
> 
> a. The proposal treats expansion of macro calls and substitution for
> formal argument identifiers the same way, i.e., neither is done within
a
> string. Do the existing implementations you refer to distinguish
between
> them?
> 
> b. If such expansion and substitution are performed within strings,
then
> what is the need for `"?
> 
> c. Since other existing implementations behave as described in the
> proposal, there will be an incompatibility with some existing
> implementations in any case and implementations are incompatible with
> each other. I think the LRM should not leave this ambiguous and needs
to
> choose one of the behaviors.
> 
> 1209: I fixed the problems and uploaded a new version. I changed
> 'parameter aggregate' to 'aggregate parameter' in order to be
consistent
> with the usage in the rest of the LRM.
> 
> Shalom
> 
> 
> > SVDB 1119 ___Yes   __X_No
> > http://www.verilog.org/svdb/bug_view_page.php?bug_id=00001119
> >
> >   Reasons -- missing 'end' in example, and incompatible with
existing
> > implementations.
> >
> > SVDB 1209 ___Yes   _X__No
> > http://www.verilog.org/svdb/bug_view_page.php?bug_id=00001209
> >
> >   Reasons -- missing bolding on keywords, 'struct' instead of
> > 'structure', and wondering why it says both 'aggregate parameter'
and
> > 'parameter aggregate'.
Received on Mon Oct 9 06:46:27 2006

This archive was generated by hypermail 2.1.8 : Mon Oct 09 2006 - 06:46:38 PDT