Commit Graph

382 Commits

Author SHA1 Message Date
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