浏览代码

Rebuilt release

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7249 8c9fc860-2736-0410-a75d-ab315db34111
felixf 8 年之前
父节点
当前提交
91bd6e99e1
共有 100 个文件被更改,包括 9 次插入3 次删除
  1. 二进制
      WinAos/A2.exe
  2. 二进制
      WinAos/obg/AVI.GofW
  3. 二进制
      WinAos/obg/AlmSmtpReceiver.GofW
  4. 二进制
      WinAos/obg/Array1dCplx.GofW
  5. 二进制
      WinAos/obg/Array1dRat.GofW
  6. 二进制
      WinAos/obg/Array2dCplx.GofW
  7. 二进制
      WinAos/obg/Array2dRat.GofW
  8. 二进制
      WinAos/obg/ArrayXdCplx.GofW
  9. 二进制
      WinAos/obg/ArrayXdRat.GofW
  10. 二进制
      WinAos/obg/Attributes.GofW
  11. 二进制
      WinAos/obg/BenchSyntaxHighlighter.GofW
  12. 二进制
      WinAos/obg/BenchXML.GofW
  13. 二进制
      WinAos/obg/Bimso.GofW
  14. 二进制
      WinAos/obg/CSS2Properties.GofW
  15. 二进制
      WinAos/obg/CalcD1.GofW
  16. 二进制
      WinAos/obg/CalcD2.GofW
  17. 二进制
      WinAos/obg/CalcD3.GofW
  18. 二进制
      WinAos/obg/CalcD4.GofW
  19. 二进制
      WinAos/obg/CalcGauss.GofW
  20. 二进制
      WinAos/obg/CharacterLineup.GofW
  21. 二进制
      WinAos/obg/CyberbitNetInstall.GofW
  22. 二进制
      WinAos/obg/DTPEditor.GofW
  23. 二进制
      WinAos/obg/DTPImage.GofW
  24. 二进制
      WinAos/obg/DTPRect.GofW
  25. 二进制
      WinAos/obg/DTPText.GofW
  26. 二进制
      WinAos/obg/DTPUtilities.GofW
  27. 二进制
      WinAos/obg/DTPView.GofW
  28. 二进制
      WinAos/obg/Data.GofW
  29. 二进制
      WinAos/obg/DataIO.GofW
  30. 二进制
      WinAos/obg/Dates.GofW
  31. 二进制
      WinAos/obg/DebugLog.GofW
  32. 二进制
      WinAos/obg/Debugging.GofW
  33. 二进制
      WinAos/obg/DivXHelper.GofW
  34. 二进制
      WinAos/obg/DynamicWebpagePlugin.GofW
  35. 二进制
      WinAos/obg/Errors.GofW
  36. 二进制
      WinAos/obg/Events.GofW
  37. 二进制
      WinAos/obg/EventsUtils.GofW
  38. 二进制
      WinAos/obg/FSTools.GofW
  39. 二进制
      WinAos/obg/FTPClient.GofW
  40. 二进制
      WinAos/obg/FileTrapWriter.GofW
  41. 二进制
      WinAos/obg/FoxAMD64Assembler.GofW
  42. 二进制
      WinAos/obg/FoxAMDBackend.GofW
  43. 二进制
      WinAos/obg/FoxARMBackend.GofW
  44. 二进制
      WinAos/obg/FoxARMInstructionSet.GofW
  45. 二进制
      WinAos/obg/FoxBinaryObjectFile.GofW
  46. 二进制
      WinAos/obg/FoxCodeGenerators.GofW
  47. 二进制
      WinAos/obg/FoxFingerPrinter.GofW
  48. 二进制
      WinAos/obg/FoxGenericObjectFile.GofW
  49. 二进制
      WinAos/obg/FoxGlobal.GofW
  50. 二进制
      WinAos/obg/FoxInterfaceComparison.GofW
  51. 二进制
      WinAos/obg/FoxIntermediateBackend.GofW
  52. 3 3
      WinAos/obg/FoxIntermediateBackend.SymW
  53. 二进制
      WinAos/obg/FoxIntermediateCode.GofW
  54. 二进制
      WinAos/obg/FoxIntermediateLinker.GofW
  55. 二进制
      WinAos/obg/FoxIntermediateObjectFile.GofW
  56. 二进制
      WinAos/obg/FoxIntermediateParser.GofW
  57. 二进制
      WinAos/obg/FoxInterpreterBackend.GofW
  58. 二进制
      WinAos/obg/FoxMinosObjectFile.GofW
  59. 二进制
      WinAos/obg/FoxPrintout.GofW
  60. 二进制
      WinAos/obg/FoxTRMBackend.GofW
  61. 二进制
      WinAos/obg/FractalDemo.GofW
  62. 二进制
      WinAos/obg/HTMLTransformer.GofW
  63. 二进制
      WinAos/obg/HTTPSession.GofW
  64. 二进制
      WinAos/obg/Heaps.GofW
  65. 5 0
      WinAos/obg/Heaps.SymW
  66. 二进制
      WinAos/obg/IMAPGUI.GofW
  67. 二进制
      WinAos/obg/IMAPUtilities.GofW
  68. 二进制
      WinAos/obg/IP.GofW
  69. 二进制
      WinAos/obg/Installer.GofW
  70. 二进制
      WinAos/obg/IsoImages.GofW
  71. 二进制
      WinAos/obg/Localization.GofW
  72. 二进制
      WinAos/obg/MPEGVideoDecoder.GofW
  73. 二进制
      WinAos/obg/Machine.GofW
  74. 二进制
      WinAos/obg/MathCbrt.GofW
  75. 二进制
      WinAos/obg/MathCplx.GofW
  76. 二进制
      WinAos/obg/MathCplxSeries.GofW
  77. 二进制
      WinAos/obg/MathMitLef.GofW
  78. 二进制
      WinAos/obg/MathRat.GofW
  79. 二进制
      WinAos/obg/MathRe.GofW
  80. 二进制
      WinAos/obg/MediaPlayer.GofW
  81. 二进制
      WinAos/obg/MenuEdit.GofW
  82. 二进制
      WinAos/obg/ModuleTrees.GofW
  83. 二进制
      WinAos/obg/Modules.GofW
  84. 1 0
      WinAos/obg/Modules.SymW
  85. 二进制
      WinAos/obg/MtxCplx.GofW
  86. 二进制
      WinAos/obg/MtxRat.GofW
  87. 二进制
      WinAos/obg/NbrCplx.GofW
  88. 二进制
      WinAos/obg/NbrInt64.GofW
  89. 二进制
      WinAos/obg/NbrRat.GofW
  90. 二进制
      WinAos/obg/NbrRe.GofW
  91. 二进制
      WinAos/obg/NbrRe32.GofW
  92. 二进制
      WinAos/obg/NbrRe64.GofW
  93. 二进制
      WinAos/obg/Oberon.NetSystem.GofW
  94. 二进制
      WinAos/obg/OberonDisplay.GofW
  95. 二进制
      WinAos/obg/OdVCSBase.GofW
  96. 二进制
      WinAos/obg/PCGARM.GofW
  97. 二进制
      WinAos/obg/PCOFPE.GofW
  98. 二进制
      WinAos/obg/PDF.GofW
  99. 二进制
      WinAos/obg/PELinker.GofW
  100. 二进制
      WinAos/obg/PET.GofW

