Commit Graph

389 Commits

Author SHA1 Message Date
Guido van Rossum d7ed683a7e Inline PyObject_CallObject (Marc-Andre Lemburg). 1997-08-30 15:02:50 +00:00
Guido van Rossum 3d90af967d Added NoSite flag. 1997-08-29 22:34:00 +00:00
Barry Warsaw d5a0ff972d Added extern definition for -X flag variable. 1997-08-29 22:01:11 +00:00
Barry Warsaw 0596c2ac28 Declarations for two phase initialization and finalization functions
for the built-in module.
1997-08-29 21:57:07 +00:00
Barry Warsaw 392d8272bf Added externs for three new exceptions PyExc_StandardError,
PyExc_NumberError, and PyExc_LookupError.  Also added extern for
pre-instantiated exception instance PyExc_MemoryErrorInst.

Removed extern of obsolete exception PyExc_AccessError.
1997-08-29 21:56:07 +00:00
Barry Warsaw c0dc92af7d Three new C API functions:
- int PyErr_GivenExceptionMatches(obj1, obj2)

  Returns 1 if obj1 and obj2 are the same object, or if obj1 is an
  instance of type obj2, or of a class derived from obj2

- int PyErr_ExceptionMatches(obj)

  Higher level wrapper around PyErr_GivenExceptionMatches() which uses
  PyErr_Occurred() as obj1.  This will be the more commonly called
  function.

- void PyErr_NormalizeException(typeptr, valptr, tbptr)

  Normalizes exceptions, and places the normalized values in the
  arguments.  If type is not a class, this does nothing.  If type is a
  class, then it makes sure that value is an instance of the class by:

  1. if instance is of the type, or a class derived from type, it does
     nothing.

  2. otherwise it instantiates the class, using the value as an
     argument.  If value is None, it uses an empty arg tuple, and if
     the value is a tuple, it uses just that.
