Tracing Python Programs
I was asked recently whether there was an equivalent of
sh -x for
Python (ie. print out each statement before it is run), to help with
debugging a script. It turns out that there is a module in the Python
standard library to do so, but it isn't listed in the standard library
reference for some reason.
To use it, simply run the program like this:
/usr/lib/python2.4/trace.py -t program.py
This'll print out the filename, line number and contents of that line
before executing the code. If you want to skip the output for the
standard library (ie. only show statements from your own code), simply
--ignore-dir=/usr/lib/python2.4 (or similar) as an option.
So the free (no-cost) version of BitKeeper has been discontinued,
leaving just the commercial version and the limited open source
version (which is essentially limited to checking out the head
revision of a particular tree).
It seems a bit weird that one of the stated reasons for discontinuing
the free version is a dispute with OSDL, where some employees were
using BitKeeper (eg. Linus), while another unrelated employee was
reverse engineering it as a personal project. This is a bit
surprising, since it seems that a scenario almost the same as
was brought up last year and Larry said his concern was a licensed
BitKeeper user helping someone else reverse engineer the code. Of
course, there are probably other issues involved here.
This does bring up an interesting issue of what users of the free
version are going to do with their repositories. While they can use
the open source editing to easily check out the head revision and
continue development, it isn't clear that it can be used to extract
all the information stored in a repository. And since BitMover has
refused to sell the commercial version to some
people, it is conceivable that some
projects could find themselves unable to access their revision history
I doubt this situation is acceptable to many users (they are using a
version control system, so probably want to keep their revision
history), so there will probably be some programs written to extract
all the information from a BitKeeper repository. Ironically, this
could add some value to BitKeeper for BitMover's commercial customers
-- insurance for their data in case BitMover disappears or something
else makes BitKeeper unusable to them.
If you are coming to Australia for first time, make sure you pack your
and other valuable in your cabin luggage, rather than the checked
luggage. It will save you trouble in the long run.