Mercurial > cpython-lru_cache-weakref
annotate Python/frozen.c @ 24155:9456a2ccda61 legacy-trunk
The Py_REF_DEBUG/COUNT_ALLOCS/Py_TRACE_REFS macro minefield: added
more trivial lexical helper macros so that uses of these guys expand
to nothing at all when they're not enabled. This should help sub-
standard compilers that can't do a good job of optimizing away the
previous "(void)0" expressions.
Py_DECREF: There's only one definition of this now. Yay! That
was that last one in the family defined multiple times in an #ifdef
maze.
Py_FatalError(): Changed the char* signature to const char*.
_Py_NegativeRefcount(): New helper function for the Py_REF_DEBUG
expansion of Py_DECREF. Calling an external function cuts down on
the volume of generated code. The previous inline expansion of abort()
didn't work as intended on Windows (the program often kept going, and
the error msg scrolled off the screen unseen). _Py_NegativeRefcount
calls Py_FatalError instead, which captures our best knowledge of
how to abort effectively across platforms.
| author | Tim Peters <tim.peters@gmail.com> |
|---|---|
| date | Tue, 09 Jul 2002 02:57:01 +0000 |
| parents | 46275f9e7407 |
| children | cf5928fab108 |
| 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" |
|
f158edccc72c
grand renaming; added copyright to some files
Guido van Rossum <guido@python.org>
parents:
2896
diff
changeset
|
5 |
| 2896 | 6 /* In order to test the support for frozen modules, by default we |
| 7 define a single frozen module, __hello__. Loading it will print | |
| 8 some famous words... */ | |
| 9 | |
|
20526
1f3c1e831f21
Fix the frozen bytecode for __hello__ (betcha didn't know that existed
Guido van Rossum <guido@python.org>
parents:
14375
diff
changeset
|
10 /* To regenerate this data after the bytecode or marshal format has changed, |
|
1f3c1e831f21
Fix the frozen bytecode for __hello__ (betcha didn't know that existed
Guido van Rossum <guido@python.org>
parents:
14375
diff
changeset
|
11 go to ../Tools/freeze/ and freeze the hello.py file; then copy and paste |
|
1f3c1e831f21
Fix the frozen bytecode for __hello__ (betcha didn't know that existed
Guido van Rossum <guido@python.org>
parents:
14375
diff
changeset
|
12 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
|
13 |
| 2896 | 14 static unsigned char M___hello__[] = { |
|
23852
46275f9e7407
Fix SF bug # 561858 Assertion with very long lists
Neal Norwitz <nnorwitz@gmail.com>
parents:
20528
diff
changeset
|
15 99,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, |
|
46275f9e7407
Fix SF bug # 561858 Assertion with very long lists
Neal Norwitz <nnorwitz@gmail.com>
parents:
20528
diff
changeset
|
16 0,115,15,0,0,0,127,0,0,127,1,0,100,0,0,71, |
|
46275f9e7407
Fix SF bug # 561858 Assertion with very long lists
Neal Norwitz <nnorwitz@gmail.com>
parents:
20528
diff
changeset
|
17 72,100,1,0,83,40,2,0,0,0,115,14,0,0,0,72, |
|
46275f9e7407
Fix SF bug # 561858 Assertion with very long lists
Neal Norwitz <nnorwitz@gmail.com>
parents:
20528
diff
changeset
|
18 101,108,108,111,32,119,111,114,108,100,46,46,46,78,40,0, |
|
46275f9e7407
Fix SF bug # 561858 Assertion with very long lists
Neal Norwitz <nnorwitz@gmail.com>
parents:
20528
diff
changeset
|
19 0,0,0,40,0,0,0,0,40,0,0,0,0,40,0,0, |
|
46275f9e7407
Fix SF bug # 561858 Assertion with very long lists
Neal Norwitz <nnorwitz@gmail.com>
parents:
20528
diff
changeset
|
20 0,0,115,8,0,0,0,104,101,108,108,111,46,112,121,115, |
|
46275f9e7407
Fix SF bug # 561858 Assertion with very long lists
Neal Norwitz <nnorwitz@gmail.com>
parents:
20528
diff
changeset
|
21 1,0,0,0,63,1,0,0,0,115,0,0,0,0, |
| 2896 | 22 }; |
| 23 | |
|
20528
cb334a8c8dd2
Squash compiler wng about signed/unsigned mismatch.
Tim Peters <tim.peters@gmail.com>
parents:
20526
diff
changeset
|
24 #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
|
25 |
|
3684
606c38535f30
New style interface via pointer variable.
Guido van Rossum <guido@python.org>
parents:
3621
diff
changeset
|
26 static struct _frozen _PyImport_FrozenModules[] = { |
|
7845
949b59820185
Add primitive test for frozen package.
Guido van Rossum <guido@python.org>
parents:
5885
diff
changeset
|
27 /* Test module */ |
|
20526
1f3c1e831f21
Fix the frozen bytecode for __hello__ (betcha didn't know that existed
Guido van Rossum <guido@python.org>
parents:
14375
diff
changeset
|
28 {"__hello__", M___hello__, SIZE}, |
|
7845
949b59820185
Add primitive test for frozen package.
Guido van Rossum <guido@python.org>
parents:
5885
diff
changeset
|
29 /* Test package (negative size indicates package-ness) */ |
|
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 {"__phello__", M___hello__, -SIZE}, |
|
1f3c1e831f21
Fix the frozen bytecode for __hello__ (betcha didn't know that existed
Guido van Rossum <guido@python.org>
parents:
14375
diff
changeset
|
31 {"__phello__.spam", M___hello__, SIZE}, |
| 2896 | 32 {0, 0, 0} /* sentinel */ |
| 33 }; | |
|
3684
606c38535f30
New style interface via pointer variable.
Guido van Rossum <guido@python.org>
parents:
3621
diff
changeset
|
34 |
|
606c38535f30
New style interface via pointer variable.
Guido van Rossum <guido@python.org>
parents:
3621
diff
changeset
|
35 /* 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
|
36 collection of frozen modules: */ |
|
606c38535f30
New style interface via pointer variable.
Guido van Rossum <guido@python.org>
parents:
3621
diff
changeset
|
37 |
|
606c38535f30
New style interface via pointer variable.
Guido van Rossum <guido@python.org>
parents:
3621
diff
changeset
|
38 struct _frozen *PyImport_FrozenModules = _PyImport_FrozenModules; |
