| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
SystemError: bad argument to internal function
caused by comparing NULL pointer default args.
|
|
|
|
| |
in Tk.destroy(), reset _default_root to None when it is us.
|
|
|
|
|
|
| |
Py_DECREF, to reduce the warnings when compiling with reference count
debugging on. (There are still warnings for each call to
_Py_NewReference -- too bad.)
|
| |
|
| |
|
| |
|
|
|
|
| |
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'.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
from the interned table. There are references in hard-to-find static
variables all over the interpreter, and it's not worth trying to get
rid of all those; but "uninterning" isn't fair either and may cause
subtle failures later -- so we have to keep them in the interned
table.
Also get rid of no-longer-needed insert of None in interned dict.
|
|
|
|
| |
few percent speed up. Also add PyCFunction_Fini() to discard it.
|
|
|
|
|
|
|
| |
no valid directory is passed in. This prevents __del__ to fail when
invoked after __builtins__ has already been discarded.
Also add PyFrame_Fini() to discard the cache of frames.
|
|
|
|
| |
percent speed up. Also add PyMethod_Fini() to discard it.
|
|
|
|
|
|
|
| |
In _Py_PrintReferences(), no longer suppress once-referenced string.
Add Py_Malloc and friends and PyMem_Malloc and friends (malloc
wrappers for third parties).
|
| |
|
| |
|
|
|
|
| |
semantics.
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Reset the SIGINT handler when the finalization is invoked.
|
|
|
|
| |
Instead of calling Py_Exit(sts), call Py_Cleanup() and return sts.
|
|
|
|
|
| |
-- the thread state is passed in as an argument and the builtins are a
member thereof.
|
|
|
|
| |
strings. For use in Py_Finalize() only.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce truly separate (sub)interpreter objects. For now, these
must be used by separate threads, created from C. See Demo/pysvr for
an example of how to use this. This also rationalizes Python's
initialization and finalization behavior:
Py_Initialize() -- initialize the whole interpreter
Py_Finalize() -- finalize the whole interpreter
tstate = Py_NewInterpreter() -- create a new (sub)interpreter
Py_EndInterpreter(tstate) -- delete a new (sub)interpreter
There are also new interfaces relating to threads and the interpreter
lock, which can be used to create new threads, and sometimes have to
be used to manipulate the interpreter lock when creating or deleting
sub-interpreters. These are only defined when WITH_THREAD is defined:
PyEval_AcquireLock() -- acquire the interpreter lock
PyEval_ReleaseLock() -- release the interpreter lock
PyEval_AcquireThread(tstate) -- acquire the lock and make the thread current
PyEval_ReleaseThread(tstate) -- release the lock and make NULL current
Other administrative changes:
- The header file bltinmodule.h is deleted.
- The init functions for Import, Sys and Builtin are now internal and
declared in pythonrun.h.
- Py_Setup() and Py_Cleanup() are no longer declared.
- The interpreter state and thread state structures are now linked
together in a chain (the chain of interpreters is a static variable
in pythonrun.c).
- Some members of the interpreter and thread structures have new,
shorter, more consistent, names.
- Added declarations for _PyImport_{Find,Fixup}Extension() to import.h.
|
| |
|
| |
|
|
|
|
|
| |
PURIFY (e.g. in the Setup file or on the make command line) to point
to the purify command, to run purify.
|
|
|
|
|
|
|
|
|
|
| |
Even less shuffling of stdout (only at start of new interpreter).
Interact properly with new interpreter initialization conventions
(must use Py_Initialize/Py_Finalize *and*
Py_NewInterpreter/Py_EndInterpreter).
Probably more minor changes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
while one thread is blocked in mainloop(). Also, handle signals (not
just interrupts) as soon as they happen.
Cleanup: remove support for Tcl/Tk versions 7.4/4.0. (I've confirmed
that it works for 7.5/4.1 and 7.6/4.2, as well as 8.0b2.)
Coding style change: instead of ``func (args)'', write ``func(args)''
everywhere.
Minor functionality change: use PyArg_ParseTuple everywhere. This
should only affect the errors reported for bad argument lists; in
particular, deletefilehandler() is much clearer about what's going
on.
(XXX Still to do: Mac and Win ports to 8.0b2.)
|
| |
|
| |
|
|
|
|
|
| |
class has a __class__ attribute, call that to create the new class.
This allows us to write metaclasses purely in C!
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
interactive EOF, which leaked *one* byte).
|
|
|
|
| |
to free lnotab).
|
|
|
|
|
| |
A dummy getbuildno.o (with a number of 0) still gets built here,
to make the library complete.
|
|
|
|
|
|
| |
python executable is built. (It still won't reflect builds of the
library only, but since the default make target builds the python
executable, that's alright.)
|
| |
|
|
|
|
|
|
| |
order of the variables in the declarations).
Also removed an entry in the TODO list that's done.
|
|
|
|
|
|
|
|
| |
the comma after the day name is optional if it is a recognized day
name; and the date and month may be swapped. Thus, the following two
test dates will now be parsed correctly:
Thu, Feb 13 12:16:57 1992
Thu Feb 13 12:16:57 1992
|
| |
|
| |
|
|
|
|
|
| |
have to do that one!), but at least the version will match the release
version. (1.5a2 got skipped for this.)
|