annotate Python/pyfpe.c @ 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 2dea40e40d9d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18835
2dea40e40d9d Patch #411138: Rename config.h to pyconfig.h. Closes bug #231774.
Martin v. Löwis <martin@v.loewis.de>
parents: 13658
diff changeset
1 #include "pyconfig.h"
5119
bda01a374762 Changes for Lee Busby's SIGFPE patch set.
Guido van Rossum <guido@python.org>
parents:
diff changeset
2 #include "pyfpe.h"
bda01a374762 Changes for Lee Busby's SIGFPE patch set.
Guido van Rossum <guido@python.org>
parents:
diff changeset
3 /*
bda01a374762 Changes for Lee Busby's SIGFPE patch set.
Guido van Rossum <guido@python.org>
parents:
diff changeset
4 * The signal handler for SIGFPE is actually declared in an external
bda01a374762 Changes for Lee Busby's SIGFPE patch set.
Guido van Rossum <guido@python.org>
parents:
diff changeset
5 * module fpectl, or as preferred by the user. These variable
bda01a374762 Changes for Lee Busby's SIGFPE patch set.
Guido van Rossum <guido@python.org>
parents:
diff changeset
6 * definitions are required in order to compile Python without
bda01a374762 Changes for Lee Busby's SIGFPE patch set.
Guido van Rossum <guido@python.org>
parents:
diff changeset
7 * getting missing externals, but to actually handle SIGFPE requires
bda01a374762 Changes for Lee Busby's SIGFPE patch set.
Guido van Rossum <guido@python.org>
parents:
diff changeset
8 * defining a handler and enabling generation of SIGFPE.
bda01a374762 Changes for Lee Busby's SIGFPE patch set.
Guido van Rossum <guido@python.org>
parents:
diff changeset
9 */
bda01a374762 Changes for Lee Busby's SIGFPE patch set.
Guido van Rossum <guido@python.org>
parents:
diff changeset
10
bda01a374762 Changes for Lee Busby's SIGFPE patch set.
Guido van Rossum <guido@python.org>
parents:
diff changeset
11 #ifdef WANT_SIGFPE_HANDLER
bda01a374762 Changes for Lee Busby's SIGFPE patch set.
Guido van Rossum <guido@python.org>
parents:
diff changeset
12 jmp_buf PyFPE_jbuf;
bda01a374762 Changes for Lee Busby's SIGFPE patch set.
Guido van Rossum <guido@python.org>
parents:
diff changeset
13 int PyFPE_counter = 0;
bda01a374762 Changes for Lee Busby's SIGFPE patch set.
Guido van Rossum <guido@python.org>
parents:
diff changeset
14 #endif
9045
ad6bc2c5d353 Restructure the file so that it is never empty. No longer needs
Guido van Rossum <guido@python.org>
parents: 8822
diff changeset
15
ad6bc2c5d353 Restructure the file so that it is never empty. No longer needs
Guido van Rossum <guido@python.org>
parents: 8822
diff changeset
16 /* Have this outside the above #ifdef, since some picky ANSI compilers issue a
ad6bc2c5d353 Restructure the file so that it is never empty. No longer needs
Guido van Rossum <guido@python.org>
parents: 8822
diff changeset
17 warning when compiling an empty file. */
ad6bc2c5d353 Restructure the file so that it is never empty. No longer needs
Guido van Rossum <guido@python.org>
parents: 8822
diff changeset
18
ad6bc2c5d353 Restructure the file so that it is never empty. No longer needs
Guido van Rossum <guido@python.org>
parents: 8822
diff changeset
19 double
13658
f79434ee41fa Mass ANSIfication of function definitions. Doesn't cover all 'extern'
Thomas Wouters <thomas@python.org>
parents: 9045
diff changeset
20 PyFPE_dummy(void *dummy)
9045
ad6bc2c5d353 Restructure the file so that it is never empty. No longer needs
Guido van Rossum <guido@python.org>
parents: 8822
diff changeset
21 {
ad6bc2c5d353 Restructure the file so that it is never empty. No longer needs
Guido van Rossum <guido@python.org>
parents: 8822
diff changeset
22 return 1.0;
ad6bc2c5d353 Restructure the file so that it is never empty. No longer needs
Guido van Rossum <guido@python.org>
parents: 8822
diff changeset
23 }