bug in language definition (strictness)

Simon Marlow marlowsd at gmail.com
Mon Aug 17 08:02:29 EDT 2009


On 07/08/2009 12:17, Ravi Nanavati wrote:
> I wonder if this discussion has veered too far into legalistic
> reasoning (of various sorts). From where I'm standing the
> state-of-play is this:
>
> 1. Compiler writers (and some users) want a "liberal" version of seq
> (that's slippery about evaluation order) for optimizations and better
> correspondence with the denotational semantics.
> 2. Other users want a version of seq that guarantees evaluation order
> for use cases where that matters.
>
> Is there any deep reason why we don't just figure out what the best
> way to give people both versions of seq is and do that?

Compilers can provide seq with an ordering guarantee if they want, just 
as GHC does with Control.Parallel.pseq.  I don't think it would be good 
to mandate this in the standard, for the reassons I've already described 
in this thread, in summary:

  - it constrains evaluation order in a way that Haskell
    doesn't currently do, and which might prevent interesting
    implementations (e.g. automatic parallelisation)

  - it's not clear how to specify what "seq with an ordering guarantee"
    actually means.  If someone were to come up with a precise
    definition, that would be a much better basis for discussion.

Cheers,
	Simon


More information about the Haskell-prime mailing list