UHC-like JavaScript backend in GHC

2012-11-12 Thread Jurriƫn Stutterheim
Hi all, Last year, I worked on improving the Utrecht Haskell Compiler (UHC) JavaScript backend[1] up to the point where it is now possible to write complete JavaScript applications with it. Alessandro Vermeulen then ported one of my web applications to the UHC JS backend, and we've started

Re: How to use `trace` while debuging GHC

2012-11-12 Thread Michal Terepeta
On Mon, Nov 12, 2012 at 5:15 AM, Richard Eisenberg e...@cis.upenn.edu wrote: I've recently used the conveniently-typed (pprTrace :: String - SDoc - a - a) for this purpose. You have to compile with -DDEBUG, but it works great. Richard To use pprTrace you don't actually need to compile with

Re: Using DeepSeq for exception ordering

2012-11-12 Thread Simon Marlow
Did you try -fpedantic-bottoms? Cheers, Simon On 08/11/2012 19:16, Edward Z. Yang wrote: It looks like the optimizer is getting confused when the value being evaluated is an IO action (nota bene: 'evaluate m' where m :: IO a is pretty odd, as far as things go). File a bug? Cheers,

Re: Building GHC for BB10 (QNX)

2012-11-12 Thread Simon Marlow
On 10/11/2012 19:53, Stephen Paul Weber wrote: Hey all, I'm interesting in trying to get an initial port for BlackBerry 10 (QNX) going. It's a POSIXish environment with primary interest in two architechtures: x86 (for simulator) and ARMv7 (for devices). I'm wondering if

Re: Using DeepSeq for exception ordering

2012-11-12 Thread Albert Y. C. Lai
On 12-11-12 11:34 AM, Simon Marlow wrote: Did you try -fpedantic-bottoms? Interesting option. And furthermore its doc refers to -fno-state-hack, too. import Control.DeepSeq import Control.Exception main = do evaluate (('a' : error A) `deepseq` putStrLn hi) throwIO (userError B) -O

Re: Using DeepSeq for exception ordering

2012-11-12 Thread Simon Hengel
Did you try -fpedantic-bottoms? I just tried. The exception (or seq?) is still optimized away. Here is what I tried: -- file Foo.hs import Control.Exception import Control.DeepSeq main = evaluate (('a' : undefined) `deepseq` return () :: IO ()) $ ghc -fforce-recomp