Re: nofib output difference

2018-12-08 Thread Andreas Klebinger

I fear that one is my fault.

This should fix it: https://phabricator.haskell.org/D5426

I did not want to add a large binary file to the repo so instead 
compress generated the out file during boot.

Which used to work well on my box.

However make boot also creates the dependency files that guarantee the 
proper build order. Turns out sometimes
we end up trying to build the compress executable before building the 
dependency file, so the build fails.


I've just gave in to storing the output file in the repo now.


___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Understanding bind in template haskell

2018-12-08 Thread Yotam Ohad
Hi,
In the function DsMeta.repE there is a format being repeated:
For example in:

repE e@(ExplicitTuple _ es boxed)
  | not (all tupArgPresent es) = notHandled "Tuple sections" (ppr e)
  | isBoxed boxed = do { xs <- repLEs [e | (dL->L _ (Present _ e)) <- es]
   ; repTup xs }
  | otherwise = do { xs <- repLEs [e | (dL->L _ (Present _ e)) <- es]
   ; repUnboxedTup xs }

There is  `(dL->L _ (Present _ e)) <- es`. I don't understand how this type
checks correctly.
If I'll try to do

 data Foo a = Foo a
runQ [| Foo b <- Foo 1 |]

in ghciI get an error. What is the difference?

Yotam
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs