On 7 Feb 2008, at 12:07 AM, Henning Thielemann wrote:


On Wed, 6 Feb 2008, Jonathan Cast wrote:

On 6 Feb 2008, at 1:54 PM, Matthew Pocock wrote:

On Wednesday 06 February 2008, Henning Thielemann wrote:

If the type checker does not terminate because the checked
function does
not terminate on the example input, then the function does not
pass the
type check and as a compromise this would be ok.

Can't fault this logic. The problem is that you may have to wait
quite a long time to discover this non-termination.

I would second this --- letting the compiler go only to discover that
it's been running for the last 3 hours because it's diverging seems
like a wasted 3 hours.

There is the same problem with unit testing: Tests that eat too much time
have to be rewritten.

Tell that to my co-workers...

Same here: If the automatic proof takes too long -
choose a simpler example input (if possible).

3 hours wasn't chosen arbitrarily --- I've had suites of unit tests take that long, and that's realistically about when I'd check for divergence. And in a large program I'd hate to recompile only to discover that it's taking so long because *I* introduced an infinite loop into the compiler.

But Dan's point definitely
applies here - there is no need to automatically prove every instance, if
there is a possibility to do a proof manually.


jcc
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to