Browse Source

Improved behavior when traps (reason string)

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7246 8c9fc860-2736-0410-a75d-ab315db34111
felixf 8 years ago
parent
commit
54c8667096
2 changed files with 7 additions and 1 deletions
  1. BIN
      WinAos/A2.exe
  2. 7 1
      source/Generic.Modules.Mod

BIN
WinAos/A2.exe


+ 7 - 1
source/Generic.Modules.Mod

@@ -153,6 +153,12 @@ VAR
 
 (** Register a module loader. *)
 
+PROCEDURE Halt(CONST reason: ARRAY OF CHAR);
+BEGIN
+	HALT(999);
+END Halt;
+
+
 PROCEDURE AddLoader*(CONST ext: ARRAY OF CHAR; proc: LoaderProc);
 BEGIN
 	Machine.Acquire(Machine.Modules);
@@ -223,7 +229,7 @@ BEGIN
 	Machine.Release(Machine.Modules);
 	IF (Heaps.GCType = Heaps.MetaDataForStackGC) & ~(PreciseGC IN m.flags) THEN
 		name := m.name;
-		HALT(100);
+		Halt("Module does not provide metadata required by the GC.");
 	END;
 END Publish;