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

ensure the same formatting of Haxe trace on all platforms, eliminate redundant implementations
add haxe.Log.traceOutput dynamic function to only redirect the output

Nicolas Cannasse 8 жил өмнө
parent
commit
fd80e173e0

+ 0 - 38
std/cs/_std/haxe/Log.hx

@@ -1,38 +0,0 @@
-/*
- * Copyright (C)2005-2017 Haxe Foundation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-package haxe;
-
-@:coreApi class Log {
-	public static dynamic function trace( v : Dynamic, ?infos : PosInfos ) : Void {
-		var str:String = null;
-		if (infos != null) {
-			str = infos.fileName + ":" + infos.lineNumber + ": " + v;
-			if (infos.customParams != null)
-			{
-				str += "," + infos.customParams.join(",");
-			}
-		} else {
-			str = v;
-		}
-		cs.system.Console.WriteLine(str);
-	}
-}

+ 32 - 2
std/haxe/Log.hx

@@ -25,7 +25,7 @@ package haxe;
 	Log primarily provides the `trace()` method, which is invoked upon a call to
 	`trace()` in Haxe code.
 **/
-extern class Log {
+class Log {
 
 	/**
 		Outputs `v` in a platform-dependent way.
@@ -44,5 +44,35 @@ extern class Log {
 		If it is bound to null, subsequent calls to `trace()` will cause an
 		exception.
 	**/
-	static dynamic function trace( v : Dynamic, ?infos : PosInfos ) : Void;
+	public static dynamic function trace( v : Dynamic, ?infos : PosInfos ) : Void {
+		var str:String = null;
+		if (infos != null) {
+			str = infos.fileName + ":" + infos.lineNumber + ": " + v;
+			if (infos.customParams != null)
+			{
+				str += "," + infos.customParams.join(",");
+			}
+		} else {
+			str = Std.string(v);
+		}
+		traceOutput(str);
+	}
+
+	/**
+		Allows to simply rebind the way all trace calls are output, without changing
+		the way the traces are formated.
+	**/
+	public static dynamic function traceOutput( v : String ) : Void {
+		#if sys
+		Sys.println(v);
+		#elseif js
+		if( js.Lib.typeof(untyped console) != "undefined" && (untyped console).log != null )
+			(untyped console).log(v);
+		#elseif lua
+		untyped __define_feature__("use._hx_print",_hx_print(v));
+		#else
+		throw "Not implemented";
+		#end
+	}
+
 }

+ 0 - 31
std/hl/_std/haxe/Log.hx

@@ -1,31 +0,0 @@
-/*
- * Copyright (C)2005-2017 Haxe Foundation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-package haxe;
-
-@:coreApi class Log {
-	public static dynamic function trace( v : Dynamic, ?infos : PosInfos ) : Void {
-		var pstr = infos == null ? "(null)" : infos.fileName + ":" + infos.lineNumber;
-		var str = Std.string(v);
-		if( infos != null && infos.customParams != null ) for( v in infos.customParams ) str += "," + Std.string(v);
-		Sys.println(pstr+": "+str);
-	}
-}

+ 0 - 38
std/java/_std/haxe/Log.hx

@@ -1,38 +0,0 @@
-/*
- * Copyright (C)2005-2017 Haxe Foundation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-package haxe;
-
-@:coreApi class Log {
-	public static dynamic function trace( v : Dynamic, ?infos : PosInfos ) : Void {
-		var str:String = null;
-		if (infos != null) {
-			str = infos.fileName + ":" + infos.lineNumber + ": " + v;
-			if (infos.customParams != null)
-			{
-				str += "," + infos.customParams.join(",");
-			}
-		} else {
-			str = v;
-		}
-		Sys.println(str);
-	}
-}

+ 0 - 35
std/js/_std/haxe/Log.hx

@@ -1,35 +0,0 @@
-/*
- * Copyright (C)2005-2017 Haxe Foundation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-package haxe;
-
-@:coreApi class Log {
-	@:access(js.Boot.__string_rec)
-	public static dynamic function trace( v : Dynamic, ?infos : PosInfos ) : Void {
-		var msg = if (infos != null) infos.fileName + ":" + infos.lineNumber + ": " else "";
-		msg += js.Boot.__string_rec(v, "");
-		if (infos != null && infos.customParams != null)
-			for (v in infos.customParams)
-				msg += "," + js.Boot.__string_rec(v, "");
-		if( js.Lib.typeof(untyped console) != "undefined" && (untyped console).log != null )
-			(untyped console).log(msg);
-	}
-}

+ 0 - 39
std/lua/_std/haxe/Log.hx

@@ -1,39 +0,0 @@
-/*
- * Copyright (C)2005-2017 Haxe Foundation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-package haxe;
-
-@:coreApi class Log {
-	public static dynamic function trace( v : Dynamic, ?infos : PosInfos ) : Void {
-		var str:String = null;
-		if (infos != null) {
-			str = infos.fileName + ":" + infos.lineNumber + ": " + v;
-			if (infos.customParams != null)
-			{
-				str += "," + infos.customParams.join(",");
-			}
-		} else {
-			str = v;
-		}
-		if (str == null) str = "null";
-		untyped __define_feature__("use._hx_print",_hx_print(str));
-	}
-}

+ 0 - 32
std/neko/_std/haxe/Log.hx

@@ -1,32 +0,0 @@
-/*
- * Copyright (C)2005-2017 Haxe Foundation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-package haxe;
-
-@:coreApi class Log {
-	public static dynamic function trace( v : Dynamic, ?infos : PosInfos ) : Void {
-		untyped {
-			$print(infos.fileName + ":" + infos.lineNumber + ": ", v);
-			if( infos.customParams != null ) for( v in infos.customParams ) $print(",", v);
-			$print("\n");
-		}
-	}
-}

+ 0 - 37
std/python/_std/haxe/Log.hx

@@ -1,37 +0,0 @@
-/*
- * Copyright (C)2005-2017 Haxe Foundation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-package haxe;
-
-@:coreApi class Log {
-	public static dynamic function trace( v : Dynamic, ?infos : PosInfos ) : Void {
-		var str:String = null;
-		if (infos != null) {
-			str = infos.fileName + ":" + Std.string(infos.lineNumber) + ": " + v;
-			if (infos.customParams != null) {
-				str += "," + infos.customParams.join(",");
-			}
-		} else {
-			str = v;
-		}
-		python.Lib.println(str);
-	}
-}