~ chicken-core (chicken-5) 096806b032851a7fe0e6c17f64ae82e3d4fb0562
commit 096806b032851a7fe0e6c17f64ae82e3d4fb0562 Author: felix <felix@call-with-current-continuation.org> AuthorDate: Tue Mar 29 04:47:25 2011 -0400 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Tue Mar 29 04:47:25 2011 -0400 more conflict screwups diff --git a/scrutinizer.scm b/scrutinizer.scm index a7d3befd..b9269165 100755 --- a/scrutinizer.scm +++ b/scrutinizer.scm @@ -84,48 +84,49 @@ (define specialization-statistics '()) (define (scrutinize node db complain specialize) - (define (constant-result lit) - (cond ((string? lit) 'string) - ((symbol? lit) 'symbol) - ((fixnum? lit) 'fixnum) - ((flonum? lit) 'float) - ((number? lit) - (case number-type - ((fixnum) 'fixnum) - ((flonum) 'flonum) - (else 'number))) ; in case... - ((boolean? lit) 'boolean) - ((null? lit) 'null) - ((pair? lit) 'pair) - ((list? lit) 'list) - ((eof-object? lit) 'eof) - ((vector? lit) 'vector) - ((and (not (##sys#immediate? lit)) ##sys#generic-structure? lit) - `(struct ,(##sys#slot lit 0))) - ((char? lit) 'char) - (else '*))) - (define (global-result id loc) - (cond ((##sys#get id '##compiler#type) => - (lambda (a) - (cond - #;((and (get db id 'assigned) ; remove assigned global from type db - (not (##sys#get id '##compiler#declared-type))) - (##sys#put! id '##compiler#type #f) - '(*)) - ((eq? a 'deprecated) - (report - loc - (sprintf "use of deprecated library procedure `~a'" id) ) + (let ((blist '())) + (define (constant-result lit) + (cond ((string? lit) 'string) + ((symbol? lit) 'symbol) + ((fixnum? lit) 'fixnum) + ((flonum? lit) 'float) + ((number? lit) + (case number-type + ((fixnum) 'fixnum) + ((flonum) 'flonum) + (else 'number))) ; in case... + ((boolean? lit) 'boolean) + ((null? lit) 'null) + ((pair? lit) 'pair) + ((list? lit) 'list) + ((eof-object? lit) 'eof) + ((vector? lit) 'vector) + ((and (not (##sys#immediate? lit)) ##sys#generic-structure? lit) + `(struct ,(##sys#slot lit 0))) + ((char? lit) 'char) + (else '*))) + (define (global-result id loc) + (cond ((##sys#get id '##compiler#type) => + (lambda (a) + (cond + #;((and (get db id 'assigned) ; remove assigned global from type db + (not (##sys#get id '##compiler#declared-type))) + (##sys#put! id '##compiler#type #f) '(*)) - ((and (pair? a) (eq? (car a) 'deprecated)) - (report - loc - (sprintf - "use of deprecated library procedure `~a' - consider using `~a' instead" - id (cadr a))) - '(*)) - (else (list a))))) - (else '(*)))) + ((eq? a 'deprecated) + (report + loc + (sprintf "use of deprecated library procedure `~a'" id) ) + '(*)) + ((and (pair? a) (eq? (car a) 'deprecated)) + (report + loc + (sprintf + "use of deprecated library procedure `~a' - consider using `~a' instead" + id (cadr a))) + '(*)) + (else (list a))))) + (else '(*)))) (define (variable-result id e loc flow) (cond ((find (lambda (b) (and (eq? id (caar b)) @@ -457,12 +458,12 @@ (define (call-result node args e loc params) (define (pname) (sprintf "~ain procedure call to `~s', " - (if (and (pair? params) (pair? (cdr params))) - (let ((n (source-info->line (cadr params)))) - (if n - (sprintf "~a: " n) - "")) - "") + (if (and (pair? params) (pair? (cdr params))) + (let ((n (source-info->line (cadr params)))) + (if n + (sprintf "~a: " n) + "")) + "") (fragment (first (node-subexpressions node))))) (d "call-result: ~a " args) (let* ((ptype (car args)) @@ -473,10 +474,10 @@ (report loc (sprintf - "~aexpected a value of type `~a', but was given a value of type `~a'" - (pname) - xptype - ptype))) + "~aexpected a value of type `~a', but was given a value of type `~a'" + (pname) + xptype + ptype))) (let-values (((atypes values-rest) (procedure-argument-types ptype nargs))) (d " argument-types: ~a (~a)" atypes values-rest) (unless (= (length atypes) nargs) @@ -484,9 +485,9 @@ (report loc (sprintf - "~aexpected ~a argument~a, but was given ~a argument~a" - (pname) alen (multiples alen) - nargs (multiples nargs))))) + "~aexpected ~a argument~a, but was given ~a argument~a" + (pname) alen (multiples alen) + nargs (multiples nargs))))) (do ((args (cdr args) (cdr args)) (atypes atypes (cdr atypes)) (i 1 (add1 i))) @@ -495,8 +496,8 @@ (report loc (sprintf - "~aexpected argument #~a of type `~a', but was given an argument of type `~a'" - (pname) i (car atypes) (car args))))) + "~aexpected argument #~a of type `~a', but was given an argument of type `~a'" + (pname) i (car atypes) (car args))))) (let ((r (procedure-result-types ptype values-rest (cdr args)))) (d " result-types: ~a" r) (when specialize @@ -731,7 +732,7 @@ (lambda (ss) (printf " ~a ~s~%" (cdr ss) (car ss))) specialization-statistics)) - rn)) + rn))) (define (load-type-database name #!optional (path (repository-path))) (and-let* ((dbfile (file-exists? (make-pathname path name))))Trap