Hi! Fred L. Drake, Jr.: > M.-A. Lemburg writes: > > Here's a simple strawman for the syntax: > ... > > The compiler would scan these pragma defs, add them to an > > internal temporary dictionary and use them for all subsequent > > code it finds during the compilation process. The dictionary > > would have to stay around until the original compile() call has > > completed (spanning recursive calls). > > Marc-Andre, > The problem with this proposal is that the pragmas are embedded in > the comments; I'd rather see a new keyword and statement. It could be > defined something like: > > pragma_atom: NAME | NUMBER | STRING+ > pragma_stmt: 'pragma' NAME ':' pragma_atom (',' pragma_atom)* This would defeat an important goal: backward compatibility: You can't add 'pragma division: old' or something like this to a source file, which should be able to run with both Python 1.5.2 and Py3k. This would make this mechanism useless for several important applications of pragmas. Here comes David Scherers idea into play. The relevant emails of this thread are in the archive at: <URL:http://www.python.org/pipermail/idle-dev/2000-April/000138.html> <URL:http://www.python.org/pipermail/idle-dev/2000-April/000140.html> <URL:http://www.python.org/pipermail/python-dev/2000-April/004761.html> > The biggest problem with embedding it in comments is that it is no > longer part of the syntax tree generated by the parser. The pragmas > become global to the module on a de-facto basis. While this is > probably reasonable for the sorts of pragmas we've thought of so far, > this seems an unnecessary restriction; future tools may support scoped > pragmas to help out with selection of optimization strategies, for > instance, or other applications. [...] IMO this is overkill. For all real applications that have been discussed so far, global pragmas are sufficient: - source file character encoding - language level - generated division operator byte codes - generated comparision operators byte codes (comparing strings and numbers) I really like Davids idea to use 'global' at module level for the purpose of pragmas. And this idea has also the advantage that Guido already wrote the idea is "kind of cute and backwards compatible". Regards, Peter -- Peter Funk, Oldenburger Str.86, D-27777 Ganderkesee, Germany, Fax:+49 4222950260 office: +49 421 20419-0 (ArtCom GmbH, Grazer Str.8, D-28359 Bremen)
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