Added optimization opportunity #25: improved type-based optimization
authorPaul F. Dietz <pfdietz@users.sourceforge.net>
Wed, 9 Feb 2005 23:48:45 +0000 (23:48 +0000)
committerPaul F. Dietz <pfdietz@users.sourceforge.net>
Wed, 9 Feb 2005 23:48:45 +0000 (23:48 +0000)
of EQL forms.

OPTIMIZATIONS

index 5474bd2..50d3417 100644 (file)
@@ -203,3 +203,17 @@ Python does not know that &REST lists are LISTs (and cannot derive it).
 a. Iterations on &REST lists, returning them as VALUES could be
    rewritten with &MORE vectors.
 b. Implement local unknown-values mv-call (useful for fast type checking).
+--------------------------------------------------------------------------------
+#25
+EQL is implemented generically in situations where this isn't necessary.
+
+(defun f (x y)
+  (declare (type (or symbol fixnum) x)
+          (optimize speed (safety 0) (debug 0)))
+  (eql x y))
+
+SUBTYPEP is smart enough to determine that this type is a subtype
+of (and (or (not number) fixnum) (not character))
+
+This sitation where the type is (OR NULL FIXNUM) comes up
+in cl-bench, for example in the value returned by POSITION.