From ben at well-typed.com Sun Oct 1 11:17:55 2017 From: ben at well-typed.com (Ben Gamari) Date: Sun, 01 Oct 2017 07:17:55 -0400 Subject: [ANNOUNCE] GHC 8.2.2 release candidate 1 References: <87lgr8zztf.fsf@ben-laptop.smart-cactus.org> Message-ID: <8760bzruak.fsf@ben-laptop.smart-cactus.org> Hello everyone, The GHC team is very pleased to announce the first candidate of the 8.2.2 release of the Glasgow Haskell Compiler. Source and binary distributions are available at https://downloads.haskell.org/~ghc/8.2.2-rc1/ Currently there is a slightly reduced set of binary distributions available; do let me know if there is a missing platform you would like to see built. This is the first of two release candidates leading up the final 8.2.2 release. This release fixes approximately fifty bugs present in 8.2.1. See [1] for the full list. As always, please report any issues you encounter. Happy testing, - Ben [1] https://ghc.haskell.org/trac/ghc/query?status=closed&milestone=8.2.2&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=component&order=priority -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 487 bytes Desc: not available URL: From george.colpitts at gmail.com Sun Oct 1 15:50:17 2017 From: george.colpitts at gmail.com (George Colpitts) Date: Sun, 01 Oct 2017 15:50:17 +0000 Subject: [ANNOUNCE] GHC 8.2.2 release candidate 1 In-Reply-To: <8760bzruak.fsf@ben-laptop.smart-cactus.org> References: <87lgr8zztf.fsf@ben-laptop.smart-cactus.org> <8760bzruak.fsf@ben-laptop.smart-cactus.org> Message-ID: installed fine on mac os 10.12.6 with Xcode 9. I then installed vector, hlint, criterion and threadscope and did a smoke test of hlint On Sun, Oct 1, 2017 at 8:18 AM Ben Gamari wrote: > > Hello everyone, > > The GHC team is very pleased to announce the first candidate of the > 8.2.2 release of the Glasgow Haskell Compiler. Source and binary > distributions are available at > > https://downloads.haskell.org/~ghc/8.2.2-rc1/ > > Currently there is a slightly reduced set of binary distributions > available; do let me know if there is a missing platform you would like > to see built. > > This is the first of two release candidates leading up the final 8.2.2 > release. This release fixes approximately fifty bugs present in 8.2.1. > See [1] for the full list. > > As always, please report any issues you encounter. > > Happy testing, > > - Ben > > > [1] > https://ghc.haskell.org/trac/ghc/query?status=closed&milestone=8.2.2&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=component&order=priority > _______________________________________________ > Glasgow-haskell-users mailing list > Glasgow-haskell-users at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From conal at conal.net Mon Oct 2 21:25:59 2017 From: conal at conal.net (Conal Elliott) Date: Mon, 2 Oct 2017 14:25:59 -0700 Subject: GHC rewrite rule type-checking failure Message-ID: I'm running into type checking problem with GHC rewrite rules in GHC 8.0.2, illustrated in the code below. The first rule type-checks, but the second triggers the type error mentioned in the comment following the rule definition. I'd expect both rules to type-check, adding the needed constraints to the applicability condition for the rule. Is GHC's behavior intended (and perhaps necessary), or a bug? Thanks, -- Conal Code (also attached): {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# OPTIONS_GHC -Wall #-} -- Demonstrate a type checking failure with rewrite rules module RuleFail where class C k where comp' :: k b c -> k a b -> k a c instance C (->) where comp' = (.) -- Late-inlining version to enable rewriting. comp :: C k => k b c -> k a b -> k a c comp = comp' {-# INLINE [0] comp #-} morph :: (a -> b) -> k a b morph = error "morph: undefined" {-# RULES "morph/(.)" morph comp = comp #-} -- Fine class D k a where addC' :: k (a,a) a instance Num a => D (->) a where addC' = uncurry (+) -- Late-inlining version to enable rewriting. addC :: D k a => k (a,a) a addC = addC' {-# INLINE [0] addC #-} {-# RULES "morph/addC" morph addC = addC #-} -- Fail -- • Could not deduce (D k b) arising from a use of ‘addC’ -- from the context: D (->) b -- Why does GHC infer the (C k) constraint for the first rule but not (D k b) -- for the second rule? -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: RuleFail.hs Type: application/octet-stream Size: 965 bytes Desc: not available URL: From mail at joachim-breitner.de Mon Oct 2 22:52:09 2017 From: mail at joachim-breitner.de (Joachim Breitner) Date: Mon, 02 Oct 2017 18:52:09 -0400 Subject: GHC rewrite rule type-checking failure In-Reply-To: References: Message-ID: <1506984729.1122.11.camel@joachim-breitner.de> Hi Conal, The difference is that the LHS of the first rule is mentions the `C k` constraint (probably unintentionally): *RuleFail> :t morph comp morph comp :: C k => k1 (k b c) (k a b -> k a c) but the LHS of the second rule side does not: *RuleFail> :t morph addC morph addC :: Num b => k (b, b) b A work-around is to add the constraint to `morph`: morph :: D k b => (a -> b) -> k a b morph = error "morph: undefined" but I fear that this work-around is not acceptable to you. Joachim Am Montag, den 02.10.2017, 14:25 -0700 schrieb Conal Elliott: > -- Demonstrate a type checking failure with rewrite rules > > module RuleFail where > > class C k where comp' :: k b c -> k a b -> k a c > > instance C (->) where comp' = (.) > > -- Late-inlining version to enable rewriting. > comp :: C k => k b c -> k a b -> k a c > comp = comp' > {-# INLINE [0] comp #-} > > morph :: (a -> b) -> k a b > morph = error "morph: undefined" > > {-# RULES "morph/(.)" morph comp = comp #-} -- Fine > class D k a where addC' :: k (a,a) a > > instance Num a => D (->) a where addC' = uncurry (+) > > -- Late-inlining version to enable rewriting. > addC :: D k a => k (a,a) a > addC = addC' > {-# INLINE [0] addC #-} > > {-# RULES "morph/addC" morph addC = addC #-} -- Fail > > -- • Could not deduce (D k b) arising from a use of ‘addC’ > -- from the context: D (->) b > > -- Why does GHC infer the (C k) constraint for the first rule but not (D k b) > -- for the second rule? > > _______________________________________________ > Glasgow-haskell-users mailing list > Glasgow-haskell-users at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users -- Joachim Breitner mail at joachim-breitner.de http://www.joachim-breitner.de/ -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: This is a digitally signed message part URL: From conal at conal.net Tue Oct 3 00:03:20 2017 From: conal at conal.net (Conal Elliott) Date: Mon, 2 Oct 2017 17:03:20 -0700 Subject: GHC rewrite rule type-checking failure In-Reply-To: <1506984729.1122.11.camel@joachim-breitner.de> References: <1506984729.1122.11.camel@joachim-breitner.de> Message-ID: Thanks very much for the reply, Joachim. Oops! I flubbed the example. I really `morph` to distribute over an application of `comp`. New code below (and attached). You're right that I wouldn't want to restrict the type of `morph`, since each `morph` *rule* imposes its own restrictions. My questions: * Is it feasible for GHC to combine the constraints needed LHS and RHS to form an applicability condition? * Is there any way I can make the needed constraints explicit in my rewrite rules? * Are there any other work-arounds that would enable writing such RHS-constrained rules? Regards, -- Conal ``` haskell {-# OPTIONS_GHC -Wall #-} -- Demonstrate a type checking failure with rewrite rules module RuleFail where class C k where comp' :: k b c -> k a b -> k a c instance C (->) where comp' = (.) -- Late-inlining version to enable rewriting. comp :: C k => k b c -> k a b -> k a c comp = comp' {-# INLINE [0] comp #-} morph :: (a -> b) -> k a b morph = error "morph: undefined" {-# RULES "morph/(.)" forall f g. morph (g `comp` f) = morph g `comp` morph f #-} -- • Could not deduce (C k) arising from a use of ‘comp’ -- from the context: C (->) -- bound by the RULE "morph/(.)" ``` On Mon, Oct 2, 2017 at 3:52 PM, Joachim Breitner wrote: > Hi Conal, > > The difference is that the LHS of the first rule is mentions the `C k` > constraint (probably unintentionally): > > *RuleFail> :t morph comp > morph comp :: C k => k1 (k b c) (k a b -> k a c) > > but the LHS of the second rule side does not: > > *RuleFail> :t morph addC > morph addC :: Num b => k (b, b) b > > > > A work-around is to add the constraint to `morph`: > > morph :: D k b => (a -> b) -> k a b > morph = error "morph: undefined" > > but I fear that this work-around is not acceptable to you. > > Joachim > > Am Montag, den 02.10.2017, 14:25 -0700 schrieb Conal Elliott: > > -- Demonstrate a type checking failure with rewrite rules > > > > module RuleFail where > > > > class C k where comp' :: k b c -> k a b -> k a c > > > > instance C (->) where comp' = (.) > > > > -- Late-inlining version to enable rewriting. > > comp :: C k => k b c -> k a b -> k a c > > comp = comp' > > {-# INLINE [0] comp #-} > > > > morph :: (a -> b) -> k a b > > morph = error "morph: undefined" > > > > {-# RULES "morph/(.)" morph comp = comp #-} -- Fine > > > > > class D k a where addC' :: k (a,a) a > > > > instance Num a => D (->) a where addC' = uncurry (+) > > > > -- Late-inlining version to enable rewriting. > > addC :: D k a => k (a,a) a > > addC = addC' > > {-# INLINE [0] addC #-} > > > > {-# RULES "morph/addC" morph addC = addC #-} -- Fail > > > > -- • Could not deduce (D k b) arising from a use of ‘addC’ > > -- from the context: D (->) b > > > > -- Why does GHC infer the (C k) constraint for the first rule but not (D > k b) > > -- for the second rule? > > > > _______________________________________________ > > Glasgow-haskell-users mailing list > > Glasgow-haskell-users at haskell.org > > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users > -- > Joachim Breitner > mail at joachim-breitner.de > http://www.joachim-breitner.de/ > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: RuleFail.hs Type: application/octet-stream Size: 590 bytes Desc: not available URL: From david.feuer at gmail.com Tue Oct 3 00:33:41 2017 From: david.feuer at gmail.com (David Feuer) Date: Mon, 2 Oct 2017 20:33:41 -0400 Subject: GHC rewrite rule type-checking failure In-Reply-To: References: <1506984729.1122.11.camel@joachim-breitner.de> Message-ID: I believe the answer is currently no. As I understand it, the entire instance resolution mechanism drops away after type checking and is therefore not available to the simplifier. So if you need to add a constraint on the RHS of a rule, I think you're mostly out of luck. The only thing I can think of is that you can look at what the specializer does and try to look around to find the right dictionary, but that sounds hard and brittle. OTOH, I'm not an expert, so maybe there's something major I've missed. On Oct 2, 2017 8:04 PM, "Conal Elliott" wrote: > Thanks very much for the reply, Joachim. > > Oops! I flubbed the example. I really `morph` to distribute over an > application of `comp`. New code below (and attached). You're right that I > wouldn't want to restrict the type of `morph`, since each `morph` *rule* > imposes its own restrictions. > > My questions: > > * Is it feasible for GHC to combine the constraints needed LHS and RHS > to form an applicability condition? > * Is there any way I can make the needed constraints explicit in my > rewrite rules? > * Are there any other work-arounds that would enable writing such > RHS-constrained rules? > > Regards, -- Conal > > ``` haskell > {-# OPTIONS_GHC -Wall #-} > -- Demonstrate a type checking failure with rewrite rules > > module RuleFail where > > class C k where comp' :: k b c -> k a b -> k a c > > instance C (->) where comp' = (.) > > -- Late-inlining version to enable rewriting. > comp :: C k => k b c -> k a b -> k a c > comp = comp' > {-# INLINE [0] comp #-} > > morph :: (a -> b) -> k a b > morph = error "morph: undefined" > > {-# RULES "morph/(.)" forall f g. morph (g `comp` f) = morph g `comp` > morph f #-} > > -- • Could not deduce (C k) arising from a use of ‘comp’ > -- from the context: C (->) > -- bound by the RULE "morph/(.)" > ``` > > > On Mon, Oct 2, 2017 at 3:52 PM, Joachim Breitner > wrote: > >> Hi Conal, >> >> The difference is that the LHS of the first rule is mentions the `C k` >> constraint (probably unintentionally): >> >> *RuleFail> :t morph comp >> morph comp :: C k => k1 (k b c) (k a b -> k a c) >> >> but the LHS of the second rule side does not: >> >> *RuleFail> :t morph addC >> morph addC :: Num b => k (b, b) b >> >> >> >> A work-around is to add the constraint to `morph`: >> >> morph :: D k b => (a -> b) -> k a b >> morph = error "morph: undefined" >> >> but I fear that this work-around is not acceptable to you. >> >> Joachim >> >> Am Montag, den 02.10.2017, 14:25 -0700 schrieb Conal Elliott: >> > -- Demonstrate a type checking failure with rewrite rules >> > >> > module RuleFail where >> > >> > class C k where comp' :: k b c -> k a b -> k a c >> > >> > instance C (->) where comp' = (.) >> > >> > -- Late-inlining version to enable rewriting. >> > comp :: C k => k b c -> k a b -> k a c >> > comp = comp' >> > {-# INLINE [0] comp #-} >> > >> > morph :: (a -> b) -> k a b >> > morph = error "morph: undefined" >> > >> > {-# RULES "morph/(.)" morph comp = comp #-} -- Fine >> >> >> >> > class D k a where addC' :: k (a,a) a >> > >> > instance Num a => D (->) a where addC' = uncurry (+) >> > >> > -- Late-inlining version to enable rewriting. >> > addC :: D k a => k (a,a) a >> > addC = addC' >> > {-# INLINE [0] addC #-} >> > >> > {-# RULES "morph/addC" morph addC = addC #-} -- Fail >> > >> > -- • Could not deduce (D k b) arising from a use of ‘addC’ >> > -- from the context: D (->) b >> > >> > -- Why does GHC infer the (C k) constraint for the first rule but not >> (D k b) >> > -- for the second rule? >> > >> > _______________________________________________ >> > Glasgow-haskell-users mailing list >> > Glasgow-haskell-users at haskell.org >> > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users >> -- >> Joachim Breitner >> mail at joachim-breitner.de >> http://www.joachim-breitner.de/ >> > > > _______________________________________________ > Glasgow-haskell-users mailing list > Glasgow-haskell-users at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simonpj at microsoft.com Tue Oct 3 07:27:16 2017 From: simonpj at microsoft.com (Simon Peyton Jones) Date: Tue, 3 Oct 2017 07:27:16 +0000 Subject: GHC rewrite rule type-checking failure In-Reply-To: References: <1506984729.1122.11.camel@joachim-breitner.de> Message-ID: * Is it feasible for GHC to combine the constraints needed LHS and RHS to form an applicability condition? I don’t think so. Remember that a rewrite rule literally rewrites LHS to RHS. It does not conjure up any new dictionaries out of thin air. In your example, (D k b) is needed in the result of the rewrite. Where can it come from? Only from something matched on the left. So GHC treats any dictionaries matched on the left as “givens” and tries to solve the ones matched on the left. If it fails you get the sort of error you see. One way to see this is to write out the rewrite rule you want, complete with all its dictionary arguments. Can you do that? Simon From: Glasgow-haskell-users [mailto:glasgow-haskell-users-bounces at haskell.org] On Behalf Of Conal Elliott Sent: 03 October 2017 01:03 To: Joachim Breitner Cc: glasgow-haskell-users at haskell.org Subject: Re: GHC rewrite rule type-checking failure Thanks very much for the reply, Joachim. Oops! I flubbed the example. I really `morph` to distribute over an application of `comp`. New code below (and attached). You're right that I wouldn't want to restrict the type of `morph`, since each `morph` *rule* imposes its own restrictions. My questions: * Is it feasible for GHC to combine the constraints needed LHS and RHS to form an applicability condition? * Is there any way I can make the needed constraints explicit in my rewrite rules? * Are there any other work-arounds that would enable writing such RHS-constrained rules? Regards, -- Conal ``` haskell {-# OPTIONS_GHC -Wall #-} -- Demonstrate a type checking failure with rewrite rules module RuleFail where class C k where comp' :: k b c -> k a b -> k a c instance C (->) where comp' = (.) -- Late-inlining version to enable rewriting. comp :: C k => k b c -> k a b -> k a c comp = comp' {-# INLINE [0] comp #-} morph :: (a -> b) -> k a b morph = error "morph: undefined" {-# RULES "morph/(.)" forall f g. morph (g `comp` f) = morph g `comp` morph f #-} -- • Could not deduce (C k) arising from a use of ‘comp’ -- from the context: C (->) -- bound by the RULE "morph/(.)" ``` On Mon, Oct 2, 2017 at 3:52 PM, Joachim Breitner > wrote: Hi Conal, The difference is that the LHS of the first rule is mentions the `C k` constraint (probably unintentionally): *RuleFail> :t morph comp morph comp :: C k => k1 (k b c) (k a b -> k a c) but the LHS of the second rule side does not: *RuleFail> :t morph addC morph addC :: Num b => k (b, b) b A work-around is to add the constraint to `morph`: morph :: D k b => (a -> b) -> k a b morph = error "morph: undefined" but I fear that this work-around is not acceptable to you. Joachim Am Montag, den 02.10.2017, 14:25 -0700 schrieb Conal Elliott: > -- Demonstrate a type checking failure with rewrite rules > > module RuleFail where > > class C k where comp' :: k b c -> k a b -> k a c > > instance C (->) where comp' = (.) > > -- Late-inlining version to enable rewriting. > comp :: C k => k b c -> k a b -> k a c > comp = comp' > {-# INLINE [0] comp #-} > > morph :: (a -> b) -> k a b > morph = error "morph: undefined" > > {-# RULES "morph/(.)" morph comp = comp #-} -- Fine > class D k a where addC' :: k (a,a) a > > instance Num a => D (->) a where addC' = uncurry (+) > > -- Late-inlining version to enable rewriting. > addC :: D k a => k (a,a) a > addC = addC' > {-# INLINE [0] addC #-} > > {-# RULES "morph/addC" morph addC = addC #-} -- Fail > > -- • Could not deduce (D k b) arising from a use of ‘addC’ > -- from the context: D (->) b > > -- Why does GHC infer the (C k) constraint for the first rule but not (D k b) > -- for the second rule? > > _______________________________________________ > Glasgow-haskell-users mailing list > Glasgow-haskell-users at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users -- Joachim Breitner mail at joachim-breitner.de http://www.joachim-breitner.de/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From takenobu.hs at gmail.com Tue Oct 3 12:07:33 2017 From: takenobu.hs at gmail.com (Takenobu Tani) Date: Tue, 3 Oct 2017 21:07:33 +0900 Subject: [ANNOUNCE] GHC 8.2.2 release candidate 1 In-Reply-To: <8760bzruak.fsf@ben-laptop.smart-cactus.org> References: <87lgr8zztf.fsf@ben-laptop.smart-cactus.org> <8760bzruak.fsf@ben-laptop.smart-cactus.org> Message-ID: Hi Ben, devs, Thanks for your hard work! Could you also include the following commits? These are about user's guide. * https://phabricator.haskell.org/D3850 * https://phabricator.haskell.org/D3852 Regards, Takenobu 2017-10-01 20:17 GMT+09:00 Ben Gamari : > > Hello everyone, > > The GHC team is very pleased to announce the first candidate of the > 8.2.2 release of the Glasgow Haskell Compiler. Source and binary > distributions are available at > > https://downloads.haskell.org/~ghc/8.2.2-rc1/ > > Currently there is a slightly reduced set of binary distributions > available; do let me know if there is a missing platform you would like > to see built. > > This is the first of two release candidates leading up the final 8.2.2 > release. This release fixes approximately fifty bugs present in 8.2.1. > See [1] for the full list. > > As always, please report any issues you encounter. > > Happy testing, > > - Ben > > > [1] https://ghc.haskell.org/trac/ghc/query?status=closed& > milestone=8.2.2&col=id&col=summary&col=status&col=type& > col=priority&col=milestone&col=component&order=priority > > _______________________________________________ > Glasgow-haskell-users mailing list > Glasgow-haskell-users at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ben at well-typed.com Tue Oct 3 14:47:50 2017 From: ben at well-typed.com (Ben Gamari) Date: Tue, 03 Oct 2017 10:47:50 -0400 Subject: [ANNOUNCE] GHC 8.2.2 release candidate 1 In-Reply-To: References: <87lgr8zztf.fsf@ben-laptop.smart-cactus.org> <8760bzruak.fsf@ben-laptop.smart-cactus.org> Message-ID: <871smkqodl.fsf@ben-laptop.smart-cactus.org> Takenobu Tani writes: > Hi Ben, devs, > > Thanks for your hard work! > > Could you also include the following commits? > These are about user's guide. > > * https://phabricator.haskell.org/D3850 > * https://phabricator.haskell.org/D3852 > Of course, thanks! Cheers, - Ben -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 487 bytes Desc: not available URL: From mail at joachim-breitner.de Tue Oct 3 14:52:07 2017 From: mail at joachim-breitner.de (Joachim Breitner) Date: Tue, 03 Oct 2017 10:52:07 -0400 Subject: GHC rewrite rule type-checking failure In-Reply-To: References: <1506984729.1122.11.camel@joachim-breitner.de> Message-ID: <1507042327.15155.5.camel@joachim-breitner.de> Hi, Am Montag, den 02.10.2017, 17:03 -0700 schrieb Conal Elliott: > My questions: > > * Is it feasible for GHC to combine the constraints needed LHS and RHS to form an applicability condition? > * Is there any way I can make the needed constraints explicit in my rewrite rules? > * Are there any other work-arounds that would enable writing such RHS-constrained rules? if you are fine writing one RULE per _instance_ of C, the following works: {-# LANGUAGE ExplicitForAll, TypeApplications #-} {-# OPTIONS_GHC -Wall #-} module RuleFail where class C k where comp' :: k b c -> k a b -> k a c instance C (->) where comp' = (.) instance C (,) where comp' (_,a) (c,_) = (c,a) -- Late-inlining version to enable rewriting. comp :: C k => k b c -> k a b -> k a c comp = comp' {-# INLINE [0] comp #-} morph :: forall k a b. (a -> b) -> k a b morph _ = error "morph: undefined" {-# NOINLINE morph #-} {-# RULES "morph/(.)/->" forall f g. morph @(->) (g `comp` f) = morph g `comp` morph f #-} {-# RULES "morph/(.)/(,)" forall f g. morph @(,) (g `comp` f) = morph g `comp` morph f #-} Let’s look at the rules: $ ghc -O -c -ddump-rules RuleFail.hs ==================== Tidy Core rules ==================== "morph/(.)/(,)" [ALWAYS] forall (@ b) (@ b1) (@ a) ($dC :: C (->)) (f :: a -> b) (g :: b -> b1). morph @ (,) @ a @ b1 (comp @ (->) @ b @ b1 @ a $dC g f) = comp @ (,) @ b @ b1 @ a $fC(,) (morph @ (,) @ b @ b1 g) (morph @ (,) @ a @ b f) "morph/(.)/->" [ALWAYS] forall (@ b) (@ b1) (@ a) ($dC :: C (->)) (f :: a -> b) (g :: b -> b1). morph @ (->) @ a @ b1 (comp @ (->) @ b @ b1 @ a $dC g f) = comp @ (->) @ b @ b1 @ a $dC (morph @ (->) @ b @ b1 g) (morph @ (->) @ a @ b f) As you can see, by specializing the rule to a specific k, GHC can include the concrete instance dictionary (here, $fC(,)) _in the rule_ so it does not have to appear on the LHS. This is pretty much how specialization works. Is that a viable work-around for you? It involves boilerplate code, but nothing that cannot be explained in the documentation. (Or maybe TH can create such rules?) If this idiom turns out to be useful, I wonder if there is a case for -rules specified in type classes that get instantiated upon every instance, e.g. class C k where comp' :: k b c -> k a b -> k a c {-# RULES "morph/(.)/(,)" forall f g. morph @k (g `comp` f) = morph g `comp` morph f #-} Greetings, Joachim -- Joachim Breitner mail at joachim-breitner.de http://www.joachim-breitner.de/ -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: This is a digitally signed message part URL: From conal at conal.net Tue Oct 3 15:45:45 2017 From: conal at conal.net (Conal Elliott) Date: Tue, 3 Oct 2017 08:45:45 -0700 Subject: GHC rewrite rule type-checking failure In-Reply-To: <1507042327.15155.5.camel@joachim-breitner.de> References: <1506984729.1122.11.camel@joachim-breitner.de> <1507042327.15155.5.camel@joachim-breitner.de> Message-ID: Hi Joachim. Thanks very much for the suggestions and the `-ddump-rules` view. I wouldn't want to make people write `morph` rules for all combinations of operations (like `(.)`) and categories, but perhaps as you suggest those rules can be generated automatically. Regards, - Conal On Tue, Oct 3, 2017 at 7:52 AM, Joachim Breitner wrote: > Hi, > > > Am Montag, den 02.10.2017, 17:03 -0700 schrieb Conal Elliott: > > My questions: > > > > * Is it feasible for GHC to combine the constraints needed LHS and RHS > to form an applicability condition? > > * Is there any way I can make the needed constraints explicit in my > rewrite rules? > > * Are there any other work-arounds that would enable writing such > RHS-constrained rules? > > if you are fine writing one RULE per _instance_ of C, the following > works: > > > {-# LANGUAGE ExplicitForAll, TypeApplications #-} > {-# OPTIONS_GHC -Wall #-} > module RuleFail where > class C k where comp' :: k b c -> k a b -> k a c > > instance C (->) where comp' = (.) > instance C (,) where comp' (_,a) (c,_) = (c,a) > > -- Late-inlining version to enable rewriting. > comp :: C k => k b c -> k a b -> k a c > comp = comp' > {-# INLINE [0] comp #-} > > morph :: forall k a b. (a -> b) -> k a b > morph _ = error "morph: undefined" > {-# NOINLINE morph #-} > > {-# RULES "morph/(.)/->" forall f g. morph @(->) (g `comp` f) = morph > g `comp` morph f #-} > {-# RULES "morph/(.)/(,)" forall f g. morph @(,) (g `comp` f) = > morph g `comp` morph f #-} > > > Let’s look at the rules: > > $ ghc -O -c -ddump-rules RuleFail.hs > > ==================== Tidy Core rules ==================== > "morph/(.)/(,)" [ALWAYS] > forall (@ b) > (@ b1) > (@ a) > ($dC :: C (->)) > (f :: a -> b) > (g :: b -> b1). > morph @ (,) @ a @ b1 (comp @ (->) @ b @ b1 @ a $dC g f) > = comp > @ (,) > @ b > @ b1 > @ a > $fC(,) > (morph @ (,) @ b @ b1 g) > (morph @ (,) @ a @ b f) > "morph/(.)/->" [ALWAYS] > forall (@ b) > (@ b1) > (@ a) > ($dC :: C (->)) > (f :: a -> b) > (g :: b -> b1). > morph @ (->) @ a @ b1 (comp @ (->) @ b @ b1 @ a $dC g f) > = comp > @ (->) > @ b > @ b1 > @ a > $dC > (morph @ (->) @ b @ b1 g) > (morph @ (->) @ a @ b f) > > As you can see, by specializing the rule to a specific k, GHC can > include the concrete instance dictionary (here, $fC(,)) _in the rule_ > so it does not have to appear on the LHS. This is pretty much how > specialization works. > > Is that a viable work-around for you? It involves boilerplate code, but > nothing that cannot be explained in the documentation. (Or maybe TH can > create such rules?) > > > If this idiom turns out to be useful, I wonder if there is a case for > -rules specified in type classes that get instantiated upon every > instance, e.g. > > class C k where > comp' :: k b c -> k a b -> k a c > {-# RULES "morph/(.)/(,)" forall f g. morph @k (g `comp` f) = > morph g `comp` morph f #-} > > > Greetings, > Joachim > -- > Joachim Breitner > mail at joachim-breitner.de > http://www.joachim-breitner.de/ > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mail at joachim-breitner.de Tue Oct 3 15:49:18 2017 From: mail at joachim-breitner.de (Joachim Breitner) Date: Tue, 03 Oct 2017 11:49:18 -0400 Subject: GHC rewrite rule type-checking failure In-Reply-To: References: <1506984729.1122.11.camel@joachim-breitner.de> <1507042327.15155.5.camel@joachim-breitner.de> Message-ID: <1507045758.15155.7.camel@joachim-breitner.de> Hi, Now that I think about it: You can probably even generate these rules in a core2core pass that looks for instances of C, and then adds the rules to the mod_guts. That would solve the problem neatly, I’d say. Greetings, Joachim Am Dienstag, den 03.10.2017, 08:45 -0700 schrieb Conal Elliott: > Hi Joachim. Thanks very much for the suggestions and the `-ddump- > rules` view. I wouldn't want to make people write `morph` rules for > all combinations of operations (like `(.)`) and categories, but > perhaps as you suggest those rules can be generated automatically. > > Regards, - Conal > > On Tue, Oct 3, 2017 at 7:52 AM, Joachim Breitner wrote: > > Hi, > > > > > > Am Montag, den 02.10.2017, 17:03 -0700 schrieb Conal Elliott: > > > My questions: > > > > > > * Is it feasible for GHC to combine the constraints needed LHS and RHS to form an applicability condition? > > > * Is there any way I can make the needed constraints explicit in my rewrite rules? > > > * Are there any other work-arounds that would enable writing such RHS-constrained rules? > > > > if you are fine writing one RULE per _instance_ of C, the following > > works: > > > > > > {-# LANGUAGE ExplicitForAll, TypeApplications #-} > > {-# OPTIONS_GHC -Wall #-} > > module RuleFail where > > class C k where comp' :: k b c -> k a b -> k a c > > > > instance C (->) where comp' = (.) > > instance C (,) where comp' (_,a) (c,_) = (c,a) > > > > -- Late-inlining version to enable rewriting. > > comp :: C k => k b c -> k a b -> k a c > > comp = comp' > > {-# INLINE [0] comp #-} > > > > morph :: forall k a b. (a -> b) -> k a b > > morph _ = error "morph: undefined" > > {-# NOINLINE morph #-} > > > > {-# RULES "morph/(.)/->" forall f g. morph @(->) (g `comp` f) = morph g `comp` morph f #-} > > {-# RULES "morph/(.)/(,)" forall f g. morph @(,) (g `comp` f) = > > morph g `comp` morph f #-} > > > > > > Let’s look at the rules: > > > > $ ghc -O -c -ddump-rules RuleFail.hs > > > > ==================== Tidy Core rules ==================== > > "morph/(.)/(,)" [ALWAYS] > > forall (@ b) > > (@ b1) > > (@ a) > > ($dC :: C (->)) > > (f :: a -> b) > > (g :: b -> b1). > > morph @ (,) @ a @ b1 (comp @ (->) @ b @ b1 @ a $dC g f) > > = comp > > @ (,) > > @ b > > @ b1 > > @ a > > $fC(,) > > (morph @ (,) @ b @ b1 g) > > (morph @ (,) @ a @ b f) > > "morph/(.)/->" [ALWAYS] > > forall (@ b) > > (@ b1) > > (@ a) > > ($dC :: C (->)) > > (f :: a -> b) > > (g :: b -> b1). > > morph @ (->) @ a @ b1 (comp @ (->) @ b @ b1 @ a $dC g f) > > = comp > > @ (->) > > @ b > > @ b1 > > @ a > > $dC > > (morph @ (->) @ b @ b1 g) > > (morph @ (->) @ a @ b f) > > > > As you can see, by specializing the rule to a specific k, GHC can > > include the concrete instance dictionary (here, $fC(,)) _in the rule_ > > so it does not have to appear on the LHS. This is pretty much how > > specialization works. > > > > Is that a viable work-around for you? It involves boilerplate code, but > > nothing that cannot be explained in the documentation. (Or maybe TH can > > create such rules?) > > > > > > If this idiom turns out to be useful, I wonder if there is a case for > > -rules specified in type classes that get instantiated upon every > > instance, e.g. > > > > class C k where > > comp' :: k b c -> k a b -> k a c > > {-# RULES "morph/(.)/(,)" forall f g. morph @k (g `comp` f) = morph g `comp` morph f #-} > > > > > > Greetings, > > Joachim > > -- > > Joachim Breitner > > mail at joachim-breitner.de > > http://www.joachim-breitner.de/ > > -- Joachim Breitner mail at joachim-breitner.de http://www.joachim-breitner.de/ -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: This is a digitally signed message part URL: From conal at conal.net Tue Oct 3 16:01:07 2017 From: conal at conal.net (Conal Elliott) Date: Tue, 3 Oct 2017 09:01:07 -0700 Subject: GHC rewrite rule type-checking failure In-Reply-To: <1507045758.15155.7.camel@joachim-breitner.de> References: <1506984729.1122.11.camel@joachim-breitner.de> <1507042327.15155.5.camel@joachim-breitner.de> <1507045758.15155.7.camel@joachim-breitner.de> Message-ID: Thanks for the suggestion, Joachim. Since I'm writing a core-to-core plugin anyway, it wasn't so hard for me to implement all of these n*m rules (for n operations and m instances) at once via a "built-in" rewrite rule that explicitly manipulates Core expressions. Doing so is probably also considerably more efficient than matching against many rewrite rules (whether generated manually or automatically), at least the way rewrite rule matching is currently implemented. As you & I discussed at ICFP, I'm looking for ways to reduce the complexity of the plugin to make it easier to maintain and extend, and I thought that dictionary synthesis from rewrite rules might be one. Regards, -- Conal On Tue, Oct 3, 2017 at 8:49 AM, Joachim Breitner wrote: > Hi, > > Now that I think about it: You can probably even generate these rules > in a core2core pass that looks for instances of C, and then adds the > rules to the mod_guts. That would solve the problem neatly, I’d say. > > Greetings, > Joachim > > > Am Dienstag, den 03.10.2017, 08:45 -0700 schrieb Conal Elliott: > > Hi Joachim. Thanks very much for the suggestions and the `-ddump- > > rules` view. I wouldn't want to make people write `morph` rules for > > all combinations of operations (like `(.)`) and categories, but > > perhaps as you suggest those rules can be generated automatically. > > > > Regards, - Conal > > > > On Tue, Oct 3, 2017 at 7:52 AM, Joachim Breitner < > mail at joachim-breitner.de> wrote: > > > Hi, > > > > > > > > > Am Montag, den 02.10.2017, 17:03 -0700 schrieb Conal Elliott: > > > > My questions: > > > > > > > > * Is it feasible for GHC to combine the constraints needed LHS and > RHS to form an applicability condition? > > > > * Is there any way I can make the needed constraints explicit in > my rewrite rules? > > > > * Are there any other work-arounds that would enable writing such > RHS-constrained rules? > > > > > > if you are fine writing one RULE per _instance_ of C, the following > > > works: > > > > > > > > > {-# LANGUAGE ExplicitForAll, TypeApplications #-} > > > {-# OPTIONS_GHC -Wall #-} > > > module RuleFail where > > > class C k where comp' :: k b c -> k a b -> k a c > > > > > > instance C (->) where comp' = (.) > > > instance C (,) where comp' (_,a) (c,_) = (c,a) > > > > > > -- Late-inlining version to enable rewriting. > > > comp :: C k => k b c -> k a b -> k a c > > > comp = comp' > > > {-# INLINE [0] comp #-} > > > > > > morph :: forall k a b. (a -> b) -> k a b > > > morph _ = error "morph: undefined" > > > {-# NOINLINE morph #-} > > > > > > {-# RULES "morph/(.)/->" forall f g. morph @(->) (g `comp` f) = > morph g `comp` morph f #-} > > > {-# RULES "morph/(.)/(,)" forall f g. morph @(,) (g `comp` f) = > > > morph g `comp` morph f #-} > > > > > > > > > Let’s look at the rules: > > > > > > $ ghc -O -c -ddump-rules RuleFail.hs > > > > > > ==================== Tidy Core rules ==================== > > > "morph/(.)/(,)" [ALWAYS] > > > forall (@ b) > > > (@ b1) > > > (@ a) > > > ($dC :: C (->)) > > > (f :: a -> b) > > > (g :: b -> b1). > > > morph @ (,) @ a @ b1 (comp @ (->) @ b @ b1 @ a $dC g f) > > > = comp > > > @ (,) > > > @ b > > > @ b1 > > > @ a > > > $fC(,) > > > (morph @ (,) @ b @ b1 g) > > > (morph @ (,) @ a @ b f) > > > "morph/(.)/->" [ALWAYS] > > > forall (@ b) > > > (@ b1) > > > (@ a) > > > ($dC :: C (->)) > > > (f :: a -> b) > > > (g :: b -> b1). > > > morph @ (->) @ a @ b1 (comp @ (->) @ b @ b1 @ a $dC g f) > > > = comp > > > @ (->) > > > @ b > > > @ b1 > > > @ a > > > $dC > > > (morph @ (->) @ b @ b1 g) > > > (morph @ (->) @ a @ b f) > > > > > > As you can see, by specializing the rule to a specific k, GHC can > > > include the concrete instance dictionary (here, $fC(,)) _in the > rule_ > > > so it does not have to appear on the LHS. This is pretty much how > > > specialization works. > > > > > > Is that a viable work-around for you? It involves boilerplate > code, but > > > nothing that cannot be explained in the documentation. (Or maybe > TH can > > > create such rules?) > > > > > > > > > If this idiom turns out to be useful, I wonder if there is a case > for > > > -rules specified in type classes that get instantiated upon every > > > instance, e.g. > > > > > > class C k where > > > comp' :: k b c -> k a b -> k a c > > > {-# RULES "morph/(.)/(,)" forall f g. morph @k (g `comp` f) = > morph g `comp` morph f #-} > > > > > > > > > Greetings, > > > Joachim > > > -- > > > Joachim Breitner > > > mail at joachim-breitner.de > > > http://www.joachim-breitner.de/ > > > > > -- > Joachim Breitner > mail at joachim-breitner.de > http://www.joachim-breitner.de/ > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mail at joachim-breitner.de Wed Oct 4 14:55:21 2017 From: mail at joachim-breitner.de (Joachim Breitner) Date: Wed, 04 Oct 2017 10:55:21 -0400 Subject: GHC rewrite rule type-checking failure In-Reply-To: References: <1506984729.1122.11.camel@joachim-breitner.de> <1507042327.15155.5.camel@joachim-breitner.de> <1507045758.15155.7.camel@joachim-breitner.de> Message-ID: <1507128921.968.2.camel@joachim-breitner.de> Hi, I think creating your rules as built-in rules is a good way to go. You could reduce the complexity somewhat by generating all n*m rules as “normal” rules in the plugin when you see the instancs. This way, the plugin does not have to do anything when you want the rule to actually file (…and maybe the plugin does not have to be loaded at all). But I am not sure if it is worth the effort. And the built-in rules are more efficient, as you say. Greetings, Joachim Am Dienstag, den 03.10.2017, 09:01 -0700 schrieb Conal Elliott: > Thanks for the suggestion, Joachim. > > Since I'm writing a core-to-core plugin anyway, it wasn't so hard for > me to implement all of these n*m rules (for n operations and m > instances) at once via a "built-in" rewrite rule that explicitly > manipulates Core expressions. Doing so is probably also considerably > more efficient than matching against many rewrite rules (whether > generated manually or automatically), at least the way rewrite rule > matching is currently implemented. As you & I discussed at ICFP, I'm > looking for ways to reduce the complexity of the plugin to make it > easier to maintain and extend, and I thought that dictionary > synthesis from rewrite rules might be one. > > Regards, > -- Conal > > On Tue, Oct 3, 2017 at 8:49 AM, Joachim Breitner wrote: > > Hi, > > > > Now that I think about it: You can probably even generate these rules > > in a core2core pass that looks for instances of C, and then adds the > > rules to the mod_guts. That would solve the problem neatly, I’d say. > > > > Greetings, > > Joachim > > > > > > Am Dienstag, den 03.10.2017, 08:45 -0700 schrieb Conal Elliott: > > > Hi Joachim. Thanks very much for the suggestions and the `-ddump- > > > rules` view. I wouldn't want to make people write `morph` rules for > > > all combinations of operations (like `(.)`) and categories, but > > > perhaps as you suggest those rules can be generated automatically. > > > > > > Regards, - Conal > > > > > > On Tue, Oct 3, 2017 at 7:52 AM, Joachim Breitner wrote: > > > > Hi, > > > > > > > > > > > > Am Montag, den 02.10.2017, 17:03 -0700 schrieb Conal Elliott: > > > > > My questions: > > > > > > > > > > * Is it feasible for GHC to combine the constraints needed LHS and RHS to form an applicability condition? > > > > > * Is there any way I can make the needed constraints explicit in my rewrite rules? > > > > > * Are there any other work-arounds that would enable writing such RHS-constrained rules? > > > > > > > > if you are fine writing one RULE per _instance_ of C, the following > > > > works: > > > > > > > > > > > > {-# LANGUAGE ExplicitForAll, TypeApplications #-} > > > > {-# OPTIONS_GHC -Wall #-} > > > > module RuleFail where > > > > class C k where comp' :: k b c -> k a b -> k a c > > > > > > > > instance C (->) where comp' = (.) > > > > instance C (,) where comp' (_,a) (c,_) = (c,a) > > > > > > > > -- Late-inlining version to enable rewriting. > > > > comp :: C k => k b c -> k a b -> k a c > > > > comp = comp' > > > > {-# INLINE [0] comp #-} > > > > > > > > morph :: forall k a b. (a -> b) -> k a b > > > > morph _ = error "morph: undefined" > > > > {-# NOINLINE morph #-} > > > > > > > > {-# RULES "morph/(.)/->" forall f g. morph @(->) (g `comp` f) = morph g `comp` morph f #-} > > > > {-# RULES "morph/(.)/(,)" forall f g. morph @(,) (g `comp` f) = > > > > morph g `comp` morph f #-} > > > > > > > > > > > > Let’s look at the rules: > > > > > > > > $ ghc -O -c -ddump-rules RuleFail.hs > > > > > > > > ==================== Tidy Core rules ==================== > > > > "morph/(.)/(,)" [ALWAYS] > > > > forall (@ b) > > > > (@ b1) > > > > (@ a) > > > > ($dC :: C (->)) > > > > (f :: a -> b) > > > > (g :: b -> b1). > > > > morph @ (,) @ a @ b1 (comp @ (->) @ b @ b1 @ a $dC g f) > > > > = comp > > > > @ (,) > > > > @ b > > > > @ b1 > > > > @ a > > > > $fC(,) > > > > (morph @ (,) @ b @ b1 g) > > > > (morph @ (,) @ a @ b f) > > > > "morph/(.)/->" [ALWAYS] > > > > forall (@ b) > > > > (@ b1) > > > > (@ a) > > > > ($dC :: C (->)) > > > > (f :: a -> b) > > > > (g :: b -> b1). > > > > morph @ (->) @ a @ b1 (comp @ (->) @ b @ b1 @ a $dC g f) > > > > = comp > > > > @ (->) > > > > @ b > > > > @ b1 > > > > @ a > > > > $dC > > > > (morph @ (->) @ b @ b1 g) > > > > (morph @ (->) @ a @ b f) > > > > > > > > As you can see, by specializing the rule to a specific k, GHC can > > > > include the concrete instance dictionary (here, $fC(,)) _in the rule_ > > > > so it does not have to appear on the LHS. This is pretty much how > > > > specialization works. > > > > > > > > Is that a viable work-around for you? It involves boilerplate code, but > > > > nothing that cannot be explained in the documentation. (Or maybe TH can > > > > create such rules?) > > > > > > > > > > > > If this idiom turns out to be useful, I wonder if there is a case for > > > > -rules specified in type classes that get instantiated upon every > > > > instance, e.g. > > > > > > > > class C k where > > > > comp' :: k b c -> k a b -> k a c > > > > {-# RULES "morph/(.)/(,)" forall f g. morph @k (g `comp` f) = morph g `comp` morph f #-} > > > > > > > > > > > > Greetings, > > > > Joachim > > > > -- > > > > Joachim Breitner > > > > mail at joachim-breitner.de > > > > http://www.joachim-breitner.de/ > > > > > > > > -- > > Joachim Breitner > > mail at joachim-breitner.de > > http://www.joachim-breitner.de/ > > _______________________________________________ > Glasgow-haskell-users mailing list > Glasgow-haskell-users at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users -- Joachim Breitner mail at joachim-breitner.de http://www.joachim-breitner.de/ -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: This is a digitally signed message part URL: From michael.james.mcculloch at gmail.com Fri Oct 20 14:02:31 2017 From: michael.james.mcculloch at gmail.com (Michael McCulloch) Date: Fri, 20 Oct 2017 14:02:31 +0000 Subject: Getting segmentation fault on stack/cabal -any command, including stack --install-ghc, On windows. Message-ID: Hello. After searching around I can't find people with a similar issue (Maybe I'm looking in the wrong places?). I installed Haskell platform 8.2.1, using Stack 1.5.1, Cabal 2.0.0.0. Windows 10 Fall Creators Update( This issue was also occurring pre FCU). The issue also occurs with 8.0.2a Prior to FCU, I could run ghci directly, but now i get: Access violation in generated code when reading 00000000046710f6 Can anyone help me out? -- Michael McCulloch c: (403) 629-9645 e: michael.james.mcculloch at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From tamar at zhox.com Fri Oct 20 22:08:16 2017 From: tamar at zhox.com (Tamar Christina) Date: Fri, 20 Oct 2017 22:08:16 +0000 Subject: Getting segmentation fault on stack/cabal -any command, including stack --install-ghc, On windows. In-Reply-To: References: Message-ID: <15f3bd466bd.1085e26a348121.3777293386395531776@zhox.com> Hi Michael, Does this happen only with 8.2.1? Can you try a clean vanilla GHC? https://downloads.haskell.org/~ghc/8.2.1/ghc-8.2.1-x86_64-unknown-mingw32.tar.xz just to rule out any issues with toolings. if it still happens, does ghci -v3 show anything? if it still crashes can you run procdump on GHC directly and return the dump? https://docs.microsoft.com/en-us/sysinternals/downloads/procdump with "procdump -e 1 -x \ghc --interactive" Thanks, Tamar ---- On Fri, 20 Oct 2017 14:02:31 +0000 Michael McCulloch wrote ---- > Hello. > After searching around I can't find people with a similar issue (Maybe I'm looking in the wrong places?). > I installed Haskell platform 8.2.1, using Stack 1.5.1, Cabal 2.0.0.0. Windows 10 Fall Creators Update( This issue was also occurring pre FCU). The issue also occurs with 8.0.2a > Prior to FCU, I could run ghci directly, but now i get: > Access violation in generated code when reading 00000000046710f6 > Can anyone help me out?-- > Michael McCulloch > c: (403) 629-9645 > e: michael.james.mcculloch at gmail.com > _______________________________________________ > Glasgow-haskell-users mailing list > Glasgow-haskell-users at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users > From michael.james.mcculloch at gmail.com Fri Oct 20 23:51:43 2017 From: michael.james.mcculloch at gmail.com (Michael McCulloch) Date: Fri, 20 Oct 2017 23:51:43 +0000 Subject: Getting segmentation fault on stack/cabal -any command, including stack --install-ghc, On windows. In-Reply-To: <15f3bd466bd.1085e26a348121.3777293386395531776@zhox.com> References: <15f3bd466bd.1085e26a348121.3777293386395531776@zhox.com> Message-ID: Previously to FCU, the issue was also occuring with ghc8.0.2(a), however, it would appear that it is working again. I have provided the output of ghci -v3 *8.2.1). I was unable to run procdump, it was giving me directory does not exist, even when placed in the bin folder. On Fri, Oct 20, 2017 at 4:08 PM Tamar Christina wrote: > Hi Michael, > > Does this happen only with 8.2.1? > > Can you try a clean vanilla GHC? > > https://downloads.haskell.org/~ghc/8.2.1/ghc-8.2.1-x86_64-unknown-mingw32.tar.xz > > just to rule out any issues with toolings. > > if it still happens, does ghci -v3 show anything? > > if it still crashes can you run procdump on GHC directly and return the > dump? > > https://docs.microsoft.com/en-us/sysinternals/downloads/procdump > > with "procdump -e 1 -x \ghc --interactive" > > Thanks, > Tamar > > > ---- On Fri, 20 Oct 2017 14:02:31 +0000 Michael McCulloch < > michael.james.mcculloch at gmail.com> wrote ---- > > Hello. > > After searching around I can't find people with a similar issue (Maybe > I'm looking in the wrong places?). > > I installed Haskell platform 8.2.1, using Stack 1.5.1, Cabal 2.0.0.0. > Windows 10 Fall Creators Update( This issue was also occurring pre FCU). > The issue also occurs with 8.0.2a > > Prior to FCU, I could run ghci directly, but now i get: > > Access violation in generated code when reading 00000000046710f6 > > Can anyone help me out?-- > > Michael McCulloch > > c: (403) 629-9645 > > e: michael.james.mcculloch at gmail.com > > _______________________________________________ > > Glasgow-haskell-users mailing list > > Glasgow-haskell-users at haskell.org > > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users > > > > > -- Michael McCulloch c: (403) 629-9645 e: michael.james.mcculloch at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- GHCi, version 8.2.1: http://www.haskell.org/ghc/ :? for help Glasgow Haskell Compiler, Version 8.2.1, stage 2 booted by GHC version 8.0.2 Using binary package database: C:\Users\micha\Desktop\GHC\ghc-8.2.1\lib\package.conf.d\package.cache package flags [] loading package database C:\Users\micha\Desktop\GHC\ghc-8.2.1\lib\package.conf.d wired-in package ghc-prim mapped to ghc-prim-0.5.1.0 wired-in package integer-gmp mapped to integer-gmp-1.0.1.0 wired-in package base mapped to base-4.10.0.0 wired-in package rts mapped to rts wired-in package template-haskell mapped to template-haskell-2.12.0.0 wired-in package ghc mapped to ghc-8.2.1 wired-in package dph-seq not found. wired-in package dph-par not found. *** Parser [source]: !!! Parser [source]: finished in 0.00 milliseconds, allocated 0.129 megabytes *** Desugar: *** Simplify [expr]: !!! Simplify [expr]: finished in 0.00 milliseconds, allocated 0.109 megabytes *** CorePrep [expr]: !!! CorePrep [expr]: finished in 15.63 milliseconds, allocated 1.545 megabytes *** ByteCodeGen [Ghci1]: !!! ByteCodeGen [Ghci1]: finished in 0.00 milliseconds, allocated 0.132 megabytes Access violation in generated code when reading 00000000046710f6 From tamar at zhox.com Sat Oct 21 02:54:49 2017 From: tamar at zhox.com (Tamar Christina) Date: Sat, 21 Oct 2017 02:54:49 +0000 Subject: Getting segmentation fault on stack/cabal -any command, including stack --install-ghc, On windows. In-Reply-To: References: <15f3bd466bd.1085e26a348121.3777293386395531776@zhox.com> Message-ID: <15f3cdabe67.f6a64d5360193.9056460721006035666@zhox.com> ---- On Fri, 20 Oct 2017 23:51:43 +0000 Michael McCulloch wrote ---- > Previously to FCU, the issue was also occuring with ghc8.0.2(a), however, it would appear that it is working again. > I have provided the output of ghci -v3 *8.2.1). Thanks, this is quite early on, does \mingw\bin\gcc --version work? > I was unable to run procdump, it was giving me directory does not exist, even when placed in the bin folder. Hmm that's odd, and you're running this from a normal cmd prompt? a dump would really be helpful here. > > On Fri, Oct 20, 2017 at 4:08 PM Tamar Christina wrote: > -- > Michael McCulloch > c: (403) 629-9645 > e: michael.james.mcculloch at gmail.com > Hi Michael, > > Does this happen only with 8.2.1? > > Can you try a clean vanilla GHC? > https://downloads.haskell.org/~ghc/8.2.1/ghc-8.2.1-x86_64-unknown-mingw32.tar.xz > > just to rule out any issues with toolings. > > if it still happens, does ghci -v3 show anything? > > if it still crashes can you run procdump on GHC directly and return the dump? > > https://docs.microsoft.com/en-us/sysinternals/downloads/procdump > > with "procdump -e 1 -x \ghc --interactive" > > Thanks, > Tamar > > > ---- On Fri, 20 Oct 2017 14:02:31 +0000 Michael McCulloch wrote ---- > > Hello. > > After searching around I can't find people with a similar issue (Maybe I'm looking in the wrong places?). > > I installed Haskell platform 8.2.1, using Stack 1.5.1, Cabal 2.0.0.0. Windows 10 Fall Creators Update( This issue was also occurring pre FCU). The issue also occurs with 8.0.2a > > Prior to FCU, I could run ghci directly, but now i get: > > Access violation in generated code when reading 00000000046710f6 > > Can anyone help me out?-- > > Michael McCulloch > > c: (403) 629-9645 > > e: michael.james.mcculloch at gmail.com > > _______________________________________________ > > Glasgow-haskell-users mailing list > > Glasgow-haskell-users at haskell.org > > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users > > > > > From tamar at zhox.com Sat Oct 21 19:54:12 2017 From: tamar at zhox.com (Tamar Christina) Date: Sat, 21 Oct 2017 19:54:12 +0000 Subject: Getting segmentation fault on stack/cabal -any command, including stack --install-ghc, On windows. In-Reply-To: <15f3cdabe67.f6a64d5360193.9056460721006035666@zhox.com> References: <15f3bd466bd.1085e26a348121.3777293386395531776@zhox.com> <15f3cdabe67.f6a64d5360193.9056460721006035666@zhox.com> Message-ID: <15f408003e8.1237e6989107803.6156525254112938362@zhox.com> Hi, Could you try https://1drv.ms/u/s!AuQz_u-9HaJPmcQRFveWa9dMBi77hg ? If you can still reproduce this issue with this build start with +RTS --generate-crash-dumps and send the dump it creates. Note that this is a pre-release version of GHC 8.4 so some packages may not compile without updating version bounds. Tamar ---- On Sat, 21 Oct 2017 02:54:49 +0000 Tamar Christina wrote ---- > > > > ---- On Fri, 20 Oct 2017 23:51:43 +0000 Michael McCulloch wrote ---- > > Previously to FCU, the issue was also occuring with ghc8.0.2(a), however, it would appear that it is working again. > > I have provided the output of ghci -v3 *8.2.1). > > Thanks, this is quite early on, does \mingw\bin\gcc --version work? > > > I was unable to run procdump, it was giving me directory does not exist, even when placed in the bin folder. > > Hmm that's odd, and you're running this from a normal cmd prompt? a dump would really be helpful here. > > > > > On Fri, Oct 20, 2017 at 4:08 PM Tamar Christina wrote: > > -- > > Michael McCulloch > > c: (403) 629-9645 > > e: michael.james.mcculloch at gmail.com > > Hi Michael, > > > > Does this happen only with 8.2.1? > > > > Can you try a clean vanilla GHC? > > https://downloads.haskell.org/~ghc/8.2.1/ghc-8.2.1-x86_64-unknown-mingw32.tar.xz > > > > just to rule out any issues with toolings. > > > > if it still happens, does ghci -v3 show anything? > > > > if it still crashes can you run procdump on GHC directly and return the dump? > > > > https://docs.microsoft.com/en-us/sysinternals/downloads/procdump > > > > with "procdump -e 1 -x \ghc --interactive" > > > > Thanks, > > Tamar > > > > > > ---- On Fri, 20 Oct 2017 14:02:31 +0000 Michael McCulloch wrote ---- > > > Hello. > > > After searching around I can't find people with a similar issue (Maybe I'm looking in the wrong places?). > > > I installed Haskell platform 8.2.1, using Stack 1.5.1, Cabal 2.0.0.0. Windows 10 Fall Creators Update( This issue was also occurring pre FCU). The issue also occurs with 8.0.2a > > > Prior to FCU, I could run ghci directly, but now i get: > > > Access violation in generated code when reading 00000000046710f6 > > > Can anyone help me out?-- > > > Michael McCulloch > > > c: (403) 629-9645 > > > e: michael.james.mcculloch at gmail.com > > > _______________________________________________ > > > Glasgow-haskell-users mailing list > > > Glasgow-haskell-users at haskell.org > > > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users > > > > > > > > > > > > _______________________________________________ > Glasgow-haskell-users mailing list > Glasgow-haskell-users at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users > From michael.james.mcculloch at gmail.com Sat Oct 21 20:05:34 2017 From: michael.james.mcculloch at gmail.com (Michael McCulloch) Date: Sat, 21 Oct 2017 20:05:34 +0000 Subject: Getting segmentation fault on stack/cabal -any command, including stack --install-ghc, On windows. In-Reply-To: <15f408003e8.1237e6989107803.6156525254112938362@zhox.com> References: <15f3bd466bd.1085e26a348121.3777293386395531776@zhox.com> <15f3cdabe67.f6a64d5360193.9056460721006035666@zhox.com> <15f408003e8.1237e6989107803.6156525254112938362@zhox.com> Message-ID: Hi, \ghc-8.2.1\mingw\bin\gcc --version produced no errors. the ghc 8.4 release you sent produced no errors as well. I have included the procdump output as well, in case it helps, same error mentioned before. On Sat, Oct 21, 2017 at 1:54 PM Tamar Christina wrote: > Hi, > > Could you try https://1drv.ms/u/s!AuQz_u-9HaJPmcQRFveWa9dMBi77hg ? > > If you can still reproduce this issue with this build start with > +RTS --generate-crash-dumps > > and send the dump it creates. Note that this is a pre-release version of > GHC 8.4 > so some packages may not compile without updating version bounds. > > Tamar > > > ---- On Sat, 21 Oct 2017 02:54:49 +0000 Tamar Christina > wrote ---- > > > > > > > > ---- On Fri, 20 Oct 2017 23:51:43 +0000 Michael McCulloch < > michael.james.mcculloch at gmail.com> wrote ---- > > > Previously to FCU, the issue was also occuring with ghc8.0.2(a), > however, it would appear that it is working again. > > > I have provided the output of ghci -v3 *8.2.1). > > > > Thanks, this is quite early on, does \mingw\bin\gcc > --version work? > > > > > I was unable to run procdump, it was giving me directory does not > exist, even when placed in the bin folder. > > > > Hmm that's odd, and you're running this from a normal cmd prompt? a > dump would really be helpful here. > > > > > > > > On Fri, Oct 20, 2017 at 4:08 PM Tamar Christina > wrote: > > > -- > > > Michael McCulloch > > > c: (403) 629-9645 > > > e: michael.james.mcculloch at gmail.com > > > Hi Michael, > > > > > > Does this happen only with 8.2.1? > > > > > > Can you try a clean vanilla GHC? > > > > https://downloads.haskell.org/~ghc/8.2.1/ghc-8.2.1-x86_64-unknown-mingw32.tar.xz > > > > > > just to rule out any issues with toolings. > > > > > > if it still happens, does ghci -v3 show anything? > > > > > > if it still crashes can you run procdump on GHC directly and return > the dump? > > > > > > https://docs.microsoft.com/en-us/sysinternals/downloads/procdump > > > > > > with "procdump -e 1 -x \ghc --interactive" > > > > > > Thanks, > > > Tamar > > > > > > > > > ---- On Fri, 20 Oct 2017 14:02:31 +0000 Michael McCulloch < > michael.james.mcculloch at gmail.com> wrote ---- > > > > Hello. > > > > After searching around I can't find people with a similar issue > (Maybe I'm looking in the wrong places?). > > > > I installed Haskell platform 8.2.1, using Stack 1.5.1, Cabal > 2.0.0.0. Windows 10 Fall Creators Update( This issue was also occurring pre > FCU). The issue also occurs with 8.0.2a > > > > Prior to FCU, I could run ghci directly, but now i get: > > > > Access violation in generated code when reading > 00000000046710f6 > > > > Can anyone help me out?-- > > > > Michael McCulloch > > > > c: (403) 629-9645 > > > > e: michael.james.mcculloch at gmail.com > > > > _______________________________________________ > > > > Glasgow-haskell-users mailing list > > > > Glasgow-haskell-users at haskell.org > > > > > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users > > > > > > > > > > > > > > > > > > > _______________________________________________ > > Glasgow-haskell-users mailing list > > Glasgow-haskell-users at haskell.org > > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users > > > > > -- Michael McCulloch c: (403) 629-9645 e: michael.james.mcculloch at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- C:\Users\micha\Desktop\ghc-8.2.1\bin>dir Volume in drive C has no label. Volume Serial Number is FECE-599C Directory of C:\Users\micha\Desktop\ghc-8.2.1\bin 2017-10-21 01:58 PM . 2017-10-21 01:58 PM .. 2017-07-22 12:40 AM 136,141 ghc-8.2.1.exe 2017-07-22 12:40 AM 9,038,773 ghc-pkg.exe 2017-07-22 12:40 AM 91,255,510 ghc.exe 2017-07-22 12:40 AM 397,919 ghci-8.2.1.exe 2017-07-22 12:40 AM 397,919 ghci.exe 2017-07-22 12:40 AM 56 ghcii-8.2.1.sh 2017-07-22 12:40 AM 56 ghcii.sh 2017-07-22 12:40 AM 136,141 haddock-8.2.1.exe 2017-07-22 12:40 AM 91,937,968 haddock.exe 2017-07-22 12:40 AM 178,289 hp2ps.exe 2017-07-22 12:40 AM 8,191,010 hpc.exe 2017-07-22 12:40 AM 7,623,348 hsc2hs.exe 2017-10-20 05:25 PM 651,424 procdump.exe 2017-10-20 05:25 PM 341,672 procdump64.exe 2017-07-22 12:40 AM 6,539,750 runghc.exe 2017-07-22 12:40 AM 6,539,750 runhaskell.exe 16 File(s) 223,365,726 bytes 2 Dir(s) 189,040,590,848 bytes free C:\Users\micha\Desktop\ghc-8.2.1\bin>procdump.exe -e 1 -x ghc.exe --interactive ProcDump v9.0 - Sysinternals process dump utility Copyright (C) 2009-2017 Mark Russinovich and Andrew Richards Sysinternals - www.sysinternals.com The directory does not exist: C:\Users\micha\Desktop\ghc-8.2.1\bin\ghc.exe From tamar at zhox.com Sat Oct 21 22:57:55 2017 From: tamar at zhox.com (Tamar Christina) Date: Sat, 21 Oct 2017 22:57:55 +0000 Subject: Getting segmentation fault on stack/cabal -any command, including stack --install-ghc, On windows. In-Reply-To: References: <15f3bd466bd.1085e26a348121.3777293386395531776@zhox.com> <15f3cdabe67.f6a64d5360193.9056460721006035666@zhox.com> <15f408003e8.1237e6989107803.6156525254112938362@zhox.com> Message-ID: <15f412835e5.105f778c8111338.9000374073030178384@zhox.com> Ah, sorry, try "procdump -e 1 -ma -x . \ghc --interactive" the arguments to procdump changed. It's good that it's fixed in 8.4 at least, but would be good to know what it is. Could you also try the rc for 8.2.2? https://downloads.haskell.org/~ghc/8.2.2-rc1/ghc-8.2.1.20170929-x86_64-unknown-mingw32.tar.xz ---- On Sat, 21 Oct 2017 20:05:34 +0000 Michael McCulloch wrote ---- > Hi, > \ghc-8.2.1\mingw\bin\gcc --version produced no errors. > the ghc 8.4 release you sent produced no errors as well. > I have included the procdump output as well, in case it helps, same error mentioned before. > > On Sat, Oct 21, 2017 at 1:54 PM Tamar Christina wrote: > -- > Michael McCulloch > c: (403) 629-9645 > e: michael.james.mcculloch at gmail.com > Hi, > > Could you try https://1drv.ms/u/s!AuQz_u-9HaJPmcQRFveWa9dMBi77hg ? > > If you can still reproduce this issue with this build start with > +RTS --generate-crash-dumps > > and send the dump it creates. Note that this is a pre-release version of GHC 8.4 > so some packages may not compile without updating version bounds. > > Tamar > > > ---- On Sat, 21 Oct 2017 02:54:49 +0000 Tamar Christina wrote ---- > > > > > > > > ---- On Fri, 20 Oct 2017 23:51:43 +0000 Michael McCulloch wrote ---- > > > Previously to FCU, the issue was also occuring with ghc8.0.2(a), however, it would appear that it is working again. > > > I have provided the output of ghci -v3 *8.2.1). > > > > Thanks, this is quite early on, does \mingw\bin\gcc --version work? > > > > > I was unable to run procdump, it was giving me directory does not exist, even when placed in the bin folder. > > > > Hmm that's odd, and you're running this from a normal cmd prompt? a dump would really be helpful here. > > > > > > > > On Fri, Oct 20, 2017 at 4:08 PM Tamar Christina wrote: > > > -- > > > Michael McCulloch > > > c: (403) 629-9645 > > > e: michael.james.mcculloch at gmail.com > > > Hi Michael, > > > > > > Does this happen only with 8.2.1? > > > > > > Can you try a clean vanilla GHC? > > > https://downloads.haskell.org/~ghc/8.2.1/ghc-8.2.1-x86_64-unknown-mingw32.tar.xz > > > > > > just to rule out any issues with toolings. > > > > > > if it still happens, does ghci -v3 show anything? > > > > > > if it still crashes can you run procdump on GHC directly and return the dump? > > > > > > https://docs.microsoft.com/en-us/sysinternals/downloads/procdump > > > > > > with "procdump -e 1 -x \ghc --interactive" > > > > > > Thanks, > > > Tamar > > > > > > > > > ---- On Fri, 20 Oct 2017 14:02:31 +0000 Michael McCulloch wrote ---- > > > > Hello. > > > > After searching around I can't find people with a similar issue (Maybe I'm looking in the wrong places?). > > > > I installed Haskell platform 8.2.1, using Stack 1.5.1, Cabal 2.0.0.0. Windows 10 Fall Creators Update( This issue was also occurring pre FCU). The issue also occurs with 8.0.2a > > > > Prior to FCU, I could run ghci directly, but now i get: > > > > Access violation in generated code when reading 00000000046710f6 > > > > Can anyone help me out?-- > > > > Michael McCulloch > > > > c: (403) 629-9645 > > > > e: michael.james.mcculloch at gmail.com > > > > _______________________________________________ > > > > Glasgow-haskell-users mailing list > > > > Glasgow-haskell-users at haskell.org > > > > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users > > > > > > > > > > > > > > > > > > > _______________________________________________ > > Glasgow-haskell-users mailing list > > Glasgow-haskell-users at haskell.org > > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users > > > > > From michael.james.mcculloch at gmail.com Sat Oct 21 23:24:11 2017 From: michael.james.mcculloch at gmail.com (Michael McCulloch) Date: Sat, 21 Oct 2017 23:24:11 +0000 Subject: Getting segmentation fault on stack/cabal -any command, including stack --install-ghc, On windows. In-Reply-To: <15f412835e5.105f778c8111338.9000374073030178384@zhox.com> References: <15f3bd466bd.1085e26a348121.3777293386395531776@zhox.com> <15f3cdabe67.f6a64d5360193.9056460721006035666@zhox.com> <15f408003e8.1237e6989107803.6156525254112938362@zhox.com> <15f412835e5.105f778c8111338.9000374073030178384@zhox.com> Message-ID: Here you go, the dumps for both. https://1drv.ms/u/s!AhjXZn763iGDtSiB7bBfJCmOfxQO On Sat, Oct 21, 2017 at 4:57 PM Tamar Christina wrote: > Ah, sorry, > > try "procdump -e 1 -ma -x . \ghc --interactive" > > the arguments to procdump changed. > > It's good that it's fixed in 8.4 at least, but would be good to know what > it is. > > Could you also try the rc for 8.2.2? > > > https://downloads.haskell.org/~ghc/8.2.2-rc1/ghc-8.2.1.20170929-x86_64-unknown-mingw32.tar.xz > > > ---- On Sat, 21 Oct 2017 20:05:34 +0000 Michael McCulloch < > michael.james.mcculloch at gmail.com> wrote ---- > > Hi, > > \ghc-8.2.1\mingw\bin\gcc --version produced no errors. > > the ghc 8.4 release you sent produced no errors as well. > > I have included the procdump output as well, in case it helps, same > error mentioned before. > > > > On Sat, Oct 21, 2017 at 1:54 PM Tamar Christina wrote: > > -- > > Michael McCulloch > > c: (403) 629-9645 > > e: michael.james.mcculloch at gmail.com > > Hi, > > > > Could you try https://1drv.ms/u/s!AuQz_u-9HaJPmcQRFveWa9dMBi77hg ? > > > > If you can still reproduce this issue with this build start with > > +RTS --generate-crash-dumps > > > > and send the dump it creates. Note that this is a pre-release version > of GHC 8.4 > > so some packages may not compile without updating version bounds. > > > > Tamar > > > > > > ---- On Sat, 21 Oct 2017 02:54:49 +0000 Tamar Christina < > tamar at zhox.com> wrote ---- > > > > > > > > > > > > ---- On Fri, 20 Oct 2017 23:51:43 +0000 Michael McCulloch < > michael.james.mcculloch at gmail.com> wrote ---- > > > > Previously to FCU, the issue was also occuring with ghc8.0.2(a), > however, it would appear that it is working again. > > > > I have provided the output of ghci -v3 *8.2.1). > > > > > > Thanks, this is quite early on, does \mingw\bin\gcc > --version work? > > > > > > > I was unable to run procdump, it was giving me directory does > not exist, even when placed in the bin folder. > > > > > > Hmm that's odd, and you're running this from a normal cmd prompt? a > dump would really be helpful here. > > > > > > > > > > > On Fri, Oct 20, 2017 at 4:08 PM Tamar Christina > wrote: > > > > -- > > > > Michael McCulloch > > > > c: (403) 629-9645 > > > > e: michael.james.mcculloch at gmail.com > > > > Hi Michael, > > > > > > > > Does this happen only with 8.2.1? > > > > > > > > Can you try a clean vanilla GHC? > > > > > https://downloads.haskell.org/~ghc/8.2.1/ghc-8.2.1-x86_64-unknown-mingw32.tar.xz > > > > > > > > just to rule out any issues with toolings. > > > > > > > > if it still happens, does ghci -v3 show anything? > > > > > > > > if it still crashes can you run procdump on GHC directly and > return the dump? > > > > > > > > > https://docs.microsoft.com/en-us/sysinternals/downloads/procdump > > > > > > > > with "procdump -e 1 -x \ghc --interactive" > > > > > > > > Thanks, > > > > Tamar > > > > > > > > > > > > ---- On Fri, 20 Oct 2017 14:02:31 +0000 Michael McCulloch < > michael.james.mcculloch at gmail.com> wrote ---- > > > > > Hello. > > > > > After searching around I can't find people with a similar > issue (Maybe I'm looking in the wrong places?). > > > > > I installed Haskell platform 8.2.1, using Stack 1.5.1, Cabal > 2.0.0.0. Windows 10 Fall Creators Update( This issue was also occurring pre > FCU). The issue also occurs with 8.0.2a > > > > > Prior to FCU, I could run ghci directly, but now i get: > > > > > Access violation in generated code when reading > 00000000046710f6 > > > > > Can anyone help me out?-- > > > > > Michael McCulloch > > > > > c: (403) 629-9645 > > > > > e: michael.james.mcculloch at gmail.com > > > > > _______________________________________________ > > > > > Glasgow-haskell-users mailing list > > > > > Glasgow-haskell-users at haskell.org > > > > > > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users > > > > > > > > > > > > > > > > > > > > > > > > > > _______________________________________________ > > > Glasgow-haskell-users mailing list > > > Glasgow-haskell-users at haskell.org > > > > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users > > > > > > > > > > > > -- Michael McCulloch c: (403) 629-9645 e: michael.james.mcculloch at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From tamar at zhox.com Sun Oct 22 08:51:02 2017 From: tamar at zhox.com (Tamar Christina) Date: Sun, 22 Oct 2017 08:51:02 +0000 Subject: Getting segmentation fault on stack/cabal -any command, including stack --install-ghc, On windows. In-Reply-To: References: <15f3bd466bd.1085e26a348121.3777293386395531776@zhox.com> <15f3cdabe67.f6a64d5360193.9056460721006035666@zhox.com> <15f408003e8.1237e6989107803.6156525254112938362@zhox.com> <15f412835e5.105f778c8111338.9000374073030178384@zhox.com> Message-ID: <15f4347391e.cd7ea972123045.3392304103205955551@zhox.com> Hi Michael, It seems your problem is with HitmanPro that you have installed. ExceptionAddress: 00007ffcc2b368ce (ntdll!RtlVirtualUnwind+0x000000000000001e) ExceptionCode: c0000005 (Access violation) ExceptionFlags: 00000000 NumberParameters: 2 Parameter[0]: 0000000000000000 Parameter[1]: 00000000046710f6 Attempt to read from address 00000000046710f6 0:000> lmvm hmpalert Browse full module list start end module name 00007ffc`ba4b0000 00007ffc`ba595000 hmpalert (export symbols) hmpalert.dll Loaded symbol image file: hmpalert.dll Image path: C:\Windows\System32\hmpalert.dll Image name: hmpalert.dll Browse all global symbols functions data Timestamp: Mon Jul 17 15:53:17 2017 (596CCF5D) CheckSum: 000F490C ImageSize: 000E5000 File version: 3.6.8.604 Product version: 3.6.8.604 File flags: 0 (Mask 3F) File OS: 40004 NT Win32 File type: 2.0 Dll File date: 00000000.00000000 Translations: 0400.04b0 CompanyName: SurfRight B.V. ProductName: HitmanPro.Alert InternalName: hmpalert.dll OriginalFilename: hmpalert_x64.dll ProductVersion: 3.6.8.604 FileVersion: 3.6.8.604 FileDescription: HitmanPro.Alert 64-bit Support Library LegalCopyright: © 2013-2017 SurfRight, a Sophos company Comments: Incorporates Threatstar Exploit Mitigation Platform (EMP) It seems HitmanPro is injecting itself into GHC's address space by throwing a signal and forcing the process to halt. GHC prior to the upcoming 8.4 release interprets this as one of it's needed dependencies crashing and so aborts the process before Hitman can handle the signal it threw. Until GHC 8.4 comes out, to get it working you should exclude the GHC binaries from Hitman's scanning. Cheers, Tamar ---- On Sat, 21 Oct 2017 23:24:11 +0000 Michael McCulloch wrote ---- > Here you go, the dumps for both. > https://1drv.ms/u/s!AhjXZn763iGDtSiB7bBfJCmOfxQO > > On Sat, Oct 21, 2017 at 4:57 PM Tamar Christina wrote: > -- > Michael McCulloch > c: (403) 629-9645 > e: michael.james.mcculloch at gmail.com > Ah, sorry, > > try "procdump -e 1 -ma -x . \ghc --interactive" > > the arguments to procdump changed. > > It's good that it's fixed in 8.4 at least, but would be good to know what it is. > > Could you also try the rc for 8.2.2? > > https://downloads.haskell.org/~ghc/8.2.2-rc1/ghc-8.2.1.20170929-x86_64-unknown-mingw32.tar.xz > > > ---- On Sat, 21 Oct 2017 20:05:34 +0000 Michael McCulloch wrote ---- > > Hi, > > \ghc-8.2.1\mingw\bin\gcc --version produced no errors. > > the ghc 8.4 release you sent produced no errors as well. > > I have included the procdump output as well, in case it helps, same error mentioned before. > > > > On Sat, Oct 21, 2017 at 1:54 PM Tamar Christina wrote: > > -- > > Michael McCulloch > > c: (403) 629-9645 > > e: michael.james.mcculloch at gmail.com > > Hi, > > > > Could you try https://1drv.ms/u/s!AuQz_u-9HaJPmcQRFveWa9dMBi77hg ? > > > > If you can still reproduce this issue with this build start with > > +RTS --generate-crash-dumps > > > > and send the dump it creates. Note that this is a pre-release version of GHC 8.4 > > so some packages may not compile without updating version bounds. > > > > Tamar > > > > > > ---- On Sat, 21 Oct 2017 02:54:49 +0000 Tamar Christina wrote ---- > > > > > > > > > > > > ---- On Fri, 20 Oct 2017 23:51:43 +0000 Michael McCulloch wrote ---- > > > > Previously to FCU, the issue was also occuring with ghc8.0.2(a), however, it would appear that it is working again. > > > > I have provided the output of ghci -v3 *8.2.1). > > > > > > Thanks, this is quite early on, does \mingw\bin\gcc --version work? > > > > > > > I was unable to run procdump, it was giving me directory does not exist, even when placed in the bin folder. > > > > > > Hmm that's odd, and you're running this from a normal cmd prompt? a dump would really be helpful here. > > > > > > > > > > > On Fri, Oct 20, 2017 at 4:08 PM Tamar Christina wrote: > > > > -- > > > > Michael McCulloch > > > > c: (403) 629-9645 > > > > e: michael.james.mcculloch at gmail.com > > > > Hi Michael, > > > > > > > > Does this happen only with 8.2.1? > > > > > > > > Can you try a clean vanilla GHC? > > > > https://downloads.haskell.org/~ghc/8.2.1/ghc-8.2.1-x86_64-unknown-mingw32.tar.xz > > > > > > > > just to rule out any issues with toolings. > > > > > > > > if it still happens, does ghci -v3 show anything? > > > > > > > > if it still crashes can you run procdump on GHC directly and return the dump? > > > > > > > > https://docs.microsoft.com/en-us/sysinternals/downloads/procdump > > > > > > > > with "procdump -e 1 -x \ghc --interactive" > > > > > > > > Thanks, > > > > Tamar > > > > > > > > > > > > ---- On Fri, 20 Oct 2017 14:02:31 +0000 Michael McCulloch wrote ---- > > > > > Hello. > > > > > After searching around I can't find people with a similar issue (Maybe I'm looking in the wrong places?). > > > > > I installed Haskell platform 8.2.1, using Stack 1.5.1, Cabal 2.0.0.0. Windows 10 Fall Creators Update( This issue was also occurring pre FCU). The issue also occurs with 8.0.2a > > > > > Prior to FCU, I could run ghci directly, but now i get: > > > > > Access violation in generated code when reading 00000000046710f6 > > > > > Can anyone help me out?-- > > > > > Michael McCulloch > > > > > c: (403) 629-9645 > > > > > e: michael.james.mcculloch at gmail.com > > > > > _______________________________________________ > > > > > Glasgow-haskell-users mailing list > > > > > Glasgow-haskell-users at haskell.org > > > > > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users > > > > > > > > > > > > > > > > > > > > > > > > > > _______________________________________________ > > > Glasgow-haskell-users mailing list > > > Glasgow-haskell-users at haskell.org > > > http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users > > > > > > > > > > > > From Sebastien.Hinderer at inria.fr Mon Oct 30 15:17:38 2017 From: Sebastien.Hinderer at inria.fr (=?utf-8?Q?S=C3=A9bastien?= Hinderer) Date: Mon, 30 Oct 2017 16:17:38 +0100 Subject: How does GHC's testsuite work? Message-ID: <20171030151738.tcn7d2gjgz3bkhcp@pl-59055.rocqadm.inria.fr> Dear all, I am a member of OCaml's developement team. More specifically, I am working on a test-driver for the OCaml compiler, which will be part of OCaml's 4.06 release. I am currently writing an article to describe the tool and its principles. In this article, I would like to also talk about how other compilers' testsuites are handled and loking how things are done in GHC is natural. In OCaml, our testsuite essentially consist in whole programs that we compile and run, checking that the compilation and execution results match the expected ones. >From what I could see from GHC's testsuite, it seemed to me that it uses Python to drive the tests. I also understood that the testsuite has tests that are more kind of unit-tests, in the .T file. Am I correct here? Or do you guys also have whole program tests? If you do, how do you compile and run them? Any comment / hint on this aspect of the test harness' design would be really helpful. Many thanks in advance, Sébastien. From ezyang at mit.edu Mon Oct 30 15:25:34 2017 From: ezyang at mit.edu (Edward Z. Yang) Date: Mon, 30 Oct 2017 11:25:34 -0400 Subject: How does GHC's testsuite work? In-Reply-To: <20171030151738.tcn7d2gjgz3bkhcp@pl-59055.rocqadm.inria.fr> References: <20171030151738.tcn7d2gjgz3bkhcp@pl-59055.rocqadm.inria.fr> Message-ID: <1509377084-sup-897@sabre> Actually, it's the reverse of what you said: like OCaml, GHC essentially has ~no unit tests; it's entirely Haskell programs which we compile (and sometimes run; a lot of tests are for the typechecker only so we don't bother running those.) The .T file is just a way of letting the Python driver know what tests exist. Edward Excerpts from Sébastien Hinderer's message of 2017-10-30 16:17:38 +0100: > Dear all, > > I am a member of OCaml's developement team. More specifically, I am > working on a test-driver for the OCaml compiler, which will be part of > OCaml's 4.06 release. > > I am currently writing an article to describe the tool and its > principles. In this article, I would like to also talk about how other > compilers' testsuites are handled and loking how things are done in GHC > is natural. > > In OCaml, our testsuite essentially consist in whole programs that > we compile and run, checking that the compilation and execution results > match the expected ones. > > From what I could see from GHC's testsuite, it seemed to me that it uses > Python to drive the tests. I also understood that the testsuite has > tests that are more kind of unit-tests, in the .T file. Am I correct > here? Or do you guys also have whole program tests? > If you do, how do you compile and run them? > > Any comment / hint on this aspect of the test harness' design would be > really helpful. > > Many thanks in advance, > > Sébastien. > From Sebastien.Hinderer at inria.fr Mon Oct 30 15:39:24 2017 From: Sebastien.Hinderer at inria.fr (=?utf-8?Q?S=C3=A9bastien?= Hinderer) Date: Mon, 30 Oct 2017 16:39:24 +0100 Subject: How does GHC's testsuite work? In-Reply-To: <1509377084-sup-897@sabre> References: <20171030151738.tcn7d2gjgz3bkhcp@pl-59055.rocqadm.inria.fr> <1509377084-sup-897@sabre> Message-ID: <20171030153924.ieik3ihqypfuff4o@pl-59055.rocqadm.inria.fr> Dear Edward, Many thanks for your prompt response! Edward Z. Yang (2017/10/30 11:25 -0400): > Actually, it's the reverse of what you said: like OCaml, GHC essentially > has ~no unit tests; it's entirely Haskell programs which we compile > (and sometimes run; a lot of tests are for the typechecker only so > we don't bother running those.) The .T file is just a way of letting > the Python driver know what tests exist. Oh okay! Would you be able to point me to just a few tests to get an idea of a few typical situations, please? One other question I forgot to ask: how do you deal with conditional tests? For instance, if a test should be run only on some platforms? Or, in OCaml we have tests for Fortran bindings that should be run only if a Fortran compiler is available. How would you deal with such tests? Thanks! Sébastien. From ezyang at mit.edu Mon Oct 30 15:51:27 2017 From: ezyang at mit.edu (Edward Z. Yang) Date: Mon, 30 Oct 2017 11:51:27 -0400 Subject: How does GHC's testsuite work? In-Reply-To: <20171030153924.ieik3ihqypfuff4o@pl-59055.rocqadm.inria.fr> References: <20171030151738.tcn7d2gjgz3bkhcp@pl-59055.rocqadm.inria.fr> <1509377084-sup-897@sabre> <20171030153924.ieik3ihqypfuff4o@pl-59055.rocqadm.inria.fr> Message-ID: <1509378576-sup-696@sabre> Excerpts from Sébastien Hinderer's message of 2017-10-30 16:39:24 +0100: > Dear Edward, > > Many thanks for your prompt response! > > Edward Z. Yang (2017/10/30 11:25 -0400): > > Actually, it's the reverse of what you said: like OCaml, GHC essentially > > has ~no unit tests; it's entirely Haskell programs which we compile > > (and sometimes run; a lot of tests are for the typechecker only so > > we don't bother running those.) The .T file is just a way of letting > > the Python driver know what tests exist. > > Oh okay! Would you be able to point me to just a few tests to get an > idea of a few typical situations, please? For example: The metadata https://github.com/ghc/ghc/blob/master/testsuite/tests/typecheck/should_fail/all.T The source file https://github.com/ghc/ghc/blob/master/testsuite/tests/typecheck/should_fail/tcfail011.hs The expected error output https://github.com/ghc/ghc/blob/master/testsuite/tests/typecheck/should_fail/tcfail011.stderr > One other question I forgot to ask: how do you deal with conditional > tests? For instance, if a test should be run only on some platforms? Or, > in OCaml we have tests for Fortran bindings that should be run only if a > Fortran compiler is available. How would you deal with such tests? All managed inside the Python driver code. Example: https://github.com/ghc/ghc/blob/master/testsuite/tests/rts/all.T#L32 Edward From mail at joachim-breitner.de Mon Oct 30 17:44:14 2017 From: mail at joachim-breitner.de (Joachim Breitner) Date: Mon, 30 Oct 2017 13:44:14 -0400 Subject: How does GHC's testsuite work? In-Reply-To: <1509377084-sup-897@sabre> References: <20171030151738.tcn7d2gjgz3bkhcp@pl-59055.rocqadm.inria.fr> <1509377084-sup-897@sabre> Message-ID: <1509385454.1273.26.camel@joachim-breitner.de> Hi Sebastien, I’m looking forward to your report, surely there will be some interesting inspirations for us. Am Montag, den 30.10.2017, 11:25 -0400 schrieb Edward Z. Yang: > Actually, it's the reverse of what you said: like OCaml, GHC essentially > has ~no unit tests; it's entirely Haskell programs which we compile > (and sometimes run; a lot of tests are for the typechecker only so > we don't bother running those.) The .T file is just a way of letting > the Python driver know what tests exist. let me add that these tests rarely check the actual output of the compiler (i.e. the program, or even the simplified code). Often it is enough to check * whether the compile succeeds or fails as expected, or maybe * what messages the compiler prints. In a few cases we do dump the complete intermediate code (-ddump- simpl), but then the test case specifies a “normalization function” that checks the output for a certain property, e.g. by grepping for certain patterns. The only real unit tests that I know of are these: http://git.haskell.org/ghc.git/tree/HEAD:/testsuite/tests/callarity/unittest These are effectively programs using “GHC-the-library” Joachim -- Joachim Breitner mail at joachim-breitner.de http://www.joachim-breitner.de/ -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: This is a digitally signed message part URL: From Sebastien.Hinderer at inria.fr Tue Oct 31 10:47:23 2017 From: Sebastien.Hinderer at inria.fr (=?utf-8?Q?S=C3=A9bastien?= Hinderer) Date: Tue, 31 Oct 2017 11:47:23 +0100 Subject: How does GHC's testsuite work? In-Reply-To: <1509385454.1273.26.camel@joachim-breitner.de> References: <20171030151738.tcn7d2gjgz3bkhcp@pl-59055.rocqadm.inria.fr> <1509377084-sup-897@sabre> <1509385454.1273.26.camel@joachim-breitner.de> Message-ID: <20171031104723.irvmfbf5cthy3oka@pl-59055.rocqadm.inria.fr> Dear Joachim, Many thanks for your prompt, positive and encouraging response. Joachim Breitner (2017/10/30 13:44 -0400): > Hi Sebastien, > > I’m looking forward to your report, surely there will be some > interesting inspirations for us. Thanks. Unfortunately, the paper has been written in French. i'll see whether I can find the time to translate it into english soon. If I can do so I'll definitely post a link. > Am Montag, den 30.10.2017, 11:25 -0400 schrieb Edward Z. Yang: > > Actually, it's the reverse of what you said: like OCaml, GHC essentially > > has ~no unit tests; it's entirely Haskell programs which we compile > > (and sometimes run; a lot of tests are for the typechecker only so > > we don't bother running those.) The .T file is just a way of letting > > the Python driver know what tests exist. > > let me add that these tests rarely check the actual output of the > compiler (i.e. the program, or even the simplified code). Often it is > enough to check > * whether the compile succeeds or fails as expected, or maybe > * what messages the compiler prints. I see. I think it is quite similar for OCaml. > In a few cases we do dump the complete intermediate code (-ddump- > simpl), but then the test case specifies a “normalization function” > that checks the output for a certain property, e.g. by grepping for > certain patterns. Got it, thanks. We also have options to pretty-print the few internal representations we have, but as far as I know, we don't use any normalization function in such cases and just make a diff with an expected reference (yuk!). > The only real unit tests that I know of are these: > http://git.haskell.org/ghc.git/tree/HEAD:/testsuite/tests/callarity/unittest > These are effectively programs using “GHC-the-library” Okay, thanks! Will come back with a link ASAP! Sébastien. From Sebastien.Hinderer at inria.fr Tue Oct 31 10:51:18 2017 From: Sebastien.Hinderer at inria.fr (=?utf-8?Q?S=C3=A9bastien?= Hinderer) Date: Tue, 31 Oct 2017 11:51:18 +0100 Subject: How does GHC's testsuite work? In-Reply-To: <1509378576-sup-696@sabre> References: <20171030151738.tcn7d2gjgz3bkhcp@pl-59055.rocqadm.inria.fr> <1509377084-sup-897@sabre> <20171030153924.ieik3ihqypfuff4o@pl-59055.rocqadm.inria.fr> <1509378576-sup-696@sabre> Message-ID: <20171031105118.ssjsym4iozimurh7@pl-59055.rocqadm.inria.fr> Dear Edward, Many thanks to you, too, for your prompt response. Edward Z. Yang (2017/10/30 11:51 -0400): > Excerpts from Sébastien Hinderer's message of 2017-10-30 16:39:24 +0100: > > Dear Edward, > > > > Many thanks for your prompt response! > > > > Edward Z. Yang (2017/10/30 11:25 -0400): > > > Actually, it's the reverse of what you said: like OCaml, GHC essentially > > > has ~no unit tests; it's entirely Haskell programs which we compile > > > (and sometimes run; a lot of tests are for the typechecker only so > > > we don't bother running those.) The .T file is just a way of letting > > > the Python driver know what tests exist. > > > > Oh okay! Would you be able to point me to just a few tests to get an > > idea of a few typical situations, please? > > For example: > > The metadata > https://github.com/ghc/ghc/blob/master/testsuite/tests/typecheck/should_fail/all.T > > The source file > https://github.com/ghc/ghc/blob/master/testsuite/tests/typecheck/should_fail/tcfail011.hs > > The expected error output > https://github.com/ghc/ghc/blob/master/testsuite/tests/typecheck/should_fail/tcfail011.stderr Excellent, thanks! With these few hints I really got the understanding I was looking for so I'm really grateful for that, thanks! > > One other question I forgot to ask: how do you deal with conditional > > tests? For instance, if a test should be run only on some platforms? Or, > > in OCaml we have tests for Fortran bindings that should be run only if a > > Fortran compiler is available. How would you deal with such tests? > > All managed inside the Python driver code. > > Example: > https://github.com/ghc/ghc/blob/master/testsuite/tests/rts/all.T#L32 okay thanks, awesome! Best wishes, Sébastien. From kahl at cas.mcmaster.ca Tue Oct 31 14:31:19 2017 From: kahl at cas.mcmaster.ca (Wolfram Kahl) Date: Tue, 31 Oct 2017 10:31:19 -0400 Subject: How does GHC's testsuite work? In-Reply-To: <20171031105118.ssjsym4iozimurh7@pl-59055.rocqadm.inria.fr> References: <20171030151738.tcn7d2gjgz3bkhcp@pl-59055.rocqadm.inria.fr> <1509377084-sup-897@sabre> <20171030153924.ieik3ihqypfuff4o@pl-59055.rocqadm.inria.fr> <1509378576-sup-696@sabre> <20171031105118.ssjsym4iozimurh7@pl-59055.rocqadm.inria.fr> Message-ID: <20171031143119.GA11796@ritchie.cas.mcmaster.ca> Cher Sébastien, > Thanks. Unfortunately, the paper has been written in French. No need to add ``Unfortunately''... ;-) > Will come back with a link ASAP! I guess that many will agree with my opinion: Links to French papers are welcome, too! Amicalement, Wolfram From ben at well-typed.com Tue Oct 31 18:15:24 2017 From: ben at well-typed.com (Ben Gamari) Date: Tue, 31 Oct 2017 14:15:24 -0400 Subject: [ANNOUNCE] GHC 8.2.2 release candidate 2 Message-ID: <877evbuqtf.fsf@ben-laptop.smart-cactus.org> Hello everyone, The GHC team is very pleased to announce the second candidate of the 8.2.2 release of the Glasgow Haskell Compiler. Source and binary distributions are available at https://downloads.haskell.org/~ghc/8.2.2-rc2/ This is the second and hopefully last of two release candidates leading up the final 8.2.2 release. This release fixes approximately fifty bugs present in 8.2.1. These most notably include, * A correctness issue resulting in segmentation faults in some FFI-users (#13707, #14346) * A correctness issue resulting in undefined behavior in some programs using STM (#14171) * A bug which may have manifested in segmentation faults in out-of-memory condition (#14329) * clearBit of Natural no longer bottoms (#13203) * A specialisation bug resulting in exponential blowup of compilation time in some specialisation-intensive programs (#14379) * ghc-pkg now works even in environments with misconfigured NFS mounts (#13945) * GHC again supports production of position-independent executables (#13702) * Better error messages around kind mismatches (#11198, #12373, #13530, #13610) See [1] for the full list. As always, please report any issues you encounter. Happy testing, - Ben [1] https://ghc.haskell.org/trac/ghc/query?status=closed&milestone=8.2.2&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=component&order=priority -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 487 bytes Desc: not available URL: From ben at well-typed.com Tue Oct 31 18:15:24 2017 From: ben at well-typed.com (Ben Gamari) Date: Tue, 31 Oct 2017 14:15:24 -0400 Subject: [ANNOUNCE] GHC 8.2.2 release candidate 3 Message-ID: <87h8u31b9x.fsf@ben-laptop.smart-cactus.org> Hello everyone, The GHC team is very pleased to announce the third candidate of the 8.2.2 release of the Glasgow Haskell Compiler. Source and binary distributions are available at https://downloads.haskell.org/~ghc/8.2.2-rc3/ This is the third and last of three release candidates leading up the final 8.2.2 release. This release fixes approximately fifty bugs present in 8.2.1. These most notably include, * A correctness issue resulting in segmentation faults in some FFI-users (#13707, #14346) * A correctness issue resulting in undefined behavior in some programs using STM (#14171) * A bug which may have manifested in segmentation faults in out-of-memory condition (#14329) * clearBit of Natural no longer bottoms (#13203) * A specialisation bug resulting in exponential blowup of compilation time in some specialisation-intensive programs (#14379) * ghc-pkg now works even in environments with misconfigured NFS mounts (#13945) * GHC again supports production of position-independent executables (#13702) * Better error messages around kind mismatches (#11198, #12373, #13530, #13610) See [1] for the full list. Release candidate three contains only two patches not present in -rc2 but fixes a packaging issue which lead to unintentional downgrading the process and Cabal libraries. As always, please report any issues you encounter. Happy testing, - Ben [1] https://ghc.haskell.org/trac/ghc/query?status=closed&milestone=8.2.2&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=component&order=priority -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 487 bytes Desc: not available URL: