From 01eec4ef9a1288734ad26f5495cf45668a3330bd Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 25 Apr 2019 20:04:14 -0600 Subject: [PATCH] expander: more reserved names to accomodate schemify Compiling the Chez Scheme bootstrap library in Racket on Chez Scheme is a good way to discover missing reserved symbols. --- .../src/expander/compile/built-in-symbol.rkt | 21 +++++++++++++++++-- racket/src/racket/src/startup.inc | 16 +++++++++++++- 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/racket/src/expander/compile/built-in-symbol.rkt b/racket/src/expander/compile/built-in-symbol.rkt index 220f05a748..1122701260 100644 --- a/racket/src/expander/compile/built-in-symbol.rkt +++ b/racket/src/expander/compile/built-in-symbol.rkt @@ -46,18 +46,24 @@ variable-reference-constant? variable-reference-from-unsafe?)) - ;; Linklet compilation on Chez Scheme + ;; Linklet compilation on Chez Scheme; anything + ;; introduced by schemify needs to be here to + ;; make sure the introduced name isn't shadowed + ;; by a definition in expanded code (for-each register-built-in-symbol! '(or and let letrec* define + $value pariah variable-set! variable-ref variable-ref/no-check + variable-set!/check-undefined make-instance-variable-reference + instance-variable-reference annotation? annotation-expression #%app @@ -65,4 +71,15 @@ make-pthread-parameter break-enabled-key engine-block - fasl->s-exp/intern)))) + fasl->s-exp/intern + make-record-type-descriptor + record-constructor + record-accessor + record-mutator + record-predicate + struct-type-install-properties! + register-struct-constructor! + register-struct-predicate! + register-struct-field-accessor! + register-struct-field-mutator! + raise-binding-result-arity-error)))) diff --git a/racket/src/racket/src/startup.inc b/racket/src/racket/src/startup.inc index bd1807d731..3ab32ba29b 100644 --- a/racket/src/racket/src/startup.inc +++ b/racket/src/racket/src/startup.inc @@ -19822,11 +19822,14 @@ static const char *startup_source = " let" " letrec*" " define" +" $value" " pariah" " variable-set!" " variable-ref" " variable-ref/no-check" +" variable-set!/check-undefined" " make-instance-variable-reference" +" instance-variable-reference" " annotation?" " annotation-expression" " #%app" @@ -19834,7 +19837,18 @@ static const char *startup_source = " make-pthread-parameter" " break-enabled-key" " engine-block" -" fasl->s-exp/intern))))" +" fasl->s-exp/intern" +" make-record-type-descriptor" +" record-constructor" +" record-accessor" +" record-mutator" +" record-predicate" +" struct-type-install-properties!" +" register-struct-constructor!" +" register-struct-predicate!" +" register-struct-field-accessor!" +" register-struct-field-mutator!" +" raise-binding-result-arity-error))))" "(define-values(phase-shift-id)(make-built-in-symbol! 'phase))" "(define-values(dest-phase-id)(make-built-in-symbol! 'dest-phase))" "(define-values(ns-id)(make-built-in-symbol! 'namespace))"