Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 1 addition & 31 deletions M2/Macaulay2/d/actors5.d
Original file line number Diff line number Diff line change
Expand Up @@ -1814,9 +1814,6 @@ export StandardE := Expr(StandardS);
export topLevelMode := Expr(StandardS);
topLevelModeS := dummySymbol;

threadLocal lastError := nullE;
lastErrorS := dummySymbol;

initialRandomSeed := zeroZZ;
initialRandomHeight := toInteger(10);

Expand Down Expand Up @@ -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 := (
Expand Down Expand Up @@ -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
Expand All @@ -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;
Expand Down
2 changes: 0 additions & 2 deletions M2/Macaulay2/d/binding.d
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
9 changes: 1 addition & 8 deletions M2/Macaulay2/d/evaluate.d
Original file line number Diff line number Diff line change
Expand Up @@ -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)));
Expand Down
6 changes: 0 additions & 6 deletions M2/Macaulay2/d/lex.d
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
1 change: 0 additions & 1 deletion M2/Macaulay2/d/parser.d
Original file line number Diff line number Diff line change
Expand Up @@ -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 + "'"));
Expand Down
1 change: 0 additions & 1 deletion M2/Macaulay2/m2/exports.m2
Original file line number Diff line number Diff line change
Expand Up @@ -1338,7 +1338,6 @@ exportMutable {
"handleInterrupts",
"homeDirectory",
"interpreterDepth",
"lastError",
"lastMatch",
"lineNumber",
"loadDepth",
Expand Down
26 changes: 0 additions & 26 deletions M2/Macaulay2/packages/Macaulay2Doc/ov_debugging.m2
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
1 change: 0 additions & 1 deletion M2/Macaulay2/packages/Macaulay2Doc/ov_language.m2
Original file line number Diff line number Diff line change
Expand Up @@ -704,7 +704,6 @@ document {
TO "error",
TO "try",
TO "throw",
TO "Macaulay2Doc::lastError" -- TODO: why do we need to specify pkg?
}
}

Expand Down
4 changes: 0 additions & 4 deletions M2/Macaulay2/tests/normal/error-messages.m2
Original file line number Diff line number Diff line change
@@ -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

Expand Down
Loading