What about making Enums recognize cxx_namespace too? That would be
pretty handy although I'm not sure how feasible. There seems to be a
global list of them that would probably get confused if there was more
than one with the same name, even if they were in separate modules.

Gabe

Gabe Black wrote:
> It won't, but if you use the attached patch it seems to. Let me know if
> it looks good and I'll tack it onto my queue. Also, is there a solid
> reason the create functions can't end up in a namespace other than the
> global one? I'm ending up with some pretty horrible names trying to make
> sure everything is unique.
> 
> Gabe
> 
> nathan binkert wrote:
>> I do think nested namespaces will work.  When you do cxx_namespace,
>> you'd just say "one::two::three"
>>
>> On Mon, Jun 2, 2008 at 6:59 PM, Ali Saidi <[EMAIL PROTECTED]> wrote:
>>> I think Nate will have to say if Nested namespaces will work for SimObjects.
>>> Perhaps a namespace like x86pc or something would be good for the tables.
>>> I'm pretty sure most of that stuff is x86 only.
>>>
>>> Ali
>>>
>>> On Jun 2, 2008, at 9:53 PM, Gabe Black wrote:
>>>
>>>> This stuff is standardized for PCs but it might be useful for other
>>>> platforms as well. I'm not familiar enough with this stuff to really be 
>>>> able
>>>> to tell for sure, but if I had to guess I'd say it's not. I was thinking of
>>>> putting it in X86ISA and then into a nested BIOS namespace.
>>>>
>>>> Gabe
>>>>
>>>> Ali Saidi wrote:
>>>>> Take a look at how the Alpha TLB is done for how to make
>>>>> SimObjects/Python happy with namespaces. The Params builder function needs
>>>>> to be in the global name space.
>>>>>
>>>>> One question is should it go in the x86 name space or in something else?
>>>>>
>>>>> Ali
>>>>>
>>>>>
>>>>>
>>>>> On Jun 2, 2008, at 9:32 PM, Gabe Black wrote:
>>>>>
>>>>>>  I'm just starting on making the BIOSey tables and configuration
>>>>>> information, like the e820 map which was forcing there to be 4 gigs of
>>>>>> memory, available through SimObjects. There are a bunch of hierarchical
>>>>>> tables for, for example, the DMI information, and I'm concerned that if I
>>>>>> add a bunch, maybe a few dozen, new names, I'll end up either colliding 
>>>>>> with
>>>>>> things that exist or making collisions more likely later on. The obvious 
>>>>>> C++
>>>>>> answer to that would be a namespace, but I'm not sure the best way to do
>>>>>> that in this circumstance. Regularly I think the python modules idea is
>>>>>> supposed to take care of this, but I'm not sure how that fits with our 
>>>>>> stuff
>>>>>> and some of the fancy voodoo we've got making it all work. I'm going to 
>>>>>> try
>>>>>> it that way and just see how it pans out, but if anyone has any input I'd
>>>>>> like to hear it.
>>>>>>
>>>>>> Gabe
>>>>>> _______________________________________________
>>>>>> m5-dev mailing list
>>>>>> [email protected]
>>>>>> http://m5sim.org/mailman/listinfo/m5-dev
>>>>>>
>>>>> _______________________________________________
>>>>> m5-dev mailing list
>>>>> [email protected]
>>>>> http://m5sim.org/mailman/listinfo/m5-dev
>>>> _______________________________________________
>>>> m5-dev mailing list
>>>> [email protected]
>>>> http://m5sim.org/mailman/listinfo/m5-dev
>>>>
>>> _______________________________________________
>>> m5-dev mailing list
>>> [email protected]
>>> http://m5sim.org/mailman/listinfo/m5-dev
>>>
>>>
>> _______________________________________________
>> m5-dev mailing list
>> [email protected]
>> http://m5sim.org/mailman/listinfo/m5-dev
> 
> 
> ------------------------------------------------------------------------
> 
> Params: Allow nested namespaces in cxx_namespace
> 
> diff -r 4944b77f70bd src/python/m5/SimObject.py
> --- a/src/python/m5/SimObject.py      Mon Jun 09 02:54:20 2008 -0400
> +++ b/src/python/m5/SimObject.py      Mon Jun 09 04:53:36 2008 -0400
> @@ -217,7 +217,10 @@ class MetaSimObject(type):
>                  # just declaring a pointer.
>                  decl = 'class %s;' % _cxx_class
>                  if namespace:
> -                    decl = 'namespace %s { %s }' % (namespace, decl)
> +                    namespaces = namespace.split('::')
> +                    namespaces.reverse()
> +                    for namespace in namespaces:
> +                        decl = 'namespace %s { %s }' % (namespace, decl)
>                  cls._value_dict['cxx_predecls'] = [decl]
>  
>              if 'swig_predecls' not in cls._value_dict:
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> m5-dev mailing list
> [email protected]
> http://m5sim.org/mailman/listinfo/m5-dev

_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to