diff --git a/M2/Macaulay2/d/actors5.d b/M2/Macaulay2/d/actors5.d index 7a2e89bfa02..ef6bf17d035 100644 --- a/M2/Macaulay2/d/actors5.d +++ b/M2/Macaulay2/d/actors5.d @@ -1814,9 +1814,6 @@ export StandardE := Expr(StandardS); export topLevelMode := Expr(StandardS); topLevelModeS := dummySymbol; -threadLocal lastError := nullE; -lastErrorS := dummySymbol; - initialRandomSeed := zeroZZ; initialRandomHeight := toInteger(10); @@ -1851,8 +1848,7 @@ syms := SymbolSequence( ( handleInterruptsS = setupvar("handleInterrupts",toExpr(handleInterrupts)); handleInterruptsS ), ( printWidthS = setupvar("printWidth",toExpr(printWidth)); printWidthS ), ( notifyS = setupvar("notify",toExpr(notify)); notifyS ), - ( topLevelModeS = setupvar("topLevelMode",topLevelMode); topLevelModeS ), - ( lastErrorS = setupvarThread("lastError", lastError); lastErrorS ) + ( topLevelModeS = setupvar("topLevelMode",topLevelMode); topLevelModeS ) ); export setDebuggingMode(b:bool):void := ( @@ -1891,17 +1887,6 @@ export sethandleInterrupts(b:bool):void := ( handleInterruptsSetup(b); setGlobalVariable(handleInterruptsS,toExpr(b)); ); -setLastError(position:Position, message:string):void := ( - if !( - message == returnMessage || - message == continueMessage || message == continueMessageWithArg || - message == stepMessage || message == stepMessageWithArg || - message == breakMessage) - then ( - lastError = seq(locate(position), toExpr(message)); - setGlobalVariable(lastErrorS, lastError))); -setLastErrorpointer = setLastError; - threadLocal resetvars := ( -- These are the thread local variables that got re-initialized in tokens.d: -- Actually, this is no good! If the user assigns to one of these variables, the "top level" version @@ -1925,21 +1910,6 @@ store(e:Expr):Expr := ( -- called with (symbol,newvalue) else when s.1 is Nothing do ( if sym === debuggerHookS then (debuggerHook = s.1; e) - else if sym === lastErrorS then (lastError = s.1; e) - else buildErrorPacket(msg)) - is a:Sequence do ( - if sym === lastErrorS then ( - if length(a) == 2 then ( - when a.0 - is p:List - do ( - if p.Class == filePositionClass then ( - when a.1 - is msg:stringCell do (lastError = s.1; e) - else WrongArgString(2)) - else WrongArg(1, "a file position")) - else WrongArg(1, "a file position")) - else WrongNumArgs(2)) else buildErrorPacket(msg)) is b:Boolean do ( n := b.v; diff --git a/M2/Macaulay2/d/binding.d b/M2/Macaulay2/d/binding.d index 08c4561c909..597e86cbc5e 100644 --- a/M2/Macaulay2/d/binding.d +++ b/M2/Macaulay2/d/binding.d @@ -415,12 +415,10 @@ export makeSymbol(t:Token):Symbol := ( export makeErrorTree(e:ParseTree,message:string):void := ( HadError = true; printErrorMessage(treePosition(e),message); - setLastErrorpointer(treePosition(e), message); ); export makeErrorTree(e:Token,message:string):void := ( HadError = true; printErrorMessage(e,message); - setLastErrorpointer(e.position, message); ); makeSymbol(e:ParseTree,dictionary:Dictionary):void := ( when e diff --git a/M2/Macaulay2/d/evaluate.d b/M2/Macaulay2/d/evaluate.d index dd607ba0456..2982715dcd5 100644 --- a/M2/Macaulay2/d/evaluate.d +++ b/M2/Macaulay2/d/evaluate.d @@ -1585,14 +1585,7 @@ export evalraw(c:Code):Expr := ( tmp) else AngleBarList(r) )); - when e is Error - do ( - f := handleError(c,e); - when f is err:Error - do setLastErrorpointer(err.position, err.message) - else nothing; - f) - else e); + when e is Error do handleError(c,e) else e); export evalexcept(c:Code):Expr := ( -- printErrorMessage(codePosition(c),"--evaluating: "+present(tostring(c))); diff --git a/M2/Macaulay2/d/lex.d b/M2/Macaulay2/d/lex.d index 28f7215a283..8b9a4ab05f6 100644 --- a/M2/Macaulay2/d/lex.d +++ b/M2/Macaulay2/d/lex.d @@ -82,14 +82,8 @@ export install(name:string,word:Word):Word := ( foreach ch in name do node = install(node,int(ch)); node.word = word; word); - --- setLastError defined in actors5.d -dummysetLastError(position:Position, message:string):void := nothing; -export setLastErrorpointer := dummysetLastError; - makeLexError(position:Position, message:string):void := ( printErrorMessage(position, message); - setLastErrorpointer(position, message); empty(tokenbuf)); newPosition(file:PosFile, line:ushort, column:ushort):Position := Position( diff --git a/M2/Macaulay2/d/parser.d b/M2/Macaulay2/d/parser.d index 39b5600f8f7..b05316448e2 100644 --- a/M2/Macaulay2/d/parser.d +++ b/M2/Macaulay2/d/parser.d @@ -184,7 +184,6 @@ accumulate(e:ParseTree,file:TokenFile,prec:int,obeylines:bool):ParseTree := ( ); makeParseError(token:Token, message:string):ParseTree := ( printErrorMessage(token, message); - setLastErrorpointer(token.position, message); errorTree); export errorunary(token1:Token,file:TokenFile,prec:int,obeylines:bool):ParseTree := ( makeParseError(token1,"syntax error at '" + token1.word.name + "'")); diff --git a/M2/Macaulay2/m2/exports.m2 b/M2/Macaulay2/m2/exports.m2 index d693ddb5cb0..8cf832a6b12 100644 --- a/M2/Macaulay2/m2/exports.m2 +++ b/M2/Macaulay2/m2/exports.m2 @@ -1338,7 +1338,6 @@ exportMutable { "handleInterrupts", "homeDirectory", "interpreterDepth", - "lastError", "lastMatch", "lineNumber", "loadDepth", diff --git a/M2/Macaulay2/packages/Macaulay2Doc/ov_debugging.m2 b/M2/Macaulay2/packages/Macaulay2Doc/ov_debugging.m2 index c03cef6ddd0..36fd7ea4fdf 100644 --- a/M2/Macaulay2/packages/Macaulay2Doc/ov_debugging.m2 +++ b/M2/Macaulay2/packages/Macaulay2Doc/ov_debugging.m2 @@ -327,32 +327,6 @@ document { } } -doc /// - Key - symbol lastError - Headline - information about the last error - Usage - lastError - Outputs - :Sequence - of two elements, the @TO FilePosition@ of the code that generated - the last error and a string containing the error message - Description - Example - try 1/0 - lastError - Text - The last error is local to each thread. - Example - taskResult schedule(() -> try error "foo" else lastError) - lastError - Text - Clear the value by assigning null. - Example - lastError = null -/// - document { Key => "recursionLimit", diff --git a/M2/Macaulay2/packages/Macaulay2Doc/ov_language.m2 b/M2/Macaulay2/packages/Macaulay2Doc/ov_language.m2 index 5afc324da55..fe5b6153dcb 100644 --- a/M2/Macaulay2/packages/Macaulay2Doc/ov_language.m2 +++ b/M2/Macaulay2/packages/Macaulay2Doc/ov_language.m2 @@ -704,7 +704,6 @@ document { TO "error", TO "try", TO "throw", - TO "Macaulay2Doc::lastError" -- TODO: why do we need to specify pkg? } } diff --git a/M2/Macaulay2/tests/normal/error-messages.m2 b/M2/Macaulay2/tests/normal/error-messages.m2 index 30b62f2c586..2d175e23720 100644 --- a/M2/Macaulay2/tests/normal/error-messages.m2 +++ b/M2/Macaulay2/tests/normal/error-messages.m2 @@ -1,7 +1,3 @@ -assert(try 1/0 else lastError#1 == "division by zero") -lastError = null -assert(lastError === null) - stderr << "--testing the error messages must be done manually" << endl end