Guido van Rossum
7cc56eb524
When creating a class, set its __module__ attribute to the module
...
whose name is in the current globals' __name__ variable. If __name__
is not set, ignore this.
1997-09-12 20:04:46 +00:00
Guido van Rossum
045e688f6f
Patch submitted by Brad Howes (with one bug fixed by me): allow
...
arbitrary nested parens in a %(...)X style format.
#Also folded two lines and added more detail to the error message for
#unsupported format character.
1997-09-08 18:30:11 +00:00
Guido van Rossum
b2173c3146
Allow assignments to instance.__dict__ and instance.__class__. The
...
former lets you give an instance a set of new instance vars. The
latter lets you give it a new class. Both are typechecked and
disallowed in restricted mode.
For classes, the check for read-only special attributes is tightened
so that only assignments to __dict__, __bases__, __name__,
__getattr__, __setattr__, and __delattr__ (these could be made to work
as well, but I don't know if that's useful -- let's see first whether
mucking with instances will help).
1997-08-25 21:23:56 +00:00
Guido van Rossum
a27d112213
Rename roundup() to roundupsize(), as there's a macro roundup() in the
...
sys/types.h header on many systems that may get pulled in (through
WANT_SIGFPE_HANDLER which pulls in signal.h).
1997-08-25 18:36:23 +00:00
Guido van Rossum
36f8e2d1db
Use lseek instead of ftell; compensate by adding BUFSIZE
1997-08-21 02:31:25 +00:00
Guido van Rossum
fd7a0b871f
Made lookdict nearly twice as fast, resulting in a 5% overall
...
improvement of pystone. Vladimir Marangozov.
1997-08-18 21:52:47 +00:00
Guido van Rossum
787bdd37a0
PyTuple_SetItem should require that the tuple's refcnt is one!
1997-08-17 16:25:45 +00:00
Guido van Rossum
ea46e4d93c
Fix mixup about PyErr_NoMemory() prototype.
1997-08-12 14:54:54 +00:00
Guido van Rossum
83f9ad8399
Fix bug in comparing function objects detected by Sjoerd:
...
SystemError: bad argument to internal function
caused by comparing NULL pointer default args.
1997-08-05 16:51:05 +00:00
Guido van Rossum
fbbd57e4ca
Added _Fini() routines to free up some memory
1997-08-05 02:16:08 +00:00
Guido van Rossum
971a7aaeac
Change the Fini function to only remove otherwise unreferenced strings
...
from the interned table. There are references in hard-to-find static
variables all over the interpreter, and it's not worth trying to get
rid of all those; but "uninterning" isn't fair either and may cause
subtle failures later -- so we have to keep them in the interned
table.
Also get rid of no-longer-needed insert of None in interned dict.
1997-08-05 02:15:12 +00:00
Guido van Rossum
1f39c5c666
Added separate free list for cfunction (builtin method) objects, for a
...
few percent speed up. Also add PyCFunction_Fini() to discard it.
1997-08-05 02:11:41 +00:00
Guido van Rossum
404b95d9ba
Provide a dummy empty directory as f_builtins instead of failing, when
...
no valid directory is passed in. This prevents __del__ to fail when
invoked after __builtins__ has already been discarded.
Also add PyFrame_Fini() to discard the cache of frames.
1997-08-05 02:09:46 +00:00
Guido van Rossum
a0d349f46a
Added separate free list for instance method objects, for a few
...
percent speed up. Also add PyMethod_Fini() to discard it.
1997-08-05 02:06:53 +00:00
Guido van Rossum
e09fb55f29
Added _Py_ResetReferences(), if tracing references.
...
In _Py_PrintReferences(), no longer suppress once-referenced string.
Add Py_Malloc and friends and PyMem_Malloc and friends (malloc
wrappers for third parties).
1997-08-05 02:04:34 +00:00
Guido van Rossum
eb46d67ce5
Avoid function calls to access the current thread state and builtins
...
-- the thread state is passed in as an argument and the builtins are a
member thereof.
1997-08-02 02:59:08 +00:00
Guido van Rossum
8cf0476474
Added internal routine PyString_Fini() which deletes all interned
...
strings. For use in Py_Finalize() only.
1997-08-02 02:57:45 +00:00
Guido van Rossum
f6ca6aa869
New build procedure.
1997-07-19 19:39:57 +00:00
Guido van Rossum
5d8123f34a
Reordered list of methods to hopefully put the most frequently used
...
ones near the front.
1997-07-13 03:58:01 +00:00
Guido van Rossum
74ba24758e
Reordered list of methods to hopefully put the most frequently used
...
ones near the front.
Also added a missing "return -1" to PyFile_WriteString.
1997-07-13 03:56:50 +00:00
Guido van Rossum
71160aaffe
Use #include "mymath.h" instead of declaring fabs() explicitly.
...
This should solve a weird problem on the Mac for Jack.
1997-06-03 18:03:18 +00:00
Guido van Rossum
a8d5131d57
Renamed dict.absorb() (too spungy) to dict.update().
1997-06-02 17:13:37 +00:00
Guido van Rossum
80c2a1674e
American spelling in doc string.
1997-06-02 14:43:07 +00:00
Guido van Rossum
e3f5b9c8d1
Added dict.absorb() and dict.copy().
1997-05-28 19:15:28 +00:00
Guido van Rossum
c8b6df9004
PyObject_Compare can raise an exception now.
1997-05-23 00:06:51 +00:00
Guido van Rossum
5b2121b25f
PyObject_Compare can now return an error. Unfortunately, there are a
...
few places where we don't know how to test for them without losing
speed; don't know yet how to handle that.
1997-05-23 00:01:41 +00:00
Guido van Rossum
27a60b147c
PyFile_WriteString now returns an error indicator instead of calling
...
PyErr_Clear().
1997-05-22 22:25:11 +00:00
Guido van Rossum
e9eec54798
Fix typo in error checking spotted by Just...
1997-05-22 14:02:25 +00:00
Guido van Rossum
a9040ec5d9
Renamed a local variable from 'PyCFunction' (which is also a typedef
...
in methodobject.h) to 'func'. /bin/cc on SunOS 4.x didn't grok this.
1997-05-20 22:09:08 +00:00
Guido van Rossum
037b2205e8
Moved PyObject_{Get,Set}Attr to object.c.
...
Fixed two 'return NULL' that should be 'return -1'.
1997-05-20 18:35:19 +00:00
Guido van Rossum
98ff96adba
Moved PyObject_{Get,Set}Attr here (from dictobject) and add PyObject_HasAttr.
1997-05-20 18:34:44 +00:00
Guido van Rossum
967839473a
Got rid of c_error in favor of errno (and EDOM/ERANGE).
...
Assume that errno usage is thread-safe -- most vendors do this by
making in a macro that refers to a per-thread storage area.
1997-05-20 18:21:34 +00:00
Guido van Rossum
3cca24570e
Got rid of all the last_name_* bogosities. I don't think the
...
complexity saved much any more. A simple benchmark (grail) showed
that there were 3 times as many misses as hits, and the same number of
times again the code was bypassed altogether due to the existence of
setattro/getattro.
1997-05-16 14:23:33 +00:00
Guido van Rossum
d0c87ee6c4
Oops, another forgotten renaming: varobject -> PyVarObject.
1997-05-15 21:31:03 +00:00
Guido van Rossum
e61093c218
Fix reversed test for failure in PySequence_List() and PySequence_Tuple().
...
This broke cPickle.
1997-05-14 18:43:29 +00:00
Guido van Rossum
9637432265
Renamed mappingobject.c to dictobject.c.
1997-05-13 21:05:38 +00:00
Guido van Rossum
a9e7a81137
Renamed from mappingobject.c to dictobject.c.
...
(Sorry Jack, all your projects will have to be changed again. :-( )
1997-05-13 21:02:11 +00:00
Guido van Rossum
93ad0df06c
Faster floating point allocator, same idea as the int allocator.
...
By Aaron Watters.
1997-05-13 21:00:42 +00:00
Guido van Rossum
789a1613a0
Add optional 'sizehint' argument to readlines(). After approximately
...
this many bytes have been read, readlines stops. Because of
buffering, the amount of bytes read is usually at least 8K more than
the hint.
Also changed read() and readline() to use PyArg_ParseTuple().
(Note that the *previous* checkin also fixed error handling and
narrowed the range of thread unblocking for all methods using
fread().)
1997-05-10 22:33:55 +00:00
Guido van Rossum
6263d5451c
Rewrite readlines() to speed it up -- about a factor of 2 on my
...
Indigo2, reading a 9Meg file from the local disk.
1997-05-10 22:07:25 +00:00
Guido van Rossum
5449b6e123
Speed up read() (i.e. read till EOF) considerably by doing a stat() to
...
see if we can guess the #bytes until the end of the file. If we
can't, increment the buffer size increments up to 0.5Meg to avoid
realloc'ing too much.
1997-05-09 22:27:31 +00:00
Guido van Rossum
0add15f6a5
removed last #ifdef SUPPORT_OBSOLETE_ACCESS bits.
1997-05-09 01:07:15 +00:00
Guido van Rossum
b819914263
Fix by Mark Hammond to enable truncate() on Windows.
1997-05-06 15:23:24 +00:00
Guido van Rossum
fdf95dd525
Checkin of Jack's buffer mods.
...
Not really checked, but didn't fail any tests either...
1997-05-05 22:15:02 +00:00
Guido van Rossum
a027efa5bf
Massive changes for separate thread state management.
...
All per-thread globals are moved into a struct which is manipulated
separately.
1997-05-05 20:56:21 +00:00
Guido van Rossum
c0b618a2cc
Quickly renamed the last directory.
1997-05-02 03:12:38 +00:00
Guido van Rossum
1875247549
Quickly renamed.
1997-04-29 14:49:28 +00:00
Guido van Rossum
3648884490
(Jack:) Align mapping entries to 4-words if USE_CACHE_ALIGNED is defined.
1997-04-11 19:14:07 +00:00
Guido van Rossum
2095d24842
Tweaks to keep the Microsoft compiler quiet.
1997-04-09 19:41:24 +00:00
Guido van Rossum
8017767420
Remove unused variable.
1997-04-09 18:22:28 +00:00
Guido van Rossum
6191551ad6
Remove a redundant XINCREF(value). This caused the reference count of
...
all locals to be upped by one when `from <module> import <whatever>'
was executed.
1997-04-03 18:31:43 +00:00
Guido van Rossum
4669fb474b
Several fixes reported by jim F.
1997-04-02 05:31:09 +00:00
Guido van Rossum
c054d70aee
Get rid of .conj pseudo data attribute for complex numbers.
...
Add __members__ attribute.
1997-04-01 03:12:33 +00:00
Guido van Rossum
fb8f1cadb2
Add clear() method to dictionary objects.
1997-03-21 21:55:12 +00:00
Guido van Rossum
f2e499b1d7
New long_lshift, without restriction on size of shift count, by Tim Peters.
...
This makes it possible to write 1L<<1000000, memory permitting.
1997-03-16 00:37:59 +00:00
Guido van Rossum
45b83915f8
New form of PyFPE_END_PROTECT macro.
1997-03-14 04:32:50 +00:00
Guido van Rossum
19700b6a98
Add casts to CMPERROR macro to silence SunPro compiler warnings about
...
integer overflow in << operator.
1997-03-05 00:45:43 +00:00
Guido van Rossum
09e6ad0c1e
Changes for Lee Busby's SIGFPE patch set.
...
Surround various f.p. operations with PyFPE_{START,END}_PROTECT macros.
1997-02-14 22:54:21 +00:00
Guido van Rossum
0f4bbd2f34
Keep gcc -Wall happy.
1997-02-14 21:12:56 +00:00
Guido van Rossum
36b9f7908a
Slight tweak: in string_hash(), if the hash hasn't been computed yet,
...
and if there's a pointer to an interned version of the string, use its
hash and store its hash in this object, rather than recomputing it.
1997-02-14 16:29:22 +00:00
Guido van Rossum
7582bfb60a
Kill all local variables when the frame is deallocated (moved here
...
from ceval.c).
Wrapped a long line.
1997-02-14 16:27:29 +00:00
Guido van Rossum
efb4609c4a
Small lookmapping nits:
...
- remove bogus initialization using uninitialized i
- derive initial incr from hash
- copy mp->ma_table into a local variable
1997-01-29 15:53:56 +00:00
Guido van Rossum
4acdc2327f
Fix bug reported by Per Lindqvist: "%#06x" % 1 stuck the 0 padding
...
in front of the 0x, like such: "0000x1".
1997-01-29 06:00:24 +00:00
Guido van Rossum
9e5656ca3f
Final three poly table entries corrected by Tim Peters.
...
Reindented the whole table.
1997-01-29 04:45:16 +00:00
Guido van Rossum
16e93a8d59
Changed the lookup algorithm again, based on Reimer Behrends's post.
...
The table size is now constrained to be a power of two, and we use a
variable increment based on GF(2^n)-{0} (not that I have the faintest
idea what that is :-) which helps avoid the expensive '%' operation.
Some of the entries in the table of polynomials have been modified
according to a post by Tim Peters.
1997-01-28 00:00:11 +00:00
Guido van Rossum
747596a491
When a recycled frame has more local+stack slots than needed,
...
give the extra slots to the stack rather than than forgetting about
them (this reduces the number of reallocs done).
1997-01-24 04:00:21 +00:00
Guido van Rossum
ca756f2a1d
Forget keeping track of whether a dictionary contains all interned
...
string keys. Just doing a pointer compare before the string compare
(in fact before the hash compare!) is just as fast.
1997-01-23 19:39:29 +00:00
Guido van Rossum
e0e696282f
Added PyCObject_Import.
1997-01-22 20:48:48 +00:00
Guido van Rossum
a04d47b319
Don't use static buffers internally for formatstring().
1997-01-21 16:12:09 +00:00
Guido van Rossum
3bb63a8dbe
Bugfix: remove ref to fast before it's defined.
1997-01-20 04:29:16 +00:00
Guido van Rossum
f3e85a0356
Changes that appear to give another 12% speedup.
...
Rather than allocating a list object for the fast locals and another
(extensible one) for the value stack and allocating the block stack
dynamically, allocate the block stack with a fixed size (CO_MAXBLOCKS
from compile.h), and stick the locals and value stack at the end of
the object (this is now possible since the stack size is known
beforehand). Get rid of the owner field and the nvalues argument --
it is available in the code object, like nlocals.
This requires small changes in ceval.c only.
1997-01-20 04:20:52 +00:00
Guido van Rossum
a412d24be0
Intern the various string objects created to speed up lookups.
1997-01-18 07:59:12 +00:00
Guido van Rossum
b56933ed2e
Intern the strings "__builtins__".
1997-01-18 07:58:41 +00:00
Guido van Rossum
c6d0670f1b
Intern the strings created in getattr() and setattr().
1997-01-18 07:57:16 +00:00
Guido van Rossum
2a61e7428d
String interning.
1997-01-18 07:55:05 +00:00
Guido van Rossum
792fd435ec
Comment out extend_stack() -- it is no longer needed.
1997-01-17 21:07:57 +00:00
Guido van Rossum
7d18159614
Rewrote lookmapping() according to suggestions by Jyrki Alakuijala.
1997-01-16 21:06:45 +00:00
Guido van Rossum
6f72f97c03
Increased buffer sizes used by hex() and oct() -- on 64-bit or 128-bit
...
machines, the string may get longer than 20 characters!
1997-01-14 15:43:41 +00:00
Guido van Rossum
ebee0256f3
Changed hex() and oct() again, to never emit a '-' sign.
1997-01-12 19:48:03 +00:00
Guido van Rossum
919cf1aff1
New, better hash for floating point and complex
1997-01-11 19:26:21 +00:00
Guido van Rossum
80dd9b6672
Subtle change to hex/oct formatting so the largest negative number
...
does not receive a minus sign.
1997-01-10 17:39:30 +00:00
Guido van Rossum
541cdd84ac
Fix overflow test for multiply to catch some cases it missed.
...
Added warning about dependency of float/complex hash on int hash.
1997-01-06 22:53:20 +00:00
Guido van Rossum
53756b1097
Added PyLong_FromUnsignedLong() and PyLong_AsUnsignedLong().
1997-01-03 17:14:46 +00:00
Guido van Rossum
babab6869f
Removed all traces of accessobject.c.
1996-12-25 19:22:49 +00:00
Barry Warsaw
f90eddef5d
PySequence_Index(): set exception when object is not found in
...
sequence, otherwise
operator.indexOf([4, 3, 2, 1], 9) would raise a SystemError!
Note: it might be wise to double check all these functions. I haven't
done that yet.
1996-12-18 19:32:18 +00:00
Guido van Rossum
0969ad213d
Better tuple hash function.
1996-12-16 17:55:46 +00:00
Guido van Rossum
cc15b42e59
Change comment about MINSIZE -- 10 is optimal for Python.
1996-12-16 03:32:39 +00:00
Guido van Rossum
3176bb1df2
Some more tuning of quicksort: use pointers instead of indexing.
1996-12-11 23:57:39 +00:00
Guido van Rossum
3f236dee3a
Added new quicksort implementation, tailored to sorting arrays of
...
object pointers. Should be a bit faster than the C library's qsort(),
and doesn't have the prohibition on recursion that Solaris qsort() has
in the threaded version of their C library.
Thanks to discussions with Tim Peters.
1996-12-10 23:55:39 +00:00
Guido van Rossum
067998f35e
Add const to error and newstring functions
1996-12-10 15:33:34 +00:00
Guido van Rossum
9478dd40c2
Fix core dump from pow(x,y,0).
...
Make gcc -Wall happy.
1996-12-06 20:14:43 +00:00
Guido van Rossum
da9c2710c7
Make gcc -Wall happy
1996-12-05 21:58:58 +00:00
Guido van Rossum
472c04f18f
Fix newlongobject so it will work for 64-bit as well as 32-bit hardware
...
(although for 32-bit hardware it's a bit slower than it was).
Make gcc -Wall happy.
1996-12-05 21:57:21 +00:00
Guido van Rossum
a0a69b8b42
Experimental new implementation of dictionary comparison. This
...
defines that a shorter dictionary is always smaller than a longer one.
For dictionaries of the same size, the smallest differing element
determines the outcome (which yields the same results as before,
without explicit sorting).
1996-12-05 21:55:55 +00:00
Guido van Rossum
685a38ea94
Make gcc -Wall happy.
1996-12-05 21:54:17 +00:00
Guido van Rossum
04f95d5238
Better implementation of PyCObject_AsVoidPtr().
1996-12-05 21:53:15 +00:00
Guido van Rossum
cbd1e4eb5f
Yet more elaborate message for exception in __del__.
...
Make gcc -Wall happy.
1996-12-05 21:52:32 +00:00
Guido van Rossum
3c5936afc5
Added missing PySequence_List.
...
Correct typo in error msg (expec[t]ed).
Make gcc -Wall happy.
1996-12-05 21:51:24 +00:00
Guido van Rossum
052b7e1cfb
Make Py_ReturnNullError() statis as it should be.
1996-11-11 15:08:19 +00:00
Guido van Rossum
08ef9d98b2
Only call sq_length in Sequence_GetItem for negative index.
1996-11-09 22:32:05 +00:00
Guido van Rossum
8dbcdd0a4c
correct typo in return variable for PySequence_Index()
1996-11-06 15:31:46 +00:00
Guido van Rossum
d266eb460e
New permission notice, includes CNRI.
1996-10-25 14:44:06 +00:00
Guido van Rossum
fde7a75b78
Fixed compare function to do first char comparison in unsigned mode,
...
for consistency with the way other characters are compared.
1996-10-23 14:19:40 +00:00
Guido van Rossum
8bcf369cf9
Support passing in an empty dictionary of keywords to newinstanceobject.
1996-10-21 15:12:32 +00:00
Guido van Rossum
e449af7da9
Ellipses -> Ellipsis rename (the dictionary really says that it should
...
be Ellipsis!).
Bumped the API version because a linker-visible symbol is affected.
Old C code will still compile -- there's a b/w compat macro.
Similarly, old Python code will still run, builtin exports both
Ellipses and Ellipsis.
1996-10-11 16:25:41 +00:00
Guido van Rossum
336c699236
Fix subtle bug detected by Jim F.
1996-09-30 22:00:50 +00:00
Guido van Rossum
24048580ca
Oops... Need to clear c_error before calling c_quot().
1996-09-12 21:02:02 +00:00
Guido van Rossum
3be12e97cd
Properly(?) implemented remainder and divmod (Tim Hochberg)
1996-09-12 20:56:18 +00:00
Guido van Rossum
d4ab3cde8e
Raise exception instead of dropping imag part for conversion to int,
...
long, float.
Raise exception instead of dumping core for remainder and divmod.
1996-09-11 22:54:37 +00:00
Guido van Rossum
22a85e5308
More detailed error message about exception in __del__
1996-09-11 22:51:57 +00:00
Guido van Rossum
b7fc304109
Correct typo in setattr: return -1 for error, not NULL
1996-09-11 22:51:25 +00:00
Guido van Rossum
eddcb3bae1
Multiply by 1000003 instead of 3 in string hach
1996-09-11 20:22:48 +00:00
Guido van Rossum
b23a60fd6e
Get rid of bogus MSC_VER undef of CHECK()
1996-09-11 20:21:41 +00:00
Guido van Rossum
ee09fc1c30
Don't dump core on complex % or divmod -- raise a TypeError exception.
1996-09-11 13:55:55 +00:00
Guido van Rossum
e5920bc4c6
Use getstringsize where available instead of strlen.
1996-08-26 14:58:03 +00:00
Guido van Rossum
ad8997887b
Be a bit more careful with printing a warning for a failed __del__.
1996-08-22 23:15:42 +00:00
Guido van Rossum
6cdc6f4146
Added PyObject_DelItem and PySequence_Del{Item,Slice}.
1996-08-21 17:41:54 +00:00
Guido van Rossum
019f424a0a
More efficient handling of "__doc__" lookup.
1996-08-21 14:54:28 +00:00
Guido van Rossum
89227eb0f5
Write warning about exception in __del__ to stderr, not stdout.
1996-08-20 19:54:29 +00:00
Guido van Rossum
926518b683
Changes to make the file acceptable to K&R C compilers (HPUX, SunOS 4.x).
1996-08-19 19:30:45 +00:00
Guido van Rossum
c13bcca268
Test for negative # to the nonintegral float power here.
...
Expanded powi() in-line.
1996-08-16 20:42:57 +00:00
Guido van Rossum
0dfcf753ad
Disable support for access statement
1996-08-12 22:00:53 +00:00
Guido van Rossum
aacdc9da75
Define reference count admin debug functions to return void.
1996-08-12 21:32:12 +00:00
Guido van Rossum
2878a69922
Optimizations by Sjoerd:
...
- define tp_getattro, tp_setattro
- use precreated string objects for most common exceptions and method names
1996-08-09 20:53:24 +00:00
Guido van Rossum
d8eb1b340f
Support for tp_getattro, tp_setattro (Sjoerd)
1996-08-09 20:52:03 +00:00
Guido van Rossum
929f1b83ea
Use pre-created string objects for most common exceptions
...
(especially IndexError which is caught by 'for')
1996-08-09 20:51:27 +00:00
Guido van Rossum
86c04c252b
Correct wrong calculation of pow(0.0, 0.0, negative_number)
1996-08-09 20:50:14 +00:00
Guido van Rossum
cee555bda2
Allow compilation by K&R C compiler.
1996-08-01 00:02:33 +00:00
Guido van Rossum
fd4904c630
repr("...") -> "Ellipses"
1996-07-30 18:37:14 +00:00
Guido van Rossum
f2d125bdad
Added sliceobject.c
1996-07-30 16:45:48 +00:00
Guido van Rossum
310968dc06
Speedup suggested by Sjoerd
1996-07-30 16:45:31 +00:00
Guido van Rossum
6c02a2fe25
Use NEWOBJ() macro instead of calling newobject() directly.
1996-07-22 16:16:25 +00:00
Guido van Rossum
9e720e390a
complex -> Py_complex
1996-07-21 02:31:35 +00:00
Guido van Rossum
f5030abca8
Hacks for MS_COREDLL
1996-07-21 02:30:39 +00:00
Guido van Rossum
3cb486879a
Only __dict__ and __class__ are read-only instance attributes
1996-07-21 02:29:46 +00:00
Guido van Rossum
9d81b5594e
Different logic for defining CHECK(); 16-bit MSC specific define.
1996-06-26 18:27:19 +00:00
Guido van Rossum
ded690fc35
rename printrefs, getobjects to _Py_ prefix
1996-05-24 20:48:31 +00:00
Guido van Rossum
363078afa4
make some things static
1996-05-24 20:45:01 +00:00
Guido van Rossum
441e4ab802
new debugger symbol names
1996-05-23 22:46:51 +00:00
Guido van Rossum
84a9032cd3
TRACE_REFS -> Py_TRACE_REFS.
...
Added disgusting hack to force loading of abstract.o.
1996-05-22 16:34:47 +00:00
Guido van Rossum
f97632639e
Plug memory leak in the previous fix :-(
1996-05-21 23:44:17 +00:00
Guido van Rossum
993952bfb2
Fix obscure bug in string%mapping where the mapping creates its items
...
on the fly -- there was an unsafe DECREF. Actually save some lines of
code by using abstract.c:PyObject_GetItem().
1996-05-21 22:44:20 +00:00
Guido van Rossum
6dabc98400
Added __name__ attribute to class instance method objects.
...
Removed im_doc attribute; __name__ and __doc__ are now handled by
special casing in instancemethodgetattr(). This saves a few bytes and
INCREF/DECREF calls per i.m. object allocation/deallocation.
1996-05-14 21:54:20 +00:00
Guido van Rossum
724187929a
use 'j' instead of 'i' for imaginary constants
1996-01-25 16:21:31 +00:00
Jack Jansen
1e7b2aa5d6
Removed unused var
1996-01-25 16:11:19 +00:00
Guido van Rossum
d8b49250e9
added complex and c objects
1996-01-12 01:26:05 +00:00
Guido van Rossum
97ead3fb8e
Hack to force loading of cobject.o
1996-01-12 01:24:09 +00:00
Guido van Rossum
39739ea0ed
better power implementation
1996-01-12 01:22:56 +00:00
Guido van Rossum
cf3d1087d1
Added PyComplex_AsCComplex
1996-01-12 01:21:14 +00:00
Guido van Rossum
f9fca9252f
complex numbers a la Konrad Hinsen
1996-01-12 00:47:05 +00:00
Guido van Rossum
77654a7e5e
opaque C object a la Jim Fulton
1996-01-12 00:44:03 +00:00
Guido van Rossum
992ded8f12
fix free memory reads in dictlookup et al
1995-12-08 01:16:31 +00:00
Guido van Rossum
8ba873b8ad
adapted to K&R C
1995-09-18 21:17:59 +00:00
Sjoerd Mullender
6f011d7ad5
Get ordering right for TRACE_REFS/COUNT_ALLOCS combination (otherwise
...
may get inc_count sanity check abort).
1995-09-18 10:49:04 +00:00
Sjoerd Mullender
6ec3c653da
Implemented two new functions in sys:
...
getcounts() returns a list of counts of allocations and
deallocations for all different object types.
getobjects(n [, type ]) returns a list of recently allocated
and not-yet-freed objects of the given type (all
objects if no type given). Only the n most recent
(all if n==0) objects are returned.
getcounts is only available if compiled with -DCOUNT_ALLOCS,
getobjects is only available if compiled with -DTRACE_REFS. Note that
everything must be compiled with these options!
1995-08-29 09:18:14 +00:00
Sjoerd Mullender
740f357363
Fixed calling of __del__ method with TRACE_REFS defined.
1995-08-28 09:00:43 +00:00
Guido van Rossum
ac21f6a579
class objects are read-only in restricted mode
1995-08-04 04:05:31 +00:00
Guido van Rossum
055968c068
better err checks in resizetuple
1995-08-04 04:05:10 +00:00
Guido van Rossum
a83f270a4b
changes for keyword args to built-in functions and classes
1995-07-26 18:07:32 +00:00
Guido van Rossum
bdd207af79
better policy regarding NULL locals
1995-07-26 16:14:30 +00:00
Guido van Rossum
2271bf7187
changes for keyword arguments and fast function call; added abstract.c
1995-07-18 14:30:34 +00:00
Guido van Rossum
e15dee5e3c
Generic Abstract Object Interface
1995-07-18 14:12:02 +00:00
Guido van Rossum
1311e3ce73
args to call_object must be tuple or NULL
1995-07-12 02:22:06 +00:00
Guido van Rossum
d3f9a1ad83
fix read(0), readline(0); make tuple for call_object args
1995-07-10 23:32:26 +00:00
Jack Jansen
e08dea19c2
MW does not always set errno on failing fopen()
1995-04-23 22:12:47 +00:00
Guido van Rossum
e9df727176
change comparing instance methods
1995-04-06 14:46:51 +00:00
Guido van Rossum
d8953cb8d9
change in counting freed objects
1995-04-06 14:46:26 +00:00
Sjoerd Mullender
5b7f3cd3e1
Use mappinglookup instead of dictlookup for looking up __builtin__.
1995-04-04 11:47:41 +00:00
Guido van Rossum
6f9e433ab3
fix dusty debugging macros
1995-03-29 16:57:48 +00:00
Guido van Rossum
5fe605889a
a few peephole optimizations
1995-03-09 12:12:50 +00:00
Guido van Rossum
687ec1892b
changes for MPW
1995-03-04 22:43:47 +00:00
Guido van Rossum
07e3a7e781
for MPW __SC__ compiler
1995-02-27 10:13:37 +00:00
Guido van Rossum
caeaafccf7
don't complain about too many args if arg is a dict
1995-02-27 10:13:23 +00:00
Guido van Rossum
295d171650
explicitly init flags in methodlists
1995-02-19 15:55:19 +00:00
Guido van Rossum
67ca701939
NeXT/Sparc 3.3 fix
1995-02-13 16:38:41 +00:00
Guido van Rossum
9fa2c11613
use Py_CHARMASK; and don't check for neg. float to the float power here
1995-02-10 17:00:37 +00:00
Guido van Rossum
2497eada60
make size arg signed
1995-02-10 17:00:27 +00:00
Guido van Rossum
a46d51d9a4
round up list item counts to improve realloc performance
1995-01-26 22:59:43 +00:00
Guido van Rossum
6978503235
added findmethodinchain and methodchain data types
1995-01-26 22:58:48 +00:00
Guido van Rossum
e95d92b65e
removed unused vars
1995-01-26 00:39:21 +00:00
Guido van Rossum
27e916fd35
apply dictclear to dict of deleted modules
1995-01-26 00:39:00 +00:00
Guido van Rossum
49b11fed70
move callable() here
1995-01-26 00:38:22 +00:00
Guido van Rossum
e9c6bcd813
fix leak in func_dealloc (forgot to decref name)
1995-01-20 16:58:19 +00:00
Jack Jansen
7874d1fe7e
Fix NULL dereference in case of out-of-memory condition
1995-01-19 12:09:27 +00:00
Guido van Rossum
32b582b953
fix strobject() behavior
1995-01-17 16:35:13 +00:00
Guido van Rossum
b0fe3a9312
added reverselist; free recycling bin on error exit
1995-01-17 16:34:45 +00:00
Guido van Rossum
3535f6e0a1
long_scan is no longer used
1995-01-17 16:34:13 +00:00
Guido van Rossum
ce00509702
make a few things static
1995-01-17 16:33:39 +00:00
Guido van Rossum
4d3468deab
don't declare fmod/pow for any STDC compiler
1995-01-17 16:33:14 +00:00
Guido van Rossum
b4e7e25fe6
different init for __builtins__
1995-01-17 16:27:25 +00:00
Guido van Rossum
087579ea51
added $& to $(LIB) target for Sequent
1995-01-17 16:11:29 +00:00
Guido van Rossum
ae7bf1a5e7
fix reentrancy bug in slice assignment
1995-01-17 10:21:11 +00:00
Guido van Rossum
20566845c6
properly implement cmp() for class instances
1995-01-12 11:26:10 +00:00
Guido van Rossum
5524a59b09
move coerce() from bltinmodule.c to object.c and implement builtin_coerce() differently
1995-01-10 15:26:20 +00:00
Guido van Rossum
879c581826
implement coercions involving instances properly
1995-01-10 15:24:06 +00:00
Guido van Rossum
c206c766dd
fix memory leak and null pointer dereference
1995-01-10 15:23:19 +00:00
Guido van Rossum
10393b1708
add restrictions in restricted mode
1995-01-10 10:39:49 +00:00
Guido van Rossum
c113482871
add builtins handling and restricted flag
1995-01-10 10:39:16 +00:00
Guido van Rossum
e7d444f785
* Objects/classobject.c: added 5th (function) parameter to
...
instancebinop, to support things like Rational * float; added
documentation strings to classes and methods
1995-01-07 12:35:18 +00:00
Guido van Rossum
cab650db8e
* Objects/methodobject.c: changed drastically, the object now
...
contains a pointer to the struct methodlist (which must be
static); added attributes __name__, __doc__ and __self__
1995-01-07 12:34:58 +00:00
Guido van Rossum
5bd3805ae9
Added __doc__ attribute (alias func_doc), initialized from first
...
constant in code object if it is a string, else None
1995-01-07 12:01:30 +00:00
Guido van Rossum
8b14b4c733
initialize __doc__ to None
1995-01-07 11:59:29 +00:00
Guido van Rossum
29ca26eebf
added getattr(), supporting __doc__ and _name__
1995-01-07 11:58:15 +00:00
Guido van Rossum
016564ab51
attribute-less object is AttributeError, not TypeError
1995-01-07 11:54:44 +00:00
Guido van Rossum
6610ad9d6b
Added 1995 to copyright message.
...
floatobject.c: fix hash().
methodobject.c: support METH_FREENAME flag bit.
1995-01-04 19:07:38 +00:00
Guido van Rossum
efc8713428
* Objects/mappingobject.c (mappingremove): don't call
...
lookmapping() for empty dictionary
1995-01-02 19:42:39 +00:00
Guido van Rossum
d7047b395e
Lots of minor changes. Note for mappingobject.c: the hash table pointer
...
can now be NULL.
1995-01-02 19:07:15 +00:00
Guido van Rossum
bb3c5f7406
fix comparison of instances without _-cmp__
1994-11-10 22:31:02 +00:00
Sjoerd Mullender
b9a6d12498
Comparison of two class instances without __cmp__ or __rcmp__ methods
...
was broken.
1994-10-19 15:11:52 +00:00
Guido van Rossum
03093a248d
* Include/classobject.h, Objects/classobject.c, Python/ceval.c:
...
entirely redone operator overloading. The rules for class
instances are now much more relaxed than for other built-in types
(whose coerce must still return two objects of the same type)
* Objects/floatobject.c: add overflow check when converting float
to int and implement truncation towards zero using ceil/float
* Objects/longobject.c: change ValueError to OverflowError when
converting to int
* Objects/rangeobject.c: modernized
* Objects/stringobject.c: use HAVE_LIMITS instead of __STDC__
* Objects/xxobject.c: changed to use new style (not finished?)
1994-09-28 15:51:32 +00:00
Guido van Rossum
9776adf565
rearranged code in debugging version of DELREF to avoid touching data
...
after it has been freed.
1994-09-07 14:36:45 +00:00
Guido van Rossum
52ca98a390
Yet another version (by me) of __getattr__ etc.
1994-09-05 07:32:29 +00:00
Guido van Rossum
e773754ae5
Mods (really diffs to 2.29) by Michael Scharf for alternative __getattr__ etc.
1994-09-05 07:31:41 +00:00
Guido van Rossum
1d5735e846
Merge back to main trunk
1994-08-30 08:27:36 +00:00
Guido van Rossum
013142a95f
fix nasty bug in resizing (formatstring)
1994-08-30 08:19:36 +00:00
Guido van Rossum
bf8c0e336f
mods by Andrew Kuchling to implement
...
pow(x,y,z) == pow(x,y)%z, but without incurring overflow
Correct problems found by THINK C 6.0
1994-08-29 12:48:32 +00:00
Guido van Rossum
eb1fafcec1
New patches by Andrew to fix various problems
...
Add cast for Lance
1994-08-29 12:47:19 +00:00
Guido van Rossum
6cd2fe043b
Correct problems found by THINK C 6.0
1994-08-29 12:45:32 +00:00
Guido van Rossum
f0171a1626
* configure.in, */Makefile*.in: OPT can now be specified in the
...
env at configure time and will then be put in all Makefiles as
default
* */Makefile*.in: remove lib*.a before adding to it
1994-08-23 14:06:18 +00:00
Guido van Rossum
91ab4a8353
If an attribute is deleted, __setattr__ is called with 2 instead of 3
...
arguments (adding __delattr__ was deemed too much overhead)
1994-08-16 22:13:47 +00:00
Guido van Rossum
0b7d02a36f
New patches by Andrew to fix various problems
1994-08-12 12:52:35 +00:00
Guido van Rossum
e149fa2a1e
* Objects/classobject.c, Include/classobject.h: added __getattr__
...
and __setattr__ support to override getattr(x, name) and
setattr(x, name, value) for class instances. This uses a special
hack whereby the class is supposed to be static: the __getattr__
and __setattr__ methods are looked up only once and saved in the
instance structure for speed
1994-08-12 12:49:46 +00:00
Guido van Rossum
b6775db241
Merge alpha100 branch back to main trunk
1994-08-01 11:34:53 +00:00
Guido van Rossum
2e1d433e43
Added getmaxint() so sys can initialize sys.maxint.
...
Added Makefile.in.
1993-12-24 10:22:45 +00:00
Guido van Rossum
7d6aa51b56
* rangeobject.[ch], bltinmodule.c: incorporate new version of range
...
object (unchanged from source except "range" -> "xrange").
1993-12-21 22:50:31 +00:00
Guido van Rossum
455b87d457
New file
1993-12-20 11:43:21 +00:00
Guido van Rossum
590baa4a7a
* import.c (get_module): pass .py filename to parse_file, not .pyc filename!
...
* funcobject.c (func_repr): don't call getstringvalue(None) for anonymous
functions.
* bltinmodule.c: removed lambda (which is now a built-in function);
removed implied lambda for string arg to filter/map/reduce.
* Grammar, graminit.[ch], compile.[ch]: replaced lambda as built-in
function by lambda as grammar entity: instead of "lambda('x: x+1')" you
write "lambda x: x+1".
* Xtmodule.c (checkargdict): return 0, not NULL, for error.
1993-11-30 13:40:46 +00:00
Guido van Rossum
8732d6aeea
Fix lay-out of previous fix.
1993-11-23 17:54:03 +00:00
Guido van Rossum
b376a4ad18
* timemodule.c: Add hack for Solaris 2.
...
* posixmodule.c: don't prototype getcwd() -- it's not portable...
* mappingobject.c: double-check validity of last_name_char in
dict{lookup,insert,remove}.
* arraymodule.c: need memmove only for non-STDC Suns.
* Makefile: comment out HTML_LIBS and XT_USE by default
* pythonmain.c: don't prototype getopt() -- it's not standardized
* socketmodule.c: cast flags arg to {get,set}sockopt() and addrbuf arg to
recvfrom() to (ANY*).
* pythonrun.c (initsigs): fix prototype, make it static
* intobject.c (LONG_BIT): only #define it if not already defined
* classobject.[ch]: remove all references to unused instance_convert()
* mappingobject.c (getmappingsize): Don't return NULL in int function.
1993-11-23 17:53:17 +00:00
Guido van Rossum
c45611d0e3
* import.c (get_module): total rewrite, to ensure proper search order: for
...
each dir in sys.path, try each possible extension. (Note: C extensions
are loaded before Python modules in the same directory, to allow having
a C version used when dynamic loading is supported and a Python version
as a back-up.)
* import.c (reload_module): test for error from getmodulename()
* moduleobject.c: implement module name as dict entry '__name__' instead
of special-casing it in module_getattr(); this way a module (or
function!) can access its own module name, and programs that know what
they are doing can rename modules.
* stdwinmodule.c (initstdwin): strip ".py" suffix of argv[0].
1993-11-17 22:58:56 +00:00
Guido van Rossum
71e57d090d
Fix the fix :-(
1993-11-11 15:03:51 +00:00
Guido van Rossum
6938a297da
Three micro fixes to formatstring
1993-11-11 14:51:57 +00:00
Guido van Rossum
52f2c05401
* parsermodule.c, Makefile, config.c: rudimentary interface to the Python
...
parser.
* mappingobject.c (lookmapping): 'freeslot' was never used due to a bug in
the code.
1993-11-10 12:53:24 +00:00
Guido van Rossum
a3d78fb268
* posixmodule.c: added set{uid,gid}.
...
* {tuple,list,mapping,array}object.c: call printobject with 0 for flags
* compile.c (parsestr): use quote instead of '\'' at one crucial point
* arraymodule.c (array_getattr): Added __members__ attribute
1993-11-10 09:23:53 +00:00
Guido van Rossum
c600411755
* mpzmodule.c: removed redundant mpz_print function.
...
* object.[ch], bltinmodule.c, fileobject.c: changed str() to call
strobject() which calls an object's __str__ method if it has one.
strobject() is also called by writeobject() when PRINT_RAW is passed.
* ceval.c: rationalize code for PRINT_ITEM (no change in function!)
* funcobject.c, codeobject.c: added compare and hash functionality.
Functions with identical code objects and the same global dictionary are
equal. Code objects are equal when their code, constants list and names
list are identical (i.e. the filename and code name don't count).
(hash doesn't work yet since the constants are in a list and lists can't
be hashed -- suppose this should really be done with a tuple now we have
resizetuple!)
1993-11-05 10:22:19 +00:00
Guido van Rossum
2e8f8a398e
Added compare operations for functions and code objects.
...
(Also hash, but it doesn't work yet.)
1993-11-05 10:20:10 +00:00
Guido van Rossum
4199facacd
Added getmappingsize(). (Needed by previous checkin of posixmodule.c)
1993-11-05 10:18:44 +00:00
Guido van Rossum
b73cc04e62
* ceval.c, longobject.c, methodobject.c, listnode.c, arraymodule.c,
...
pythonrun.c: added static forward declarations
* pythonrun.h, ceval.h, longobject.h, node.h: removed declarations of
static routines
1993-11-01 16:28:59 +00:00
Guido van Rossum
82d410e733
* fileobject.c (softspace): fix bug if called with NULL file.
1993-11-01 16:26:16 +00:00
Guido van Rossum
2586bf0a34
* rangeobject.{c,h}, bltinmodule.c: removed non-essential ops from range
...
object.
1993-11-01 16:21:44 +00:00
Sjoerd Mullender
615194a352
Fixed bugs in resizetuple and extended the interface.
...
Added ifdefs in stringobject.c for shared strings of length 1.
Renamed free_list in tupleobject.c to free_tuples.
1993-11-01 13:46:50 +00:00
Guido van Rossum
dc4b93db70
* listobject.c (list_ass_slice): XDECREF instead of DECREF so
...
setlistslice() can be used to cut the unused part out of a freshly made
slice (as done by bagof()). [needed by the next mod!]
* structural changes to bagof(), map() etc.
1993-10-27 14:56:44 +00:00
Guido van Rossum
12d12c5faf
* compile.[ch]: support for lambda()
...
* PROTO.h, mymalloc.h: added #ifdefs for TURBOC and GNUC.
* allobjects.h: added #include "rangeobject.h"
* Grammar: added lambda_input; relaxed syntax for exec.
* bltinmodule.c: added bagof, map, reduce, lambda, xrange.
* tupleobject.[ch]: added resizetuple().
* rangeobject.[ch]: new object type to speed up range operations (not
convinced this is needed!!!)
1993-10-26 17:58:25 +00:00
Guido van Rossum
444fc7c90c
Add some necessary casts; use double quotes to represent strings in
...
some cases.
1993-10-26 15:25:16 +00:00
Guido van Rossum
72481a3497
Changes to make range checks portable to 64-bit machines.
1993-10-26 15:21:51 +00:00
Guido van Rossum
5a2a683e72
* filemodule.c: added writelines() -- analogous to readlines()
...
* import.c: fixed core dump when out-of-date .pyc file encountered (again!)
1993-10-25 09:59:04 +00:00
Sjoerd Mullender
52c1f51554
import.c: When something is wrong with the .pyc, properly open the .py
...
file.
object.c: Write allocation statistics to stderr.
1993-10-25 08:40:52 +00:00
Sjoerd Mullender
3bb8a05947
Several optimizations and speed improvements.
...
cstubs: Use Matrix type instead of float[4][4].
1993-10-22 12:04:32 +00:00
Guido van Rossum
db3165e655
* bltinmodule.c: removed exec() built-in function.
...
* Grammar: add exec statement; allow testlist in expr statement.
* ceval.c, compile.c, opcode.h: support exec statement;
avoid optimizing locals when it is used
* fileobject.{c,h}: add getfilename() internal function.
1993-10-18 17:06:59 +00:00
Sjoerd Mullender
842d2ccdcd
intobject.c: Save references to small integers, so that they can be
...
shared. The default is to save references to the integers in
the range -1..99. The lower limit can be set by defining
NSMALLNEGINTS (absolute value of smallest integer to be saved)
and NSMALLPOSINTS (1 more than the largest integer to be
saved).
tupleobject.c: Save a reference to the empty tuple to be returned
whenever a tuple of size 0 is requested. Tuples of size 1
upto, but not including, MAXSAVESIZE (default 20) are put in
free lists when deallocated. When MAXSAVESIZE equals 1, only
share references to the empty tuple, when MAXSAVESIZE equals
0, don't include the code at all and revert to the old
behavior.
object.c: Print some more statistics when COUNT_ALLOCS is defined.
1993-10-15 16:18:48 +00:00