From cc69832ceecf915971cbd09295e5bb4d39fc5de0 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Fri, 9 May 2025 01:14:13 -0700 Subject: flet/labels: generate macro ancestor form, * eval.c (me_flet_labels): Create a synthetic macro ancestor form which is (labels ) or (flet ) so the function name, location and type of binding can be traced from the lambda expression. This will be useful to the :trace parameter macro that is coming. --- eval.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/eval.c b/eval.c index 59e9f3b8..a566cea8 100644 --- a/eval.c +++ b/eval.c @@ -4247,8 +4247,12 @@ static val me_flet_labels(val form, val menv) val func = car(funcs); val name = pop(&func); val params = pop(&func); + val orig = cons(sym, cons(name, nil)); val lambda = cons(lambda_s, cons(params, func)); + set_origin(lambda, orig); + rlcp(orig, form); + ptail = list_collect (ptail, cons(name, cons(lambda, nil))); } -- cgit v1.2.3