@@ -6,7 +6,9 @@
66 tools/hoon -f expr.hoon
77
88The program is `!: => <library> <expression>`, run by `urbit eval`,
9−so every arm of the library, and the standard library, is in scope. The
9+so every arm of the library, and the standard library, is in scope.
10+`!:` gives errors their positions but makes the checker run 2.2 to 2.6
11+times slower than on a ship; --no-debug leaves it out, for timings. The
1012result is printed as Hoon prints it, without colours; --raw prints a
1113cord's or tape's text instead. Errors and crashes are printed with
1214their positions mapped back to the library or the expression, and an
@@ -102,6 +104,10 @@ def main(argv):
102104 "expression to use; repeatable")
103105 ap.add_argument('--timeout', type=float, default=600, metavar='SECONDS',
104106 help='how long urbit eval may run (default: 600)')
107+ ap.add_argument('--no-debug', dest='debug', action='store_false',
108+ help="leave out !:, so the checker runs at a ship's "
109+ "speed, for timings; errors then have no "
110+ "positions")
105111 ap.add_argument('--save-program', metavar='FILE',
106112 help='also write the generated Hoon program to FILE')
107113 opts = ap.parse_args(argv)
@@ -119,7 +125,7 @@ def main(argv):
119125 expr, name = opts.expr, '(expression)'
120126 if not expr.strip():
121127 raise ue.ToolError('the expression is empty')
122− prog = ue.library_program(opts.lib)
128+ prog = ue.library_program(opts.lib, debug=opts.debug)
123129 for spec in opts.cord:
124130 line, cname = cord_binding(spec)
125131 prog.add(line, '(--cord %s)' % cname, 'harness')