二进制
WinAos/A2.exe


二进制
WinAos/obg/AVI.GofW


二进制
WinAos/obg/AlmSmtpReceiver.GofW


二进制
WinAos/obg/Array1dCplx.GofW


二进制
WinAos/obg/Array1dRat.GofW


二进制
WinAos/obg/Array2dCplx.GofW


二进制
WinAos/obg/Array2dRat.GofW


二进制
WinAos/obg/ArrayXdCplx.GofW


二进制
WinAos/obg/ArrayXdRat.GofW


二进制
WinAos/obg/Attributes.GofW


二进制
WinAos/obg/BenchSyntaxHighlighter.GofW


二进制
WinAos/obg/BenchXML.GofW


二进制
WinAos/obg/Bimso.GofW


二进制
WinAos/obg/CSS2Properties.GofW


二进制
WinAos/obg/CalcD1.GofW


二进制
WinAos/obg/CalcD2.GofW


二进制
WinAos/obg/CalcD3.GofW


二进制
WinAos/obg/CalcD4.GofW


二进制
WinAos/obg/CalcGauss.GofW


二进制
WinAos/obg/CharacterLineup.GofW


二进制
WinAos/obg/CyberbitNetInstall.GofW


二进制
WinAos/obg/DTPEditor.GofW


二进制
WinAos/obg/DTPImage.GofW


二进制
WinAos/obg/DTPRect.GofW


二进制
WinAos/obg/DTPText.GofW


二进制
WinAos/obg/DTPUtilities.GofW


二进制
WinAos/obg/DTPView.GofW


二进制
WinAos/obg/Data.GofW


二进制
WinAos/obg/DataIO.GofW


二进制
WinAos/obg/Dates.GofW


二进制
WinAos/obg/DebugLog.GofW


