Commit Graph

5953 Commits

Author SHA1 Message Date
Guido van Rossum
fb84255e67 New version of Vladimir Marangozov's AIX hacks -- simpler etc. 1997-08-06 23:42:07 +00:00
Guido van Rossum
b06df27843 --with-readline is obsolete (and some editorial stuff in README) 1997-08-05 21:50:20 +00:00
Guido van Rossum
3c7c678b94 Got rid of --with-readline, at last. 1997-08-05 21:47:42 +00:00
Guido van Rossum
9b5dbedf43 Attempt to import readline at interactive startup. 1997-08-05 21:34:14 +00:00
Guido van Rossum
717c6f95be Move GNU readline interface to ../Modules/readline.c.
Add Py_input_hook (used by _tkinter and perhaps Gist).
1997-08-05 21:28:12 +00:00
Guido van Rossum
0969d36275 New mechanism for GNU readline interface, via module 1997-08-05 21:27:50 +00:00
Guido van Rossum
570278be6e Add test for function comparisons 1997-08-05 16:52:50 +00:00
Guido van Rossum
83f9ad8399 Fix bug in comparing function objects detected by Sjoerd:
SystemError: bad argument to internal function

caused by comparing NULL pointer default args.
1997-08-05 16:51:05 +00:00
Guido van Rossum
d6615ab30c Get READABLE c.s. from _tkinter instead of conditional definition.
in Tk.destroy(), reset _default_root to None when it is us.
1997-08-05 02:35:01 +00:00
Guido van Rossum
1d529d1ecd Add a cast to the call to _Py_Dealloc in the expanded version of
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.)
1997-08-05 02:30:44 +00:00
Guido van Rossum
7f400be210 Add pointer to new BSDDB module. 1997-08-05 02:25:24 +00:00
Guido van Rossum
668e441a86 purported linux portability patch (Oliver Andrich) 1997-08-05 02:24:57 +00:00
Guido van Rossum
5d1770ee24 Py_Cleanup() is now Py_Finalize(). 1997-08-05 02:23:48 +00:00
Guido van Rossum
cc283f56a7 Merge Py_Cleanup() into Py_Finalize(). Call the various small Fini()
functions.
1997-08-05 02:22:03 +00:00
Guido van Rossum
085d269f1d New rules for deleting modules. Rather than having an elaborate
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). */
1997-08-05 02:20:51 +00:00
Guido van Rossum
f9c90c533e Renamed a local label that was accidentally grandly renamed to
'Py_Cleanup' back to 'cleanup'.
1997-08-05 02:18:01 +00:00
Guido van Rossum
fbbd57e4ca Added _Fini() routines to free up some memory 1997-08-05 02:16:08 +00:00
Guido van Rossum
971a7aaeac Change the Fini function to only remove otherwise unreferenced strings
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.
1997-08-05 02:15:12 +00:00
Guido van Rossum
1f39c5c666 Added separate free list for cfunction (builtin method) objects, for a
few percent speed up.  Also add PyCFunction_Fini() to discard it.
1997-08-05 02:11:41 +00:00
Guido van Rossum
404b95d9ba Provide a dummy empty directory as f_builtins instead of failing, when
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.
1997-08-05 02:09:46 +00:00
Guido van Rossum
a0d349f46a Added separate free list for instance method objects, for a few
percent speed up.  Also add PyMethod_Fini() to discard it.
1997-08-05 02:06:53 +00:00
Guido van Rossum
e09fb55f29 Added _Py_ResetReferences(), if tracing references.
In _Py_PrintReferences(), no longer suppress once-referenced string.

Add Py_Malloc and friends and PyMem_Malloc and friends (malloc
wrappers for third parties).
1997-08-05 02:04:34 +00:00
Guido van Rossum
d085e88d3c Added Py_Malloc and friends as well as PyMem_Malloc and friends. 1997-08-05 01:59:22 +00:00
Guido van Rossum
5c159bd855 Plug memory leak (DECREF doc string properly after inserting in dict). 1997-08-04 23:55:25 +00:00
Guido van Rossum
7995ed204a The reload(sys) test no longer works due to changes in the import
semantics.
1997-08-02 03:19:26 +00:00
Guido van Rossum
b02158efa3 Oops, one more checkin. Use the new tstate/interp interface. 1997-08-02 03:13:11 +00:00
Guido van Rossum
25ce566661 The last of the mass checkins for separate (sub)interpreters.
Everything should now work again.

