~ chicken-core (chicken-5) de033aef6860a4b76d388810e73d3927fd553e95
commit de033aef6860a4b76d388810e73d3927fd553e95 Author: felix <felix@call-with-current-continuation.org> AuthorDate: Fri Jan 21 09:39:13 2011 +0100 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Fri Jan 21 09:39:13 2011 +0100 fix in scrutinizer after bug-report by alan diff --git a/runtime.c b/runtime.c index fa4c10a5..d6bf249e 100644 --- a/runtime.c +++ b/runtime.c @@ -3781,7 +3781,6 @@ C_regparm C_word C_fcall C_hash_string(C_word str) unsigned C_word key = 0; int len = C_header_size(str); C_byte *ptr = C_data_pointer(str); -// *(ptr++) means you run off the edge. while(len--) key = (key << 4) + (*ptr++); return C_fix(key & C_MOST_POSITIVE_FIXNUM); diff --git a/scrutinizer.scm b/scrutinizer.scm index 0c2d77ba..5763099b 100755 --- a/scrutinizer.scm +++ b/scrutinizer.scm @@ -346,10 +346,10 @@ (case (car t1) ((or) (every (cut type<=? <> t2) (cdr t1))) ((procedure) - (let ((args1 (if (pair? (cadr t1)) (cadr t1) (caddr t1))) - (args2 (if (pair? (cadr t2)) (cadr t2) (caddr t2))) - (res1 (if (pair? (cadr t1)) (cddr t1) (cdddr t1))) - (res2 (if (pair? (cadr t2)) (cddr t2) (cdddr t2))) ) + (let ((args1 (if (named? t1) (caddr t1) (cadr t1))) + (args2 (if (named? t2) (caddr t2) (cadr t2))) + (res1 (if (named? t1) (cdddr t1) (cddr t1))) + (res2 (if (named? t2) (cdddr t2) (cddr t2))) ) (let loop1 ((args1 args1) (args2 args2) (m1 0) diff --git a/types.db b/types.db index 6608d580..f2e9bceb 100644 --- a/types.db +++ b/types.db @@ -685,7 +685,7 @@ (call-with-input-string (procedure call-with-input-string (string (procedure (port) . *)) . *)) (call-with-output-string (procedure call-with-output-string ((procedure (port) . *)) string)) (copy-port (procedure copy-port (* * #!optional (procedure (*) *) (procedure (* *) *)) undefined)) -(make-input-port (procedure make-input-port ((procedure () char) (procedure () *) (procedure () . *) #!optional * * *) port)) +(make-input-port (procedure make-input-port ((procedure () char) (procedure () *) (procedure () . *) #!optional * * * *) port)) (make-output-port (procedure make-output-port ((procedure (string) . *) (procedure () . *) #!optional (procedure () . *)) port)) (port-for-each (procedure port-for-each ((procedure (*) *) (procedure () . *)) undefined)) (port-map (procedure port-map ((procedure (*) *) (procedure () . *)) list))Trap