二进制
WinAos/obg/Debugging.GofW


二进制
WinAos/obg/DivXHelper.GofW


二进制
WinAos/obg/DynamicWebpagePlugin.GofW


二进制
WinAos/obg/Errors.GofW


二进制
WinAos/obg/Events.GofW


二进制
WinAos/obg/EventsUtils.GofW


二进制
WinAos/obg/FSTools.GofW


二进制
WinAos/obg/FTPClient.GofW


二进制
WinAos/obg/FileTrapWriter.GofW


二进制
WinAos/obg/FoxAMD64Assembler.GofW


二进制
WinAos/obg/FoxAMDBackend.GofW


二进制
WinAos/obg/FoxARMBackend.GofW


二进制
WinAos/obg/FoxARMInstructionSet.GofW


二进制
WinAos/obg/FoxBinaryObjectFile.GofW


二进制
WinAos/obg/FoxCodeGenerators.GofW


二进制
WinAos/obg/FoxFingerPrinter.GofW


二进制
WinAos/obg/FoxGenericObjectFile.GofW


二进制
WinAos/obg/FoxGlobal.GofW


二进制
WinAos/obg/FoxInterfaceComparison.GofW


二进制
WinAos/obg/FoxIntermediateBackend.GofW


+ 3 - 3
WinAos/obg/FoxIntermediateBackend.SymW

@@ -1,5 +1,5 @@
 MODULE FoxIntermediateBackend;
-	IMPORT Basic := FoxBasic, SyntaxTree := FoxSyntaxTree, SemanticChecker := FoxSemanticChecker, Backend := FoxBackend, Global := FoxGlobal, Scanner := FoxScanner, IntermediateCode := FoxIntermediateCode, Sections := FoxSections, BinaryCode := FoxBinaryCode, Printout := FoxPrintout, SYSTEM, Diagnostics, Strings, Options, Streams, Compiler, Formats := FoxFormats, SymbolFileFormat := FoxTextualSymbolFile, D := Debugging, FingerPrinter := FoxFingerPrinter, StringPool, CRC, Kernel;
+	IMPORT Basic := FoxBasic, SyntaxTree := FoxSyntaxTree, SemanticChecker := FoxSemanticChecker, Backend := FoxBackend, Global := FoxGlobal, Scanner := FoxScanner, IntermediateCode := FoxIntermediateCode, Sections := FoxSections, BinaryCode := FoxBinaryCode, Printout := FoxPrintout, SYSTEM, Diagnostics, Strings, Options, Streams, Compiler, Formats := FoxFormats, SymbolFileFormat := FoxTextualSymbolFile, D := Debugging, FingerPrinter := FoxFingerPrinter, StringPool, CRC;
 CONST 
 	ModeUndefined = 0; 
 	ModeReference = 1; 
@@ -476,7 +476,7 @@ TYPE
 		PROCEDURE ^ VisitProcedureCallStatement*(x: SyntaxTree.ProcedureCallStatement); 
 		PROCEDURE ^ AssignMathArray(left, right: SyntaxTree.Expression); 
 		PROCEDURE ^ ModifyAssignments(CONST value: IntermediateCode.Operand); 
-		PROCEDURE ^ CopySize(left: SyntaxTree.Expression): IntermediateCode.Operand; 
+		PROCEDURE ^ CopySize(left: SyntaxTree.Expression; tag: IntermediateCode.Operand): IntermediateCode.Operand; 
 		PROCEDURE ^ Assign(left, right: SyntaxTree.Expression); 
 		PROCEDURE ^ VisitAssignment*(x: SyntaxTree.Assignment); 
 		PROCEDURE ^ EmitCooperativeSwitch; 
@@ -597,7 +597,7 @@ TYPE
 		preregisterStatic-: BOOLEAN; 
 		dump-: Basic.Writer; 
 		cellsAreObjects: BOOLEAN; 
-		preciseGC: BOOLEAN; 
+		preciseGC, writeBarriers: BOOLEAN; 
 
 		PROCEDURE ^  & InitIntermediateBackend*; 
 		PROCEDURE ^ GenerateIntermediate*(x: SyntaxTree.Module; supportedInstruction: SupportedInstructionProcedure; supportedImmediate: SupportedImmediateProcedure): Sections.Module; 

二进制
WinAos/obg/FoxIntermediateCode.GofW


二进制
WinAos/obg/FoxIntermediateLinker.GofW


二进制
WinAos/obg/FoxIntermediateObjectFile.GofW


二进制
WinAos/obg/FoxIntermediateParser.GofW


二进制
WinAos/obg/FoxInterpreterBackend.GofW


