[Edu-sig] Reloading code (was Re: OLPC: first thoughts)
Michael Spencer
mahs at telcopartners.com
Mon Mar 12 19:00:40 CET 2007
Paul D. Fernhout wrote:
> Michael-
>
> Thanks for the update. An entire Python compiler to make it work right?
No, the module I linked to is self-contained, although hardly user-friendly, I
concede. I believe that custom-compilation *will* be required to tackle some
corner cases, but I haven't implemented it.
> Wow. I don't use many class methods so I've never noticed this problem.
> Thanks for putting this up, and under the Python license (according to
> the readme).
> http://svn.brownspencer.com/pycompiler/branches/new_ast/readme.txt
Yep, Python license.
> Is this in any ways related to PyPy?
> http://codespeak.net/pypy/dist/pypy/doc/news.html
No. It's just an update/replacement for the stdlib compiler package which has
several known problems, and which does not support the native Python 2.5 AST.
>
> In the Jython reload case I have noticed a different problem, which is
> that a method with a call to super__ will fail. ...
Unfortunately, I don't know any details about Jython's implementation, but this
doesn't surprise me.
>
> I don't believe CPython reloading has any of those problems, since it is
> not doing the kind of reflection Jython does.
No, although it's pretty easy to come up with corner cases to confuse CPython
reloading too.
>
>
> When even Visual Basic or C# or Ruby can do this "edit and continue", I
> am worried about Python's future if it does not gain this feature. See
> for example:
> http://www.codinghorror.com/blog/archives/000507.html
I strongly agree. Edit and continue is intuitive for beginners, productive for
experts, and anyway the standard set by competitors.
...
>
> Note that I think that even if it was impossible in Python to resume
> from an exception (without major surgery in Python's innards), being
> able to break on the creation of any exception in the debugger, and then
> one by one tell the debugger to ignore some of them based on the type of
> exception or the module it is created in, would probably still be OK
> enough if you could then edit and continue before the exception was
> actually raised. This weaker form of "Edit and continue" would be harder
> to use, but probably still worthwhile given the right IDE tools.
I suspect that this requires a customized interpreter, and that pypy might be
the vehicle to make this happen.
Michael
More information about the Edu-sig
mailing list