Victor Stinner
365b693adc
Issue #18408 : ceval.c: in debug mode, convert the PyErr_Occurred() check on
exception (when getting NULL) to an assertion to detect bugs earlier
13 years ago
Victor Stinner
aaa8ed8b84
Issue #18408 : Fix call_exc_trace(): if the traceback is NULL, use None when
building the tuple (type, value, traceback) passed to the callback.
PyTuple_Pack() does crash if an argument is NULL.
13 years ago
Victor Stinner
0ff0f54dd4
Issue #18408 : Fix call_function() of ceval.c to handle PyTuple_New() failure
(in load_args()), ex: MemoryError.
13 years ago
Brett Cannon
679ecb565b
Issue #15767 : back out 8a0ed9f63c6e, finishing the removal of
ModuleNotFoundError.
13 years ago
Brett Cannon
b1611e2772
Issue #15767 : Introduce ModuleNotFoundError, a subclass of
ImportError.
The exception is raised by import when a module could not be found.
Technically this is defined as no viable loader could be found for the
specified module. This includes ``from ... import`` statements so that
the module usage is consistent for all situations where import
couldn't find what was requested.
This should allow for the common idiom of::
try:
import something
except ImportError:
pass
to be updated to using ModuleNotFoundError and not accidentally mask
ImportError messages that should propagate (e.g. issues with a
loader).
This work was driven by the fact that the ``from ... import``
statement needed to be able to tell the difference between an
ImportError that simply couldn't find a module (and thus silence the
exception so that ceval can raise it) and an ImportError that
represented an actual problem.
13 years ago
Victor Stinner
d3dfd0e433
Fix a compilater warning on Windows 64-bit
idx variable is used for a tuple indexn so use Py_ssize_t (not int).
13 years ago
Benjamin Peterson
e8e14591eb
rather than passing locals to the class body, just execute the class body in the proper environment
13 years ago
Benjamin Peterson
e1b4cbc422
when arguments are cells clear the locals slot (backport of #17927 )
13 years ago
Benjamin Peterson
159ae41da6
when an argument is a cell, set the local copy to NULL (see #17927 )
13 years ago
Guido van Rossum
6832c81d5d
#17927 : Keep frame from referencing cell-ified arguments.
13 years ago
Antoine Pitrou
8408cea0cd
Issue #17094 : Clear stale thread states after fork().
Note that this is a potentially disruptive change since it may
release some system resources which would otherwise remain
perpetually alive (e.g. database connections kept in thread-local
storage).
13 years ago
Benjamin Peterson
3b0431dc60
check local class namespace before reaching for cells ( closes #17853 )
13 years ago
R David Murray
3583761bcd
#17413 : make sure settrace funcs get passed exception instances for 'value'.
Patch by Ingrid Cheung and Brendan McLoughlin.
13 years ago
Ezio Melotti
04a29554c1
#17032 : The "global" in the "NameError: global name 'x' is not defined" error message has been removed. Patch by Ram Rachum.
13 years ago
Benjamin Peterson
1ef876cd28
evaluate positional defaults before keyword-only defaults ( closes #16967 )
13 years ago
Benjamin Peterson
51f4616f6e
revert #16672 for incorrect semantics
13 years ago
Benjamin Peterson
6f0c94df50
improve tracing performance when f_trace is NULL ( closes #16672 )
Patch by Xavier de Gaye.
13 years ago
Benjamin Peterson
9272279afd
use error label instead of breaking eval loop ( closes #16693 )
13 years ago
Benjamin Peterson
fe1bcb64cd
move more variable declarations to the top of blocks
13 years ago
Benjamin Peterson
f208df3618
move declaration to top of block
13 years ago
Benjamin Peterson
31a58ff1c3
ceval cleanup
- Make many variables local to the opcode; Kill u, v, w, and x.
- Force every opcode to end with DISPATCH or jump to error handling.
- Simplify error handling.
- Check error statuses in more places.
Closes #16191 .
13 years ago
Benjamin Peterson
00f86f2202
add some missing DISPATCH()
13 years ago
Benjamin Peterson
b37df519c7
fix yield from return value on custom iterators ( closes #15568 )
14 years ago
Nick Coghlan
c40bc09942
Issue #13783 : the PEP 380 implementation no longer expands the public C API
14 years ago
Benjamin Peterson
d1ab6089ff
check return for error
14 years ago
Benjamin Peterson
d5a1c44455
PEP 415: Implement suppression of __context__ display with an exception attribute
This replaces the original PEP 409 implementation. See #14133 .
14 years ago
Benjamin Peterson
1138944888
only incref when using borrowing functions
14 years ago
Benjamin Peterson
7d95e40721
Implement PEP 412: Key-sharing dictionaries ( closes #13903 )
Patch from Mark Shannon.
14 years ago
Antoine Pitrou
bf35c156b4
Fix refleak: PyObject_GetItem returns a new reference, not a borrowed one like PyDict_GetItem.
14 years ago
Victor Stinner
b0b224233e
Issue #14385 : Support other types than dict for __builtins__
It is now possible to use a custom type for the __builtins__ namespace, instead
of a dict. It can be used for sandboxing for example. Raise also a NameError
instead of ImportError if __build_class__ name if not found in __builtins__.
14 years ago
Brett Cannon
368b4b7405
Guard an LLTRACE variable to silence an unused variable warning.
14 years ago
Victor Stinner
3c1e48176e
Issue #14383 : Add _PyDict_GetItemId() and _PyDict_SetItemId() functions
These functions simplify the usage of static constant Unicode strings.
Generalize the usage of _Py_Identifier in ceval.c and typeobject.c.
14 years ago
Benjamin Peterson
302e7902c8
use identifier api
14 years ago
Benjamin Peterson
2afe6aeae8
perform yield from delegation by repeating YIELD_FROM opcode ( closes #14230 )
This allows generators that are using yield from to be seen by debuggers. It
also kills the f_yieldfrom field on frame objects.
Patch mostly from Mark Shannon with a few tweaks by me.
14 years ago
Nick Coghlan
ab7bf2143e
Close issue #6210 : Implement PEP 409
14 years ago
Benjamin Peterson
ce79852077
use the static identifier api for looking up special methods
I had to move the static identifier code from unicodeobject.h to object.h in
order for this to work.
14 years ago
Amaury Forgeot d'Arc
0a239e9191
Fix compilation with C89 compilers (Windows...)
14 years ago
Benjamin Peterson
0296a56520
NULL and no exception set from tp_iternext means StopIteration
14 years ago
Nick Coghlan
1f7ce62bd6
Implement PEP 380 - 'yield from' ( closes #11682 )
14 years ago
Antoine Pitrou
86a36b500a
PEP 3155 / issue #13448 : Qualified name for classes and functions.
14 years ago
Martin v. Löwis
1c67dd9b15
Port SetAttrString/HasAttrString to SetAttrId/GetAttrId.
14 years ago
Martin v. Löwis
bd928fef42
Rename _Py_identifier to _Py_IDENTIFIER.
14 years ago
Martin v. Löwis
afe55bba33
Add API for static strings, primarily good for identifiers.
Thanks to Konrad Schöbel and Jasper Schulz for helping with the mass-editing.
14 years ago
Victor Stinner
d2a915dbf6
ceval.c: restore str+=str optimization
14 years ago
Benjamin Peterson
811c2f1369
remove "fast-path" for (i)adding strings
These were just an artifact of the old unicode concatenation hack and likely
just penalized other kinds of adding. Also, this fixes __(i)add__ on string
subclasses.
14 years ago
Victor Stinner
bec0fda264
Remove commented code: str+=str is no more super-optimized
14 years ago
Martin v. Löwis
d63a3b8beb
Implement PEP 393.
14 years ago
Charles-François Natali
f23339a7bb
Issue 12620: Make pendingbusy flag static to Py_MakePendingCalls().
15 years ago
Benjamin Peterson
76f7f4d979
excise the remains of STOP_CODE, which hasn't done anything useful for years
15 years ago
Benjamin Peterson
5afa03a72e
catch nasty exception classes with __new__ that doesn't return a exception ( closes #11627 )
Patch from Andreas Stührk.
15 years ago