On Sep 12, 2009, at 12:51 PM, Stefan Behnel wrote: > Robert Bradshaw wrote: >> If one always wants bytes, one can do b"something." If one always >> wants unicode, one can do u"something." There's currently no >> (obvious, clean) way to get str. > > I get your point, although to me, "get str" smells like there isn't > a clean > way anyway. Compared to CPython, we actually have the advantage of > supporting the 'b' prefix for all Py2 versions. So you can write > portable > code that is explicit about this prefix. That's certainly not the > case for > plain Python code if you need to support Python versions before 2.6. > > What would be the plan for a switch then?
I'd say do a warning for un-prefixed literals for 0.11.3, and then the actual switch for 0.12. > I think if we do this now, there > will be two kinds of users: those who already changed their code to > explicit string semantics to adapt it to Py3, and those who didn't > care > (yet). I actually think that such a switch would break both kinds > of user > code. The first one, as it wasn't necessary before to prefix byte > strings > with 'b', so it most likely wasn't done, and the second one because > the > existing code is likely not portable anyway (so it won't break more > than it > already is). The second group has the advantage of not having invested > time, and the first (and likely smaller) group will have to fix up > their > code again. I'm certainly in the first group, but I guess the > second group > clearly outweighs the first one. > > Robert and/or Lisandro, would you write up a CEP that sums up and > describes > the proposed semantics for C strings and unprefixed byte strings? I > would > want to see a couple of examples in there that show in what cases > code will > break or not break, what changes will be required to fix broken > code up, > and what the change will simplify for code migration to Py3. That > would > make it quite clear how big the advantage actually is. From the top > of my > head, I can think of docstrings, for example, where this would be > helpful, > and I already mentioned the keywords example. Sure, I'll do that. I initially hesitated bring this volatile topic up again, but I think this is a solution that will make life less cumbersome for most Cython users without letting them be sloppy about encodings. - Robert _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
