struct environment

Daniel Berlin dberlin@dberlin.org
Tue Sep 17 21:51:00 GMT 2002


On Tuesday, September 17, 2002, at 04:34  PM, Daniel Jacobowitz wrote:

> On Tue, Sep 17, 2002 at 03:52:33PM -0400, Daniel Berlin wrote:
>>
>> On Tuesday, September 17, 2002, at 02:02  PM, Daniel Jacobowitz wrote:
>>
>>> On Tue, Sep 17, 2002 at 01:54:07PM -0400, Andrew Cagney wrote:
>>>>> Well, sort of.  It won't be a DAG necessarily (I think that mutual
>>>>>>> "using" statements are legal in C++; I remember a GCC bug 
>>>>>>> involving
>>>>>>> them was fixed not long ago), and it will be somewhat complicated
>>>>>>> figuring out which ones to look up (namespace links are different
>>>>>>> than
>>>>>>> block scope links).
>>>>>
>>>>>>
>>>>>> Don't forget that GDB doesn't need to model the language.  Just 
>>>>>> the
>>>>>> namespace behavior at a given PC.  The effect of "using" would be 
>>>>>> to
>>>>>> just grow a nametab in someway.
>>>>>
>>>>>
>>>>> This is legal C++:
>>>>>
>>>>> namespace D {}
>>>>>
>>>>> namespace C {
>>>>> using namespace D;
>>>>> int x, y;
>>>>> }
>>>>>
>>>>> namespace D {
>>>>> using namespace C;
>>>>> int x, z;
>>>>> }
>>>>>
>>>>> If using just grew a nametab we'd get into a great deal of trouble.
>>>>
>>>> Depends on how you grow it :-)  Something like (assuming a real
>>>> language
>>>> :-):
>>>> 	D:
>>>> 	0: x, z
>>>> 	1: x, y (from C)
>>>> 	2: ...
>>>
>>> How you intend to do this efficiently I don't know.  Remember that C
>>> uses D in turn, and that things "using"'d into D will therefore be
>>> visible in C.
>>
>> These types of problems are exactly why i said a lot of thought needs
>> to be put into the design of the underlying structures, rather than
>> just copying what we have because we have it.
>> It's hard to call it "overengineered" if how to do lookups efficiently
>> with large numbers of names in namespaces hasn't been considered.
>> It's not really something you can bolt on later.
>> Hasn't this been proven by the fact that it hasn't been bolted on yet?
>
> Absolutely.  But I've always thought that we'd still do it via
> searching a succession of blocks, with some sort of global structure
> for figuring out where to look; which means that at this point it's
> been designed far enough.  I could be wrong :)

This might be the case.
I'm just trying to make sure it *has* been considered.
I'm not saying it actually requires any changes to the proposed way of 
doing things.

In legal terms, i'm raising the objection to preserve it for a possible 
later appeal.
:)

--Dan



More information about the Gdb mailing list