JOLT_TRACE: map tail-frame history to ns/name (file:line)
The eval path recorded only a frame's munged name, so a JOLT_TRACE backtrace was a list of bare names. Register source for a runtime-compiled fn def when tracing is on (keyed by the same munged name the entry push records), reusing the source-registry the renderer already maps to "ns/name (file:line)". Direct-link builds already registered via emit-def-cached; this covers the open-world eval path. trace-off output is byte-identical (returns "" — seed mint / `jolt build` unchanged), seed re-minted. A name shared across namespaces (e.g. -main) stays bare, the existing ambiguity guard. smoke asserts a file-backed project run maps a frame to ns/name (file:line).
This commit is contained in:
parent
e297a74501
commit
6c88198115
3 changed files with 119 additions and 85 deletions
File diff suppressed because one or more lines are too long
|
|
@ -124,6 +124,21 @@ if printf '%s' "$err_stale" | grep -q 'h1'; then
|
|||
else
|
||||
pass=$((pass + 1))
|
||||
fi
|
||||
# A file-backed project run maps each runtime-compiled frame to ns/name (file:line)
|
||||
# — the eval path registers source in trace mode, so the trace isn't bare names.
|
||||
tr_proj="$(mktemp -d)"
|
||||
mkdir -p "$tr_proj/src/tp"
|
||||
printf '{:paths ["src"] :aliases {:run {:main-opts ["-m" "tp.core"]}}}\n' > "$tr_proj/deps.edn"
|
||||
printf '(ns tp.core)\n(defn deep [x] (+ x 1))\n(defn mid [x] (inc (deep x)))\n(defn -main [& _] (mid :nan))\n' > "$tr_proj/src/tp/core.clj"
|
||||
tr_out="$(JOLT_TRACE=1 JOLT_PWD="$tr_proj" bin/joltc -M:run 2>&1)"
|
||||
if printf '%s' "$tr_out" | grep -Eq 'tp\.core/deep \(.*/tp/core\.clj:2\)'; then
|
||||
pass=$((pass + 1))
|
||||
else
|
||||
echo " FAIL: JOLT_TRACE trace should map a frame to ns/name (file:line)"
|
||||
printf '%s\n' "$tr_out" | sed 's/^/ | /'
|
||||
fails=$((fails + 1))
|
||||
fi
|
||||
rm -rf "$tr_proj"
|
||||
|
||||
# --help prints usage, and lists the nREPL server under its real flag name.
|
||||
help_out="$(bin/joltc --help 2>/dev/null)"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue