~ chicken-core (chicken-5) 7f113e5999f24a613caa6e4caeff560ca711ccd1
commit 7f113e5999f24a613caa6e4caeff560ca711ccd1 Author: felix <felix@call-with-current-continuation.org> AuthorDate: Sat May 21 23:50:09 2011 +0200 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Sat May 21 23:50:09 2011 +0200 use different marker for predicates in types.db to avoid conflicts with user procedures diff --git a/scrutinizer.scm b/scrutinizer.scm index cf7dd090..3cb5bc52 100755 --- a/scrutinizer.scm +++ b/scrutinizer.scm @@ -961,7 +961,7 @@ (printf "loading type database ~a ...~%" dbfile)) (for-each (lambda (e) - (cond ((eq? 'predicate (car e)) + (cond ((eq? '#%predicate (car e)) (mark-variable (cadr e) '##compiler#predicate (caddr e))) (else (let* ((name (car e)) diff --git a/types.db b/types.db index ed0eb70b..c544dd50 100644 --- a/types.db +++ b/types.db @@ -37,16 +37,13 @@ ; but declares the procedure as "argument-type enforcing" -;;XXX use some other name than "predicate" ("#%predicate" ?) - - ;; scheme (not (procedure not (*) boolean) (((not boolean)) (let ((#:tmp #(1))) '#t))) (boolean? (procedure boolean? (*) boolean)) -(predicate boolean? boolean) +(#%predicate boolean? boolean) (eq? (procedure eq? (* *) boolean)) @@ -59,7 +56,7 @@ ((* (or fixnum symbol char eof null undefined) (eq? #(1) #(2))))) (pair? (procedure pair? (*) boolean)) -(predicate pair? pair) +(#%predicate pair? pair) (cons (procedure cons (* *) pair)) @@ -99,10 +96,10 @@ (set-cdr! (procedure! set-cdr! (pair *) undefined) ((pair *) (##sys#setslot #(1) '1 #(2)))) (null? (procedure null? (*) boolean)) -(predicate null? null) +(#%predicate null? null) (list? (procedure list? (*) boolean)) -(predicate list? list) +(#%predicate list? list) (list (procedure list (#!rest) list)) (length (procedure! length (list) fixnum) ((list) (##core#inline "C_u_i_length" #(1)))) @@ -118,30 +115,30 @@ (assoc (procedure assoc (* list #!optional (procedure (* *) *)) *)) (symbol? (procedure symbol? (*) boolean)) -(predicate symbol? symbol) +(#%predicate symbol? symbol) (symbol-append (procedure! symbol-append (#!rest symbol) symbol)) (symbol->string (procedure! symbol->string (symbol) string)) (string->symbol (procedure! string->symbol (string) symbol)) (number? (procedure number? (*) boolean)) -(predicate number? number) +(#%predicate number? number) (integer? (procedure integer? (*) boolean) ((fixnum) (let ((#:tmp #(1))) '#t)) ((float) (##core#inline "C_u_i_fpintegerp" #(1)))) (exact? (procedure exact? (*) boolean)) -(predicate exact? fixnum) +(#%predicate exact? fixnum) (real? (procedure real? (*) boolean)) -(predicate real? number) +(#%predicate real? number) (complex? (procedure complex? (*) boolean)) -(predicate complex? number) +(#%predicate complex? number) (inexact? (procedure inexact? (*) boolean)) -(predicate inexact? float) +(#%predicate inexact? float) (rational? (procedure rational? (*) boolean) ((fixnum) (let ((#:tmp #(1))) '#t))) @@ -381,7 +378,7 @@ (string->number (procedure! string->number (string #!optional number) (or number boolean))) (char? (procedure char? (*) boolean)) -(predicate char? char) +(#%predicate char? char) ;; we could rewrite these, but this is done by the optimizer anyway (safe) (char=? (procedure! char=? (char char) boolean)) @@ -407,7 +404,7 @@ (integer->char (procedure! integer->char (fixnum) char)) (string? (procedure string? (*) boolean)) -(predicate string? string) +(#%predicate string? string) (string=? (procedure! string=? (string string) boolean) ((string string) (##core#inline "C_u_i_string_equal_p" #(1) #(2)))) @@ -447,7 +444,7 @@ (string (procedure! string (#!rest char) string)) (vector? (procedure vector? (*) boolean)) -(predicate vector? vector) +(#%predicate vector? vector) (make-vector (procedure! make-vector (fixnum #!optional *) vector)) @@ -463,7 +460,7 @@ (vector-fill! (procedure! vector-fill! (vector *) vector)) (procedure? (procedure procedure? (*) boolean)) -(predicate procedure? procedure) +(#%predicate procedure? procedure) (vector-copy! (procedure! vector-copy! (vector vector #!optional fixnum) undefined)) (map (procedure! map (procedure #!rest list) list)) @@ -485,7 +482,7 @@ (read (procedure! read (#!optional port) *)) (eof-object? (procedure eof-object? (*) boolean)) -(predicate eof-object? eof) +(#%predicate eof-object? eof) ;;XXX if we had input/output port distinction, we could specialize these: (read-char (procedure! read-char (#!optional port) *)) ; result (or eof char) ? @@ -563,7 +560,7 @@ ((blob) (##sys#size #(1)))) (blob? (procedure blob? (*) boolean)) -(predicate blob? blob) +(#%predicate blob? blob) (blob=? (procedure! blob=? (blob blob) boolean)) (breakpoint (procedure breakpoint (#!optional *) . *)) @@ -578,7 +575,7 @@ (condition-property-accessor (procedure! condition-property-accessor (symbol symbol #!optional *) (procedure ((struct condition)) *))) (condition? (procedure condition? (*) boolean)) -(predicate condition? (struct condition)) +(#%predicate condition? (struct condition)) (condition->list (procedure! condition->list ((struct condition)) list)) (continuation-capture (procedure! continuation-capture ((procedure ((struct continuation)) . *)) *)) @@ -586,7 +583,7 @@ (continuation-return (procedure! continuation-return (procedure #!rest) . *)) ;XXX make return type more specific? (continuation? (procedure continuation? (*) boolean)) -(predicate continuation (struct continuation)) +(#%predicate continuation (struct continuation)) (copy-read-table (procedure! copy-read-table ((struct read-table)) (struct read-table))) (cpu-time (procedure cpu-time () fixnum fixnum)) @@ -622,7 +619,7 @@ (fixnum-precision fixnum) (fixnum? (procedure fixnum? (*) boolean)) -(predicate fixnum? fixnum) +(#%predicate fixnum? fixnum) (flonum-decimal-precision fixnum) (flonum-epsilon float) @@ -635,7 +632,7 @@ (flonum-radix fixnum) (flonum? (procedure flonum? (*) boolean)) -(predicate flonum? float) +(#%predicate flonum? float) (flush-output (procedure! flush-output (#!optional port) undefined)) (force-finalizers (procedure force-finalizers () undefined)) @@ -794,7 +791,7 @@ (port-position (procedure! port-position (#!optional port) fixnum)) (port? (procedure port? (*) boolean)) -(predicate port? port) +(#%predicate port? port) (print (procedure print (#!rest *) undefined)) (print-call-chain (procedure! print-call-chain (#!optional port fixnum * string) undefined)) @@ -967,7 +964,7 @@ (queue-remove! (procedure! queue-remove! ((struct queue)) *)) (queue? (procedure queue? (*) boolean)) -(predicate queue? (struct queue)) +(#%predicate queue? (struct queue)) (rassoc (procedure! rassoc (* list #!optional (procedure (* *) *)) *)) (reverse-string-append (procedure! reverse-string-append (list) string)) @@ -1068,7 +1065,7 @@ ;irregex-match? (irregex-match-data? (procedure irregex-match-data? (*) boolean)) -(predicate irregex-match-data? (struct regexp-match)) +(#%predicate irregex-match-data? (struct regexp-match)) (irregex-match-end (procedure irregex-match-end (* #!optional *) *)) ;irregex-match-end-chunk @@ -1110,7 +1107,7 @@ (procedure! irregex-match-valid-index? ((struct regexp-match) *) boolean)) (irregex? (procedure irregex? (*) boolean)) -(predicate irregex? (struct regexp)) +(#%predicate irregex? (struct regexp)) (make-irregex-chunker (procedure! make-irregex-chunker @@ -1192,7 +1189,7 @@ (pointer-vector (procedure! pointer-vector (#!rest pointer-vector) boolean)) (pointer-vector? (procedure pointer-vector? (*) boolean)) -(predicate pointer-vector? pointer-vector) +(#%predicate pointer-vector? pointer-vector) (pointer-vector-fill! (procedure! pointer-vector-fill! (pointer-vector pointer) undefined)) @@ -1219,7 +1216,7 @@ ((pointer pointer) (##core#inline "C_pointer_eqp" #(1) #(2)))) (pointer? (procedure pointer? (*) boolean)) -(predicate pointer? pointer) +(#%predicate pointer? pointer) (procedure-data (procedure! procedure-data (procedure) *)) (record->vector (procedure record->vector (*) vector)) @@ -1783,7 +1780,7 @@ (char-set= (procedure! char-set= (#!rest (struct char-set)) boolean)) (char-set? (procedure char-set? (*) boolean)) -(predicate char-set? (struct char-set)) +(#%predicate char-set? (struct char-set)) (end-of-char-set? (procedure! end-of-char-set? (fixnum) boolean)) (list->char-set (procedure! list->char-set (list #!optional (struct char-set)) (struct char-set))) @@ -1803,7 +1800,7 @@ (condition-variable-specific-set! (procedure! condition-variable-specific-set! ((struct condition-variable) *) undefined)) (condition-variable? (procedure! condition-variable? (*) boolean)) -(predicate condition-variable? (struct condition-variable)) +(#%predicate condition-variable? (struct condition-variable)) (current-thread (procedure current-thread () (struct thread))) ;XXX @@ -1828,7 +1825,7 @@ (mutex-unlock! (procedure! mutex-unlock! ((struct mutex) #!optional (struct condition-variable) *) undefined)) (mutex? (procedure mutex? (*) boolean)) -(predicate mutex? (struct mutex)) +(#%predicate mutex? (struct mutex)) (raise (procedure raise (*) noreturn)) (seconds->time (procedure! seconds->time (number) (struct time))) @@ -1863,13 +1860,13 @@ (thread-yield! (procedure thread-yield! () undefined)) (thread? (procedure thread? (*) boolean)) -(predicate thread? (struct thread)) +(#%predicate thread? (struct thread)) (time->milliseconds deprecated) (time->seconds (procedure! time->seconds ((struct time)) number)) (time? (procedure time? (*) boolean)) -(predicate time? (struct time)) +(#%predicate time? (struct time)) (uncaught-exception-reason (procedure! uncaught-exception-reason ((struct condition)) *)) (uncaught-exception? (procedure uncaught-exception? (*) boolean)) @@ -1904,7 +1901,7 @@ (f32vector-set! (procedure! f32vector-set! ((struct f32vector) fixnum number) undefined)) (f32vector? (procedure f32vector? (*) boolean)) -(predicate f32vector? (struct f32vector)) +(#%predicate f32vector? (struct f32vector)) (f64vector (procedure! f64vector (#!rest number) (struct f64vector))) (f64vector->blob (procedure! f64vector->blob ((struct f32vector)) blob)) @@ -1918,7 +1915,7 @@ (f64vector-set! (procedure! f64vector-set! ((struct f64vector) fixnum number) undefined)) (f64vector? (procedure f64vector? (*) boolean)) -(predicate f64vector? (struct f64vector)) +(#%predicate f64vector? (struct f64vector)) (list->f32vector (procedure! list->f32vector (list) (struct f32vector))) (list->f64vector (procedure! list->f64vector (list) (struct f64vector))) @@ -1951,7 +1948,7 @@ (s16vector-set! (procedure! s16vector-set! ((struct s16vector) fixnum fixnum) undefined)) (s16vector? (procedure s16vector? (*) boolean)) -(predicate s16vector? (struct s16vector)) +(#%predicate s16vector? (struct s16vector)) (s32vector (procedure! s32vector (#!rest number) (struct s32vector))) (s32vector->blob (procedure! s32vector->blob ((struct 32vector)) blob)) @@ -1965,7 +1962,7 @@ (s32vector-set! (procedure! s32vector-set! ((struct s32vector) fixnum number) undefined)) (s32vector? (procedure s32vector? (*) boolean)) -(predicate s32vector? (struct s32vector)) +(#%predicate s32vector? (struct s32vector)) (s8vector (procedure! s8vector (#!rest fixnum) (struct s8vector))) (s8vector->blob (procedure! s8vector->blob ((struct s8vector)) blob)) @@ -1979,7 +1976,7 @@ (s8vector-set! (procedure! s8vector-set! ((struct s8vector) fixnum fixnum) undefined)) (s8vector? (procedure s8vector? (*) boolean)) -(predicate s8vector? (struct s8vector)) +(#%predicate s8vector? (struct s8vector)) (subf32vector (procedure! subf32vector ((struct f32vector) fixnum fixnum) (struct f32vector))) (subf64vector (procedure! subf64vector ((struct f64vector) fixnum fixnum) (struct f64vector))) @@ -2001,7 +1998,7 @@ (u16vector-set! (procedure! u16vector-set! ((struct u16vector) fixnum fixnum) undefined)) (u16vector? (procedure u16vector? (*) boolean)) -(predicate u16vector? (struct u16vector)) +(#%predicate u16vector? (struct u16vector)) (u32vector (procedure! u32vector (#!rest number) (struct u32vector))) (u32vector->blob (procedure! u32vector->blob ((struct u32vector)) blob)) @@ -2015,7 +2012,7 @@ (u32vector-set! (procedure! u32vector-set! ((struct u32vector) fixnum number) undefined)) (u32vector? (procedure u32vector? (*) boolean)) -(predicate u32vector? (struct u32vector)) +(#%predicate u32vector? (struct u32vector)) (u8vector (procedure! u8vector (#!rest fixnum) (struct u8vector))) (u8vector->blob (procedure! u8vector->blob ((struct u8vector)) blob)) @@ -2029,7 +2026,7 @@ (u8vector-set! (procedure! u8vector-set! ((struct u8vector) fixnum fixnum) undefined)) (u8vector? (procedure u8vector? (*) boolean)) -(predicate u8vector? (struct u8vector)) +(#%predicate u8vector? (struct u8vector)) (write-u8vector (procedure! write-u8vector ((struct u8vector) #!optional port fixnum fixnum) undefined)) @@ -2089,7 +2086,7 @@ (((struct hash-table)) (##sys#slot #(1) '8))) (hash-table? (procedure hash-table? (*) boolean)) -(predicate hash-table? (struct hash-table)) +(#%predicate hash-table? (struct hash-table)) ;;XXX if we want to hardcode hash-default-bound here, we could rewrite the 1-arg case... ; (applies to all hash-functions) @@ -2122,7 +2119,7 @@ (tcp-listener-port (procedure! tcp-listener-port ((struct tcp-listener)) fixnum)) (tcp-listener? (procedure tcp-listener? (*) boolean)) -(predicate tcp-listener? (struct tcp-listener)) +(#%predicate tcp-listener? (struct tcp-listener)) (tcp-port-numbers (procedure! tcp-port-numbers (port) fixnum fixnum)) (tcp-read-timeout (procedure! tcp-read-timeout (#!optional number) number))Trap