On Tue, 23 Aug 2011 16:02:54 +0200
Stefan Behnel <stefan...@behnel.de> wrote:
> "Martin v. Löwis", 23.08.2011 15:17:
> >> Has this been considered before? Was there a reason to decide against it?
> >
> > I think we simply didn't consider it. An early version of the PEP used
> > the lower bits for the pointer to encode the kind, in which case it even
> > stopped being a pointer. Modules are not expected to access this
> > pointer except through the macros, so it may not matter that much.
> 
> The difference is that you *could* access them directly in a safe way, if 
> it was a union.
> 
> So, for an efficient character loop, replicated for performance reasons or 
> for character range handling reasons or whatever, you could just check the 
> string kind and then jump to the loop implementation that handles that 
> type, without using any further macros.

Macros are useful to shield the abstraction from the implementation. If
you access the members directly, and the unicode object is represented
differently in some future version of Python (say e.g. with tagged
pointers), your code doesn't compile anymore.

Regards

Antoine.


_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to