Comment 4 for bug 1956852

Revision history for this message
Douglas Katzman (dougk) wrote :

Our change https://sourceforge.net/p/sbcl/sbcl/ci/74605eae024986746ac98284323775ec9cec93ea says that ECL workarounds are not necessary, but I think they certainly were for 16.1.3, so I'm not sure how "fine" is defined.
Case in point: My ECL installation is 16.1.3 and I can no longer build with it because of what appears to be a scoping problem with macrolet (identical to ABCL bug, as it happens).

Our code in src/compiler/macros is:
(defun event-statistics (&optional (min-count 1) (stream *standard-output*))
  (collect ((info))
    (maphash (lambda (k v)
               (declare (ignore k))
               (when (>= (event-info-count v) min-count)
                 (info v)))
             *event-info*)

but ECL says:
;;; Compiling (DEFUN EVENT-STATISTICS ...).
;;; Error:
;;; in file macros.lisp, position 35397
;;; at (DEFUN EVENT-STATISTICS ...)
;;; * The macro form (INFO V) was not expanded successfully.
;;; Error detected:
;;; Too few arguments supplied to a macro or a destructuring-bind form:
;;; (INFO V)

because it uses the 3-arg compiler-macro. I tested renaming the local macro, and it got past that point, but then failed in a new place.
So if we expect some version of ECL to work, we probably need to revert the aforementioned change, unless Charles can tell us the exact ECL version and its build options to use.