Language change and code breaks

phil hunt philh at
Wed Jul 18 14:38:06 CEST 2001

On Wed, 18 Jul 2001 13:29:08 +0100, phil hunt <philh at> wrote:
>On Tue, 17 Jul 2001 13:13:36 GMT, Guido van Rossum <guido at> wrote:
>>philh at (phil hunt) writes:
>>> >I also don't want to fork the code base.  
>>> Does that imply that you sare no longer interested in making 
>>> radical changes to Python, such as case-insensitive identifiers
>>> mentioned in CP4E?
>>I still have the same end goal, but I believe there must be a way to
>>obtain it without too much disturbance. 
>Hmmm. I'm not sure about that, it feels to me like its opening up a
>can of worms.
>>Case-sensitivity, for
>>example, may be a tool feature rather than a language feature, or it
>>may be a user option or a langage-level choice. 
>Say I write a module in the current (case-sensitive) Python. Then 
>you write one in case-insensitive python. Your code calls one of my 
>routines or variables; how does it get the case-sensitivity right?
>Does it do so at run time or compile time? Compile time might
>be difficult, for example if I have an object that dynamically
>creates instance variables for itself. What if I have an object
>ob with both ob.variable and ob.VARIABLE? What does your code
>use when it resolves philsModule.ob.variable?
>Case matching up at run-time is likely to make the language slower.
>(One way I might consider fixing it would be to have the new
>language explicitly say when it is dealing with old-python modules
>and be case sensitive there; consider C++'s name mangling and the
>extern keyword they used to link to C code.)

One question that's just occurred to me.

In normal Python:

class C: pass

c = C()
c.__dict__['h'] = 'hello'

Now, c.h is 'hello' but c.H is an exception.

Will keys in dictionaries have to be case-insensitive in
cae-insensitive python?

#===== Philip Hunt == philh at ======#
    Herbivore: effort-free public key encryption. See:
        ** First software release coming soon! **

More information about the Python-list mailing list