二进制
WinAos/obg/FoxMinosObjectFile.GofW


二进制
WinAos/obg/FoxPrintout.GofW


二进制
WinAos/obg/FoxTRMBackend.GofW


二进制
WinAos/obg/FractalDemo.GofW


二进制
WinAos/obg/HTMLTransformer.GofW


二进制
WinAos/obg/HTTPSession.GofW


二进制
WinAos/obg/Heaps.GofW


+ 5 - 0
WinAos/obg/Heaps.SymW

@@ -205,6 +205,7 @@ VAR
 	EnableFreeLists, EnableReturnBlocks, trace-: BOOLEAN; 
 	allocationLogger-: PROCEDURE (p: ANY); 
 	throughput: SIZE; 
+	assigns*: LONGINT; 
 
 	PROCEDURE ^ SetAllocationLogger*(a: PROCEDURE (p: ANY)); 
 	PROCEDURE ^ CheckPointer(p: ADDRESS): BOOLEAN; 
@@ -249,6 +250,10 @@ VAR
 	PROCEDURE ^ GetHeapInfo*(VAR total, free, largest: SIZE); 
 	PROCEDURE ^ HeapSize*(): SIZE; 
 	PROCEDURE ^ Used*(): SIZE; 
+	PROCEDURE ^ Assign*(VAR dest: ADDRESS; src: ADDRESS); 
+	PROCEDURE ^ AssignRecord*(dest: ADDRESS; tag: StaticTypeBlockU; src: ADDRESS); 
+	PROCEDURE ^ AssignArray*(dest: ADDRESS; tag: StaticTypeBlockU; numElems: SIZE; src: ADDRESS); 
+	PROCEDURE ^ AssignDelegate*(dest: ADDRESS; src: ADDRESS); 
 	PROCEDURE ^ NilGC; 
 	PROCEDURE ^ Init; 
 	PROCEDURE ^ SetHeuristic*; 

二进制
WinAos/obg/IMAPGUI.GofW


二进制
WinAos/obg/IMAPUtilities.GofW


二进制
WinAos/obg/IP.GofW


二进制
WinAos/obg/Installer.GofW


二进制
WinAos/obg/IsoImages.GofW


二进制
WinAos/obg/Localization.GofW


二进制
WinAos/obg/MPEGVideoDecoder.GofW


二进制
WinAos/obg/Machine.GofW


二进制
WinAos/obg/MathCbrt.GofW


二进制
WinAos/obg/MathCplx.GofW


二进制
WinAos/obg/MathCplxSeries.GofW


二进制
WinAos/obg/MathMitLef.GofW


二进制
WinAos/obg/MathRat.GofW


二进制
WinAos/obg/MathRe.GofW


二进制
WinAos/obg/MediaPlayer.GofW


二进制
WinAos/obg/MenuEdit.GofW


二进制
WinAos/obg/ModuleTrees.GofW


二进制
WinAos/obg/Modules.GofW


+ 1 - 0
WinAos/obg/Modules.SymW

@@ -112,6 +112,7 @@ VAR
 	procedureDescriptors-: ProcedureDescs; 
 	callagain: BOOLEAN; 
 
+	PROCEDURE ^ Halt(CONST reason: ARRAY OF CHAR); 
 	PROCEDURE ^ AddLoader*(CONST ext: ARRAY OF CHAR; proc: LoaderProc); 
 	PROCEDURE ^ RemoveLoader*(CONST ext: ARRAY OF CHAR; proc: LoaderProc); 
 	PROCEDURE ^ Append*(CONST from: ARRAY OF CHAR; VAR to: ARRAY OF CHAR); 

二进制
WinAos/obg/MtxCplx.GofW


二进制
WinAos/obg/MtxRat.GofW


二进制
WinAos/obg/NbrCplx.GofW


二进制
WinAos/obg/NbrInt64.GofW


二进制
WinAos/obg/NbrRat.GofW


二进制
WinAos/obg/NbrRe.GofW


二进制
WinAos/obg/NbrRe32.GofW


二进制
WinAos/obg/NbrRe64.GofW


二进制
WinAos/obg/Oberon.NetSystem.GofW


二进制
WinAos/obg/OberonDisplay.GofW


二进制
WinAos/obg/OdVCSBase.GofW


二进制
WinAos/obg/PCGARM.GofW


二进制
WinAos/obg/PCOFPE.GofW


二进制
WinAos/obg/PDF.GofW


二进制
WinAos/obg/PELinker.GofW


二进制
WinAos/obg/PET.GofW


部分文件因为文件数量过多而无法显示