X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fmeta-vmdef.lisp;h=6fe1a05ef4c09ac251ad82a6209fb024a08e5e87;hb=d25e3478acccec70402ff32554669a982be8e281;hp=8e8d108a7aab5c23bc80d885cf9623f880a1636d;hpb=08d05510b51708853ca998154d8096b21d85edab;p=sbcl.git diff --git a/src/compiler/meta-vmdef.lisp b/src/compiler/meta-vmdef.lisp index 8e8d108..6fe1a05 100644 --- a/src/compiler/meta-vmdef.lisp +++ b/src/compiler/meta-vmdef.lisp @@ -417,8 +417,8 @@ (note nil :type (or string null)) ;; a list of the names of the Effects and Affected attributes for ;; this VOP - (effects '(any) :type list) - (affected '(any) :type list) + (effects '#1=(any) :type list) + (affected '#1# :type list) ;; a list of the names of functions this VOP is a translation of and ;; the policy that allows this translation to be done. :FAST is a ;; safe default, since it isn't a safe policy. @@ -671,16 +671,16 @@ (incf index) (refs (cons (cons born t) index)))) (incf index))) - (let* ((sorted (sort (refs) - (lambda (x y) - (let ((x-time (car x)) - (y-time (car y))) - (if (time-spec-order x-time y-time) - (if (time-spec-order y-time x-time) - (and (not (cdr x)) (cdr y)) - nil) - t))) - :key #'car)) + (let* ((sorted (stable-sort (refs) + (lambda (x y) + (let ((x-time (car x)) + (y-time (car y))) + (if (time-spec-order x-time y-time) + (if (time-spec-order y-time x-time) + (and (not (cdr x)) (cdr y)) + nil) + t))) + :key #'car)) ;; :REF-ORDERING element type ;; ;; KLUDGE: was (MOD #.MAX-VOP-TN-REFS), which is still right