Nuitka-winsvc 1.8.6__cp312-cp312-win_amd64.whl → 1.9.3__cp312-cp312-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. {Nuitka_winsvc-1.8.6.dist-info → Nuitka_winsvc-1.9.3.dist-info}/METADATA +1 -1
  2. {Nuitka_winsvc-1.8.6.dist-info → Nuitka_winsvc-1.9.3.dist-info}/RECORD +212 -203
  3. {Nuitka_winsvc-1.8.6.dist-info → Nuitka_winsvc-1.9.3.dist-info}/WHEEL +1 -1
  4. nuitka/BytecodeCaching.py +4 -1
  5. nuitka/HardImportRegistry.py +348 -0
  6. nuitka/MainControl.py +45 -25
  7. nuitka/OptionParsing.py +31 -20
  8. nuitka/Options.py +47 -16
  9. nuitka/Progress.py +32 -2
  10. nuitka/PythonFlavors.py +1 -1
  11. nuitka/PythonVersions.py +61 -0
  12. nuitka/Tracing.py +25 -12
  13. nuitka/TreeXML.py +5 -5
  14. nuitka/Variables.py +15 -24
  15. nuitka/Version.py +16 -6
  16. nuitka/__main__.py +15 -0
  17. nuitka/__past__.py +15 -17
  18. nuitka/build/Backend.scons +44 -35
  19. nuitka/build/CCompilerVersion.scons +10 -9
  20. nuitka/build/Onefile.scons +11 -26
  21. nuitka/build/SconsCaching.py +2 -0
  22. nuitka/build/SconsCompilerSettings.py +72 -22
  23. nuitka/build/SconsHacks.py +1 -0
  24. nuitka/build/SconsInterface.py +5 -0
  25. nuitka/build/SconsSpawn.py +16 -3
  26. nuitka/build/SconsUtils.py +11 -12
  27. nuitka/build/include/nuitka/checksum_tools.h +0 -4
  28. nuitka/build/include/nuitka/compiled_asyncgen.h +1 -1
  29. nuitka/build/include/nuitka/compiled_coroutine.h +1 -1
  30. nuitka/build/include/nuitka/compiled_frame.h +7 -4
  31. nuitka/build/include/nuitka/compiled_function.h +13 -3
  32. nuitka/build/include/nuitka/compiled_generator.h +1 -1
  33. nuitka/build/include/nuitka/constants.h +2 -0
  34. nuitka/build/include/nuitka/environment_variables.h +45 -0
  35. nuitka/build/include/nuitka/exceptions.h +32 -4
  36. nuitka/build/include/nuitka/filesystem_paths.h +6 -1
  37. nuitka/build/include/nuitka/freelists.h +11 -1
  38. nuitka/build/include/nuitka/helper/dictionaries.h +1 -1
  39. nuitka/build/include/nuitka/helper/import_hard.h +3 -0
  40. nuitka/build/include/nuitka/helpers.h +2 -0
  41. nuitka/build/include/nuitka/importing.h +3 -0
  42. nuitka/build/include/nuitka/prelude.h +17 -6
  43. nuitka/build/include/nuitka/unfreezing.h +1 -1
  44. nuitka/build/inline_copy/bin/scons.py +14 -0
  45. nuitka/build/inline_copy/tqdm/tqdm/__init__.py +2 -2
  46. nuitka/build/inline_copy/tqdm/tqdm/utils.py +14 -8
  47. nuitka/build/inline_copy/zlib/LICENSE +22 -0
  48. nuitka/build/inline_copy/zlib/crc32.c +1049 -0
  49. nuitka/build/inline_copy/zlib/crc32.h +9446 -0
  50. nuitka/build/inline_copy/zlib/zconf.h +551 -0
  51. nuitka/build/inline_copy/zlib/zlib.h +1938 -0
  52. nuitka/build/inline_copy/zlib/zutil.h +275 -0
  53. nuitka/build/static_src/CompiledAsyncgenType.c +41 -41
  54. nuitka/build/static_src/CompiledCodeHelpers.c +14 -7
  55. nuitka/build/static_src/CompiledCoroutineType.c +60 -51
  56. nuitka/build/static_src/CompiledFrameType.c +12 -12
  57. nuitka/build/static_src/CompiledFunctionType.c +149 -28
  58. nuitka/build/static_src/CompiledGeneratorType.c +64 -65
  59. nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +1 -1
  60. nuitka/build/static_src/CompiledMethodType.c +5 -3
  61. nuitka/build/static_src/HelperEnvironmentVariables.c +120 -0
  62. nuitka/build/static_src/HelpersAttributes.c +1 -1
  63. nuitka/build/static_src/HelpersBuiltin.c +1 -1
  64. nuitka/build/static_src/HelpersChecksumTools.c +19 -4
  65. nuitka/build/static_src/HelpersComparisonEq.c +4 -4
  66. nuitka/build/static_src/HelpersComparisonNe.c +4 -4
  67. nuitka/build/static_src/HelpersConstantsBlob.c +40 -23
  68. nuitka/build/static_src/HelpersDictionaries.c +3 -1
  69. nuitka/build/static_src/HelpersDictionariesGenerated.c +9 -9
  70. nuitka/build/static_src/HelpersFilesystemPaths.c +12 -2
  71. nuitka/build/static_src/HelpersImport.c +29 -1
  72. nuitka/build/static_src/HelpersImportHard.c +19 -0
  73. nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +5 -4
  74. nuitka/build/static_src/HelpersPythonPgo.c +5 -5
  75. nuitka/build/static_src/HelpersSafeStrings.c +2 -1
  76. nuitka/build/static_src/HelpersStrings.c +12 -10
  77. nuitka/build/static_src/HelpersTypes.c +1 -1
  78. nuitka/build/static_src/InspectPatcher.c +3 -2
  79. nuitka/build/static_src/MainProgram.c +182 -214
  80. nuitka/build/static_src/MetaPathBasedLoader.c +36 -23
  81. nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +4 -2
  82. nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +38 -2
  83. nuitka/build/static_src/OnefileBootstrap.c +124 -93
  84. nuitka/code_generation/CodeGeneration.py +4 -2
  85. nuitka/code_generation/CodeObjectCodes.py +5 -1
  86. nuitka/code_generation/ConstantCodes.py +4 -0
  87. nuitka/code_generation/Contexts.py +111 -3
  88. nuitka/code_generation/DictCodes.py +5 -5
  89. nuitka/code_generation/FunctionCodes.py +4 -2
  90. nuitka/code_generation/GlobalConstants.py +10 -0
  91. nuitka/code_generation/ImportCodes.py +69 -33
  92. nuitka/code_generation/ModuleCodes.py +4 -1
  93. nuitka/code_generation/Namify.py +6 -5
  94. nuitka/code_generation/YieldCodes.py +3 -3
  95. nuitka/code_generation/templates/CodeTemplatesModules.py +61 -95
  96. nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +3 -3
  97. nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +2 -2
  98. nuitka/distutils/DistutilCommands.py +3 -0
  99. nuitka/finalizations/FinalizeMarkups.py +1 -1
  100. nuitka/freezer/DependsExe.py +2 -1
  101. nuitka/freezer/DllDependenciesPosix.py +11 -1
  102. nuitka/freezer/IncludedEntryPoints.py +54 -16
  103. nuitka/freezer/Onefile.py +7 -3
  104. nuitka/freezer/Standalone.py +39 -17
  105. nuitka/importing/Importing.py +195 -62
  106. nuitka/importing/PreloadedPackages.py +2 -1
  107. nuitka/importing/Recursion.py +98 -27
  108. nuitka/importing/StandardLibrary.py +7 -4
  109. nuitka/nodes/BuiltinOpenNodes.py +28 -1
  110. nuitka/nodes/BuiltinRangeNodes.py +2 -2
  111. nuitka/nodes/BuiltinSumNodes.py +1 -1
  112. nuitka/nodes/ChildrenHavingMixins.py +326 -2
  113. nuitka/nodes/HardImportNodesGenerated.py +141 -38
  114. nuitka/nodes/ImportHardNodes.py +0 -8
  115. nuitka/nodes/ImportNodes.py +267 -361
  116. nuitka/nodes/IterationHandles.py +36 -17
  117. nuitka/nodes/LocalsScopes.py +3 -1
  118. nuitka/nodes/NodeBases.py +8 -14
  119. nuitka/nodes/OperatorNodes.py +9 -9
  120. nuitka/nodes/OutlineNodes.py +3 -3
  121. nuitka/nodes/PackageMetadataNodes.py +19 -9
  122. nuitka/nodes/SliceNodes.py +1 -1
  123. nuitka/nodes/VariableAssignNodes.py +25 -15
  124. nuitka/nodes/VariableRefNodes.py +7 -7
  125. nuitka/nodes/YieldNodes.py +2 -2
  126. nuitka/nodes/shapes/BuiltinTypeShapes.py +81 -6
  127. nuitka/nodes/shapes/ShapeMixins.py +21 -0
  128. nuitka/nodes/shapes/StandardShapes.py +9 -3
  129. nuitka/optimizations/OptimizeBuiltinCalls.py +1 -1
  130. nuitka/optimizations/TraceCollections.py +75 -0
  131. nuitka/pgo/PGO.py +14 -6
  132. nuitka/plugins/PluginBase.py +83 -11
  133. nuitka/plugins/Plugins.py +78 -35
  134. nuitka/plugins/standard/AntiBloatPlugin.py +46 -1
  135. nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +1 -1
  136. nuitka/plugins/standard/DelvewheelPlugin.py +2 -1
  137. nuitka/plugins/standard/DillPlugin.py +3 -99
  138. nuitka/plugins/standard/DllFilesPlugin.py +45 -0
  139. nuitka/plugins/standard/GiPlugin.py +23 -10
  140. nuitka/plugins/standard/GlfwPlugin.py +1 -0
  141. nuitka/plugins/standard/ImplicitImports.py +267 -15
  142. nuitka/plugins/standard/KivyPlugin.py +1 -0
  143. nuitka/plugins/standard/MatplotlibPlugin.py +43 -25
  144. nuitka/plugins/standard/OptionsNannyPlugin.py +5 -6
  145. nuitka/plugins/standard/PkgResourcesPlugin.py +1 -1
  146. nuitka/plugins/standard/PmwPlugin.py +1 -1
  147. nuitka/plugins/standard/PySidePyQtPlugin.py +37 -20
  148. nuitka/plugins/standard/TkinterPlugin.py +44 -30
  149. nuitka/plugins/standard/TransformersPlugin.py +3 -1
  150. nuitka/plugins/standard/standard.nuitka-package.config.yml +522 -86
  151. nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +8 -1
  152. nuitka/reports/CompilationReportReader.py +53 -0
  153. nuitka/reports/LicenseReport.rst.j2 +4 -4
  154. nuitka/reports/Reports.py +129 -47
  155. nuitka/specs/HardImportSpecs.py +6 -0
  156. nuitka/tools/data_composer/DataComposer.py +29 -17
  157. nuitka/tools/onefile_compressor/OnefileCompressor.py +173 -110
  158. nuitka/tools/podman/__main__.py +17 -2
  159. nuitka/tools/scanning/DisplayPackageDLLs.py +11 -2
  160. nuitka/tools/scanning/DisplayPackageData.py +1 -1
  161. nuitka/tools/specialize/CTypeDescriptions.py +36 -27
  162. nuitka/tools/specialize/SpecializeC.py +1 -1
  163. nuitka/tools/specialize/SpecializePython.py +16 -0
  164. nuitka/tools/testing/Common.py +3 -4
  165. nuitka/tools/testing/OutputComparison.py +23 -0
  166. nuitka/tools/testing/SearchModes.py +2 -2
  167. nuitka/tools/testing/compare_with_cpython/__main__.py +13 -4
  168. nuitka/tools/testing/measure_construct_performance/__main__.py +2 -5
  169. nuitka/tools/watch/__main__.py +194 -56
  170. nuitka/tree/Building.py +8 -2
  171. nuitka/tree/ComplexCallHelperFunctions.py +45 -15
  172. nuitka/tree/ReformulationAssignmentStatements.py +18 -12
  173. nuitka/tree/ReformulationCallExpressions.py +1 -1
  174. nuitka/tree/ReformulationClasses.py +11 -5
  175. nuitka/tree/ReformulationClasses3.py +30 -12
  176. nuitka/tree/ReformulationComparisonExpressions.py +4 -2
  177. nuitka/tree/ReformulationContractionExpressions.py +19 -11
  178. nuitka/tree/ReformulationDictionaryCreation.py +9 -3
  179. nuitka/tree/ReformulationExecStatements.py +6 -6
  180. nuitka/tree/ReformulationForLoopStatements.py +5 -5
  181. nuitka/tree/ReformulationFunctionStatements.py +6 -2
  182. nuitka/tree/ReformulationImportStatements.py +7 -2
  183. nuitka/tree/ReformulationLambdaExpressions.py +1 -1
  184. nuitka/tree/ReformulationMatchStatements.py +3 -1
  185. nuitka/tree/ReformulationNamespacePackages.py +7 -3
  186. nuitka/tree/ReformulationPrintStatements.py +1 -1
  187. nuitka/tree/ReformulationSequenceCreation.py +18 -6
  188. nuitka/tree/ReformulationWithStatements.py +8 -8
  189. nuitka/tree/ReformulationYieldExpressions.py +2 -2
  190. nuitka/tree/SourceHandling.py +27 -5
  191. nuitka/tree/VariableClosure.py +11 -1
  192. nuitka/utils/AppDirs.py +2 -2
  193. nuitka/utils/CStrings.py +39 -3
  194. nuitka/utils/CommandLineOptions.py +42 -1
  195. nuitka/utils/Distributions.py +305 -38
  196. nuitka/utils/Download.py +27 -8
  197. nuitka/utils/FileOperations.py +103 -20
  198. nuitka/utils/Hashing.py +2 -3
  199. nuitka/utils/Importing.py +60 -3
  200. nuitka/utils/InstalledPythons.py +31 -36
  201. nuitka/utils/Jinja2.py +11 -5
  202. nuitka/utils/ModuleNames.py +11 -3
  203. nuitka/utils/ReExecute.py +7 -0
  204. nuitka/utils/SharedLibraries.py +38 -14
  205. nuitka/utils/SlotMetaClasses.py +55 -0
  206. nuitka/utils/Utils.py +10 -0
  207. nuitka/utils/Yaml.py +9 -1
  208. nuitka/build/inline_copy/tqdm/tqdm/_tqdm_gui.py +0 -9
  209. nuitka/build/inline_copy/tqdm/tqdm/gui.py +0 -191
  210. {Nuitka_winsvc-1.8.6.data → Nuitka_winsvc-1.9.3.data}/scripts/nuitka-run.bat +0 -0
  211. {Nuitka_winsvc-1.8.6.data → Nuitka_winsvc-1.9.3.data}/scripts/nuitka.bat +0 -0
  212. {Nuitka_winsvc-1.8.6.dist-info → Nuitka_winsvc-1.9.3.dist-info}/LICENSE.txt +0 -0
  213. {Nuitka_winsvc-1.8.6.dist-info → Nuitka_winsvc-1.9.3.dist-info}/entry_points.txt +0 -0
  214. {Nuitka_winsvc-1.8.6.dist-info → Nuitka_winsvc-1.9.3.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,275 @@
1
+ /* zutil.h -- internal interface and configuration of the compression library
2
+ * Copyright (C) 1995-2022 Jean-loup Gailly, Mark Adler
3
+ * For conditions of distribution and use, see copyright notice in zlib.h
4
+ */
5
+
6
+ /* WARNING: this file should *not* be used by applications. It is
7
+ part of the implementation of the compression library and is
8
+ subject to change. Applications should only use zlib.h.
9
+ */
10
+
11
+ /* @(#) $Id$ */
12
+
13
+ #ifndef ZUTIL_H
14
+ #define ZUTIL_H
15
+
16
+ #ifdef HAVE_HIDDEN
17
+ # define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
18
+ #else
19
+ # define ZLIB_INTERNAL
20
+ #endif
21
+
22
+ #include "zlib.h"
23
+
24
+ #if defined(STDC) && !defined(Z_SOLO)
25
+ # if !(defined(_WIN32_WCE) && defined(_MSC_VER))
26
+ # include <stddef.h>
27
+ # endif
28
+ # include <string.h>
29
+ # include <stdlib.h>
30
+ #endif
31
+
32
+ #ifndef local
33
+ # define local static
34
+ #endif
35
+ /* since "static" is used to mean two completely different things in C, we
36
+ define "local" for the non-static meaning of "static", for readability
37
+ (compile with -Dlocal if your debugger can't find static symbols) */
38
+
39
+ typedef unsigned char uch;
40
+ typedef uch FAR uchf;
41
+ typedef unsigned short ush;
42
+ typedef ush FAR ushf;
43
+ typedef unsigned long ulg;
44
+
45
+ #if !defined(Z_U8) && !defined(Z_SOLO) && defined(STDC)
46
+ # include <limits.h>
47
+ # if (ULONG_MAX == 0xffffffffffffffff)
48
+ # define Z_U8 unsigned long
49
+ # elif (ULLONG_MAX == 0xffffffffffffffff)
50
+ # define Z_U8 unsigned long long
51
+ # elif (UINT_MAX == 0xffffffffffffffff)
52
+ # define Z_U8 unsigned
53
+ # endif
54
+ #endif
55
+
56
+ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
57
+ /* (size given to avoid silly warnings with Visual C++) */
58
+
59
+ #define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
60
+
61
+ #define ERR_RETURN(strm,err) \
62
+ return (strm->msg = ERR_MSG(err), (err))
63
+ /* To be used only when the state is known to be valid */
64
+
65
+ /* common constants */
66
+
67
+ #ifndef DEF_WBITS
68
+ # define DEF_WBITS MAX_WBITS
69
+ #endif
70
+ /* default windowBits for decompression. MAX_WBITS is for compression only */
71
+
72
+ #if MAX_MEM_LEVEL >= 8
73
+ # define DEF_MEM_LEVEL 8
74
+ #else
75
+ # define DEF_MEM_LEVEL MAX_MEM_LEVEL
76
+ #endif
77
+ /* default memLevel */
78
+
79
+ #define STORED_BLOCK 0
80
+ #define STATIC_TREES 1
81
+ #define DYN_TREES 2
82
+ /* The three kinds of block type */
83
+
84
+ #define MIN_MATCH 3
85
+ #define MAX_MATCH 258
86
+ /* The minimum and maximum match lengths */
87
+
88
+ #define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
89
+
90
+ /* target dependencies */
91
+
92
+ #if defined(MSDOS) || (defined(WINDOWS) && !defined(WIN32))
93
+ # define OS_CODE 0x00
94
+ # ifndef Z_SOLO
95
+ # if defined(__TURBOC__) || defined(__BORLANDC__)
96
+ # if (__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__))
97
+ /* Allow compilation with ANSI keywords only enabled */
98
+ void _Cdecl farfree( void *block );
99
+ void *_Cdecl farmalloc( unsigned long nbytes );
100
+ # else
101
+ # include <alloc.h>
102
+ # endif
103
+ # else /* MSC or DJGPP */
104
+ # include <malloc.h>
105
+ # endif
106
+ # endif
107
+ #endif
108
+
109
+ #ifdef AMIGA
110
+ # define OS_CODE 1
111
+ #endif
112
+
113
+ #if defined(VAXC) || defined(VMS)
114
+ # define OS_CODE 2
115
+ # define F_OPEN(name, mode) \
116
+ fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
117
+ #endif
118
+
119
+ #ifdef __370__
120
+ # if __TARGET_LIB__ < 0x20000000
121
+ # define OS_CODE 4
122
+ # elif __TARGET_LIB__ < 0x40000000
123
+ # define OS_CODE 11
124
+ # else
125
+ # define OS_CODE 8
126
+ # endif
127
+ #endif
128
+
129
+ #if defined(ATARI) || defined(atarist)
130
+ # define OS_CODE 5
131
+ #endif
132
+
133
+ #ifdef OS2
134
+ # define OS_CODE 6
135
+ # if defined(M_I86) && !defined(Z_SOLO)
136
+ # include <malloc.h>
137
+ # endif
138
+ #endif
139
+
140
+ #if defined(MACOS) || defined(TARGET_OS_MAC)
141
+ # define OS_CODE 7
142
+ # ifndef Z_SOLO
143
+ # if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
144
+ # include <unix.h> /* for fdopen */
145
+ # else
146
+ # ifndef fdopen
147
+ # define fdopen(fd,mode) NULL /* No fdopen() */
148
+ # endif
149
+ # endif
150
+ # endif
151
+ #endif
152
+
153
+ #ifdef __acorn
154
+ # define OS_CODE 13
155
+ #endif
156
+
157
+ #if defined(WIN32) && !defined(__CYGWIN__)
158
+ # define OS_CODE 10
159
+ #endif
160
+
161
+ #ifdef _BEOS_
162
+ # define OS_CODE 16
163
+ #endif
164
+
165
+ #ifdef __TOS_OS400__
166
+ # define OS_CODE 18
167
+ #endif
168
+
169
+ #ifdef __APPLE__
170
+ # define OS_CODE 19
171
+ #endif
172
+
173
+ #if defined(_BEOS_) || defined(RISCOS)
174
+ # define fdopen(fd,mode) NULL /* No fdopen() */
175
+ #endif
176
+
177
+ #if (defined(_MSC_VER) && (_MSC_VER > 600)) && !defined __INTERIX
178
+ # if defined(_WIN32_WCE)
179
+ # define fdopen(fd,mode) NULL /* No fdopen() */
180
+ # else
181
+ # define fdopen(fd,type) _fdopen(fd,type)
182
+ # endif
183
+ #endif
184
+
185
+ #if defined(__BORLANDC__) && !defined(MSDOS)
186
+ #pragma warn -8004
187
+ #pragma warn -8008
188
+ #pragma warn -8066
189
+ #endif
190
+
191
+ /* provide prototypes for these when building zlib without LFS */
192
+ #if !defined(_WIN32) && \
193
+ (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0)
194
+ ZEXTERN uLong ZEXPORT adler32_combine64(uLong, uLong, z_off_t);
195
+ ZEXTERN uLong ZEXPORT crc32_combine64(uLong, uLong, z_off_t);
196
+ ZEXTERN uLong ZEXPORT crc32_combine_gen64(z_off_t);
197
+ #endif
198
+
199
+ /* common defaults */
200
+
201
+ #ifndef OS_CODE
202
+ # define OS_CODE 3 /* assume Unix */
203
+ #endif
204
+
205
+ #ifndef F_OPEN
206
+ # define F_OPEN(name, mode) fopen((name), (mode))
207
+ #endif
208
+
209
+ /* functions */
210
+
211
+ #if defined(pyr) || defined(Z_SOLO)
212
+ # define NO_MEMCPY
213
+ #endif
214
+ #if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__)
215
+ /* Use our own functions for small and medium model with MSC <= 5.0.
216
+ * You may have to use the same strategy for Borland C (untested).
217
+ * The __SC__ check is for Symantec.
218
+ */
219
+ # define NO_MEMCPY
220
+ #endif
221
+ #if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY)
222
+ # define HAVE_MEMCPY
223
+ #endif
224
+ #ifdef HAVE_MEMCPY
225
+ # ifdef SMALL_MEDIUM /* MSDOS small or medium model */
226
+ # define zmemcpy _fmemcpy
227
+ # define zmemcmp _fmemcmp
228
+ # define zmemzero(dest, len) _fmemset(dest, 0, len)
229
+ # else
230
+ # define zmemcpy memcpy
231
+ # define zmemcmp memcmp
232
+ # define zmemzero(dest, len) memset(dest, 0, len)
233
+ # endif
234
+ #else
235
+ void ZLIB_INTERNAL zmemcpy(Bytef* dest, const Bytef* source, uInt len);
236
+ int ZLIB_INTERNAL zmemcmp(const Bytef* s1, const Bytef* s2, uInt len);
237
+ void ZLIB_INTERNAL zmemzero(Bytef* dest, uInt len);
238
+ #endif
239
+
240
+ /* Diagnostic functions */
241
+ #ifdef ZLIB_DEBUG
242
+ # include <stdio.h>
243
+ extern int ZLIB_INTERNAL z_verbose;
244
+ extern void ZLIB_INTERNAL z_error(char *m);
245
+ # define Assert(cond,msg) {if(!(cond)) z_error(msg);}
246
+ # define Trace(x) {if (z_verbose>=0) fprintf x ;}
247
+ # define Tracev(x) {if (z_verbose>0) fprintf x ;}
248
+ # define Tracevv(x) {if (z_verbose>1) fprintf x ;}
249
+ # define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
250
+ # define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
251
+ #else
252
+ # define Assert(cond,msg)
253
+ # define Trace(x)
254
+ # define Tracev(x)
255
+ # define Tracevv(x)
256
+ # define Tracec(c,x)
257
+ # define Tracecv(c,x)
258
+ #endif
259
+
260
+ #ifndef Z_SOLO
261
+ voidpf ZLIB_INTERNAL zcalloc(voidpf opaque, unsigned items,
262
+ unsigned size);
263
+ void ZLIB_INTERNAL zcfree(voidpf opaque, voidpf ptr);
264
+ #endif
265
+
266
+ #define ZALLOC(strm, items, size) \
267
+ (*((strm)->zalloc))((strm)->opaque, (items), (size))
268
+ #define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr))
269
+ #define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
270
+
271
+ /* Reverse the bytes in a 32-bit value */
272
+ #define ZSWAP32(q) ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \
273
+ (((q) & 0xff00) << 8) + (((q) & 0xff) << 24))
274
+
275
+ #endif /* ZUTIL_H */
@@ -135,9 +135,9 @@ static int Nuitka_Asyncgen_set_qualname(struct Nuitka_AsyncgenObject *asyncgen,
135
135
  static PyObject *Nuitka_Asyncgen_get_ag_await(struct Nuitka_AsyncgenObject *asyncgen) {
136
136
  CHECK_OBJECT(asyncgen);
137
137
 
138
- if (asyncgen->m_yieldfrom) {
139
- Py_INCREF(asyncgen->m_yieldfrom);
140
- return asyncgen->m_yieldfrom;
138
+ if (asyncgen->m_yield_from) {
139
+ Py_INCREF(asyncgen->m_yield_from);
140
+ return asyncgen->m_yield_from;
141
141
  } else {
142
142
  Py_INCREF(Py_None);
143
143
  return Py_None;
@@ -200,23 +200,23 @@ static PyObject *Nuitka_YieldFromAsyncgenCore(PyThreadState *tstate, struct Nuit
200
200
  CHECK_OBJECT(asyncgen);
201
201
  CHECK_OBJECT_X(send_value);
202
202
 
203
- PyObject *yieldfrom = asyncgen->m_yieldfrom;
204
- CHECK_OBJECT(yieldfrom);
203
+ PyObject *yield_from = asyncgen->m_yield_from;
204
+ CHECK_OBJECT(yield_from);
205
205
 
206
206
  // Need to make it unaccessible while using it.
207
- asyncgen->m_yieldfrom = NULL;
207
+ asyncgen->m_yield_from = NULL;
208
208
 
209
209
  PyObject *returned_value;
210
- PyObject *yielded = _Nuitka_YieldFromCore(tstate, yieldfrom, send_value, &returned_value, mode);
210
+ PyObject *yielded = _Nuitka_YieldFromCore(tstate, yield_from, send_value, &returned_value, mode);
211
211
 
212
212
  if (yielded == NULL) {
213
- assert(asyncgen->m_yieldfrom == NULL);
214
- Py_DECREF(yieldfrom);
213
+ assert(asyncgen->m_yield_from == NULL);
214
+ Py_DECREF(yield_from);
215
215
 
216
216
  yielded = ((asyncgen_code)asyncgen->m_code)(tstate, asyncgen, returned_value);
217
217
  } else {
218
- assert(asyncgen->m_yieldfrom == NULL);
219
- asyncgen->m_yieldfrom = yieldfrom;
218
+ assert(asyncgen->m_yield_from == NULL);
219
+ asyncgen->m_yield_from = yield_from;
220
220
  }
221
221
 
222
222
  return yielded;
@@ -378,7 +378,7 @@ static PySendResult _Nuitka_Asyncgen_sendR(PyThreadState *tstate, struct Nuitka_
378
378
 
379
379
  PyObject *yielded;
380
380
 
381
- if (asyncgen->m_yieldfrom == NULL) {
381
+ if (asyncgen->m_yield_from == NULL) {
382
382
  yielded = ((asyncgen_code)asyncgen->m_code)(tstate, asyncgen, value);
383
383
  } else {
384
384
  // This does not release the value if any, so we need to do it afterwards.
@@ -386,9 +386,9 @@ static PySendResult _Nuitka_Asyncgen_sendR(PyThreadState *tstate, struct Nuitka_
386
386
  Py_XDECREF(value);
387
387
  }
388
388
 
389
- // If the asyncgen returns with m_yieldfrom set, it wants us to yield
389
+ // If the asyncgen returns with m_yield_from set, it wants us to yield
390
390
  // from that value from now on.
391
- while (yielded == NULL && asyncgen->m_yieldfrom != NULL) {
391
+ while (yielded == NULL && asyncgen->m_yield_from != NULL) {
392
392
  yielded = Nuitka_YieldFromAsyncgenNext(tstate, asyncgen);
393
393
  }
394
394
 
@@ -476,7 +476,7 @@ static PySendResult _Nuitka_Asyncgen_sendR(PyThreadState *tstate, struct Nuitka_
476
476
  return PYGEN_ERROR;
477
477
  } else {
478
478
  // For normal yield, wrap the result value before returning.
479
- if (asyncgen->m_yieldfrom == NULL) {
479
+ if (asyncgen->m_yield_from == NULL) {
480
480
  // Transferred ownership to constructor of Nuitka_AsyncgenValueWrapper
481
481
  PyObject *wrapped = Nuitka_AsyncgenValueWrapper_New(yielded);
482
482
  yielded = wrapped;
@@ -565,18 +565,18 @@ static PyObject *_Nuitka_Asyncgen_throw2(PyThreadState *tstate, struct Nuitka_As
565
565
 
566
566
  #if _DEBUG_ASYNCGEN
567
567
  PRINT_ASYNCGEN_STATUS("Enter", asyncgen);
568
- PRINT_COROUTINE_VALUE("yieldfrom", asyncgen->m_yieldfrom);
568
+ PRINT_COROUTINE_VALUE("yield_from", asyncgen->m_yield_from);
569
569
  PRINT_EXCEPTION(exception_type, exception_value, exception_tb);
570
570
  PRINT_NEW_LINE();
571
571
  #endif
572
572
 
573
- if (asyncgen->m_yieldfrom != NULL) {
573
+ if (asyncgen->m_yield_from != NULL) {
574
574
  // TODO: This check is not done for coroutines, correct?
575
575
  if (close_on_genexit) {
576
576
  if (EXCEPTION_MATCH_BOOL_SINGLE(tstate, exception_type, PyExc_GeneratorExit)) {
577
577
  // Asynchronous generators need to close the yield_from.
578
578
  Nuitka_MarkAsyncgenAsRunning(asyncgen);
579
- bool res = Nuitka_gen_close_iter(tstate, asyncgen->m_yieldfrom);
579
+ bool res = Nuitka_gen_close_iter(tstate, asyncgen->m_yield_from);
580
580
  Nuitka_MarkAsyncgenAsNotRunning(asyncgen);
581
581
 
582
582
  if (res == false) {
@@ -597,13 +597,13 @@ static PyObject *_Nuitka_Asyncgen_throw2(PyThreadState *tstate, struct Nuitka_As
597
597
 
598
598
  #if _DEBUG_ASYNCGEN
599
599
  PRINT_ASYNCGEN_STATUS("Passing to yielded from", asyncgen);
600
- PRINT_COROUTINE_VALUE("m_yieldfrom", asyncgen->m_yieldfrom);
600
+ PRINT_COROUTINE_VALUE("m_yield_from", asyncgen->m_yield_from);
601
601
  PRINT_NEW_LINE();
602
602
  #endif
603
603
 
604
604
  #if NUITKA_UNCOMPILED_THROW_INTEGRATION
605
- if (PyGen_CheckExact(asyncgen->m_yieldfrom) || PyCoro_CheckExact(asyncgen->m_yieldfrom)) {
606
- PyGenObject *gen = (PyGenObject *)asyncgen->m_yieldfrom;
605
+ if (PyGen_CheckExact(asyncgen->m_yield_from) || PyCoro_CheckExact(asyncgen->m_yield_from)) {
606
+ PyGenObject *gen = (PyGenObject *)asyncgen->m_yield_from;
607
607
 
608
608
  // Transferred exception ownership to "Nuitka_UncompiledGenerator_throw".
609
609
  Nuitka_MarkAsyncgenAsRunning(asyncgen);
@@ -611,36 +611,36 @@ static PyObject *_Nuitka_Asyncgen_throw2(PyThreadState *tstate, struct Nuitka_As
611
611
  Nuitka_MarkAsyncgenAsNotRunning(asyncgen);
612
612
  } else
613
613
  #endif
614
- if (Nuitka_Generator_Check(asyncgen->m_yieldfrom)) {
615
- struct Nuitka_GeneratorObject *gen = ((struct Nuitka_GeneratorObject *)asyncgen->m_yieldfrom);
614
+ if (Nuitka_Generator_Check(asyncgen->m_yield_from)) {
615
+ struct Nuitka_GeneratorObject *gen = ((struct Nuitka_GeneratorObject *)asyncgen->m_yield_from);
616
616
  // Transferred exception ownership to "_Nuitka_Generator_throw2".
617
617
  Nuitka_MarkAsyncgenAsRunning(asyncgen);
618
618
  ret = _Nuitka_Generator_throw2(tstate, gen, exception_type, exception_value, exception_tb);
619
619
  Nuitka_MarkAsyncgenAsNotRunning(asyncgen);
620
- } else if (Nuitka_Coroutine_Check(asyncgen->m_yieldfrom)) {
621
- struct Nuitka_CoroutineObject *coro = ((struct Nuitka_CoroutineObject *)asyncgen->m_yieldfrom);
620
+ } else if (Nuitka_Coroutine_Check(asyncgen->m_yield_from)) {
621
+ struct Nuitka_CoroutineObject *coro = ((struct Nuitka_CoroutineObject *)asyncgen->m_yield_from);
622
622
  // Transferred exception ownership to "_Nuitka_Coroutine_throw2".
623
623
  Nuitka_MarkAsyncgenAsRunning(asyncgen);
624
624
  ret = _Nuitka_Coroutine_throw2(tstate, coro, true, exception_type, exception_value, exception_tb);
625
625
  Nuitka_MarkAsyncgenAsNotRunning(asyncgen);
626
- } else if (Nuitka_CoroutineWrapper_Check(asyncgen->m_yieldfrom)) {
626
+ } else if (Nuitka_CoroutineWrapper_Check(asyncgen->m_yield_from)) {
627
627
  struct Nuitka_CoroutineObject *coro =
628
- ((struct Nuitka_CoroutineWrapperObject *)asyncgen->m_yieldfrom)->m_coroutine;
628
+ ((struct Nuitka_CoroutineWrapperObject *)asyncgen->m_yield_from)->m_coroutine;
629
629
 
630
630
  // Transferred exception ownership to "_Nuitka_Coroutine_throw2".
631
631
  Nuitka_MarkAsyncgenAsRunning(asyncgen);
632
632
  ret = _Nuitka_Coroutine_throw2(tstate, coro, true, exception_type, exception_value, exception_tb);
633
633
  Nuitka_MarkAsyncgenAsNotRunning(asyncgen);
634
- } else if (Nuitka_AsyncgenAsend_Check(asyncgen->m_yieldfrom)) {
634
+ } else if (Nuitka_AsyncgenAsend_Check(asyncgen->m_yield_from)) {
635
635
  struct Nuitka_AsyncgenAsendObject *asyncgen_asend =
636
- ((struct Nuitka_AsyncgenAsendObject *)asyncgen->m_yieldfrom);
636
+ ((struct Nuitka_AsyncgenAsendObject *)asyncgen->m_yield_from);
637
637
 
638
638
  // Transferred exception ownership to "_Nuitka_AsyncgenAsend_throw2".
639
639
  Nuitka_MarkAsyncgenAsRunning(asyncgen);
640
640
  ret = _Nuitka_AsyncgenAsend_throw2(tstate, asyncgen_asend, exception_type, exception_value, exception_tb);
641
641
  Nuitka_MarkAsyncgenAsNotRunning(asyncgen);
642
642
  } else {
643
- PyObject *meth = PyObject_GetAttr(asyncgen->m_yieldfrom, const_str_plain_throw);
643
+ PyObject *meth = PyObject_GetAttr(asyncgen->m_yield_from, const_str_plain_throw);
644
644
  if (unlikely(meth == NULL)) {
645
645
  if (!PyErr_ExceptionMatches(PyExc_AttributeError)) {
646
646
  // Release exception, we are done with it now.
@@ -661,7 +661,7 @@ static PyObject *_Nuitka_Asyncgen_throw2(PyThreadState *tstate, struct Nuitka_As
661
661
 
662
662
  #if 0
663
663
  // TODO: Add slow mode traces.
664
- PRINT_ITEM(coroutine->m_yieldfrom);
664
+ PRINT_ITEM(coroutine->m_yield_from);
665
665
  PRINT_NEW_LINE();
666
666
  #endif
667
667
 
@@ -683,17 +683,17 @@ static PyObject *_Nuitka_Asyncgen_throw2(PyThreadState *tstate, struct Nuitka_As
683
683
  if (_PyGen_FetchStopIterationValue(&val) == 0) {
684
684
  CHECK_OBJECT(val);
685
685
 
686
- asyncgen->m_yieldfrom = NULL;
686
+ asyncgen->m_yield_from = NULL;
687
687
 
688
688
  // Return value, not to continue with yielding from.
689
- if (asyncgen->m_yieldfrom != NULL) {
690
- CHECK_OBJECT(asyncgen->m_yieldfrom);
689
+ if (asyncgen->m_yield_from != NULL) {
690
+ CHECK_OBJECT(asyncgen->m_yield_from);
691
691
  #if _DEBUG_ASYNCGEN
692
692
  PRINT_ASYNCGEN_STATUS("Yield from removal:", asyncgen);
693
- PRINT_COROUTINE_VALUE("yieldfrom", asyncgen->m_yieldfrom);
693
+ PRINT_COROUTINE_VALUE("yield_from", asyncgen->m_yield_from);
694
694
  #endif
695
- Py_DECREF(asyncgen->m_yieldfrom);
696
- asyncgen->m_yieldfrom = NULL;
695
+ Py_DECREF(asyncgen->m_yield_from);
696
+ asyncgen->m_yield_from = NULL;
697
697
  }
698
698
 
699
699
  #if _DEBUG_ASYNCGEN
@@ -706,7 +706,7 @@ static PyObject *_Nuitka_Asyncgen_throw2(PyThreadState *tstate, struct Nuitka_As
706
706
  } else {
707
707
  #if _DEBUG_ASYNCGEN
708
708
  PRINT_ASYNCGEN_STATUS("Sending exception value into ourselves", asyncgen);
709
- PRINT_COROUTINE_VALUE("yieldfrom", asyncgen->m_yieldfrom);
709
+ PRINT_COROUTINE_VALUE("yield_from", asyncgen->m_yield_from);
710
710
  PRINT_CURRENT_EXCEPTION();
711
711
  PRINT_NEW_LINE();
712
712
  #endif
@@ -774,7 +774,7 @@ throw_here:
774
774
 
775
775
  #if _DEBUG_ASYNCGEN
776
776
  PRINT_ASYNCGEN_STATUS("Leave", asyncgen);
777
- PRINT_COROUTINE_VALUE("yieldfrom", asyncgen->m_yieldfrom);
777
+ PRINT_COROUTINE_VALUE("yield_from", asyncgen->m_yield_from);
778
778
  PRINT_CURRENT_EXCEPTION();
779
779
  PRINT_NEW_LINE();
780
780
  #endif
@@ -1059,7 +1059,7 @@ static PyObject *Nuitka_Asyncgen_tp_repr(struct Nuitka_AsyncgenObject *asyncgen)
1059
1059
  static int Nuitka_Asyncgen_tp_traverse(struct Nuitka_AsyncgenObject *asyncgen, visitproc visit, void *arg) {
1060
1060
  CHECK_OBJECT(asyncgen);
1061
1061
 
1062
- Py_VISIT(asyncgen->m_yieldfrom);
1062
+ Py_VISIT(asyncgen->m_yield_from);
1063
1063
 
1064
1064
  for (Py_ssize_t i = 0; i < asyncgen->m_closure_given; i++) {
1065
1065
  Py_VISIT(asyncgen->m_closure[i]);
@@ -1195,7 +1195,7 @@ PyObject *Nuitka_Asyncgen_New(asyncgen_code code, PyObject *module, PyObject *na
1195
1195
  result->m_qualname = qualname;
1196
1196
  Py_INCREF(qualname);
1197
1197
 
1198
- result->m_yieldfrom = NULL;
1198
+ result->m_yield_from = NULL;
1199
1199
 
1200
1200
  memcpy(&result->m_closure[0], closure, closure_given * sizeof(struct Nuitka_CellObject *));
1201
1201
  result->m_closure_given = closure_given;
@@ -67,6 +67,7 @@ static void _initBuiltinTypeMethods(void) {
67
67
  #include "HelpersStrings.c"
68
68
  #include "HelpersTuples.c"
69
69
 
70
+ #include "HelperEnvironmentVariables.c"
70
71
  #include "HelpersFilesystemPaths.c"
71
72
  #include "HelpersSafeStrings.c"
72
73
 
@@ -1868,8 +1869,11 @@ static char const *getDllDirectory(void) {
1868
1869
 
1869
1870
  #else
1870
1871
  Dl_info where;
1871
- int res = dladdr((void *)getDllDirectory, &where);
1872
- assert(res != 0);
1872
+
1873
+ {
1874
+ NUITKA_MAY_BE_UNUSED int res = dladdr((void *)getDllDirectory, &where);
1875
+ assert(res != 0);
1876
+ }
1873
1877
 
1874
1878
  return dirname((char *)where.dli_fname);
1875
1879
  #endif
@@ -1902,10 +1906,13 @@ void _initBuiltinModule(void) {
1902
1906
  assert(PyDict_Check(dict_builtin));
1903
1907
 
1904
1908
  #ifdef _NUITKA_STANDALONE
1905
- int res = PyDict_SetItemString((PyObject *)dict_builtin, "__nuitka_binary_dir", getBinaryDirectoryObject(true));
1906
- assert(res == 0);
1907
- PyDict_SetItemString((PyObject *)dict_builtin, "__nuitka_binary_exe", getBinaryFilenameObject(true));
1908
- assert(res == 0);
1909
+ {
1910
+ NUITKA_MAY_BE_UNUSED int res =
1911
+ PyDict_SetItemString((PyObject *)dict_builtin, "__nuitka_binary_dir", getBinaryDirectoryObject(true));
1912
+ assert(res == 0);
1913
+ PyDict_SetItemString((PyObject *)dict_builtin, "__nuitka_binary_exe", getBinaryFilenameObject(true));
1914
+ assert(res == 0);
1915
+ }
1909
1916
  #endif
1910
1917
 
1911
1918
  // init Nuitka_BuiltinModule_Type, PyType_Ready won't copy all member from
@@ -1927,7 +1934,7 @@ void _initBuiltinModule(void) {
1927
1934
  Nuitka_BuiltinModule_Type.tp_alloc = PyModule_Type.tp_alloc;
1928
1935
  Nuitka_BuiltinModule_Type.tp_new = PyModule_Type.tp_new;
1929
1936
  Nuitka_BuiltinModule_Type.tp_free = PyModule_Type.tp_free;
1930
- int res2 = PyType_Ready(&Nuitka_BuiltinModule_Type);
1937
+ NUITKA_MAY_BE_UNUSED int res2 = PyType_Ready(&Nuitka_BuiltinModule_Type);
1931
1938
  assert(res2 >= 0);
1932
1939
 
1933
1940
  // Replace type of builtin module to take over.