chicken-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-hackers] [PATCH] add input- and output port types specifier


From: Christian Kellermann
Subject: Re: [Chicken-hackers] [PATCH] add input- and output port types specifiers
Date: Fri, 30 Sep 2011 12:57:47 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

* felix winkelmann <address@hidden> [110930 08:40]:
> From: Alan Post <address@hidden>
> Subject: Re: [Chicken-hackers] [PATCH] add input- and output port types 
> specifiers
> Date: Thu, 29 Sep 2011 06:21:22 -0600
  
The following hunk has nothing to do with ports but it is not used so I agree.

> -;;; generate type-checks for formal variables
> -;
> -;XXX not used in the moment
> -
> -#;(define (generate-type-checks! node loc vars inits)
> -  ;; assumes type is validated

[...]

> -                          v t)
> -                      ,v))))
> -             b))))))))
> -
> -

This has nothing to do with ports, what does it do?
Should this be part of the commit?

>  ;;; perform check over all typevar instantiations
>  
>  (define (over-all-instantiations tlist typeenv exact process)
> @@ -2297,21 +2178,21 @@
>      ;; collect candidates for each typevar
>      (define (collect)
>        (let* ((vars (delete-duplicates (concatenate (map unzip1 insts)) eq?))
> -          ;;(_ (dd "vars: ~s, insts: ~s" vars insts)) ;XXX remove
>            (all (map (lambda (var)
>                        (cons
>                         var
> -                       (append-map
> +                       (filter-map
>                          (lambda (inst)
> -                          (cond ((assq var inst) => (o list cdr))
> -                                (exact '(*))
> -                                (else '())))
> +                          (cond ((assq var inst) => cdr)
> +                                ;;XXX is the following correct in all cases?
> +                                (exact '*)
> +                                (else #f)))
>                          insts)))
>                      vars)))
>       ;;(dd "  collected: ~s" all)    ;XXX remove
>       all))
>  
> -    (dd " over-all-instantiations: ~s exact=~a" tlist exact) ;XXX remove
> +    ;;(dd " over-all-instantiations: ~s exact=~a" tlist exact) ;XXX remove
>      ;; process all tlist elements
>      (let loop ((ts tlist) (ok #f))
>        (cond ((null? ts)


The rest looks good to me and does not break anything on my system.
I will push it if noone objects. With or without the above hunk as you like.

Thanks,

Christian

-- 
Who can (make) the muddy water (clear)? Let it be still, and it will
gradually become clear. Who can secure the condition of rest? Let
movement go on, and the condition of rest will gradually arise.
 -- Lao Tse. 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]