Guido van Rossum
ee28c3a5ea
Patch by Mozhe Zadka, for __contains__ (overloading 'in'). This adds
...
an instance method instance_contains as sq_contains. It looks for
__contains__ and if not found falls back to previous behaviour.
Done.
2000-02-28 15:03:15 +00:00
Guido van Rossum
46c6b20392
Patch by Mozhe Zadka, for __contains__ (overloading 'in'). This
...
patches PySequence_Contains() to check for a valid sq_contains field.
More to follow.
2000-02-28 15:01:46 +00:00
Guido van Rossum
c00a938be8
OKOK, Greg's right, I should've used the :name option in the argument
...
format strings.
2000-02-24 21:48:29 +00:00
Guido van Rossum
4aa24f9979
Made all list methods use PyArg_ParseTuple(), for more accurate
...
diagnostics.
*** INCOMPATIBLE CHANGE: This changes append(), remove(), index(), and
*** count() to require exactly one argument -- previously, multiple
*** arguments were silently assumed to be a tuple.
2000-02-24 15:23:03 +00:00
Andrew M. Kuchling
0f223d2418
Allow using long integers as arguments to PyObject_GetItem(), _SetItem(),
...
and _DelItem().
In sequence multiplication by a long, only call PyErr_Occurred() when the
value returned is -1.
2000-02-23 22:21:50 +00:00
Fred Drake
52fccfda5b
dict_has_key(): Accept only one parameter. PR#210 reported by
...
Andreas Jung <ajung@sz-sb.de>.
2000-02-23 15:47:16 +00:00
Guido van Rossum
fb4574e320
In response to one particular complaint on edu-sig, change some error
...
messages from "OverflowError: integer pow()" to "OverflowError:
integer exponentiation". (Not that this takes care of the complaint
in general that the error messages could be greatly improved. :-)
2000-02-15 14:51:46 +00:00
Andrew M. Kuchling
1991ddc3e1
Make multiplying a sequence by a long integer (5L * 'b') legal
2000-02-14 22:22:04 +00:00
Guido van Rossum
bffd683f73
The rest of the changes by Trent Mick and Dale Nagata for warning-free
...
compilation on NT Alpha. Mostly added casts etc.
2000-01-20 22:32:56 +00:00
Guido van Rossum
687ef6e70b
On Linux, one sometimes sees spurious errors after interrupting
...
previous output. Call clearerr() to prevent past errors affecting our
ferror() test later, in PyObject_Print(). Suggested by Marc Lemburg.
2000-01-12 16:28:58 +00:00
Guido van Rossum
57072eb79f
Implement the other easy thing: repr() of a float now uses %.17g,
...
while str() uses %.12g as before.
1999-12-23 19:00:28 +00:00
Fred Drake
121ee2722e
long_format(): Now takes a third parameter, addL; iff true, a
...
trailing 'L' is appended to the representation,
otherwise not.
All existing call sites are modified to pass true for
addL.
Remove incorrect statement about external use of this
function from elsewhere; it's static!
long_str(): Handler for the tp_str slot in the type object.
Identical to long_repr(), but passes false as the addL
parameter of long_format().
1999-12-23 15:41:28 +00:00
Barry Warsaw
153a27ceb2
do_strip(): Fixed cut-and-paste error; this function should check for
...
zero arguments (found by Marc Lemburg).
1999-12-15 02:22:52 +00:00
Barry Warsaw
226ae6ca12
Mainlining the string_methods branch. See branch revision log
...
messages for specific changes.
1999-10-12 19:54:53 +00:00
Guido van Rossum
2c7b8fe618
Fix PR#66. Solution: add error checking around l_divmod() calls in
...
long_pow().
1999-10-11 22:34:41 +00:00
Guido van Rossum
42636dc64d
Fix for PR#98 (Adrian Eyre) -- in instancemethod_repr, the funcname
...
object is DECREFed too early.
1999-10-11 14:03:12 +00:00
Guido van Rossum
e13ff2e2d6
Patch by Tim Peters fixing PR#88:
...
Integer division can crash under Windows.
1999-09-27 17:12:47 +00:00
Guido van Rossum
1a23c2484e
Patch by Tim Peters fixing PR#89:
...
long(+/- infinity) returns nonsense.
1999-09-27 17:11:52 +00:00
Guido van Rossum
ff7e83d606
Patch by Mark Hammond to avoid certain header files on Windows/CE.
1999-08-27 20:39:37 +00:00
Fred Drake
4574f23115
PyBuffer_New(): Raise ValueError if size is negative (the other
...
constructors didn't miss this).
Raise MemoryError if malloc() fails, instead of just
returning NULL.
1999-08-04 13:08:19 +00:00
Guido van Rossum
0eb55ac912
Mark Favas was quick to note that the last checkin divides by zero
...
when n == 0... So divide by a->ob_size instead which was already
tested for 0.
1999-07-13 05:41:12 +00:00
Guido van Rossum
5bc51f2f27
Appropriate overflow checks so that things like sys.maxint*(1,) can't
...
dump core.
1999-07-12 23:06:58 +00:00
Guido van Rossum
fa71701d46
When deallocating a list, DECREF the items from the end back to the start.
1999-06-09 15:19:34 +00:00
Guido van Rossum
98c9eba945
Fix bug discovered by John W. Shipman -- when the width of a format
...
specifier came from an int expression instead of a constant in the
format, a negative width was truncated to zero instead of taken to
mean the same as that negative constant plugged into the format. E.g.
"(%*s)" % (-5, "foo") yielded "(foo)" while "(%-5s)" yields "(foo )".
Now both yield the latter -- like sprintf() in C.
1999-06-07 15:12:32 +00:00
Guido van Rossum
9263e78ff2
Tim Peters writes:
...
1. Fixes float divmod so that the quotient it returns is always an integral
value.
2. Fixes float % and float divmod so that the remainder always gets the
right sign (the current code uses a "are the signs different?" test that
doesn't work half the time <wink> when the product of the divisor and the
remainder underflows to 0).
1999-05-06 14:26:34 +00:00
Guido van Rossum
9bcd1d7931
Improve text of some error messages, as suggested by Sean Reifschneider.
1999-04-19 17:44:39 +00:00
Guido van Rossum
ff1ccbfc21
casts for picky compilers.
1999-04-10 15:48:23 +00:00
Guido van Rossum
2bc137909d
Vladimir Marangozov contributed updated comments.
1999-03-24 19:06:42 +00:00
Guido van Rossum
cd037e7bed
Folded long lines.
1999-03-24 19:05:31 +00:00
Guido van Rossum
d7b5fb858c
Fix a problem with Vladimir's PyFloat_Fini code: clear the free list; if
...
a block cannot be freed, add its free items back to the free list.
This is necessary to avoid leaking when Python is reinitialized later.
1999-03-19 20:59:40 +00:00
Guido van Rossum
51288bce48
Fix a problem with Vladimir's PyInt_Fini code: clear the free list; if
...
a block cannot be freed, add its free items back to the free list, and
add its valid ints back to the small_ints array if they are in range.
This is necessary to avoid leaking when Python is reinitialized later.
1999-03-19 20:30:39 +00:00
Guido van Rossum
49ded3ec00
Added check for negative offset for PyBuffer_FromObject and check for
...
negative size for PyBuffer_FromMemory. Greg Stein.
1999-03-19 19:04:25 +00:00
Guido van Rossum
3fce883922
Vladimir has restructured his code somewhat so that the blocks are now
...
represented by an explicit structure. (There are still too many casts
in the code, but that may be unavoidable.)
Also added code so that with -vv it is very chatty about what it does.
1999-03-12 19:43:17 +00:00
Guido van Rossum
f61bbc8182
OK, try again. Vladimir gave me a fix for the alignment bus error,
...
so here's his patch again. This time it works (at least on Solaris,
Linux and Irix).
1999-03-12 00:12:21 +00:00
Guido van Rossum
a060fb2598
Alas, Vladimir's patch caused a bus error (probably double
...
alignment?), and I didn't test it. Withdrawing it for now.
1999-03-11 01:47:00 +00:00
Guido van Rossum
881928f7ab
Patch by Vladimir Marangoz to allow freeing of the allocated blocks of
...
floats on finalization.
1999-03-10 22:55:47 +00:00
Guido van Rossum
da084edd38
Patch by Vladimir Marangoz to allow freeing of the allocated blocks of
...
integers on finalization.
1999-03-10 22:55:24 +00:00
Guido van Rossum
98cc19fac6
Patch by Chris Petrilli to display the origin of a module in its
...
repr() -- either "(builtin)" or "from '<filename>'".
1999-02-15 14:47:16 +00:00
Guido van Rossum
00d225ea6d
Correct typo (Py_MethodDef doesn't exist). Reported by Uwe Zessin.
1999-01-29 14:39:12 +00:00
Barry Warsaw
b5cebfe164
PyLong_FromString(): Nailed a small memory leak. In the str==start
...
test, we forgot that z is still pointing to a real live object.
DECREF() it before returning.
1999-01-27 17:48:27 +00:00
Guido van Rossum
3bbef60990
Ai! complex_nonzero() has && which should be ||, else decidedly
...
non-zero things like 5j and complex(1,0) are considered to be
zero/false. Tim Peters.
1999-01-25 19:42:19 +00:00
Guido van Rossum
3aa23fdd47
Jim Ahlstrom patch: cutoff should be a long for machines with 16-bit
...
ints. (In theory, other variables should be widened to long as well,
but this won't ever be needed, since the len of a list is still an
int.)
1999-01-14 19:01:53 +00:00
Guido van Rossum
3c25904a98
Jim Ahlstrom patch: BIGCHUNK is too large for 16-bit int.
1999-01-14 19:00:14 +00:00
Guido van Rossum
031d0e5feb
Patch by Charles Waldman -- remove unneeded and even harmful test for
...
float to the negative power (which is already and better done in
floatobject.c.)
1999-01-10 16:56:58 +00:00
Guido van Rossum
5dadf7e976
Use 'xrange', not 'range', in error messages. Reported by Nathan Sullivan.
1999-01-09 21:40:35 +00:00
Guido van Rossum
41498435ba
Need to include <sys/types.h> for off_t.
1999-01-07 22:09:51 +00:00
Guido van Rossum
3c9fe0cce3
Changes for long file support by Steve Clift.
...
(This also redoes my previous patch, but better.)
1999-01-06 18:51:17 +00:00
Guido van Rossum
cdd9ae00ba
Changes for long file support by Steve Clift.
...
(Really: moved a bunch of defs to longobject.h.)
1999-01-06 18:50:37 +00:00
Guido van Rossum
88303194a5
Fix two places (seek and truncate) where a cascade of PyArg_Parse
...
calls was used instead of a single PyArg_ParseTuple call with an
optional argument.
1999-01-04 17:22:18 +00:00
Guido van Rossum
cada2938f7
As noted by Per Cederqvist, new_buffersize() sometimes returns the
...
buffer increment, and sometimes the new buffer size. Make it do what
its name says, and fix the one place where this matters to the caller.
Also add a comment explaining why we call lseek() and then ftell().
1998-12-11 20:44:56 +00:00
Guido van Rossum
68055ce6fe
When tracing references, reset the type and size of tuples allocated
...
from the fast free list -- the type (at least) is reset by
_Py_Dealloc().
1998-12-11 14:56:38 +00:00
Guido van Rossum
f5046d1aea
Remove prototype for PyOS_strtol -- Chris Herborth.
1998-12-10 16:54:48 +00:00
Guido van Rossum
13fdf5e917
When comparing bound methods, use identity test on the objects,
...
not equality test.
1998-12-04 18:52:55 +00:00
Guido van Rossum
f05fc716d1
Remove dead code discovered by Vladimir Marangozov.
1998-11-16 22:46:30 +00:00
Guido van Rossum
017f7780a8
Make tuples less hungry -- an extra item was allocated but never used.
...
Tip by Vladimir Marangozov.
1998-11-16 18:56:03 +00:00
Guido van Rossum
f61618c98e
A Py_DECREF(f) is missing in PyFrame_New for the error case when
...
the `builtins' initialization fails. Vladimir Marangozov.
1998-10-19 14:20:20 +00:00
Guido van Rossum
2f3667a7b9
Replace fprintf(stderr, ...) with PySys_WriteStderr(...).
1998-10-12 18:23:55 +00:00
Barry Warsaw
dedf6d6804
listextend(): New method which implements L.extend(L2).
1998-10-09 16:37:25 +00:00
Guido van Rossum
3886026bed
Remove unreachable code. (Sjoerd)
1998-10-09 13:27:19 +00:00
Guido van Rossum
1db7070217
Greg Stein: Implement the new bf_getcharbuffer function, indicating
...
that (as far as the data type is concerned!) this is character data.
1998-10-08 02:18:52 +00:00
Guido van Rossum
7148ca9d14
Make gcc -Wall happy.
1998-10-07 16:22:12 +00:00
Guido van Rossum
06c18088d6
Add Greg Stein's buffer object API.
1998-10-07 14:41:13 +00:00
Guido van Rossum
2e19bd7cc7
Add Greg Stein's buffer object API.
1998-10-07 14:36:10 +00:00
Guido van Rossum
2ccaf6f2f9
Remove a redundant check from list_slice() and list_ass_slice().
...
Noted by Greg Stein.
1998-10-07 13:24:13 +00:00
Guido van Rossum
c1c7b1a699
Slight rearrangement of code in lookdict() by Vladimir Marangozov, to
...
make a common case slightly faster.
1998-10-06 16:01:14 +00:00
Guido van Rossum
9d904b9389
Believe it or not, Solaris 2.6 strtod() can move the end pointer
...
*beyond* the null byte at the end of the input string, when the input
is inf(inity). Discovered by Greg Ward.
1998-10-01 20:35:46 +00:00
Guido van Rossum
07d780089d
Typo reported by Greg Stein: "modifiable" is the correct spelling.
1998-10-01 15:59:48 +00:00
Guido van Rossum
67906af811
In PyFrame_New(), don't set extras to something derived from code
...
before code has been checked for validity. Discovered by Vladimir
Marangozov.
1998-09-25 14:11:46 +00:00
Guido van Rossum
78694d970f
Patches from Greg Stein to support 'P' format in struct module's
...
native format, as void* (translated to Python int or long).
Also adds PyLong_FromVoidPtr and PyLong_AsVoidPtr to longobject.c.
1998-09-18 14:14:13 +00:00
Guido van Rossum
065ce5a4b7
Undo victim of careless global substitute ("long long_hash" was
...
changed to "LONG_LONG_hash" in the list of forward decls). Discovered
by Jason Harper.
1998-09-13 15:37:20 +00:00
Guido van Rossum
3293b07df5
Patch by Mark Hammond to support 64-bit ints on MS platforms.
...
The MS compiler doesn't call it 'long long', it uses __int64,
so a new #define, LONG_LONG, has been added and all occurrences
of 'long long' are replaced with it.
1998-08-25 16:07:15 +00:00
Guido van Rossum
21308243ca
Better error messages when a sequence is indexed with a non-integer.
...
Previously, this said "unsubscriptable object"; in 1.5.1, the reverse
problem existed, where None[''] would complain about a non-integer
index. This fix does the right thing in all cases (for get, set and
del item).
1998-08-13 16:44:44 +00:00
Guido van Rossum
bd3a527f93
Two patches by Jason Harper:
...
- Faster conversion to string for binary bases: linear instead of quadratic!
- Allocate smaller result for certain masking ops, e.g. (1L<<30000) & 1.
1998-08-11 15:04:47 +00:00
Guido van Rossum
1a8791e0b8
Changes for BeOS, QNX and long long, by Chris Herborth.
1998-08-04 22:46:29 +00:00
Guido van Rossum
ac6a37ae55
Fix a potential problem in PyLong_FromString(): could fall through the
...
for loop with z==NULL but continue to reference z later.
1998-08-04 15:04:06 +00:00
Guido van Rossum
df3d8756b7
Better error messages when raising ValueError for int and long
...
literals. (The previous version of this code would not show the
offending input, even though there was code that attempted this.)
1998-08-04 15:02:01 +00:00
Guido van Rossum
152d8173a3
Fix a memory leak -- the cached values of __getattr__ etc. were never
...
freed.
1998-08-04 14:59:16 +00:00
Barry Warsaw
52ddc0e756
PyFile_FromString(): If an exception occurs, pass in the filename that
...
was used so it's reflected in the IOError. Call
PyErr_SetFromErrnoWithFilename().
1998-07-23 16:07:02 +00:00
Guido van Rossum
b4db1944c4
When comparing objects, always check that tp_compare is not NULL
...
before calling it. This check was there when the objects were of the
same type *before* coercion, but not if they initially differed but
became the same *after* coercion.
1998-07-21 21:56:41 +00:00
Guido van Rossum
0fd00334c6
Avoid using calloc(). This triggered an obscure bug on multiprocessor
...
Sparc Solaris 2.6 (fully patched!) that I don't want to dig into, but
which I suspect is a bug in the multithreaded malloc library that only
shows up when run on a multiprocessor. (The program wasn't using
threads, it was just using the multithreaded C library.)
1998-07-16 15:06:13 +00:00
Guido van Rossum
5dba9e8aef
Add special case to PySequence_List() so that list() of a list is
...
faster (using PyList_GetSlice()). Also added a test for a NULL
argument, as with PySequence_Tuple(). (Hmm... Better names for these
two would be PyList_FromSequence() and PyTuple_FromSequence(). Oh well.)
1998-07-10 18:03:50 +00:00
Guido van Rossum
bfc725bf64
Changed PySequence_List() and PySequence_Tuple() to support
...
"indefinite length" sequences. These should still have a length, but
the length is only used as a hint -- the actual length of the sequence
is determined by the item that raises IndexError, which may be either
smaller or larger than what len() returns. (This is a novelty; map(),
filter() and reduce() only allow the actual length to be larger than
what len() returns, not shorter. I'll fix that shortly.)
1998-07-10 16:22:44 +00:00
Guido van Rossum
d4ba73c75b
Move the definition of PyMethodObject to classobject.h, so it can define
...
macros for more efficient access to the fields.
1998-07-10 15:46:33 +00:00
Guido van Rossum
9223351617
Marc-Andre Lemburg's patch to move the typedef for PyCFunctionObject
...
to the .h file and add macros there for inlined access to the fields.
1998-07-10 15:21:55 +00:00
Guido van Rossum
7859f87fdb
Marc-Andre Lemburg's patch to support instance methods with other
...
callable objects than regular Pythonm functions as their im_func.
1998-07-08 14:58:16 +00:00
Guido van Rossum
7ba30431ec
Recompute the special getattr/setattr/delattr cache slots after
...
changing __dict__ *or* __bases__.
1998-07-08 13:34:48 +00:00
Guido van Rossum
3dd7f3fef0
Added doc strings for methods and a new pop() method.
1998-06-30 15:36:32 +00:00
Guido van Rossum
8a92c627d9
New feature: if the object's type has a non-NULL tp_doc field, that
...
is returned as the object's __doc__ attribute.
(If only the list of methods would be referenced from the type...)
1998-06-27 18:28:59 +00:00
Guido van Rossum
1bb26872f5
Slight rearrangement of some code to make it faster, by Vladimir
...
Marangozov.
1998-06-26 15:53:50 +00:00
Guido van Rossum
e67629774f
Add check in long-to-int conversion for at least one digit.
1998-06-22 03:54:46 +00:00
Guido van Rossum
3b2b34790f
Fix the tests for various anomalies in the string-to-numbers
...
conversions. Formerly, for example, int('-') would return 0 instead
of raising ValueError, and int(' 0') would raise ValueError
(complaining about a null byte!) instead of 0...
1998-06-22 03:54:15 +00:00
Guido van Rossum
4281258b5f
Minor cleanup by Tim after my changes:
...
+ Took the "list" argument out of the other functions that no longer need
it. This speeds things up a little more.
+ Small comment changes in accord with that.
+ Exploited the now-safe ability to cache values in the partitioning loop.
Makes no timing difference on my flavor of Pentium, but this machine ran out
of registers 12 iterations ago. It should yield a small speedup on a RISC
machine, and not hurt in any case.
1998-06-17 14:15:44 +00:00
Guido van Rossum
4c4e7df755
Tim's latest, with some of my changes (also a TP suggestion) added:
...
instead of testing whether the list changed size after each
comparison, temporarily set the type of the list to an immutable list
type. This should allow continued use of the list for legitimate
purposes but disallows all operations that can change it in any way.
(Changes to the internals of list items are not caught, of cause;
that's not possible to detect, and it's not necessary to protect the
sort code, either.)
1998-06-16 15:18:28 +00:00
Guido van Rossum
e0fdf6f1a8
Keep Microsoft's compiler happy.
1998-06-12 15:03:58 +00:00
Guido van Rossum
cd5a5f627a
When comparing objects of different types (which is done by comparing
...
the type names), make sure that numeric objects are considered smaller
than all other objects, by forcing their name to "".
1998-06-09 18:58:44 +00:00
Guido van Rossum
4a0144c0de
Should check that PyObject_Str() really returned a string!
1998-06-09 15:08:41 +00:00
Guido van Rossum
a63eff6e6a
Allow assignments to special class attributes -- with typechecks, and
...
not in restricted mode.
__dict__ can be set to any dictionary; the cl_getattr, cl_setattr and
cl_delattr slots are refreshed.
__name__ can be set to any string.
__bases__ can be set to to a tuple of classes, provided they are not
subclasses of the class whose attribute is being assigned.
__getattr__, __setattr__ and __delattr__ can be set to anything, or
deleted; the appropriate slot (cl_getattr, cl_setattr, cl_delattr) is
refreshed.
(Note: __name__ really doesn't need to be a special attribute, but
that would be more work.)
1998-05-29 21:37:21 +00:00
Guido van Rossum
a119c0dd5e
Tim's revision of the previous patch. He also added some sparts to
...
the median-of-three code to get a few percent back.
1998-05-29 17:56:32 +00:00
Guido van Rossum
ed6219b116
Fix a whole bunch of error return NULL that should be return -1.
1998-05-29 02:59:33 +00:00
Guido van Rossum
ae621ff7b7
Guard against changes in the list size during a compare or sort.
1998-05-28 20:18:46 +00:00