From e1608fed99cb278d322a27f68c5cb7458934544d Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Fri, 11 Oct 2019 08:23:44 -0700 Subject: expander: origin_hash must be eq-based. * eval.c (eval_init): Initialize origin_hash as eq-based hash table, not eql-based. The main culprit are range #R(x y) objects. eql equality recurses over these, and if it encounters a circular one like #R(#1# #1#), it crashes. --- eval.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eval.c b/eval.c index 68cc5d0e..e01c41e1 100644 --- a/eval.c +++ b/eval.c @@ -6141,7 +6141,7 @@ void eval_init(void) call_f = func_n1v(generic_funcall); - origin_hash = make_hash(t, nil, nil); + origin_hash = make_eq_hash(t, nil); dwim_s = intern(lit("dwim"), user_package); progn_s = intern(lit("progn"), user_package); -- cgit v1.2.3