+ Moved to a package architecture.
+ Wrote a (very simple!) distutils setup.py script.
+ Changed the keyspec format to be more sensible. See the docstring in
pyrepl/keymap.py for more information.
+ Portability fixes (coping without FIONREAD, select.poll, sundry
terminal capibilities, probably some other stuff).
+ Various tortuous changes to use 2.2 features where possible but
retaining 2.1 support (I hope; haven't got a 2.1 here to test with).
+ Jumping up and down on control-C now shouldn't dump you out of
pyrepl (via a large hammer kind of approach).
+ Cancelling a command with ^C left an empty string in the history.
No longer. Fixing this proved to require making the history code
more sensible, which was a good thing in itself.
+ reader.Reader has a new method, bind(), intended to be used by the
user.
+ The $PYTHONSTARTUP file is executed in a namespace containing Reader.
This means you can use the presence of the variable 'Reader' to tell
whether you're executing in a pyrepl shell.
+ The $PYREPLSTARTUP env. var now overrides $PYTHONSTARTUP for pyrepl
shells if set.
+ A prototype pygame console. To use this, call python_reader.main(1)
instead of just main() or main(0), or run 'pythoni pg'
- input is a bit messy right now
- printing large gobs of text is really slow
- you can't ^C running commands (you have to find the controlling
terminal and type ^C there).
- during long running commands we don't pump pygame's event loop, which
is naughty. These last two are related and probably require threads
(and much thought) to fix.
- probably lots of other warts!