2004-05-13  *** Released version 0.6.0

2004-05-13  *** Released version 0.6.0

2004-05-13  Fernando Perez  <fperez@colorado.edu>

	* debian/: Added debian/ directory to CVS, so that debian support
	is publicly accessible.  The debian package is maintained by Jack
	Moffit <jack@xiph.org>.

	* Documentation: included the notes about an ipython-based system
	shell (the hypothetical 'pysh') into the new_design.pdf document,
	so that these ideas get distributed to users along with the
	official documentation.

2004-05-10  Fernando Perez  <fperez@colorado.edu>

	* IPython/Logger.py (Logger.create_log): fix recently introduced
	bug (misindented line) where logstart would fail when not given an
	explicit filename.

2004-05-09  Fernando Perez  <fperez@colorado.edu>

	* IPython/Magic.py (Magic.parse_options): skip system call when
	there are no options to look for.  Faster, cleaner for the common
	case.

	* Documentation: many updates to the manual: describing Windows
	support better, Gnuplot updates, credits, misc small stuff.  Also
	updated the new_design doc a bit.

2004-05-06  *** Released version 0.6.0.rc1

2004-05-06  Fernando Perez  <fperez@colorado.edu>

	* IPython/ultraTB.py (ListTB.text): modified a ton of string +=
	operations to use the vastly more efficient list/''.join() method.
	(FormattedTB.text): Fix
	http://www.scipy.net/roundup/ipython/issue12 - exception source
	extract not updated after reload.  Thanks to Mike Salib
	<msalib@mit.edu> for pinning the source of the problem.
	Fortunately, the solution works inside ipython and doesn't require
	any changes to python proper.

	* IPython/Magic.py (Magic.parse_options): Improved to process the
	argument list as a true shell would (by actually using the
	underlying system shell).  This way, all @magics automatically get
	shell expansion for variables.  Thanks to a comment by Alex
	Schmolck.

2004-04-04  Fernando Perez  <fperez@colorado.edu>

	* IPython/iplib.py (InteractiveShell.interact): Added a special
	trap for a debugger quit exception, which is basically impossible
	to handle by normal mechanisms, given what pdb does to the stack.
	This fixes a crash reported by <fgibbons@llama.med.harvard.edu>.

2004-04-03  Fernando Perez  <fperez@colorado.edu>

	* IPython/genutils.py (Term): Standardized the names of the Term
	class streams to cin/cout/cerr, following C++ naming conventions
	(I can't use in/out/err because 'in' is not a valid attribute
	name).

	* IPython/iplib.py (InteractiveShell.interact): don't increment
	the prompt if there's no user input.  By Daniel 'Dang' Griffith
	<pythondev-dang@lazytwinacres.net>, after a suggestion from
	Francois Pinard.

2004-04-02  Fernando Perez  <fperez@colorado.edu>

	* IPython/genutils.py (Stream.__init__): Modified to survive at
	least importing in contexts where stdin/out/err aren't true file
	objects, such as PyCrust (they lack fileno() and mode).  However,
	the recovery facilities which rely on these things existing will
	not work.

2004-04-01  Fernando Perez  <fperez@colorado.edu>

	* IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
	use the new getoutputerror() function, so it properly
	distinguishes stdout/err.

	* IPython/genutils.py (getoutputerror): added a function to
	capture separately the standard output and error of a command.
	After a comment from dang on the mailing lists.  This code is
	basically a modified version of commands.getstatusoutput(), from
	the standard library.

	* IPython/iplib.py (InteractiveShell.handle_shell_escape): added
	'!!' as a special syntax (shorthand) to access @sx.

	* IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
	command and return its output as a list split on '\n'.

2004-03-31  Fernando Perez  <fperez@colorado.edu>

	* IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
	method to dictionaries used as FakeModule instances if they lack
	it.  At least pydoc in python2.3 breaks for runtime-defined
	functions without this hack.  At some point I need to _really_
	understand what FakeModule is doing, because it's a gross hack.
	But it solves Arnd's problem for now...

2004-02-27  Fernando Perez  <fperez@colorado.edu>

	* IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
	mode would behave erratically.  Also increased the number of
	possible logs in rotate mod to 999.  Thanks to Rod Holland
	<rhh@StructureLABS.com> for the report and fixes.
	
2004-02-26  Fernando Perez  <fperez@colorado.edu>

	* IPython/genutils.py (page): Check that the curses module really
	has the initscr attribute before trying to use it.  For some
	reason, the Solaris curses module is missing this.  I think this
	should be considered a Solaris python bug, but I'm not sure.

2004-01-17  Fernando Perez  <fperez@colorado.edu>

	* IPython/genutils.py (Stream.__init__): Changes to try to make
	ipython robust against stdin/out/err being closed by the user.
	This is 'user error' (and blocks a normal python session, at least
	the stdout case).  However, Ipython should be able to survive such
	instances of abuse as gracefully as possible.  To simplify the
	coding and maintain compatibility with Gary Bishop's Term
	contributions, I've made use of classmethods for this.  I think
	this introduces a dependency on python 2.2.

2004-01-13  Fernando Perez  <fperez@colorado.edu>

	* IPython/numutils.py (exp_safe): simplified the code a bit and
	removed the need for importing the kinds module altogether.

2004-01-06  Fernando Perez  <fperez@colorado.edu>

	* IPython/Magic.py (Magic.magic_sc): Made the shell capture system
	a magic function instead, after some community feedback.  No
	special syntax will exist for it, but its name is deliberately
	very short.

2003-12-20  Fernando Perez  <fperez@colorado.edu>

	* IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
	new functionality, to automagically assign the result of a shell
	command to a variable.  I'll solicit some community feedback on
	this before making it permanent.

	* IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
	requested about callables for which inspect couldn't obtain a
	proper argspec.  Thanks to a crash report sent by Etienne
	Posthumus <etienne@apple01.cs.vu.nl>.

2003-12-09  Fernando Perez  <fperez@colorado.edu>

	* IPython/genutils.py (page): patch for the pager to work across
	various versions of Windows.  By Gary Bishop.

2003-12-04  Fernando Perez  <fperez@colorado.edu>

	* IPython/Gnuplot2.py (PlotItems): Fixes for working with
	Gnuplot.py version 1.7, whose internal names changed quite a bit.
	While I tested this and it looks ok, there may still be corner
	cases I've missed.

2003-12-01  Fernando Perez  <fperez@colorado.edu>

	* IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
	where a line like 'p,q=1,2' would fail because the automagic
	system would be triggered for @p.

	* IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
	cleanups, code unmodified.

	* IPython/genutils.py (Term): added a class for IPython to handle
	output.  In most cases it will just be a proxy for stdout/err, but
	having this allows modifications to be made for some platforms,
	such as handling color escapes under Windows.  All of this code
	was contributed by Gary Bishop, with minor modifications by me.
	The actual changes affect many files.

2003-11-30  Fernando Perez  <fperez@colorado.edu>

	* IPython/iplib.py (file_matches): new completion code, courtesy
	of Jeff Collins.  This enables filename completion again under
	python 2.3, which disabled it at the C level.

2003-11-11  Fernando Perez  <fperez@colorado.edu>

	* IPython/numutils.py (amap): Added amap() fn.  Simple shorthand
	for Numeric.array(map(...)), but often convenient.

2003-11-05  Fernando Perez  <fperez@colorado.edu>

	* IPython/numutils.py (frange): Changed a call from int() to
	int(round()) to prevent a problem reported with arange() in the
	numpy list.

2003-10-06  Fernando Perez  <fperez@colorado.edu>

	* IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
	prevent crashes if sys lacks an argv attribute (it happens with
	embedded interpreters which build a bare-bones sys module).
	Thanks to a report/bugfix by Adam Hupp <hupp@cs.wisc.edu>.

2003-09-24  Fernando Perez  <fperez@colorado.edu>

	* IPython/Magic.py (Magic._ofind): blanket except around getattr()
	to protect against poorly written user objects where __getattr__
	raises exceptions other than AttributeError.  Thanks to a bug
	report by Oliver Sander <osander@gmx.de>.

	* IPython/FakeModule.py (FakeModule.__repr__): this method was
	missing.  Thanks to bug report by Ralf Schmitt <ralf@brainbot.com>.

2003-09-09  Fernando Perez  <fperez@colorado.edu>

	* IPython/iplib.py (InteractiveShell._prefilter): fix bug where
	unpacking a list whith a callable as first element would
	mistakenly trigger autocalling.  Thanks to a bug report by Jeffery
	Collins.

2003-08-25  *** Released version 0.5.0

2003-08-22  Fernando Perez  <fperez@colorado.edu>

	* IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
	improperly defined user exceptions.  Thanks to feedback from Mark
	Russell <mrussell@verio.net>.
	
2003-08-20  Fernando Perez  <fperez@colorado.edu>

	* IPython/OInspect.py (Inspector.pinfo): changed String Form
	printing so that it would print multi-line string forms starting
	with a new line.  This way the formatting is better respected for
	objects which work hard to make nice string forms.

	* IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
	autocall would overtake data access for objects with both
	__getitem__ and __call__.

2003-08-19  *** Released version 0.5.0-rc1

2003-08-19  Fernando Perez  <fperez@colorado.edu>

	* IPython/deep_reload.py (load_tail): single tiny change here
	seems to fix the long-standing bug of dreload() failing to work
	for dotted names.  But this module is pretty tricky, so I may have
	missed some subtlety.  Needs more testing!.

	* IPython/ultraTB.py (VerboseTB.linereader): harden against user
	exceptions which have badly implemented __str__ methods.
	(VerboseTB.text): harden against inspect.getinnerframes crashing,
	which I've been getting reports about from Python 2.3 users.  I
	wish I had a simple test case to reproduce the problem, so I could
	either write a cleaner workaround or file a bug report if
	necessary.

	* IPython/Magic.py (Magic.magic_edit): fixed bug where after
	making a class 'foo', file 'foo.py' couldn't be edited.  Thanks to
	a bug report by Tjabo Kloppenburg.

	* IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
	crashes.  Wrapped the pdb call in a blanket try/except, since pdb
	seems rather unstable.  Thanks to a bug report by Tjabo
	Kloppenburg <tjabo.kloppenburg@unix-ag.uni-siegen.de>.

	* IPython/Release.py (version): release 0.5.0-rc1.  I want to put
	this out soon because of the critical fixes in the inner loop for
	generators.

	* IPython/Magic.py (Magic.getargspec): removed.  This (and
	_get_def) have been obsoleted by OInspect for a long time, I
	hadn't noticed that they were dead code.
	(Magic._ofind): restored _ofind functionality for a few literals
	(those in ["''",'""','[]','{}','()']).  But it won't work anymore
	for things like "hello".capitalize?, since that would require a
	potentially dangerous eval() again.

	* IPython/iplib.py (InteractiveShell._prefilter): reorganized the
	logic a bit more to clean up the escapes handling and minimize the
	use of _ofind to only necessary cases.  The interactive 'feel' of
	IPython should have improved quite a bit with the changes in
	_prefilter and _ofind (besides being far safer than before).

	* IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
	obscure, never reported).  Edit would fail to find the object to
	edit under some circumstances.
	(Magic._ofind): CRITICAL FIX.  Finally removed the eval() calls
	which were causing double-calling of generators.  Those eval calls
	were _very_ dangerous, since code with side effects could be
	triggered.  As they say, 'eval is evil'...  These were the
	nastiest evals in IPython.  Besides, _ofind is now far simpler,
	and it should also be quite a bit faster.  Its use of inspect is
	also safer, so perhaps some of the inspect-related crashes I've
	seen lately with Python 2.3 might be taken care of.  That will
	need more testing.

2003-08-17  Fernando Perez  <fperez@colorado.edu>

	* IPython/iplib.py (InteractiveShell._prefilter): significant
	simplifications to the logic for handling user escapes.  Faster
	and simpler code.

