summaryrefslogtreecommitdiffstats
path: root/Python/pythonrun.c
Commit message (Collapse)AuthorAgeFilesLines
...
* Useful future statement support for the interactive interpreterJeremy Hylton2001-03-011-15/+25
| | | | | | | | | | | | | | | | | | | | | | | | (Also remove warning about module-level global decl, because we can't distinguish from code passed to exec.) Define PyCompilerFlags type contains a single element, cf_nested_scopes, that is true if a nested scopes future statement has been entered at the interactive prompt. New API functions: PyNode_CompileFlags() PyRun_InteractiveOneFlags() -- same as their non Flags counterparts except that the take an optional PyCompilerFlags pointer compile.c: In jcompile() use PyCompilerFlags argument. If cf_nested_scopes is true, compile code with nested scopes. If it is false, but the code has a valid future nested scopes statement, set it to true. pythonrun.c: Create a new PyCompilerFlags object in PyRun_InteractiveLoop() and thread it through to PyRun_InteractiveOneFlags().
* Now that Jeremy is asking about this code, it looks really bogus to me,Fred Drake2001-02-281-18/+0
| | | | | so let's rip it out. The constructor for SyntaxError does the right thing, so we do not need to do it again.
* Print the offending line of code in the traceback for SyntaxErrorsJeremy Hylton2001-02-281-36/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | raised by the compiler. XXX For now, text entered into the interactive intepreter is not printed in the traceback. Inspired by a patch from Roman Sulzhyk compile.c: Add helper fetch_program_text() that opens a file and reads until it finds the specified line number. The code is a near duplicate of similar code in traceback.c. Modify com_error() to pass two arguments to SyntaxError constructor, where the second argument contains the offending text when possible. Modify set_error_location(), now used only by the symtable pass, to set the text attribute on existing exceptions. pythonrun.c: Change parse_syntax_error() to continue of the offset attribute of a SyntaxError is None. In this case, it sets offset to -1. Move code from PyErr_PrintEx() into helper function print_error_text(). In the helper, only print the caret for a SyntaxError if offset > 0.
* Bug #132850 unix line terminator on windows.Tim Peters2001-02-171-10/+14
| | | | Miserable hack to replace the previous miserable hack in maybe_pyc_file.
* Ugly fix for SF bug 131239 (-x flag busted).Tim Peters2001-02-111-4/+15
| | | | | | Bug was introduced by tricks played to make .pyc files executable via cmdline arg. Then again, -x worked via a trick to begin with. If anyone can think of a portable way to test -x, be my guest!
* Move a bunch of definitions that were internal to compile.c toJeremy Hylton2001-02-021-0/+14
| | | | | | | | | | | | | | | | | | symtable.h, so that they can be used by external module. Improve error handling in symtable_enter_scope(), which return an error code that went unchecked by most callers. XXX The error handling in symtable code is sloppy in general. Modify symtable to record the line number that begins each scope. This can help to identify which code block is being referred to when multiple blocks are bound to the same name. Add st_scopes dict that is used to preserve scope info when PyNode_CompileSymtable() is called. Otherwise, this information is tossed as soon as it is no longer needed. Add Py_SymtableString() to pythonrun; analogous to Py_CompileString().
* It's unclear whether PyMarshal_XXX() are part of the public or private API.Tim Peters2001-01-281-1/+1
| | | | | | | | | | They're named as if public, so I did a Bad Thing by changing PyMarshal_ReadObjectFromFile() to suck up the remainder of the file in one gulp: anyone who counted on that leaving the file pointer merely at the end of the next object would be screwed. So restored PyMarshal_ReadObjectFromFile() to its earlier state, renamed the new greedy code to PyMarshal_ReadLastObjectFromFile(), and changed Python internals to call the latter instead.
* Bug #128475: mimetools.encode (sometimes) fails when called from a thread.Tim Peters2001-01-211-1/+10
| | | | | | | | pythonrun.c: In Py_Finalize, don't reset the initialized flag until after the exit funcs have run. atexit.py: in _run_exitfuncs, mutate the list of pending calls in a threadsafe way. This wasn't a contributor to bug 128475, it just burned my eyeballs when looking at that bug.
* Get rid of the initialization of _PyCompareState_Key.Guido van Rossum2001-01-171-2/+0
|
* Fix signed/unsigned wng. Unfortunately, (unsigned char) << intTim Peters2001-01-051-2/+2
| | | | has type int in C.
* Recognize pyc files even if they don't end in pyc.Martin v. Löwis2001-01-041-7/+33
| | | | Patch #103067 with modifications as discussed in email.
* Add PyOS_getsig() and PyOS_setsig() -- wrappers around signal() orGuido van Rossum2000-09-161-0/+34
| | | | sigaction() (if HAVE_SIGACTION is defined).
* REMOVED all CWI, CNRI and BeOpen copyright markings.Guido van Rossum2000-09-011-9/+0
| | | | This should match the situation in the 1.6b1 tree.
* PyOS_CheckStack(): Better ANSI'fy this while we're at it.Fred Drake2000-08-311-1/+1
|
* Add a comment explaining the return value of PyOS_CheckStack().Fred Drake2000-08-311-1/+4
|
* Hard to believe Guido compiled this! Function lacked a return stmt.Tim Peters2000-08-271-1/+1
|
* Add three new APIs: PyRun_AnyFileEx(), PyRun_SimpleFileEx(),Guido van Rossum2000-08-271-7/+33
| | | | | | | | | | | | | | PyRun_FileEx(). These are the same as their non-Ex counterparts but have an extra argument, a flag telling them to close the file when done. Then this is used by Py_Main() and execfile() to close the file after it is parsed but before it is executed. Adding APIs seems strange given the feature freeze but it's the only way I see to close the bug report without incompatible changes. [ Bug #110616 ] source file stays open after parsing is done (PR#209)
* implements PyOS_CheckStack for Windows and MSVC. this fixes aFredrik Lundh2000-08-271-0/+29
| | | | | | couple of potential stack overflows, including bug #110615. closes patch #101238
* Fix to [ Bug #111165 ] doc-string removal masked by PYTHONOPTIMIZEMarc-André Lemburg2000-08-251-3/+3
|
* Remove the osdefs.h #include; it was not needed in the final version ofFred Drake2000-08-151-1/+0
| | | | my last set of changes.
* When raising a SyntaxError, make a best-effort attempt to set theFred Drake2000-08-151-1/+19
| | | | | | | | filename and lineno attributes, but do not mask the SyntaxError if we fail. This is part of what is needed to close SoruceForge bug #110628 (Jitterbug PR#278).
* Mass ANSIfication of function definitions. Doesn't cover all 'extern'Thomas Wouters2000-07-221-94/+45
| | | | declarations yet, those come later.
* Spelling fixes supplied by Rob W. W. Hooft. All these are fixes in eitherThomas Wouters2000-07-161-1/+1
| | | | | | | | | | comments, docstrings or error messages. I fixed two minor things in test_winreg.py ("didn't" -> "Didn't" and "Didnt" -> "Didn't"). There is a minor style issue involved: Guido seems to have preferred English grammar (behaviour, honour) in a couple places. This patch changes that to American, which is the more prominent style in the source. I prefer English myself, so if English is preferred, I'd be happy to supply a patch myself ;)
* Include macglue.h for some function prototypes, and renamed a fewJack Jansen2000-07-111-2/+5
| | | | mac-specific functions to have a PyMac_ name.
* Create two new exceptions: IndentationError and TabError. These areFred Drake2000-07-111-4/+25
| | | | | | | used for indentation related errors. This patch includes Ping's improvements for indentation-related error messages. Closes SourceForge patches #100734 and #100856.
* Nuke all remaining occurrences of Py_PROTO and Py_FPROTO.Tim Peters2000-07-091-14/+14
|
* Change copyright notice - 2nd try.Guido van Rossum2000-06-301-6/+0
|
* Change copyright notice.Guido van Rossum2000-06-301-22/+7
|
* Add new parser error code, E_OVERFLOW. This error is returned whenJeremy Hylton2000-06-201-0/+3
| | | | | | the number of children of a node exceeds the max possible value for the short that is used to count them. The Python runtime converts this parser error into the SyntaxError "expression too long."
* Py_Initialize(): Now that standard exceptions are builtin, we don'tBarry Warsaw2000-05-251-11/+11
| | | | | | | | | | need two phase init or fini of the builtin module. Change the call of _PyBuiltin_Init_1() to _PyBuiltin_Init(). Add a call to init_exceptions(). Py_Finalize(): Don't call _PyBuiltin_Fini_1(). Instead call fini_exceptions() but move this to before the thread state is cleared.
* 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
|