mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Patch #602345 by Neal Norwitz and me: add -B option and PYTHONDONTWRITEBYTECODE envvar to skip writing bytecode.
This commit is contained in:
		
							parent
							
								
									b3255ed8c9
								
							
						
					
					
						commit
						2da0fceba7
					
				
					 8 changed files with 56 additions and 8 deletions
				
			
		|  | @ -950,8 +950,11 @@ load_source_module(char *name, char *pathname, FILE *fp) | |||
| 		if (Py_VerboseFlag) | ||||
| 			PySys_WriteStderr("import %s # from %s\n", | ||||
| 				name, pathname); | ||||
| 		if (cpathname) | ||||
| 			write_compiled_module(co, cpathname, mtime); | ||||
| 		if (cpathname) { | ||||
| 			PyObject *ro = PySys_GetObject("dont_write_bytecode"); | ||||
| 			if (ro == NULL || !PyObject_IsTrue(ro)) | ||||
| 				write_compiled_module(co, cpathname, mtime); | ||||
| 		} | ||||
| 	} | ||||
| 	m = PyImport_ExecCodeModuleEx(name, (PyObject *)co, pathname); | ||||
| 	Py_DECREF(co); | ||||
|  |  | |||
|  | @ -72,6 +72,7 @@ int Py_VerboseFlag; /* Needed by import.c */ | |||
| int Py_InteractiveFlag; /* Needed by Py_FdIsInteractive() below */ | ||||
| int Py_InspectFlag; /* Needed to determine whether to exit at SystemError */ | ||||
| int Py_NoSiteFlag; /* Suppress 'import site' */ | ||||
| int Py_DontWriteBytecodeFlag; /* Suppress writing bytecode files (*.py[co]) */ | ||||
| int Py_UseClassExceptionsFlag = 1; /* Needed by bltinmodule.c: deprecated */ | ||||
| int Py_FrozenFlag; /* Needed by getpath.c */ | ||||
| int Py_UnicodeFlag = 0; /* Needed by compile.c */ | ||||
|  | @ -172,6 +173,8 @@ Py_InitializeEx(int install_sigs) | |||
| 		Py_VerboseFlag = add_flag(Py_VerboseFlag, p); | ||||
| 	if ((p = Py_GETENV("PYTHONOPTIMIZE")) && *p != '\0') | ||||
| 		Py_OptimizeFlag = add_flag(Py_OptimizeFlag, p); | ||||
| 	if ((p = Py_GETENV("PYTHONDONTWRITEBYTECODE")) && *p != '\0') | ||||
| 		Py_DontWriteBytecodeFlag = add_flag(Py_DontWriteBytecodeFlag, p); | ||||
| 
 | ||||
| 	interp = PyInterpreterState_New(); | ||||
| 	if (interp == NULL) | ||||
|  |  | |||
|  | @ -1128,6 +1128,9 @@ _PySys_Init(void) | |||
| 	v = Py_BuildValue("(ssz)", "CPython", branch, svn_revision); | ||||
| 	PyDict_SetItemString(sysdict, "subversion", v); | ||||
| 	Py_XDECREF(v); | ||||
|         PyDict_SetItemString(sysdict, "dont_write_bytecode", | ||||
|                              v = PyBool_FromLong(Py_DontWriteBytecodeFlag)); | ||||
|         Py_XDECREF(v); | ||||
| 	/*
 | ||||
| 	 * These release level checks are mutually exclusive and cover | ||||
| 	 * the field, so don't get too fancy with the pre-processor! | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Georg Brandl
						Georg Brandl