From 9e1de23f4a1b703d28d5f1816ae2c338dfbf006d Mon Sep 17 00:00:00 2001 From: Jonathan Coates Date: Tue, 17 Jan 2023 20:37:16 +0000 Subject: [PATCH] Log internal Cobalt VM errors See #1307 --- gradle/libs.versions.toml | 2 +- .../core/src/main/java/dan200/computercraft/core/Logging.java | 2 ++ .../java/dan200/computercraft/core/lua/CobaltLuaMachine.java | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4ae87aef0..74e255fca 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -14,7 +14,7 @@ parchmentMc = "1.19.2" asm = "9.3" autoService = "1.0.1" checkerFramework = "3.12.0" -cobalt = "0.5.9" +cobalt = "0.5.10" fastutil = "8.5.9" guava = "31.1-jre" jetbrainsAnnotations = "23.0.0" diff --git a/projects/core/src/main/java/dan200/computercraft/core/Logging.java b/projects/core/src/main/java/dan200/computercraft/core/Logging.java index 4c4c02004..7863019f8 100644 --- a/projects/core/src/main/java/dan200/computercraft/core/Logging.java +++ b/projects/core/src/main/java/dan200/computercraft/core/Logging.java @@ -15,10 +15,12 @@ public final class Logging { public static final Marker COMPUTER_ERROR = MarkerFactory.getMarker("COMPUTER_ERROR"); public static final Marker HTTP_ERROR = MarkerFactory.getMarker("COMPUTER_ERROR.HTTP"); public static final Marker JAVA_ERROR = MarkerFactory.getMarker("COMPUTER_ERROR.JAVA"); + public static final Marker VM_ERROR = MarkerFactory.getMarker("COMPUTER_ERROR.VM"); static { HTTP_ERROR.add(COMPUTER_ERROR); JAVA_ERROR.add(COMPUTER_ERROR); + VM_ERROR.add(COMPUTER_ERROR); } private Logging() { diff --git a/projects/core/src/main/java/dan200/computercraft/core/lua/CobaltLuaMachine.java b/projects/core/src/main/java/dan200/computercraft/core/lua/CobaltLuaMachine.java index 17808fc9c..044090a0d 100644 --- a/projects/core/src/main/java/dan200/computercraft/core/lua/CobaltLuaMachine.java +++ b/projects/core/src/main/java/dan200/computercraft/core/lua/CobaltLuaMachine.java @@ -83,6 +83,7 @@ public class CobaltLuaMachine implements ILuaMachine { } }); }) + .errorReporter(e -> LOG.error(Logging.VM_ERROR, "Error occurred in the Lua runtime. Computer will continue to execute.", e)) .build(); globals = new LuaTable();