From 8b500703872cfab9cf5a0fe5e11f3e63cc815bbd Mon Sep 17 00:00:00 2001 From: Chris Hanson <org/chris-hanson/cph> Date: Sun, 20 May 2018 17:27:50 -0700 Subject: [PATCH] Change symbol<? to sort interned symbols before uninterned. --- src/runtime/symbol.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/runtime/symbol.scm b/src/runtime/symbol.scm index 43e31cb69..b6919bacc 100644 --- a/src/runtime/symbol.scm +++ b/src/runtime/symbol.scm @@ -90,10 +90,15 @@ USA. (string-hash (symbol->string symbol) modulus)) (define (symbol<? x y) - (string<? (symbol->string x) (symbol->string y))) + (let ((sx (symbol->string x)) + (sy (symbol->string y))) + (or (string<? sx sy) + (and (string=? sx sy) + (interned-symbol? sx) + (uninterned-symbol? sy))))) (define (symbol>? x y) - (string<? (symbol->string y) (symbol->string x))) + (symbol<? y x)) (define generate-uninterned-symbol (let ((mutex (make-thread-mutex)) -- 2.25.1