See the comments for the .h files mass checkin (e.g. pystate.h) for
more detail.
1997-08-02 03:10:38 +00:00
Guido van Rossum
40b33c648a Removed fatal errors from Py_Initmodule4() (and thus from
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.
1997-08-02 03:07:46 +00:00
Guido van Rossum
aee094cc60 Added finalization routines. 1997-08-02 03:02:27 +00:00
Guido van Rossum
08c166152e Add finialization routines; fixed some memory leaks related to this.
Reset the SIGINT handler when the finalization is invoked.
1997-08-02 03:01:42 +00:00
Guido van Rossum
05f7c50bfd Free the malloc'ed buffer that holds the command once we're done with it.
Instead of calling Py_Exit(sts), call Py_Cleanup() and return sts.
1997-08-02 03:00:42 +00:00
Guido van Rossum
eb46d67ce5 Avoid function calls to access the current thread state and builtins
-- the thread state is passed in as an argument and the builtins are a
member thereof.
1997-08-02 02:59:08 +00:00
Guido van Rossum
8cf0476474 Added internal routine PyString_Fini() which deletes all interned
strings.  For use in Py_Finalize() only.
1997-08-02 02:57:45 +00:00
Guido van Rossum
29e46a9a12 Mass checkin (more to follow for other directories).
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.
1997-08-02 02:56:48 +00:00
Guido van Rossum
7a2d6112d9 Add cast to PyInt_AS_LONG macro, as suggested by Marc Lemburg. 1997-08-02 02:41:13 +00:00
Guido van Rossum
2981bc7a65 Add cast to PyFloat_AS_DOUBLE macro, as suggested by Marc Lemburg. 1997-08-02 02:40:58 +00:00
Guido van Rossum
d0924f4585 Add a simple way to enable purify; now you can set the Make variable
PURIFY (e.g. in the Setup file or on the make command line) to point
to the purify command, to run purify.
1997-08-02 02:06:20 +00:00
Guido van Rossum
c46d22e52e Print ps (process status) for us when starting a new thread.
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.
1997-08-02 02:02:22 +00:00
Guido van Rossum
35d43377b4 Functionality enhancement: allow other threads to use Tk commands
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.)
1997-08-02 00:09:09 +00:00
Guido van Rossum
3e819a7aa8 Compatibility with Tcl/Tk 8.0b*. 1997-08-01 19:29:02 +00:00
Guido van Rossum
f4e32c729b Add definitions for symbolic constants LOCK_{EX,NB,SH,UN}. 1997-07-31 19:39:54 +00:00
Guido van Rossum
55b9ab5bdb Extend the "Don Beaudry hack" with "Guido's corollary" -- if the base
class has a __class__ attribute, call that to create the new class.
This allows us to write metaclasses purely in C!
1997-07-31 03:54:02 +00:00
Guido van Rossum
fd16ca4542 Added mimify docs (Sjoerd). 1997-07-30 22:05:07 +00:00
Guido van Rossum
74d25e7d8a Mention decode_base64 in example. 1997-07-30 22:02:28 +00:00
Fred Drake
bc0cd37fe2 l2h target: l2htut was listed twice and l2hapi was skipped. Fixed. 1997-07-30 15:59:25 +00:00
Jack Jansen
5e0625762e Final set of CW11 projects, before switch to CW Pro 1. 1997-07-28 13:04:22 +00:00
Guido van Rossum
ff0ec52d3c Finally plug the memory leak caused by syntax error (including
interactive EOF, which leaked *one* byte).
1997-07-27 01:52:50 +00:00
Guido van Rossum
6fc06e770f Plugged a leak. (The same as the one plugged in compile.c -- forgot
to free lnotab).
1997-07-26 23:30:18 +00:00
Guido van Rossum
5ec8e4b5ff Moved the special compile of getbuildno.o to ../Makefile.in.
A dummy getbuildno.o (with a number of 0) still gets built here,
to make the library complete.
1997-07-25 22:35:24 +00:00
Guido van Rossum
1eec528d5e Build getbuildno.o here, to adequately update it every time a new
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.)
1997-07-25 22:34:08 +00:00