annotate Python/frozen.c @ 84172:e353f64dfd95

importlib.abc.SourceLoader.get_source() was re-raising SyntaxError and UnicodeDecodeError as ImportError. That was over-reaching the point of raising ImportError in get_source() (which is to signal the source code was not found when it should have). Conflating the two exceptions with ImportError could lead to masking errors with the source which should be known outside of whether there was an error simply getting the source to begin with.
author Brett Cannon <brett@python.org>
date Sun, 16 Jun 2013 18:05:54 -0400
parents a06fc2c2342a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3621
f158edccc72c grand renaming; added copyright to some files
Guido van Rossum <guido@python.org>
parents: 2896
diff changeset
1
f158edccc72c grand renaming; added copyright to some files
Guido van Rossum <guido@python.org>
parents: 2896
diff changeset
2 /* Dummy frozen modules initializer */
f158edccc72c grand renaming; added copyright to some files
Guido van Rossum <guido@python.org>
parents: 2896
diff changeset
3
f158edccc72c grand renaming; added copyright to some files
Guido van Rossum <guido@python.org>
parents: 2896
diff changeset
4 #include "Python.h"
76303
2dd046be2c88 Issue #2377: Make importlib the implementation of __import__().
Brett Cannon <brett@python.org>
parents: 70152
diff changeset
5 #include "importlib.h"
3621
f158edccc72c grand renaming; added copyright to some files
Guido van Rossum <guido@python.org>
parents: 2896
diff changeset
6
2896
f0d9f800a4aa Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
7 /* In order to test the support for frozen modules, by default we
f0d9f800a4aa Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
8 define a single frozen module, __hello__. Loading it will print
f0d9f800a4aa Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
9 some famous words... */
f0d9f800a4aa Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
10
20526
1f3c1e831f21 Fix the frozen bytecode for __hello__ (betcha didn't know that existed
Guido van Rossum <guido@python.org>
parents: 14375
diff changeset
11 /* To regenerate this data after the bytecode or marshal format has changed,
43835
a2213060d9dd Fix for refleak tests through regrtest.py -R:: bug #1414
Christian Heimes <christian@cheimes.de>
parents: 43569
diff changeset
12 go to ../Tools/freeze/ and freeze the flag.py file; then copy and paste
20526
1f3c1e831f21 Fix the frozen bytecode for __hello__ (betcha didn't know that existed
Guido van Rossum <guido@python.org>
parents: 14375
diff changeset
13 the appropriate bytes from M___main__.c. */
1f3c1e831f21 Fix the frozen bytecode for __hello__ (betcha didn't know that existed
Guido van Rossum <guido@python.org>
parents: 14375
diff changeset
14
40452
50ce56b24cbe Oops, re-add 'static' qualifier.
Thomas Wouters <thomas@python.org>
parents: 40451
diff changeset
15 static unsigned char M___hello__[] = {
70152
44fd95cead7b Issue #11614: import __hello__ prints "Hello World!". Patch written by Andreas
Victor Stinner <victor.stinner@haypocalc.com>
parents: 61466
diff changeset
16 99,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
44fd95cead7b Issue #11614: import __hello__ prints "Hello World!". Patch written by Andreas
Victor Stinner <victor.stinner@haypocalc.com>
parents: 61466
diff changeset
17 0,64,0,0,0,115,20,0,0,0,100,2,0,90,1,0,
44fd95cead7b Issue #11614: import __hello__ prints "Hello World!". Patch written by Andreas
Victor Stinner <victor.stinner@haypocalc.com>
parents: 61466
diff changeset
18 101,2,0,100,0,0,131,1,0,1,100,1,0,83,40,3,
44fd95cead7b Issue #11614: import __hello__ prints "Hello World!". Patch written by Andreas
Victor Stinner <victor.stinner@haypocalc.com>
parents: 61466
diff changeset
19 0,0,0,117,12,0,0,0,72,101,108,108,111,32,119,111,
44fd95cead7b Issue #11614: import __hello__ prints "Hello World!". Patch written by Andreas
Victor Stinner <victor.stinner@haypocalc.com>
parents: 61466
diff changeset
20 114,108,100,33,78,84,40,3,0,0,0,117,4,0,0,0,
44fd95cead7b Issue #11614: import __hello__ prints "Hello World!". Patch written by Andreas
Victor Stinner <victor.stinner@haypocalc.com>
parents: 61466
diff changeset
21 84,114,117,101,117,11,0,0,0,105,110,105,116,105,97,108,
44fd95cead7b Issue #11614: import __hello__ prints "Hello World!". Patch written by Andreas
Victor Stinner <victor.stinner@haypocalc.com>
parents: 61466
diff changeset
22 105,122,101,100,117,5,0,0,0,112,114,105,110,116,40,0,
44fd95cead7b Issue #11614: import __hello__ prints "Hello World!". Patch written by Andreas
Victor Stinner <victor.stinner@haypocalc.com>
parents: 61466
diff changeset
23 0,0,0,40,0,0,0,0,40,0,0,0,0,117,7,0,
44fd95cead7b Issue #11614: import __hello__ prints "Hello World!". Patch written by Andreas
Victor Stinner <victor.stinner@haypocalc.com>
parents: 61466
diff changeset
24 0,0,102,108,97,103,46,112,121,117,8,0,0,0,60,109,
44fd95cead7b Issue #11614: import __hello__ prints "Hello World!". Patch written by Andreas
Victor Stinner <victor.stinner@haypocalc.com>
parents: 61466
diff changeset
25 111,100,117,108,101,62,1,0,0,0,115,2,0,0,0,6,
44fd95cead7b Issue #11614: import __hello__ prints "Hello World!". Patch written by Andreas
Victor Stinner <victor.stinner@haypocalc.com>
parents: 61466
diff changeset
26 1,
2896
f0d9f800a4aa Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
27 };
f0d9f800a4aa Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
28
20528
cb334a8c8dd2 Squash compiler wng about signed/unsigned mismatch.
Tim Peters <tim.peters@gmail.com>
parents: 20526
diff changeset
29 #define SIZE (int)sizeof(M___hello__)
20526
1f3c1e831f21 Fix the frozen bytecode for __hello__ (betcha didn't know that existed
Guido van Rossum <guido@python.org>
parents: 14375
diff changeset
30
82649
a06fc2c2342a make some freezing related stuff const
Benjamin Peterson <benjamin@python.org>
parents: 76303
diff changeset
31 static const struct _frozen _PyImport_FrozenModules[] = {
76303
2dd046be2c88 Issue #2377: Make importlib the implementation of __import__().
Brett Cannon <brett@python.org>
parents: 70152
diff changeset
32 /* importlib */
2dd046be2c88 Issue #2377: Make importlib the implementation of __import__().
Brett Cannon <brett@python.org>
parents: 70152
diff changeset
33 {"_frozen_importlib", _Py_M__importlib, (int)sizeof(_Py_M__importlib)},
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 43835
diff changeset
34 /* Test module */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 43835
diff changeset
35 {"__hello__", M___hello__, SIZE},
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 43835
diff changeset
36 /* Test package (negative size indicates package-ness) */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 43835
diff changeset
37 {"__phello__", M___hello__, -SIZE},
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 43835
diff changeset
38 {"__phello__.spam", M___hello__, SIZE},
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 43835
diff changeset
39 {0, 0, 0} /* sentinel */
2896
f0d9f800a4aa Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
40 };
3684
606c38535f30 New style interface via pointer variable.
Guido van Rossum <guido@python.org>
parents: 3621
diff changeset
41
606c38535f30 New style interface via pointer variable.
Guido van Rossum <guido@python.org>
parents: 3621
diff changeset
42 /* Embedding apps may change this pointer to point to their favorite
606c38535f30 New style interface via pointer variable.
Guido van Rossum <guido@python.org>
parents: 3621
diff changeset
43 collection of frozen modules: */
606c38535f30 New style interface via pointer variable.
Guido van Rossum <guido@python.org>
parents: 3621
diff changeset
44
82649
a06fc2c2342a make some freezing related stuff const
Benjamin Peterson <benjamin@python.org>
parents: 76303
diff changeset
45 const struct _frozen *PyImport_FrozenModules = _PyImport_FrozenModules;