From 70f19dcc6c7b44464632300d519b51c32f9e9a32 Mon Sep 17 00:00:00 2001 From: "Paul F. Dietz" Date: Thu, 14 Jul 2005 11:49:50 +0000 Subject: [PATCH] Add bug 384, involving performance problem in the compiler on types that normalize to very large MEMBER types on characters. --- BUGS | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/BUGS b/BUGS index 42b6a8e..b53bde0 100644 --- a/BUGS +++ b/BUGS @@ -2096,3 +2096,18 @@ WORKAROUND: instruction. Either the VOP should be fixed or the compiler should be taught how to transform this case away, paying particular attention to side-effects that might occur in the arguments to ASH. + +384: Compiler runaway on very large character types + + (compile nil '(lambda (x) + (declare (type (member #\a 1) x)) + (the (member 1 nil) x))) + + The types apparently normalize into a very large type, and the compiler + gets lost in REMOVE-DUPLICATES. Perhaps the latter should use + a better algorithm (one based on hash tables, say) on very long lists + when :TEST has its default value? + + A simpler example: + + (compile nil '(lambda (x) (the (not (eql #\a)) x))) -- 1.7.10.4