From d5ab0fce0533111b40b538cd45cb99fa0cd81a3e Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 5 Dec 2019 09:37:39 -0700 Subject: [PATCH] schemify: avoid gensym for struct-type representation A gensym can end up in known-value information, which makes compiled files non-deterministic. --- racket/src/schemify/find-definition.rkt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/racket/src/schemify/find-definition.rkt b/racket/src/schemify/find-definition.rkt index 2e97706eec..3fb7237aae 100644 --- a/racket/src/schemify/find-definition.rkt +++ b/racket/src/schemify/find-definition.rkt @@ -39,7 +39,7 @@ (make-struct-type-info rhs prim-knowns knowns imports mutated))) (cond [info - (define type (gensym (symbol->string (unwrap make-s)))) + (define type (string->uninterned-symbol (symbol->string (unwrap make-s)))) (let* ([knowns (hash-set knowns (unwrap make-s) (if (struct-type-info-pure-constructor? info) @@ -78,7 +78,7 @@ (define info (make-struct-type-info rhs prim-knowns knowns imports mutated)) (cond [info - (define type (gensym (symbol->string (unwrap make-s)))) + (define type (string->uninterned-symbol (symbol->string (unwrap make-s)))) (values (let* ([knowns (hash-set knowns (unwrap make-s) @@ -96,7 +96,7 @@ [else (values knowns #f)])] [`(define-values (,prop:s ,s? ,s-ref) (make-struct-type-property ,_ . ,rest)) - (define type (gensym (symbol->string (unwrap prop:s)))) + (define type (string->uninterned-symbol (symbol->string (unwrap prop:s)))) (values (let* ([knowns (hash-set knowns (unwrap s-ref) (known-accessor 2 type))] [knowns (hash-set knowns (unwrap s?) (known-predicate 2 type))])