module forth
-import Base.REPLCompletions
+import Base.REPLCompletions, Base.invokelatest
# VM mem size
size_mem = 1000000 # 1 mega-int
if addr >=0 || -addr>length(primitives)
error("Attempted to execute non-existent primitive at address $addr.")
else
- primitives[-addr]()
+ invokelatest(primitives[-addr])
end
end
getPrimName(addr::Int64) = primNames[-addr]
maxSize = popPS()
addr = popPS()
+ if !(fid in keys(openFiles))
+ error(string("Invalid FID ", fid, "."))
+ end
+
fh = openFiles[fid]
line = readline(fh, chomp=false)
jmp = callPrim(jmp)
catch ex
+ println(string("Error in primitive '", getPrimName(jmp), "' at address ", jmp))
showerror(STDOUT, ex)
println()