Laura Creighton <l...@openend.se> writes: > In a message of Tue, 10 Nov 2015 17:10:09 +1100, Ben Finney writes: > >I am a Bear of Little Brain, but: Isn't anything that the *compiler* > >does, by definition done at *compile* time? > > No. > > We used to have a pretty strict defintion about what a compiler was, > and what an interpreter was. You did the compile things at compile > time, and then you the the interpreter things at runtime. > > No more. We have Just in Time compilers. They do their compiling at > run time. Or perhaps 'there is no such thing as compile time any > more'.
Very well. I argued on the basis of what could be determined at the time Steven refers to as “compile time”, i.e. before any part of the module begins to run. Steven D'Aprano <st...@pearwood.info> writes: > Python -- yes, even CPython -- has a runtime compiler. When you import > a module, it is compiled (if needed) just before the import. Likewise, > when you call the `compile`, `eval` or `exec` built-ins, the compiler > operates. > > I'm not calling this a JIT compiler, because the simple-minded > compilation performed by `compile` etc doesn't use any run-time > information. It just statically compiles the code to byte-code. That's what I though. I'm aware of JIT compilers, and was pretty sure Python doesn't have them. What's more, if it operates at a whole-module level, and not later than when the module is imported. Under those conditions, I maintain my objection to the proposed optimisation. The proposal is explicitly for optimisations made by the Python compiler. As proposed, it only seems to be worthwhile once Python no longer has a distinct “compiler” and “interpreter” is dissolved. Until then, it seems pointless. -- \ “There is something wonderful in seeing a wrong-headed majority | `\ assailed by truth.” —John Kenneth Galbraith, 1989-07-28 | _o__) | Ben Finney -- https://mail.python.org/mailman/listinfo/python-list