Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

workaround CCL optimization bug for digests

Anything higher than (SPEED 0) causes mysterious test failures; this
declaration doesn't seem to affect the speed much in any event.  Tested
with CCL Linux/x86-64; it's possible the bug appears in older versions
as well.
  • Loading branch information...
commit 98ebf00badbad7bbd4859b543de5d67939d1652c 1 parent aba617d
Nathan Froyd authored June 25, 2012

Showing 1 changed file with 6 additions and 1 deletion. Show diff stats Hide diff stats

  1. 7  src/digests/digest.lisp
7  src/digests/digest.lisp
@@ -153,7 +153,12 @@
153 153
            ,@(when (stringp maybe-doc-string)
154 154
                `(,maybe-doc-string))
155 155
            (flet ((,inner-fun-name (state %buffer buffer-start)
156  
-                    ,(hold-me-back)
  156
+                    ;; CCL requires special treatment to not introduce
  157
+                    ;; array indexing errors.
  158
+                    ,(cond
  159
+                       ((member :ccl *features*)
  160
+                        '(declare (optimize (speed 0))))
  161
+                       (t (hold-me-back)))
157 162
                     (macrolet ((finalize-registers (state regs)
158 163
                                  (let ((clauses
159 164
                                         (loop for (digest-name digest-length) in ',specs

0 notes on commit 98ebf00

Please sign in to comment.
Something went wrong with that request. Please try again.