2
0
Эх сурвалжийг харах

purge some debug from the reader

We never want to write to stderr because that hangs the display tests.
Simon Krajewski 1 жил өмнө
parent
commit
6295c5a85b

+ 18 - 70
src/compiler/hxb/hxbReader.ml

@@ -13,13 +13,13 @@ let todo = "\x1b[33m[TODO]" ^ c_reset
 let todo_error = "\x1b[31m[TODO] error:" ^ c_reset
 
 let debug_msg msg =
-	prerr_endline msg
+	print_endline msg
 
 let print_stacktrace () =
 	let stack = Printexc.get_callstack 10 in
 	let lines = Printf.sprintf "%s\n" (Printexc.raw_backtrace_to_string stack) in
 	match (ExtString.String.split_on_char '\n' lines) with
-		| (_ :: (_ :: lines)) -> prerr_endline (Printf.sprintf "%s" (ExtString.String.join "\n" lines))
+		| (_ :: (_ :: lines)) -> print_endline (Printf.sprintf "%s" (ExtString.String.join "\n" lines))
 		| _ -> die "" __LOC__
 
 type field_reader_context = {
@@ -69,9 +69,9 @@ class hxb_reader
 			error (Printf.sprintf "Cannot resolve type %s" (s_type_path ((pack @ [mname]),tname)))
 
 	method print_reader_state =
-		prerr_endline (Printf.sprintf "  Current field: %s" current_field.cf_name);
-		Option.may (fun tinfos -> prerr_endline (Printf.sprintf "  Current type: %s" (s_type_path tinfos.mt_path))) current_type;
-		Option.may (fun e -> prerr_endline (Printf.sprintf "  Last texpr: %s" (TPrinting.s_expr_debug e))) last_texpr
+		print_endline (Printf.sprintf "  Current field: %s" current_field.cf_name);
+		Option.may (fun tinfos -> print_endline (Printf.sprintf "  Current type: %s" (s_type_path tinfos.mt_path))) current_type;
+		Option.may (fun e -> print_endline (Printf.sprintf "  Last texpr: %s" (TPrinting.s_expr_debug e))) last_texpr
 
 	(* Primitives *)
 
@@ -114,10 +114,7 @@ class hxb_reader
 		self#read_u8 <> 0
 
 	method read_from_string_pool pool =
-		let l = self#read_uleb128 in
-		try pool.(l) with e ->
-			prerr_endline (Printf.sprintf "  Failed getting string #%d" l);
-			raise e
+		pool.(self#read_uleb128)
 
 	method read_string =
 		self#read_from_string_pool string_pool
@@ -149,7 +146,6 @@ class hxb_reader
 		let pack = self#read_list (fun () -> self#read_string) in
 		let mname = self#read_string in
 		let tname = self#read_string in
-		(* prerr_endline (Printf.sprintf "    Read full path %s" (ExtString.String.join "." (pack @ [mname; tname]))); *)
 		(pack,mname,tname)
 
 	method read_documentation =
@@ -170,8 +166,6 @@ class hxb_reader
 			pmin = min;
 			pmax = max;
 		} in
-		(* prerr_endline (Printf.sprintf "Read pos: %s" (Printer.s_pos pos)); *)
-		(* MessageReporting.display_source_at com pos; *)
 		pos
 
 	method read_metadata_entry : metadata_entry =
@@ -186,28 +180,16 @@ class hxb_reader
 	(* References *)
 
 	method read_class_ref =
-		let i = self#read_uleb128 in
-		try classes.(i) with e ->
-			prerr_endline (Printf.sprintf "[%s] %s reading class ref %i" (s_type_path current_module.m_path) todo_error i);
-			raise e
+		classes.(self#read_uleb128)
 
 	method read_abstract_ref =
-		let i = self#read_uleb128 in
-		try abstracts.(i) with e ->
-			prerr_endline (Printf.sprintf "[%s] %s reading abstract ref %i" (s_type_path current_module.m_path) todo_error i);
-			raise e
+		abstracts.(self#read_uleb128)
 
 	method read_enum_ref =
-		let i = self#read_uleb128 in
-		try enums.(i) with e ->
-			prerr_endline (Printf.sprintf "[%s] %s reading enum ref %i" (s_type_path current_module.m_path) todo_error i);
-			raise e
+		enums.(self#read_uleb128)
 
 	method read_typedef_ref =
-		let i = self#read_uleb128 in
-		try typedefs.(i) with e ->
-			prerr_endline (Printf.sprintf "[%s] %s reading typedef ref %i" (s_type_path current_module.m_path) todo_error i);
-			raise e
+		typedefs.(self#read_uleb128)
 
 	method read_field_ref =
 		class_fields.(self#read_uleb128)
@@ -218,19 +200,9 @@ class hxb_reader
 	method read_anon_ref =
 		match IO.read_byte ch with
 		| 0 ->
-			let index = self#read_uleb128 in
-			(try anons.(index) with e ->
-				prerr_endline (Printf.sprintf "[%s] %s reading anon (0) ref %i" (s_type_path current_module.m_path) todo_error index);
-				prerr_endline (Printexc.to_string e);
-				raise e
-			)
+			anons.(self#read_uleb128)
 		| 1 ->
-			let index = self#read_uleb128 in
-			let an = (try anons.(index) with e ->
-				prerr_endline (Printf.sprintf "[%s] %s reading anon (1) ref %i" (s_type_path current_module.m_path) todo_error index);
-				prerr_endline (Printexc.to_string e);
-				raise e
-			) in
+			let an = anons.(self#read_uleb128) in
 			self#read_anon an
 		| _ ->
 			assert false
@@ -238,21 +210,11 @@ class hxb_reader
 	method read_anon_field_ref =
 		match IO.read_byte ch with
 		| 0 ->
-			let index = self#read_uleb128 in
-			(try anon_fields.(index) with e ->
-				prerr_endline (Printf.sprintf "[%s] %s reading anon field (0) ref %i" (s_type_path current_module.m_path) todo_error index);
-				raise e
-			)
+			anon_fields.(self#read_uleb128)
 		| 1 ->
-			let index = self#read_uleb128 in
-			(try begin
-				let cf = anon_fields.(index) in
-				self#read_class_field_data true cf;
-				cf
-			end with e ->
-				prerr_endline (Printf.sprintf "[%s] %s reading anon field (1) ref %i" (s_type_path current_module.m_path) todo_error index);
-				raise e
-			)
+			let cf = anon_fields.(self#read_uleb128) in
+			self#read_class_field_data true cf;
+			cf
 		| _ ->
 			assert false
 
@@ -654,7 +616,6 @@ class hxb_reader
 
 	method read_type_instance =
 		let kind = self#read_u8 in
-		(* prerr_endline (Printf.sprintf "   Read type instance %d" kind); *)
 
 		match kind with
 		| 0 ->
@@ -709,7 +670,6 @@ class hxb_reader
 		| 31 ->
 			let f () =
 				let name = self#read_string in
-				(* prerr_endline (Printf.sprintf "  Read type instance for %s" name); *)
 				let opt = self#read_bool in
 				let t = self#read_type_instance in
 				(name,opt,t)
@@ -719,19 +679,15 @@ class hxb_reader
 		| 32 ->
 			let f () =
 				let name = self#read_string in
-				(* prerr_endline (Printf.sprintf "  Read type instance for %s" name); *)
 				let opt = self#read_bool in
 				let t = self#read_type_instance in
 				(name,opt,t)
 			in
 			let args = self#read_list f in
-			(* prerr_endline (Printf.sprintf "  Read type instance for TFun"); *)
 			let ret = self#read_type_instance in
 			TFun(args,ret)
 		| 33 ->
-			let t = self#read_type_instance in
-			(* TLazy (ref (LAvailable t)) *)
-			t
+			self#read_type_instance
 		| 40 ->
 			t_dynamic
 		| 41 ->
@@ -1122,9 +1078,7 @@ class hxb_reader
 						TIdent (self#read_string)
 
 					| i ->
-						prerr_endline (Printf.sprintf "  [ERROR] Unhandled texpr %d at:" i);
-						(* MessageReporting.display_source_at com pos; *)
-						assert false
+						die (Printf.sprintf "  [ERROR] Unhandled texpr %d at:" i) __LOC__
 				in
 				let e = loop2 () in
 				let e = {
@@ -1209,8 +1163,6 @@ class hxb_reader
 		| _ ->
 			type_type_parameters <- Array.of_list c.cl_params
 		end;
-		(* prerr_endline (Printf.sprintf "  read class fields with type parameters for %s: %d" (s_type_path c.cl_path) (Array.length type_type_parameters); *)
-		(* prerr_endline (Printf.sprintf "    own class params: %d" (List.length c.cl_params); *)
 		let cl_if_feature = Feature.check_if_feature c.cl_meta in
 		let handle_feature ref_kind cf =
 			let set_feature s =
@@ -1376,7 +1328,6 @@ class hxb_reader
 
 	method read_string_pool =
 		let l = self#read_uleb128 in
-		(* prerr_endline (Printf.sprintf "  Read string pool of size %d" l); *)
 		Array.init l (fun i ->
 			self#read_raw_string;
 		);
@@ -1387,7 +1338,6 @@ class hxb_reader
 		let data = IO.nread ch size in
 		let crc = self#read_u32 in
 		ignore(crc); (* TODO *)
-		(* prerr_endline (Printf.sprintf "%s check crc (%d)" todo (Int32.to_int crc)); *)
 		let kind = chunk_kind_of_string name in
 		(kind,data)
 
@@ -1610,7 +1560,6 @@ class hxb_reader
 				c.cl_constructor <- self#read_option read_field;
 				c.cl_ordered_fields <- self#read_list read_field;
 				c.cl_ordered_statics <- self#read_list read_field;
-				(* prerr_endline (Printf.sprintf "  Forward declare %s with %d fields, %d statics\n" (s_type_path path) (List.length c.cl_ordered_fields) (List.length c.cl_ordered_statics)); *)
 				List.iter (fun cf -> c.cl_fields <- PMap.add cf.cf_name cf c.cl_fields) c.cl_ordered_fields;
 				List.iter (fun cf -> c.cl_statics <- PMap.add cf.cf_name cf c.cl_statics) c.cl_ordered_statics;
 
@@ -1652,7 +1601,6 @@ class hxb_reader
 	method read_hhdr =
 		let path = self#read_path in
 		let file = self#read_string in
-		(* prerr_endline (Printf.sprintf "Read hxb module %s" (s_type_path path)); *)
 
 		let l = self#read_uleb128 in
 		anons <- Array.init l (fun _ -> { a_fields = PMap.empty; a_status = ref Closed });