private Object run(File file) throws Exception { Reader reader = null; try { reader = new FileReader(file); Var.pushThreadBindings( RT.map( RT.CURRENT_NS, RT.CURRENT_NS.deref(), RT.IN, new LineNumberingPushbackReader(reader), RT.OUT, new OutputStreamWriter(System.out), RT.ERR, new OutputStreamWriter(System.err))); IN_NS.invoke(USER_SYM); return Compiler.load(reader); } finally { Var.popThreadBindings(); } }