Guido van Rossum wrote: > > > > Martin's hack falls short of doing the right thing in all cases: you > > > can't have the first statement of your program be "directive = ..." > > > or "directive(...)". > > > > If that is considered as a serious problem, I'll try to solve it with > > an additional lookahead token: If the next token is a name, then it is > > a directive. > > Wait. > > MAL seems to want two other changes: directive should be allowed > (required???) "allowed" not "required". > before the module docstring, and it should support the > syntax from his proto-PEP (directive key = value). > > But MAL and PaulP don't seem to agree on the semantics of this > directive, and I haven't gotten a good answer why we can't do that > with a magic comment. We don't ? Paul suggested adding encoding directives for 8-bit strings and comments, but these cannot be used by the Python compiler in any way and would only be for the benefit of an editor, so I don't really see the need for them. A programmer can still add some editor specific comment to the source file to tell the editor in what encoding to display the file, but this information is really only useful for the editor, not the Python compiler. About the magic comment: Unicode literals are translated into Unicode objects at compile time. The encoding information is vital for the decoding to succeed. If you place this information into a comment of the Python source code and have the compiler depend on it, removing the comment would break your program. I don't think that's good language design (besides, we already have enough Unicode magic in Python already...), but then people may feel different about this. > In the mean time, I've decided to enable the yield keyword with a > future statement. In general I now prefer using future statements for > enabling future features over the directive statement. > > So it's still unclear if we want a directive... One way or another we need a way to specify compiler parameters and settings on a per-source file basis. Whether you call it directive, pragma or magic comment is really secondary and only a matter of language design. I've only chosen PEP 244 as basis for the PEP because it seemed to fit the need. If you decide to go down some other path, then I'll happily update the PEP to whatever becomes part of Python. -- Marc-Andre Lemburg CEO eGenix.com Software GmbH ______________________________________________________________________ Consulting & Company: http://www.egenix.com/ Python Software: http://www.lemburg.com/python/
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4