annotate Python/importdl.h @ 73323:dad02a080bbc

Improve byte-compilation in packaging to be independent of -O or -B. The code I fixed to comply with PEP 3147 still had one bug: When run under python -O, some paths for pyc files would be pyo, because I called imp.cache_from_source without explicit debug_override argument in some places, and under -O that would return .pyo (this is well explained in the imp docs). Now all code (util.byte_compile, build_py, install_lib) can create .pyo files according to options given by users, without interference from the calling Python’s own optimize mode. On a related topic, I also removed the code that prevented byte compilation under python -B. The rationale is that packaging gives control over the creation of pyc files to the user with its own explicit option, and the behavior should not be changed if the calling Python happens to run with -B for whatever reason. I will argue that this is a bug fix and ask to be allowed to backport this change to distutils. Finally, I moved one nugget of information about the --compile and --optimize options from the source into the doc. It clears up a misunderstanding that I (and maybe other people) had.
author Éric Araujo <merwok@netwok.org>
date Thu, 03 Nov 2011 05:08:28 +0100
parents ef2b6305d395
children 257cbd2fac38
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11601
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
1 #ifndef Py_IMPORTDL_H
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
2 #define Py_IMPORTDL_H
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
3
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
4 #ifdef __cplusplus
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
5 extern "C" {
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
6 #endif
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
7
2052
d7e91437f0a2 Lots of changes, most minor (fatal() instead of abort(), use of
Guido van Rossum <guido@python.org>
parents:
diff changeset
8
d7e91437f0a2 Lots of changes, most minor (fatal() instead of abort(), use of
Guido van Rossum <guido@python.org>
parents:
diff changeset
9 /* Definitions for dynamic loading of extension modules */
6243
4279f4eb210a First part of package support.
Guido van Rossum <guido@python.org>
parents: 5894
diff changeset
10 enum filetype {
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 26885
diff changeset
11 SEARCH_ERROR,
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 26885
diff changeset
12 PY_SOURCE,
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 26885
diff changeset
13 PY_COMPILED,
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 26885
diff changeset
14 C_EXTENSION,
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 26885
diff changeset
15 PY_RESOURCE, /* Mac only */
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 26885
diff changeset
16 PKG_DIRECTORY,
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 26885
diff changeset
17 C_BUILTIN,
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 26885
diff changeset
18 PY_FROZEN,
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 26885
diff changeset
19 PY_CODERESOURCE, /* Mac only */
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 26885
diff changeset
20 IMP_HOOK
6243
4279f4eb210a First part of package support.
Guido van Rossum <guido@python.org>
parents: 5894
diff changeset
21 };
2052
d7e91437f0a2 Lots of changes, most minor (fatal() instead of abort(), use of
Guido van Rossum <guido@python.org>
parents:
diff changeset
22
11601
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
23 struct filedescr {
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 26885
diff changeset
24 char *suffix;
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 26885
diff changeset
25 char *mode;
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 26885
diff changeset
26 enum filetype type;
11601
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
27 };
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
28 extern struct filedescr * _PyImport_Filetab;
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
29 extern const struct filedescr _PyImport_DynLoadFiletab[];
2052
d7e91437f0a2 Lots of changes, most minor (fatal() instead of abort(), use of
Guido van Rossum <guido@python.org>
parents:
diff changeset
30
68716
ef2b6305d395 Issue #3080: _PyImport_LoadDynamicModule() uses Unicode for name and path
Victor Stinner <victor.stinner@haypocalc.com>
parents: 61467
diff changeset
31 extern PyObject *_PyImport_LoadDynamicModule(PyObject *name, PyObject *pathname,
61467
f197407bdba2 Recorded merge of revisions 81032 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 26885
diff changeset
32 FILE *);
2052
d7e91437f0a2 Lots of changes, most minor (fatal() instead of abort(), use of
Guido van Rossum <guido@python.org>
parents:
diff changeset
33
5894
e2df95b7be78 Removed some variables that are used to exchange data between import.c and
Guido van Rossum <guido@python.org>
parents: 5511
diff changeset
34 /* Max length of module suffix searched for -- accommodates "module.slb" */
e2df95b7be78 Removed some variables that are used to exchange data between import.c and
Guido van Rossum <guido@python.org>
parents: 5511
diff changeset
35 #define MAXSUFFIXSIZE 12
11601
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
36
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
37 #ifdef MS_WINDOWS
11608
9ec7d978800d For Windows, need to add #include <windows.h>.
Guido van Rossum <guido@python.org>
parents: 11601
diff changeset
38 #include <windows.h>
11601
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
39 typedef FARPROC dl_funcptr;
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
40 #else
22054
5cbcfde3ad55 OS/2 EMX port changes (Python part of patch #450267):
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 20871
diff changeset
41 #if defined(PYOS_OS2) && !defined(PYCC_GCC)
20871
f576ffd57966 SF patch 473749 compile under OS/2 VA C++, from Michael Muller.
Tim Peters <tim.peters@gmail.com>
parents: 14375
diff changeset
42 #include <os2def.h>
11601
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
43 typedef int (* APIENTRY dl_funcptr)();
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
44 #else
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
45 typedef void (*dl_funcptr)(void);
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
46 #endif
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
47 #endif
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
48
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
49
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
50 #ifdef __cplusplus
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
51 }
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
52 #endif
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
53 #endif /* !Py_IMPORTDL_H */