Re: [sv-bc] Constant method calls

From: Greg Jaxon <Greg.Jaxon_at_.....>
Date: Thu Feb 07 2008 - 20:45:25 PST
Surya,

   For enum { A=1, B, C }   A.next is always B,  B.next is always C.
   I think the method is constant when applied to a constant enum value.
   Only some LRM wording and some implementation effort is needed to
   make it so.  A compelling example would probably be needed to persuade
   the implementers on the committee.

Greg


Surya Pratik Saha wrote:
> Hi Gordon,
> 'next' method is not constant because the value of 'next' method depends
> on the no. of call of that method. And this no. of call is not
> elaboration time constant. Is it not correct?
> 
> Regards
> Surya
> 
> 
> 
> -------- Original Message  --------
> Subject: Re:[sv-bc] Constant method calls
> From: Greg Jaxon <Greg.Jaxon@synopsys.com>
> To: Surya Pratik Saha <spsaha@cal.interrasystems.com>
> Cc: Steven Sharp <sharp@cadence.com>, sarani@cal.interrasystems.com
> Date: Thursday, February 07, 2008 10:46:56 PM
>> Surya,
>>
>>    I concur with Steven's reading of the LRM, but as he hinted, the next
>> method when applied to a constant enum returns a deterministic result and
>> has no side-effects.  I don't understand why you'd say it isn't
>> "constant",
>> except that the LRM currently makes no accommodation for these methods in
>> the rules about constant expressions.
>>
>> Greg
>>
>> Surya Pratik Saha wrote:
>>  
>>> Hi Steven,
>>> Is 'next' method call also allowed? I think no, though the method is
>>> called on a constant object. Because return value of 'next' is not at
>>> all constant. I think LRM should provide the list of method can be
>>> applied in const_expression context to avoid any confusion instead of
>>> leaving for the vendor tool.
>>>
>>> Regards
>>> Surya
>>>
>>>
>>>
>>> -------- Original Message  --------
>>> Subject: Re:[sv-bc] Constant method calls
>>> From: Steven Sharp <sharp@cadence.com>
>>> To: sv-bc@eda-stds.org, sarani@cal.interrasystems.com
>>> Date: Tuesday, February 05, 2008 11:36:44 PM
>>>    
>>>>> From: Sarani Roy <sarani@cal.interrasystems.com>
>>>>>             
>>>>  
>>>>      
>>>>> Since according to LRM "An enumerated type declares a set of integral
>>>>> named constants."
>>>>> It is not clear to me why we cannot use atleast first() , last() and
>>>>> num()
>>>>> enum methods as constant function call.
>>>>> As pointed out by Gord all the normal rules regarding constant
>>>>> function behavior would apply to
>>>>> to these function calls.
>>>>>             
>>>> While I don't think that there is a technical problem with allowing
>>>> these
>>>> to be constant functions, I agree with Brad Pierce that the current LRM
>>>> text does not allow them.
>>>>
>>>> Steven Sharp
>>>> sharp@cadence.com
>>>>
>>>>
>>>>         
>>>
>>>
>>>
>>>     
>>
>>
>>
>>
>>
>>   
> 
> 
> 
> 


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Thu Feb 7 20:46:31 2008

This archive was generated by hypermail 2.1.8 : Thu Feb 07 2008 - 20:48:10 PST