2003-08-14  Fernando Perez  <fperez@colorado.edu>

        * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
        Now it requires O(N) storage (N=size(a)) for non-contiguous input,
        but it should be quite a bit faster.  And the recursive version
        generated O(log N) intermediate storage for all rank>1 arrays,
        even if they were contiguous.
        (l1norm): Added this function.
        (norm):  Added this function for arbitrary norms (including
        l-infinity).  l1 and l2 are still special cases for convenience
        and speed.
	
2003-08-03  Fernando Perez  <fperez@colorado.edu>

	* IPython/Magic.py (Magic.magic_edit): Removed all remaining string
	exceptions, which now raise PendingDeprecationWarnings in Python
	2.3.  There were some in Magic and some in Gnuplot2.

2003-06-30  Fernando Perez  <fperez@colorado.edu>

	* IPython/genutils.py (page): modified to call curses only for
	terminals where TERM=='xterm'.  After problems under many other
	terminals were reported by Keith Beattie <KSBeattie@lbl.gov>.

	* IPython/iplib.py (complete): removed spurious 'print "IE"' which
	would be triggered when readline was absent.  This was just an old
	debugging statement I'd forgotten to take out.

2003-06-20  Fernando Perez  <fperez@colorado.edu>

	* IPython/genutils.py (clock): modified to return only user time
	(not counting system time), after a discussion on scipy.  While
	system time may be a useful quantity occasionally, it may much
	more easily be skewed by occasional swapping or other similar
	activity.

2003-06-05  Fernando Perez  <fperez@colorado.edu>

	* IPython/numutils.py (identity): new function, for building
	arbitrary rank Kronecker deltas (mostly backwards compatible with
	Numeric.identity)

2003-06-03  Fernando Perez  <fperez@colorado.edu>

	* IPython/iplib.py (InteractiveShell.handle_magic): protect
	arguments passed to magics with spaces, to allow trailing '\' to
	work normally (mainly for Windows users).

2003-05-29  Fernando Perez  <fperez@colorado.edu>

	* IPython/ipmaker.py (make_IPython): Load site._Helper() as help
	instead of pydoc.help.  This fixes a bizarre behavior where
	printing '%s' % locals() would trigger the help system.  Now
	ipython behaves like normal python does.  

	Note that if one does 'from pydoc import help', the bizarre
	behavior returns, but this will also happen in normal python, so
	it's not an ipython bug anymore (it has to do with how pydoc.help
	is implemented).

2003-05-22  Fernando Perez  <fperez@colorado.edu>

	* IPython/FlexCompleter.py (Completer.attr_matches): fixed to
	return [] instead of None when nothing matches, also match to end
	of line.  Patch by Gary Bishop.

	* IPython/ipmaker.py (make_IPython): Added same sys.excepthook
	protection as before, for files passed on the command line.  This
	prevents the CrashHandler from kicking in if user files call into
	sys.excepthook (such as PyQt and WxWindows have a nasty habit of
	doing).  After a report by Kasper Souren <Kasper.Souren@ircam.fr>

2003-05-20  *** Released version 0.4.0

2003-05-20  Fernando Perez  <fperez@colorado.edu>

	* setup.py: added support for manpages.  It's a bit hackish b/c of
	a bug in the way the bdist_rpm distutils target handles gzipped
	manpages, but it works.  After a patch by Jack.

2003-05-19  Fernando Perez  <fperez@colorado.edu>

	* IPython/numutils.py: added a mockup of the kinds module, since
	it was recently removed from Numeric.  This way, numutils will
	work for all users even if they are missing kinds.

	* IPython/Magic.py (Magic._ofind): Harden against an inspect
	failure, which can occur with SWIG-wrapped extensions.  After a
	crash report from Prabhu.

