On Thu, May 09, 2019 at 12:54:01PM +0000, james faure wrote:
> Pi calculus [1] (process calculus) In the STG
>
> * Multithreading occurs for arguments of functions with >1 arity
>
> * Perfect garbage collection is quite probably possible [2], where
> allocation creates a new pi name, and its uses are modeled by pi calculus
> communication
>
> * Perfect Lazy evaluation (in the sense that the wrapper and associated
> wrapped type overhead is coerced away after the first evaluation) is
> possible in the pi calculus and closely linked the gc model. I intend
> to make strict evaluation the default, If you want lazy (for MonadFix
> or infinite lists or whatever), you must request it.
The ideas sound very interesting, but could you elaborate on the
"strict by default" aspect? Who's the "you" who'd have to request
lazy evaluation? Is this something internal to the compiler with
strictness analysis generating the "requests" internally, or would
all existing application and library code that expects lazy evaluation
need to be updated with explicit laziness annotations?
--
Viktor.
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.