From cf7a884f125de0a44ddccbc985a96e3a6eb62b8b Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Mon, 21 Jul 2014 12:19:33 +0200 Subject: [PATCH] Stabilize renumber.scm:sort-conts. * module/language/cps/renumber.scm (sort-conts): Prevent spurious continuation reordering. --- module/language/cps/renumber.scm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/module/language/cps/renumber.scm b/module/language/cps/renumber.scm index 78425ab3c..4f51b7081 100644 --- a/module/language/cps/renumber.scm +++ b/module/language/cps/renumber.scm @@ -66,7 +66,14 @@ (let ((k-len (vector-ref path-lengths k)) (kt-len (vector-ref path-lengths kt))) (cond - ((and k-len kt-len (< k-len kt-len)) + ((if kt-len + (or (not k-len) + (< k-len kt-len) + ;; If the path lengths are the + ;; same, preserve original order + ;; to avoid squirreliness. + (and (= k-len kt-len) (< kt k))) + (if k-len #f (< kt k))) (maybe-visit k) (maybe-visit kt)) (else