Sounds good.  I'll update it.

  Nate

On Wed, Sep 16, 2009 at 8:01 AM, Steve Reinhardt <ste...@gmail.com> wrote:
> I think if we're going to say that some fields have underscores and
> some don't, we should stick with saying that it's only the ones that
> have accessors that get underscores.  Trying to introduce another
> dimension like public/private strikes me as something that will just
> add to the confusion and reduce compliance.
>
> One way to look at this is that "normal" code will generally not have
> variables with underscores... if it has an underscore, you should be
> using the accessor, even if you're in a method where you could access
> the field directly.  So seeing a reference to a variable that starts
> with an underscore is a sign that something special is going on...
> either it's an accessor or a constructor (which should be obvious) or
> for some reason you're explicitly bypassing the accessor.
>
> Steve
>
> On Wed, Sep 16, 2009 at 7:25 AM, nathan binkert <n...@binkert.org> wrote:
>> This has been in my inbox forever and I figured I should just do it.
>> I guess B is nice since that's the way things are now, the question
>> is, what do we want new code to look like?  Maybe it should more be
>> that private/protected members should start with an underscore and
>> publich ones should not.
>>
>> What do you think?  A style change of course does not require that all
>> code change overnight.
>>
>>  Nate
>>
>> On Sun, Aug 2, 2009 at 4:31 PM, Steve Reinhardt <ste...@gmail.com> wrote:
>>> Fine with me... one thing to clarify though is whether in the long run:
>>>
>>> A. all class members should start with underscore just in case we want
>>> to give them accessors later
>>>
>>> or
>>>
>>> B. only class members with accessors should start with underscore, and
>>> others don't
>>>
>>> I prefer B, mostly because A would be a much more invasive change, and
>>> would be harder to enforce, and is generally uglier IMO.  However it
>>> does get a little confusing in that you end up with classes like
>>> Request where privateFlags is about the only member that doesn't start
>>> with an underscore.  Constructors that allow you to set the initial
>>> value of a field that has no accessors get even stranger, since the
>>> convention there is that it's the constructor parameter that has the
>>> underscore.  That may not happen much, but it's still a possibility.
>>>
>>> A is a little nicer in that you don't have to rename a field when you
>>> change your mind about whether you have accessor methods.
>>>
>>> Anyway, whichever way we decide to go we should make it explicit when
>>> you update the style guide.
>>>
>>> Steve
>>>
>>>
>>>
>>> On Sun, Aug 2, 2009 at 1:10 PM, nathan binkert<n...@binkert.org> wrote:
>>>> Very awesome.  I was tempted to do this a number of times.  I'm going
>>>> to go ahead and add this standard to the style guide.  ok?
>>>>
>>>>  Nate
>>>>
>>>> On Sat, Aug 1, 2009 at 10:51 PM, Steve Reinhardt<steve.reinha...@amd.com> 
>>>> wrote:
>>>>> changeset 50125d42559c in /z/repo/m5
>>>>> details: http://repo.m5sim.org/m5?cmd=changeset;node=50125d42559c
>>>>> description:
>>>>>        Rename internal Request fields to start with '_'.
>>>>>        The inconsistency was causing a subtle bug with some of the
>>>>>        constructors where the params had the same name as the fields.
>>>>>        This is also a first step to switching the accessors over to
>>>>>        our new "standard", e.g., getVaddr() -> vaddr().
>>>>>
>>>>> diffstat:
>>>>>
>>>>> 1 file changed, 58 insertions(+), 56 deletions(-)
>>>>> src/mem/request.hh |  114 
>>>>> ++++++++++++++++++++++++++--------------------------
>>>>>
>>>>> diffs (292 lines):
>>>>>
>>>>> diff -r e46754b929ca -r 50125d42559c src/mem/request.hh
>>>>> --- a/src/mem/request.hh        Fri Jul 31 10:40:42 2009 -0400
>>>>> +++ b/src/mem/request.hh        Sat Aug 01 22:50:10 2009 -0700
>>>>> @@ -132,17 +132,17 @@
>>>>>      * The physical address of the request. Valid only if validPaddr
>>>>>      * is set.
>>>>>      */
>>>>> -    Addr paddr;
>>>>> +    Addr _paddr;
>>>>>
>>>>>     /**
>>>>>      * The size of the request. This field must be set when vaddr or
>>>>>      * paddr is written via setVirt() or setPhys(), so it is always
>>>>>      * valid as long as one of the address fields is valid.
>>>>>      */
>>>>> -    int size;
>>>>> +    int _size;
>>>>>
>>>>>     /** Flag structure for the request. */
>>>>> -    Flags flags;
>>>>> +    Flags _flags;
>>>>>
>>>>>     /** Private flags for field validity checking. */
>>>>>     PrivateFlags privateFlags;
>>>>> @@ -155,15 +155,15 @@
>>>>>     Tick _time;
>>>>>
>>>>>     /** The address space ID. */
>>>>> -    int asid;
>>>>> +    int _asid;
>>>>>
>>>>>     /** The virtual address of the request. */
>>>>> -    Addr vaddr;
>>>>> +    Addr _vaddr;
>>>>>
>>>>>     /**
>>>>>      * Extra data for the request, such as the return value of
>>>>>      * store conditional or the compare value for a CAS. */
>>>>> -    uint64_t extraData;
>>>>> +    uint64_t _extraData;
>>>>>
>>>>>     /** The context ID (for statistics, typically). */
>>>>>     int _contextId;
>>>>> @@ -171,10 +171,13 @@
>>>>>     int _threadId;
>>>>>
>>>>>     /** program counter of initiating access; for tracing/debugging */
>>>>> -    Addr pc;
>>>>> +    Addr _pc;
>>>>>
>>>>>   public:
>>>>> -    /** Minimal constructor.  No fields are initialized. */
>>>>> +    /** Minimal constructor.  No fields are initialized.
>>>>> +     *  (Note that _flags and privateFlags are cleared by Flags
>>>>> +     *  default constructor.)
>>>>> +     */
>>>>>     Request()
>>>>>     {}
>>>>>
>>>>> @@ -218,23 +221,23 @@
>>>>>      * allocated Request object.
>>>>>      */
>>>>>     void
>>>>> -    setPhys(Addr _paddr, int _size, Flags _flags, Tick time)
>>>>> +    setPhys(Addr paddr, int size, Flags flags, Tick time)
>>>>>     {
>>>>> -        assert(_size >= 0);
>>>>> -        paddr = _paddr;
>>>>> -        size = _size;
>>>>> +        assert(size >= 0);
>>>>> +        _paddr = paddr;
>>>>> +        _size = size;
>>>>>         _time = time;
>>>>>
>>>>> -        flags.clear(~STICKY_FLAGS);
>>>>> -        flags.set(_flags);
>>>>> +        _flags.clear(~STICKY_FLAGS);
>>>>> +        _flags.set(flags);
>>>>>         privateFlags.clear(~STICKY_PRIVATE_FLAGS);
>>>>>         privateFlags.set(VALID_PADDR|VALID_SIZE);
>>>>>     }
>>>>>
>>>>>     void
>>>>> -    setPhys(Addr _paddr, int _size, Flags _flags)
>>>>> +    setPhys(Addr paddr, int size, Flags flags)
>>>>>     {
>>>>> -        setPhys(_paddr, _size, _flags, curTick);
>>>>> +        setPhys(paddr, size, flags, curTick);
>>>>>     }
>>>>>
>>>>>     /**
>>>>> @@ -242,18 +245,17 @@
>>>>>      * allocated Request object.
>>>>>      */
>>>>>     void
>>>>> -    setVirt(int _asid, Addr _vaddr, int _size, Flags _flags, Addr _pc)
>>>>> +    setVirt(int asid, Addr vaddr, int size, Flags flags, Addr pc)
>>>>>     {
>>>>> -        assert(_size >= 0);
>>>>> -        asid = _asid;
>>>>> -        vaddr = _vaddr;
>>>>> -        size = _size;
>>>>> -        flags = _flags;
>>>>> -        pc = _pc;
>>>>> +        assert(size >= 0);
>>>>> +        _asid = asid;
>>>>> +        _vaddr = vaddr;
>>>>> +        _size = size;
>>>>> +        _pc = pc;
>>>>>         _time = curTick;
>>>>>
>>>>> -        flags.clear(~STICKY_FLAGS);
>>>>> -        flags.set(_flags);
>>>>> +        _flags.clear(~STICKY_FLAGS);
>>>>> +        _flags.set(flags);
>>>>>         privateFlags.clear(~STICKY_PRIVATE_FLAGS);
>>>>>         privateFlags.set(VALID_VADDR|VALID_SIZE|VALID_PC);
>>>>>     }
>>>>> @@ -265,10 +267,10 @@
>>>>>      * to guarantee that the size and flags are also set.
>>>>>      */
>>>>>     void
>>>>> -    setPaddr(Addr _paddr)
>>>>> +    setPaddr(Addr paddr)
>>>>>     {
>>>>>         assert(privateFlags.isSet(VALID_VADDR));
>>>>> -        paddr = _paddr;
>>>>> +        _paddr = paddr;
>>>>>         privateFlags.set(VALID_PADDR);
>>>>>     }
>>>>>
>>>>> @@ -280,14 +282,14 @@
>>>>>     {
>>>>>         assert(privateFlags.isSet(VALID_VADDR));
>>>>>         assert(privateFlags.noneSet(VALID_PADDR));
>>>>> -        assert(split_addr > vaddr && split_addr < vaddr + size);
>>>>> +        assert(split_addr > _vaddr && split_addr < _vaddr + _size);
>>>>>         req1 = new Request;
>>>>>         *req1 = *this;
>>>>>         req2 = new Request;
>>>>>         *req2 = *this;
>>>>> -        req1->size = split_addr - vaddr;
>>>>> -        req2->vaddr = split_addr;
>>>>> -        req2->size = size - req1->size;
>>>>> +        req1->_size = split_addr - _vaddr;
>>>>> +        req2->_vaddr = split_addr;
>>>>> +        req2->_size = _size - req1->_size;
>>>>>     }
>>>>>
>>>>>     /**
>>>>> @@ -303,7 +305,7 @@
>>>>>     getPaddr()
>>>>>     {
>>>>>         assert(privateFlags.isSet(VALID_PADDR));
>>>>> -        return paddr;
>>>>> +        return _paddr;
>>>>>     }
>>>>>
>>>>>     /**
>>>>> @@ -319,7 +321,7 @@
>>>>>     getSize()
>>>>>     {
>>>>>         assert(privateFlags.isSet(VALID_SIZE));
>>>>> -        return size;
>>>>> +        return _size;
>>>>>     }
>>>>>
>>>>>     /** Accessor for time. */
>>>>> @@ -342,14 +344,14 @@
>>>>>     getFlags()
>>>>>     {
>>>>>         assert(privateFlags.isSet(VALID_PADDR|VALID_VADDR));
>>>>> -        return flags;
>>>>> +        return _flags;
>>>>>     }
>>>>>
>>>>>     void
>>>>> -    setFlags(Flags _flags)
>>>>> +    setFlags(Flags flags)
>>>>>     {
>>>>>         assert(privateFlags.isSet(VALID_PADDR|VALID_VADDR));
>>>>> -        flags.set(_flags);
>>>>> +        _flags.set(flags);
>>>>>     }
>>>>>
>>>>>     /** Accessor function for vaddr.*/
>>>>> @@ -357,7 +359,7 @@
>>>>>     getVaddr()
>>>>>     {
>>>>>         assert(privateFlags.isSet(VALID_VADDR));
>>>>> -        return vaddr;
>>>>> +        return _vaddr;
>>>>>     }
>>>>>
>>>>>     /** Accessor function for asid.*/
>>>>> @@ -365,7 +367,7 @@
>>>>>     getAsid()
>>>>>     {
>>>>>         assert(privateFlags.isSet(VALID_VADDR));
>>>>> -        return asid;
>>>>> +        return _asid;
>>>>>     }
>>>>>
>>>>>     /** Accessor function for asi.*/
>>>>> @@ -373,7 +375,7 @@
>>>>>     getAsi()
>>>>>     {
>>>>>         assert(privateFlags.isSet(VALID_VADDR));
>>>>> -        return flags & ASI_BITS;
>>>>> +        return _flags & ASI_BITS;
>>>>>     }
>>>>>
>>>>>     /** Accessor function for MMAPED_IPR flag. */
>>>>> @@ -381,14 +383,14 @@
>>>>>     isMmapedIpr()
>>>>>     {
>>>>>         assert(privateFlags.isSet(VALID_PADDR));
>>>>> -        return flags.isSet(MMAPED_IPR);
>>>>> +        return _flags.isSet(MMAPED_IPR);
>>>>>     }
>>>>>
>>>>>     void
>>>>>     setMmapedIpr(bool r)
>>>>>     {
>>>>>         assert(VALID_VADDR);
>>>>> -        flags.set(MMAPED_IPR);
>>>>> +        _flags.set(MMAPED_IPR);
>>>>>     }
>>>>>
>>>>>     /** Accessor function to check if sc result is valid. */
>>>>> @@ -403,14 +405,14 @@
>>>>>     getExtraData() const
>>>>>     {
>>>>>         assert(privateFlags.isSet(VALID_EXTRA_DATA));
>>>>> -        return extraData;
>>>>> +        return _extraData;
>>>>>     }
>>>>>
>>>>>     /** Accessor function for store conditional return value.*/
>>>>>     void
>>>>> -    setExtraData(uint64_t _extraData)
>>>>> +    setExtraData(uint64_t extraData)
>>>>>     {
>>>>> -        extraData = _extraData;
>>>>> +        _extraData = extraData;
>>>>>         privateFlags.set(VALID_EXTRA_DATA);
>>>>>     }
>>>>>
>>>>> @@ -447,31 +449,31 @@
>>>>>     getPC() const
>>>>>     {
>>>>>         assert(privateFlags.isSet(VALID_PC));
>>>>> -        return pc;
>>>>> +        return _pc;
>>>>>     }
>>>>>
>>>>>     /** Accessor Function to Check Cacheability. */
>>>>> -    bool isUncacheable() const { return flags.isSet(UNCACHEABLE); }
>>>>> -    bool isInstFetch() const { return flags.isSet(INST_FETCH); }
>>>>> -    bool isPrefetch() const { return flags.isSet(PREFETCH); }
>>>>> -    bool isLLSC() const { return flags.isSet(LLSC); }
>>>>> -    bool isLocked() const { return flags.isSet(LOCKED); }
>>>>> -    bool isSwap() const { return flags.isSet(MEM_SWAP|MEM_SWAP_COND); }
>>>>> -    bool isCondSwap() const { return flags.isSet(MEM_SWAP_COND); }
>>>>> +    bool isUncacheable() const { return _flags.isSet(UNCACHEABLE); }
>>>>> +    bool isInstFetch() const { return _flags.isSet(INST_FETCH); }
>>>>> +    bool isPrefetch() const { return _flags.isSet(PREFETCH); }
>>>>> +    bool isLLSC() const { return _flags.isSet(LLSC); }
>>>>> +    bool isLocked() const { return _flags.isSet(LOCKED); }
>>>>> +    bool isSwap() const { return _flags.isSet(MEM_SWAP|MEM_SWAP_COND); }
>>>>> +    bool isCondSwap() const { return _flags.isSet(MEM_SWAP_COND); }
>>>>>
>>>>>     bool
>>>>>     isMisaligned() const
>>>>>     {
>>>>> -        if (flags.isSet(NO_ALIGN_FAULT))
>>>>> +        if (_flags.isSet(NO_ALIGN_FAULT))
>>>>>             return false;
>>>>>
>>>>> -        if ((vaddr & 0x1))
>>>>> +        if ((_vaddr & 0x1))
>>>>>             return true;
>>>>>
>>>>> -        if (flags.isSet(NO_HALF_WORD_ALIGN_FAULT))
>>>>> +        if (_flags.isSet(NO_HALF_WORD_ALIGN_FAULT))
>>>>>             return false;
>>>>>
>>>>> -        if ((vaddr & 0x2))
>>>>> +        if ((_vaddr & 0x2))
>>>>>             return true;
>>>>>
>>>>>         return false;
>>>>> _______________________________________________
>>>>> m5-dev mailing list
>>>>> m5-dev@m5sim.org
>>>>> http://m5sim.org/mailman/listinfo/m5-dev
>>>>>
>>>>>
>>>> _______________________________________________
>>>> m5-dev mailing list
>>>> m5-dev@m5sim.org
>>>> http://m5sim.org/mailman/listinfo/m5-dev
>>>>
>>> _______________________________________________
>>> m5-dev mailing list
>>> m5-dev@m5sim.org
>>> http://m5sim.org/mailman/listinfo/m5-dev
>>>
>>>
>> _______________________________________________
>> m5-dev mailing list
>> m5-dev@m5sim.org
>> http://m5sim.org/mailman/listinfo/m5-dev
>>
> _______________________________________________
> m5-dev mailing list
> m5-dev@m5sim.org
> http://m5sim.org/mailman/listinfo/m5-dev
>
>
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to