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.
