Re: [sv-bc] Mantis 1090: `undefineall

From: Gordon Vreugdenhil <gordonv_at_.....>
Date: Mon Jul 16 2007 - 07:50:35 PDT
Shalom,

Certainly in the LRM (1364 or 1800) so far there has been no discussion
of "command line" setting of macros.  As far as the LRM is concerned,
this doesn't occur.

So, if we want to address this from the LRM perspective, we'll have
to agree to add discussion in the LRM regarding command line setup.

This is exacerbated by SV semantics where macros do NOT persist across
compilation units (are command line macros re-introduced into each
compilation unit?).  There are a bunch of really nasty little details
buried in this area that impact *users* but are well beyond what
the LRM considers.  One example is a mixed SV/Verilog compilation
from the same compile command.  For users, understanding what the
implementation is going to do is crucial but it is outside the bounds
of what the LRM considers.

While I definitely agree that macro command line/file behavior is important
for users, I'm not sure  that we can do enough to deal with real user
issues while staying in a realm that is appropriate for the LRM.

Gord.


Bresticker, Shalom wrote:
> What about macros defined by both a compiler directive and also a
> command-line switch (possibly with different values)?
> 
> Shalom
> 
> 
>> -----Original Message-----
>> From: Steven Sharp [mailto:sharp@cadence.com]
>> Sent: Thursday, August 24, 2006 9:12 PM
>> To: Bresticker, Shalom; sv-bc@eda-stds.org; Feldman, Yulik
>> Subject: RE: [sv-bc] Mantis 1090: `undefineall
>>
>>
>>> From: "Feldman, Yulik" <yulik.feldman@intel.com>
>>> Probably the directive should undefine only the `define macros,
> because
>>> otherwise the directive won't be too useful (since once the command
>> line
>>> macros are undefined, there will be no way to define them again). In 
>>> that case, it may be better to change the wording to refer to `define
> 
>>> explicitly, to avoid ambiguity.
>> The proposed functionality is based on an existing implementation,
> which
>> has been out there for many years.  It follows Yulik's interpretation,
> 
>> and only undefines macros created with `define.  It does not undefine 
>> macros defined on the command line.  I determined this by testing the 
>> implementation.
>>
>> The purpose of the directive was to protect files from leftover macros
> 
>> defined in other source files, preventing dependencies between files 
>> and on compilation order.  You may still wish to have macros defined
> on
>> the command line that affect all files.  If `undefineall affected
> those
>> macros also, then it might become unusable.
>>
>> Steven Sharp
>> sharp@cadence.com
> 

-- 
--------------------------------------------------------------------
Gordon Vreugdenhil                                503-685-0808
Model Technology (Mentor Graphics)                gordonv@model.com


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Mon Jul 16 07:51:02 2007

This archive was generated by hypermail 2.1.8 : Mon Jul 16 2007 - 07:51:18 PDT