expander & cs: sync lists of internal primitives

The expander and the rumble layer of Racket CS need to agree on a set
of extra primitives that are referenced by schemified linklets.
This commit is contained in:
Matthew Flatt 2019-07-23 17:48:25 -06:00
parent c1bc49e45b
commit 8b916fc5c1
8 changed files with 39 additions and 20 deletions

View File

@ -12,7 +12,7 @@
(define collection 'multi)
(define version "7.4.0.1")
(define version "7.4.0.2")
(define deps `("racket-lib"
["racket" #:version ,version]))

View File

@ -1,9 +1,10 @@
;; Exports that are not exposed to Racket, but
;; can be used in a linklet:
;; can be used in a linklet. These need to be
;; listed in "built-in-symbol.rkt" in the expander,
;; too.
(define-primitive-table internal-table
[set-ctl-c-handler! (known-constant)]
[impersonator-val (known-constant)]
[impersonate-ref (known-constant)]
[impersonate-set! (known-constant)]
@ -14,7 +15,6 @@
[register-struct-predicate! (known-constant)]
[register-struct-field-accessor! (known-constant)]
[register-struct-field-mutator! (known-constant)]
[struct-property-set! (known-constant)]
[|#%call-with-values| (known-constant)]
[unbox/check-undefined (known-constant)]
[set-box!/check-undefined (known-constant)]
@ -28,11 +28,9 @@
[unsafe-struct? (known-constant)]
[call-with-module-prompt (known-procedure 2)]
[raise-binding-result-arity-error (known-procedure 4)]
[fork-place (known-procedure 1)]
[start-place (known-procedure 32)]
[make-pthread-parameter (known-procedure 2)]
[break-enabled-key (known-constant)]
[engine-block (known-procedure 1)]
[force-unfasl (known-procedure 2)]

View File

@ -9,7 +9,7 @@
linklet-bigger-than?
make-path->compiled-path
compiled-path->path
force-unfasl
(rename [1/force-unfasl force-unfasl])
prim-knowns
known-procedure
known-procedure/pure

View File

@ -112,9 +112,9 @@
[(|#%pthread|)
;; Entries in the `#%pthread` table are referenced more
;; directly in "compiled/thread.scm". To make that work, the
;; entries need to be registered as built-in names with the
;; expander, and they need to be listed in
;; "primitive/internal.ss".
;; entries need to be either primitives in all Racket
;; implemenations or registered as built-in names with the
;; expander and listed in "primitive/internal.ss".
(hasheq
'make-pthread-parameter make-pthread-parameter
'unsafe-root-continuation-prompt-tag unsafe-root-continuation-prompt-tag

View File

@ -65,15 +65,18 @@
variable-set!/define
make-instance-variable-reference
instance-variable-reference
unbox/check-undefined
set-box!/check-undefined
annotation?
annotation-expression
#%app
#%call-with-values
call-with-module-prompt
make-pthread-parameter
break-enabled-key
engine-block
fasl->s-exp/intern
force-unfasl
make-record-type-descriptor
make-record-constructor-descriptor
record-constructor
record-accessor
record-mutator
@ -83,8 +86,13 @@
register-struct-predicate!
register-struct-field-accessor!
register-struct-field-mutator!
unsafe-struct?
raise-binding-result-arity-error
structure-type-lookup-prefab-uid
struct-type-constructor-add-guards
impersonator-val
impersonator-ref
impersonate-set!
ptr-ref/int8 ptr-set!/int8
ptr-ref/uint8 ptr-set!/uint8
ptr-ref/int16 ptr-set!/int16

View File

@ -184,7 +184,9 @@
ts
(let ([l (read-dependencies-from-file check-dependencies)])
(and l
(for/and ([dep (in-list l)])
(pair? l)
(equal? (car l) (string->bytes/utf-8 (version)))
(for/and ([dep (in-list (cdr l))])
(<= (file-or-directory-modify-seconds dep #f (lambda () +inf.0))
ts)))))
(log-status "No dependencies are newer")
@ -395,8 +397,10 @@
dependencies-file
#:exists 'truncate/replace
(lambda (o)
(writeln (for/list ([dep (in-hash-keys dependencies)])
(path->bytes dep))
(writeln (cons
(string->bytes/utf-8 (version))
(for/list ([dep (in-hash-keys dependencies)])
(path->bytes dep)))
o))))
(when makefile-dependencies-file

View File

@ -16,7 +16,7 @@
#define MZSCHEME_VERSION_X 7
#define MZSCHEME_VERSION_Y 4
#define MZSCHEME_VERSION_Z 0
#define MZSCHEME_VERSION_W 1
#define MZSCHEME_VERSION_W 2
/* A level of indirection makes `#` work as needed: */
#define AS_a_STR_HELPER(x) #x

View File

@ -19961,15 +19961,18 @@ static const char *startup_source =
" variable-set!/define"
" make-instance-variable-reference"
" instance-variable-reference"
" unbox/check-undefined"
" set-box!/check-undefined"
" annotation?"
" annotation-expression"
" #%app"
" #%call-with-values"
" call-with-module-prompt"
" make-pthread-parameter"
" break-enabled-key"
" engine-block"
" fasl->s-exp/intern"
" force-unfasl"
" make-record-type-descriptor"
" make-record-constructor-descriptor"
" record-constructor"
" record-accessor"
" record-mutator"
@ -19979,7 +19982,13 @@ static const char *startup_source =
" register-struct-predicate!"
" register-struct-field-accessor!"
" register-struct-field-mutator!"
" unsafe-struct?"
" raise-binding-result-arity-error"
" structure-type-lookup-prefab-uid"
" struct-type-constructor-add-guards"
" impersonator-val"
" impersonator-ref"
" impersonate-set!"
" ptr-ref/int8"
" ptr-set!/int8"
" ptr-ref/uint8"