1997-08-22 21:22:58 +00:00
Guido van Rossum e3c0d5eb34 Added new Py_IsInitalized() API function to test the 'initialized' flag. 1997-08-22 04:20:13 +00:00
Guido van Rossum ab589b945e Completely disable the declarations for malloc() and friends. Use
#ifdef though, so if you still need these for a really backwards
compiler you know what to do.
1997-08-21 16:13:37 +00:00
Guido van Rossum ef3138f9ad Moved assert.h to ../Parser directory 1997-08-19 12:07:22 +00:00
Guido van Rossum 9faabb8d23 Added prototype for PyImport_Import(). 1997-08-14 19:52:09 +00:00
Guido van Rossum 142eeb8339 cPickle release 0.3 from Jim Fulton 1997-08-13 03:14:41 +00:00
Guido van Rossum 3fb1aea0ae Added decls for stuff from myreadline. 1997-08-12 15:14:22 +00:00
Guido van Rossum 8e5e4461a8 Added prototype for various finalizers. 1997-08-12 14:57:21 +00:00
Guido van Rossum bb301c53ed Added prototype for PyGrammar_RemoveAccelerators(). 1997-08-12 14:57:08 +00:00
Guido van Rossum 15974ad5e6 Bump MS_DLL_ID to 1.5.0. 1997-08-12 14:48:03 +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 d085e88d3c Added Py_Malloc and friends as well as PyMem_Malloc and friends. 1997-08-05 01:59:22 +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 766118525a Changed the patch level to 1.5a3, to avoid confusion with a2 (I'm not
ready for a release yet).
1997-07-19 23:46:59 +00:00
Guido van Rossum 57d8e3f1c7 Added declarations for Py_{Set,Get}ProgramName() and a bunch of other
Py_Get*() functions.
1997-07-19 19:50:52 +00:00
Guido van Rossum 5617f32c5c Added decl for PyInt_GetMax(). 1997-07-19 19:49:11 +00:00
Guido van Rossum a847889607 Moved PyEval_InitThreads to inside WITH_THREAD, where it belongs. 1997-07-19 19:27:30 +00:00
Guido van Rossum e6fb2043ce Got rid of "suppres printing" flag. 1997-07-19 19:26:38 +00:00
Guido van Rossum 618af4b3ef Include pystate.h earlier so it can be referenced by ceval.h. 1997-07-18 23:59:26 +00:00
Guido van Rossum 2fca21f762 PyEval_SaveThread() and PyEval_RestoreThread() now return/take a
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.
1997-07-18 23:56:58 +00:00
Guido van Rossum 4b11c74f7c Only add 1 byte to all malloc calls when it is known that malloc(0) or
realloc(p, 0) returns NULL.  See changes to configure script to be
checked in later.
1997-07-10 22:40:54 +00:00
Guido van Rossum 745b8cff08 flushline and writestring can now return an error 1997-05-22 22:23:46 +00:00
Guido van Rossum 59943ba718 Added Py_PROTO macros for SunOS 4.x /bin/cc. 1997-05-20 22:07:46 +00:00
Guido van Rossum c23ef0a6e8 Workaround for bug in Metrowerks MSL headers on 68K Macs (Jack) 1997-05-20 15:58:15 +00:00
Guido van Rossum d0c87ee6c4 Oops, another forgotten renaming: varobject -> PyVarObject. 1997-05-15 21:31:03 +00:00
Guido van Rossum 4346716962 Bump level to 1.5a2. 1997-05-14 21:41:46 +00:00
Guido van Rossum 2ec9031b55 Subsumed mappingobject.h in dictobject.h. 1997-05-13 21:23:32 +00:00
Guido van Rossum 6a33de9526 Get rid of obsolete ACCESS_MODE opcode. 1997-05-09 00:39:04 +00:00
Guido van Rossum 6778f257b7 Oops, rename2.h was included by some other headers. 1997-05-07 23:50:40 +00:00
Guido van Rossum b05a5c7698 Instead of importing graminit.h whenever one of the three grammar 'root'
symbols is needed, define these in Python.h with a Py_ prefix.
1997-05-07 17:46:13 +00:00
Guido van Rossum fdf95dd525 Checkin of Jack's buffer mods.
Not really checked, but didn't fail any tests either...
1997-05-05 22:15:02 +00:00
Guido van Rossum a027efa5bf Massive changes for separate thread state management.
All per-thread globals are moved into a struct which is manipulated
separately.
1997-05-05 20:56:21 +00:00
Guido van Rossum 4a43cc67db Remove sys_* defines that are internal only and about to disappear 1997-05-05 20:46:18 +00:00
Guido van Rossum 84bf42531c Finally deleted this obsolete crud. 1997-05-02 04:01:08 +00:00
Guido van Rossum d27b4f2a3f Several oopsies -- Py_ALLOBJECTS_H -> Py_PYTHON_H, temporarily removed
pystate.h (to be restored later when that code is debugged), removed
accessobject.h.
1997-05-02 04:00:11 +00:00
Guido van Rossum 174f95adf7 Moved allobjects.h to Python.h (without rename2.h).
allobjects.h disappears -- old-style extensions must include Python.h
and rename2.h.
1997-05-02 03:55:52 +00:00
Guido van Rossum 87490eb3b0 Renamed inittab. 1997-04-29 20:31:59 +00:00
Guido van Rossum e601c0f55d Added new name for inittab! 1997-04-29 16:23:44 +00:00
Guido van Rossum 63c35e5407 Remove macros that are only used for cgensupport.[ch].
Fixed typo in PyArg_VaParse (not PyArgs_*).
1997-04-29 16:21:39 +00:00
Guido van Rossum 92e8782217 Moved cgensupport.h to Modules (awaiting oblivion). 1997-04-29 16:08:53 +00:00
Guido van Rossum 1818b7702b Moved rename2's macros relevant to this module here and added comment
about the file's obsolescence.
1997-04-29 15:35:28 +00:00
Guido van Rossum 45c3aaba56 Got rid of the static decl of PyCObject_Import, which was a 1.4
compatibility hack.
1997-04-09 18:04:08 +00:00
Guido van Rossum 0a73dd5f35 Changed the way the C API was exported. Jim Fulton. 1997-04-09 17:34:28 +00:00
Guido van Rossum 8ecd1ad785 Added assert grammar. 1997-04-02 05:24:08 +00:00
Guido van Rossum 6fa4466cec Added AssertionError. 1997-04-02 05:22:53 +00:00
Guido van Rossum 94dbd99483 Remove ConflictError (which was also removed from bltinmodule.c, even
though the checkin message failed to note that).
1997-03-31 17:19:40 +00:00
Guido van Rossum e053c67780 Remove err_input -- there is no such global! 1997-03-14 05:09:30 +00:00
Guido van Rossum f0958064f9 Remove redundant references to thread stuff -- long, long ago, there
was some locking code in this file that needed it...
1997-03-14 04:25:22 +00:00
Guido van Rossum 74277916a9 Add Macros defining new names for all external symbols. 1997-03-14 04:24:08 +00:00
Guido van Rossum 1f06beeedd Change PyFPE_END_PROTECT to PyFPE_END_PROTECT(v). v should be the
last variable to which a floating point expression is assigned.  The
macro passes its address to a dummy function so that the optimizer
can't delay calculating its value until after the macro.
1997-03-14 04:23:42 +00:00
Guido van Rossum f39fc43f31 A few comment alignment and clarifications. 1997-03-04 18:31:47 +00:00
Guido van Rossum e9e47796c8 Add global Py_OptimizeFlag. 1997-03-03 19:13:54 +00:00
Guido van Rossum 7d4266ed5a Changes for Lee Busby's SIGFPE patch set.
New file pyfpe.h, new exception FloatingPointError.
1997-02-14 22:53:12 +00:00
Guido van Rossum 1ca407f3e4 Fix the comments for bitwise and/or. 1997-02-14 22:51:40 +00:00
Guido van Rossum 5c4998b236 Added decl for Py_FdIsInteractive. 1997-02-14 19:51:34 +00:00
Guido van Rossum 3f3a2686b8 Added decl for Py_InteractiveFlag. 1997-02-14 19:51:09 +00:00
Guido van Rossum c4193f1547 Added prototype for PyErr_Format(exception, formatstring, ...) -> NULL. 1997-02-14 17:10:25 +00:00
Guido van Rossum 36280a7772 Added PyArg_ParseTupleAndKeywords() prototype. 1997-02-14 16:36:35 +00:00
Guido van Rossum fb76f1af9b djgpp support. 1997-02-14 16:36:08 +00:00
Guido van Rossum 767579854c Add co_firstlineno and co_lnotab, for the line number table generated
by the compiler (in lieu of SET_LINENO instructions).
1997-01-24 03:41:09 +00:00
Guido van Rossum e0e696282f Added PyCObject_Import. 1997-01-22 20:48:48 +00:00
Guido van Rossum c1ef39f795 Bump version to 1.5a1. 1997-01-22 03:46:13 +00:00
Guido van Rossum cdf578ebaf New lay-out of frame object, for fewer mallocs.
See frameobject.c checkin message.
1997-01-20 04:16:40 +00:00
Guido van Rossum ee5cf9b672 Bump API version due to the various speedup hacks. 1997-01-18 07:54:03 +00:00
Guido van Rossum 1e6e9a2368 Two speedup hacks. Caching the hash saves recalculation of a string's
hash value.  Interning strings (which requires hash caching) tries to
ensure that only one string object with a given value exists, so
equality tests are one pointer comparison.  Together, these can speed
the interpreter up by as much as 20%.  Each costs the size of a long
or pointer per string object.  In addition, interned strings live
until the end of times.  If you are concerned about memory footprint,
simply comment the #define out here (and rebuild everything!).
1997-01-18 07:53:23 +00:00
Guido van Rossum 3f6e408a31 Add co_stacksize field to codeobject structure, and stacksize argument
to PyCode_New() argument list.  Also add CO_MAXBLOCKS constant
indicating the maximum static nesting supported by the compiler.
1997-01-17 20:59:26 +00:00
Guido van Rossum d81a1baa5f Jim's latest version 1997-01-06 22:50:12 +00:00
Barry Warsaw 9c5494a1b9 added PyTuple_GET_SIZE macro 1997-01-06 22:44:27 +00:00
Barry Warsaw accfb849f9 added PyString_GET_SIZE macro
for both PyString_GET_SIZE and PyString_AS_STRING, cast first argument
to a PyStringObject*
1997-01-06 22:42:50 +00:00
Barry Warsaw 1f2bd07aed added PyList_GET_SIZE macro
for both PyList_GET_SIZE and PyList_GET_ITEM, cast first argument to a
PyListObject*
1997-01-06 22:42:00 +00:00
Guido van Rossum 53756b1097 Added PyLong_FromUnsignedLong() and PyLong_AsUnsignedLong(). 1997-01-03 17:14:46 +00:00
Barry Warsaw f3f41a9e57 Added declaration for PyErr_SetInterrupt. 1997-01-03 00:15:03 +00:00
Guido van Rossum 408027ea46 Rename DEBUG macro to Py_DEBUG 1996-12-30 16:17:54 +00:00
Guido van Rossum caf783793d Added remaining declarations needed/used in glmodule.c; keeps gcc -Wall happy. 1996-12-10 15:41:19 +00:00
Guido van Rossum 067998f35e Add const to error and newstring functions 1996-12-10 15:33:34 +00:00
Guido van Rossum 049cd90b93 Jim F's brainchild 1996-12-05 23:30:48 +00:00
Guido van Rossum 2adf06b04c Added missing for PySequence_List. 1996-12-05 21:48:50 +00:00
Guido van Rossum d266eb460e New permission notice, includes CNRI. 1996-10-25 14:44:06 +00:00
Guido van Rossum 58055847f4 Changed version to plain "1.4". 1996-10-22 03:09:46 +00:00
Guido van Rossum b75fba04c7 Forget about Ellipses b/w compatibility. 1996-10-16 04:18:36 +00:00
Guido van Rossum e449af7da9 Ellipses -> Ellipsis rename (the dictionary really says that it should
be Ellipsis!).
Bumped the API version because a linker-visible symbol is affected.
Old C code will still compile -- there's a b/w compat macro.
Similarly, old Python code will still run, builtin exports both
Ellipses and Ellipsis.
1996-10-11 16:25:41 +00:00
Guido van Rossum a63518436a Add waitflag to down_sema(). 1996-10-08 14:21:49 +00:00
Guido van Rossum c8ce571c16 Rationalized PC compiler defines: require MS_WINDOWS or __BORLANDC__
or __WATCOMC__.  Add ALTSEP for PC filesystems.
1996-09-11 20:20:58 +00:00
Guido van Rossum a25e5e9ae9 PyMapping_DelItem[String] are actually macros. 1996-09-06 13:48:38 +00:00
Guido van Rossum ed227f0589 Correctly document PyNumber_Coerce. 1996-09-06 13:40:53 +00:00
Guido van Rossum ace527cbc2 Change comments/#ifdef structure for declaration for hypot(). 1996-08-29 18:12:36 +00:00
Guido van Rossum 2a516c8f2c Bump patchlevel (a bit early, but what the heck...) 1996-08-22 23:15:05 +00:00
Guido van Rossum 2ea0b06498 Add PYTHON_API_STRING, which is PYTHON_API_VERSION as a string literal.
Under Windows, add MS_DLL_ID and MS_DLL_VERSION_ID for Mark H.

Independent change: if Py_TRACE_REFS is defined, rename Py_InitModule4
so so linking with incompatible modules will create a link time error.

[Backing out of previous changes (also for modsupport.c) to test
the latter at runtime.]
1996-08-22 22:55:47 +00:00
Guido van Rossum 6cdc6f4146 Added PyObject_DelItem and PySequence_Del{Item,Slice}. 1996-08-21 17:41:54 +00:00
Guido van Rossum 7cf1fcf347 Always include config.h 1996-08-19 22:12:39 +00:00
Guido van Rossum 49c70a7a4d Added declaration for *PyMarshal_WriteObjectToString(). 1996-08-19 22:05:27 +00:00
Guido van Rossum 8b51d227f6 Add prototypes for c_sum() etc. 1996-08-19 22:04:54 +00:00
Guido van Rossum 0dfcf753ad Disable support for access statement 1996-08-12 22:00:53 +00:00