New codegen failing test-cases

Simon Marlow marlowsd at gmail.com
Thu Dec 9 12:37:26 CET 2010


On 09/12/2010 04:42, Edward Z. Yang wrote:
> Final status report for tonight, before I crash in bed;
> I've managed to make it compile all the way to hoopl.
> It seems like hoopl doesn't typecheck anymore? I haven't
> been following the typechecker changes too closely so
> some guidance would be appreciated.
>
> libraries/hoopl/src/Compiler/Hoopl/Util.hs:190:37:
>      Could not deduce (e ~ block C C)
>        from the context (NonLocal block, LabelsPtr e)
>        `e' is a rigid type variable bound by
>            the type signature for `postorder_dfs_from_except'
>              at libraries/hoopl/src/Compiler/Hoopl/Util.hs:179:43
>      In the first argument of `get_children', namely `block'
>      In the first argument of `vchildren', namely `(get_children block)'
>      In the expression:
>        vchildren (get_children block) cont' acc (setInsert id visited)
>
> libraries/hoopl/src/Compiler/Hoopl/Util.hs:220:41:
>      Could not deduce (e ~ block C C)
>        from the context (NonLocal block, LabelsPtr e)
>        `e' is a rigid type variable bound by
>            the type signature for `preorder_dfs_from_except'
>              at libraries/hoopl/src/Compiler/Hoopl/Util.hs:217:42
>      In the first argument of `get_children', namely `b'
>      In the first argument of `children', namely `(get_children b)'
>      In the first argument of `unVM', namely
>        `(children (get_children b))'
>
> libraries/hoopl/src/Compiler/Hoopl/Util.hs:256:45:
>      Couldn't match type `O' with `C'
>      In the first argument of `addTargets', namely `b'
>      In the expression: addTargets b setEmpty
>      In an equation for `entryTargets':
>          entryTargets (JustO b) = addTargets b setEmpty
> make[1]: *** [libraries/hoopl/dist-install/build/Compiler/Hoopl/Util.o] Error 1
> make: *** [all] Error 2

Yes, this is about where I got to with my merge.  The type errors are 
triggered by the move to MonoLocalBinds in the new type checker, and can 
be solved by adding type signatures to the appropriate places in Hoopl. 
  You might be able to get some help from GHC by using NoMonoLocalBinds 
with -fwarn-missing-local-sigs.

Cheers,
	Simon



More information about the Glasgow-haskell-users mailing list