Greg Ward [Thu, 29 May 2003 21:53:06 +0000 (21:53 +0000)]
Completely change the interface to setparameters():
* it no longer takes ssize, which served no purpose apart from
scolding you if you got it wrong
* changed the order of the three remaining required arguments
to (format, channels, rate) to match the order in which they
must be set
* replaced the optional argument 'emulate' with 'strict': if strict
true, and the audio device does not accept the requested sampling
parameters, raise OSSAudioError
* return a tuple (format, channels, rate) reflecting the sampling
parameters that were actually set
Change the canonical name of ossaudiodev.error to
ossaudiodev.OSSAudioError (keep an alias for backwards compatibility).
Remove 'audio_types' list and 'n_audio_types' (no longer needed now that
setparameters() no longer has an 'ssize' argument to police).
Barry Warsaw [Thu, 29 May 2003 19:39:33 +0000 (19:39 +0000)]
_make_boundary(): Fix for SF bug #745478, broken boundary calculation
in some locales. This code simplifies the boundary algorithm to use
randint() which is what we wanted anyway.
Guido van Rossum [Thu, 29 May 2003 14:36:57 +0000 (14:36 +0000)]
I saw errors from _fileobject.__del__ about missing self._sock. This
can happen if __init__ doesn't complete. Fix it by adding a
try/except to __del__.
Greg Ward [Thu, 29 May 2003 01:39:32 +0000 (01:39 +0000)]
Rewrite the description of setparameters() so it actually reflects the
code (which has also been recently overhauled, so that it can be
documented without embarassment).
Jack Jansen [Wed, 28 May 2003 18:56:30 +0000 (18:56 +0000)]
- Added a scheme whereby pimp can update itself, by importing a module
pimp_update if it exists. Upped the version number to indicate this.
Fixes #731626.
- Added -V (print version) and -u (specify database URL) options when run
as a command line tool.
Gregory P. Smith [Wed, 28 May 2003 16:20:03 +0000 (16:20 +0000)]
Remove the note about the BerkeleyDB license. Barry indicates that
sleepycat has told him that since python is OSS and berkeleydb is
being distributed with python for the bsddb library all is fine.
Gregory P. Smith [Wed, 28 May 2003 07:56:45 +0000 (07:56 +0000)]
Include a link to the pybsddb web documentation for the modern object
oriented DbEnv & Db object BerkeleyDB interface.
Include a note about Sleepycat's BerkeleyDB license with regards to
distributing it within non-opensource applications and include a link
to their website for license details.
Document that 'r' is the default flag for the legacy bsddb btopen(),
hashopen(), and rnopen() functions. This is apparently different than the
dbm libraries in other languages according to Bug #732951. Changing
the default from 'r' to 'c' would break backwards compatibility with
legacy bsddb applications; documenting the default should suffice.
Greg Ward [Tue, 27 May 2003 01:57:21 +0000 (01:57 +0000)]
Oops, move the GIL release/reacquire from oss_sync() to _do_ioctl_0():
that way it applies to *only* the ioctl() call, and also happens for the
other blocking ioctls (POST, RESET).
Greg Ward [Mon, 26 May 2003 22:47:30 +0000 (22:47 +0000)]
Release the GIL in two more methods:
* sync(), because it waits for hardware buffers to flush, which
can take several seconds depending on cirumstances (according
to the OSS docs)
* close(), because it does an implicit sync()
Jack Jansen [Sun, 25 May 2003 22:01:32 +0000 (22:01 +0000)]
Fixed the DESTDIR modifications to also allow MacOSX framework builds
to be installed to a different location. This should make the OSX binary
installer building a lot simpler.
Tim Peters [Sun, 25 May 2003 17:44:31 +0000 (17:44 +0000)]
Fleshed out WeakKeyDictionary.__delitem__ NEWS to cover issues raised on
Python-Dev. Fixed typos in test comments. Added some trivial new test
guts to show the parallelism (now) among __delitem__, __setitem__ and
__getitem__ wrt error conditions.
Still a bugfix candidate for 2.2.3 final, but waiting for Fred to get a
chance to chime in.
Tim Peters [Sun, 25 May 2003 01:45:11 +0000 (01:45 +0000)]
SF 742860: WeakKeyDictionary __delitem__ uses iterkeys
Someone review this, please! Final releases are getting close, Fred
(the weakref guy) won't be around until Tuesday, and the pre-patch
code can indeed raise spurious RuntimeErrors in the presence of
threads or mutating comparison functions.
See the bug report for my confusions: I can't see any reason for why
__delitem__ iterated over the keys. The new one-liner implementation
is much faster, can't raise RuntimeError, and should be better-behaved
in all respects wrt threads.
New tests test_weak_keyed_bad_delitem and
test_weak_keyed_cascading_deletes fail before this patch.
Bugfix candidate for 2.2.3 too, if someone else agrees with this patch.
Kurt B. Kaiser [Sat, 24 May 2003 21:12:46 +0000 (21:12 +0000)]
Improved the RESTART annotation in the shell window when the user
restarts the shell while it is generating output. Also improved
annotation when user repeatedly hammers the Ctrl-F6 restart.
Kurt B. Kaiser [Sat, 24 May 2003 20:59:15 +0000 (20:59 +0000)]
1. Stake Freddy.
e.g. further improve subprocess interrupt, exceptions, and termination.
2. Remove the workarounds in PyShell.py and ScriptBinding.py involving
interrupting the subprocess prior to killing it, not necessary anymore.
3. Fix a bug introduced at PyShell Rev 1.66: was getting extra shell menu
every time the shell window was recreated.
Tim Peters [Sat, 24 May 2003 20:18:24 +0000 (20:18 +0000)]
SF bug 705231: Assertion failed, python aborts.
float_pow(): Don't let the platform pow() raise -1.0 to an integer power
anymore; at least glibc gets it wrong in some cases. Note that
math.pow() will continue to deliver wrong (but platform-native) results
in such cases.
Walter Dörwald [Fri, 23 May 2003 10:01:07 +0000 (10:01 +0000)]
All calls to getarrayitem() (which is static) are done either in loops
over the size of the array, or the callers check the index bounds themselves,
so the index check never failed => Replace it with an assert().
Christian Tismer [Fri, 23 May 2003 03:33:35 +0000 (03:33 +0000)]
Generalized my type flags structure extension without being specific about
the purpose. Increased my claim to two bits, hoping that nobody
will complain about it. I'm taking the highest two bits, whatever
the integer word size may be.
[Bug #741171] pdb crashes when enabling a non-existing breakpoint
Check the supplied breakpoint number more carefully.
(Incompatibility: before this patch, "enable -1" would enable
the last breakpoint on the list; now -1 is not a legal ID. Not sure
anyone would ever use negative indices...)
2.2 bugfix candidate, assuming making -1 illegal isn't considered a problem.
Walter Dörwald [Thu, 22 May 2003 13:15:31 +0000 (13:15 +0000)]
test_byteswap() fails on alphas, because treating the byte swapped bit
patterns as floats/doubles results in floating point exceptions.
Fix this by implementing a separate test_byteswap() for the floating
point tests. This new test compares the tostring() values of both arrays
instead of the arrays themselves.
Tim Peters [Wed, 21 May 2003 21:29:48 +0000 (21:29 +0000)]
PyType_Ready(): Complain if the type is a base type, and gc'able, and
tp_free is NULL or PyObject_Del at the end. Because it's a base type
it must call tp_free in its dealloc function, and because it's gc'able
it must not call PyObject_Del.
inherit_slots(): Don't inherit tp_free unless the type and its base
agree about whether they're gc'able. If the type is gc'able and the
base is not, and the base uses the default PyObject_Del for its
tp_free, give the type PyObject_GC_Del for its tp_free (the appropriate
default for a gc'able type).
cPickle.c: The Pickler and Unpickler types claim to be base classes
and gc'able, but their dealloc functions didn't call tp_free.
Repaired that. Also call PyType_Ready() on these typeobjects, so
that the correct (PyObject_GC_Del) default memory-freeing function
gets plugged into these types' tp_free slots.
Jeremy Hylton [Wed, 21 May 2003 17:34:50 +0000 (17:34 +0000)]
Fix for SF [ 734869 ] Lambda functions in list comprehensions
The compiler was reseting the list comprehension tmpname counter for each function, but the symtable was using the same counter for the entire module. Repair by move tmpname into the symtable entry.