Mercurial > cpython-lru_cache-weakref
annotate Include/pythonrun.h @ 16421:aa844711463a legacy-trunk
Move a bunch of definitions that were internal to compile.c to
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().
| author | Jeremy Hylton <jeremy@alum.mit.edu> |
|---|---|
| date | Fri, 02 Feb 2001 18:19:15 +0000 |
| parents | e17d8cd09689 |
| children | b0456d3a0f1f |
| rev | line source |
|---|---|
| 145 | 1 |
| 86 | 2 /* Interfaces to parse and execute pieces of python code */ |
| 3 | |
|
13445
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
4 #ifndef Py_PYTHONRUN_H |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
5 #define Py_PYTHONRUN_H |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
6 #ifdef __cplusplus |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
7 extern "C" { |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
8 #endif |
|
5862
4dbb4ec44d15
Added declarations for Py_{Set,Get}ProgramName() and a bunch of other
Guido van Rossum <guido@python.org>
parents:
5111
diff
changeset
|
9 |
|
13445
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
10 DL_IMPORT(void) Py_SetProgramName(char *); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
11 DL_IMPORT(char *) Py_GetProgramName(void); |
|
7208
ce271e5f9bc5
- Add Py_GetPythonHome() and Py_SetPythonHome(), intended to allow
Guido van Rossum <guido@python.org>
parents:
6192
diff
changeset
|
12 |
|
13445
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
13 DL_IMPORT(void) Py_SetPythonHome(char *); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
14 DL_IMPORT(char *) Py_GetPythonHome(void); |
| 86 | 15 |
|
13445
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
16 DL_IMPORT(void) Py_Initialize(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
17 DL_IMPORT(void) Py_Finalize(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
18 DL_IMPORT(int) Py_IsInitialized(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
19 DL_IMPORT(PyThreadState *) Py_NewInterpreter(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
20 DL_IMPORT(void) Py_EndInterpreter(PyThreadState *); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
21 |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
22 DL_IMPORT(int) PyRun_AnyFile(FILE *, char *); |
|
14228
20377f15b96a
Add three new APIs: PyRun_AnyFileEx(), PyRun_SimpleFileEx(),
Guido van Rossum <guido@python.org>
parents:
14227
diff
changeset
|
23 DL_IMPORT(int) PyRun_AnyFileEx(FILE *, char *, int); |
| 86 | 24 |
|
13445
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
25 DL_IMPORT(int) PyRun_SimpleString(char *); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
26 DL_IMPORT(int) PyRun_SimpleFile(FILE *, char *); |
|
14228
20377f15b96a
Add three new APIs: PyRun_AnyFileEx(), PyRun_SimpleFileEx(),
Guido van Rossum <guido@python.org>
parents:
14227
diff
changeset
|
27 DL_IMPORT(int) PyRun_SimpleFileEx(FILE *, char *, int); |
|
13445
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
28 DL_IMPORT(int) PyRun_InteractiveOne(FILE *, char *); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
29 DL_IMPORT(int) PyRun_InteractiveLoop(FILE *, char *); |
| 86 | 30 |
|
13445
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
31 DL_IMPORT(struct _node *) PyParser_SimpleParseString(char *, int); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
32 DL_IMPORT(struct _node *) PyParser_SimpleParseFile(FILE *, char *, int); |
| 86 | 33 |
|
13445
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
34 DL_IMPORT(PyObject *) PyRun_String(char *, int, PyObject *, PyObject *); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
35 DL_IMPORT(PyObject *) PyRun_File(FILE *, char *, int, PyObject *, PyObject *); |
|
14228
20377f15b96a
Add three new APIs: PyRun_AnyFileEx(), PyRun_SimpleFileEx(),
Guido van Rossum <guido@python.org>
parents:
14227
diff
changeset
|
36 DL_IMPORT(PyObject *) PyRun_FileEx(FILE *, char *, int, |
|
20377f15b96a
Add three new APIs: PyRun_AnyFileEx(), PyRun_SimpleFileEx(),
Guido van Rossum <guido@python.org>
parents:
14227
diff
changeset
|
37 PyObject *, PyObject *, int); |
| 86 | 38 |
|
13445
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
39 DL_IMPORT(PyObject *) Py_CompileString(char *, char *, int); |
|
16421
aa844711463a
Move a bunch of definitions that were internal to compile.c to
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
15153
diff
changeset
|
40 DL_IMPORT(struct symtable *) Py_SymtableString(char *, char *, int); |
|
1263
65a1e4e9cd54
* Fixed some subtleties with fastlocals. You can no longer access
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
41 |
|
13445
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
42 DL_IMPORT(void) PyErr_Print(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
43 DL_IMPORT(void) PyErr_PrintEx(int); |
| 86 | 44 |
|
13445
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
45 DL_IMPORT(int) Py_AtExit(void (*func)(void)); |
|
1868
63ad28939781
pythgonrun.h: added Py_AtExit().
Guido van Rossum <guido@python.org>
parents:
1746
diff
changeset
|
46 |
|
13445
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
47 DL_IMPORT(void) Py_Exit(int); |
|
1329
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1313
diff
changeset
|
48 |
|
13445
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
49 DL_IMPORT(int) Py_FdIsInteractive(FILE *, char *); |
|
5111
21b871325c85
Added decl for Py_FdIsInteractive.
Guido van Rossum <guido@python.org>
parents:
4503
diff
changeset
|
50 |
|
5862
4dbb4ec44d15
Added declarations for Py_{Set,Get}ProgramName() and a bunch of other
Guido van Rossum <guido@python.org>
parents:
5111
diff
changeset
|
51 /* In getpath.c */ |
|
13445
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
52 DL_IMPORT(char *) Py_GetProgramFullPath(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
53 DL_IMPORT(char *) Py_GetPrefix(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
54 DL_IMPORT(char *) Py_GetExecPrefix(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
55 DL_IMPORT(char *) Py_GetPath(void); |
|
5862
4dbb4ec44d15
Added declarations for Py_{Set,Get}ProgramName() and a bunch of other
Guido van Rossum <guido@python.org>
parents:
5111
diff
changeset
|
56 |
|
4dbb4ec44d15
Added declarations for Py_{Set,Get}ProgramName() and a bunch of other
Guido van Rossum <guido@python.org>
parents:
5111
diff
changeset
|
57 /* In their own files */ |
|
13445
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
58 DL_IMPORT(const char *) Py_GetVersion(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
59 DL_IMPORT(const char *) Py_GetPlatform(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
60 DL_IMPORT(const char *) Py_GetCopyright(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
61 DL_IMPORT(const char *) Py_GetCompiler(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
62 DL_IMPORT(const char *) Py_GetBuildInfo(void); |
|
5862
4dbb4ec44d15
Added declarations for Py_{Set,Get}ProgramName() and a bunch of other
Guido van Rossum <guido@python.org>
parents:
5111
diff
changeset
|
63 |
|
5919
5da18e002b1a
Mass checkin (more to follow for other directories).
Guido van Rossum <guido@python.org>
parents:
5862
diff
changeset
|
64 /* Internal -- various one-time initializations */ |
|
13445
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
65 DL_IMPORT(PyObject *) _PyBuiltin_Init(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
66 DL_IMPORT(PyObject *) _PySys_Init(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
67 DL_IMPORT(void) _PyImport_Init(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
68 DL_IMPORT(void) init_exceptions(void); |
|
5919
5da18e002b1a
Mass checkin (more to follow for other directories).
Guido van Rossum <guido@python.org>
parents:
5862
diff
changeset
|
69 |
|
5984
b4bbba3af4e8
Added prototype for various finalizers.
Guido van Rossum <guido@python.org>
parents:
5919
diff
changeset
|
70 /* Various internal finalizers */ |
|
13445
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
71 DL_IMPORT(void) fini_exceptions(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
72 DL_IMPORT(void) _PyImport_Fini(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
73 DL_IMPORT(void) PyMethod_Fini(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
74 DL_IMPORT(void) PyFrame_Fini(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
75 DL_IMPORT(void) PyCFunction_Fini(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
76 DL_IMPORT(void) PyTuple_Fini(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
77 DL_IMPORT(void) PyString_Fini(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
78 DL_IMPORT(void) PyInt_Fini(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
79 DL_IMPORT(void) PyFloat_Fini(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
80 DL_IMPORT(void) PyOS_FiniInterrupts(void); |
|
5984
b4bbba3af4e8
Added prototype for various finalizers.
Guido van Rossum <guido@python.org>
parents:
5919
diff
changeset
|
81 |
|
5986
32127593c134
Added decls for stuff from myreadline.
Guido van Rossum <guido@python.org>
parents:
5984
diff
changeset
|
82 /* Stuff with no proper home (yet) */ |
|
13445
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
83 DL_IMPORT(char *) PyOS_Readline(char *); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
84 extern DL_IMPORT(int) (*PyOS_InputHook)(void); |
|
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
85 extern DL_IMPORT(char) *(*PyOS_ReadlineFunctionPointer)(char *); |
|
14227
9f9f3280dc68
implements PyOS_CheckStack for Windows and MSVC. this fixes a
Fredrik Lundh <fredrik@pythonware.com>
parents:
13887
diff
changeset
|
86 |
|
9f9f3280dc68
implements PyOS_CheckStack for Windows and MSVC. this fixes a
Fredrik Lundh <fredrik@pythonware.com>
parents:
13887
diff
changeset
|
87 /* Stack size, in "pointers" (so we get extra safety margins |
|
9f9f3280dc68
implements PyOS_CheckStack for Windows and MSVC. this fixes a
Fredrik Lundh <fredrik@pythonware.com>
parents:
13887
diff
changeset
|
88 on 64-bit platforms). On a 32-bit platform, this translates |
|
9f9f3280dc68
implements PyOS_CheckStack for Windows and MSVC. this fixes a
Fredrik Lundh <fredrik@pythonware.com>
parents:
13887
diff
changeset
|
89 to a 8k margin. */ |
|
9f9f3280dc68
implements PyOS_CheckStack for Windows and MSVC. this fixes a
Fredrik Lundh <fredrik@pythonware.com>
parents:
13887
diff
changeset
|
90 #define PYOS_STACK_MARGIN 2048 |
|
9f9f3280dc68
implements PyOS_CheckStack for Windows and MSVC. this fixes a
Fredrik Lundh <fredrik@pythonware.com>
parents:
13887
diff
changeset
|
91 |
|
15153
e17d8cd09689
Use suggested workaround for PyOS_CheckStack causing failure of test_[s]re.py
Trent Mick <trentm@activestate.com>
parents:
14636
diff
changeset
|
92 #if defined(WIN32) && !defined(MS_WIN64) && defined(_MSC_VER) |
|
14227
9f9f3280dc68
implements PyOS_CheckStack for Windows and MSVC. this fixes a
Fredrik Lundh <fredrik@pythonware.com>
parents:
13887
diff
changeset
|
93 /* Enable stack checking under Microsoft C */ |
|
9f9f3280dc68
implements PyOS_CheckStack for Windows and MSVC. this fixes a
Fredrik Lundh <fredrik@pythonware.com>
parents:
13887
diff
changeset
|
94 #define USE_STACKCHECK |
|
9f9f3280dc68
implements PyOS_CheckStack for Windows and MSVC. this fixes a
Fredrik Lundh <fredrik@pythonware.com>
parents:
13887
diff
changeset
|
95 #endif |
|
9f9f3280dc68
implements PyOS_CheckStack for Windows and MSVC. this fixes a
Fredrik Lundh <fredrik@pythonware.com>
parents:
13887
diff
changeset
|
96 |
|
13887
c0c17347da5b
Added a prototype for PyOS_CheckStack (within #ifdef USE_STACKCHECK).
Jack Jansen <jack.jansen@cwi.nl>
parents:
13445
diff
changeset
|
97 #ifdef USE_STACKCHECK |
|
14227
9f9f3280dc68
implements PyOS_CheckStack for Windows and MSVC. this fixes a
Fredrik Lundh <fredrik@pythonware.com>
parents:
13887
diff
changeset
|
98 /* Check that we aren't overflowing our stack */ |
|
9f9f3280dc68
implements PyOS_CheckStack for Windows and MSVC. this fixes a
Fredrik Lundh <fredrik@pythonware.com>
parents:
13887
diff
changeset
|
99 DL_IMPORT(int) PyOS_CheckStack(void); |
|
13887
c0c17347da5b
Added a prototype for PyOS_CheckStack (within #ifdef USE_STACKCHECK).
Jack Jansen <jack.jansen@cwi.nl>
parents:
13445
diff
changeset
|
100 #endif |
|
5986
32127593c134
Added decls for stuff from myreadline.
Guido van Rossum <guido@python.org>
parents:
5984
diff
changeset
|
101 |
|
14636
0c303a22d9a4
Add typedef PyOS_sighandler_t and prototypes for PyOS_getsig() and
Guido van Rossum <guido@python.org>
parents:
14375
diff
changeset
|
102 /* Signals */ |
|
0c303a22d9a4
Add typedef PyOS_sighandler_t and prototypes for PyOS_getsig() and
Guido van Rossum <guido@python.org>
parents:
14375
diff
changeset
|
103 typedef void (*PyOS_sighandler_t)(int); |
|
0c303a22d9a4
Add typedef PyOS_sighandler_t and prototypes for PyOS_getsig() and
Guido van Rossum <guido@python.org>
parents:
14375
diff
changeset
|
104 DL_IMPORT(PyOS_sighandler_t) PyOS_getsig(int); |
|
0c303a22d9a4
Add typedef PyOS_sighandler_t and prototypes for PyOS_getsig() and
Guido van Rossum <guido@python.org>
parents:
14375
diff
changeset
|
105 DL_IMPORT(PyOS_sighandler_t) PyOS_setsig(int, PyOS_sighandler_t); |
|
0c303a22d9a4
Add typedef PyOS_sighandler_t and prototypes for PyOS_getsig() and
Guido van Rossum <guido@python.org>
parents:
14375
diff
changeset
|
106 |
|
0c303a22d9a4
Add typedef PyOS_sighandler_t and prototypes for PyOS_getsig() and
Guido van Rossum <guido@python.org>
parents:
14375
diff
changeset
|
107 |
|
1329
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1313
diff
changeset
|
108 #ifdef __cplusplus |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1313
diff
changeset
|
109 } |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1313
diff
changeset
|
110 #endif |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1313
diff
changeset
|
111 #endif /* !Py_PYTHONRUN_H */ |
