StrictData and the parser
Simon Peyton Jones
simonpj at microsoft.com
Thu Jun 4 20:58:29 UTC 2015
You need to understand why the shift/reduce conflicts are happening. Happy has a flag that makes it dump out the state transition tables, and you have to look at them. there probably is some genuine ambiguity.
Simon
| -----Original Message-----
| From: ghc-devs [mailto:ghc-devs-bounces at haskell.org] On Behalf Of Adam
| Sandberg Eriksson
| Sent: 04 June 2015 20:52
| To: ghc-devs at haskell.org; johan.tibell at gmail.com
| Subject: StrictData and the parser
|
| Hello *,
|
| I'm working on the -XStrict language extension[1] for this years Google
| summer of code. I've started with the smaller -XStrictData (as
| documented at the wiki) and have the internals mostly figured out.
|
| However after adding relevant rules for '~' in the parser[2] I get an
| explosion of shift/reduce conflicts as well as 4 extra reduce/reduce
| conflicts, see [3] for the happy info (the states with 36 shift/reduce
| conflicts seem to be the problematic ones), I also fail to parse the
| test file [4] with the error
|
| DsStrictData.hs:15:1: error:
| parse error (possibly incorrect indentation or mismatched brackets)
|
| Can anyone offer some guidance on what the appropriate changes to the
| parser are to make these "lazyness" marks work?
|
| Thanks,
| Adam
|
| [1]: https://ghc.haskell.org/trac/ghc/wiki/StrictPragma
| [2]:
| https://github.com/adamse/ghc/blob/strict-
| pragma/compiler/parser/Parser.y#L1547-L1563
| [3]:
| https://gist.githubusercontent.com/adamse/8d6c54b6ae660fca8b97/raw/detail
| ed-info
| [4]:
| https://github.com/adamse/ghc/blob/strict-
| pragma/testsuite/tests/deSugar/should_run/DsStrictData.hs#L13
| --
| Adam Sandberg Eriksson
| _______________________________________________
| ghc-devs mailing list
| ghc-devs at haskell.org
| http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
More information about the ghc-devs
mailing list