summaryrefslogtreecommitdiffstats
path: root/Python/pythonrun.c
Commit message (Collapse)AuthorAgeFilesLines
* Vladimir Marangozov's long-awaited malloc restructuring.Guido van Rossum2000-05-031-2/+2
| | | | | | | | | | For more comments, read the patches@python.org archives. For documentation read the comments in mymalloc.h and objimpl.h. (This is not exactly what Vladimir posted to the patches list; I've made a few changes, and Vladimir sent me a fix in private email for a problem that only occurs in debug mode. I'm also holding back on his change to main.c, which seems unnecessary to me.)
* Py_UseClassExceptionsFlag is deprecated. We keep the C variable for CBarry Warsaw2000-05-021-1/+1
| | | | API consistency, but nothing sets it or checks it now.
* Marc-Andre Lemburg:Guido van Rossum2000-05-011-0/+1
| | | | Added Py_UnicodeFlag for use by the -U command line option.
* Mark Hammond: For Windows debug builds, we now only offer to dumpGuido van Rossum2000-04-271-1/+5
| | | | | | remaining object references if the environment variable PYTHONDUMPREFS exists. The default behaviour caused problems for background or otherwise invisible processes that use the debug build of Python.
* Fix PR#7 comparisons of recursive objectsJeremy Hylton2000-04-141-0/+2
| | | | | Note that comparisons of deeply nested objects can still dump core in extreme cases.
* Marc-Andre Lemburg: add calls to initialize and finalize Unicode andGuido van Rossum2000-03-101-0/+18
| | | | Codec registry.
* The rest of the changes by Trent Mick and Dale Nagata for warning-freeGuido van Rossum2000-01-201-0/+4
| | | | compilation on NT Alpha. Mostly added casts etc.
* Marc-Andre Lemburg discovered that the switch from .pyc to .pyo files,Guido van Rossum1999-07-081-2/+2
| | | | | done by _PyImport_Init(), comes to late to affect the import of exceptions.py by _PyBuiltin_Init_2(). Move _PyImport_Init() up few lines.
* Alas, get rid of the Win specific hack to ask the user to press ReturnGuido van Rossum1999-04-071-47/+0
| | | | | before exiting when an error happened. This didn't work right when Python is invoked from a daemon.
* initmain(): Nailed a memory leak. bimod must be DECREF'd!Barry Warsaw1999-01-291-0/+1
|
* err_input(): Nailed a small memory leak. If the error is E_INTR, theBarry Warsaw1999-01-271-1/+2
| | | | | | | | | v temporary variable was never decref'd. Test this by starting up the interpreter, hitting C-c, then immediately exiting. Same potential leak can occur if error is E_NOMEM, since the return is done in the case block. Added Py_XDECREF(v); to both blocks, just before the return.
* Hack for Windows so that if (1) the exit status is nonzero and (2) weGuido van Rossum1999-01-081-0/+47
| | | | | | | | | think we have our own DOS box (i.e. we're not started from a command line shell), we print a message and wait for the user to hit a key before the DOS box is closed. The hacky heuristic for determining whether we have our *own* DOS box (due to Mark Hammond) is to test whether we're on line zero...
* Move the prototype for dump_counts() to before where it is used.Guido van Rossum1998-12-151-4/+4
| | | | (This only applies when COUNT_ALLOCS is defined.)
* Support PYTHONOPTIMIZE variable; by Marc Lemburg.Guido van Rossum1998-10-071-0/+2
|
* Renamed thread.h to pythread.h.Guido van Rossum1998-10-011-1/+1
|
* On second though, NEXITFUNCS should be defined here and not inGuido van Rossum1998-10-011-1/+1
| | | | | pystate.h; pystate.h doesn't use it (I thought I wanted to move the array there but that won't work).
* Remove redundant definition of NEXITFUNCS.Guido van Rossum1998-09-281-1/+1
| | | | (Reported by Jeff Rush.)
* Don't release the interpreter lock around PyParser_ParseFile().Guido van Rossum1998-08-271-4/+0
| | | | It is needed so that tokenizer.c can use PySys_WriteStderr().
* Add DebugBreak() call to Py_FatalError() for Mark Hammond (only onGuido van Rossum1998-08-131-0/+3
| | | | Win32 in Debug mode).
* Translate E_INDENT to the clearest error message I can think of.Guido van Rossum1998-04-101-0/+3
|
* Make sure that the message "Error in sys.exitfunc:" goes to sys.stderrGuido van Rossum1998-04-031-2/+4
| | | | and not to C's stderr.
* Fix the handling of errors in Py_FlushLine() in a few places.Guido van Rossum1998-02-281-5/+7
| | | | (Basically, the error is cleared... Like almost everywhere else...)
* Ehm, three unrelated changes.Guido van Rossum1998-02-061-3/+31
| | | | | | | | | | | | - Add Py_FrozenFlag, intended to suppress error messages fron getpath.c in frozen binaries. - Add Py_GetPythonHome() and Py_SetPythonHome(), intended to allow embedders to force a different PYTHONHOME. - Add new interface PyErr_PrintEx(flag); same as PyErr_Print() but flag determines whether sys.last_* are set or not. PyErr_Print() now simply calls PyErr_PrintEx(1).
* It seems obvious that when Py_Finalize() decides that there's nothingGuido van Rossum1998-01-191-2/+2
| | | | to do, it should not call sys.exitfunc either...
* Changed the finalization order again so that the reference countGuido van Rossum1997-12-081-13/+18
| | | | | printing (when Py_DEBUG is defined) happens while there's still a current thread...
* Apply str() to sys.ps1 or sys.ps2 before using them as a prompt, soGuido van Rossum1997-11-251-16/+14
| | | | | you can assign an object whose str() evaluates to the current directory (or whatever).
* Two changes (here we go again :-( ).Guido van Rossum1997-11-191-35/+3
| | | | | | | | | | 1) The __builtins__ variable in the __main__ module is set to the __builtin__ module instead of its __dict__. 2) Get rid of the SIGHUP and SIGTERM handlers. They can't be made to work reliably when threads may be in use, they are Unix specific, and Python programmers can now program this functionality is a safer way using the signal module.
* Undo half of the previous change :-(Guido van Rossum1997-11-041-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | Setting interp->builtins to the __builtin__ module instead of to its dictionary had the unfortunate side effect of always running in restricted execution mode :-( I will check in a different way of setting __main__.__builtins__ to the __builtin__ module later. Also, there was a typo -- a comment was unfinished, and as a result some finalizations were not being executed. In Bart Simpson style, I Will Not Check In Untested Changes. I Will Not Check In Untested Changes. I Will Not Check In Untested Changes. I Will Not Check In Untested Changes. I Will Not Check In Untested Changes. I Will Not Check In Untested Changes. I Will Not Check In Untested Changes. I Will Not Check In Untested Changes. I Will Not Check In Untested Changes. I Will Not Check In Untested Changes.
* Two independent changes (alas):Guido van Rossum1997-11-031-19/+16
| | | | | | | | | | | | - The interp->builtins variable (and hence, __main__.__builtins__) is once again initialized to the built-in *module* instead of its dictionary. - The finalization order is once again changed. Signals are finalized relatively early, because (1) it DECREF's the signal handlers, and if a signal handler happens to be a bound method, deleting it could cause problems when there's no current thread around, and (2) we don't want to risk executing signal handlers during finalization.
* Initialize Py_UseClassExceptionsFlag to 1.Guido van Rossum1997-10-031-1/+1
|
* Fix small omission: with all the new code, sys.exit(None) would printGuido van Rossum1997-10-031-0/+2
| | | | "None"; this should be equivalent to sys.exit(0).
* Py_Initialize(): move the call to _PyImport_FixupExtension() to afterBarry Warsaw1997-09-181-1/+1
| | | | | the phase 2 init of the __builtin__ module, so that multiple interpreters will get the right exceptions.
* PyErr_Print(): When printing a class exception, try to dig out theBarry Warsaw1997-09-161-6/+21
| | | | | __module__ string and if found, print <module>.<class>, unless <module> == "exceptions".
* Fixed some details of printing the str() of an exception. This fixesGuido van Rossum1997-09-051-2/+6
| | | | | a core dump when __str__() returns a non-string, and plugs a memory leak as well: the result of PyObject_Str() was never DECREFed.
* Two independent changes (oops):Guido van Rossum1997-08-291-4/+35
| | | | | | | | | - Changed semantics for initialized flag (again); forget the ref counting, forget the fatal errors -- redundant calls to Py_Initialize() or Py_Finalize() calls are simply ignored. - Automatically import site.py on initialization, unless a flag is set not to do this by main().
* Added Py_UseClassExceptionsFlag, the variable containing the state ofBarry Warsaw1997-08-291-5/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the -X command line option. Py_Initialize(): Handle the two phase initialization of the built-in module. Py_Finalize(): Handle the two phase finalization of the built-in module. parse_syntax_error(): New function which parses syntax errors that PyErr_Print() will catch. This correctly parses such errors regardless of whether PyExc_SyntaxError is an old-style string exception or new-fangled class exception. PyErr_Print(): Many changes: 1. Normalize the exception. 2. Handle SystemExit exceptions which might be class based. Digs the exit code out of the "code" attribute. String based SystemExit is handled the same as before. 3. Handle SyntaxError exceptions which might be class based. Digs the various information bits out of the instance's attributes (see parse_syntax_error() for details). String based SyntaxError still works too. 4. Don't write the `:' after the exception if the exception is class based and has an empty string str() value.
* PyErr_Print(): Use PyErr_GivenExceptionMatches() instead of pointerBarry Warsaw1997-08-261-2/+4
| | | | compares to test for SystemExit and SyntaxError.
* Added new Py_IsInitalized() API function to test the 'initialized' flag.Guido van Rossum1997-08-221-0/+8
|
* Use a counter instead of a Boolean to check for initialized; n callsGuido van Rossum1997-08-201-5/+5
| | | | to Py_Initialize will be undone by n calls to Py_Uninitialize.
* Merge Py_Cleanup() into Py_Finalize(). Call the various small Fini()Guido van Rossum1997-08-051-36/+43
| | | | functions.
* The last of the mass checkins for separate (sub)interpreters.Guido van Rossum1997-08-021-59/+193
| | | | | | | Everything should now work again. See the comments for the .h files mass checkin (e.g. pystate.h) for more detail.
* Moved some stuff here from main.c (part of a big restructuring - waitGuido van Rossum1997-07-191-1/+26
| | | | | | | | | | | | | 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().
* Can't return 0 from void function...Guido van Rossum1997-05-231-1/+1
|
* Py_FlushLine and PyFile_WriteString now return error indicatorsGuido van Rossum1997-05-221-30/+41
| | | | instead of calling PyErr_Clear(). Add checking of those errors.
* Added a space in an error messageGuido van Rossum1997-05-221-1/+1
|
* Instead of importing graminit.h whenever one of the three grammar 'root'Guido van Rossum1997-05-071-4/+3
| | | | symbols is needed, define these in Python.h with a Py_ prefix.
* Keep MS compiler happy: use (int)strlen() when comparing; make sureGuido van Rossum1997-05-061-2/+8
| | | | not to use kill().
* Massive changes for separate thread state management.Guido van Rossum1997-05-051-8/+42
| | | | | All per-thread globals are moved into a struct which is manipulated separately.
* Allow passing a .pyo file.Guido van Rossum1997-04-021-5/+8
| | | | Print correct name in fatal error from PyErr_Print.
* Greatly renamed. Not a very thorough job -- I'm going to restructureGuido van Rossum1997-03-051-210/+211
| | | | it anyway.