[Haskell-cafe] A first glimps on the {-# NOUPDATE #-} pragma

Joachim Breitner breitner at kit.edu
Thu Aug 30 10:34:24 CEST 2012


Hi,

Am Mittwoch, den 29.08.2012, 17:16 +0100 schrieb Thomas Schilling:
> Syntactically, I'd prefer something that looks more like a function.
>  With a pragma it's difficult to see what expression it actually
> affects.  For example, we already have the special functions "lazy"
> and "inline". Since avoiding updates essentially turns lazy evaluation
> into call-by-name you could call it "cbn". Perhaps that suggests a
> different use case, though, so "nonstrict", "unshared", or "nonlazy"
> might be more self-explanatory.

thanks for the feedback. I only made it a pragma because it seemed to be
simpler at first, but now the branch also supports GHC.Prim.noupdate
(better name to be found before it reaches any official GHC branch, if
that ever happens).

> I'd also like to point out that avoiding updates can dramatically
> improve the kind of speedups my tracing JIT can achieve. In
> particular, on some benchmarks, it can optimise idiomatic Haskell code
> to the same level as stream fusion. I can simulate that by avoiding
> *all* updates (i.e., use call-by-name), but that would break some
> programs badly. (Technically, that's all legal, but I'm pretty sure it
> breaks any "tying-the-knot" tricks.)

If you can make use of my code in Lambdachine I’d be very happy to help
fixing bus and to hear about your results (but from a first glance it
seems that you are not using that part of GHC in your project, right?).

Greetings,
Joachim

-- 
Dipl.-Math. Dipl.-Inform. Joachim Breitner
Wissenschaftlicher Mitarbeiter
http://pp.info.uni-karlsruhe.de/~breitner
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20120830/2359aaa1/attachment.pgp>


More information about the Haskell-Cafe mailing list