Documentation for Deptle Terminal.
Guides for setup, scripting, troubleshooting, and more.
Reading a diagnostic
Every DSL compile error is printed in a consistent, structured format: a headline with an error code, a pointer at the offending source location, a snippet with a caret under the exact tokens, and optional help: or note: lines.
- **Headline** —
error[EXXXX]: <message>. The code (e.g.E0521) is stable and can be grepped. - **Location** —
--> <file>:<line>:<col>points at the start of the primary span. - **Snippet** — the source line with a caret (
^) under the exact tokens that caused the error. When a span crosses multiple lines, the snippet shows the opening line, an elided..., and the closing line. Very long lines are windowed around the span (prefixed/suffixed with...) so the interesting tokens stay visible. - **Context line** — when the error doesn't start on line 1 the compiler also prints the preceding source line above the primary, to give the reader a little surrounding code.
- **Secondary label** — for errors that reference two locations (e.g. a duplicate
Parametername), a second caret is printed at the first occurrence withpreviously declared here. - **Help / Note** — lines prefixed with
note:explain *why* something is wrong; lines prefixed withhelp:suggest a concrete fix.note:lines are printed first,help:second. Multi-line notes are indented under the first character of the message so they read as a coherent paragraph. - **Did you mean?** — when an identifier is unknown the compiler tries to find the closest in-scope name via edit distance and suggests it in a
help:line.
Declaration errors (E05xx)
Errors raised while analyzing class fields, Parameter/State/Extra declarations, and asset config.
E0500—on_tickhas the wrong signature. Use(self, tick)or(self, tick, sys).E0501—on_baris no longer supported; rename it toon_tickand configure bars in the UI.E0502— missing requiredon_tickmethod on the strategy class.E0504— a field name uses the reserveddeptle_bar_prefix.E0505— duplicate field name acrossParameter/State/Extra.E0510–E0512—bar_timeframe/bar_fill_mode/required_assets/asset_slotsannotation is wrong.E0520–E0525—Parameter(...)is missingdefault/min/max, or hasmin > max,defaultout of range, or non-positivestep.E0530–E0540—State(...)indicator / array / size issues.E0550–E0554—Extra(...)positional args, bad annotation, missing / out-of-rangebinding.E0570–E0577—required_assets/asset_slotsvalidation.
Lowering errors (E02xx–E04xx)
Errors raised while lowering the body of on_tick into the internal IR.
E02xx— statement-level issues (unsupportedfor/while, disallowed assignment target, augassign type mismatches, unsupported return shape).E03xx— expression-level issues (unknown name, unsupported attribute access, bad literal form, slice / subscript errors).E04xx— call / ordering issues (unknown builtin, wrong arg count, badOrder.*(...)shape, disallowed call target).
The caret points at the exact token the compiler tripped on. When in doubt, read the help: line — it is hand-written for each error and suggests a concrete fix.
Workflow tips
How to quickly resolve compile errors.
- Fix errors top-to-bottom: the compiler stops at the first hard error in declarations before lowering the body.
- Error codes are stable across releases — pin them in team runbooks or tests.
- If a
help:line suggests a different keyword (e.g.size=instead of positional), prefer that wording verbatim. - Parse errors (syntax) are reported separately by the editor before the DSL compiler runs.
If launch fails, include your loader version, OS, and latest crash log so support can reproduce the issue quickly.