chicken-hackers
[Top][All Lists]
Advanced

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

Re: [PATCH 3/3] Let scrutinizer infer types for foreign types with retco


From: megane
Subject: Re: [PATCH 3/3] Let scrutinizer infer types for foreign types with retconv/argconv given
Date: Thu, 26 Dec 2019 15:51:00 +0200
User-agent: mu4e 1.0; emacs 25.1.1

Evan Hanson <address@hidden> writes:

> Hi megane, happy holidays!

Happy holidays, Evan and everyone!

>
> A quick question about this -- ought the scrutinizer try to improve the
> specificity of the ##core#the annotation, rather than having
> annotate-foreign-procedure skip emitting it entirely?

It would be ideal if we could add some bits of type information and let
the scrutinizer infer the rest. I think that would need some thought,
and/or experimentation.

In these patches I dropped the annotations that added no information the
scrutinizer couldn't infer. For example in (* * -> *) the only
information is the arity of the function, which the scrutinizer can
infer. There's only 1 return value from foreign functions, too (right?).

>
> ISTR it doesn't even look at the types in ##core#the nodes, but maybe it
> should? I'd guess that would simplify this code, and might also give
> benefits in other places, but maybe there's a reason it doesn't...

Scrutinizer does walk ##core#the nodes. There's the error message
r-type-mismatch-in-the for the situation where the annotation is
incompatible with the inferred type.

---

More on the ideal behaviour:

There should a way for the user to override (if compatible) the type for
definitions. If the user specifies (: foo (-> *)) the return type of foo
should be * even if the scrutinizer could infer the actual return type
to be, say a fixnum. That gives more freedom for a library writer from
an API design perspective.

>
> Evan



reply via email to

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