Describe the solution you'd like
The interpreter should run on a seperate thread this will allow us to kill an execution if there is an infinite loop, as well as make things like variable watches, break points ans source debugging possible.
The only downside is this will complicate the MapTool API (internal not for user) to handle threading issues.