| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
functions.
|
|
|
|
|
|
|
|
|
|
|
|
| |
scheme based on object's types, have a simple two-phase scheme based
on object's *names*:
/* To make the execution order of destructors for global
objects a bit more predictable, we first zap all objects
whose name starts with a single underscore, before we clear
the entire dictionary. We zap them by replacing them with
None, rather than deleting them from the dictionary, to
avoid rehashing the dictionary (to some extent). */
|
|
|
|
| |
'Py_Cleanup' back to 'cleanup'.
|
|
|
|
|
|
|
| |
Everything should now work again.
See the comments for the .h files mass checkin (e.g. pystate.h) for
more detail.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Py_Initmodule(), which is a macro wrapper around it).
The return value is now a NULL pointer if the initialization failed.
This may make old modules fail with a SEGFAULT, since they don't
expect this kind of failure. That's OK, since (a) it "never" happens,
and (b) they would fail with a fatal error otherwise, anyway.
Tons of extension modules should now check the return value of
Py_Initmodule*() -- that's on my TODO list.
|
|
|
|
|
| |
class has a __class__ attribute, call that to create the new class.
This allows us to write metaclasses purely in C!
|
|
|
|
| |
to free lnotab).
|
|
|
|
|
|
| |
order of the variables in the declarations).
Also removed an entry in the TODO list that's done.
|
|
|
|
|
|
|
|
| |
importdl.c: the MAXSUFFIXSIZE macro is now defined in importdl.h, and
the modules dictionary is now passed using PyImport_GetModuleDict().
Also undefine USE_SHLIB for AIX -- in AIX 4.2 and up, dlfcn.h exists
but we don't want to use it.
|
|
|
|
| |
with entry point Py_FrozenMain().
|
| |
|
|
|
|
|
|
| |
WITH_THREAD as PyEval_InitThreads().
Removed use of Py_SuppressPrintingFlag.
|
|
|
|
| |
properly declared in Python.h.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
- Got rid of inspection of some environment variables.
- Got rid of Py_GetProgramName() and related logic.
- Print the version header *after* successful initialization.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for more!).
- The global flags that can be set from environment variables are now
set in Py_Initialize (except the silly Py_SuppressPrint, which no
longer exists). This saves duplicate code in frozenmain.c and main.c.
- Py_GetProgramName() is now here; added Py_SetProgramName(). An
embedding program should no longer provide Py_GetProgramName(),
instead it should call Py_SetProgramName() *before* calling
Py_Initialize().
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PyThreadState pointer instead of a (frame) PyObject pointer. This
makes much more sense. It is backward incompatible, but that's no
problem, because (a) the heaviest users are the Py_{BEGIN,END}_
ALLOW_THREADS macros here, which have been fixed too; (b) there are
very few direct users; (c) those who use it are there will probably
appreciate the change.
Also, added new functions PyEval_AcquireThread() and
PyEval_ReleaseThread() which allows the threads created by the thread
module as well threads created by others (!) to set/reset the current
thread, and at the same time acquire/release the interpreter lock.
Much saner.
|
|
|
|
|
|
|
| |
int+int, int-int, int <compareop> int, and list[int].
(Unfortunately, int*int is way too much code to inline.)
Also corrected a NULL that should have been a zero.
|
|
|
|
|
|
|
|
|
| |
replaces its own entry in sys.module, reference count errors ensue;
even if there is no reference count problem, it would be preferable
for the import to yield the new thing in sys.modules anyway (if only
because that's what later imports will yield). This opens the road to
an official hack to implement a __getattr__ like feature for modules:
stick an instance in sys.modules[__name__].
|
|
|
|
|
|
| |
have a unique name, otherwise they get squished by locals2fast (or
fast2locals, I dunno) when the debugger is invoked before they have
been transferred to real locals.
|
|
|
|
| |
system specific #ifdefs.
|
| |
|
| |
|
|
|
|
| |
PyErr_Clear(). Add checking of those errors.
|
|
|
|
| |
instead of calling PyErr_Clear(). Add checking of those errors.
|
|
|
|
| |
instead of calling PyErr_Clear(). Add checking of those errors.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Also delay DECREF calls until after the structures have been updated
(for reentrancy awareness).
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
symbols is needed, define these in Python.h with a Py_ prefix.
|
|
|
|
|
|
| |
- uses abstract interface where possible
- uses __members__ and __methods__
- returns [] when an object has no info available
|
|
|
|
| |
not to use kill().
|
|
|
|
|
|
| |
get/set/del item). This removes a pile of duplication. There's no
abstract operator for 'not' but I removed the function call for it
anyway -- it's a little faster in-line.
|
|
|
|
| |
Not really checked, but didn't fail any tests either...
|
|
|
|
| |
(Redoing the checking without merging in Jack's buffer mods.)
|