Rewrite rules

David Feuer david.feuer at gmail.com
Mon Jan 16 12:18:27 UTC 2017


No. The part in quotes is the *name* of the rewrite rule, which is reported
to the user when GHC is called with things like -ddump-rule-rewrites and is
otherwise completely ignored.

On Jan 16, 2017 4:09 AM, "Erik de Castro Lopo" <mle+hs at mega-nerd.com> wrote:

Joachim Breitner wrote:

> very little. The best one can do right now is to know enough about Core
> and the inliner to predict when things are going to be inlined and when
> not, what else can go wrong (wrappers maybe?), add the necessary
> controls (`NOINLINE [0]` etc.), and then hope for the best. And track
> down any instances of failed rewriting that you learn about.
>
> You might also be able to set up your code so that it fails (at
> runtime, with error) if the desired rules did not fire. This would be
> nicer if we had https://ghc.haskell.org/trac/ghc/ticket/9180.
>
> You can also ask for review if it is public code.

Ok, I'm heading in this direction and then I figure out that the parser
for the rewrite rules doesn't even reject obvious syntax errors.

Say I have a data types:

    data Word128 = Word128 Word64 Word64

and inspired by the `fromIntegral` rules for Word64 I write:

    {-# RULES
    "fromIntegral/Word64->Word128"  fromIntegral = \w64 -> Word128 0 w64
       #-}

all is fine and dandy. However if I introduce an obvious syntax error
like reversing the `->`:

    {-# RULES
    "fromIntegral/Word64<-Word128"  fromIntegral = \w64 -> Word128 0 w64
       #-}

I don't get any warning or anything. I've read the docs for rewrite
rules:

    https://downloads.haskell.org/~ghc/8.0.1/docs/html/users_
guide/glasgow_exts.html#rewrite-rules

but they are rather sparse and again are very short on guarantees.

Have I just managed to find myself a new project?


Erik
--
----------------------------------------------------------------------
Erik de Castro Lopo
http://www.mega-nerd.com/
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users at haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/glasgow-haskell-users/attachments/20170116/bf55ea5e/attachment.html>


More information about the Glasgow-haskell-users mailing list