Merge ast-branch to head

This change implements a new bytecode compiler, based on a
transformation of the parse tree to an abstract syntax defined in
Parser/Python.asdl.

The compiler implementation is not complete, but it is in stable
enough shape to run the entire test suite excepting two disabled
tests.
diff --git a/PCbuild/pythoncore.vcproj b/PCbuild/pythoncore.vcproj
index 945fd5c..ff9e48b 100644
--- a/PCbuild/pythoncore.vcproj
+++ b/PCbuild/pythoncore.vcproj
@@ -3,6 +3,7 @@
 	ProjectType="Visual C++"
 	Version="7.10"
 	Name="pythoncore"
+	ProjectGUID="{7AFA1F0B-A8A1-455A-A832-BF263404BBEF}"
 	SccProjectName="pythoncore"
 	SccLocalPath="..">
 	<Platforms>
@@ -478,6 +479,12 @@
 			</FileConfiguration>
 		</File>
 		<File
+			RelativePath="..\Python\asdl.c">
+		</File>
+		<File
+			RelativePath="..\Python\ast.c">
+		</File>
+		<File
 			RelativePath="..\Modules\audioop.c">
 			<FileConfiguration
 				Name="Release|Win32">
@@ -802,34 +809,10 @@
 			</FileConfiguration>
 		</File>
 		<File
-			RelativePath="..\Modules\collectionsmodule.c">
+			RelativePath="..\Objects\codeobject.c">
 		</File>
 		<File
-			RelativePath="..\Python\compile.c">
-			<FileConfiguration
-				Name="Release|Win32">
-				<Tool
-					Name="VCCLCompilerTool"
-					Optimization="2"
-					AdditionalIncludeDirectories=""
-					PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;USE_DL_EXPORT;$(NoInherit)"/>
-			</FileConfiguration>
-			<FileConfiguration
-				Name="Debug|Win32">
-				<Tool
-					Name="VCCLCompilerTool"
-					Optimization="0"
-					AdditionalIncludeDirectories=""
-					PreprocessorDefinitions="_DEBUG;USE_DL_EXPORT;WIN32;_WINDOWS;$(NoInherit)"/>
-			</FileConfiguration>
-			<FileConfiguration
-				Name="ReleaseItanium|Win32">
-				<Tool
-					Name="VCCLCompilerTool"
-					Optimization="2"
-					AdditionalIncludeDirectories=""
-					PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;USE_DL_EXPORT;$(NoInherit)"/>
-			</FileConfiguration>
+			RelativePath="..\Modules\collectionsmodule.c">
 		</File>
 		<File
 			RelativePath="..\Objects\complexobject.c">
@@ -1186,6 +1169,9 @@
 			</FileConfiguration>
 		</File>
 		<File
+			RelativePath="..\Parser\firstsets.c">
+		</File>
+		<File
 			RelativePath="..\Objects\floatobject.c">
 			<FileConfiguration
 				Name="Release|Win32">
@@ -1321,6 +1307,33 @@
 			</FileConfiguration>
 		</File>
 		<File
+			RelativePath="..\Modules\functionalmodule.c">
+			<FileConfiguration
+				Name="Release|Win32">
+				<Tool
+					Name="VCCLCompilerTool"
+					Optimization="2"
+					AdditionalIncludeDirectories=""
+					PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;USE_DL_EXPORT;$(NoInherit)"/>
+			</FileConfiguration>
+			<FileConfiguration
+				Name="Debug|Win32">
+				<Tool
+					Name="VCCLCompilerTool"
+					Optimization="0"
+					AdditionalIncludeDirectories=""
+					PreprocessorDefinitions="_DEBUG;USE_DL_EXPORT;WIN32;_WINDOWS;$(NoInherit)"/>
+			</FileConfiguration>
+			<FileConfiguration
+				Name="ReleaseItanium|Win32">
+				<Tool
+					Name="VCCLCompilerTool"
+					Optimization="2"
+					AdditionalIncludeDirectories=""
+					PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;USE_DL_EXPORT;$(NoInherit)"/>
+			</FileConfiguration>
+		</File>
+		<File
 			RelativePath="..\Python\future.c">
 			<FileConfiguration
 				Name="Release|Win32">
@@ -1648,6 +1661,9 @@
 			</FileConfiguration>
 		</File>
 		<File
+			RelativePath="..\Parser\grammar.c">
+		</File>
+		<File
 			RelativePath="..\Parser\grammar1.c">
 			<FileConfiguration
 				Name="Release|Win32">
@@ -2302,6 +2318,9 @@
 			</FileConfiguration>
 		</File>
 		<File
+			RelativePath="..\Python\compile.c">
+		</File>
+		<File
 			RelativePath="..\Parser\node.c">
 			<FileConfiguration
 				Name="Release|Win32">