2003-05-16  Fernando Perez  <fperez@colorado.edu>

	* IPython/iplib.py (InteractiveShell.excepthook): New method to
	protect ipython from user code which may call directly
	sys.excepthook (this looks like an ipython crash to the user, even
	when it isn't).  After a patch by Gary Bishop <gb@cs.unc.edu>.
	This is especially important to help users of WxWindows, but may
	also be useful in other cases.

	* IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
	an optional tb_offset to be specified, and to preserve exception
	info if given.  After a patch by Gary Bishop <gb@cs.unc.edu>.

	* ipython.1 (Default): Thanks to Jack's work, we now have manpages!

2003-05-15  Fernando Perez  <fperez@colorado.edu>

	* IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
	installing for a new user under Windows.

2003-05-12  Fernando Perez  <fperez@colorado.edu>

	* IPython/iplib.py (InteractiveShell.handle_emacs): New line
	handler for Emacs comint-based lines.  Currently it doesn't do
	much (but importantly, it doesn't update the history cache).  In
	the future it may be expanded if Alex needs more functionality
	there.

	* IPython/CrashHandler.py (CrashHandler.__call__): Added platform
	info to crash reports.

	* IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
	just like Python's -c.  Also fixed crash with invalid -color
	option value at startup. Thanks to Will French
	<wfrench@bestweb.net> for the bug report.

2003-05-09  Fernando Perez  <fperez@colorado.edu>

	* IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
	to EvalDict (it's a mapping, after all) and simplified its code
	quite a bit, after a nice discussion on c.l.py where Gustavo
	Crdova <gcordova@sismex.com> suggested the new version.

2003-04-30  Fernando Perez  <fperez@colorado.edu>

	* IPython/genutils.py (timings_out): modified it to reduce its
	overhead in the common reps==1 case.

2003-04-29  Fernando Perez  <fperez@colorado.edu>

	* IPython/genutils.py (timings_out): Modified to use the resource
	module, which avoids the wraparound problems of time.clock().

2003-04-17  *** Released version 0.2.15pre4

2003-04-17  Fernando Perez  <fperez@colorado.edu>

	* setup.py (scriptfiles): Split windows-specific stuff over to a
	separate file, in an attempt to have a Windows GUI installer.
	That didn't work, but part of the groundwork is done.

	* IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
	indent/unindent with 4 spaces.  Particularly useful in combination
	with the new auto-indent option.

2003-04-16  Fernando Perez  <fperez@colorado.edu>

	* IPython/Magic.py: various replacements of self.rc for
	self.shell.rc.  A lot more remains to be done to fully disentangle
	this class from the main Shell class.

	* IPython/GnuplotRuntime.py: added checks for mouse support so
	that we don't try to enable it if the current gnuplot doesn't
	really support it.  Also added checks so that we don't try to
	enable persist under Windows (where Gnuplot doesn't recognize the
	option).

	* IPython/iplib.py (InteractiveShell.interact): Added optional
	auto-indenting code, after a patch by King C. Shu
	<kingshu@myrealbox.com>. It's off by default because it doesn't
	get along well with pasting indented code.  If I ever figure out
	how to make that part go well, it will become on by default.

	* IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
	crash ipython if there was an unmatched '%' in the user's prompt
	string.  Reported by Thorsten Kampe <thorsten@thorstenkampe.de>.
	
	* IPython/iplib.py (InteractiveShell.interact): removed the
	ability to ask the user whether he wants to crash or not at the
	'last line' exception handler.  Calling functions at that point
	changes the stack, and the error reports would have incorrect
	tracebacks.

	* IPython/Magic.py (Magic.magic_page): Added new @page magic, to
	pass through a peger a pretty-printed form of any object.  After a
	contribution by Olivier Aubert <oaubert@bat710.univ-lyon1.fr>

2003-04-14  Fernando Perez  <fperez@colorado.edu>

	* IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
	all files in ~ would be modified at first install (instead of
	~/.ipython).  This could be potentially disastrous, as the
	modification (make line-endings native) could damage binary files.
	
2003-04-10  Fernando Perez  <fperez@colorado.edu>

	* IPython/iplib.py (InteractiveShell.handle_help): Modified to
	handle only lines which are invalid python.  This now means that
	lines like 'x=1 #?' execute properly.  Thanks to Jeffery Collins
	for the bug report.

2003-04-01  Fernando Perez  <fperez@colorado.edu>

	* IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
	where failing to set sys.last_traceback would crash pdb.pm().
	Thanks to Jeffery D. Collins <Jeff.Collins@vexcel.com> for the bug
	report.

2003-03-25  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
	before printing it (it had a lot of spurious blank lines at the
	end).

	* IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
	output would be sent 21 times!  Obviously people don't use this
	too often, or I would have heard about it.

2003-03-24  Fernando Perez  <fperez@pizero.colorado.edu>

	* setup.py (scriptfiles): renamed the data_files parameter from
	'base' to 'data' to fix rpm build issues.  Thanks to Ralf Ahlbrink
	for the patch.

2003-03-20  Fernando Perez  <fperez@colorado.edu>

	* IPython/genutils.py (error): added error() and fatal()
	functions.

2003-03-18  *** Released version 0.2.15pre3

2003-03-18  Fernando Perez  <fperez@colorado.edu>

	* setupext/install_data_ext.py
	(install_data_ext.initialize_options): Class contributed by Jack
	Moffit for fixing the old distutils hack.  He is sending this to
	the distutils folks so in the future we may not need it as a
	private fix.

	* MANIFEST.in: Extensive reorganization, based on Jack Moffit's
	changes for Debian packaging.  See his patch for full details.
	The old distutils hack of making the ipythonrc* files carry a
	bogus .py extension is gone, at last.  Examples were moved to a
	separate subdir under doc/, and the separate executable scripts
	now live in their own directory.  Overall a great cleanup.  The
	manual was updated to use the new files, and setup.py has been
	fixed for this setup.

	* IPython/PyColorize.py (Parser.usage): made non-executable and
	created a pycolor wrapper around it to be included as a script.

2003-03-12  *** Released version 0.2.15pre2

2003-03-12  Fernando Perez  <fperez@colorado.edu>

	* IPython/ColorANSI.py (make_color_table): Finally fixed the
	long-standing problem with garbage characters in some terminals.
	The issue was really that the \001 and \002 escapes must _only_ be
	passed to input prompts (which call readline), but _never_ to
	normal text to be printed on screen.  I changed ColorANSI to have
	two classes: TermColors and InputTermColors, each with the
	appropriate escapes for input prompts or normal text.  The code in
	Prompts.py got slightly more complicated, but this very old and
	annoying bug is finally fixed.  

	All the credit for nailing down the real origin of this problem
	and the correct solution goes to Jack Moffit <jack@xiph.org>.
	*Many* thanks to him for spending quite a bit of effort on this.

2003-03-05  *** Released version 0.2.15pre1

2003-03-03  Fernando Perez  <fperez@colorado.edu>

	* IPython/FakeModule.py: Moved the former _FakeModule to a
	separate file, because it's also needed by Magic (to fix a similar
	pickle-related issue in @run).

2003-03-02  Fernando Perez  <fperez@colorado.edu>

	* IPython/Magic.py (Magic.magic_autocall): new magic to control
	the autocall option at runtime.
	(Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
	across Magic.py to start separating Magic from InteractiveShell.
	(Magic._ofind): Fixed to return proper namespace for dotted
	names. Before, a dotted name would always return 'not currently
	defined', because it would find the 'parent'. s.x would be found,
	but since 'x' isn't defined by itself, it would get confused.
	(Magic.magic_run): Fixed pickling problems reported by Ralf
	Ahlbrink <RAhlbrink@RosenInspection.net>.  The fix was similar to
	that I'd used when Mike Heeter reported similar issues at the
	top-level, but now for @run.  It boils down to injecting the
	namespace where code is being executed with something that looks
	enough like a module to fool pickle.dump().  Since a pickle stores
	a named reference to the importing module, we need this for
	pickles to save something sensible.

	* IPython/ipmaker.py (make_IPython): added an autocall option.

	* IPython/iplib.py (InteractiveShell._prefilter): reordered all of
	the auto-eval code.  Now autocalling is an option, and the code is
	also vastly safer.  There is no more eval() involved at all.

2003-03-01  Fernando Perez  <fperez@colorado.edu>

	* IPython/Magic.py (Magic._ofind): Changed interface to return a
	dict with named keys instead of a tuple.

	* IPython: Started using CVS for IPython as of 0.2.15pre1.

	* setup.py (make_shortcut): Fixed message about directories
	created during Windows installation (the directories were ok, just
	the printed message was misleading).  Thanks to Chris Liechti
	<cliechti@gmx.net> for the heads up.

2003-02-21  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
	of ValueError exception when checking for auto-execution.  This
	one is raised by things like Numeric arrays arr.flat when the
	array is non-contiguous.

2003-01-31  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
	not return any value at all (even though the command would get
	executed).
	(xsys): Flush stdout right after printing the command to ensure
	proper ordering of commands and command output in the total
	output.
	(SystemExec/xsys/bq): Switched the names of xsys/bq and
	system/getoutput as defaults.  The old ones are kept for
	compatibility reasons, so no code which uses this library needs
	changing.

2003-01-27  *** Released version 0.2.14

2003-01-25  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Magic.py (Magic.magic_edit): Fixed problem where
	functions defined in previous edit sessions could not be re-edited
	(because the temp files were immediately removed).  Now temp files
	are removed only at IPython's exit.
	(Magic.magic_run): Improved @run to perform shell-like expansions
	on its arguments (~users and $VARS).  With this, @run becomes more
	like a normal command-line.

	* IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
	bugs related to embedding and cleaned up that code.  A fairly
	important one was the impossibility to access the global namespace
	through the embedded IPython (only local variables were visible).

2003-01-14  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/iplib.py (InteractiveShell._prefilter): Fixed
	auto-calling to be a bit more conservative.  Now it doesn't get
	triggered if any of '!=()<>' are in the rest of the input line, to
	allow comparing callables.  Thanks to Alex for the heads up.

2003-01-07  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/genutils.py (page): fixed estimation of the number of
	lines in a string to be paged to simply count newlines. This
	prevents over-guessing due to embedded escape sequences. A better
	long-term solution would involve stripping out the control chars
	for the count, but it's potentially so expensive I just don't
	think it's worth doing.

2002-12-19  *** Released version 0.2.14pre50

2002-12-19  Fernando Perez  <fperez@pizero.colorado.edu>

	* tools/release (version): Changed release scripts to inform
	Andrea and build a NEWS file with a list of recent changes.

	* IPython/ColorANSI.py (__all__): changed terminal detection
	code. Seems to work better for xterms without breaking
	konsole. Will need more testing to determine if WinXP and Mac OSX
	also work ok.

2002-12-18  *** Released version 0.2.14pre49

2002-12-18  Fernando Perez  <fperez@pizero.colorado.edu>

	* Docs: added new info about Mac OSX, from Andrea.

	* IPython/Gnuplot2.py (String): Added a String PlotItem class to
	allow direct plotting of python strings whose format is the same
	of gnuplot data files.

2002-12-16  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/iplib.py (InteractiveShell.interact): fixed default (y)
	value of exit question to be acknowledged.

2002-12-03  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/ipmaker.py: removed generators, which had been added
	by mistake in an earlier debugging run. This was causing trouble
	to users of python 2.1.x. Thanks to Abel Daniel <abli@freemail.hu>
	for pointing this out.

2002-11-17  Fernando Perez  <fperez@pizero.colorado.edu>

	* Manual: updated the Gnuplot section.

	* IPython/GnuplotRuntime.py: refactored a lot all this code, with
	a much better split of what goes in Runtime and what goes in
	Interactive.

	* IPython/ipmaker.py: fixed bug where import_fail_info wasn't
	being imported from iplib.

	* IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
	for command-passing. Now the global Gnuplot instance is called
	'gp' instead of 'g', which was really a far too fragile and
	common name.

	* IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
	bounding boxes generated by Gnuplot for square plots.

	* IPython/genutils.py (popkey): new function added. I should
	suggest this on c.l.py as a dict method, it seems useful.

	* IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
	to transparently handle PostScript generation. MUCH better than
	the previous plot_eps/replot_eps (which I removed now). The code
	is also fairly clean and well documented now (including
	docstrings).

2002-11-13  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Magic.py (Magic.magic_edit): fixed docstring
	(inconsistent with options).

	* IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
	manually disabled, I don't know why. Fixed it.
	(Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
	eps output.

2002-11-12  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
	don't propagate up to caller. Fixes crash reported by Franois
	Pinard.

2002-11-09  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/ipmaker.py (make_IPython): fixed problem with writing
	history file for new users.
	(make_IPython): fixed bug where initial install would leave the
	user running in the .ipython dir.
	(make_IPython): fixed bug where config dir .ipython would be
	created regardless of the given -ipythondir option. Thanks to Cory
	Dodt <cdodt@fcoe.k12.ca.us> for the bug report.

	* IPython/genutils.py (ask_yes_no): new function for asking yes/no
	type confirmations. Will need to use it in all of IPython's code
	consistently.
	
	* IPython/CrashHandler.py (CrashHandler.__call__): changed the
	context to print 31 lines instead of the default 5. This will make
	the crash reports extremely detailed in case the problem is in
	libraries I don't have access to.

	* IPython/iplib.py (InteractiveShell.interact): changed the 'last
	line of defense' code to still crash, but giving users fair
	warning. I don't want internal errors to go unreported: if there's
	an internal problem, IPython should crash and generate a full
	report.

2002-11-08  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/iplib.py (InteractiveShell.interact): added code to trap
	otherwise uncaught exceptions which can appear if people set
	sys.stdout to something badly broken. Thanks to a crash report
	from henni@mail.brainbot.com.

2002-11-04  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/iplib.py (InteractiveShell.interact): added
	__IPYTHON__active to the builtins. It's a flag which goes on when
	the interaction starts and goes off again when it stops. This
	allows embedding code to detect being inside IPython. Before this
	was done via __IPYTHON__, but that only shows that an IPython
	instance has been created.

	* IPython/Magic.py (Magic.magic_env): I realized that in a
	UserDict, instance.data holds the data as a normal dict. So I
	modified @env to return os.environ.data instead of rebuilding a
	dict by hand.

2002-11-02  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/genutils.py (warn): changed so that level 1 prints no
	header. Level 2 is now the default (with 'WARNING' header, as
	before). I think I tracked all places where changes were needed in
	IPython, but outside code using the old level numbering may have
	broken.

	* IPython/iplib.py (InteractiveShell.runcode): added this to
	handle the tracebacks in SystemExit traps correctly. The previous
	code (through interact) was printing more of the stack than
	necessary, showing IPython internal code to the user.

	* IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
	default. Now that the default at the confirmation prompt is yes,
	it's not so intrusive. Franois' argument that ipython sessions
	tend to be complex enough not to lose them from an accidental C-d,
	is a valid one.

	* IPython/iplib.py (InteractiveShell.interact): added a
	showtraceback() call to the SystemExit trap, and modified the exit
	confirmation to have yes as the default.

	* IPython/UserConfig/ipythonrc.py: removed 'session' option from
	this file. It's been gone from the code for a long time, this was
	simply leftover junk.

2002-11-01  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/UserConfig/ipythonrc.py: new confirm_exit option
	added. If set, IPython now traps EOF and asks for
	confirmation. After a request by Franois Pinard.

	* IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
	of @abort, and with a new (better) mechanism for handling the
	exceptions.

2002-10-27  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/usage.py (__doc__): updated the --help information and
	the ipythonrc file to indicate that -log generates
	./ipython.log. Also fixed the corresponding info in @logstart.
	This and several other fixes in the manuals thanks to reports by
	Franois Pinard <pinard@iro.umontreal.ca>.
	
	* IPython/Logger.py (Logger.switch_log): Fixed error message to
	refer to @logstart (instead of @log, which doesn't exist).

	* IPython/iplib.py (InteractiveShell._prefilter): fixed
	AttributeError crash. Thanks to Christopher Armstrong
	<radix@twistedmatrix.com> for the report/fix. This bug had been
	introduced recently (in 0.2.14pre37) with the fix to the eval
	problem mentioned below.
	
2002-10-17  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
	installation. Thanks to Leonardo Santagada <retype@terra.com.br>.

	* IPython/iplib.py (InteractiveShell._prefilter): Many changes to
	this function to fix a problem reported by Alex Schmolck. He saw
	it with list comprehensions and generators, which were getting
	called twice. The real problem was an 'eval' call in testing for
	automagic which was evaluating the input line silently. 

	This is a potentially very nasty bug, if the input has side
	effects which must not be repeated. The code is much cleaner now,
	without any blanket 'except' left and with a regexp test for
	actual function names. 

	But an eval remains, which I'm not fully comfortable with. I just
	don't know how to find out if an expression could be a callable in
	the user's namespace without doing an eval on the string. However
	that string is now much more strictly checked so that no code
	slips by, so the eval should only happen for things that can
	really be only function/method names.

2002-10-15  Fernando Perez  <fperez@pizero.colorado.edu>

	* Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
	OSX information to main manual, removed README_Mac_OSX file from
	distribution. Also updated credits for recent additions.

2002-10-10  Fernando Perez  <fperez@pizero.colorado.edu>

	* README_Mac_OSX: Added a README for Mac OSX users for fixing
	terminal-related issues. Many thanks to Andrea Riciputi
	<andrea.riciputi@libero.it> for writing it.

	* IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
	thanks to Thorsten Kampe <thorsten@thorstenkampe.de>.

	* setup.py (make_shortcut): Fixes for Windows installation. Thanks
	to Fredrik Kant <fredrik.kant@front.com> and Syver Enstad
	<syver-en@online.no> who both submitted patches for this problem.

	* IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
	global embedding to make sure that things don't overwrite user
	globals accidentally. Thanks to Richard <rxe@renre-europe.com>

	* IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
	compatibility. Thanks to Hayden Callow
	<h.callow@elec.canterbury.ac.nz>

2002-10-04  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Gnuplot2.py (PlotItem): Added 'index' option for
	Gnuplot.File objects.
	      
2002-07-23  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/genutils.py (timing): Added timings() and timing() for
	quick access to the most commonly needed data, the execution
	times. Old timing() renamed to timings_out().

2002-07-18  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
	bug with nested instances disrupting the parent's tab completion.

	* IPython/iplib.py (all_completions): Added Alex Schmolck's
	all_completions code to begin the emacs integration.

	* IPython/Gnuplot2.py (zip_items): Added optional 'titles'
	argument to allow titling individual arrays when plotting.

2002-07-15  Fernando Perez  <fperez@pizero.colorado.edu>

	* setup.py (make_shortcut): changed to retrieve the value of
	'Program Files' directory from the registry (this value changes in
	non-english versions of Windows). Thanks to Thomas Fanslau
	<tfanslau@gmx.de> for the report.

2002-07-10  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
	a bug in pdb, which crashes if a line with only whitespace is
	entered. Bug report submitted to sourceforge.

2002-07-09  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
	reporting exceptions (it's a bug in inspect.py, I just set a
	workaround).

2002-07-08  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/iplib.py (InteractiveShell.__init__): fixed reference to
	__IPYTHON__ in __builtins__ to show up in user_ns.

2002-07-03  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/GnuplotInteractive.py (magic_gp_set_default): changed
	name from @gp_set_instance to @gp_set_default.

	* IPython/ipmaker.py (make_IPython): default editor value set to
	'0' (a string), to match the rc file. Otherwise will crash when
	.strip() is called on it.
	

2002-06-28  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
	of files in current directory when a file is executed via
	@run. Patch also by RA <ralf_ahlbrink@web.de>.

	* setup.py (manfiles): fix for rpm builds, submitted by RA
	<ralf_ahlbrink@web.de>. Now we have RPMs!

	* IPython/ipmaker.py (make_IPython): fixed lookup of default
	editor when set to '0'. Problem was, '0' evaluates to True (it's a
	string!). A. Schmolck caught this one.

2002-06-27  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/ipmaker.py (make_IPython): fixed bug when running user
	defined files at the cmd line. __name__ wasn't being set to
	__main__.

	* IPython/Gnuplot2.py (zip_items): improved it so it can plot also
	regular lists and tuples besides Numeric arrays.

	* IPython/Prompts.py (CachedOutput.__call__): Added output
	supression for input ending with ';'. Similar to Mathematica and
	Matlab. The _* vars and Out[] list are still updated, just like
	Mathematica behaves.

2002-06-25  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
	.ini extensions for profiels under Windows.

	* IPython/OInspect.py (Inspector.pinfo): improved alignment of
	string form. Fix contributed by Alexander Schmolck
	<a.schmolck@gmx.net>

	* IPython/GnuplotRuntime.py (gp_new): new function. Returns a
	pre-configured Gnuplot instance.

2002-06-21  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/numutils.py (exp_safe): new function, works around the
	underflow problems in Numeric.
	(log2): New fn. Safe log in base 2: returns exact integer answer
	for exact integer powers of 2.

	* IPython/Magic.py (get_py_filename): fixed it not expanding '~'
	properly.

2002-06-20  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/genutils.py (timing): new function like
	Mathematica's. Similar to time_test, but returns more info.

2002-06-18  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Magic.py (Magic.magic_save): modified @save and @r
	according to Mike Heeter's suggestions.

2002-06-16  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
	system. GnuplotMagic is gone as a user-directory option. New files
	make it easier to use all the gnuplot stuff both from external
	programs as well as from IPython. Had to rewrite part of
	hardcopy() b/c of a strange bug: often the ps files simply don't
	get created, and require a repeat of the command (often several
	times).

	* IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
	resolve output channel at call time, so that if sys.stderr has
	been redirected by user this gets honored.

2002-06-13  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
	IPShell. Kept a copy with the old names to avoid breaking people's
	embedded code.

	* IPython/ipython: simplified it to the bare minimum after
	Holger's suggestions. Added info about how to use it in
	PYTHONSTARTUP.

	* IPython/Shell.py (IPythonShell): changed the options passing
	from a string with funky %s replacements to a straight list. Maybe
	a bit more typing, but it follows sys.argv conventions, so there's
	less special-casing to remember.

2002-06-12  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Magic.py (Magic.magic_r): new magic auto-repeat
	command. Thanks to a suggestion by Mike Heeter.
	(Magic.magic_pfile): added behavior to look at filenames if given
	arg is not a defined object.
	(Magic.magic_save): New @save function to save code snippets. Also
	a Mike Heeter idea.

	* IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
	plot() and replot(). Much more convenient now, especially for
	interactive use.

	* IPython/Magic.py (Magic.magic_run): Added .py automatically to
	filenames.

2002-06-02  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Struct.py (Struct.__init__): modified to admit
	initialization via another struct.

	* IPython/genutils.py (SystemExec.__init__): New stateful
	interface to xsys and bq. Useful for writing system scripts.

2002-05-30  Fernando Perez  <fperez@pizero.colorado.edu>

	* MANIFEST.in: Changed docfile selection to exclude all the lyx
	documents. This will make the user download smaller (it's getting
	too big).

2002-05-29  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/iplib.py (_FakeModule.__init__): New class introduced to
	fix problems with shelve and pickle. Seems to work, but I don't
	know if corner cases break it. Thanks to Mike Heeter
	<korora@SDF.LONESTAR.ORG> for the bug reports and test cases.

2002-05-24  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Magic.py (Macro.__init__): fixed magics embedded in
	macros having broken.

2002-05-21  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Magic.py (Magic.magic_logstart): fixed recently
	introduced logging bug: all history before logging started was
	being written one character per line! This came from the redesign
	of the input history as a special list which slices to strings,
	not to lists.

2002-05-20  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Prompts.py (CachedOutput.__init__): made the color table
	be an attribute of all classes in this module. The design of these
	classes needs some serious overhauling.

	* IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
	which was ignoring '_' in option names.

	* IPython/ultraTB.py (FormattedTB.__init__): Changed
	'Verbose_novars' to 'Context' and made it the new default. It's a
	bit more readable and also safer than verbose.

	* IPython/PyColorize.py (Parser.__call__): Fixed coloring of
	triple-quoted strings.

	* IPython/OInspect.py (__all__): new module exposing the object
	introspection facilities. Now the corresponding magics are dummy
	wrappers around this. Having this module will make it much easier
	to put these functions into our modified pdb.
	This new object inspector system uses the new colorizing module,
	so source code and other things are nicely syntax highlighted.

2002-05-18  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/ColorANSI.py: Split the coloring tools into a separate
	module so I can use them in other code easier (they were part of
	ultraTB).

2002-05-17  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
	fixed it to set the global 'g' also to the called instance, as
	long as 'g' was still a gnuplot instance (so it doesn't overwrite
	user's 'g' variables).

	* IPython/iplib.py (InteractiveShell.__init__): Added In/Out
	global variables (aliases to _ih,_oh) so that users which expect
	In[5] or Out[7] to work aren't unpleasantly surprised.
	(InputList.__getslice__): new class to allow executing slices of
	input history directly. Very simple class, complements the use of
	macros.

2002-05-16  Fernando Perez  <fperez@pizero.colorado.edu>

	* setup.py (docdirbase): make doc directory be just doc/IPython
	without version numbers, it will reduce clutter for users.

	* IPython/Magic.py (Magic.magic_run): Add explicit local dict to
	execfile call to prevent possible memory leak. See for details:
	http://mail.python.org/pipermail/python-list/2002-February/088476.html

2002-05-15  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Magic.py (Magic.magic_psource): made the object
	introspection names be more standard: pdoc, pdef, pfile and
	psource. They all print/page their output, and it makes
	remembering them easier. Kept old names for compatibility as
	aliases.

2002-05-14  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/UserConfig/GnuplotMagic.py: I think I finally understood
	what the mouse problem was. The trick is to use gnuplot with temp
	files and NOT with pipes (for data communication), because having
	both pipes and the mouse on is bad news.

2002-05-13  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Magic.py (Magic._ofind): fixed namespace order search
	bug. Information would be reported about builtins even when
	user-defined functions overrode them.

2002-05-11  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/__init__.py (__all__): removed FlexCompleter from
	__all__ so that things don't fail in platforms without readline.

2002-05-10  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/__init__.py (__all__): removed numutils from __all__ b/c
	it requires Numeric, effectively making Numeric a dependency for
	IPython.

	* Released 0.2.13

	* IPython/Magic.py (Magic.magic_prun): big overhaul to the
	profiler interface. Now all the major options from the profiler
	module are directly supported in IPython, both for single
	expressions (@prun) and for full programs (@run -p).

2002-05-09  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
	magic properly formatted for screen.

	* setup.py (make_shortcut): Changed things to put pdf version in
	doc/ instead of doc/manual (had to change lyxport a bit).

	* IPython/Magic.py (Profile.string_stats): made profile runs go
	through pager (they are long and a pager allows searching, saving,
	etc.)

2002-05-08  Fernando Perez  <fperez@pizero.colorado.edu>

	* Released 0.2.12

2002-05-06  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
	introduced); 'hist n1 n2' was broken.
	(Magic.magic_pdb): added optional on/off arguments to @pdb
	(Magic.magic_run): added option -i to @run, which executes code in
	the IPython namespace instead of a clean one. Also added @irun as
	an alias to @run -i.

	* IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
	fixed (it didn't really do anything, the namespaces were wrong).

	* IPython/Debugger.py (__init__): Added workaround for python 2.1

	* IPython/__init__.py (__all__): Fixed package namespace, now
	'import IPython' does give access to IPython.<all> as
	expected. Also renamed __release__ to Release.

	* IPython/Debugger.py (__license__): created new Pdb class which
	functions like a drop-in for the normal pdb.Pdb but does NOT
	import readline by default. This way it doesn't muck up IPython's
	readline handling, and now tab-completion finally works in the
	debugger -- sort of. It completes things globally visible, but the
	completer doesn't track the stack as pdb walks it. That's a bit
	tricky, and I'll have to implement it later.

2002-05-05  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
	magic docstrings when printed via ? (explicit \'s were being
	printed).

	* IPython/ipmaker.py (make_IPython): fixed namespace
	identification bug. Now variables loaded via logs or command-line
	files are recognized in the interactive namespace by @who.

	* IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
	log replay system stemming from the string form of Structs.

	* IPython/Magic.py (Macro.__init__): improved macros to properly
	handle magic commands in them.
	(Magic.magic_logstart): usernames are now expanded so 'logstart
	~/mylog' now works.

	* IPython/iplib.py (complete): fixed bug where paths starting with
	'/' would be completed as magic names.

2002-05-04  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Magic.py (Magic.magic_run): added options -p and -f to
	allow running full programs under the profiler's control.

	* IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
	mode to report exceptions verbosely but without formatting
	variables. This addresses the issue of ipython 'freezing' (it's
	not frozen, but caught in an expensive formatting loop) when huge
	variables are in the context of an exception.
	(VerboseTB.text): Added '--->' markers at line where exception was
	triggered. Much clearer to read, especially in NoColor modes.

	* IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
	implemented in reverse when changing to the new parse_options().

2002-05-03  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Magic.py (Magic.parse_options): new function so that
	magics can parse options easier.
	(Magic.magic_prun): new function similar to profile.run(),
	suggested by Chris Hart.
	(Magic.magic_cd): fixed behavior so that it only changes if
	directory actually is in history.

	* IPython/usage.py (__doc__): added information about potential
	slowness of Verbose exception mode when there are huge data
	structures to be formatted (thanks to Archie Paulson).

	* IPython/ipmaker.py (make_IPython): Changed default logging
	(when simply called with -log) to use curr_dir/ipython.log in
	rotate mode. Fixed crash which was occuring with -log before
	(thanks to Jim Boyle).

2002-05-01  Fernando Perez  <fperez@pizero.colorado.edu>

	* Released 0.2.11 for these fixes (mainly the ultraTB one which
	was nasty -- though somewhat of a corner case).

	* IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
	text (was a bug).

2002-04-30  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
	a print after ^D or ^C from the user so that the In[] prompt
	doesn't over-run the gnuplot one.

2002-04-29  Fernando Perez  <fperez@pizero.colorado.edu>

	* Released 0.2.10

	* IPython/__release__.py (version): get date dynamically.

	* Misc. documentation updates thanks to Arnd's comments. Also ran
	a full spellcheck on the manual (hadn't been done in a while).

2002-04-27  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Magic.py (Magic.magic_logstart): Fixed bug where
	starting a log in mid-session would reset the input history list.

2002-04-26  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
	all files were being included in an update. Now anything in
	UserConfig that matches [A-Za-z]*.py will go (this excludes
	__init__.py)

2002-04-25  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
	to __builtins__ so that any form of embedded or imported code can
	test for being inside IPython.

	* IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
	changed to GnuplotMagic because it's now an importable module,
	this makes the name follow that of the standard Gnuplot module.
	GnuplotMagic can now be loaded at any time in mid-session.

2002-04-24  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/numutils.py: removed SIUnits. It doesn't properly set
	the globals (IPython has its own namespace) and the
	PhysicalQuantity stuff is much better anyway.

	* IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
	embedding example to standard user directory for
	distribution. Also put it in the manual.

	* IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
	instance as first argument (so it doesn't rely on some obscure
	hidden global).

	* IPython/UserConfig/ipythonrc.py: put () back in accepted
	delimiters. While it prevents ().TAB from working, it allows
	completions in open (... expressions. This is by far a more common
	case.

2002-04-23  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Extensions/InterpreterPasteInput.py: new
	syntax-processing module for pasting lines with >>> or ... at the
	start.

	* IPython/Extensions/PhysicalQ_Interactive.py
	(PhysicalQuantityInteractive.__int__): fixed to work with either
	Numeric or math.

	* IPython/UserConfig/ipythonrc-numeric.py: reorganized the
	provided profiles. Now we have:
	-math -> math module as * and cmath with its own namespace.
	-numeric -> Numeric as *, plus gnuplot & grace
	-physics -> same as before

	* IPython/Magic.py (Magic.magic_magic): Fixed bug where
	user-defined magics wouldn't be found by @magic if they were
	defined as class methods. Also cleaned up the namespace search
	logic and the string building (to use %s instead of many repeated
	string adds).

	* IPython/UserConfig/example-magic.py (magic_foo): updated example
	of user-defined magics to operate with class methods (cleaner, in
	line with the gnuplot code).

2002-04-22  Fernando Perez  <fperez@pizero.colorado.edu>

	* setup.py: updated dependency list so that manual is updated when
	all included files change.

	* IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
	the delimiter removal option (the fix is ugly right now).

	* IPython/UserConfig/ipythonrc-physics.py: simplified not to load
	all of the math profile (quicker loading, no conflict between
	g-9.8 and g-gnuplot).

	* IPython/CrashHandler.py (CrashHandler.__call__): changed default
	name of post-mortem files to IPython_crash_report.txt.

	* Cleanup/update of the docs. Added all the new readline info and
	formatted all lists as 'real lists'.

	* IPython/ipmaker.py (make_IPython): removed now-obsolete
	tab-completion options, since the full readline parse_and_bind is
	now accessible.

	* IPython/iplib.py (InteractiveShell.init_readline): Changed
	handling of readline options. Now users can specify any string to
	be passed to parse_and_bind(), as well as the delimiters to be
	removed.
	(InteractiveShell.__init__): Added __name__ to the global
	namespace so that things like Itpl which rely on its existence
	don't crash.
	(InteractiveShell._prefilter): Defined the default with a _ so
	that prefilter() is easier to override, while the default one
	remains available.

2002-04-18  Fernando Perez  <fperez@pizero.colorado.edu>

	* Added information about pdb in the docs.

2002-04-17  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/ipmaker.py (make_IPython): added rc_override option to
	allow passing config options at creation time which may override
	anything set in the config files or command line. This is
	particularly useful for configuring embedded instances.

2002-04-15  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Logger.py (Logger.log): Fixed a nasty bug which could
	crash embedded instances because of the input cache falling out of
	sync with the output counter.

	* IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
	mode which calls pdb after an uncaught exception in IPython itself.

2002-04-14  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
	readline, fix it back after each call.

	* IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
	method to force all access via __call__(), which guarantees that
	traceback references are properly deleted.

	* IPython/Prompts.py (CachedOutput._display): minor fixes to
	improve printing when pprint is in use.

2002-04-13  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
	exceptions aren't caught anymore. If the user triggers one, he
	should know why he's doing it and it should go all the way up,
	just like any other exception. So now @abort will fully kill the
	embedded interpreter and the embedding code (unless that happens
	to catch SystemExit).

	* IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
	and a debugger() method to invoke the interactive pdb debugger
	after printing exception information. Also added the corresponding
	-pdb option and @pdb magic to control this feature, and updated
	the docs. After a suggestion from Christopher Hart
	(hart@caltech.edu).

2002-04-12  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
	the exception handlers defined by the user (not the CrashHandler)
	so that user exceptions don't trigger an ipython bug report.

	* IPython/ultraTB.py (ColorTB.__init__): made the color scheme
	configurable (it should have always been so).

2002-03-26  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
	and there to fix embedding namespace issues. This should all be
	done in a more elegant way.

2002-03-25  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/genutils.py (get_home_dir): Try to make it work under
	win9x also.

2002-03-20  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Shell.py (IPythonShellEmbed.__init__): leave
	sys.displayhook untouched upon __init__.

2002-03-19  Fernando Perez  <fperez@pizero.colorado.edu>

	* Released 0.2.9 (for embedding bug, basically).

	* IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
	exceptions so that enclosing shell's state can be restored.

	* Changed magic_gnuplot.py to magic-gnuplot.py to standardize
	naming conventions in the .ipython/ dir.

	* IPython/iplib.py (InteractiveShell.init_readline): removed '-'
	from delimiters list so filenames with - in them get expanded.

	* IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
	sys.displayhook not being properly restored after an embedded call.

 2002-03-18  Fernando Perez  <fperez@pizero.colorado.edu>

	* Released 0.2.8

	* IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
	some files weren't being included in a -upgrade.
	(InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
	on' so that the first tab completes.
	(InteractiveShell.handle_magic): fixed bug with spaces around
	quotes breaking many magic commands.

	* setup.py: added note about ignoring the syntax error messages at
	installation.

	* IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
	streamlining the gnuplot interface, now there's only one magic @gp.

2002-03-17  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/UserConfig/magic_gnuplot.py: new name for the
	example-magic_pm.py file. Much enhanced system, now with a shell
	for communicating directly with gnuplot, one command at a time.

	* IPython/Magic.py (Magic.magic_run): added option -n to prevent
	setting __name__=='__main__'.

	* IPython/UserConfig/example-magic_pm.py (magic_pm): Added
	mini-shell for accessing gnuplot from inside ipython. Should
	extend it later for grace access too. Inspired by Arnd's
	suggestion.

	* IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
	calling magic functions with () in their arguments. Thanks to Arnd
	Baecker for pointing this to me.

	* IPython/numutils.py (sum_flat): fixed bug. Would recurse
	infinitely for integer or complex arrays (only worked with floats).

2002-03-16  Fernando Perez  <fperez@pizero.colorado.edu>

	* setup.py: Merged setup and setup_windows into a single script
	which properly handles things for windows users.

2002-03-15  Fernando Perez  <fperez@pizero.colorado.edu>

	* Big change to the manual: now the magics are all automatically
	documented. This information is generated from their docstrings
	and put in a latex file included by the manual lyx file. This way
	we get always up to date information for the magics. The manual
	now also has proper version information, also auto-synced.

	For this to work, an undocumented --magic_docstrings option was added.

2002-03-13  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/ultraTB.py (TermColors): fixed problem with dark colors
	under CDE terminals. An explicit ;2 color reset is needed in the escapes.

2002-03-12  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/ultraTB.py (TermColors): changed color escapes again to
	fix the (old, reintroduced) line-wrapping bug. Basically, if
	\001..\002 aren't given in the color escapes, lines get wrapped
	weirdly. But giving those screws up old xterms and emacs terms. So
	I added some logic for emacs terms to be ok, but I can't identify old
	xterms separately ($TERM=='xterm' for many terminals, like konsole).

2002-03-10  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/usage.py (__doc__): Various documentation cleanups and
	updates, both in usage docstrings and in the manual.

	* IPython/Prompts.py (CachedOutput.set_colors): cleanups for
	handling of caching. Set minimum acceptabe value for having a
	cache at 20 values.

	* IPython/iplib.py (InteractiveShell.user_setup): moved the
	install_first_time function to a method, renamed it and added an
	'upgrade' mode. Now people can update their config directory with
	a simple command line switch (-upgrade, also new).

	* IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
	@file (convenient for automagic users under Python >= 2.2). 
	Removed @files (it seemed more like a plural than an abbrev. of
	'file show').

	* IPython/iplib.py (install_first_time): Fixed crash if there were
	backup files ('~') in .ipython/ install directory.

	* IPython/ipmaker.py (make_IPython): fixes for new prompt
	system. Things look fine, but these changes are fairly
	intrusive. Test them for a few days.

	* IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
	the prompts system. Now all in/out prompt strings are user
	controllable. This is particularly useful for embedding, as one
	can tag embedded instances with particular prompts. 

	Also removed global use of sys.ps1/2, which now allows nested
	embeddings without any problems. Added command-line options for
	the prompt strings.

2002-03-08  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/UserConfig/example-embed-short.py (ipshell): added
	example file with the bare minimum code for embedding.

	* IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
	functionality for the embeddable shell to be activated/deactivated
	either globally or at each call.

	* IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
	rewriting the prompt with '--->' for auto-inputs with proper
	coloring. Now the previous UGLY hack in handle_auto() is gone, and
	this is handled by the prompts class itself, as it should.

2002-03-05  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/Magic.py (Magic.magic_logstart): Changed @log to
	@logstart to avoid name clashes with the math log function.

	* Big updates to X/Emacs section of the manual.

	* Removed ipython_emacs. Milan explained to me how to pass
	arguments to ipython through Emacs. Some day I'm going to end up
	learning some lisp...

2002-03-04  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/ipython_emacs: Created script to be used as the
	py-python-command Emacs variable so we can pass IPython
	parameters. I can't figure out how to tell Emacs directly to pass
	parameters to IPython, so a dummy shell script will do it.

	Other enhancements made for things to work better under Emacs'
	various types of terminals. Many thanks to Milan Zamazal
	<pdm@zamazal.org> for all the suggestions and pointers.

2002-03-01  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/ipmaker.py (make_IPython): added a --readline! option so
	that loading of readline is now optional. This gives better
	control to emacs users.

	* IPython/ultraTB.py (__date__): Modified color escape sequences
	and now things work fine under xterm and in Emacs' term buffers
	(though not shell ones). Well,  in emacs you get colors, but all
	seem to be 'light' colors (no difference between dark and light
	ones). But the garbage chars are gone, and also in xterms. It
	seems that now I'm using 'cleaner' ansi sequences.

2002-02-21  Fernando Perez  <fperez@pizero.colorado.edu>

	* Released 0.2.7 (mainly to publish the scoping fix).
	
	* IPython/Logger.py (Logger.logstate): added. A corresponding
	@logstate magic was created.

	* IPython/Magic.py: fixed nested scoping problem under Python
	2.1.x (automagic wasn't working).

2002-02-20  Fernando Perez  <fperez@pizero.colorado.edu>

	* Released 0.2.6.

	* IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
	option so that logs can come out without any headers at all.

	* IPython/UserConfig/ipythonrc-scipy.py: created a profile for
	SciPy.

	* IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
	that embedded IPython calls don't require vars() to be explicitly
	passed. Now they are extracted from the caller's frame (code
	snatched from Eric Jones' weave). Added better documentation to
	the section on embedding and the example file.

	* IPython/genutils.py (page): Changed so that under emacs, it just
	prints the string. You can then page up and down in the emacs
	buffer itself. This is how the builtin help() works.

	* IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
	macro scoping: macros need to be executed in the user's namespace
	to work as if they had been typed by the user.

	* IPython/Magic.py (Magic.magic_macro): Changed macros so they
	execute automatically (no need to type 'exec...'). They then
	behave like 'true macros'. The printing system was also modified
	for this to work.

2002-02-19  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/genutils.py (page_file): new function for paging files
	in an OS-independent way. Also necessary for file viewing to work
	well inside Emacs buffers.
	(page): Added checks for being in an emacs buffer.
	(page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
	same bug in iplib.

2002-02-18  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/iplib.py (InteractiveShell.init_readline): modified use
	of readline so that IPython can work inside an Emacs buffer.

	* IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
	method signatures (they weren't really bugs, but it looks cleaner
	and keeps PyChecker happy).

	* IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
	for implementing various user-defined hooks. Currently only
	display is done.

	* IPython/Prompts.py (CachedOutput._display): changed display
	functions so that they can be dynamically changed by users easily.

	* IPython/Extensions/numeric_formats.py (num_display): added an
	extension for printing NumPy arrays in flexible manners. It
	doesn't do anything yet, but all the structure is in
	place. Ultimately the plan is to implement output format control
	like in Octave.

	* IPython/Magic.py (Magic.lsmagic): changed so that bound magic
	methods are found at run-time by all the automatic machinery.

2002-02-17  Fernando Perez  <fperez@pizero.colorado.edu>

	* setup_Windows.py (make_shortcut): documented. Cleaned up the
	whole file a little.

	* ToDo: closed this document. Now there's a new_design.lyx
	document for all new ideas. Added making a pdf of it for the
	end-user distro.

	* IPython/Logger.py (Logger.switch_log): Created this to replace
	logon() and logoff(). It also fixes a nasty crash reported by 
	Philip Hisley <compsys@starpower.net>. Many thanks to him.

	* IPython/iplib.py (complete): got auto-completion to work with
	automagic (I had wanted this for a long time).

	* IPython/Magic.py (Magic.magic_files): Added @files as an alias
	to @file, since file() is now a builtin and clashes with automagic
	for @file.

	* Made some new files: Prompts, CrashHandler, Magic, Logger. All
	of this was previously in iplib, which had grown to more than 2000
	lines, way too long. No new functionality, but it makes managing
	the code a bit easier.

	* IPython/iplib.py (IPythonCrashHandler.__call__): Added version
	information to crash reports.

2002-02-12  Fernando Perez  <fperez@pizero.colorado.edu>

	* Released 0.2.5.

2002-02-11  Fernando Perez  <fperez@pizero.colorado.edu>

	* Wrote a relatively complete Windows installer. It puts
	everything in place, creates Start Menu entries and fixes the
	color issues. Nothing fancy, but it works.

2002-02-10  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/iplib.py (InteractiveShell.safe_execfile): added an
	os.path.expanduser() call so that we can type @run ~/myfile.py and
	have thigs work as expected.

	* IPython/genutils.py (page): fixed exception handling so things
	work both in Unix and Windows correctly. Quitting a pager triggers
	an IOError/broken pipe in Unix, and in windows not finding a pager
	is also an IOError, so I had to actually look at the return value
	of the exception, not just the exception itself. Should be ok now.

	* IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
	modified to allow case-insensitive color scheme changes.

2002-02-09  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/genutils.py (native_line_ends): new function to leave
	user config files with os-native line-endings.

	* README and manual updates.

	* IPython/genutils.py: fixed unicode bug: use types.StringTypes
	instead of StringType to catch Unicode strings.

	* IPython/genutils.py (filefind): fixed bug for paths with
	embedded spaces (very common in Windows).

	* IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
	files under Windows, so that they get automatically associated
	with a text editor. Windows makes it a pain to handle
	extension-less files.

	* IPython/iplib.py (InteractiveShell.init_readline): Made the
	warning about readline only occur for Posix. In Windows there's no
	way to get readline, so why bother with the warning.

	* IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
	for __str__ instead of dir(self), since dir() changed in 2.2.

	* Ported to Windows! Tested on XP, I suspect it should work fine
	on NT/2000, but I don't think it will work on 98 et al. That
	series of Windows is such a piece of junk anyway that I won't try
	porting it there. The XP port was straightforward, showed a few
	bugs here and there (fixed all), in particular some string
	handling stuff which required considering Unicode strings (which
	Windows uses). This is good, but hasn't been too tested :) No
	fancy installer yet, I'll put a note in the manual so people at
	least make manually a shortcut.

	* IPython/iplib.py (Magic.magic_colors): Unified the color options
	into a single one, "colors". This now controls both prompt and
	exception color schemes, and can be changed both at startup
	(either via command-line switches or via ipythonrc files) and at
	runtime, with @colors.
	(Magic.magic_run): renamed @prun to @run and removed the old
	@run. The two were too similar to warrant keeping both.

2002-02-03  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/iplib.py (install_first_time): Added comment on how to
	configure the color options for first-time users. Put a <return>
	request at the end so that small-terminal users get a chance to
	read the startup info.

2002-01-23  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/iplib.py (CachedOutput.update): Changed output memory
	variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
	input history we still use _i. Did this b/c these variable are
	very commonly used in interactive work, so the less we need to
	type the better off we are.
	(Magic.magic_prun): updated @prun to better handle the namespaces
	the file will run in, including a fix for __name__ not being set
	before.

2002-01-20  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
	extra garbage for Python 2.2. Need to look more carefully into
	this later.

2002-01-19  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/iplib.py (InteractiveShell.showtraceback): fixed to
	display SyntaxError exceptions properly formatted when they occur
	(they can be triggered by imported code).

2002-01-18  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/iplib.py (InteractiveShell.safe_execfile): now
	SyntaxError exceptions are reported nicely formatted, instead of
	spitting out only offset information as before.
	(Magic.magic_prun): Added the @prun function for executing
	programs with command line args inside IPython.

2002-01-16  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
	to *not* include the last item given in a range. This brings their
	behavior in line with Python's slicing: 
	  a[n1:n2] -> a[n1]...a[n2-1]
	It may be a bit less convenient, but I prefer to stick to Python's
	conventions *everywhere*, so users never have to wonder.
	(Magic.magic_macro): Added @macro function to ease the creation of
	macros.

2002-01-05  Fernando Perez  <fperez@pizero.colorado.edu>

	* Released 0.2.4.

	* IPython/iplib.py (Magic.magic_pdef): 
	(InteractiveShell.safe_execfile): report magic lines and error
	lines without line numbers so one can easily copy/paste them for
	re-execution.

	* Updated manual with recent changes.

	* IPython/iplib.py (Magic.magic_oinfo): added constructor
	docstring printing when class? is called. Very handy for knowing
	how to create class instances (as long as __init__ is well
	documented, of course :)
	(Magic.magic_doc): print both class and constructor docstrings.
	(Magic.magic_pdef): give constructor info if passed a class and
	__call__ info for callable object instances.

2002-01-04  Fernando Perez  <fperez@pizero.colorado.edu>

	* Made deep_reload() off by default. It doesn't always work
	exactly as intended, so it's probably safer to have it off. It's
	still available as dreload() anyway, so nothing is lost.

2002-01-02  Fernando Perez  <fperez@pizero.colorado.edu>

	* Released 0.2.3 (contacted R.Singh at CU about biopython course,
	so I wanted an updated release).

2001-12-27  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython/iplib.py (InteractiveShell.interact): Added the original
	code from 'code.py' for this module in order to change the
	handling of a KeyboardInterrupt. This was necessary b/c otherwise
	the history cache would break when the user hit Ctrl-C, and
	interact() offers no way to add any hooks to it.

2001-12-23  Fernando Perez  <fperez@pizero.colorado.edu>

	* setup.py: added check for 'MANIFEST' before trying to remove
	it. Thanks to Sean Reifschneider.

2001-12-22  Fernando Perez  <fperez@pizero.colorado.edu>

	* Released 0.2.2.

	* Finished (reasonably) writing the manual. Later will add the
	python-standard navigation stylesheets, but for the time being
	it's fairly complete. Distribution will include html and pdf
	versions.

	* Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
	(MayaVi author).

2001-12-21  Fernando Perez  <fperez@pizero.colorado.edu>

	* Released 0.2.1. Barring any nasty bugs, this is it as far as a
	good public release, I think (with the manual and the distutils
	installer). The manual can use some work, but that can go
	slowly. Otherwise I think it's quite nice for end users. Next
	summer, rewrite the guts of it...

	* Changed format of ipythonrc files to use whitespace as the
	separator instead of an explicit '='. Cleaner.

2001-12-20  Fernando Perez  <fperez@pizero.colorado.edu>

	* Started a manual in LyX. For now it's just a quick merge of the
	various internal docstrings and READMEs. Later it may grow into a
	nice, full-blown manual.

	* Set up a distutils based installer. Installation should now be
	trivially simple for end-users.

2001-12-11  Fernando Perez  <fperez@pizero.colorado.edu>

	* Released 0.2.0. First public release, announced it at
	comp.lang.python. From now on, just bugfixes...

	* Went through all the files, set copyright/license notices and
	cleaned up things. Ready for release.

2001-12-10  Fernando Perez  <fperez@pizero.colorado.edu>

	* Changed the first-time installer not to use tarfiles. It's more
	robust now and less unix-dependent. Also makes it easier for
	people to later upgrade versions.

	* Changed @exit to @abort to reflect the fact that it's pretty
	brutal (a sys.exit()). The difference between @abort and Ctrl-D
	becomes significant only when IPyhton is embedded: in that case,
	C-D closes IPython only, but @abort kills the enclosing program
	too (unless it had called IPython inside a try catching
	SystemExit).

	* Created Shell module which exposes the actuall IPython Shell
	classes, currently the normal and the embeddable one. This at
	least offers a stable interface we won't need to change when
	(later) the internals are rewritten. That rewrite will be confined
	to iplib and ipmaker, but the Shell interface should remain as is.

	* Added embed module which offers an embeddable IPShell object,
	useful to fire up IPython *inside* a running program. Great for
	debugging or dynamical data analysis.

2001-12-08  Fernando Perez  <fperez@pizero.colorado.edu>

	* Fixed small bug preventing seeing info from methods of defined
	objects (incorrect namespace in _ofind()).

	* Documentation cleanup. Moved the main usage docstrings to a
	separate file, usage.py (cleaner to maintain, and hopefully in the
	future some perlpod-like way of producing interactive, man and
	html docs out of it will be found).

	* Added @profile to see your profile at any time.

	* Added @p as an alias for 'print'. It's especially convenient if
	using automagic ('p x' prints x).

	* Small cleanups and fixes after a pychecker run.

	* Changed the @cd command to handle @cd - and @cd -<n> for
	visiting any directory in _dh.

	* Introduced _dh, a history of visited directories. @dhist prints
	it out with numbers.

2001-12-07  Fernando Perez  <fperez@pizero.colorado.edu>

	* Released 0.1.22

	* Made initialization a bit more robust against invalid color
	options in user input (exit, not traceback-crash).

	* Changed the bug crash reporter to write the report only in the
	user's .ipython directory. That way IPython won't litter people's
	hard disks with crash files all over the place. Also print on
	screen the necessary mail command.

	* With the new ultraTB, implemented LightBG color scheme for light
	background terminals. A lot of people like white backgrounds, so I
	guess we should at least give them something readable.

2001-12-06  Fernando Perez  <fperez@pizero.colorado.edu>

	* Modified the structure of ultraTB. Now there's a proper class
	for tables of color schemes which allow adding schemes easily and
	switching the active scheme without creating a new instance every
	time (which was ridiculous). The syntax for creating new schemes
	is also cleaner. I think ultraTB is finally done, with a clean
	class structure. Names are also much cleaner (now there's proper
	color tables, no need for every variable to also have 'color' in
	its name).

	* Broke down genutils into separate files. Now genutils only
	contains utility functions, and classes have been moved to their
	own files (they had enough independent functionality to warrant
	it): ConfigLoader, OutputTrap, Struct.

2001-12-05  Fernando Perez  <fperez@pizero.colorado.edu>

	* IPython turns 21! Released version 0.1.21, as a candidate for
	public consumption. If all goes well, release in a few days.

	* Fixed path bug (files in Extensions/ directory wouldn't be found
	unless IPython/ was explicitly in sys.path).

	* Extended the FlexCompleter class as MagicCompleter to allow
	completion of @-starting lines.

	* Created __release__.py file as a central repository for release
	info that other files can read from.

	* Fixed small bug in logging: when logging was turned on in
	mid-session, old lines with special meanings (!@?) were being
	logged without the prepended comment, which is necessary since
	they are not truly valid python syntax. This should make session
	restores produce less errors.

	* The namespace cleanup forced me to make a FlexCompleter class
	which is nothing but a ripoff of rlcompleter, but with selectable
	namespace (rlcompleter only works in __main__.__dict__). I'll try
	to submit a note to the authors to see if this change can be
	incorporated in future rlcompleter releases (Dec.6: done)

	* More fixes to namespace handling. It was a mess! Now all
	explicit references to __main__.__dict__ are gone (except when
	really needed) and everything is handled through the namespace
	dicts in the IPython instance. We seem to be getting somewhere
	with this, finally...

	* Small documentation updates.

	* Created the Extensions directory under IPython (with an
	__init__.py). Put the PhysicalQ stuff there. This directory should
	be used for all special-purpose extensions.

	* File renaming:
	  ipythonlib --> ipmaker
	  ipplib     --> iplib
	This makes a bit more sense in terms of what these files actually do.

	* Moved all the classes and functions in ipythonlib to ipplib, so
	now ipythonlib only has make_IPython(). This will ease up its
	splitting in smaller functional chunks later.

	* Cleaned up (done, I think) output of @whos. Better column
	formatting, and now shows str(var) for as much as it can, which is
	typically what one gets with a 'print var'.

2001-12-04  Fernando Perez  <fperez@pizero.colorado.edu>

	* Fixed namespace problems. Now builtin/IPyhton/user names get
	properly reported in their namespace. Internal namespace handling
	is finally getting decent (not perfect yet, but much better than
	the ad-hoc mess we had).

	* Removed -exit option. If people just want to run a python
	script, that's what the normal interpreter is for. Less
	unnecessary options, less chances for bugs.

	* Added a crash handler which generates a complete post-mortem if
	IPython crashes. This will help a lot in tracking bugs down the
	road.

	* Fixed nasty bug in auto-evaluation part of prefilter(). Names
	which were boud to functions being reassigned would bypass the
	logger, breaking the sync of _il with the prompt counter. This
	would then crash IPython later when a new line was logged.

2001-12-02  Fernando Perez  <fperez@pizero.colorado.edu>

	* Made IPython a package. This means people don't have to clutter
	their sys.path with yet another directory. Changed the INSTALL
	file accordingly.

	* Cleaned up the output of @who_ls, @who and @whos. @who_ls now
	sorts its output (so @who shows it sorted) and @whos formats the
	table according to the width of the first column. Nicer, easier to
	read. Todo: write a generic table_format() which takes a list of
	lists and prints it nicely formatted, with optional row/column
	separators and proper padding and justification. 

	* Released 0.1.20

	* Fixed bug in @log which would reverse the inputcache list (a
	copy operation was missing).

	* Code cleanup. @config was changed to use page(). Better, since
	its output is always quite long.

	* Itpl is back as a dependency. I was having too many problems
	getting the parametric aliases to work reliably, and it's just
	easier to code weird string operations with it than playing %()s
	games. It's only ~6k, so I don't think it's too big a deal.

	* Found (and fixed) a very nasty bug with history. !lines weren't
	getting cached, and the out of sync caches would crash
	IPython. Fixed it by reorganizing the prefilter/handlers/logger
	division of labor a bit better. Bug fixed, cleaner structure.

2001-12-01  Fernando Perez  <fperez@pizero.colorado.edu>

	* Released 0.1.19

	* Added option -n to @hist to prevent line number printing. Much
	easier to copy/paste code this way.

	* Created global _il to hold the input list. Allows easy
	re-execution of blocks of code by slicing it (inspired by Janko's
	comment on 'macros').

	* Small fixes and doc updates.

	* Rewrote @history function (was @h). Renamed it to @hist, @h is
	much too fragile with automagic. Handles properly multi-line
	statements and takes parameters.

2001-11-30  Fernando Perez  <fperez@pizero.colorado.edu>

	* Version 0.1.18 released.

	* Fixed nasty namespace bug in initial module imports.

	* Added copyright/license notes to all code files (except
	DPyGetOpt). For the time being, LGPL. That could change.

	* Rewrote a much nicer README, updated INSTALL, cleaned up
	ipythonrc-* samples.

	* Overall code/documentation cleanup. Basically ready for
	release. Only remaining thing: licence decision (LGPL?).

	* Converted load_config to a class, ConfigLoader. Now recursion
	control is better organized. Doesn't include the same file twice.

2001-11-29  Fernando Perez  <fperez@pizero.colorado.edu>

	* Got input history working. Changed output history variables from
	_p to _o so that _i is for input and _o for output. Just cleaner
	convention.

	* Implemented parametric aliases. This pretty much allows the
	alias system to offer full-blown shell convenience, I think.

	* Version 0.1.17 released, 0.1.18 opened.

	* dot_ipython/ipythonrc (alias): added documentation.
	(xcolor): Fixed small bug (xcolors -> xcolor)

	* Changed the alias system. Now alias is a magic command to define
	aliases just like the shell. Rationale: the builtin magics should
	be there for things deeply connected to IPython's
	architecture. And this is a much lighter system for what I think
	is the really important feature: allowing users to define quickly
	magics that will do shell things for them, so they can customize
	IPython easily to match their work habits. If someone is really
	desperate to have another name for a builtin alias, they can
	always use __IP.magic_newname = __IP.magic_oldname. Hackish but
	works.

2001-11-28  Fernando Perez  <fperez@pizero.colorado.edu>

	* Changed @file so that it opens the source file at the proper
	line. Since it uses less, if your EDITOR environment is
	configured, typing v will immediately open your editor of choice
	right at the line where the object is defined. Not as quick as
	having a direct @edit command, but for all intents and purposes it
	works. And I don't have to worry about writing @edit to deal with
	all the editors, less does that.

	* Version 0.1.16 released, 0.1.17 opened.

	* Fixed some nasty bugs in the page/page_dumb combo that could
	crash IPython.

2001-11-27  Fernando Perez  <fperez@pizero.colorado.edu>

	* Version 0.1.15 released, 0.1.16 opened.

	* Finally got ? and ?? to work for undefined things: now it's
	possible to type {}.get? and get information about the get method
	of dicts, or os.path? even if only os is defined (so technically
	os.path isn't). Works at any level. For example, after import os,
	os?, os.path?, os.path.abspath? all work. This is great, took some
	work in _ofind.

	* Fixed more bugs with logging. The sanest way to do it was to add
	to @log a 'mode' parameter. Killed two in one shot (this mode
	option was a request of Janko's). I think it's finally clean
	(famous last words).

	* Added a page_dumb() pager which does a decent job of paging on
	screen, if better things (like less) aren't available. One less
	unix dependency (someday maybe somebody will port this to
	windows).

	* Fixed problem in magic_log: would lock of logging out if log
	creation failed (because it would still think it had succeeded).

	* Improved the page() function using curses to auto-detect screen
	size. Now it can make a much better decision on whether to print
	or page a string. Option screen_length was modified: a value 0
	means auto-detect, and that's the default now.

	* Version 0.1.14 released, 0.1.15 opened. I think this is ready to
	go out. I'll test it for a few days, then talk to Janko about
	licences and announce it.

	* Fixed the length of the auto-generated ---> prompt which appears
	for auto-parens and auto-quotes. Getting this right isn't trivial,
	with all the color escapes, different prompt types and optional
	separators. But it seems to be working in all the combinations.

2001-11-26  Fernando Perez  <fperez@pizero.colorado.edu>

	* Wrote a regexp filter to get option types from the option names
	string. This eliminates the need to manually keep two duplicate
	lists.

	* Removed the unneeded check_option_names. Now options are handled
	in a much saner manner and it's easy to visually check that things
	are ok.

	* Updated version numbers on all files I modified to carry a
	notice so Janko and Nathan have clear version markers.

	* Updated docstring for ultraTB with my changes. I should send
	this to Nathan.

	* Lots of small fixes. Ran everything through pychecker again.

	* Made loading of deep_reload an cmd line option. If it's not too
	kosher, now people can just disable it. With -nodeep_reload it's
	still available as dreload(), it just won't overwrite reload().

	* Moved many options to the no| form (-opt and -noopt
	accepted). Cleaner.

	* Changed magic_log so that if called with no parameters, it uses
	'rotate' mode. That way auto-generated logs aren't automatically
	over-written. For normal logs, now a backup is made if it exists
	(only 1 level of backups). A new 'backup' mode was added to the
	Logger class to support this. This was a request by Janko.

	* Added @logoff/@logon to stop/restart an active log.

	* Fixed a lot of bugs in log saving/replay. It was pretty
	broken. Now special lines (!@,/) appear properly in the command
	history after a log replay.

	* Tried and failed to implement full session saving via pickle. My
	idea was to pickle __main__.__dict__, but modules can't be
	pickled. This would be a better alternative to replaying logs, but
	seems quite tricky to get to work. Changed -session to be called
	-logplay, which more accurately reflects what it does. And if we
	ever get real session saving working, -session is now available.

	* Implemented color schemes for prompts also. As for tracebacks,
	currently only NoColor and Linux are supported. But now the
	infrastructure is in place, based on a generic ColorScheme
	class. So writing and activating new schemes both for the prompts
	and the tracebacks should be straightforward.

	* Version 0.1.13 released, 0.1.14 opened.

	* Changed handling of options for output cache. Now counter is
	hardwired starting at 1 and one specifies the maximum number of
	entries *in the outcache* (not the max prompt counter). This is
	much better, since many statements won't increase the cache
	count. It also eliminated some confusing options, now there's only
	one: cache_size.

	* Added 'alias' magic function and magic_alias option in the
	ipythonrc file. Now the user can easily define whatever names he
	wants for the magic functions without having to play weird
	namespace games. This gives IPython a real shell-like feel.

	* Fixed doc/?/?? for magics. Now all work, in all forms (explicit
	@ or not).

	This was one of the last remaining 'visible' bugs (that I know
	of). I think if I can clean up the session loading so it works
	100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
	about licensing).	

2001-11-25  Fernando Perez  <fperez@pizero.colorado.edu>

	* Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
	there's a cleaner distinction between what ? and ?? show.

	* Added screen_length option. Now the user can define his own
	screen size for page() operations.

	* Implemented magic shell-like functions with automatic code
	generation. Now adding another function is just a matter of adding
	an entry to a dict, and the function is dynamically generated at
	run-time. Python has some really cool features!

	* Renamed many options to cleanup conventions a little. Now all
	are lowercase, and only underscores where needed. Also in the code
	option name tables are clearer.

	* Changed prompts a little. Now input is 'In [n]:' instead of
	'In[n]:='. This allows it the numbers to be aligned with the
	Out[n] numbers, and removes usage of ':=' which doesn't exist in
	Python (it was a Mathematica thing). The '...' continuation prompt
	was also changed a little to align better.

	* Fixed bug when flushing output cache. Not all _p<n> variables
	exist, so their deletion needs to be wrapped in a try:

	* Figured out how to properly use inspect.formatargspec() (it
	requires the args preceded by *). So I removed all the code from
	_get_pdef in Magic, which was just replicating that.

	* Added test to prefilter to allow redefining magic function names
	as variables. This is ok, since the @ form is always available,
	but whe should allow the user to define a variable called 'ls' if
	he needs it.

	* Moved the ToDo information from README into a separate ToDo.

	* General code cleanup and small bugfixes. I think it's close to a
	state where it can be released, obviously with a big 'beta'
	warning on it.

	* Got the magic function split to work. Now all magics are defined
	in a separate class. It just organizes things a bit, and now
	Xemacs behaves nicer (it was choking on InteractiveShell b/c it
	was too long).

	* Changed @clear to @reset to avoid potential confusions with
	the shell command clear. Also renamed @cl to @clear, which does
	exactly what people expect it to from their shell experience.

	Added a check to the @reset command (since it's so
	destructive, it's probably a good idea to ask for confirmation).
	But now reset only works for full namespace resetting. Since the
	del keyword is already there for deleting a few specific
	variables, I don't see the point of having a redundant magic
	function for the same task.

2001-11-24  Fernando Perez  <fperez@pizero.colorado.edu>

	* Updated the builtin docs (esp. the ? ones).

	* Ran all the code through pychecker. Not terribly impressed with
	it: lots of spurious warnings and didn't really find anything of
	substance (just a few modules being imported and not used).

	* Implemented the new ultraTB functionality into IPython. New
	option: xcolors. This chooses color scheme. xmode now only selects
	between Plain and Verbose. Better orthogonality.

	* Large rewrite of ultraTB. Much cleaner now, with a separation of
	mode and color scheme for the exception handlers. Now it's
	possible to have the verbose traceback with no coloring.

2001-11-23  Fernando Perez  <fperez@pizero.colorado.edu>

	* Version 0.1.12 released, 0.1.13 opened.

	* Removed option to set auto-quote and auto-paren escapes by
	user. The chances of breaking valid syntax are just too high. If
	someone *really* wants, they can always dig into the code.

	* Made prompt separators configurable.

2001-11-22  Fernando Perez  <fperez@pizero.colorado.edu>

	* Small bugfixes in many places.

	* Removed the MyCompleter class from ipplib. It seemed redundant
	with the C-p,C-n history search functionality. Less code to
	maintain.

	* Moved all the original ipython.py code into ipythonlib.py. Right
	now it's just one big dump into a function called make_IPython, so
	no real modularity has been gained. But at least it makes the
	wrapper script tiny, and since ipythonlib is a module, it gets
	compiled and startup is much faster.

	This is a reasobably 'deep' change, so we should test it for a
	while without messing too much more with the code.

2001-11-21  Fernando Perez  <fperez@pizero.colorado.edu>

	* Version 0.1.11 released, 0.1.12 opened for further work.

	* Removed dependency on Itpl. It was only needed in one place. It
	would be nice if this became part of python, though. It makes life
	*a lot* easier in some cases.

	* Simplified the prefilter code a bit. Now all handlers are
	expected to explicitly return a value (at least a blank string).

	* Heavy edits in ipplib. Removed the help system altogether. Now
	obj?/?? is used for inspecting objects, a magic @doc prints
	docstrings, and full-blown Python help is accessed via the 'help'
	keyword. This cleans up a lot of code (less to maintain) and does
	the job. Since 'help' is now a standard Python component, might as
	well use it and remove duplicate functionality.

	Also removed the option to use ipplib as a standalone program. By
	now it's too dependent on other parts of IPython to function alone.

	* Fixed bug in genutils.pager. It would crash if the pager was
	exited immediately after opening (broken pipe).

	* Trimmed down the VerboseTB reporting a little. The header is
	much shorter now and the repeated exception arguments at the end
	have been removed. For interactive use the old header seemed a bit
	excessive.

	* Fixed small bug in output of @whos for variables with multi-word
	types (only first word was displayed).

2001-11-17  Fernando Perez  <fperez@pizero.colorado.edu>

	* Version 0.1.10 released, 0.1.11 opened for further work.

	* Modified dirs and friends. dirs now *returns* the stack (not
	prints), so one can manipulate it as a variable. Convenient to
	travel along many directories.

	* Fixed bug in magic_pdef: would only work with functions with
	arguments with default values.

2001-11-14  Fernando Perez  <fperez@pizero.colorado.edu>

	* Added the PhysicsInput stuff to dot_ipython so it ships as an
	example with IPython. Various other minor fixes and cleanups.

	* Version 0.1.9 released, 0.1.10 opened for further work.

	* Added sys.path to the list of directories searched in the
	execfile= option. It used to be the current directory and the
	user's IPYTHONDIR only.

2001-11-13  Fernando Perez  <fperez@pizero.colorado.edu>

	* Reinstated the raw_input/prefilter separation that Janko had
	initially. This gives a more convenient setup for extending the
	pre-processor from the outside: raw_input always gets a string,
	and prefilter has to process it. We can then redefine prefilter
	from the outside and implement extensions for special
	purposes.

	Today I got one for inputting PhysicalQuantity objects
	(from Scientific) without needing any function calls at
	all. Extremely convenient, and it's all done as a user-level
	extension (no IPython code was touched). Now instead of:
		a = PhysicalQuantity(4.2,'m/s**2')
	one can simply say
		a = 4.2 m/s**2
	or even
		a = 4.2 m/s^2
	
	I use this, but it's also a proof of concept: IPython really is
	fully user-extensible, even at the level of the parsing of the
	command line. It's not trivial, but it's perfectly doable.

	* Added 'add_flip' method to inclusion conflict resolver. Fixes
	the problem of modules being loaded in the inverse order in which
	they were defined in 

	* Version 0.1.8 released, 0.1.9 opened for further work.

	* Added magics pdef, source and file. They respectively show the
	definition line ('prototype' in C), source code and full python
	file for any callable object. The object inspector oinfo uses
	these to show the same information.

	* Version 0.1.7 released, 0.1.8 opened for further work.

	* Separated all the magic functions into a class called Magic. The
	InteractiveShell class was becoming too big for Xemacs to handle
	(de-indenting a line would lock it up for 10 seconds while it
	backtracked on the whole class!)

	FIXME: didn't work. It can be done, but right now namespaces are
	all messed up. Do it later (reverted it for now, so at least
	everything works as before).

	* Got the object introspection system (magic_oinfo) working! I
	think this is pretty much ready for release to Janko, so he can
	test it for a while and then announce it. Pretty much 100% of what
	I wanted for the 'phase 1' release is ready. Happy, tired.

2001-11-12  Fernando Perez  <fperez@pizero.colorado.edu>

	* Version 0.1.6 released, 0.1.7 opened for further work.

	* Fixed bug in printing: it used to test for truth before
	printing, so 0 wouldn't print. Now checks for None.

	* Fixed bug where auto-execs increase the prompt counter by 2 (b/c
	they have to call len(str(sys.ps1)) ). But the fix is ugly, it
	reaches by hand into the outputcache. Think of a better way to do
	this later.

	* Various small fixes thanks to Nathan's comments.

	* Changed magic_pprint to magic_Pprint. This way it doesn't
	collide with pprint() and the name is consistent with the command
	line option.

	* Changed prompt counter behavior to be fully like
	Mathematica's. That is, even input that doesn't return a result
	raises the prompt counter. The old behavior was kind of confusing
	(getting the same prompt number several times if the operation
	didn't return a result).

	* Fixed Nathan's last name in a couple of places (Gray, not Graham).

	* Fixed -Classic mode (wasn't working anymore).

	* Added colored prompts using Nathan's new code. Colors are
	currently hardwired, they can be user-configurable. For
	developers, they can be chosen in file ipythonlib.py, at the
	beginning of the CachedOutput class def.

2001-11-11  Fernando Perez  <fperez@pizero.colorado.edu>

	* Version 0.1.5 released, 0.1.6 opened for further work.

	* Changed magic_env to *return* the environment as a dict (not to
	print it). This way it prints, but it can also be processed.

	* Added Verbose exception reporting to interactive
	exceptions. Very nice, now even 1/0 at the prompt gives a verbose
	traceback. Had to make some changes to the ultraTB file. This is
	probably the last 'big' thing in my mental todo list.  This ties
	in with the next entry:

	* Changed -Xi and -Xf to a single -xmode option. Now all the user
	has to specify is Plain, Color or Verbose for all exception
	handling.

	* Removed ShellServices option. All this can really be done via
	the magic system. It's easier to extend, cleaner and has automatic
	namespace protection and documentation.

2001-11-09  Fernando Perez  <fperez@pizero.colorado.edu>

	* Fixed bug in output cache flushing (missing parameter to
	__init__). Other small bugs fixed (found using pychecker).

	* Version 0.1.4 opened for bugfixing.

2001-11-07  Fernando Perez  <fperez@pizero.colorado.edu>

	* Version 0.1.3 released, mainly because of the raw_input bug.

	* Fixed NASTY bug in raw_input: input line wasn't properly parsed
	and when testing for whether things were callable, a call could
	actually be made to certain functions. They would get called again
	once 'really' executed, with a resulting double call. A disaster
	in many cases (list.reverse() would never work!).

	* Removed prefilter() function, moved its code to raw_input (which
	after all was just a near-empty caller for prefilter). This saves
	a function call on every prompt, and simplifies the class a tiny bit.

	* Fix _ip to __ip name in magic example file.

	* Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
	work with non-gnu versions of tar.

2001-11-06  Fernando Perez  <fperez@pizero.colorado.edu>

	* Version 0.1.2. Just to keep track of the recent changes.

	* Fixed nasty bug in output prompt routine. It used to check 'if
	arg != None...'. Problem is, this fails if arg implements a
	special comparison (__cmp__) which disallows comparing to
	None. Found it when trying to use the PhysicalQuantity module from
	ScientificPython.

2001-11-05  Fernando Perez  <fperez@pizero.colorado.edu>

	* Also added dirs. Now the pushd/popd/dirs family functions
	basically like the shell, with the added convenience of going home
	when called with no args.

	* pushd/popd slightly modified to mimic shell behavior more
	closely.

	* Added env,pushd,popd from ShellServices as magic functions. I
	think the cleanest will be to port all desired functions from
	ShellServices as magics and remove ShellServices altogether. This
	will provide a single, clean way of adding functionality
	(shell-type or otherwise) to IP.

2001-11-04  Fernando Perez  <fperez@pizero.colorado.edu>

	* Added .ipython/ directory to sys.path. This way users can keep
	customizations there and access them via import.

2001-11-03  Fernando Perez  <fperez@pizero.colorado.edu>

	* Opened version 0.1.1 for new changes.

	* Changed version number to 0.1.0: first 'public' release, sent to
	Nathan and Janko.

	* Lots of small fixes and tweaks.

	* Minor changes to whos format. Now strings are shown, snipped if
	too long.

	* Changed ShellServices to work on __main__ so they show up in @who

	* Help also works with ? at the end of a line:
		?sin and sin?
	both produce the same effect. This is nice, as often I use the
	tab-complete to find the name of a method, but I used to then have
	to go to the beginning of the line to put a ? if I wanted more
	info. Now I can just add the ? and hit return. Convenient.

2001-11-02  Fernando Perez  <fperez@pizero.colorado.edu>

	* Python version check (>=2.1) added.

	* Added LazyPython documentation. At this point the docs are quite
	a mess. A cleanup is in order.

	* Auto-installer created. For some bizarre reason, the zipfiles
	module isn't working on my system. So I made a tar version
	(hopefully the command line options in various systems won't kill
	me).

	* Fixes to Struct in genutils. Now all dictionary-like methods are
	protected (reasonably).

	* Added pager function to genutils and changed ? to print usage
	note through it (it was too long).

	* Added the LazyPython functionality. Works great! I changed the
	auto-quote escape to ';', it's on home row and next to '. But
	both auto-quote and auto-paren (still /) escapes are command-line
	parameters.
	

2001-11-01  Fernando Perez  <fperez@pizero.colorado.edu>

	* Version changed to 0.0.7. Fairly large change: configuration now
	is all stored in a directory, by default .ipython. There, all
	config files have normal looking names (not .names)

	* Version 0.0.6 Released first to Lucas and Archie as a test
	run. Since it's the first 'semi-public' release, change version to
	> 0.0.6 for any changes now.

	* Stuff I had put in the ipplib.py changelog:
	
	Changes to InteractiveShell:
	
	- Made the usage message a parameter.
	
	- Require the name of the shell variable to be given. It's a bit
	of a hack, but allows the name 'shell' not to be hardwire in the
	magic (@) handler, which is problematic b/c it requires
	polluting the global namespace with 'shell'. This in turn is
	fragile: if a user redefines a variable called shell, things
	break.

	- magic @: all functions available through @ need to be defined
	as magic_<name>, even though they can be called simply as
	@<name>. This allows the special command @magic to gather
	information automatically about all existing magic functions,
	even if they are run-time user extensions, by parsing the shell
	instance __dict__ looking for special magic_ names.

	- mainloop: added *two* local namespace parameters. This allows
	the class to differentiate between parameters which were there
	before and after command line initialization was processed. This
	way, later @who can show things loaded at startup by the
	user. This trick was necessary to make session saving/reloading
	really work: ideally after saving/exiting/reloading a session,
	*everythin* should look the same, including the output of @who. I
	was only able to make this work with this double namespace
	trick.

	- added a header to the logfile which allows (almost) full
	session restoring.

	- prepend lines beginning with @ or !, with a and log
	them. Why?  !lines: may be useful to know what you did @lines:
	they may affect session state. So when restoring a session, at
	least inform the user of their presence. I couldn't quite get
	them to properly re-execute, but at least the user is warned.

	* Started ChangeLog.
