Since it looks like the dual license clause may be neither necessary
nor sufficient to make Python 2.0 compatible with the GPL, we won't
bother with it now.
In other words, we're still where we were weeks ago -- CNRI believes
that its license is GPL-compatible, Stallman says it's not. I'm
trying to arrange a meeting between their lawyers so they can work it
out. Whether dual licensing is the solution is open at this point.
If it is the (only!) solution, we'll add that to the BeOpen license
for 2.0 final.
Tim Peters: "Audun S. Runde mailto:audun@mindspring.com wins a
Fabulous Prize for being our first Windows ME tester! Also our only,
and I think he should get another prize just for that."
Tim Peters [Mon, 4 Sep 2000 07:34:06 +0000 (07:34 +0000)]
test_mmap wrote null bytes into its expected-output file; this caused me to
waste an hour tracking down an illusion; repaired it; writing/reading non-
printable characters (except \t\r\n) into/outof text-mode files ain't
defined x-platform, and at least some Windows text editors do surprising
things in their presence.
Also added a by-hand "build humber" to the Windows build, in an approximation
of Python's inexplicable BUILD-number Unix scheme. I'll try to remember to
increment it each time I make a Windows installer available. It's starting
at 2, cuz I've put 2 installers out so far (both with BUILD #0).
Fixes bug in --with-libdb. If --with-libdb was not specified (default is to
enable it), but db.h was not found, the WITH_LIBDB macros was still being
defined, resulting in compilation errors. Also added a short explain when
bsddb support wasn't enabled (because db.h wasn't found) when the user
explicitly used --with-libdb on the configure command line.
Move down the INT_MAX logic, because HAVE_LIMITS_H was always undefined
and this breaks the AIX build with an INT_MAX redefinition error.
"config.h" is included in pgenheaders.h, so moving this down fixes the
problem.
Properly name and number the BEOPEN OPEN SOURCE PYTHON LICENSE
AGREEMENT VERSION 1.
trade name -> trade names.
Note: depending on community feedback, we may end up taking the dual
licensing clause out for 2.0b1, and put it back into 2.0final, if
there's no other solution for assuring GPL compatibility by then.
Tim Peters [Sun, 3 Sep 2000 08:15:19 +0000 (08:15 +0000)]
Repair failing test_sre.py.
This was a funny one! The test very subtly relied on 1.5.2's
behavior of treating "\x%" as "\x%", i.e. ignoring that was an
\x escape that didn't make sense. But /F implemented PEP 223,
which causes 2.0 to raise an exception on the bad escape.
Fixed by merely making the 3 such strings of this kind into
raw strings.
Tim Peters [Sat, 2 Sep 2000 09:16:15 +0000 (09:16 +0000)]
PyInterpreterState_New is not thread-safe, and the recent fix to _PyPclose
can cause it to get called by multiple threads simultaneously.
Ditto for PyInterpreterState_Delete.
Of the former, the docs say "The interpreter lock need not be held, but may
be held if it is necessary to serialize calls to this function". This
kinda implies it both is and isn't thread-safe.
Of the latter, the docs merely say "The interpreter lock need not be
held.", and the clause about serializing is absent.
I expect it was *believed* these are both thread-safe, and the bit about
serializing via the global lock was meant as a permission rather than a
caution.
I also expect we've never seen a problem here because the Python core
(prior to the _PyPclose fix) only calls these functions once per run.
The Py_NewInterpreter subsystem exposed by the C API (but not used by
Python itself) also calls them, but that subsystem appears to be very
rarely used.
Tim Peters [Fri, 1 Sep 2000 20:38:55 +0000 (20:38 +0000)]
The "more" cmd varies across Windows flavors, sometimes adding stray
newlines at the start or end. Fiddle test_popen2 and popen2._test() to
tolerate this. Also change all "assert"s in these tests to raise
explicit exceptions, so that python -O doesn't render them useless.
Also, in case of error, make the msg display the reprs of what we
wrote and what we read, so we can tell exactly why it's failing.
Clean up a bit. Drop -X option, update date, remove documentation
URLs, add various useful URLs. Update address and email. Drop PSA
and copyright. Add license info.
Jeremy Hylton [Fri, 1 Sep 2000 20:33:26 +0000 (20:33 +0000)]
Update magic number.
Fix import support to work with import as variant of Python 2.0. The
grammar for import changed, requiring changes in transformer and code
generator, even to handle compilation of imports with as.
Tim Peters [Fri, 1 Sep 2000 19:59:11 +0000 (19:59 +0000)]
Install LICENSE.txt and README.txt.
In the Welcome dialog:
Reworded reference to non-existent "Exit Setup" button.
Removed useless "Back" button.
Changed "push" to "click".
Tim Peters [Fri, 1 Sep 2000 19:30:26 +0000 (19:30 +0000)]
Guido pointed out that the "non-admin install" blurb got displayed
very late in the process when running on Windows 2000 without admim
privs. Rearranged so that the admin check is done at the start
instead. Added words to the end of the blurb to make it very clear
how to abort the install (wasn't obvious to me that "Cancel" was
the right thing to click).
Barry Warsaw [Fri, 1 Sep 2000 09:01:32 +0000 (09:01 +0000)]
Do the absolute minimal amount of modifications to eradicate
Py_FatalError() from module initialization functions. The importing
mechanism already checks for PyErr_Occurred() after module importation
and it Does The Right Thing.
Unfortunately, the following either were not compiled or tested by the
regression suite, due to issues with my development platform:
Barry Warsaw [Fri, 1 Sep 2000 08:10:08 +0000 (08:10 +0000)]
Tool to generate binary GNU .mo file from .po template files. Written
by Martin v. Loewis, proofed by Barry Warsaw for coding standards,
typos, and to make command line options compatible with GNU msgfmt
where they overlap.
Tim Peters [Fri, 1 Sep 2000 06:51:24 +0000 (06:51 +0000)]
Fix test_popen2 on Windows, recently broken by changes to the dict(!)
implementation. You don't want to know. I've asked Guido to give this
a critical review (we agreed on the approach, but the implementation
proved more ... interesting ... than anticipated). This will almost
certainly be the highlight of Mark Hammond's day <wink>.
Barry Warsaw [Fri, 1 Sep 2000 06:09:23 +0000 (06:09 +0000)]
Added support for RFC 959's REST command (restart), closing SF patch
#101187, which some modifications. Specifically,
ntransfercmd(), transfercmd(), and retrbinary() all grow an optional
`rest' argument, which if not None, is used as the argument to an FTP
REST comman dbefore the socket is returned. Differences from the SF
patch:
- always compare against None with `is' or `is not' instead of == or !=
- no parens around conditional
- RFC 959 defines the argument to REST is a string containing any
ASCII characters in the range [33..126]. Therefore, we use the %s
format character instead of %f or %d as suggested in the patch's
comments. Note that we do /not/ sanity checkthe contents of the
rest argument (but we'll document this in the library reference
manual).
Tim Peters [Fri, 1 Sep 2000 03:34:26 +0000 (03:34 +0000)]
Revert removal of void from function definition. Guido sez I can take it
out again after we complete switching to C++ <wink>. Thanks to Greg Stein
for hitting me.
Now that StreamRequestHandler defaults rfile to buffered, make it
unbuffered (by setting the class variable rbufsize to 0), because we
(may) need to pass the file descriptor to the subprocess running the
CGI script positioned after the headers.
In class StreamRequestHandler, make the default buffering for rfile
and wfile class variables (that the instance can also override).
Change the default for rfile to buffered, because that seems to make a
big difference in performance on some platforms.
An anti-patch is needed to revert the effect in CGIHTTPServer.py which
I'll check in momentarily.
Jeremy Hylton [Fri, 1 Sep 2000 02:47:25 +0000 (02:47 +0000)]
refactor __del__ exception handler into PyErr_WriteUnraisable
add sanity check to gc: if an exception occurs during GC, call
PyErr_WriteUnraisable and then call Py_FatalEror.
Rene Liebscher/Thomas Heller:
* ensure the "dist" directory exists
* raise exception if using for modules containing compiled extensions
on a non-win32 platform.
* don't create an .ini file anymore (it was just for debugging)
Rene Liebscher:
* reverse library names from bcpp_library to library_bcpp
* move some code to the right places, to put the def-files
in the right directories again
Rene Liebscher: hack '_init_posix()' to handle the BeOS linker script.
(With a worry-wart comment added by me about where we *should* add the
Python library to the link.)