@@ -2437,9 +2456,6 @@
 			</FileConfiguration>
 		</File>
 		<File
-			RelativePath="..\Modules\parsermodule.c">
-		</File>
-		<File
 			RelativePath="..\Parser\parsetok.c">
 			<FileConfiguration
 				Name="Release|Win32">
@@ -2467,6 +2483,9 @@
 			</FileConfiguration>
 		</File>
 		<File
+			RelativePath="..\Parser\pgen.c">
+		</File>
+		<File
 			RelativePath="..\Modules\posixmodule.c">
 			<FileConfiguration
 				Name="Release|Win32">
@@ -2551,6 +2570,9 @@
 			RelativePath="..\Python\pystrtod.c">
 		</File>
 		<File
+			RelativePath="..\Python\Python-ast.c">
+		</File>
+		<File
 			RelativePath="..\PC\python_nt.rc">
 			<FileConfiguration
 				Name="Release|Win32">
@@ -2764,6 +2786,7 @@
 			</FileConfiguration>
 		</File>
 		<File
+<<<<<<< pythoncore.vcproj
                         RelativePath="..\Modules\sha256module.c">
 			<FileConfiguration
 				Name="Release|Win32">
@@ -2819,6 +2842,63 @@
 		</File>
 		<File
 			RelativePath="..\Modules\signalmodule.c">
+=======
+                        RelativePath="..\Modules\sha256module.c">
+>>>>>>> 1.26.2.3
+			<FileConfiguration
+				Name="Release|Win32">
+				<Tool
+					Name="VCCLCompilerTool"
+					Optimization="2"
+					AdditionalIncludeDirectories=""
+					PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;USE_DL_EXPORT;$(NoInherit)"/>
+			</FileConfiguration>
+			<FileConfiguration
+				Name="Debug|Win32">
+				<Tool
+					Name="VCCLCompilerTool"
+					Optimization="0"
+					AdditionalIncludeDirectories=""
+					PreprocessorDefinitions="_DEBUG;USE_DL_EXPORT;WIN32;_WINDOWS;$(NoInherit)"/>
+			</FileConfiguration>
+			<FileConfiguration
+				Name="ReleaseItanium|Win32">
+				<Tool
+					Name="VCCLCompilerTool"
+					Optimization="2"
+					AdditionalIncludeDirectories=""
+					PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;USE_DL_EXPORT;$(NoInherit)"/>
+			</FileConfiguration>
+		</File>
+		<File
+                        RelativePath="..\Modules\sha512module.c">
+			<FileConfiguration
+				Name="Release|Win32">
+				<Tool
+					Name="VCCLCompilerTool"
+					Optimization="2"
+					AdditionalIncludeDirectories=""
+					PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;USE_DL_EXPORT;$(NoInherit)"/>
+			</FileConfiguration>
+			<FileConfiguration
+				Name="Debug|Win32">
+				<Tool
+					Name="VCCLCompilerTool"
+					Optimization="0"
+					AdditionalIncludeDirectories=""
+					PreprocessorDefinitions="_DEBUG;USE_DL_EXPORT;WIN32;_WINDOWS;$(NoInherit)"/>
+			</FileConfiguration>
+			<FileConfiguration
+				Name="ReleaseItanium|Win32">
+				<Tool
+					Name="VCCLCompilerTool"
+					Optimization="2"
+					AdditionalIncludeDirectories=""
+					PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;USE_DL_EXPORT;$(NoInherit)"/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\Modules\signalmodule.c">
 			<FileConfiguration
 				Name="Release|Win32">
 				<Tool
@@ -3145,31 +3225,7 @@
 			</FileConfiguration>
 		</File>
 		<File
-			RelativePath="..\Parser\tokenizer.c">
-			<FileConfiguration
-				Name="Release|Win32">
-				<Tool
-					Name="VCCLCompilerTool"
-					Optimization="2"
-					AdditionalIncludeDirectories=""
-					PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;USE_DL_EXPORT;$(NoInherit)"/>
-			</FileConfiguration>
-			<FileConfiguration
-				Name="Debug|Win32">
-				<Tool
-					Name="VCCLCompilerTool"
-					Optimization="0"
-					AdditionalIncludeDirectories=""
-					PreprocessorDefinitions="_DEBUG;USE_DL_EXPORT;WIN32;_WINDOWS;$(NoInherit)"/>
-			</FileConfiguration>
-			<FileConfiguration
-				Name="ReleaseItanium|Win32">
-				<Tool
-					Name="VCCLCompilerTool"
-					Optimization="2"
-					AdditionalIncludeDirectories=""
-					PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;USE_DL_EXPORT;$(NoInherit)"/>
-			</FileConfiguration>
+			RelativePath="..\Parser\tokenizer_pgen.c">
 		</File>
 		<File
 			RelativePath="..\Python\traceback.c">