summaryrefslogtreecommitdiffstats
path: root/Python/ceval.c
Commit message (Collapse)AuthorAgeFilesLines
* REMOVED all CWI, CNRI and BeOpen copyright markings.Guido van Rossum2000-09-011-9/+0
| | | | This should match the situation in the 1.6b1 tree.
* Cosmetics on Py_Get/SetRecursionLimit (for the style guide)Vladimir Marangozov2000-09-011-2/+4
|
* Revert removal of void from function definition. Guido sez I can take itTim Peters2000-09-011-1/+1
| | | | | out again after we complete switching to C++ <wink>. Thanks to Greg Stein for hitting me.
* Set the recursion limit to 1000 -- 2500 was not enough, let's beGuido van Rossum2000-09-011-1/+1
| | | | conservative.
* Supply missing prototypes for new Py_{Get,Set}RecursionLimit; fixes compiler ↵Tim Peters2000-09-011-1/+1
| | | | | | | wngs; un-analize Get's definition ("void" is needed only in declarations, not defns, & is generally considered bad style in the latter).
* add user-modifiable recursion_limitJeremy Hylton2000-08-311-5/+15
| | | | | | | | | | | ceval.c: define recurion_limit (static), default value is 2500 define Py_GetRecursionLimit and Py_SetRecursionLimit raise RuntimeError if limit is exceeded PC/config.h: remove plat-specific definition sysmodule.c: add sys.(get|set)recursionlimit
* Better error message with UnboundLocalErrorPaul Prescod2000-08-301-11/+39
|
* eval_code2(): Guido provides this patch for his suggested elaborationBarry Warsaw2000-08-291-2/+2
| | | | | of extended print. If the file object being printed to is None, then sys.stdout is used.
* Replace the run-time 'future-bytecode-stream-inspection' hack to find outThomas Wouters2000-08-271-55/+1
| | | | | | | how 'import' was called with a compiletime mechanism: create either a tuple of the import arguments, or None (in the case of a normal import), add it to the code-block constants, and load it onto the stack before calling IMPORT_NAME.
* Charles Waldman's patch to reinitialize the interpreter lock after aGuido van Rossum2000-08-271-0/+19
| | | | | | | fork. This solves the test_fork1 problem. (ceval.c, signalmodule.c, intrcheck.c) SourceForge: [ Patch #101226 ] make threading fork-safe
* Support for three-token characters (**=, >>=, <<=) which was written byThomas Wouters2000-08-241-4/+201
| | | | | Michael Hudson, and support in general for the augmented assignment syntax. The graminit.c patch is large!
* Charles G. Waldman <cgw@fnal.gov>:Fred Drake2000-08-241-0/+6
| | | | | | | | | Add the EXTENDED_ARG opcode to the virtual machine, allowing 32-bit arguments to opcodes instead of being forced to stick to the 16-bit limit. This is especially useful for machine-generated code, which can be too long for the SET_LINENO parameter to fit into 16 bits. This closes the implementation portion of SourceForge patch #100893.
* PEP 214, Extended print Statement, has been accepted by the BDFL.Barry Warsaw2000-08-211-16/+33
| | | | | | | eval_code2(): Implement new bytecodes PRINT_ITEM_TO and PRINT_NEWLINE_TO, as per accepted SF patch #100970. Also update graminit.c based on related Grammar/Grammar changes.
* Fix the bug Sjoerd Mullender discovered, where find_from_args() wasn'tThomas Wouters2000-08-201-1/+3
| | | | | | | | | | trying hard enough to find out what the arguments to an import were. There is no test-case for this bug, yet, but this is what it looked like: from encodings import cp1006, cp1026 ImportError: cannot import name cp1026 '__import__' was called with only the first name in the 'arguments' list.
* Remove a couple of warnings turned up by "gcc -Wall".Fred Drake2000-08-181-1/+2
|
* Apply SF patch #101135, adding 'import module as m' and 'from module importThomas Wouters2000-08-171-43/+70
| | | | | | | | name as n'. By doing some twists and turns, "as" is not a reserved word. There is a slight change in semantics for 'from module import name' (it will now honour the 'global' keyword) but only in cases that are explicitly undocumented.
* Merge UNPACK_LIST and UNPACK_TUPLE into a single UNPACK_SEQUENCE, since theyThomas Wouters2000-08-111-2/+1
| | | | | | | did the same anyway. I'm not sure what to do with Tools/compiler/compiler/* -- that isn't part of distutils, is it ? Should it try to be compatible with old bytecode version ?
* Initialized opcode and oparg to silence a gcc -Wall warning.Moshe Zadka2000-08-071-2/+2
|
* Use 'void' directly instead of the ANY #define, now that all code is ANSI C.Thomas Wouters2000-07-251-5/+5
| | | | Leave the actual #define in for API compatibility.
* Mass ANSIfication of function definitions. Doesn't cover all 'extern'Thomas Wouters2000-07-221-112/+49
| | | | declarations yet, those come later.
* Spelling fixes supplied by Rob W. W. Hooft. All these are fixes in eitherThomas Wouters2000-07-161-1/+1
| | | | | | | | | | comments, docstrings or error messages. I fixed two minor things in test_winreg.py ("didn't" -> "Didn't" and "Didnt" -> "Didn't"). There is a minor style issue involved: Guido seems to have preferred English grammar (behaviour, honour) in a couple places. This patch changes that to American, which is the more prominent style in the source. I prefer English myself, so if English is preferred, I'd be happy to supply a patch myself ;)
* Include macglue.h for some function prototypes, and renamed a fewJack Jansen2000-07-111-0/+4
| | | | mac-specific functions to have a PyMac_ name.
* Nuke all remaining occurrences of Py_PROTO and Py_FPROTO.Tim Peters2000-07-091-31/+29
|
* Change copyright notice - 2nd try.Guido van Rossum2000-06-301-6/+0
|
* Change copyright notice.Guido van Rossum2000-06-301-22/+7
|
* Trent Mick's Win64 changes: size_t vs. int or long; also some overflowGuido van Rossum2000-06-281-1/+1
| | | | tests.
* Trent Mick:Guido van Rossum2000-05-081-11/+14
| | | | | Change static slice_index() to extern _PyEval_SliceIndex() (with different return value interpretation: 0 for failure, 1 for success).
* Add useless 'return 1' to prtrace() to shut up VC++.Guido van Rossum2000-05-041-0/+1
|
* Vladimir Marangozov's long-awaited malloc restructuring.Guido van Rossum2000-05-031-1/+2
| | | | | | | | | | For more comments, read the patches@python.org archives. For documentation read the comments in mymalloc.h and objimpl.h. (This is not exactly what Vladimir posted to the patches list; I've made a few changes, and Vladimir sent me a fix in private email for a problem that only occurs in debug mode. I'm also holding back on his change to main.c, which seems unnecessary to me.)
* Charles Waldman writes:Guido van Rossum2000-04-211-14/+13
| | | | | | | | | | | | | | | | | | | | | | | | | """ Running "test_extcall" repeatedly results in memory leaks. One of these can't be fixed (at least not easily!), it happens since this code: def saboteur(**kw): kw['x'] = locals() d = {} saboteur(a=1, **d) creates a circular reference - d['x']['d']==d The others are due to some missing decrefs in ceval.c, fixed by the patch attached below. Note: I originally wrote this without the "goto", just adding the missing decref's where needed. But I think the goto is justified in keeping the executable code size of ceval as small as possible. """ [I think the circular reference is more like kw['x']['kw'] == kw. --GvR]
* Skip Montanaro: add string precisions to calls to PyErr_FormatGuido van Rossum2000-04-101-1/+1
| | | | to prevent possible buffer overruns.
* Thomas Heller fixes a typo in an error message.Guido van Rossum2000-03-311-1/+1
|
* rename args variable in CALL_FUNCTION to callargs (avoids nameJeremy Hylton2000-03-311-8/+11
| | | | | | override) add missing DECREFs in error handling code of CALL_FUNCTION
* Two fixes for extended call syntax:Jeremy Hylton2000-03-301-12/+21
| | | | | | | If a non-tuple sequence is passed as the *arg, convert it to a tuple before checking its length. If named keyword arguments are used in combination with **kwargs, make a copy of kwargs before inserting the new keys.
* eval_code2(): Oops, in the last checkin, we shouldn't check forBarry Warsaw2000-03-291-6/+2
| | | | | PyErr_Occurred(), just set x=NULL and break. Oh, and make Jeremy stop nagging me about the "special" indentation for this block.
* eval_code2(): In the extended calling syntax opcodes, you must checkBarry Warsaw2000-03-291-0/+8
| | | | | | the return value of PySequence_Length(). If an exception occurred, the returned length will be -1. Make sure this doesn't get obscurred, and that the bogus length isn't used.
* slightly modified version of Greg Ewing's extended call syntax patchJeremy Hylton2000-03-281-119/+160
| | | | | | | | | | | | | | | | | | | | | | | executive summary: Instead of typing 'apply(f, args, kwargs)' you can type 'f(*arg, **kwargs)'. Some file-by-file details follow. Grammar/Grammar: simplify varargslist, replacing '*' '*' with '**' add * & ** options to arglist Include/opcode.h & Lib/dis.py: define three new opcodes CALL_FUNCTION_VAR CALL_FUNCTION_KW CALL_FUNCTION_VAR_KW Python/ceval.c: extend TypeError "keyword parameter redefined" message to include the name of the offending keyword reindent CALL_FUNCTION using four spaces add handling of sequences and dictionaries using extend calls fix function import_from to use PyErr_Format
* Allow using long integers as slice indexesAndrew M. Kuchling2000-02-231-2/+34
|
* Remove comment that Guido agree's doesn't make sense:Fred Drake2000-02-211-2/+0
| | | | | PyEval_EvalCode() is *not* a "backward compatible interface", it's the one to use!
* Fix a bug in exec_statement() noted incidentally by Tim Peters inGuido van Rossum2000-01-121-20/+13
| | | | | | | | | PR#175 -- when exec is passed a code object, it didn't sync the locals from the dictionary back into their fast representation. Also took the time to remove some repetitive code there and to do the syncing even when an exception is raised (since a partial effect should still be synced).
* Change the last PyErr_Format %s format to %.400s.Guido van Rossum1999-11-151-1/+1
|
* Fix PR117. The error message is "keywords must be strings". PerhapsGuido van Rossum1999-10-261-0/+5
| | | | | | | | not as descriptive as what Barry suggests, but this also catches the (in my opinion important) case where some other C code besides apply() constructs a kwdict that doesn't have the right format. All the other possibilities of getting it wrong (non-dict, wrong keywords etc) are already caught so this makes sense to check here.
* call_trace(): A fix for PR#73, if an exception occurred in theBarry Warsaw1999-09-081-0/+8
| | | | | | tracefunc (or profilefunc -- we're not sure which), zap the global trace and profile funcs so that we can't get into recursive loop when instantiating the resulting class based exception.
* Patch by Tim Peters:Guido van Rossum1999-06-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce a new builtin exception, UnboundLocalError, raised when ceval.c tries to retrieve or delete a local name that isn't bound to a value. Currently raises NameError, which makes this behavior a FAQ since the same error is raised for "missing" global names too: when the user has a global of the same name as the unbound local, NameError makes no sense to them. Even in the absence of shadowing, knowing whether a bogus name is local or global is a real aid to quick understanding. Example: D:\src\PCbuild>type local.py x = 42 def f(): print x x = 13 return x f() D:\src\PCbuild>python local.py Traceback (innermost last): File "local.py", line 8, in ? f() File "local.py", line 4, in f print x UnboundLocalError: x D:\src\PCbuild> Note that UnboundLocalError is a subclass of NameError, for compatibility with existing class-exception code that may be trying to catch this as a NameError. Unfortunately, I see no way to make this wholly compatible with -X (see comments in bltinmodule.c): under -X, [UnboundLocalError is an alias for NameError --GvR]. [The ceval.c patch differs slightly from the second version that Tim submitted; I decided not to raise UnboundLocalError for DELETE_NAME, only for DELETE_LOCAL. DELETE_NAME is only generated at the module level, and since at that level a NameError is raised for referencing an undefined name, it should also be raised for deleting one.]
* Changes by Mark Hammond for Windows CE. Mostly of the formGuido van Rossum1999-04-071-0/+2
| | | | #ifdef DONT_HAVE_header_H ... #endif around #include <header.h>.
* Always test for an error return (usually NULL or -1) without settingGuido van Rossum1999-03-091-3/+4
| | | | an exception.
* Thanks to Chris Herborth, the thread primitives now have proper Py*Guido van Rossum1998-12-211-13/+13
| | | | | names in the source code (they already had those for the linker, through some smart macros; but the source still had the old, un-Py names).
* Use PyThreadState_GET() macro.Guido van Rossum1998-12-211-1/+1
|
* Use PyInt_AS_LONG macro instead of explicit inlining.Guido van Rossum1998-12-041-6/+6
|
* Whoops! One the "redundant" initializations removed by Vladimir inGuido van Rossum1998-11-231-2/+2
| | | | | the previous patch wasn't -- there was a path through the code that bypassed all initializations. Thanks to Just for reporting the bug!