Commit Graph

119 Commits

Author SHA1 Message Date
Guido van Rossum
c43b685054 Clarify error message for unexpected keyword parameter. 1997-03-10 22:58:23 +00:00
Guido van Rossum
0d85be19e2 *Don't* kill all local variables on function exit. This will be done
by the frameobject dealloc when it is time for the locals to go.  When
there's still a traceback object referencing this stack frame, we
don't want the local variables to disappear yet.

(Hmm...  Shouldn't they be copied to the f_locals dictionary?)
1997-02-14 16:32:14 +00:00
Guido van Rossum
deb0c5e66c Two small changes:
- Use co->... instead of f->f_code->...; save an extra lookup of what
we already have in a local variable).

- Remove test for nlocals > 0 before setting fastlocals to
f->f_localsplus; 0 is a rare case and the assignment is safe even
then.
1997-01-27 23:42:36 +00:00
Guido van Rossum
d0eb429b88 Plug a leak with calling something other than a function or method is
called with keyword arguments -- the keyword and value were leaked.
This affected for instance with a __call__() method.

Bug reported and fix supplied by Jim Fulton.
1997-01-27 21:30:09 +00:00
Guido van Rossum
950361c6ca Patches for (two forms of) optional dynamic execution profiling --
i.e., counting opcode frequencies, or (with DXPAIRS defined) opcode
pair frequencies.  Define DYNAMIC_EXECUTION_PROFILE on the command
line (for this file and for sysmodule.c) to enable.
1997-01-24 13:49:28 +00:00
Guido van Rossum
8c5df06ec7 Change the control flow for error handling in the function prelude to
jump to the "Kill locals" section at the end.  Add #ifdef macintosh
bandaid to make sure we call sigcheck() on the Mac.
1997-01-24 04:19:24 +00:00
Guido van Rossum
a4240132ec Kill all local variables on function return. This closes a gigantic
leak of memory and file descriptors (thanks for Roj for reporting
that!).  Alas, the speed goes down by 5%. :-(
1997-01-21 21:18:36 +00:00
Guido van Rossum
70d44787a3 Only call sigcheck() at the ticker code if we don't have true signals.
This is safe now that both intrcheck() and signalmodule.c schedule a
sigcheck() call via Py_AddPendingCall().

This gives another 7% speedup (never run such a test twice ;-).
1997-01-21 06:15:24 +00:00
Guido van Rossum
1aa14838d2 Cleanup:
- fix bug in Py_MakePendingCalls() with threading
- fix return type of do_raise
- remove build_slice (same as PySlice_New)
- remove code inside #if 0
- remove code inside #ifdef CHECK_STACK
- remove code inside #ifdef SUPPORT_OBSOLETE_ACCESS
- comment about newimp.py should refer to ni.py
1997-01-21 05:34:20 +00:00
Guido van Rossum
768360243a Changes for frame object speedup:
- get fastlocals differently
- call newframeobject() with fewer arguments
- toss getowner(), which was unused anyway
1997-01-20 04:26:20 +00:00
Guido van Rossum
3dfd53b4c8 Add "if (x != NULL) continue;" (or similar for err==0) before the
break to most cases, as suggested by Tim Peters.  This gives another
8-10% speedup.
1997-01-18 02:46:13 +00:00
Guido van Rossum
62f7d15d0b Use the stack size from the code object and the CO_MAXBLOCKS constant
from compile.h.  Remove all eval stack overflow checks.
1997-01-17 21:05:28 +00:00
Guido van Rossum
408027ea46 Rename DEBUG macro to Py_DEBUG 1996-12-30 16:17:54 +00:00
Guido van Rossum
0aa9ee65ab Moved the raise logic out of the main interpreter loop to a separate function.
The raise logic has one additional feature: if you raise <class>,
<value> where <value> is not an instance, it will construct an
instance using <value> as argument.  If <value> is None, <class> is
instantiated without arguments.  If <value> is a tuple, it is used as
the argument list.

This feature is intended to make it easier to upgrade code from using
string exceptions to using class exceptions; without this feature,
you'd have to change every raise statement from ``raise X'' to ``raise
X()'' and from ``raise X, y'' to ``raise X(y)''.  The latter is still
the recommended form (because it has no ambiguities about the number
of arguments), but this change makes the transition less painful.
1996-12-10 18:07:35 +00:00
Guido van Rossum
150b2df682 Change the Don Beaudry hack into the Don B + Jim F hack; now, if *any*
base class is special it gets invoked.

Make gcc -Wall happy.
1996-12-05 23:17:11 +00:00
Guido van Rossum
d266eb460e New permission notice, includes CNRI. 1996-10-25 14:44:06 +00:00
Guido van Rossum
6d43c5de5a Raise TypeError, not KeyError, on unknown keyword argument. 1996-08-19 22:09:16 +00:00
Guido van Rossum
bf51afa049 Don't test here for negative number to float power; that belongs in
floatobject.c.
1996-08-16 20:49:17 +00:00
Guido van Rossum
0dfcf753ad Disable support for access statement 1996-08-12 22:00:53 +00:00
Guido van Rossum
3b9c6677f8 Better error message if stride used on normal sequence object 1996-07-30 18:40:29 +00:00
Guido van Rossum
8861b74445 Changes for slice and ellipses 1996-07-30 16:49:37 +00:00
Guido van Rossum
3b4da59cd6 Renamed static pow() to powerop() to avoid name conflict in some compilers. 1996-06-19 21:49:17 +00:00
Guido van Rossum
8c1e150215 Removed some done "to do" items.
Changed #ifdef DEBUG slightly.
1996-05-24 20:49:24 +00:00
Guido van Rossum
5e3e426961 removed sime redundant header includes and decls. 1996-05-23 22:49:38 +00:00
Guido van Rossum
50564e8dae changes for complex and power (**) operator 1996-01-12 01:13:16 +00:00
Guido van Rossum
72b56e831f don't return from main loop when error occurs 1995-12-10 04:57:42 +00:00
Guido van Rossum
9d78d8d2fb spell TraceBack with capital B 1995-09-18 21:29:36 +00:00
Guido van Rossum
e3e61c1642 empty kw dict is ok for builtins 1995-08-04 04:14:47 +00:00
Guido van Rossum
0db1ef96ac fix bogus DECREF in finally clause 1995-07-28 23:06:00 +00:00
Guido van Rossum
ff8b494cf0 changes for keyword args to built-in functions and classes 1995-07-26 18:16:42 +00:00
Guido van Rossum
681d79aaf3 keyword arguments and faster calls 1995-07-18 14:51:37 +00:00
Guido van Rossum
f10570b9eb 3rd arg for raise; INCOMPLETE keyword parameter passing (currently f(kw=value) is seen as f('kw', value)) 1995-07-07 22:53:21 +00:00
Guido van Rossum
6f9e433ab3 fix dusty debugging macros 1995-03-29 16:57:48 +00:00
Guido van Rossum
684ed9891b remove unused code for tp_call 1995-03-22 10:09:02 +00:00
Guido van Rossum
8d617a60b1 various tuple related optimizations; remove unused b/w compat code from ceval.c 1995-03-09 12:12:11 +00:00
Guido van Rossum
1d339e8c35 fix bug in try-finally with class exceptions; declare different func pointers for different uses 1995-02-17 15:04:21 +00:00
Guido van Rossum
24c137432c call __import__() with 4 args instead of 1 1995-02-14 09:42:43 +00:00
Guido van Rossum
7f7f274839 use Py_CHARMASK 1995-02-10 17:01:56 +00:00
Guido van Rossum
6b6e0aafe5 DECREF result of run_string 1995-02-07 15:36:56 +00:00
Guido van Rossum
a715299a14 remove unused variable 1995-01-30 12:53:21 +00:00
Guido van Rossum
8bf7c484c1 allow classes as exceptions 1995-01-26 00:41:04 +00:00
Guido van Rossum
1919ca7b28 add missing INCREF in RAISE_EXCEPTION 1995-01-20 16:55:14 +00:00
Guido van Rossum
b4e7e25fe6 different init for __builtins__ 1995-01-17 16:27:25 +00:00
Guido van Rossum
94390ec2a6 use getbuiltins() everywhere, it defaults to getbuiltidict() 1995-01-12 11:37:57 +00:00
Guido van Rossum
6135a87f2b __builtins__ mods (and sys_checkinterval for ceval.c) 1995-01-09 17:53:26 +00:00
Guido van Rossum
06186519e5 Use new instancebinop interface 1995-01-07 12:40:10 +00:00
Guido van Rossum
6d023c98b0 Added 1995 to copyright message.
bltinmodule.c: fixed coerce() nightmare in ternary pow().
modsupport.c (initmodule2): pass METH_FREENAME flag to newmethodobject().
pythonrun.c: move flushline() into and around print_error().
1995-01-04 19:12:13 +00:00
Guido van Rossum
1ae940a587 Lots of changes, most minor (fatal() instead of abort(), use of
err_fetch/err_restore and so on).  But...
NOTE: import.c has been rewritten and all the DL stuff is now in the
new file importdl.c.
1995-01-02 19:04:15 +00:00
Guido van Rossum
69d9eb9f56 replace abort() calls by fatal() 1994-11-10 22:41:15 +00:00
Guido van Rossum
180d7b4d55 * Python/ceval.c, Include/ceval.h: promote MakePendingCalls to
global: Py_MakePendingCalls.  Also guard against recursive calls

	* Include/classobject.h, Objects/classobject.c,
	Python/{ceval.c,bltinmodule.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)
1994-09-29 09:45:57 +00:00