Dawn began to break on the licensing situation; a meeting of the
Python Consortium was held on July 21, the day after the O'Reilly Open
Source Conference.  In this posting, Guido reported on a proposed
license, a new home for python.org at SourceForge, and the release
plans for Python 1.6 and 2.0:

Guido's posting contained the license text in Microsoft Word format
(lawyers aren't big on plain text).  Tim Peters posted the license
text as it stood on July 22; it's been changed a bit since then and
still isn't finished as of this writing, but it'll give you the
general idea:

It is believed that the license meets the Open Source Initiative's
criteria, though a final decision will have to wait until the license
text is finalized and the OSI board meets to approve the license.


Moving on to technical matters...

A lot of Python's syntax comes from C.  One confusing bit of C syntax
is \x escapes in strings.  A \x escape consumes all the hex digits
that follow it, but only uses the lowest 8-bits.  For example,
'\x12fe' is the same as '\xfe', and both produce 1-character strings
containing ASCII character 254.  This can lead to confusion, if you
write something like '\x0dEvents', since you wind up with character 22
followed by 'vents'.  /F wondered about what \x should do in Unicode
strings, which already support a \uNNNN escape that takes exactly 4
hex digits:

Tim Peters argued "\x is a hack inherited from the last version of C,
put in back when they knew they had to do *something* to support "big
characters" but had no real idea what."

Fast forwarding a bit, a few days into August Tim suggested
introducing a minor backward incompatibility and removing this
behaviour, making \x always take exactly two hex digits:

Reaction was generally positive -- no one likes this magical behaviour
of consuming characters and then ignoring them -- but no patch has
been checked in yet.


Another thread worried about binary incompatibility between 1.5.2 and
2.0 on Windows; on Windows, attempting to import a third party
extension built for Python 1.5.x will usually result in an immediate
crash due to DLL versioning issues.  Gordon McMillan explained the
cause of the crash:

Barry Scott proposed a scheme to avoid crashing:

Reaction to the proposal wasn't favorable, since it requires many
changes to extension modules in order to fix a problem that only
occurs on Windows; general opinion seemed to be that the problem isn't
worth the pain of fixing it.


Barry Warsaw proposed an extended syntax for the print statement:
"My proposal is to allow `@' after the print keyword using syntax
such as: 'print @ sys.stderr, "hello"' "

This thread went on for a long while, and sparked some meta-discussion
of the new python-dev environment, and some developers' concern that
too much language extending is going on, and not enough basic work.

Barry Warsaw: "We propose solutions or enhancements to the language
that of course, everybody should immediately agree on.  But we never
get consensus.  Given the size of the developer community, and the
diversity of applications and experience, we never will on any of
these features."

/F: "yeah, but what concerns me here is that we're talking about a
release within 4-6 weeks, but we don't even have all the PEPs
in place..."


A puzzling bug affecting Linux and test_fork1.py has been driving
people nuts; sometimes, but not always, the test will simply hang.
The bug is most visible on SMP Linux machines, though it also happens
on single-processor Linux, and seems to be some interaction between
fork() and threads.  Trent Mick summarized the symptoms:

Neil Schemenauer posted a smaller program that demonstrates a bug.
It's not clear if this is the same as the test_fork1 bug, or a
different one:

Tim Peters theorized about a possible cause:

Any Linux threading gurus care to help?


Mitchell Morris wrote up a list of reasons to add a unit testing module
to the standard library:

Jeremy Hylton asked for a volunteer to assess the different 
testing frameworks available:

Trent Mick also proposed a C testing framework to test Python's C API:


A discussion of the augmented assignment patch led to consideration of
the Python virtual machine.  M.A. Lemburg dug out a histogram of
the frequency of Python VM opcodes:

Vladimir Marangozov tried a few optimizations, and got 1 or 2% improvement,
but subtle caching effects seem to still be involved:


Small bits:

Discussion of PEP 201, the suggestion to add zip() for lockstep
iteration over a list, continued for a while during this two-week
period.  It was brought to an end by GvR's ruling that the new
built-in will be named zip(), after the similarly-named function in
Haskell.  The slight chance of confusion with the ZIP compression
format is deemed irrelevant.

Vladimir Marangozov suggested adding the pymalloc object allocator to
Python; "It's basically a VMM aware, generalized free list
implementation which handles dynamically small mem blocks (small =
under 64 bytes for combos with 4-byte pointers). This accounts for >95% 
of all object structs allocated by Python."

Peter Schneider-Kamp has been maintaining the HTML pages for the
SourceForge Python page, and announced HTML versions of the Python
Enhancement Proposals, thanks to a pep2html converter from /F (does
the man ever sleep?).

/F explained how his patch to compress the Unicode name database works:

/F also suggested a pragma for specifying an encoding for Python source code:

SourceForge's patch manager sends out rather uninformative e-mail
notifications containing just a title and a URL.  Ka-Ping Yee wrote a
script to take these e-mails and scrape the URL to produce a better
e-mail message.  This script is now being used on the
patches@python.org list.

The bsddb module included in Python only really supports BSDDB 1.85.
It was suggested to replace it with a version that supports BerkeleyDB
3.x, but the existing module by Robin Dunn uses SWIG, and SWIG stores
pointers as strings, a useful but potentially risky kludge (you could
make Python dump core by creating a bogus pointer string).  Writing a
new module for 3.x was suggested; no one clearly volunteered to write

AMK created a SourceForge project for the HOWTOs: