Add bug 384, involving performance problem in the compiler on
authorPaul F. Dietz <pfdietz@users.sourceforge.net>
Thu, 14 Jul 2005 11:49:50 +0000 (11:49 +0000)
committerPaul F. Dietz <pfdietz@users.sourceforge.net>
Thu, 14 Jul 2005 11:49:50 +0000 (11:49 +0000)
types that normalize to very large MEMBER types on characters.

BUGS

diff --git a/BUGS b/BUGS
index 42b6a8e..b53bde0 100644 (file)
--- 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)))