Re: Illegal type synonym family application in instance (Was: Breakage with 6.10)

2008-10-15 Thread Manuel M T Chakravarty
Niklas Broberg: On 10/11/08, David Menendez [EMAIL PROTECTED] wrote: On Fri, Oct 10, 2008 at 8:40 PM, Niklas Broberg [EMAIL PROTECTED] wrote: src\HSX\XMLGenerator.hs:71:0 Illegal type synonym family application in instance: XML m In the instance declaration for `EmbedAsChild m (XML m)´

RE: gadt changes in ghc 6.10

2008-10-15 Thread Simon Peyton-Jones
| After installing ghc 6.10-rc, I have a program that | no longer compiles. I get the dreaded GADT pattern match | error, instead :) I'm sorry it's dreaded! Jason is right that the key point is this: GHC now enforces the rule that in a GADT pattern match - the type of the scrutinee

Strictness in data declaration not matched in assembler?

2008-10-15 Thread Tyson Whitehead
Consider the following code data Data = Data { unData :: !Int } func :: Data - Int func x = case unData x of 1 - 2 _ - 0 Compiling with GHC 6.8.2 gives the following stg code Main.func = \r [x_slg] case x_slg of tpl_slx { Main.Data ipv_slj -

Re: Strictness in data declaration not matched in assembler?

2008-10-15 Thread Tyson Whitehead
On Wednesday 15 October 2008 10:48:26 you wrote: Strictness does not imply unboxing. To see why not, think about the fact that unboxing breaks sharing. By keeping the pointer-indirection in place, we can share even strict fields between related values. I believe I realize that. What I was

Re: Strictness in data declaration not matched in assembler?

2008-10-15 Thread Lennart Augustsson
I totally agree. Getting the value of the field should just evaluate x and then use a pointer indirection; there should be no conditional jumps involved in getting the value. GHC is just doing the wrong thing. -- Lennart On Wed, Oct 15, 2008 at 3:58 PM, Tyson Whitehead [EMAIL PROTECTED]

Re: Strictness in data declaration not matched in assembler?

2008-10-15 Thread Jan-Willem Maessen
On Oct 15, 2008, at 11:08 AM, Lennart Augustsson wrote: I totally agree. Getting the value of the field should just evaluate x and then use a pointer indirection; there should be no conditional jumps involved in getting the value. GHC is just doing the wrong thing. Can indirection nodes

Re: Strictness in data declaration not matched in assembler?

2008-10-15 Thread Lennart Augustsson
True, if there can be indirections then that's bad news. That would make strict fields much less efficient. But I don't see why indirections should be needed. Simon? On Wed, Oct 15, 2008 at 4:21 PM, Jan-Willem Maessen [EMAIL PROTECTED] wrote: On Oct 15, 2008, at 11:08 AM, Lennart Augustsson

Re: Strictness in data declaration not matched in assembler?

2008-10-15 Thread Jules Bean
Tyson Whitehead wrote: It seems to me that the !Int member of the Data constructor is being treated like it might be a thunk in sni_info (i.e., the whole testq $7,%rbx thing). Isn't this unnecessary as the ! strictness flag means the Int argument must be forced by the Data constructor before

Re: breakage with Cabal-1.6

2008-10-15 Thread Bryan O'Sullivan
On Mon, Oct 13, 2008 at 1:58 AM, Simon Marlow [EMAIL PROTECTED] wrote: Thanks! New versions of Alex Happy uploaded. Where to? I only see 2.3 on Hackage, and haskell.org claims that Alex is still at 2.2. ___ Glasgow-haskell-users mailing list

Re: gadt changes in ghc 6.10

2008-10-15 Thread Daniel Gorín
Hi, Simon Thanks a lot for your mail. It turns out I could have resolved this by myself (with the help of this thread http://thread.gmane.org/gmane.comp.lang.haskell.glasgow.user/15153 , to be honest). What I was missing was this key part: bind :: forall a b t. W t a - (a - W t b) - W_ t b

Re: [Haskell-cafe] 2008-10-13 Hackage status with GHC 6.10 release candidate

2008-10-15 Thread Don Stewart
schlepptop: Don Stewart schrieb: numeric-prelude-0.0.4 Easy: Lanuage pragma My question was still not answered: I used the non-existing pragma LANGUAGE_HOW_CAN_WE_ENABLE - I hoped it would be ignored, but it was parsed and made GHC fail. Why? Bug or feature? Feature.

Re: Strictness in data declaration not matched in assembler?

2008-10-15 Thread Don Stewart
twhitehead: Consider the following code data Data = Data { unData :: !Int } func :: Data - Int func x = case unData x of 1 - 2 _ - 0 Compiling with GHC 6.8.2 gives the following stg code Main.func = \r [x_slg] case x_slg of tpl_slx {