From 6789fd84c1f04689e1567f40197256eecf0d5e32 Mon Sep 17 00:00:00 2001 From: Gustavo Massaccesi Date: Fri, 8 Nov 2019 22:41:35 -0300 Subject: [PATCH] Use system flag of primitives to avoid check in primvars.ms With this flag the primitive is not tested in primvars.ms but other parts of the compiler can use the signature/flags. Also, add a signature to every system boolean primitive. primvars.ms, primdata.ss original commit: ee023c673bda6557bc223de7f8b0e732600619bc --- mats/primvars.ms | 3 +- s/primdata.ss | 174 +++++++++++++++++++++++------------------------ 2 files changed, 89 insertions(+), 88 deletions(-) diff --git a/mats/primvars.ms b/mats/primvars.ms index 153768066f..bdf6d7de9a 100644 --- a/mats/primvars.ms +++ b/mats/primvars.ms @@ -510,7 +510,8 @@ (lambda (good.bad*) (loop in* (cons (car good.bad*) rgood*) (cons (cdr good.bad*) rbad**)))] [else (errorf 'fuzz-prim-args "unhandled type ~s" in)]))))))) - (when (flags-set? primitive proc) + (when (and (flags-set? primitive proc) + (not (flags-set? system proc))) (for-each (lambda (in*) (good/bad in* diff --git a/s/primdata.ss b/s/primdata.ss index b219e29061..d622b29346 100644 --- a/s/primdata.ss +++ b/s/primdata.ss @@ -1762,7 +1762,7 @@ (define-symbol-flags* ([libraries] [flags system proc]) ; system procedures - ($address-in-heap? [flags single-valued]) + ($address-in-heap? [sig [(uptr) -> (boolean)]] [flags discard]) ($address->object [flags single-valued]) ($allocate-thread-parameter [feature pthreads] [flags single-valued alloc]) ($app [flags]) @@ -1770,16 +1770,16 @@ ($assembly-output [flags single-valued]) ($as-time-goes-by [flags]) ($bignum-length [flags single-valued pure true]) - ($bigpositive? [flags single-valued]) + ($bigpositive? [sig [(ptr) -> (boolean)]] [flags pure unrestricted]) ; no mifoldable due to fixnum ($breakhere [flags single-valued]) ($build-install-library/ct-code [flags single-valued]) ($build-install-library/rt-code [flags single-valued]) ($build-invoke-program [flags single-valued]) ($byte-copy! [flags single-valued]) - ($bytevector-ref-check? [flags single-valued]) - ($bytevector-set!-check? [flags single-valued]) + ($bytevector-ref-check? [sig [(sub-uint ptr ptr) -> (boolean)]] [flags pure]) + ($bytevector-set!-check? [sig [(sub-uint ptr ptr) -> (boolean)]] [flags discard]) ($bytevector-set! [flags single-valued]) - ($bytevector-set-immutable! #;[sig [(bytevector) -> (ptr)]] [flags true]) + ($bytevector-set-immutable! [sig [(bytevector) -> (void)]] [flags true]) ($capture-fasl-target [flags single-valued]) ($c-error [flags]) ($check-heap-errors [flags single-valued]) @@ -1795,27 +1795,27 @@ ($closure-set! [flags]) ($c-make-closure [flags single-valued]) ($c-make-code [flags single-valued]) - ($code? [flags single-valued]) + ($code? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable]) ($code-free-count [flags single-valued]) ($code-info [flags single-valued]) ($code-arity-mask [flags single-valued]) - ($code-mutable-closure? [flags single-valued]) - ($code-arity-in-closure? [flags single-valued]) + ($code-mutable-closure? [sig [(code) -> (boolean)]] [flags discard]) + ($code-arity-in-closure? [sig [(code) -> (boolean)]] [flags discard]) ($code-name [flags single-valued]) ($code-pinfo* [flags single-valued]) - ($code-single-valued? [flags single-valued]) + ($code-single-valued? [sig [(code) -> (boolean)]] [flags discard]) ($collect-rendezvous [flags]) ($compile-backend [flags single-valued]) - ($compiled-file-header? [flags single-valued]) + ($compiled-file-header? [sig [(port) -> (boolean)]] [flags discard]) ($compile-host-library [flags single-valued]) ($compound-condition-components [flags discard true]) - ($compound-condition? [flags pure unrestricted mifoldable discard]) + ($compound-condition? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable]) ($compute-composition [flags single-valued]) ($compute-size [flags single-valued]) ($compute-size-increments [flags single-valued]) - ($constituent? [flags single-valued]) + ($constituent? [sig [(char) -> (boolean)]] [flags pure mifoldable safeongoodargs]) ($constituent-ports [flags]) - ($continuation? [flags single-valued]) + ($continuation? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable]) ($continuation-link [flags single-valued]) ($continuation-return-code [flags single-valued]) ($continuation-return-livemask [flags single-valued]) @@ -1838,12 +1838,12 @@ ($current-attachments [flags single-valued]) ($current-stack-link [flags single-valued]) ($current-winders [flags single-valued]) - ($distinct-bound-ids? [flags single-valued]) + ($distinct-bound-ids? [sig [(list) -> (boolean)]] [flags discard]) ($dofmt [flags single-valued]) ($do-wind [flags single-valued]) ($dynamic-closure-counts [flags single-valued alloc]) ; added for closure instrumentation ($enum-set-members [flags single-valued]) - ($eol-style? [flags single-valued]) + ($eol-style? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable]) ($eq-hashtable-cells [flags single-valued discard]) ($eq-hashtable-clear! [flags true]) ($eq-hashtable-copy [flags true discard]) @@ -1852,26 +1852,26 @@ ($eq-hashtable-values [flags true discard]) ($errno [flags single-valued]) ($errno->string [flags single-valued]) - ($error-handling-mode? [flags single-valued]) + ($error-handling-mode? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable]) ($event [flags single-valued]) - ($exactnum? [flags single-valued]) + ($exactnum? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable]) ($exactnum-imag-part [flags single-valued]) ($exactnum-real-part [flags single-valued]) - ($expand/cte/optimize #;[sig [(ptr) (ptr environment) -> (ptr)]] [flags single-valued]) - ($expand/cte #;[sig [(ptr) (ptr environment) -> (ptr)]] [flags single-valued]) + ($expand/cte/optimize [sig [(ptr) (ptr environment) -> (ptr)]] [flags]) + ($expand/cte [sig [(ptr) (ptr environment) -> (ptr)]] [flags]) ($expand-fp-ftype [flags single-valued]) ($expeditor [feature expeditor] [flags]) ($fasl-base-rtd [flags single-valued]) ($fasl-bld-graph [flags single-valued]) ($fasl-enter [flags single-valued]) - ($fasl-file-equal? #;[sig [(pathname pathname) (pathname pathname ptr) -> (boolean)]] [flags single-valued]) + ($fasl-file-equal? [sig [(pathname pathname) (pathname pathname ptr) -> (boolean)]] [flags discard]) ($fasl-out [flags single-valued]) ($fasl-start [flags single-valued]) ($fasl-table [flags single-valued]) ($fasl-wrf-graph [flags single-valued]) ($filter-conv [flags single-valued]) ($filter-foreign-type [flags single-valued]) - ($fixed-path? [flags single-valued]) + ($fixed-path? [sig [(string) -> (boolean)]] [flags pure safeongoodargs]) ($<= [flags single-valued]) ($< [flags single-valued]) ($= [flags single-valued]) @@ -1879,17 +1879,17 @@ ($/ [flags single-valued]) ($* [flags single-valued]) ($+ [flags single-valued]) - ($fleqv? [flags single-valued]) + ($fleqv? [sig [(flonum flonum) -> (boolean)]] [flags pure mifoldable safeongoodargs]) ($flhash [flags single-valued]) ($flonum->digits [flags single-valued]) ($flonum-exponent [flags single-valued]) ($flonum->fixnum [flags single-valued]) ($flonum-sign [flags single-valued]) ($flush-instruction-cache [flags single-valued]) - ($foreign-char? [flags single-valued pure unrestricted mifoldable discard]) + ($foreign-char? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable discard]) ($foreign-entries [flags single-valued]) ($foreign-entry [flags single-valued discard]) - ($foreign-wchar? [flags single-valued pure unrestricted cp02]) + ($foreign-wchar? [sig [(ptr) -> (boolean)]] [flags pure unrestricted cp02]) ($format-scheme-version [flags single-valued alloc]) ($fp-filter-type [flags single-valued]) ($fp-string->utf16 [flags single-valued]) @@ -2037,24 +2037,24 @@ ($fptr-spin-lock! [flags single-valued]) ($fptr-unlock! [flags single-valued]) ($fp-type->pred [flags single-valued]) - ($ftd? [flags single-valued]) + ($ftd? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable]) ($ftd-alignment [flags single-valued]) - ($ftd-as-box? [flags single-valued]) + ($ftd-as-box? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable]) ($ftd-atomic-category [flags single-valued]) - ($ftd-compound? [flags single-valued]) + ($ftd-compound? [sig [(sub-ptr) -> (boolean)]] [flags discard]) ($ftd-size [flags single-valued]) ($ftd->members [flags single-valued]) ($ftype-guardian-oops [flags]) - ($ftype-pointer? [flags single-valued]) + ($ftype-pointer? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable]) ($fxaddress [flags single-valued unrestricted alloc]) - ($fx-? [flags single-valued]) + ($fx-? [sig [(maybe-fixnum maybe-fixnum) -> (maybe-fixnum)]] [flags pure]) ; not boolean ($fx/ [flags single-valued]) ($fx* [flags single-valued]) - ($fx+? [flags single-valued]) + ($fx+? [sig [(maybe-fixnum maybe-fixnum) -> (maybe-fixnum)]] [flags pure]) ; not boolean ($fxu< [flags single-valued pure cp02]) - ($fxvector-ref-check? [flags single-valued]) - ($fxvector-set!-check? [flags single-valued]) - ($fxvector-set-immutable! #;[sig [(fxvector) -> (ptr)]] [flags true]) + ($fxvector-ref-check? [sig [(ptr ptr) -> (boolean)]] [flags unrestricted pure]) + ($fxvector-set!-check? [sig [(ptr ptr) -> (boolean)]] [flags unrestricted discard]) + ($fxvector-set-immutable! [sig [(fxvector) -> (ptr)]] [flags true]) ($gc-cpu-time [flags true]) ($gc-real-time [flags true]) ($generation [flags single-valued]) @@ -2066,10 +2066,10 @@ ($hashtable-veclen [flags discard]) ($ht-minlen [flags single-valued discard]) ($ht-veclen [flags single-valued discard]) - ($immediate? [flags single-valued]) + ($immediate? [sig [(ptr) -> (boolean)]] [flags pure unrestricted]) ; no mifoldable due to fixnum ($impoops [flags abort-op]) ($import-library [flags single-valued]) - ($inexactnum? [flags single-valued]) + ($inexactnum? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable]) ($inexactnum-imag-part [flags single-valued]) ($inexactnum-real-part [flags single-valued]) ($install-ftype-guardian [flags single-valued]) @@ -2082,14 +2082,14 @@ ($install-library/rt-desc [flags single-valued]) ($install-program-desc [flags single-valued]) ($instantiate-code-object [flags single-valued]) - ($integer-16? [flags single-valued pure unrestricted mifoldable discard]) - ($integer-24? [flags single-valued pure unrestricted mifoldable discard]) - ($integer-32? [flags single-valued pure unrestricted mifoldable discard]) - ($integer-40? [flags single-valued pure unrestricted mifoldable discard]) - ($integer-48? [flags single-valued pure unrestricted mifoldable discard]) - ($integer-56? [flags single-valued pure unrestricted mifoldable discard]) - ($integer-64? [flags single-valued pure unrestricted mifoldable discard]) - ($integer-8? [flags single-valued pure unrestricted mifoldable discard]) + ($integer-16? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable discard]) + ($integer-24? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable discard]) + ($integer-32? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable discard]) + ($integer-40? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable discard]) + ($integer-48? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable discard]) + ($integer-56? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable discard]) + ($integer-64? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable discard]) + ($integer-8? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable discard]) ($intern2 [flags single-valued]) ($intern3 [flags single-valued]) ($intern-gensym [flags single-valued]) @@ -2108,7 +2108,7 @@ ($logand [flags single-valued]) ($logbit0 [flags single-valued]) ($logbit1 [flags single-valued]) - ($logbit? [flags single-valued]) + ($logbit? [sig [(uint exact-integer) -> (boolean)]] [flags mifoldable discard]) ($lognot [flags single-valued]) ($logor [flags single-valued]) ($logtest [flags single-valued]) @@ -2117,9 +2117,9 @@ ($loop-unroll-limit [flags single-valued]) ($make-annotation-options [flags single-valued pure discard true]) ($make-base-modules [flags single-valued]) - ($make-binary-input/output-port #;[sig [(string port-handler bytevector bytevector) (string port-handler bytevector bytevector ptr) -> (binary-input/output-port)]] [flags single-valued alloc]) - ($make-binary-input-port #;[sig [(string port-handler bytevector) (string port-handler bytevector ptr) -> (binary-input-port)]] [flags single-valued alloc]) - ($make-binary-output-port #;[sig [(string port-handler bytevector) (string port-handler bytevector ptr) -> (binary-output-port)]] [flags single-valued alloc]) + ($make-binary-input/output-port [sig [(string port-handler bytevector bytevector) (string port-handler bytevector bytevector ptr) -> (binary-input/output-port)]] [flags alloc]) + ($make-binary-input-port [sig [(string port-handler bytevector) (string port-handler bytevector ptr) -> (binary-input-port)]] [flags alloc]) + ($make-binary-output-port [sig [(string port-handler bytevector) (string port-handler bytevector ptr) -> (binary-output-port)]] [flags alloc]) ($make-boot-file [flags single-valued]) ($make-boot-header [flags single-valued]) ($make-cinst [flags single-valued]) @@ -2146,14 +2146,14 @@ ($make-recompile-condition [flags single-valued]) ($make-record-constructor-descriptor [flags single-valued pure true cp02]) ($make-record-type-descriptor [flags single-valued pure alloc cp02]) - ($make-record-type #;[sig [(rtd maybe-rtd sub-ptr sub-list ptr ptr ptr ...) -> (rtd)]] [flags single-valued pure alloc cp02]) + ($make-record-type [sig [(rtd maybe-rtd sub-ptr sub-list ptr ptr ptr ...) -> (rtd)]] [flags pure alloc cp02]) ($make-relocation-table! [flags single-valued]) ($make-rnrs-libraries [flags single-valued]) ($make-source-oops [flags single-valued]) ($make-src-condition [flags single-valued]) - ($make-textual-input/output-port #;[sig [(string port-handler string string) (string port-handler string string ptr) -> (textual-input/output-port)]] [flags single-valued alloc]) - ($make-textual-input-port #;[sig [(string port-handler string) (string port-handler string ptr) -> (textual-input-port)]] [flags single-valued alloc]) - ($make-textual-output-port #;[sig [(string port-handler string) (string port-handler string ptr) -> (textual-output-port)]] [flags single-valued alloc]) + ($make-textual-input/output-port [sig [(string port-handler string string) (string port-handler string string ptr) -> (textual-input/output-port)]] [flags alloc]) + ($make-textual-input-port [sig [(string port-handler string) (string port-handler string ptr) -> (textual-input-port)]] [flags alloc]) + ($make-textual-output-port [sig [(string port-handler string) (string port-handler string ptr) -> (textual-output-port)]] [flags alloc]) ($make-tlc [flags single-valued alloc]) ($make-vtable [flags single-valued]) ($make-wrapper-procedure [flags single-valued]) @@ -2161,7 +2161,7 @@ ($mark-invoked! [flags single-valued]) ($maybe-compile-file [flags single-valued]) ($maybe-seginfo [flags single-valued]) - ($noexpand? [flags single-valued]) + ($noexpand? [sig [(ptr) -> (boolean)]] [flags discard]) ($np-boot-code [flags single-valued]) ($np-compile [flags single-valued]) ($np-get-timers [flags single-valued]) @@ -2170,7 +2170,7 @@ ($np-tracer [flags single-valued]) ($null-continuation [flags single-valued]) ($object-address [flags single-valued]) - ($object-in-heap? [flags single-valued]) + ($object-in-heap? [sig [(ptr) -> (boolean)]] [flags discard]) ($object-ref [flags single-valued]) ; can't fold since optimize-level 2 version does no checks ($object-set! [flags single-valued]) ($oops/c [flags abort-op]) @@ -2184,14 +2184,14 @@ ($pass-stats-fields [flags single-valued]) ($pass-stats [flags single-valued]) ($pass-time [flags single-valued]) - ($port-flags-set? [flags single-valued]) + ($port-flags-set? [sig [(port finum) -> (boolean)]] [flags discard]) ($port-handler [flags single-valued]) - ($port-info #;[sig [(port) -> (ptr)]] [flags single-valued discard]) + ($port-info [sig [(port) -> (ptr)]] [flags discard]) ($print-pass-stats [flags single-valued]) ($procedure-name [flags single-valued]) - ($profile-block-data? [flags single-valued]) + ($profile-block-data? [sig [() -> (boolean)]] [flags discard]) ($profile-show-database [flags single-valued]) - ($profile-source-data? [flags single-valued]) + ($profile-source-data? [sig [() -> (boolean)]] [flags discard]) ($ptr-copy! [flags single-valued]) ($quotient-remainder [flags single-valued]) ($ratio-denominator [flags single-valued]) @@ -2202,14 +2202,14 @@ ($read-time-stamp-counter [flags single-valued]) ($real->flonum [flags single-valued arith-op mifoldable discard]) ($real-sym-name [flags single-valued]) - ($recompile-condition? [flags single-valued]) + ($recompile-condition? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable]) ($recompile-importer-path [flags single-valued]) ($record [flags single-valued cp02 unrestricted alloc]) ; first arg should be an rtd, but we don't check - ($record? [flags single-valued pure mifoldable discard]) + ($record? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable]) ($record-cas! [sig [(record sub-index ptr ptr) -> (boolean)]] [flags single-valued]) ($record-equal-procedure [flags single-valued discard]) ($record-hash-procedure [flags single-valued discard]) - ($record-oops #;[sig [(who sub-ptr rtd) -> (bottom)]] [flags abort-op]) + ($record-oops [sig [(who sub-ptr rtd) -> (bottom)]] [flags abort-op]) ($record-ref [sig [(ptr sub-index) -> (ptr)]] [flags single-valued discard cp03]) ($record-set! [sig [(ptr sub-index ptr) -> (void)]] [flags true]) ($record-type-descriptor [flags single-valued pure mifoldable discard true]) @@ -2222,14 +2222,14 @@ ($reset-port-flags! [flags true]) ($reset-protect [flags]) ($revisit [flags single-valued]) - ($rtd-counts? [flags single-valued]) + ($rtd-counts? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable]) ($scheme [flags single-valued]) ($scheme-greeting [flags single-valued]) ($scheme-init [flags single-valued]) ($sc-put-cte [flags single-valued]) ($sc-put-property! [flags single-valued]) ($script [flags single-valued]) - ($sealed-record? [flags single-valued pure mifoldable discard]) + ($sealed-record? [sig [(ptr rtd) -> (boolean)]] [flags pure mifoldable]) ; first argument may be not a record ($seginfo-generation [flags single-valued]) ($seginfo-space [flags single-valued]) ($set-code-byte! [flags single-valued]) @@ -2238,7 +2238,7 @@ ($set-code-word! [flags single-valued]) ($set-collect-trip-bytes [flags single-valued]) ($set-port-flags! [flags true]) - ($set-port-info! #;[sig [(port ptr) -> (void)]] [flags true]) + ($set-port-info! [sig [(port ptr) -> (void)]] [flags true]) ($set-symbol-hash! [flags single-valued]) ($set-symbol-name! [flags single-valued]) ($set-symbol-property-list! [flags single-valued]) @@ -2256,39 +2256,39 @@ ($spaces [flags single-valued]) ($split-continuation [flags single-valued]) ($sputprop [flags single-valued]) - ($src-condition? [flags single-valued]) + ($src-condition? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable]) ($src-condition-src [flags single-valued]) ($src-condition-start [flags single-valued]) ($sremprop [flags single-valued]) ($string-char-foldcase [flags single-valued]) - ($string-ref-check? [flags single-valued]) - ($string-set!-check? [flags single-valued]) - ($string-set-immutable! #;[sig [(string) -> (ptr)]] [flags true]) + ($string-ref-check? [sig [(ptr ptr) -> (boolean)]] [flags unrestricted pure]) + ($string-set!-check? [sig [(ptr ptr) -> (boolean)]] [flags unrestricted discard]) + ($string-set-immutable! [sig [(string) -> (void)]] [flags true]) ($str->num [flags single-valued]) - ($subsequent? [flags single-valued]) + ($subsequent? [sig [(char) -> (boolean)]] [flags pure mifoldable safeongoodargs]) ($swap-object-ref [flags single-valued]) ; can't fold since optimize-level 2 version does no checks ($symbol-hash [flags single-valued]) ($symbol-name [flags single-valued]) ($symbol-property-list [flags single-valued]) ($symbol-type [flags single-valued]) ($syntax-dispatch [flags single-valued]) - ($syntax-match? [flags single-valued]) + ($syntax-match? [sig [(ptr ptr) -> (boolean)]] [flags discard]) ($syntax->src [flags]) - ($syntax-top-level? [flags single-valued]) - ($system-code? [flags single-valued]) + ($syntax-top-level? [sig [() -> (boolean)]] [flags unrestricted discard]) + ($system-code? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable]) ($system-environment [flags single-valued]) - ($system-library? [flags single-valued]) - ($system-procedure? [flags single-valued]) + ($system-library? [sig [(ptr) -> (boolean)]] [flags discard]) + ($system-procedure? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable]) ($system-property-list [flags single-valued]) ($tc-field [flags single-valued]) ($tc [flags single-valued]) ($thread-list [flags single-valued]) ($thread-tc [flags single-valued]) - ($tlc? [flags single-valued pure unrestricted mifoldable discard]) + ($tlc? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable discard]) ($tlc-ht [flags single-valued mifoldable discard]) ($tlc-keyval [flags single-valued pure mifoldable discard]) ($tlc-next [flags single-valued mifoldable discard]) - ($top-level-bound? [flags single-valued discard single-valued]) + ($top-level-bound? [sig [(symbol) -> (boolean)]] [flags discard safeongoodargs]) ($top-level-value [flags single-valued discard cp02 single-valued]) ($trace-closure [flags single-valued pure alloc]) ($trace [flags single-valued]) @@ -2298,29 +2298,29 @@ ($transformer->binding [flags single-valued]) ($trans-ftype-guardian [flags single-valued]) ($trans-ftype-locked-op! [flags single-valued]) - ($trans-ftype-pointer? [flags single-valued]) + ($trans-ftype-pointer? [sig [(ptr) -> (procedure)]] [flags alloc]) ; not boolean ($trans-ftype-&ref [flags single-valued]) ($trans-ftype-ref [flags single-valued]) ($trans-ftype-set! [flags single-valued]) ($trans-ftype-sizeof [flags single-valued]) ($trans-make-ftype-pointer [flags single-valued]) - ($unbound-object? [flags single-valued pure unrestricted mifoldable discard]) - ($unbound-object [flags single-valued pure unrestricted mifoldable discard true]) + ($unbound-object? [sig [(ptr) -> (boolean)]] [flags pure unrestricted mifoldable]) + ($unbound-object [sig [() -> (ptr)]] [flags pure unrestricted mifoldable true]) ($uncprep [flags single-valued]) ; side-effects preinfo-sexpr, at least ($undefined-violation [flags abort-op]) ($untrace [flags single-valued]) ($unwrap-ftype-pointer [flags single-valued]) - ($value [flags pure unrestricted discard cp02]) - ($vector-ref-check? [flags single-valued]) - ($vector-set!-check? [flags single-valued]) - ($vector-set-immutable! #;[sig [(vector) -> (ptr)]] [flags true]) + ($value [sig [(ptr) -> (ptr)]] [flags pure unrestricted discard cp02]) + ($vector-ref-check? [sig [(ptr ptr) -> (boolean)]] [flags unrestricted pure]) + ($vector-set!-check? [sig [(ptr ptr) -> (boolean)]] [flags unrestricted discard]) + ($vector-set-immutable! [sig [(vector) -> (void)]] [flags true]) ($verify-ftype-address [flags single-valued cp02]) ($verify-ftype-pointer [flags single-valued]) ($visit [flags single-valued]) ($visit-library [flags single-valued]) ($with-fasl-target [flags single-valued]) ($write-pretty-quick [flags single-valued]) - ($xscript-port? [flags single-valued]) + ($xscript-port? [sig [(port) -> (boolean)]] [flags discard]) ) (define-symbol-flags* ([libraries] [flags system]) ; system options sets @@ -2334,8 +2334,8 @@ ($block-counter [flags single-valued]) ($cafe [flags single-valued]) ($compile-profile [flags single-valued]) - ($cp0-inner-unroll-limit #;[sig [() -> (ufixnum)] [(ufixnum) -> (void)]] [flags single-valued]) - ($cp0-polyvariant #;[sig [() -> (boolean)] [(ptr) -> (void)]] [flags single-valued unrestricted]) + ($cp0-inner-unroll-limit [sig [() -> (ufixnum)] [(ufixnum) -> (void)]] [flags true]) + ($cp0-polyvariant [sig [() -> (boolean)] [(ptr) -> (void)]] [flags unrestricted]) ($current-mso [flags single-valued]) ($enable-check-heap [flags single-valued]) ($enable-check-prelex-flags [flags single-valued]) @@ -2343,8 +2343,8 @@ ($enable-pass-timing [flags single-valued]) ($expeditor-history-file [feature expeditor] [flags single-valued]) ($fasl-target [flags single-valued]) - ($optimize-closures #;[sig [() -> (boolean)] [(ptr) -> (void)]] [flags single-valued unrestricted]) - ($suppress-primitive-inlining #;[sig [() -> (boolean)] [(ptr) -> (void)]] [flags single-valued unrestricted]) + ($optimize-closures [sig [() -> (boolean)] [(ptr) -> (void)]] [flags unrestricted]) + ($suppress-primitive-inlining [sig [() -> (boolean)] [(ptr) -> (void)]] [flags unrestricted]) ($sfd [flags single-valued]) ($target-machine [flags single-valued]) )