annotate Python/sigcheck.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 6f6f965c5e2d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1660
ffd495bacbd4 Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff changeset
1
ffd495bacbd4 Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff changeset
2 /* Sigcheck is similar to intrcheck() but sets an exception when an
ffd495bacbd4 Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff changeset
3 interrupt occurs. It can't be in the intrcheck.c file since that
ffd495bacbd4 Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff changeset
4 file (and the whole directory it is in) doesn't know about objects
ffd495bacbd4 Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff changeset
5 or exceptions. It can't be in errors.c because it can be
ffd495bacbd4 Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff changeset
6 overridden (at link time) by a more powerful version implemented in
ffd495bacbd4 Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff changeset
7 signalmodule.c. */
ffd495bacbd4 Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff changeset
8
5373
5880384d7c71 Quickly renamed the remaining files -- this directory is done.
Guido van Rossum <guido@python.org>
parents: 4503
diff changeset
9 #include "Python.h"
1660
ffd495bacbd4 Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff changeset
10
ffd495bacbd4 Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff changeset
11 /* ARGSUSED */
ffd495bacbd4 Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff changeset
12 int
13658
f79434ee41fa Mass ANSIfication of function definitions. Doesn't cover all 'extern'
Thomas Wouters <thomas@python.org>
parents: 13256
diff changeset
13 PyErr_CheckSignals(void)
1660
ffd495bacbd4 Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff changeset
14 {
5373
5880384d7c71 Quickly renamed the remaining files -- this directory is done.
Guido van Rossum <guido@python.org>
parents: 4503
diff changeset
15 if (!PyOS_InterruptOccurred())
1660
ffd495bacbd4 Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff changeset
16 return 0;
5373
5880384d7c71 Quickly renamed the remaining files -- this directory is done.
Guido van Rossum <guido@python.org>
parents: 4503
diff changeset
17 PyErr_SetNone(PyExc_KeyboardInterrupt);
1660
ffd495bacbd4 Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff changeset
18 return -1;
ffd495bacbd4 Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff changeset
19 }