From bryan at haskell.foundation Wed Feb 1 06:21:57 2023 From: bryan at haskell.foundation (Bryan Richter) Date: Wed, 1 Feb 2023 08:21:57 +0200 Subject: [Haskell-cafe] multiline strings editor for emacs In-Reply-To: References: Message-ID: That's a great idea! I love "not very smart" tools like that one. I don't know (yet) how HLS works, but is it possible to build something like that into it so it would be more accessible to people? (Asking the Cafe in general.) It might provide less pressure to change Haskell syntax, i.e. https://github.com/ghc-proposals/ghc-proposals/pull/569... On Sun, 29 Jan 2023 at 10:47, Evan Laforge wrote: > I've long used a program to toggle between raw text and haskell string > syntax (either wrapped words, unwrapped \-continued, or ["x", "y"] > "unlines" style). I use it with vim but it's a plain text filter: > https://github.com/elaforge/simple-src-utils > > It's not very smart but has worked well enough that I haven't bothered > to fix the rough bits. > > On Fri, Jan 27, 2023 at 1:26 AM Brandon Allbery > wrote: > > > > Nothing built in, but I think there's a proposal for better multiline > > string support in the compiler. (Yep: > > https://github.com/ghc-proposals/ghc-proposals/pull/569) > > > > On Thu, Jan 26, 2023 at 12:13 PM Markus Läll > wrote: > > > > > > Dear Cafe, > > > > > > searched, but this didn't turn up anything -- does there exist a > "multiline string editor for emacs" in haskell? I.e something that would > pop-out a new buffer to edit the string, and that would be inserted and > slash-aligned back into the original file once done? This would be simple > enough to implement, perhaps someone has already done it? > > > > > > (And just to be sure: there isn't a built-in multiline quasiquoter in > base, right? I know that there are multitudes of packages that implement > this, but would just like something that is built in.) > > > > > > > > > Thanks! > > > > > > -- > > > Markus Läll > > > _______________________________________________ > > > Haskell-Cafe mailing list > > > To (un)subscribe, modify options or view archives go to: > > > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > > > Only members subscribed via the mailman list are allowed to post. > > > > > > > > -- > > brandon s allbery kf8nh > > allbery.b at gmail.com > > _______________________________________________ > > Haskell-Cafe mailing list > > To (un)subscribe, modify options or view archives go to: > > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > > Only members subscribed via the mailman list are allowed to post. > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: From s9gf4ult at gmail.com Wed Feb 1 07:39:00 2023 From: s9gf4ult at gmail.com (Alexey Uimanov) Date: Wed, 1 Feb 2023 13:39:00 +0600 Subject: [Haskell-cafe] multiline strings editor for emacs In-Reply-To: References: Message-ID: https://github.com/twlz0ne/separedit.el Maybe this will work. On 26.01.2023 23:12, Markus Läll wrote: Dear Cafe, searched, but this didn't turn up anything -- does there exist a "multiline string editor for emacs" in haskell? I.e something that would pop-out a new buffer to edit the string, and that would be inserted and slash-aligned back into the original file once done? This would be simple enough to implement, perhaps someone has already done it? (And just to be sure: there isn't a built-in multiline quasiquoter in base, right? I know that there are multitudes of packages that implement this, but would just like something that is built in.) Thanks! -- Markus Läll _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to:http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: From frederic-emmanuel.picca at synchrotron-soleil.fr Wed Feb 1 10:09:32 2023 From: frederic-emmanuel.picca at synchrotron-soleil.fr (PICCA Frederic-Emmanuel) Date: Wed, 1 Feb 2023 11:09:32 +0100 (CET) Subject: [Haskell-cafe] how to write a pipes Consumer which return a final state Message-ID: <1619359567.13556689.1675246172429.JavaMail.zimbra@synchrotron-soleil.fr> Hello, I try to create a pipes which return at the end a Cube. the process is quite simple 1) extract data from a file 2) comput a cube of data from these data 3) accumulate these cube during the process 4) when there is no more cube return the final cube I am trying for now to write the part with the 'state' which is hiden in a recursion like this. accumulateP :: (MonadIO m, Shape sh) => Cube sh -> Consumer (DataFrameSpace sh) m (Cube sh) accumulateP cube = do s <- await accumulateP =<< (liftIO $ addSpace s cube) the add Space method return the modified Cube At some point I should see that await can not return a value and I would decide to return the value instead of doing another loop My question is how do I stop this recursion and return the final cube ? thanks for your help. From S.J.Thompson at kent.ac.uk Wed Feb 1 21:21:11 2023 From: S.J.Thompson at kent.ac.uk (Simon Thompson) Date: Wed, 1 Feb 2023 21:21:11 +0000 Subject: [Haskell-cafe] Haskell text Message-ID: I'm happy to announce that the PDF of Haskell, The Craft of Functional Programming (3rd edition) is available to view and download for free. Later in the year I'll revise it and make it available as an online text. But for now, here it is, uncorrected: https://simonjohnthompson.github.io/craft3e/craft3e.pdf Simon Sent from my iPhone -------------- next part -------------- An HTML attachment was scrubbed... URL: From mmcconnell17704 at yahoo.com Wed Feb 1 23:00:05 2023 From: mmcconnell17704 at yahoo.com (Mark McConnell) Date: Wed, 1 Feb 2023 23:00:05 +0000 (UTC) Subject: [Haskell-cafe] Haskell text In-Reply-To: References: Message-ID: <608192955.1599249.1675292405936@mail.yahoo.com> Thank you.  It must have been hard work to write and edit the purchased editions, and they have been put to good use by the community.  This version will also be put to good use by the community. On Wednesday, February 1, 2023 at 04:22:11 PM EST, Simon Thompson wrote: I'm happy to announce that the PDF of Haskell, The Craft of Functional Programming (3rd edition) is available to view and download for free.  Later in the year I'll revise it and make it available as an online text. But for now, here it is, uncorrected:  https://simonjohnthompson.github.io/craft3e/craft3e.pdf Simon Sent from my iPhone_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: From damien.courousse at cea.fr Thu Feb 2 07:47:46 2023 From: damien.courousse at cea.fr (=?UTF-8?Q?Damien_Courouss=c3=a9?=) Date: Thu, 2 Feb 2023 08:47:46 +0100 Subject: [Haskell-cafe] Haskell text In-Reply-To: References: Message-ID: <36653cc1-806f-c603-97b4-1ba6c074b4cd@cea.fr> Thank you very much. I own a hard copy of your book (3rd ed), which I enjoyed a lot. This book has shown me how the use of types only, without advanced language features, can go a long way. Best, On 01/02/2023 22:21, Simon Thompson wrote: > > I'm happy to announce that the PDF of Haskell, The Craft of Functional > Programming (3rd edition) is available to view and download for free. > > Later in the year I'll revise it and make it available as an online > text. But for now, here it is, uncorrected: > https://simonjohnthompson.github.io/craft3e/craft3e.pdf > > Simon > > Sent from my iPhone > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -- Damien Couroussé Research Engineer Commissariat à l’énergie atomique et aux énergies alternatives Institut List | Minatec Campus 17 avenue des Martyrs | 38054 Grenoble Cedex | France Tel : +33 (0)4 38 78 04 66 Web :http://www-list.cea.fr -------------- next part -------------- An HTML attachment was scrubbed... URL: From stefan.wehr at gmail.com Thu Feb 2 15:40:22 2023 From: stefan.wehr at gmail.com (Stefan Wehr) Date: Thu, 2 Feb 2023 16:40:22 +0100 Subject: [Haskell-cafe] 2nd Call for Participation: BOB 2023 (Berlin, March 17) Message-ID: ========================================================================= BOB 2023 Conference “What happens if we simply use what’s best?” March 17, 2023, Berlin https://bobkonf.de/2023/ Program: https://bobkonf.de/2023/program.html Registration: https://bobkonf.de/2023/registration.html ========================================================================= BOB conference is a place for developers, architects, and decision-makers to explore technologies beyond the mainstream in software development and to find the best tools available to software developers today. Our goal is for all participants of BOB to return home with new insights that enable them to improve their own software development experience. The program features 14 talks and 8 tutorials on current topics: https://bobkonf.de/2023/program.html Talk subjects includes functional programming, software architecture, accessibility, digital transformation, version control, formal methods, and devops. BOB will feature tutorials on Elixir, Scheme, Kotlin, Agda, Domain Storytelling, Hexagonal Frontend Architecture, and other topics. Yulia Startsev will give the keynote talk on "Re-thinking Modules for the Web". Registration is open - tickets are all under 200€, and many discount options are available, as are grants for members of groups underrepresented in tech: https://bobkonf.de/2023/registration.html -------------- next part -------------- An HTML attachment was scrubbed... URL: From olf at aatal-apotheke.de Fri Feb 3 16:55:20 2023 From: olf at aatal-apotheke.de (Olaf Klinke) Date: Fri, 03 Feb 2023 17:55:20 +0100 Subject: [Haskell-cafe] function composition and Rank2Types Message-ID: <7ada575cd99e746494c6470313488424e127824c.camel@aatal-apotheke.de> Dear Cafe, I used to believe that f . g $ x is equivalent to  f $ g x but apparently that is not the case when rank-2 types are involved. Counterexample: {-# LANGUAGE RankNTypes #-} type Cont = forall r. (() -> r) -> r data Foo = Foo Cont mkCont :: () -> Cont mkCont x = \f -> f x foo1 :: () -> Foo foo1 x = Foo $ mkCont x foo2 :: () -> Foo foo2 x = Foo . mkCont $ x The function foo1 type-checks, the function foo2 doesn't. And that is although ghci tells me that mkCont :: () -> Cont Foo :: Cont -> Foo so I should be able to compose? What is going on here? GHC 9.0.2 errors with • Couldn't match type ‘b0’ with ‘Cont’ Expected: b0 -> Foo Actual: Cont -> Foo Cannot instantiate unification variable ‘b0’ with a type involving polytypes: Cont • In the first argument of ‘(.)’, namely ‘Foo’ In the expression: Foo . mkCont and GHC 8.8.4 errors with • Couldn't match type ‘(() -> r0) -> r0’ with ‘Cont’ Expected type: ((() -> r0) -> r0) -> Foo Actual type: Cont -> Foo • In the first argument of ‘(.)’, namely ‘Foo’ In the expression: Foo . mkCont The latter suggests that r is unnecessarily specialized to some specific-yet-unknown r0 which destroys the universal quantification. Olaf From allbery.b at gmail.com Fri Feb 3 17:05:38 2023 From: allbery.b at gmail.com (Brandon Allbery) Date: Fri, 3 Feb 2023 12:05:38 -0500 Subject: [Haskell-cafe] function composition and Rank2Types In-Reply-To: <7ada575cd99e746494c6470313488424e127824c.camel@aatal-apotheke.de> References: <7ada575cd99e746494c6470313488424e127824c.camel@aatal-apotheke.de> Message-ID: What you're trying to do requires impredicative types. ($) is special-cased to support them; (.) isn't. On Fri, Feb 3, 2023 at 11:55 AM Olaf Klinke wrote: > > Dear Cafe, > > I used to believe that > f . g $ x > is equivalent to > f $ g x > but apparently that is not the case when rank-2 types are involved. > Counterexample: > > {-# LANGUAGE RankNTypes #-} > type Cont = forall r. (() -> r) -> r > data Foo = Foo Cont > > mkCont :: () -> Cont > mkCont x = \f -> f x > > foo1 :: () -> Foo > foo1 x = Foo $ mkCont x > > foo2 :: () -> Foo > foo2 x = Foo . mkCont $ x > > The function foo1 type-checks, the function foo2 doesn't. And that is > although ghci tells me that > mkCont :: () -> Cont > Foo :: Cont -> Foo > so I should be able to compose? What is going on here? GHC 9.0.2 errors > with > • Couldn't match type ‘b0’ with ‘Cont’ > Expected: b0 -> Foo > Actual: Cont -> Foo > Cannot instantiate unification variable ‘b0’ > with a type involving polytypes: Cont > • In the first argument of ‘(.)’, namely ‘Foo’ > In the expression: Foo . mkCont > and GHC 8.8.4 errors with > • Couldn't match type ‘(() -> r0) -> r0’ with ‘Cont’ > Expected type: ((() -> r0) -> r0) -> Foo > Actual type: Cont -> Foo > • In the first argument of ‘(.)’, namely ‘Foo’ > In the expression: Foo . mkCont > > The latter suggests that r is unnecessarily specialized to some > specific-yet-unknown r0 which destroys the universal quantification. > > Olaf > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -- brandon s allbery kf8nh allbery.b at gmail.com From J.Hage at uu.nl Fri Feb 3 18:31:51 2023 From: J.Hage at uu.nl (Hage, J. (Jurriaan)) Date: Fri, 3 Feb 2023 18:31:51 +0000 Subject: [Haskell-cafe] function composition and Rank2Types In-Reply-To: <7ada575cd99e746494c6470313488424e127824c.camel@aatal-apotheke.de> References: <7ada575cd99e746494c6470313488424e127824c.camel@aatal-apotheke.de> Message-ID: <48FDD9AE-4018-44C4-B14C-C042E5A06C1D@uu.nl> If you turn on ImpredicativeTypes it does compile. Jur > On 3 Feb 2023, at 16:55, Olaf Klinke wrote: > > Dear Cafe, > > I used to believe that > f . g $ x > is equivalent to > f $ g x > but apparently that is not the case when rank-2 types are involved. > Counterexample: > > {-# LANGUAGE RankNTypes #-} > type Cont = forall r. (() -> r) -> r > data Foo = Foo Cont > > mkCont :: () -> Cont > mkCont x = \f -> f x > > foo1 :: () -> Foo > foo1 x = Foo $ mkCont x > > foo2 :: () -> Foo > foo2 x = Foo . mkCont $ x > > The function foo1 type-checks, the function foo2 doesn't. And that is > although ghci tells me that > mkCont :: () -> Cont > Foo :: Cont -> Foo > so I should be able to compose? What is going on here? GHC 9.0.2 errors > with > • Couldn't match type ‘b0’ with ‘Cont’ > Expected: b0 -> Foo > Actual: Cont -> Foo > Cannot instantiate unification variable ‘b0’ > with a type involving polytypes: Cont > • In the first argument of ‘(.)’, namely ‘Foo’ > In the expression: Foo . mkCont > and GHC 8.8.4 errors with > • Couldn't match type ‘(() -> r0) -> r0’ with ‘Cont’ > Expected type: ((() -> r0) -> r0) -> Foo > Actual type: Cont -> Foo > • In the first argument of ‘(.)’, namely ‘Foo’ > In the expression: Foo . mkCont > > The latter suggests that r is unnecessarily specialized to some > specific-yet-unknown r0 which destroys the universal quantification. > > Olaf > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. From allbery.b at gmail.com Fri Feb 3 18:34:56 2023 From: allbery.b at gmail.com (Brandon Allbery) Date: Fri, 3 Feb 2023 13:34:56 -0500 Subject: [Haskell-cafe] function composition and Rank2Types In-Reply-To: <48FDD9AE-4018-44C4-B14C-C042E5A06C1D@uu.nl> References: <7ada575cd99e746494c6470313488424e127824c.camel@aatal-apotheke.de> <48FDD9AE-4018-44C4-B14C-C042E5A06C1D@uu.nl> Message-ID: Yes; a more accurate statement to what I said earlier is that `($)` is special-cased to always behave as if `ImpredicativeTypes` is on, whereas `(.)` requires you to enable it explicitly. On Fri, Feb 3, 2023 at 1:32 PM Hage, J. (Jurriaan) via Haskell-Cafe wrote: > > If you turn on ImpredicativeTypes it does compile. > > Jur > > > > On 3 Feb 2023, at 16:55, Olaf Klinke wrote: > > > > Dear Cafe, > > > > I used to believe that > > f . g $ x > > is equivalent to > > f $ g x > > but apparently that is not the case when rank-2 types are involved. > > Counterexample: > > > > {-# LANGUAGE RankNTypes #-} > > type Cont = forall r. (() -> r) -> r > > data Foo = Foo Cont > > > > mkCont :: () -> Cont > > mkCont x = \f -> f x > > > > foo1 :: () -> Foo > > foo1 x = Foo $ mkCont x > > > > foo2 :: () -> Foo > > foo2 x = Foo . mkCont $ x > > > > The function foo1 type-checks, the function foo2 doesn't. And that is > > although ghci tells me that > > mkCont :: () -> Cont > > Foo :: Cont -> Foo > > so I should be able to compose? What is going on here? GHC 9.0.2 errors > > with > > • Couldn't match type ‘b0’ with ‘Cont’ > > Expected: b0 -> Foo > > Actual: Cont -> Foo > > Cannot instantiate unification variable ‘b0’ > > with a type involving polytypes: Cont > > • In the first argument of ‘(.)’, namely ‘Foo’ > > In the expression: Foo . mkCont > > and GHC 8.8.4 errors with > > • Couldn't match type ‘(() -> r0) -> r0’ with ‘Cont’ > > Expected type: ((() -> r0) -> r0) -> Foo > > Actual type: Cont -> Foo > > • In the first argument of ‘(.)’, namely ‘Foo’ > > In the expression: Foo . mkCont > > > > The latter suggests that r is unnecessarily specialized to some > > specific-yet-unknown r0 which destroys the universal quantification. > > > > Olaf > > > > _______________________________________________ > > Haskell-Cafe mailing list > > To (un)subscribe, modify options or view archives go to: > > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > > Only members subscribed via the mailman list are allowed to post. > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -- brandon s allbery kf8nh allbery.b at gmail.com From olf at aatal-apotheke.de Fri Feb 3 23:13:11 2023 From: olf at aatal-apotheke.de (Olaf Klinke) Date: Sat, 04 Feb 2023 00:13:11 +0100 Subject: [Haskell-cafe] function composition and Rank2Types In-Reply-To: <48FDD9AE-4018-44C4-B14C-C042E5A06C1D@uu.nl> References: <7ada575cd99e746494c6470313488424e127824c.camel@aatal-apotheke.de> <48FDD9AE-4018-44C4-B14C-C042E5A06C1D@uu.nl> Message-ID: On Fri, 2023-02-03 at 18:31 +0000, Hage, J. (Jurriaan) wrote: > If you turn on ImpredicativeTypes it does compile. > > Jur Not under GHC 8.8.4. In any case I find it rather disturbing that Hask is not a category! That is, there are types a, b, c and morphisms f :: a -> b, g :: b -> c such that g.f is not a morphism. The current base-4.17 instance Category (->) uses (GHC.Base..) as (.) so it is a lie, since the Control.Category module does not use ImpredicativeTypes. It should read  instance Category (->) where id = GHC.Base.id g.f = \x -> g $ f x Indeed, the recent ($) has a type much funnier than (.). Did any of the teaching members of the Haskell Café have difficulties with this? I had the vague feeling of deja-vu (all this been discussed) when writing the initial message. btw, the link in https://wiki.haskell.org/Impredicative_types to the GHC user guide is a 404. The correct current link is https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/impredicative_types.html Maybe someone with a wiki account can change that. Only on the latter page one can find Brandon's explanation about the special behaviour of ($) and that while older GHC versions did have the ImpredicativeTypes extension, it was not reliable, as I have witnessed. There is also no mention of ImpredicativeTypes in any of the error messages I posted, but I think there is already an open GHC issue for that: https://github.com/haskell/error-messages/issues/521 Should this go into the Haskell error message index until fixed? Apologies for being so pedantic but this shook my belief in Haskell as a model of mathematical functions. Olaf > On 3 Feb 2023, at 16:55, Olaf Klinke wrote: > > Dear Cafe, > > I used to believe that >   f . g $ x > is equivalent to >   f $ g x > but apparently that is not the case when rank-2 types are involved. > Counterexample: > > {-# LANGUAGE RankNTypes #-} > type Cont = forall r. (() -> r) -> r > data Foo = Foo Cont > > mkCont :: () -> Cont > mkCont x = \f -> f x > > foo1 :: () -> Foo > foo1 x = Foo $ mkCont x > > foo2 :: () -> Foo > foo2 x = Foo . mkCont $ x > > The function foo1 type-checks, the function foo2 doesn't. And that is > although ghci tells me that > mkCont :: () -> Cont > Foo :: Cont -> Foo > so I should be able to compose? What is going on here? GHC 9.0.2 errors > with >    • Couldn't match type ‘b0’ with ‘Cont’ >      Expected: b0 -> Foo >        Actual: Cont -> Foo >      Cannot instantiate unification variable ‘b0’ >      with a type involving polytypes: Cont >    • In the first argument of ‘(.)’, namely ‘Foo’ >      In the expression: Foo . mkCont > and GHC 8.8.4 errors with >    • Couldn't match type ‘(() -> r0) -> r0’ with ‘Cont’ >      Expected type: ((() -> r0) -> r0) -> Foo >        Actual type: Cont -> Foo >    • In the first argument of ‘(.)’, namely ‘Foo’ >      In the expression: Foo . mkCont > > The latter suggests that r is unnecessarily specialized to some > specific-yet-unknown r0 which destroys the universal quantification. > > Olaf > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. From J.Hage at uu.nl Sat Feb 4 11:06:45 2023 From: J.Hage at uu.nl (Hage, J. (Jurriaan)) Date: Sat, 4 Feb 2023 11:06:45 +0000 Subject: [Haskell-cafe] function composition and Rank2Types In-Reply-To: References: <7ada575cd99e746494c6470313488424e127824c.camel@aatal-apotheke.de> <48FDD9AE-4018-44C4-B14C-C042E5A06C1D@uu.nl> Message-ID: True, Impredicativity only became well supported in a later version, 9.2 I believe. Before that its implementation was unsound (surprisingly people did not seem to abuse that). I was actually under the impression that the special role for ($) came to an end when the new impredicative type system was implemented. Maybe I was mistaken in this. Best, Jur > On 3 Feb 2023, at 23:13, Olaf Klinke wrote: > > On Fri, 2023-02-03 at 18:31 +0000, Hage, J. (Jurriaan) wrote: >> If you turn on ImpredicativeTypes it does compile. >> >> Jur > > Not under GHC 8.8.4. > In any case I find it rather disturbing that Hask is not a category! > That is, there are types a, b, c and morphisms f :: a -> b, g :: b -> c > such that g.f is not a morphism. The current base-4.17 instance > Category (->) uses (GHC.Base..) as (.) so it is a lie, since the > Control.Category module does not use ImpredicativeTypes. It should > read > > instance Category (->) where > id = GHC.Base.id > g.f = \x -> g $ f x > > Indeed, the recent ($) has a type much funnier than (.). Did any of the > teaching members of the Haskell Café have difficulties with this? I had > the vague feeling of deja-vu (all this been discussed) when writing the > initial message. > > btw, the link in https://wiki.haskell.org/Impredicative_types to the > GHC user guide is a 404. The correct current link is > https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/impredicative_types.html > Maybe someone with a wiki account can change that. Only on the latter > page one can find Brandon's explanation about the special behaviour of > ($) and that while older GHC versions did have the ImpredicativeTypes > extension, it was not reliable, as I have witnessed. There is also no > mention of ImpredicativeTypes in any of the error messages I posted, > but I think there is already an open GHC issue for that: > https://github.com/haskell/error-messages/issues/521 > Should this go into the Haskell error message index until fixed? > > Apologies for being so pedantic but this shook my belief in Haskell as > a model of mathematical functions. > > Olaf > > > >> On 3 Feb 2023, at 16:55, Olaf Klinke wrote: >> >> Dear Cafe, >> >> I used to believe that >> f . g $ x >> is equivalent to >> f $ g x >> but apparently that is not the case when rank-2 types are involved. >> Counterexample: >> >> {-# LANGUAGE RankNTypes #-} >> type Cont = forall r. (() -> r) -> r >> data Foo = Foo Cont >> >> mkCont :: () -> Cont >> mkCont x = \f -> f x >> >> foo1 :: () -> Foo >> foo1 x = Foo $ mkCont x >> >> foo2 :: () -> Foo >> foo2 x = Foo . mkCont $ x >> >> The function foo1 type-checks, the function foo2 doesn't. And that is >> although ghci tells me that >> mkCont :: () -> Cont >> Foo :: Cont -> Foo >> so I should be able to compose? What is going on here? GHC 9.0.2 > errors >> with >> • Couldn't match type ‘b0’ with ‘Cont’ >> Expected: b0 -> Foo >> Actual: Cont -> Foo >> Cannot instantiate unification variable ‘b0’ >> with a type involving polytypes: Cont >> • In the first argument of ‘(.)’, namely ‘Foo’ >> In the expression: Foo . mkCont >> and GHC 8.8.4 errors with >> • Couldn't match type ‘(() -> r0) -> r0’ with ‘Cont’ >> Expected type: ((() -> r0) -> r0) -> Foo >> Actual type: Cont -> Foo >> • In the first argument of ‘(.)’, namely ‘Foo’ >> In the expression: Foo . mkCont >> >> The latter suggests that r is unnecessarily specialized to some >> specific-yet-unknown r0 which destroys the universal quantification. >> >> Olaf >> >> _______________________________________________ >> Haskell-Cafe mailing list >> To (un)subscribe, modify options or view archives go to: >> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe >> Only members subscribed via the mailman list are allowed to post. > > > From allbery.b at gmail.com Sat Feb 4 13:50:55 2023 From: allbery.b at gmail.com (Brandon Allbery) Date: Sat, 4 Feb 2023 08:50:55 -0500 Subject: [Haskell-cafe] function composition and Rank2Types In-Reply-To: References: <7ada575cd99e746494c6470313488424e127824c.camel@aatal-apotheke.de> <48FDD9AE-4018-44C4-B14C-C042E5A06C1D@uu.nl> Message-ID: It changed: before QuickLook, ($) was special cased in the AST and removed so the impredicativity question never came up, After QuickLook, it was special-cased to always behave as if ImpredicativeTypes was enabled. On Sat, Feb 4, 2023 at 6:06 AM Hage, J. (Jurriaan) wrote: > > > True, Impredicativity only became well supported in a later version, 9.2 I believe. > Before that its implementation was unsound (surprisingly people did not seem > to abuse that). > > I was actually under the impression that the special role for ($) > came to an end when the new impredicative type system was implemented. > Maybe I was mistaken in this. > > Best, > Jur > > > > On 3 Feb 2023, at 23:13, Olaf Klinke wrote: > > > > On Fri, 2023-02-03 at 18:31 +0000, Hage, J. (Jurriaan) wrote: > >> If you turn on ImpredicativeTypes it does compile. > >> > >> Jur > > > > Not under GHC 8.8.4. > > In any case I find it rather disturbing that Hask is not a category! > > That is, there are types a, b, c and morphisms f :: a -> b, g :: b -> c > > such that g.f is not a morphism. The current base-4.17 instance > > Category (->) uses (GHC.Base..) as (.) so it is a lie, since the > > Control.Category module does not use ImpredicativeTypes. It should > > read > > > > instance Category (->) where > > id = GHC.Base.id > > g.f = \x -> g $ f x > > > > Indeed, the recent ($) has a type much funnier than (.). Did any of the > > teaching members of the Haskell Café have difficulties with this? I had > > the vague feeling of deja-vu (all this been discussed) when writing the > > initial message. > > > > btw, the link in https://wiki.haskell.org/Impredicative_types to the > > GHC user guide is a 404. The correct current link is > > https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/impredicative_types.html > > Maybe someone with a wiki account can change that. Only on the latter > > page one can find Brandon's explanation about the special behaviour of > > ($) and that while older GHC versions did have the ImpredicativeTypes > > extension, it was not reliable, as I have witnessed. There is also no > > mention of ImpredicativeTypes in any of the error messages I posted, > > but I think there is already an open GHC issue for that: > > https://github.com/haskell/error-messages/issues/521 > > Should this go into the Haskell error message index until fixed? > > > > Apologies for being so pedantic but this shook my belief in Haskell as > > a model of mathematical functions. > > > > Olaf > > > > > > > >> On 3 Feb 2023, at 16:55, Olaf Klinke wrote: > >> > >> Dear Cafe, > >> > >> I used to believe that > >> f . g $ x > >> is equivalent to > >> f $ g x > >> but apparently that is not the case when rank-2 types are involved. > >> Counterexample: > >> > >> {-# LANGUAGE RankNTypes #-} > >> type Cont = forall r. (() -> r) -> r > >> data Foo = Foo Cont > >> > >> mkCont :: () -> Cont > >> mkCont x = \f -> f x > >> > >> foo1 :: () -> Foo > >> foo1 x = Foo $ mkCont x > >> > >> foo2 :: () -> Foo > >> foo2 x = Foo . mkCont $ x > >> > >> The function foo1 type-checks, the function foo2 doesn't. And that is > >> although ghci tells me that > >> mkCont :: () -> Cont > >> Foo :: Cont -> Foo > >> so I should be able to compose? What is going on here? GHC 9.0.2 > > errors > >> with > >> • Couldn't match type ‘b0’ with ‘Cont’ > >> Expected: b0 -> Foo > >> Actual: Cont -> Foo > >> Cannot instantiate unification variable ‘b0’ > >> with a type involving polytypes: Cont > >> • In the first argument of ‘(.)’, namely ‘Foo’ > >> In the expression: Foo . mkCont > >> and GHC 8.8.4 errors with > >> • Couldn't match type ‘(() -> r0) -> r0’ with ‘Cont’ > >> Expected type: ((() -> r0) -> r0) -> Foo > >> Actual type: Cont -> Foo > >> • In the first argument of ‘(.)’, namely ‘Foo’ > >> In the expression: Foo . mkCont > >> > >> The latter suggests that r is unnecessarily specialized to some > >> specific-yet-unknown r0 which destroys the universal quantification. > >> > >> Olaf > >> > >> _______________________________________________ > >> Haskell-Cafe mailing list > >> To (un)subscribe, modify options or view archives go to: > >> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > >> Only members subscribed via the mailman list are allowed to post. > > > > > > > -- brandon s allbery kf8nh allbery.b at gmail.com From mitchellwrosen at gmail.com Sun Feb 5 15:52:48 2023 From: mitchellwrosen at gmail.com (Mitchell Rosen) Date: Sun, 5 Feb 2023 10:52:48 -0500 Subject: [Haskell-cafe] Takeover request: unix-compat Message-ID: Hi all, I'd like to take over maintenance responsibility for the `unix-compat` package. Unfortunately, I've been unable to get in touch with the maintainer. I intend to make a release compatible with `unix-2.8`, and will be around to make subsequent bounds bumps and whatnot. You can find me on GitHub: https://github.com/mitchellwrosen Or Hackage: https://hackage.haskell.org/user/mitchellwrosen Thanks, Mitchell -------------- next part -------------- An HTML attachment was scrubbed... URL: From ivanperezdominguez at gmail.com Tue Feb 7 08:37:36 2023 From: ivanperezdominguez at gmail.com (Ivan Perez) Date: Tue, 7 Feb 2023 00:37:36 -0800 Subject: [Haskell-cafe] [ANN] Yampa-0.14.1 Message-ID: Dear all, I'm happy to announce the release of Yampa 0.14.1! Yampa is a fast, elegant Functional Reactive Programming implementation. Yampa prides itself in being a long-standing community project. It has now been around for 20 years!!! This is probably the largest release to the Yampa project in a decade: The unit tests for all of Yampa's public API are now complete. Many of the new tests are implemented using QuickCheck, and care has been taken, whenever possible, to express the properties based on the continuous-time (FRP) interpretation of Yampa's primitives and combinators. Hopefully, this battery of tests will help speed up the process of accepting new features and changes, and will free resources that can be dedicated to investigating other issues. See https://github.com/ivanperez-keera/yampa#features for details on Yampa's features. * Summary of Version 0.14.1 - Complete remaining unit tests for all public API. - Fix typo in documentation.- Fix broken links in documentation. As always, Yampa and yampa-test are released in sync. For details, see: - https://github.com/ivanperez-keera/Yampa/releases/tag/v0.14.1 - https://github.com/ivanperez-keera/Yampa/blob/develop/yampa/CHANGELOG - https://github.com/ivanperez-keera/Yampa/blob/develop/yampa-test/CHANGELOG * Releases You can explore the current versions at: - https://hackage.haskell.org/package/Yampa - https://hackage.haskell.org/package/yampa-test * Code The github repo is located at: https://github.com/ivanperez-keera/Yampa * What's coming This release comes exactly 2 months after the last release. The next release is planned for Apr 7, 2023. There are several issues open that you can contribute to: https://github.com/ivanperez-keera/Yampa/issues Following our roadmap, the pending changes remain as follows: - Full conformance to style guide. - Removal of unnecessarily exposed elements from the interface (e.g., FRP.Yampa.Arrow.arr3) that are not used and belong in other libraries. This topic is open to discussion. - Benchmarks: Facilitate making sound, evidence-based decisions about suggested improvements to the implementation, by completing a series of benchmarks. - New mailing list: We will in the future lose access to Yale's CS department-based mailman list, and are thinking of the best place to move the mailing list to. * Donations Our project is now seeking donations to help continue developing Yampa, create new open source libraries, new material, and give talks. Special thanks go to @johannes-riecken for sponsoring my work on the Yampa project with a regular contribution. Github will match the first 5K donated, so if you donate $1/month, github will donate the same amount. No donation is too small. Any contribution will absolutely help. See https://github.com/sponsors/ivanperez-keera for details. If you can help, please come forward. All the best, Ivan -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at joyful.com Tue Feb 7 21:50:29 2023 From: simon at joyful.com (Simon Michael) Date: Tue, 7 Feb 2023 11:50:29 -1000 Subject: [Haskell-cafe] Haskell Tiny Game Jam! Message-ID: The first Haskell Tiny Game Jam is now open! All welcome! Your mission: make Haskell games in 10 lines. https://github.com/haskell-game/tiny-games-hs and the #haskell-game chat room await your entries. Best, -Simon From migmit at gmail.com Tue Feb 7 23:33:03 2023 From: migmit at gmail.com (MigMit) Date: Wed, 8 Feb 2023 00:33:03 +0100 Subject: [Haskell-cafe] Haskell Tiny Game Jam! In-Reply-To: References: Message-ID: What does "Submit your entries now (as many as you like) to this repo" mean? A pull request? > On 7 Feb 2023, at 22:50, Simon Michael wrote: > > The first Haskell Tiny Game Jam is now open! All welcome! > > Your mission: make Haskell games in 10 lines. https://github.com/haskell-game/tiny-games-hs and the #haskell-game chat room await your entries. > > Best, > -Simon > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. From david at haskell.foundation Thu Feb 9 10:04:09 2023 From: david at haskell.foundation (David Christiansen) Date: Thu, 9 Feb 2023 11:04:09 +0100 Subject: [Haskell-cafe] Volunteers wanted to administer a security advisory DB for Hackage Message-ID: Hello fellow Haskellers, The HF is in the process of getting a security advisory database up and running for Haskell libraries, to enable both automated and manual audit workflows. We're looking for volunteers to help administer the database. If you have a background in security and would like to make a high-impact positive contribution to the Haskell ecosystem, please consider volunteering! More details are available at https://discourse.haskell.org/t/call-for-nominations-haskell-security-response-team/5770 . Thanks in advance! All the best, David Thrane Christiansen Executive Director The Haskell Foundation -------------- next part -------------- An HTML attachment was scrubbed... URL: From frederic-emmanuel.picca at synchrotron-soleil.fr Thu Feb 9 13:11:00 2023 From: frederic-emmanuel.picca at synchrotron-soleil.fr (PICCA Frederic-Emmanuel) Date: Thu, 9 Feb 2023 14:11:00 +0100 (CET) Subject: [Haskell-cafe] HKD and Generic Message-ID: <1386560997.23061647.1675948260662.JavaMail.zimbra@synchrotron-soleil.fr> Hello, I have this class DataSource data family DataSourcePath a :: Type data family DataSourceAcq a :: Type class DataSource a where withDataSourceP :: (Location l, MonadSafe m) => l -> DataSourcePath a -> (DataSourceAcq a -> m r) -> m r The purpose is to acquire a ressources from a data source path (for example, in a hdf5 file, "hdf5://path/to/my/dataset" I need to obtain a C struct which point on the Dataset) and then do something with this ressources Here an example of an instance in order to extract an Angstrom from a file or provide directly the constant value. -- Angstrom data instance DataSourcePath Angstrom = DataSourcePath'Angstrom (Hdf5Path Z Double) | DataSourcePath'Angstrom'Const Angstrom deriving (Eq, Generic, Show, FromJSON, ToJSON) data instance DataSourceAcq Angstrom = DataSourceAcq'Angstrom Dataset | DataSourceAcq'Angstrom'Const Angstrom instance DataSource Angstrom where withDataSourceP f (DataSourcePath'Angstrom p) g = withHdf5PathP f p $ \ds -> g (DataSourceAcq'Angstrom ds) withDataSourceP _ (DataSourcePath'Angstrom'Const a) g = g (DataSourceAcq'Angstrom'Const a) next, I build a bunch of DataFrame which contain all these ressources. data DataFrameQCustom = DataFrameQCustom Attenuation -- attenuation Geometry -- geometry Image -- image Index -- timestamp in double deriving Show data instance DataSourcePath DataFrameQCustom = DataSourcePath'DataFrameQCustom (DataSourcePath Attenuation) (DataSourcePath Geometry) (DataSourcePath Image) (DataSourcePath Index) deriving (Eq, Generic, Show, FromJSON, ToJSON) data instance DataSourceAcq DataFrameQCustom = DataSourceAcq'DataFrameQCustom (DataSourceAcq Attenuation) (DataSourceAcq Geometry) (DataSourceAcq Image) (DataSourceAcq Index) Indded I now need to write the withDataSource instance by hand instance DataSource DataFrameQCustom where withDataSourceP f (DataSourcePath'DataFrameQCustom a g i idx) gg = withDataSourceP f a $ \a' -> withDataSourceP f g $ \g' -> withDataSourceP f i $ \i' -> withDataSourceP f idx $ \idx' -> gg (DataSourceAcq'DataFrameQCustom a' g' i' idx') this seems so mechanical that I am wondring if this should not be automatize via Generic. Another point would be to avoiding mistake when writting the DatasourcePath instance and Generate the from an uniq structure using HKD Something like -- "Higher-Kinded Data" type family HKD f a where HKD Identity a = a HKD f a = f a data DataFrameHkl' f = DataFrameHkl (HKD f DataFrameQCustom) (HKD f Sample) deriving (Generic) type DataFrameHkl = DataFrameHkl' Identity type DataFrameHklPath = DataFrameHkl' DataSourcePath so I would like your help in order to write first a Generic version of withDataSourceP I read this https://reasonablypolymorphic.com/blog/higher-kinded-data/ but I am not completly sure how to convert my withDataSourceP :: (Location l, MonadSafe m) => l -> DataSourcePath a -> (DataSourceAcq a -> m r) -> m r signature into something Generic Thanks for considering Fred From pietro.gra at hotmail.it Thu Feb 9 18:31:48 2023 From: pietro.gra at hotmail.it (Pietro Grandinetti) Date: Thu, 9 Feb 2023 18:31:48 +0000 Subject: [Haskell-cafe] Generic use of queries postgresql-simple Message-ID: Hello-- I use postgresql-simple and for selecting rows from one table I have the following function. runMyQuery :: Connection -> String -- query with '?' params to bind -> Int -- first param -> Int -- second param -> IO [MyTable1] runMyQuery conn dbQuery param1 param2 = query conn dbQuery $ (param2, param2) data MyTable1 = MyTable1 {col1 :: Int, col2 :: Int, col3 :: String} instance FromRow MyTable1 where fromRow = MyTable1 <$> field <*> field <*> field There are some things I'd like to improve: 1. I will have to write "MyTable1", "MyTable2", ... datatypes, one for each table, but would like to have only one function runMyQuery where the return type is a generic IO [MyModel]. My problem is that I don't know how to write it for tables with different number of columns and different SQL types. 2. The 2nd to the penultimate arguments of runMyQuery are the arguments to bind into the SQL string query. This means that I should write several different version of "runMyQuery" each with a different number of arguments, but would like to have only one. Can you recommend some approaches? Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From zubin at well-typed.com Fri Feb 10 14:50:14 2023 From: zubin at well-typed.com (Zubin Duggal) Date: Fri, 10 Feb 2023 20:20:14 +0530 Subject: [Haskell-cafe] [Haskell] [ANNOUNCE] GHC 9.2.6 released Message-ID: <20230210145014.mr7gkdghbqzivd2h@zubin-pc> The GHC developers are happy to announce the availability of GHC 9.2.6. Binary distributions, source distributions, and documentation are available at [downloads.haskell.org](https://downloads.haskell.org/ghc/9.2.6). Download Page: https://www.haskell.org/ghc/download_ghc_9_2_6.html Blog Post: https://www.haskell.org/ghc/blog/20230210-ghc-9.2.6-released.html This release is primarily a bugfix release addressing a few issues found in 9.2.5. These include: * Fixes for a number of simplifier issues typically resulting in compiler panics (#22491, #22482, #19824, #22718, #22662, #22039). * Fix for a simplifier regression in 9.2.5 that could impact runtime performance when compiling with optimisations due to duplication of expensive work (#22425). * Various stability improvments and bug fixes for the non moving and parallel GCs (#22528, #20221, #22264, #22327, #22929, #22927, #22929, #22930). * Allow certain keywords which can be used as variable names with `-XOverloadedRecordDot` (#20723). * Improvements to typechecker performance for modules with holes in type signatures (#14766) * Bump `gmp-tarballs` to a version which doesn't use the reserved `x18` register on AArch64/Darwin systems, and also has fixes for CVE-2021-43618 (#22497, #22789). * ... and a few more. See the [release notes] for a full accounting. As some of the fixed issues do affect correctness users are encouraged to upgrade promptly. We would like to thank Microsoft Azure, GitHub, IOG, the Zw3rk stake pool, Well-Typed, Tweag I/O, Serokell, Equinix, SimSpace, Haskell Foundation, and other anonymous contributors whose on-going financial and in-kind support has facilitated GHC maintenance and release management over the years. Finally, this release would not have been possible without the hundreds of open-source contributors whose work comprise this release. As always, do give this release a try and open a [ticket][] if you see anything amiss. Happy compiling, - Zubin [ticket]: https://gitlab.haskell.org/ghc/ghc/-/issues/new [release notes]: https://downloads.haskell.org/~ghc/9.2.6/docs/html/users_guide/9.2.6-notes.html -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: not available URL: From sarkara at chalmers.se Sun Feb 12 03:41:00 2023 From: sarkara at chalmers.se (Abhiroop Sarkar) Date: Sun, 12 Feb 2023 03:41:00 +0000 Subject: [Haskell-cafe] Paillier package maintainership Message-ID: <570998243b1d411385f3078ac680ef88@chalmers.se> Hello, The package Paillier (https://hackage.haskell.org/package/Paillier ) that provides a basic Paillier partial homomorphic encryption scheme hasn't seen any updates since 2016. The package, as of now, is very simple and cannot handle very common payloads in Machine Learning examples such as real numbers or even negative Integers. If the original maintainer Mr Li-Ting Tsai is no longer actively maintaining the package, I can take over, add support for real numbers (that is a non-trivial task) and add documentation to the package. I am not aware of any contact information for the author. Kindly let me know if there is any way to contact the author to transfer the maintainership. Best wishes, Abhiroop -------------- next part -------------- An HTML attachment was scrubbed... URL: From david.feuer at gmail.com Sun Feb 12 03:51:59 2023 From: david.feuer at gmail.com (David Feuer) Date: Sat, 11 Feb 2023 22:51:59 -0500 Subject: [Haskell-cafe] Paillier package maintainership In-Reply-To: <570998243b1d411385f3078ac680ef88@chalmers.se> References: <570998243b1d411385f3078ac680ef88@chalmers.se> Message-ID: In case anyone else is using an email client that mangles the link like mine does, try this: https://hackage.haskell.org/package/Paillier On Sat, Feb 11, 2023, 10:41 PM Abhiroop Sarkar wrote: > Hello, > > > The package Paillier (https://hackage.haskell.org/package/Paillier > ) that provides a basic > Paillier partial homomorphic encryption scheme hasn't seen any updates > since 2016. The package, as of now, is very simple and cannot handle very > common payloads in Machine Learning examples such as real numbers or even > negative Integers. If the original maintainer Mr Li-Ting Tsai is no longer > actively maintaining the package, I can take over, add support for real > numbers (that is a non-trivial task) and add documentation to the package. > I am not aware of any contact information for the author. Kindly let me > know if there is any way to contact the author to transfer the > maintainership. > > > Best wishes, > Abhiroop > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: From david.feuer at gmail.com Sun Feb 12 03:55:07 2023 From: david.feuer at gmail.com (David Feuer) Date: Sat, 11 Feb 2023 22:55:07 -0500 Subject: [Haskell-cafe] Paillier package maintainership In-Reply-To: <570998243b1d411385f3078ac680ef88@chalmers.se> References: <570998243b1d411385f3078ac680ef88@chalmers.se> Message-ID: Did you try the contact information on the package info page? That says the maintainer is and.liting at gmail.com . I see you filed tickets and a PR over the past couple days. The maintainer wouldn't be considered non-responsive for several more weeks. You should email them, however, if you haven't yet. On Sat, Feb 11, 2023, 10:41 PM Abhiroop Sarkar wrote: > Hello, > > > The package Paillier (https://hackage.haskell.org/package/Paillier > ) that provides a basic > Paillier partial homomorphic encryption scheme hasn't seen any updates > since 2016. The package, as of now, is very simple and cannot handle very > common payloads in Machine Learning examples such as real numbers or even > negative Integers. If the original maintainer Mr Li-Ting Tsai is no longer > actively maintaining the package, I can take over, add support for real > numbers (that is a non-trivial task) and add documentation to the package. > I am not aware of any contact information for the author. Kindly let me > know if there is any way to contact the author to transfer the > maintainership. > > > Best wishes, > Abhiroop > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: From sarkara at chalmers.se Sun Feb 12 03:59:42 2023 From: sarkara at chalmers.se (Abhiroop Sarkar) Date: Sun, 12 Feb 2023 03:59:42 +0000 Subject: [Haskell-cafe] Paillier package maintainership In-Reply-To: References: <570998243b1d411385f3078ac680ef88@chalmers.se>, Message-ID: <49d1705c24334fd384e38404c05306ee@chalmers.se> Thanks for the contact information of the maintainer. I will try to contact them. ________________________________ From: David Feuer Sent: Sunday, February 12, 2023 4:55:07 AM To: Abhiroop Sarkar Cc: haskell-cafe at haskell.org Subject: Re: [Haskell-cafe] Paillier package maintainership Did you try the contact information on the package info page? That says the maintainer is and.liting at gmail.com . I see you filed tickets and a PR over the past couple days. The maintainer wouldn't be considered non-responsive for several more weeks. You should email them, however, if you haven't yet. On Sat, Feb 11, 2023, 10:41 PM Abhiroop Sarkar > wrote: Hello, The package Paillier (https://hackage.haskell.org/package/Paillier ) that provides a basic Paillier partial homomorphic encryption scheme hasn't seen any updates since 2016. The package, as of now, is very simple and cannot handle very common payloads in Machine Learning examples such as real numbers or even negative Integers. If the original maintainer Mr Li-Ting Tsai is no longer actively maintaining the package, I can take over, add support for real numbers (that is a non-trivial task) and add documentation to the package. I am not aware of any contact information for the author. Kindly let me know if there is any way to contact the author to transfer the maintainership. Best wishes, Abhiroop _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: From qdunkan at gmail.com Sun Feb 12 04:01:11 2023 From: qdunkan at gmail.com (Evan Laforge) Date: Sat, 11 Feb 2023 20:01:11 -0800 Subject: [Haskell-cafe] Generic use of queries postgresql-simple In-Reply-To: References: Message-ID: On Thu, Feb 9, 2023 at 10:32 AM Pietro Grandinetti wrote: > > Hello-- > > I use postgresql-simple and for selecting rows from one table I have the following function. > > runMyQuery :: Connection > -> String -- query with '?' params to bind > -> Int -- first param > -> Int -- second param > -> IO [MyTable1] > runMyQuery conn dbQuery param1 param2 = query conn dbQuery $ (param2, param2) > > data MyTable1 = MyTable1 {col1 :: Int, col2 :: Int, col3 :: String} > > instance FromRow MyTable1 where fromRow = MyTable1 <$> field <*> field <*> field > > There are some things I'd like to improve: > > I will have to write "MyTable1", "MyTable2", ... datatypes, one for each table, but would like to have only one function runMyQuery where the return type is a generic IO [MyModel]. My problem is that I don't know how to write it for tables with different number of columns and different SQL types. > The 2nd to the penultimate arguments of runMyQuery are the arguments to bind into the SQL string query. This means that I should write several different version of "runMyQuery" each with a different number of arguments, but would like to have only one. You would use a typeclass overloaded on tuples of various sizes. But that's what the existing query function does, so I'm not sure what you're asking for. If you want to wrap the query function, you can do that, just retain the class context. You didn't say what "MyModel" is so I can't tell what would be generic about it. As an aside, I noticed the FromRow feature in postgresql-simple, but decided to not use it. If I'm going to hand-write the deserialization anyway, it's just as easy to put it in a function and the typeclass adds nothing. And much of the time I use scalars or tuples, or multiple types, types are meant to reflect haskell level needs and not to directly correspond to some SQL query or external schema. The value it seems to provide is if you use generic deriving with it, which I won't do because I'm not thinking I'm going to break a query at runtime just by rearranging a data declaration. Since postgresql-simple won't check the types from the SELECT line to FromRow it seems like a dangerous convenience. The comment about "one datatype for each table" implies you're thinking of a rigid exact correspondence, I wouldn't do that. Query what you need to, and return it in whatever form is useful, that's why there is a query language instead of just being an on disk hash table. From Graham.Hutton at nottingham.ac.uk Tue Feb 14 07:45:42 2023 From: Graham.Hutton at nottingham.ac.uk (Graham Hutton) Date: Tue, 14 Feb 2023 07:45:42 +0000 Subject: [Haskell-cafe] Midlands Graduate School, 2-6 April 2023, Birmingham , UK Message-ID: Dear all, Registration is now open for this years Midlands Graduate School, which takes place 2-6 April 2023 at the University of Birmingham, UK: http://www.tinyurl.com/MGS2023 MGS provides an intensive course of lectures on the Mathematical Foundations of Computing. It has been running for approaching 25 years, and attracts around 100 participants per year from both academia and industry. This year's courses: - Domain theory and denotational semantics (Tom de Jong) - Type theory (Thorsten Altenkirch) - Category theory (Nicolai Kraus) - Computational models of higher categories (Jamie Vicary) - Homotopy type theory (Eric Finster) - String diagrams (Dan Marsden) - Algebraic semantics and verification (Georg Struth) - Effects and call-by-push-value (Paul Levy) Spaces are limited, so early registration is recommended. Please share! Best wishes, Graham -- Professor Graham Hutton School of Computer Science University of Nottingham, UK http://www.cs.nott.ac.uk/~pszgmh This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please contact the sender and delete the email and attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. Email communications with the University of Nottingham may be monitored where permitted by law. From icfp.publicity at googlemail.com Tue Feb 14 08:00:56 2023 From: icfp.publicity at googlemail.com (ICFP Publicity) Date: Tue, 14 Feb 2023 16:00:56 +0800 Subject: [Haskell-cafe] ICFP 2023: Last Call for Papers Message-ID: PACMPL Volume 7, Issue ICFP 2023 Call for Papers Accepted papers to be invited for presentation at The 28th ACM SIGPLAN International Conference on Functional Programming Seattle, USA http://icfp23.sigplan.org/ ### Important dates (All dates are in 2023 at 11.59pm anywhere on earth.) Submission deadline: 1 March 2023 (Wednesday) (https://icfp23.hotcrp.com) Author response: 1 May (Monday)--4 May (Thursday) Round 1 notification: 18 May (Thursday) Round 2 notification: 29 June (Thursday) Camera-ready deadline: 20 July (Thursday) Conference: 4 September (Monday)--9 September (Saturday) ### About PACMPL Proceedings of the ACM on Programming Languages (PACMPL ) is a Gold Open Access journal publishing research on all aspects of programming languages, from design to implementation and from mathematical formalisms to empirical studies. Each issue of the journal is devoted to a particular subject area within programming languages and will be announced through publicised Calls for Papers, like this one. ### Scope [PACMPL](https://pacmpl.acm.org/) issue ICFP 2023 seeks original papers on the art and science of functional programming. Submissions are invited on all topics from principles to practice, from foundations to features, and from abstraction to application. The scope includes all languages that encourage functional programming, including both purely applicative and imperative languages, as well as languages with objects, concurrency, or parallelism. Topics of interest include (but are not limited to): * Language Design: concurrency, parallelism, and distribution; modularity; components and composition; metaprogramming; macros; pattern matching; type systems; type inference; dependent types; effect types; gradual types; refinement types; session types; interoperability; domain-specific languages; imperative programming; object-oriented programming; logic programming; probabilistic programming; reactive programming; generic programming; bidirectional programming. * Implementation: abstract machines; virtual machines; interpretation; compilation; compile-time and run-time optimisation; garbage collection and memory management; runtime systems; multi-threading; exploiting parallel hardware; interfaces to foreign functions, services, components, or low-level machine resources. * Software-Development Techniques: algorithms and data structures; design patterns; specification; verification; validation; proof assistants; debugging; testing; tracing; profiling; build systems; program synthesis. * Foundations: formal semantics; lambda calculus; program equivalence; rewriting; type theory; logic; category theory; computational effects; continuations; control; state; names and binding; program verification. * Analysis and Transformation: control flow; data flow; abstract interpretation; partial evaluation; program calculation. * Applications: symbolic computing; formal-methods tools; artificial intelligence; systems programming; distributed systems and web programming; hardware design; databases; scientific and numerical computing; graphical user interfaces; graphics and multimedia; GPU programming; scripting; system administration; security. * Education: teaching introductory programming; mathematical proof; algebra. Submissions will be evaluated according to their relevance, correctness, significance, originality, and clarity. Each submission should explain its contributions in both general and technical terms, clearly identifying what has been accomplished, explaining why it is significant, and comparing it with previous work. The technical content should be accessible to a broad audience. PACMPL issue ICFP 2023 also welcomes submissions in two separate categories — Functional Pearls and Experience Reports — that must be marked as such when submitted and that need not report original research results. Detailed guidelines on both categories are given at the end of this call. Submissions from underrepresented groups are encouraged. Authors who require financial support to attend the conference can apply for PAC funding (http://www.sigplan.org/PAC/). The General Chair and PC Chair may not submit papers. PC members (other than the PC Chair) may submit papers. However, SIGPLAN guidelines dictate that they be held to a higher standard: a PC paper can be accepted if after the discussion it has at least one strongly-supportive review and no detractors. Each PC member may be listed as a coauthor on a maximum of three submissions. Please contact the Programme Chair if you have questions or are concerned about the appropriateness of a topic. ### Preparation of submissions *Deadline*: The deadline for submissions is **Wednesday, March 1, 2023**, Anywhere on Earth (). This deadline will be strictly enforced. *Formatting*: Submissions must be in PDF format, printable in black and white on US Letter sized paper and interpretable by common PDF tools. All submissions must adhere to the "ACM Small" template that is available (in both LaTeX and Word formats) from . There is a limit of **25 pages for a full paper or Functional Pearl** and **12 pages for an Experience Report**; in either case, the bibliography and an optional clearly marked appendix will not be counted against these limits. Submissions that exceed the page limits or, for other reasons, do not meet the requirements for formatting, will be summarily rejected. See also PACMPL's Information and Guidelines for Authors at . *Submission*: Submissions will be accepted at Improved versions of a paper may be submitted at any point before the submission deadline using the same web interface. *Author Response Period*: Authors will have a 72-hour period, starting at 12pm UTC on *Monday, May 1, 2023*, to read reviews and respond to them. *Appendix and Supplementary Material*: Authors have the option to include a clearly marked appendix and/or to attach supplementary material to a submission, on the understanding that reviewers may choose not to look at such an appendix or supplementary material. Supplementary material may be uploaded as a separate PDF document or tarball. Any supplementary material **must** be uploaded **at submission time**, not by providing a URL in the paper that points to an external repository. Authors are free to upload both anonymised and non-anonymised supplementary material. Anonymised supplementary material will be visible to reviewers immediately; non-anonymised supplementary material (which must be submitted separately) will be revealed to reviewers only after they have submitted their review of the paper and learned the identity of the author(s). *Authorship Policies*: All submissions are expected to comply with the ACM Policies for Authorship that are detailed at . *Republication Policies*: Each submission must adhere to SIGPLAN's republication policy, as explained on the web at . *ORCID*: ORCID provides a persistent digital identifier (an ORCID iD) that you own and control, and that distinguishes you from every other researcher: https://orcid.org/. ACM now require an ORCID iD for every author of a paper, not just the corresponding author. So, the author who is filling out the permission form should make sure they have the ORCID iDs for all of their coauthors before filling out the form. Any authors who do not yet have an ORCID iD can go to https://orcid.org/register to have one assigned. ### Review Process This section outlines the two-stage process with lightweight double-blind reviewing that will be used to select papers for PACMPL issue ICFP 2023. **New this year**: ICFP 2023 will have an Associate Chair who will help the PC Chair monitor reviews, solicit external expert reviews for submissions when there is not enough expertise on the committee, and facilitate reviewer discussions. *PACMPL issue ICFP 2023 will employ a two-stage review process.* The first stage in the review process will assess submitted papers using the criteria stated above and will allow for feedback and input on initial reviews through the author response period mentioned previously. As a result of the review process, a set of papers will be conditionally accepted and all other papers will be rejected. Authors will be notified of these decisions on **May 18, 2023**. Authors of conditionally accepted papers will be provided with committee reviews along with a set of mandatory revisions. By June 15, 2023, the authors may provide a second submission. The second and final reviewing phase assesses whether the mandatory revisions have been adequately addressed by the authors and thereby determines the final accept/reject status of the paper. The intent and expectation is that the mandatory revisions can feasibly be addressed within three weeks. The second submission should clearly identify how the mandatory revisions were addressed. To that end, the second submission must be accompanied by a cover letter mapping each mandatory revision request to specific parts of the paper. The cover letter will facilitate a quick second review, allowing for confirmation of final acceptance within two weeks. Conversely, the absence of a cover letter will be grounds for the paper's rejection. *PACMPL issue ICFP 2023 will employ a lightweight double-blind reviewing process.* To facilitate this, submitted papers must adhere to two rules: 1. **author names and institutions must be omitted**, and 2. **references to authors' own related work should be in the third person** (e.g., not "We build on our previous work ..." but rather "We build on the work of ..."). The purpose of this process is to help the reviewers come to an initial judgement about the paper without bias, not to make it impossible for them to discover the authors if they were to try. Nothing should be done in the name of anonymity that weakens the submission or makes the job of reviewing the paper more difficult (e.g., important background references should not be omitted or anonymised). In addition, authors should feel free to disseminate their ideas or draft versions of their papers as they normally would. For instance, authors may post drafts of their papers on the web or give talks on their research ideas. ### Information for Authors of Accepted Papers * As a condition of acceptance, final versions of all papers must adhere to the ACM Small format. The page limit for the final versions of papers will be increased by two pages to help authors respond to reviewer comments and mandatory revisions: **27 pages plus bibliography for a regular paper or Functional Pearl, 14 pages plus bibliography for an Experience Report**. * Authors of accepted submissions will be required to agree to one of the three ACM licensing options, one of which is Creative Commons CC-BY publication; this is the option recommended by the PACMPL editorial board. A reasoned argument in favour of this option can be found in the article [Why CC-BY?](https://oaspa.org/why-cc-by/) published by OASPA, the Open Access Scholarly Publishers Association. The other options are copyright transfer to ACM or retaining copyright but granting ACM exclusive publication rights. * PACMPL is a Gold Open Access journal, and authors are encouraged to publish their work under a CC-BY license. Gold Open Access guarantees permanent free online access to the definitive version in the ACM Digital Library, and the recommended CC-BY option also allows anyone to copy and distribute the work with attribution. Gold Open Access has been made possible by generous funding through ACM SIGPLAN, which will cover all open access costs in the event authors cannot. Authors who can cover the costs may do so by paying an Article Processing Charge (APC). PACMPL, SIGPLAN, and ACM Headquarters are committed to exploring routes to making Gold Open Access publication both affordable and sustainable. * ACM Author-Izer is a unique service that enables ACM authors to generate and post links on either their home page or institutional repository for visitors to download the definitive version of their articles from the ACM Digital Library at no charge. Downloads through Author-Izer links are captured in official ACM statistics, improving the accuracy of usage and impact measurements. Consistently linking to the definitive version of an ACM article should reduce user confusion over article versioning. After an article has been published and assigned to the appropriate ACM Author Profile pages, authors should visit to learn how to create links for free downloads from the ACM DL. * The official publication date is the date the papers are made available in the ACM Digital Library. This date may be up to *two weeks prior* to the first day of the conference. The official publication date affects the deadline for any patent filings related to published work. * Authors of each accepted submission are invited to attend and be available for the presentation of that paper at the conference. The schedule for presentations will be determined and shared with authors after the full program has been selected. ### Artifact Evaluation Authors of papers that are conditionally accepted in the first phase of the review process will be encouraged (but not required) to submit supporting materials for Artifact Evaluation. These items will then be reviewed by an Artifact Evaluation Committee, separate from the paper Review Committee, whose task is to assess how the artifacts support the work described in the associated paper. Papers that go through the Artifact Evaluation process successfully will receive a seal of approval printed on the papers themselves. Authors of accepted papers will be encouraged to make the supporting materials publicly available upon publication of the papers, for example, by including them as "source materials" in the ACM Digital Library. An additional seal will mark papers whose artifacts are made available, as outlined in the ACM guidelines for artifact badging. Participation in Artifact Evaluation is voluntary and will not influence the final decision regarding paper acceptance. ### Special categories of papers In addition to research papers, PACMPL issue ICFP solicits two kinds of papers that do not require original research contributions: Functional Pearls, which are full papers, and Experience Reports, which are limited to half the length of a full paper. Authors submitting such papers should consider the following guidelines. #### Functional Pearls A Functional Pearl is an elegant essay about something related to functional programming. Examples include, but are not limited to: * a new and thought-provoking way of looking at an old idea * an instructive example of program calculation or proof * a nifty presentation of an old or new data structure * an interesting application of functional programming techniques * a novel use or exposition of functional programming in the classroom While pearls often demonstrate an idea through the development of a short program, there is no requirement or expectation that they do so. Thus, they encompass the notions of theoretical and educational pearls. Functional Pearls are valued as highly and judged as rigorously as ordinary papers, but using somewhat different criteria. In particular, a pearl is not required to report original research, but, it should be concise, instructive, and entertaining. A pearl is likely to be rejected if its readers get bored, if the material gets too complicated, if too much-specialised knowledge is needed, or if the writing is inelegant. The key to writing a good pearl is polishing. A submission that is intended to be treated as a pearl must be marked as such on the submission web page and should contain the words "Functional Pearl" somewhere in its title or subtitle. These steps will alert reviewers to use the appropriate evaluation criteria. Pearls will be combined with ordinary papers, however, for the purpose of computing the conference's acceptance rate. #### Experience Reports The purpose of an Experience Report is to describe the experience of using functional programming in practice, whether in industrial application, tool development, programming education, or any other area. Possible topics for an Experience Report include, but are not limited to: * insights gained from real-world projects using functional programming * comparison of functional programming with conventional programming in the context of an industrial project or a university curriculum * project-management, business, or legal issues encountered when using functional programming in a real-world project * curricular issues encountered when using functional programming in education * real-world constraints that created special challenges for an implementation of a functional language or for functional programming in general An Experience Report is distinguished from a normal PACMPL issue ICFP paper by its title, by its length, and by the criteria used to evaluate it. * Both in the papers and in any citations, the title of each accepted Experience Report must end with the words "(Experience Report)" in parentheses. The acceptance rate for Experience Reports will be computed and reported separately from the rate for ordinary papers. * Experience Report submissions can be at most 12 pages long, excluding bibliography. * Each accepted Experience Report will be presented at the conference, but depending on the number of Experience Reports and regular papers accepted, authors of Experience Reports may be asked to give shorter talks. * Because the purpose of Experience Reports is to enable our community to understand the application of functional programming, an acceptable Experience Report need not add to the body of knowledge of the functional-programming community by presenting novel results or conclusions. It is sufficient if the Report describes an illuminating experience with functional programming, or provide evidence for a clear thesis about the use of functional programming. The experience or thesis must be relevant to ICFP, but it need not be novel. The review committee will accept or reject Experience Reports based on whether they judge the paper to illuminate some aspect of the use of functional programming. Anecdotal evidence will be acceptable provided it is well-argued and the author explains what efforts were made to gather as much evidence as possible. Typically, papers that show how functional programming was used are more convincing than papers that say only that functional programming was used. It can be especially effective to present comparisons of the situations before and after the experience described in the paper, but other kinds of evidence would also make sense, depending on context. Experience drawn from a single person's experience may be sufficient, but more weight will be given to evidence drawn from the experience of groups of people. An Experience Report should be short and to the point. For an industrial project, it should make a claim about how well functional programming worked and why; for a pedagogy paper, it might make a claim about the suitability of a particular teaching style or educational exercise. Either way, it should produce evidence to substantiate the claim. If functional programming worked in this case in the same ways it has worked for others, the paper need only summarise the results — the main part of the paper should discuss how well it worked and in what context. Most readers will not want to know all the details of the experience and its implementation, but the paper should characterise it and its context well enough so that readers can judge to what degree this experience is relevant to their own circumstances. The paper should take care to highlight any unusual aspects; specifics about the experience are more valuable than generalities about functional programming. If the paper not only describes experience but also presents new technical results, or if the experience refutes cherished beliefs of the functional-programming community, it may be better to submit it as a full paper, which will be judged by the usual criteria of novelty, originality, and relevance. The Program Chair will be happy to advise on any concerns about which category to submit to. ### ICFP Organisers General Chair: Nikhil Swamy (Microsoft Research, USA) Programme Chair: Sam Lindley (The University of Edinburgh, Scotland) Publicity Chair: Ilya Sergey (National University of Singapore, Singapore) Accessibility Co-Chairs: Vadim Zaliva (University of Cambridge, UK) and Calvin Beck (University of Pennsylvania, USA) Artifact Evaluation Chair: Jannis Limpberg (Vrije Universiteit Amsterdam, Netherlands) Diversity Chair: Daan Leijen (Microsoft Research, USA) Industrial Relations Co-Chairs: Atze Dijkstra (Standard Chartered Bank, England) and Mathieu Bosepflug (Tweag I/O, France) Programming Contest Co-Organisers: Alperen Keles (University of Maryland, USA) and Aymeric Fromherz (Inria, France) Student Research Competition Chair: Daniel Hillerström (The University of Edinburgh, Scotland) Video Chair: Apoorv Ingle (Iowa, USA) Workshops Co-Chairs: Arther Azevedo de Amorim (Boston University, USA) and Yannick Forster (Inria, France) ### PACMPL Volume 7, Issue ICFP 2023 Associate Editor: Sam Lindley (The University of Edinburgh, Scotland) Review Committee: Aggelos Biboudis, Oracle, Switzerland Alan Jeffrey, Roblox, USA Amos Robinson, Unaffiliated, Australia Andreea Costea, National University of Singapore, Singapore Andrew Hirsch, University of Buffalo, USA Andy Gill, Cerebrus Systems, USA Armando Solar-Lezama, MIT, USA Arnaud Spiwack, Tweag, France Benjamin C. Pierce, University of Pennsylvania, USA Beta Ziliani, FAMAF, UNC and Manas.Tech, Argentina Chung-Kil Hur, Seoul National University, South Korea Delia Kesner, Université de Paris, France Dylan McDermott, Reykjavik University, Iceland Éric Tanter, University of Chile, Chile Gabriel Radanne, Inria, France Gerwin Klein, Proofcraft & UNSW Sydney, Australia Hannah Gommerstadt, Vasser College, USA James Chapman, Input Output, Scotland James McKinna, Heriot-Watt, Scotland Jan Midtgaard, Tarides, Denmark Jeremy Gibbons, University of Oxford, England Jonathan Brachthäuser, University of Tübingen, Germany Jonathan Sterling, Aarhus University, Denmark José Pedro Magalhães, Standard Chartered Bank, England Josh Berdine, Meta UK, England Kathrin Stark, Heriot-Watt, Scotland Laura Bocchi, Kent, England Lennart Augustsson, Epic Games, Sweden Liang-Ting Chen, Academia Sinica, Taiwan, Taiwan Lionel Parreaux, HKUST, Hong Kong Marcos Viera, Universidad de la República, Uruguay Matthew Flatt, University of Utah, USA Michael D. Adams, National University of Singapore, Singapore Michael Greenberg, Stevens Institute of Technology, USA Niki Vazou, IMDEA, Spain Oliver Bračevac, Purdue University, USA Patrik Jansson, CSE, Chalmers and UGOT, Sweden, Sweden Paul Downen, UMass Lowell, USA Peter Thiemann, University of Freiburg, Germany Sam Tobin-Hochstadt, Indiana University, USA Satnam Singh, Groq, USA Sean Moss, Oxford, England Sebastian Erdweg, JGU Mainz, Germany Shin-ya Katsumata, National Institute of Informatics, Japan Simon Gay, University of Glasgow, Scotland Sonia Marin, University of Birmingham, England Stephen Dolan, Jane Street, England Susmit Sarkar, University of St Andrews, Scotland Tahina Ramananandro, Microsoft, USA Takeshi Tsukada, Chiba University, Japan Talia Ringer, University of Illinois at Urbana-Champaign, USA Yukiyoshi Kameyama, University of Tsukuba, Japan Zhenjiang Hu, Peking University, China From ben at well-typed.com Tue Feb 14 13:39:08 2023 From: ben at well-typed.com (Ben Gamari) Date: Tue, 14 Feb 2023 08:39:08 -0500 Subject: [Haskell-cafe] [ANNOUNCE] GHC 9.6.1-alpha3 is now available Message-ID: <87k00knz88.fsf@smart-cactus.org> The GHC team is very pleased to announce the availability of GHC 9.6.1-alpha3. As usual, binaries and source distributions are available at downloads.haskell.org: https://downloads.haskell.org/ghc/9.6.1-alpha3/ Beginning with GHC 9.6.1, GHC can be built as a cross-compiler to WebAssembly and JavaScript. This is an important step towards robust support for compiling Haskell to the Web, but there are a few caveats to be aware of in the 9.6 series: - Both the Javascript and WebAssembly backends are still at an early stage of development and are present in this release as a technology preview - Using GHC as a cross-compiler is not as easy as we would like it to be; in particular, there are challenges related to Template Haskell - GHC is not yet run-time retargetable; a given GHC binary targets exactly one platform, and both WebAssembly and JavaScript are considered platforms for this purpose. Cross-compilers must be built from source by their users We hope to lift all of these limitations in future releases. Additionally, 9.6.1 will include: - Significant latency improvements in the non-moving garbage collector - Efficient runtime support for delimited continuations - Improvements in compiler error messages - Numerous improvements in the compiler's memory usage See the [release notes] for a comprehensive accounting of changes in this release. As always, one can find a [migration guide] to aid in transitioning from older releases on the GHC Wiki. We have also recently started extending our release process to cover a wider set of Linux distributions. In particular, we now offer Rocky 8 and Ubuntu 20.04 binary distributions which cover RedHat-derivative and distributions using older `glibc` releases (namely 2.27), respectively. Please do give this release a try and open a [ticket] if you see anything amiss. Cheers, - Ben [ticket]: https://gitlab.haskell.org/ghc/ghc/issues/ [migration guide]: https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.6 [release notes]: https://downloads.haskell.org/ghc/9.6.1-alpha3/docs/users_guide/9.6.1-notes.html -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 487 bytes Desc: not available URL: From adrian at openwork.nz Wed Feb 15 17:18:03 2023 From: adrian at openwork.nz (Adrian Lyall Cochrane) Date: Thu, 16 Feb 2023 06:18:03 +1300 Subject: [Haskell-cafe] Takeover request: Haskell CSS Syntax Message-ID: <1676481483.3111.0@smtp.fastmail.com> Hi, I'd like to request to take over the css-syntax hackage! The lead developer of which seems to be barely active. They did accept someone else's year-old pull request to fix an issue I was having regarding upgrading to Text v2 upon being prodded, but hasn't responded to communications since regarding publishing this update to Hackage. I am developing my own (NLnet-funded) noJS browser engine in Haskell, and have released several modular components of it to Hackage in the hopes they will be useful to others for other purposes. I've benefited tremendously from Haskell CSS Syntax & would like to see the project continue, I can manage it as one of those subcomponents. I do not see much further development being required, especially considering how stable the W3C strives to keep part of the spec extremely stable. My communications to Haskell CSS Syntax: https://github.com/wereHamster/haskell-css-syntax/issues/5 https://github.com/wereHamster/haskell-css-syntax/pull/4 Thoughts? Adrian Cochrane OpenWork Ltd Lead developer of: libdggs geospatial analysis Rhapsode & Haphaestus web browsers From ben at well-typed.com Wed Feb 15 17:20:26 2023 From: ben at well-typed.com (Ben Gamari) Date: Wed, 15 Feb 2023 12:20:26 -0500 Subject: [Haskell-cafe] [ANNOUNCE] GHC 9.6.1-alpha3 is now available In-Reply-To: References: <87k00knz88.fsf@smart-cactus.org> Message-ID: <874jrmongf.fsf@smart-cactus.org> George Colpitts writes: > Hi > > I get a strange warning on MacOS when I do ./configure: > > checking Xcode version... xcode-select: error: tool 'xcodebuild' requires > Xcode, but active developer directory '/Library/Developer/CommandLineTools' > is a command line tools instance > not found (too old?) > > > I also get a related strange warning when I do a compile: > > ghc hello.hs > [1 of 2] Compiling Main ( hello.hs, hello.o ) [Missing object > file] > [2 of 2] Linking hello [Objects changed] > ld: warning: directory not found for option > '-L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/lib' > Hmm, that is indeed odd. It sounds like you Xcode installation may be broken. Did you upgrade your operating system recently? Do you have Xcode, the CLT package, or both installed? 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 ben.franksen at online.de Wed Feb 15 20:46:53 2023 From: ben.franksen at online.de (Ben Franksen) Date: Wed, 15 Feb 2023 21:46:53 +0100 Subject: [Haskell-cafe] Takeover request: unix-compat In-Reply-To: References: Message-ID: <8199a844-708c-9939-63d2-9e872145729e@online.de> Am 05.02.23 um 16:52 schrieb Mitchell Rosen: > Hi all, I'd like to take over maintenance responsibility for the > `unix-compat` package. Unfortunately, I've been unable to get in touch with > the maintainer. > > I intend to make a release compatible with `unix-2.8`, and will be around > to make subsequent bounds bumps and whatnot. Hi Mitchell, I made some contributions to unix-compat over the years and found that the current maintainer, while sometimes a bit slow to respond to PRs, is actually quite responsive when prompted via email. (Just a data point, not to suggest you haven't tried that.) Cheers Ben -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_0xD36E45316E58CC97.asc Type: application/pgp-keys Size: 3476 bytes Desc: OpenPGP public key URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_signature Type: application/pgp-signature Size: 236 bytes Desc: OpenPGP digital signature URL: From olf at aatal-apotheke.de Thu Feb 16 16:58:48 2023 From: olf at aatal-apotheke.de (Olaf Klinke) Date: Thu, 16 Feb 2023 17:58:48 +0100 Subject: [Haskell-cafe] Takeover request: Haskell CSS Syntax Message-ID: Adrian, you probably know this, but: (1) Instead of a takeover, you could ask Tomas Carnecky to become merely a co-maintainer on hackage which would put you in power to sync the github and hackage versions. (2) At least with stack you can specify a github fork as dependency of your project. It is not nice, but I was forced to do the same when a repo owner ignored my pull request. For example # cabal file. # Note: xls-0.1.3 is the latest hackage version build-depends: xls >= 0.1.4 # stack.yaml extra-deps: - git: https://github.com/olafklinke/xls.git commit: 4e7a2ba639cc72678e4e40a06afd3c481d63f2e3 In your case, though, 0.1.0.0 is the package number on hackage as well as in the more up-to-date githup repo, so I don't know how the resolver would figure out which to use. Safer would be to fork and increment the cabal package version number, then proceed as above. You can later simply delete the entry in stack.yaml when your fork has been merged into hackage. Olaf > Hi, > > I'd like to request to take over the css-syntax hackage! The lead > developer of which seems to be barely active. They did accept someone > else's year-old pull request to fix an issue I was having regarding > upgrading to Text v2 upon being prodded, but hasn't responded to > communications since regarding publishing this update to Hackage. > > I am developing my own (NLnet-funded) noJS browser engine in Haskell, > and have released several modular components of it to Hackage in the > hopes they will be useful to others for other purposes. I've > benefited > tremendously from Haskell CSS Syntax & would like to see the project > continue, I can manage it as one of those subcomponents. I do not see > much further development being required, especially considering how > stable the W3C strives to keep part of the spec extremely stable. > > My communications to Haskell CSS Syntax: > https://github.com/wereHamster/haskell-css-syntax/issues/5 > https://github.com/wereHamster/haskell-css-syntax/pull/4 > > Thoughts? > > Adrian Cochrane > OpenWork Ltd From adrian at openwork.nz Thu Feb 16 17:49:09 2023 From: adrian at openwork.nz (Adrian Lyall Cochrane) Date: Fri, 17 Feb 2023 06:49:09 +1300 Subject: [Haskell-cafe] Takeover request: Haskell CSS Syntax In-Reply-To: References: Message-ID: <1676569749.3111.1@smtp.fastmail.com> Thanks, Those are good paths forward! I'm using Cabal for my own projects, is there a way to have Cabal reference a GitHub fork? Cheers, Adrian Cochrane OpenWork Ltd Lead developer of: libdggs geospatial analysis Rhapsode aphaestus web browsers On Fri, Feb 17, 2023 at 5:58 AM, Olaf Klinke wrote: > Adrian, > > you probably know this, but: > (1) Instead of a takeover, you could ask Tomas Carnecky to become > merely a co-maintainer on hackage which would put you in power to sync > the github and hackage versions. > > (2) At least with stack you can specify a github fork as dependency of > your project. It is not nice, but I was forced to do the same when a > repo owner ignored my pull request. For example > > # cabal file. > # Note: xls-0.1.3 is the latest hackage version > build-depends: xls >= 0.1.4 > > # stack.yaml > extra-deps: > - git: https://github.com/olafklinke/xls.git > commit: 4e7a2ba639cc72678e4e40a06afd3c481d63f2e3 > > In your case, though, 0.1.0.0 is the package number on hackage as well > as in the more up-to-date githup repo, so I don't know how the > resolver > would figure out which to use. Safer would be to fork and increment > the > cabal package version number, then proceed as above. You can later > simply delete the entry in stack.yaml when your fork has been merged > into hackage. > > Olaf > >> Hi, >> >> I'd like to request to take over the css-syntax hackage! The lead >> developer of which seems to be barely active. They did accept >> someone >> else's year-old pull request to fix an issue I was having regarding >> upgrading to Text v2 upon being prodded, but hasn't responded to >> communications since regarding publishing this update to Hackage. >> >> I am developing my own (NLnet-funded) noJS browser engine in >> Haskell, >> and have released several modular components of it to Hackage in the >> hopes they will be useful to others for other purposes. I've >> benefited >> tremendously from Haskell CSS Syntax & would like to see the project >> continue, I can manage it as one of those subcomponents. I do not >> see >> much further development being required, especially considering how >> stable the W3C strives to keep part of the spec extremely stable. >> >> My communications to Haskell CSS Syntax: >> https://github.com/wereHamster/haskell-css-syntax/issues/5 >> https://github.com/wereHamster/haskell-css-syntax/pull/4 >> >> Thoughts? >> >> Adrian Cochrane >> OpenWork Ltd > From allbery.b at gmail.com Thu Feb 16 17:51:39 2023 From: allbery.b at gmail.com (Brandon Allbery) Date: Thu, 16 Feb 2023 12:51:39 -0500 Subject: [Haskell-cafe] Takeover request: Haskell CSS Syntax In-Reply-To: <1676569749.3111.1@smtp.fastmail.com> References: <1676569749.3111.1@smtp.fastmail.com> Message-ID: You can specify it in `cabal.project`, yes. https://cabal.readthedocs.io/en/3.8/cabal-project.html#specifying-packages-from-remote-version-control-locations On Thu, Feb 16, 2023 at 12:49 PM Adrian Lyall Cochrane wrote: > > Thanks, > > Those are good paths forward! I'm using Cabal for my own projects, is > there a way to have Cabal reference a GitHub fork? > > Cheers, > > Adrian Cochrane > OpenWork Ltd > > Lead developer of: > libdggs geospatial analysis > Rhapsode aphaestus web browsers > > On Fri, Feb 17, 2023 at 5:58 AM, Olaf Klinke > wrote: > > Adrian, > > > > you probably know this, but: > > (1) Instead of a takeover, you could ask Tomas Carnecky to become > > merely a co-maintainer on hackage which would put you in power to sync > > the github and hackage versions. > > > > (2) At least with stack you can specify a github fork as dependency of > > your project. It is not nice, but I was forced to do the same when a > > repo owner ignored my pull request. For example > > > > # cabal file. > > # Note: xls-0.1.3 is the latest hackage version > > build-depends: xls >= 0.1.4 > > > > # stack.yaml > > extra-deps: > > - git: https://github.com/olafklinke/xls.git > > commit: 4e7a2ba639cc72678e4e40a06afd3c481d63f2e3 > > > > In your case, though, 0.1.0.0 is the package number on hackage as well > > as in the more up-to-date githup repo, so I don't know how the > > resolver > > would figure out which to use. Safer would be to fork and increment > > the > > cabal package version number, then proceed as above. You can later > > simply delete the entry in stack.yaml when your fork has been merged > > into hackage. > > > > Olaf > > > >> Hi, > >> > >> I'd like to request to take over the css-syntax hackage! The lead > >> developer of which seems to be barely active. They did accept > >> someone > >> else's year-old pull request to fix an issue I was having regarding > >> upgrading to Text v2 upon being prodded, but hasn't responded to > >> communications since regarding publishing this update to Hackage. > >> > >> I am developing my own (NLnet-funded) noJS browser engine in > >> Haskell, > >> and have released several modular components of it to Hackage in the > >> hopes they will be useful to others for other purposes. I've > >> benefited > >> tremendously from Haskell CSS Syntax & would like to see the project > >> continue, I can manage it as one of those subcomponents. I do not > >> see > >> much further development being required, especially considering how > >> stable the W3C strives to keep part of the spec extremely stable. > >> > >> My communications to Haskell CSS Syntax: > >> https://github.com/wereHamster/haskell-css-syntax/issues/5 > >> https://github.com/wereHamster/haskell-css-syntax/pull/4 > >> > >> Thoughts? > >> > >> Adrian Cochrane > >> OpenWork Ltd > > > > > > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -- brandon s allbery kf8nh allbery.b at gmail.com From pedroborg at gmail.com Fri Feb 17 17:32:48 2023 From: pedroborg at gmail.com (Pedro B.) Date: Fri, 17 Feb 2023 13:32:48 -0400 Subject: [Haskell-cafe] Attoparsec.ByteString.Char8 or Attoparsec.ByteString for diff output? Message-ID: Dear Listers, I am developing a program to parse dif output taken from stdin (as in diff file1 file2 | myApp) or from a file. I am reading the input as ByteString in either case and I am parsing it Attoparsec. My question is, Should I use Data.Attoparsec.ByteString.Char8 or Data.Attoparsec.ByteString? So far, I've been using Data.Attoparsec.ByteString.Char8 and it works for my sample files, which are in utf8 or, latin1, or the default Windows encoding. What do you suggest? Note: I sent this question previously to the beginners list, but someone suggested to me privately to send it to this list. Regards, Pedro Borges From ietf-dane at dukhovni.org Fri Feb 17 18:08:31 2023 From: ietf-dane at dukhovni.org (Viktor Dukhovni) Date: Fri, 17 Feb 2023 13:08:31 -0500 Subject: [Haskell-cafe] Attoparsec.ByteString.Char8 or Attoparsec.ByteString for diff output? In-Reply-To: References: Message-ID: On Fri, Feb 17, 2023 at 01:32:48PM -0400, Pedro B. wrote: > I am developing a program to parse dif output taken from stdin (as in > diff file1 file2 | myApp) or from a file. I am reading the input as > ByteString in either case and I am parsing it Attoparsec. My question > is, Should I use Data.Attoparsec.ByteString.Char8 or > Data.Attoparsec.ByteString? > > So far, I've been using Data.Attoparsec.ByteString.Char8 and it works > for my sample files, which are in utf8 or, latin1, or the default > Windows encoding. > > What do you suggest? Because the underlying ByteString data type is the same: Data.ByteString ~ Data.ByteString.Char8 you can use either or both sets of combinators as you see fit. The Char8 combinators match the parsed ByteStrings against Char predicates, while the base ByteString combinators match against Word8 predicates. The below is valid: import Data.Attoparsec.ByteString as A8 import Data.Attoparsec.ByteString.Char8 as AC ... myParser :: ... myparser ... = do ... -- parse a Word8 byte followed by an 8-bit Char w <- A8.anyWord8 c <- AC.anyChar ... -- Viktor. From lysxia at gmail.com Fri Feb 17 19:12:41 2023 From: lysxia at gmail.com (Li-yao Xia) Date: Fri, 17 Feb 2023 19:12:41 +0000 Subject: [Haskell-cafe] Attoparsec.ByteString.Char8 or Attoparsec.ByteString for diff output? In-Reply-To: References: Message-ID: <69069491-cb9f-538c-922a-0697866d0206@gmail.com> You should probably use `Data.Attoparsec.ByteString`. Both let you do the same thing, but `Char8` just uses the wrong type (Chars ['\0'..'\255'] to represent bytes, i.e. Word8). On 2023-02-17 5:32 PM, Pedro B. wrote: > Dear Listers, > > I am developing a program to parse dif output taken from stdin (as in > diff file1 file2 | myApp) or from a file. I am reading  the input as > ByteString in either case and I am parsing it Attoparsec. My question > is, Should I use Data.Attoparsec.ByteString.Char8  or > Data.Attoparsec.ByteString? > > So far, I've been  using Data.Attoparsec.ByteString.Char8  and it > works for my sample files, which are in utf8 or, latin1, or the > default Windows encoding. > > What do you suggest? > > Note: I sent this question previously to the beginners list, but > someone suggested to me privately to send it to this  list. > Regards, > > Pedro Borges > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. From adrian at openwork.nz Sat Feb 18 06:23:27 2023 From: adrian at openwork.nz (Adrian Lyall Cochrane) Date: Sat, 18 Feb 2023 19:23:27 +1300 Subject: [Haskell-cafe] Takeover request: Haskell CSS Syntax In-Reply-To: References: <1676569749.3111.1@smtp.fastmail.com> Message-ID: <1676701407.3110.0@smtp.fastmail.com> Ugh, identical version numbers are confusing Cabal! I'm working in a test VM where Haskell CSS Syntax builds fine. But upon adding a `source-package-repository` section Cabal still (I've tried similar before) refuses to build since Hackage lists tighter dependency bounds upon `base` for `css-syntax`. My other solution would be to vendor the Haskell CSS Syntax code alongside my CSS parser. That'd be a fine solution, but I consider getting a new release on Hackage as a solution I personally consider tidier for myself & others. Adrian Cochrane OpenWork Ltd Lead developer of: libdggs geospatial analysis Rhapsode & Haphaestus web browsers From adrian at openwork.nz Sat Feb 18 06:33:55 2023 From: adrian at openwork.nz (Adrian Lyall Cochrane) Date: Sat, 18 Feb 2023 19:33:55 +1300 Subject: [Haskell-cafe] Takeover request: Haskell CSS Syntax In-Reply-To: <1676701407.3110.0@smtp.fastmail.com> References: <1676569749.3111.1@smtp.fastmail.com> <1676701407.3110.0@smtp.fastmail.com> Message-ID: <1676702035.3110.1@smtp.fastmail.com> I definitely would ask to be listed as co-maintainer & would gladly step aside should wereHamster resume activity. Also I think I'll see how soon this dependency conflict would become a blocking problem as I develop my layout engine. It definitely will soon, but I might be able to hold off a couple weeks. Adrian Cochrane OpenWork Ltd Lead developer of: libdggs geospatial analysis Rhapsode & Haphaestus web browsers On Sat, Feb 18, 2023 at 7:23 PM, Adrian Lyall Cochrane wrote: > Ugh, identical version numbers are confusing Cabal! > > I'm working in a test VM where Haskell CSS Syntax builds fine. But > upon adding a `source-package-repository` section Cabal still (I've > tried similar before) refuses to build since Hackage lists tighter > dependency bounds upon `base` for `css-syntax`. > > My other solution would be to vendor the Haskell CSS Syntax code > alongside my CSS parser. That'd be a fine solution, but I consider > getting a new release on Hackage as a solution I personally consider > tidier for myself & others. > > Adrian Cochrane > OpenWork Ltd > > Lead developer of: > libdggs geospatial analysis > Rhapsode & Haphaestus web browsers From haskellcafe at dandart.co.uk Sat Feb 18 07:22:35 2023 From: haskellcafe at dandart.co.uk (Dan Dart) Date: Sat, 18 Feb 2023 07:22:35 +0000 Subject: [Haskell-cafe] Takeover request: Haskell CSS Syntax In-Reply-To: <1676702035.3110.1@smtp.fastmail.com> References: <1676569749.3111.1@smtp.fastmail.com> <1676701407.3110.0@smtp.fastmail.com> <1676702035.3110.1@smtp.fastmail.com> Message-ID: > Ugh, identical version numbers are confusing Cabal! What I usually do if someone's not ready for my changes is to fork, make my changes and up the version number., then reference my fork in the cabal project file, until the changes are pulled in. I will also make a comment about why, reference the GitHub issue / pull request (or wherever) and then use krank on the project when I enter it, so I can be told when the issue is solved or pull request is merged, if I wasn't already subscribed or forgot about it. Alternatively, Nix allows you to just override a package to use your local version without worrying about version numbers. Cheers From tom-lists-haskell-cafe-2017 at jaguarpaw.co.uk Sat Feb 18 08:54:07 2023 From: tom-lists-haskell-cafe-2017 at jaguarpaw.co.uk (Tom Ellis) Date: Sat, 18 Feb 2023 08:54:07 +0000 Subject: [Haskell-cafe] Takeover request: Haskell CSS Syntax In-Reply-To: <1676701407.3110.0@smtp.fastmail.com> References: <1676569749.3111.1@smtp.fastmail.com> <1676701407.3110.0@smtp.fastmail.com> Message-ID: On Sat, Feb 18, 2023 at 07:23:27PM +1300, Adrian Lyall Cochrane wrote: > Ugh, identical version numbers are confusing Cabal! They shouldn't do. What exact problem are you seeing? From andreas.abel at ifi.lmu.de Mon Feb 20 08:44:47 2023 From: andreas.abel at ifi.lmu.de (Andreas Abel) Date: Mon, 20 Feb 2023 09:44:47 +0100 Subject: [Haskell-cafe] Move on with the takeover of unix-compat [Re: Takeover request: unix-compat] In-Reply-To: <8199a844-708c-9939-63d2-9e872145729e@online.de> References: <8199a844-708c-9939-63d2-9e872145729e@online.de> Message-ID: On 2023-02-15 21:46, Ben Franksen wrote: > Am 05.02.23 um 16:52 schrieb Mitchell Rosen: >> Hi all, I'd like to take over maintenance responsibility for the >> `unix-compat` package. Unfortunately, I've been unable to get in touch >> with >> the maintainer. >> >> I intend to make a release compatible with `unix-2.8`, and will be around >> to make subsequent bounds bumps and whatnot. > > Hi Mitchell, I made some contributions to unix-compat over the years and > found that the current maintainer, while sometimes a bit slow to respond > to PRs, is actually quite responsive when prompted via email. (Just a > data point, not to suggest you haven't tried that.) @Ben, this might have been so in the past, but recent evidence suggests otherwise. - I alerted Jacob of the situation over a month ago by email, here is the log for this: https://github.com/jacobstanley/unix-compat/issues/63#issuecomment-1386676351 - His profile https://github.com/jacobstanley does not even include an email address. I had to hunt down an email address by searching the web for possible matches. Because unix-compat is quite important for the Haskell ecosystem and (is already not maintained by the original authors), I think we should find a solution quickly and move on with the package takeover. It is anyway good if important packages have co-maintainers that can fill the gap should the current maintainer be unavailable for a longer period of time. @Mitchell: I think the waiting time has now passed and you can contact the Hackage admins to add you to the maintainers of unix-compat on Hackage. Cheers, Andreas From ben.franksen at online.de Mon Feb 20 10:10:45 2023 From: ben.franksen at online.de (Ben Franksen) Date: Mon, 20 Feb 2023 11:10:45 +0100 Subject: [Haskell-cafe] Move on with the takeover of unix-compat [Re: Takeover request: unix-compat] In-Reply-To: References: <8199a844-708c-9939-63d2-9e872145729e@online.de> Message-ID: Am 20.02.23 um 09:44 schrieb Andreas Abel: > On 2023-02-15 21:46, Ben Franksen wrote: >> Am 05.02.23 um 16:52 schrieb Mitchell Rosen: >>> Hi all, I'd like to take over maintenance responsibility for the >>> `unix-compat` package. Unfortunately, I've been unable to get in >>> touch with >>> the maintainer. >>> >>> I intend to make a release compatible with `unix-2.8`, and will be >>> around >>> to make subsequent bounds bumps and whatnot. >> >> Hi Mitchell, I made some contributions to unix-compat over the years >> and found that the current maintainer, while sometimes a bit slow to >> respond to PRs, is actually quite responsive when prompted via email. >> (Just a data point, not to suggest you haven't tried that.) > > @Ben, this might have been so in the past, but recent evidence suggests > otherwise. > [...] Fair enough, thanks for the details. > Because unix-compat is quite important for the Haskell ecosystem and (is > already not maintained by the original authors), I think we should find > a solution quickly and move on with the package takeover. FWIW I completely agree. I am happy to see this package properly maintained. Cheers Ben -- I would rather have questions that cannot be answered, than answers that cannot be questioned. -- Richard Feynman From pedroborg at gmail.com Mon Feb 20 14:35:32 2023 From: pedroborg at gmail.com (Pedro B.) Date: Mon, 20 Feb 2023 10:35:32 -0400 Subject: [Haskell-cafe] Attoparsec.ByteString.Char8 or Attoparsec.ByteString for diff output? In-Reply-To: References: Message-ID: El 17/2/2023 a las 2:08 p. m., Viktor Dukhovni escribió: > On Fri, Feb 17, 2023 at 01:32:48PM -0400, Pedro B. wrote: > >> I am developing a program to parse dif output taken from stdin (as in >> diff file1 file2 | myApp) or from a file. I am reading the input as >> ByteString in either case and I am parsing it Attoparsec. My question >> is, Should I use Data.Attoparsec.ByteString.Char8 or >> Data.Attoparsec.ByteString? >> >> So far, I've been using Data.Attoparsec.ByteString.Char8 and it works >> for my sample files, which are in utf8 or, latin1, or the default >> Windows encoding. >> >> What do you suggest? > > Because the underlying ByteString data type is the same: > > Data.ByteString ~ Data.ByteString.Char8 > > you can use either or both sets of combinators as you see fit. The > Char8 combinators match the parsed ByteStrings against Char predicates, > while the base ByteString combinators match against Word8 predicates. > The below is valid: > > import Data.Attoparsec.ByteString as A8 > import Data.Attoparsec.ByteString.Char8 as AC > > ... > > myParser :: ... > myparser ... = do > ... > -- parse a Word8 byte followed by an 8-bit Char > w <- A8.anyWord8 > c <- AC.anyChar > ... > Thanks for your answer, Viktor. I am now using base ByteString by default, and Char8 combinators only when needed, as when I have to use AC.char or AC.string. I was confused when I wanted to parse lines coming from the diffed files using "AC.takeTill AC.isEndOfLine". This does not type-check because AC.takeTill expects a predicate on Char8, but AC.isEndOfLine is a predicate on Word8, even when it is defined in the Char8 module, why? Now I am using A8.takeTill AC.isEndOfLine. I was also worried about the warning in the Char8 about truncated bytes. The output actually generated by diff should not have any problem, but the lines coming from the diffed files could be in any encoding. I assumed that AC.takeTill should not cause problems since it does not examine the ByteString except that for the argument predicate. Anyway now I am using A8.takeTill, as I mentioned. Regards, Pedro Borges From pedroborg at gmail.com Mon Feb 20 14:46:38 2023 From: pedroborg at gmail.com (Pedro B.) Date: Mon, 20 Feb 2023 10:46:38 -0400 Subject: [Haskell-cafe] Attoparsec.ByteString.Char8 or Attoparsec.ByteString for diff output? In-Reply-To: <69069491-cb9f-538c-922a-0697866d0206@gmail.com> References: <69069491-cb9f-538c-922a-0697866d0206@gmail.com> Message-ID: <5f15afcb-4842-0acd-eb17-6aeb2888e077@gMail.com> Thanks Li-yao . As I mentioned in my answer to Viktor, I am now using the ByteString functions except when I want to parse Char8's, for example to parse an 'a' with Data.Attoparsec.ByteString.Char8.char 'a'. Regards, Pedro Borges El 17/2/2023 a las 3:12 p. m., Li-yao Xia escribió: > You should probably use `Data.Attoparsec.ByteString`. Both let you do > the same thing, but `Char8` just uses the wrong type (Chars > ['\0'..'\255'] to represent bytes, i.e. Word8). > > On 2023-02-17 5:32 PM, Pedro B. wrote: >> Dear Listers, >> >> I am developing a program to parse dif output taken from stdin (as in >> diff file1 file2 | myApp) or from a file. I am reading  the input as >> ByteString in either case and I am parsing it Attoparsec. My question >> is, Should I use Data.Attoparsec.ByteString.Char8  or >> Data.Attoparsec.ByteString? >> >> So far, I've been  using Data.Attoparsec.ByteString.Char8  and it >> works for my sample files, which are in utf8 or, latin1, or the >> default Windows encoding. >> >> What do you suggest? >> >> Note: I sent this question previously to the beginners list, but >> someone suggested to me privately to send it to this  list. >> Regards, >> >> Pedro Borges >> _______________________________________________ >> Haskell-Cafe mailing list >> To (un)subscribe, modify options or view archives go to: >> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe >> Only members subscribed via the mailman list are allowed to post. From ietf-dane at dukhovni.org Mon Feb 20 17:43:51 2023 From: ietf-dane at dukhovni.org (Viktor Dukhovni) Date: Mon, 20 Feb 2023 12:43:51 -0500 Subject: [Haskell-cafe] Attoparsec.ByteString.Char8 or Attoparsec.ByteString for diff output? In-Reply-To: <5f15afcb-4842-0acd-eb17-6aeb2888e077@gMail.com> References: <69069491-cb9f-538c-922a-0697866d0206@gmail.com> <5f15afcb-4842-0acd-eb17-6aeb2888e077@gMail.com> Message-ID: On Mon, Feb 20, 2023 at 10:46:38AM -0400, Pedro B. wrote: > Thanks Li-yao . As I mentioned in my answer to Viktor, I am now using > the ByteString functions except when I want to parse Char8's, for > example to parse an 'a' with Data.Attoparsec.ByteString.Char8.char 'a'. FWIW, you can often avoid the Char8 combinators, e.g. for matching a specific 8-bit (ASCII) character, at a modest loss of readability, you can just match its Word8 code point: 0x0a <--- '\n' 0x0d <--- '\r' 0x20 <--- ' ' 0x30 <--- '0' 0x41 <--- 'A' 0x61 <--- 'a' ... I am comfortable with the raw hex values of various "interesting" characters, but you can also define aliases: import Data.Char (ord) char_nl, char_cr, char_sp, char_0, char_A, char_a :: Word8 char_nl = fromIntegral $ ord '\n' char_cr = fromIntegral $ ord '\r' char_sp = fromIntegral $ ord ' ' ... -- Viktor. From pedroborg at gmail.com Mon Feb 20 19:58:10 2023 From: pedroborg at gmail.com (Pedro B.) Date: Mon, 20 Feb 2023 15:58:10 -0400 Subject: [Haskell-cafe] Attoparsec.ByteString.Char8 or Attoparsec.ByteString for diff output? In-Reply-To: References: <69069491-cb9f-538c-922a-0697866d0206@gmail.com> <5f15afcb-4842-0acd-eb17-6aeb2888e077@gMail.com> Message-ID: <9c269126-dc6e-85c0-be18-3cb9780b22e9@gMail.com> El 20/2/2023 a las 1:43 p. m., Viktor Dukhovni escribió: > On Mon, Feb 20, 2023 at 10:46:38AM -0400, Pedro B. wrote: > >> Thanks Li-yao . As I mentioned in my answer to Viktor, I am now using >> the ByteString functions except when I want to parse Char8's, for >> example to parse an 'a' with Data.Attoparsec.ByteString.Char8.char 'a'. > > FWIW, you can often avoid the Char8 combinators, e.g. for matching a > specific 8-bit (ASCII) character, at a modest loss of readability, > you can just match its Word8 code point: > > 0x0a <--- '\n' > 0x0d <--- '\r' > 0x20 <--- ' ' > 0x30 <--- '0' > 0x41 <--- 'A' > 0x61 <--- 'a' > ... > > I am comfortable with the raw hex values of various "interesting" > characters, but you can also define aliases: > > import Data.Char (ord) > > char_nl, char_cr, char_sp, char_0, char_A, char_a :: Word8 > char_nl = fromIntegral $ ord '\n' > char_cr = fromIntegral $ ord '\r' > char_sp = fromIntegral $ ord ' ' > ... > I am using the Data.Word8 module provided by the word8 package, which defines _lf, _tab, _cr, and so on, and even _a.._z, _0.._9, etc. For example, I may use (==_tab) as the argument for Data.Attoparsec.ByteString.takeTill. You made me realize that I can use "word8 _a" instead of "char 'a'" and almost have no need for the Char8 combinators. I'll probably do that and only use "decimal" from Char8 to parse integers, which I need to parse line ranges such as "2,10". I still have a doubt though: given that I only match specific characters generated by diff, do I gain something by not using Char8? Performance, perhaps? Regards, Pedro From ietf-dane at dukhovni.org Mon Feb 20 20:38:55 2023 From: ietf-dane at dukhovni.org (Viktor Dukhovni) Date: Mon, 20 Feb 2023 15:38:55 -0500 Subject: [Haskell-cafe] Attoparsec.ByteString.Char8 or Attoparsec.ByteString for diff output? In-Reply-To: <9c269126-dc6e-85c0-be18-3cb9780b22e9@gMail.com> References: <69069491-cb9f-538c-922a-0697866d0206@gmail.com> <5f15afcb-4842-0acd-eb17-6aeb2888e077@gMail.com> <9c269126-dc6e-85c0-be18-3cb9780b22e9@gMail.com> Message-ID: On Mon, Feb 20, 2023 at 03:58:10PM -0400, Pedro B. wrote: > You made me realize that I can use "word8 _a" instead of "char 'a'" and > almost have no need for the Char8 combinators. I'll probably do that and > only use "decimal" from Char8 to parse integers, which I need to parse > line ranges such as "2,10". That's the sort of thing I was hinting at. > I still have a doubt though: given that I only match specific characters > generated by diff, do I gain something by not using Char8? Performance, > perhaps? In most case performance gains are likely to be marginal at best. The compiler should be able to optimise away most of the possible overhead of Char<->Word8 coversions, but perhaps in some corner cases you might see better performance. Write maintainable code, and only if profiling shows opportunities for meaningful performance gains consider optimisations that might make the code less clear. -- Viktor. From mitchellwrosen at gmail.com Tue Feb 21 05:05:20 2023 From: mitchellwrosen at gmail.com (Mitchell Rosen) Date: Tue, 21 Feb 2023 10:35:20 +0530 Subject: [Haskell-cafe] Move on with the takeover of unix-compat [Re: Takeover request: unix-compat] In-Reply-To: References: <8199a844-708c-9939-63d2-9e872145729e@online.de> Message-ID: Thanks, I've sent an email to the admins. On Mon, Feb 20, 2023, 2:14 PM Andreas Abel wrote: > On 2023-02-15 21:46, Ben Franksen wrote: > > Am 05.02.23 um 16:52 schrieb Mitchell Rosen: > >> Hi all, I'd like to take over maintenance responsibility for the > >> `unix-compat` package. Unfortunately, I've been unable to get in touch > >> with > >> the maintainer. > >> > >> I intend to make a release compatible with `unix-2.8`, and will be > around > >> to make subsequent bounds bumps and whatnot. > > > > Hi Mitchell, I made some contributions to unix-compat over the years and > > found that the current maintainer, while sometimes a bit slow to respond > > to PRs, is actually quite responsive when prompted via email. (Just a > > data point, not to suggest you haven't tried that.) > > @Ben, this might have been so in the past, but recent evidence suggests > otherwise. > > - I alerted Jacob of the situation over a month ago by email, here is > the log for this: > > > > https://github.com/jacobstanley/unix-compat/issues/63#issuecomment-1386676351 > > - His profile https://github.com/jacobstanley does not even include an > email address. I had to hunt down an email address by searching the web > for possible matches. > > Because unix-compat is quite important for the Haskell ecosystem and (is > already not maintained by the original authors), I think we should find > a solution quickly and move on with the package takeover. > > It is anyway good if important packages have co-maintainers that can > fill the gap should the current maintainer be unavailable for a longer > period of time. > > @Mitchell: I think the waiting time has now passed and you can contact > the Hackage admins to add you to the maintainers of unix-compat on Hackage. > > Cheers, > Andreas > -------------- next part -------------- An HTML attachment was scrubbed... URL: From pedroborg at gmail.com Tue Feb 21 15:00:21 2023 From: pedroborg at gmail.com (Pedro B.) Date: Tue, 21 Feb 2023 11:00:21 -0400 Subject: [Haskell-cafe] Attoparsec.ByteString.Char8 or Attoparsec.ByteString for diff output? In-Reply-To: References: <69069491-cb9f-538c-922a-0697866d0206@gmail.com> <5f15afcb-4842-0acd-eb17-6aeb2888e077@gMail.com> <9c269126-dc6e-85c0-be18-3cb9780b22e9@gMail.com> Message-ID: <88400910-6c96-6db6-54a9-9799383bd048@gMail.com> Thanks a lot for your help! Regards, Pedro Borges El 20/2/2023 a las 4:38 p. m., Viktor Dukhovni escribió: > On Mon, Feb 20, 2023 at 03:58:10PM -0400, Pedro B. wrote: > >> You made me realize that I can use "word8 _a" instead of "char 'a'" and >> almost have no need for the Char8 combinators. I'll probably do that and >> only use "decimal" from Char8 to parse integers, which I need to parse >> line ranges such as "2,10". > > That's the sort of thing I was hinting at. > >> I still have a doubt though: given that I only match specific characters >> generated by diff, do I gain something by not using Char8? Performance, >> perhaps? > > In most case performance gains are likely to be marginal at best. The > compiler should be able to optimise away most of the possible overhead > of Char<->Word8 coversions, but perhaps in some corner cases you might > see better performance. Write maintainable code, and only if profiling > shows opportunities for meaningful performance gains consider > optimisations that might make the code less clear. > From djsamperi at gmail.com Tue Feb 21 23:25:57 2023 From: djsamperi at gmail.com (Dominick Samperi) Date: Tue, 21 Feb 2023 18:25:57 -0500 Subject: [Haskell-cafe] Status of ghcup? Message-ID: I watched an interesting YouTube video explaining how to install and use the Haskell extension in VS code, but the information appears to be obsolete, because there is no mention of ghcup, and ghcup is now required, along with a new version of the Haskell extension (the old one is labeled "legacy"). Unfortunately, I could not install ghcup on Windows due to obscure PowerShell security issues, or missing libraries in MSYS. While wrestling with this problem I discovered that Unix tools from Rtools must not be in PATH while working with Stack, probably due to incompatible MSYS versions. But removing Rtools from PATH does not resolve the ghcup installation problems. Any tips on ghcup installation under Windows would be appreciated. Thanks, Dominick -------------- next part -------------- An HTML attachment was scrubbed... URL: From haskellcafe at dandart.co.uk Tue Feb 21 23:37:00 2023 From: haskellcafe at dandart.co.uk (Dan Dart) Date: Tue, 21 Feb 2023 23:37:00 +0000 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: References: Message-ID: Hey Dominick, Apologies if you've tried it or it's not really what you're looking for, but have you given WSL2 a go? It sounds easier to me. Cheers From twilson at csufresno.edu Tue Feb 21 23:59:36 2023 From: twilson at csufresno.edu (Todd Wilson) Date: Tue, 21 Feb 2023 15:59:36 -0800 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: References: Message-ID: Sigh. As a college educator who is trying to use Haskell in as many classes as possible, I am still disheartened by how much effort is required by students to get the toolchain and additional libraries installed and working on their various platforms. I usually have to waste time during the first two or three weeks of class (and this semester it has extended to more than four) with students over this, whereas instead I should be able to send out a link before my class begins and expect that almost all of them will have everything installed on the first day. I know this topic has been discussed here and elsewhere, and that there are efforts underway to improve the situation, but I just want to make a plug again for easy Haskell installation for beginners. Diversity in the ecosystem is great, but for people trying to get started, there should be one simple and surefire way to get up and running, with a clear path later for upgrading the environment in any number of different directions. On Tue, Feb 21, 2023 at 3:26 PM Dominick Samperi wrote: > I watched an interesting YouTube video explaining how to install and use > the Haskell extension in VS code, but the information appears to be > obsolete, because there is no mention of ghcup, and ghcup is now > required, along with a new version of the Haskell extension (the old one > is labeled "legacy"). > > Unfortunately, I could not install ghcup on Windows due to obscure > PowerShell > security issues, or missing libraries in MSYS. While wrestling with this > problem > I discovered that Unix tools from Rtools must not be in PATH while working > with Stack, probably due to incompatible MSYS versions. But removing Rtools > from PATH does not resolve the ghcup installation problems. > > Any tips on ghcup installation under Windows would be appreciated. > > Thanks, > Dominick > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: From migmit at gmail.com Wed Feb 22 01:43:23 2023 From: migmit at gmail.com (Mig Mit) Date: Wed, 22 Feb 2023 02:43:23 +0100 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: References: Message-ID: An HTML attachment was scrubbed... URL: From mariojlhm at gmail.com Wed Feb 22 02:01:06 2023 From: mariojlhm at gmail.com (Mario J. Hesles) Date: Tue, 21 Feb 2023 20:01:06 -0600 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: References: Message-ID: Hi Todd, Perhaps you could set everything up once on a server, create accounts for each of your students, and then just have them ssh into it and do their work remotely? It's not ideal, but it would be better than wasting so much time debugging boring install issues. The adventurous ones can try installing everything themselves. Sincerely, Mario J. Hesles On Tue, Feb 21, 2023 at 6:00 PM Todd Wilson wrote: > Sigh. As a college educator who is trying to use Haskell in as many > classes as possible, I am still disheartened by how much effort is required > by students to get the toolchain and additional libraries installed and > working on their various platforms. I usually have to waste time during the > first two or three weeks of class (and this semester it has extended to > more than four) with students over this, whereas instead I should be able > to send out a link before my class begins and expect that almost all of > them will have everything installed on the first day. I know this topic has > been discussed here and elsewhere, and that there are efforts underway to > improve the situation, but I just want to make a plug again for easy > Haskell installation for beginners. Diversity in the ecosystem is great, > but for people trying to get started, there should be one simple and > surefire way to get up and running, with a clear path later for upgrading > the environment in any number of different directions. > > On Tue, Feb 21, 2023 at 3:26 PM Dominick Samperi > wrote: > >> I watched an interesting YouTube video explaining how to install and use >> the Haskell extension in VS code, but the information appears to be >> obsolete, because there is no mention of ghcup, and ghcup is now >> required, along with a new version of the Haskell extension (the old one >> is labeled "legacy"). >> >> Unfortunately, I could not install ghcup on Windows due to obscure >> PowerShell >> security issues, or missing libraries in MSYS. While wrestling with this >> problem >> I discovered that Unix tools from Rtools must not be in PATH while working >> with Stack, probably due to incompatible MSYS versions. But removing >> Rtools >> from PATH does not resolve the ghcup installation problems. >> >> Any tips on ghcup installation under Windows would be appreciated. >> >> Thanks, >> Dominick >> _______________________________________________ >> Haskell-Cafe mailing list >> To (un)subscribe, modify options or view archives go to: >> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe >> Only members subscribed via the mailman list are allowed to post. > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: From curtis.dalves at gmail.com Wed Feb 22 02:10:17 2023 From: curtis.dalves at gmail.com (Curtis D'Alves) Date: Tue, 21 Feb 2023 21:10:17 -0500 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: References: Message-ID: After many years of dealing with Haskell install nonsense with student after student, I started using replit. They support nix configuration to install any dependencies you need and haskell language server in their browser based IDE Curtis D'Alves On Tue, Feb 21, 2023 at 9:02 PM Mario J. Hesles wrote: > Hi Todd, > > Perhaps you could set everything up once on a server, create accounts for > each of your students, and then just have them ssh into it and do their > work remotely? It's not ideal, but it would be better than wasting so much > time debugging boring install issues. The adventurous ones can try > installing everything themselves. > > Sincerely, > Mario J. Hesles > > > On Tue, Feb 21, 2023 at 6:00 PM Todd Wilson wrote: > >> Sigh. As a college educator who is trying to use Haskell in as many >> classes as possible, I am still disheartened by how much effort is required >> by students to get the toolchain and additional libraries installed and >> working on their various platforms. I usually have to waste time during the >> first two or three weeks of class (and this semester it has extended to >> more than four) with students over this, whereas instead I should be able >> to send out a link before my class begins and expect that almost all of >> them will have everything installed on the first day. I know this topic has >> been discussed here and elsewhere, and that there are efforts underway to >> improve the situation, but I just want to make a plug again for easy >> Haskell installation for beginners. Diversity in the ecosystem is great, >> but for people trying to get started, there should be one simple and >> surefire way to get up and running, with a clear path later for upgrading >> the environment in any number of different directions. >> >> On Tue, Feb 21, 2023 at 3:26 PM Dominick Samperi >> wrote: >> >>> I watched an interesting YouTube video explaining how to install and use >>> the Haskell extension in VS code, but the information appears to be >>> obsolete, because there is no mention of ghcup, and ghcup is now >>> required, along with a new version of the Haskell extension (the old one >>> is labeled "legacy"). >>> >>> Unfortunately, I could not install ghcup on Windows due to obscure >>> PowerShell >>> security issues, or missing libraries in MSYS. While wrestling with this >>> problem >>> I discovered that Unix tools from Rtools must not be in PATH while >>> working >>> with Stack, probably due to incompatible MSYS versions. But removing >>> Rtools >>> from PATH does not resolve the ghcup installation problems. >>> >>> Any tips on ghcup installation under Windows would be appreciated. >>> >>> Thanks, >>> Dominick >>> _______________________________________________ >>> Haskell-Cafe mailing list >>> To (un)subscribe, modify options or view archives go to: >>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe >>> Only members subscribed via the mailman list are allowed to post. >> >> _______________________________________________ >> Haskell-Cafe mailing list >> To (un)subscribe, modify options or view archives go to: >> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe >> Only members subscribed via the mailman list are allowed to post. > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: From twilson at csufresno.edu Wed Feb 22 02:14:59 2023 From: twilson at csufresno.edu (Todd Wilson) Date: Tue, 21 Feb 2023 18:14:59 -0800 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: References: Message-ID: Thanks, Mario, for that suggestion; it brought back memories! That is, in fact, what we used to do in the "old days," before the BYOD craze took over and we gave up our servers. But you're right: it did have its advantages and would be one solution. I remember having scripts for setting up and archiving the accounts each semester, and automated turn-in scripts that would grab student lab submissions from their home directories each week and run test suites on them. I wonder if I still have copies of all those scripts and how much effort it would take to bring all of that back -- not to mention getting a server I could host it on. Having thus just gone down memory lane, however, it still seems that this problem could be solved for everyone simultaneously if we could just get a single "click-to-install" set-up on haskell.org. --Todd On Tue, Feb 21, 2023 at 6:01 PM Mario J. Hesles wrote: > Hi Todd, > > Perhaps you could set everything up once on a server, create accounts for > each of your students, and then just have them ssh into it and do their > work remotely? It's not ideal, but it would be better than wasting so much > time debugging boring install issues. The adventurous ones can try > installing everything themselves. > > Sincerely, > Mario J. Hesles > > > On Tue, Feb 21, 2023 at 6:00 PM Todd Wilson wrote: > >> Sigh. As a college educator who is trying to use Haskell in as many >> classes as possible, I am still disheartened by how much effort is required >> by students to get the toolchain and additional libraries installed and >> working on their various platforms. I usually have to waste time during the >> first two or three weeks of class (and this semester it has extended to >> more than four) with students over this, whereas instead I should be able >> to send out a link before my class begins and expect that almost all of >> them will have everything installed on the first day. I know this topic has >> been discussed here and elsewhere, and that there are efforts underway to >> improve the situation, but I just want to make a plug again for easy >> Haskell installation for beginners. Diversity in the ecosystem is great, >> but for people trying to get started, there should be one simple and >> surefire way to get up and running, with a clear path later for upgrading >> the environment in any number of different directions. >> >> On Tue, Feb 21, 2023 at 3:26 PM Dominick Samperi >> wrote: >> >>> I watched an interesting YouTube video explaining how to install and use >>> the Haskell extension in VS code, but the information appears to be >>> obsolete, because there is no mention of ghcup, and ghcup is now >>> required, along with a new version of the Haskell extension (the old one >>> is labeled "legacy"). >>> >>> Unfortunately, I could not install ghcup on Windows due to obscure >>> PowerShell >>> security issues, or missing libraries in MSYS. While wrestling with this >>> problem >>> I discovered that Unix tools from Rtools must not be in PATH while >>> working >>> with Stack, probably due to incompatible MSYS versions. But removing >>> Rtools >>> from PATH does not resolve the ghcup installation problems. >>> >>> Any tips on ghcup installation under Windows would be appreciated. >>> >>> Thanks, >>> Dominick >>> _______________________________________________ >>> Haskell-Cafe mailing list >>> To (un)subscribe, modify options or view archives go to: >>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe >>> Only members subscribed via the mailman list are allowed to post. >> >> _______________________________________________ >> Haskell-Cafe mailing list >> To (un)subscribe, modify options or view archives go to: >> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe >> Only members subscribed via the mailman list are allowed to post. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From twilson at csufresno.edu Wed Feb 22 02:22:21 2023 From: twilson at csufresno.edu (Todd Wilson) Date: Tue, 21 Feb 2023 18:22:21 -0800 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: References: Message-ID: I tell students about repl.it in case they run into persistent installation issues and need to get an early lab assignment finished by the deadline, but I didn't think it would be easy to scale that to a whole class for the entire semester. I will have to look into it further. How do you find the performance of repl.it compared to native? --Todd On Tue, Feb 21, 2023 at 6:10 PM Curtis D'Alves wrote: > After many years of dealing with Haskell install nonsense with student > after student, I started using replit. They support nix configuration to > install any dependencies you need and haskell language server in their > browser based IDE > -------------- next part -------------- An HTML attachment was scrubbed... URL: From anthony.d.clayden at gmail.com Thu Feb 23 01:31:36 2023 From: anthony.d.clayden at gmail.com (Anthony Clayden) Date: Thu, 23 Feb 2023 14:31:36 +1300 Subject: [Haskell-cafe] Status of ghcup? Message-ID: > Sigh. As a college educator who is trying to use Haskell in as many classes as possible, ... > you better fire up Notepad.exe. ... some decent syntax highlighting, Hi Todd, and Mig, I too feel your pain. And Windows seems to have always been a neglected child in distros -- even when SPJ was actually sponsored by MSoft. If you're only trying to give a flavour of Haskell for (say) a few weeks intro, I don't see that you even need all the drama of ghcup. Perhaps just ignore what it says on the GHC download pages, and grab the compiler plus minimal libraries. Then you can either defer a 'proper' install until students are motivated enough to go through the pain; or don't bother/they've gone on to other subjects. I agree syntax highlighting is very helpful for newbies: I use NotePad++ for editing and not even VSCode for compiling, but GHCi. I suspect these fully integrated dev environments are quite confusing for newbies. (Unless they've already experienced them with other languages.) Hard for me to be sure: they simply weren't a thing when I learned Haskell. These days I have installed VSCode; I seldom use it (just way too much clutter around the screen). AntC -------------- next part -------------- An HTML attachment was scrubbed... URL: From bryan at haskell.foundation Thu Feb 23 08:32:43 2023 From: bryan at haskell.foundation (Bryan Richter) Date: Thu, 23 Feb 2023 10:32:43 +0200 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: References: Message-ID: Au contraire! GHCUp is the state of the art of installing GHC on any platform. If anyone has trouble with GHCUp, that's a problem for all of us. Besides, GHCUp merely uses the GHC bindists under the hood, so if GHCUp doesn't work because of msys shenanigans, I expect similar pain for GHC itself. Evidence to the contrary would be quite interesting! These days, newcomers absolutely deserve to have a single tool manage their toolchain, and I shudder to think of the mess new programmers will get in by randomly `make install`ing stuff into standard directories, when they have no concept of "standard directories" in the first place. I'm also curious about repl.it and similar solutions. Anyway, to get back to the original question, please do open issues on https://github.com/haskell/ghcup-hs/issues when problems arise. Haskell needs more people with Windows experience to get involved, even just as reporters. On Thu, 23 Feb 2023 at 03:32, Anthony Clayden wrote: > > Sigh. As a college educator who is trying to use Haskell in as many > classes as possible, ... > > > you better fire up Notepad.exe. ... some decent syntax highlighting, > > Hi Todd, and Mig, I too feel your pain. And Windows seems to have always > been a neglected child in distros -- even when SPJ was actually sponsored > by MSoft. > > If you're only trying to give a flavour of Haskell for (say) a few weeks > intro, I don't see that you even need all the drama of ghcup. > > Perhaps just ignore what it says on the GHC download pages, and grab the > compiler plus minimal libraries. Then you can either defer a 'proper' > install until students are motivated enough to go through the pain; or > don't bother/they've gone on to other subjects. > > I agree syntax highlighting is very helpful for newbies: I use NotePad++ > for editing and not even VSCode for compiling, but GHCi. > > I suspect these fully integrated dev environments are quite confusing for > newbies. (Unless they've already experienced them with other languages.) > Hard for me to be sure: they simply weren't a thing when I learned Haskell. > These days I have installed VSCode; I seldom use it (just way too much > clutter around the screen). > > > AntC > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: From haskellcafe at dandart.co.uk Thu Feb 23 09:23:26 2023 From: haskellcafe at dandart.co.uk (Dan Dart) Date: Thu, 23 Feb 2023 09:23:26 +0000 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: References: Message-ID: There I was thinking that students use Linux almost exclusively for its TeX to write papers in... From alexis.praga at proton.me Thu Feb 23 09:32:43 2023 From: alexis.praga at proton.me (Alexis Praga) Date: Thu, 23 Feb 2023 09:32:43 +0000 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: References: Message-ID: Hi, Being on Windows being a firewall at work, I cannot use ghcup (a custom SSL certificate is needed). I settled to stack through scoop : scoop install haskell stack Alexis ------- Original Message ------- On Thursday, February 23rd, 2023 at 10:23 AM, Dan Dart wrote: > > > There I was thinking that students use Linux almost exclusively for > its TeX to write papers in... > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. From hecate at glitchbra.in Thu Feb 23 10:29:18 2023 From: hecate at glitchbra.in (=?UTF-8?Q?H=c3=a9cate?=) Date: Thu, 23 Feb 2023 11:29:18 +0100 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: References: Message-ID: Thankfully you can either disable the cURL check for TLS certificate or just install manually: https://www.haskell.org/ghcup/install/#manual-installation Cheers, Hécate On 23/02/2023 10:32, Alexis Praga via Haskell-Cafe wrote: > Hi, > > Being on Windows being a firewall at work, I cannot use ghcup (a custom SSL certificate is needed). > > I settled to stack through scoop : > scoop install haskell stack > > Alexis > > > > ------- Original Message ------- > On Thursday, February 23rd, 2023 at 10:23 AM, Dan Dart wrote: > > >> >> There I was thinking that students use Linux almost exclusively for >> its TeX to write papers in... >> _______________________________________________ >> Haskell-Cafe mailing list >> To (un)subscribe, modify options or view archives go to: >> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe >> Only members subscribed via the mailman list are allowed to post. > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -- Hécate ✨ 🐦: @TechnoEmpress IRC: Hecate WWW: https://glitchbra.in RUN: BSD From bryan at haskell.foundation Thu Feb 23 10:37:11 2023 From: bryan at haskell.foundation (Bryan Richter) Date: Thu, 23 Feb 2023 12:37:11 +0200 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: References: Message-ID: Hi Alexis, > Being on Windows being a firewall at work, I cannot use ghcup (a custom SSL certificate is needed). Is this something ghcup could fix? I think I don't quite understand the problem yet. Are you saying ghcup needs a custom SSL cert, or your corporate network does? How does scoop work, I wonder? On Thu, 23 Feb 2023 at 12:30, Hécate wrote: > Thankfully you can either disable the cURL check for TLS certificate or > just install manually: > > https://www.haskell.org/ghcup/install/#manual-installation > > Cheers, > Hécate > > On 23/02/2023 10:32, Alexis Praga via Haskell-Cafe wrote: > > Hi, > > > > Being on Windows being a firewall at work, I cannot use ghcup (a custom > SSL certificate is needed). > > > > I settled to stack through scoop : > > scoop install haskell stack > > > > Alexis > > > > > > > > ------- Original Message ------- > > On Thursday, February 23rd, 2023 at 10:23 AM, Dan Dart < > haskellcafe at dandart.co.uk> wrote: > > > > > >> > >> There I was thinking that students use Linux almost exclusively for > >> its TeX to write papers in... > >> _______________________________________________ > >> Haskell-Cafe mailing list > >> To (un)subscribe, modify options or view archives go to: > >> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > >> Only members subscribed via the mailman list are allowed to post. > > _______________________________________________ > > Haskell-Cafe mailing list > > To (un)subscribe, modify options or view archives go to: > > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > > Only members subscribed via the mailman list are allowed to post. > > -- > Hécate ✨ > 🐦: @TechnoEmpress > IRC: Hecate > WWW: https://glitchbra.in > RUN: BSD > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: From hecate at glitchbra.in Thu Feb 23 10:40:21 2023 From: hecate at glitchbra.in (=?UTF-8?Q?H=c3=a9cate?=) Date: Thu, 23 Feb 2023 11:40:21 +0100 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: References: Message-ID: <132e14c2-7eec-f439-fa55-60cffdaeaf8c@glitchbra.in> And I of course forgot the most relevant part for you: https://www.haskell.org/ghcup/guide/#certificate-authority-errors-curl Hope this can help! Cheers, Hécate On 23/02/2023 11:29, Hécate wrote: > Thankfully you can either disable the cURL check for TLS certificate > or just install manually: > > https://www.haskell.org/ghcup/install/#manual-installation > > Cheers, > Hécate > > On 23/02/2023 10:32, Alexis Praga via Haskell-Cafe wrote: >> Hi, >> >> Being on Windows being a firewall at work, I cannot use ghcup (a >> custom SSL certificate is needed). >> >> I settled to stack through scoop : >> scoop install haskell stack >> >> Alexis >> >> >> >> ------- Original Message ------- >> On Thursday, February 23rd, 2023 at 10:23 AM, Dan Dart >> wrote: >> >> >>> >>> There I was thinking that students use Linux almost exclusively for >>> its TeX to write papers in... >>> _______________________________________________ >>> Haskell-Cafe mailing list >>> To (un)subscribe, modify options or view archives go to: >>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe >>> Only members subscribed via the mailman list are allowed to post. >> _______________________________________________ >> Haskell-Cafe mailing list >> To (un)subscribe, modify options or view archives go to: >> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe >> Only members subscribed via the mailman list are allowed to post. > -- Hécate ✨ 🐦: @TechnoEmpress IRC: Hecate WWW: https://glitchbra.in RUN: BSD From alexis.praga at proton.me Thu Feb 23 10:57:52 2023 From: alexis.praga at proton.me (Alexis Praga) Date: Thu, 23 Feb 2023 10:57:52 +0000 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: <132e14c2-7eec-f439-fa55-60cffdaeaf8c@glitchbra.in> References: <132e14c2-7eec-f439-fa55-60cffdaeaf8c@glitchbra.in> Message-ID: <4NmVpvlnwsCJjCG0f__KAcrspOTVBOvIWcEB_MYNH07QsgtXaSBOxxRIHnIgXWWrmAUEcWTi4IfbpqrRBkpiMCXGl4nyte10Zl_gBmdEu08=@proton.me> Thanks. For my use case, the Powershell command below fails to download mysys2 dependncies due to issues with "self-signed certificates". This is why I used scoop in the end. Just my two cents. Alexis ------- Original Message ------- On Thursday, February 23rd, 2023 at 11:40 AM, Hécate wrote: > > > And I of course forgot the most relevant part for you: > https://www.haskell.org/ghcup/guide/#certificate-authority-errors-curl > > Hope this can help! > > Cheers, > Hécate > > On 23/02/2023 11:29, Hécate wrote: > > > Thankfully you can either disable the cURL check for TLS certificate > > or just install manually: > > > > https://www.haskell.org/ghcup/install/#manual-installation > > > > Cheers, > > Hécate > > > > On 23/02/2023 10:32, Alexis Praga via Haskell-Cafe wrote: > > > > > Hi, > > > > > > Being on Windows being a firewall at work, I cannot use ghcup (a > > > custom SSL certificate is needed). > > > > > > I settled to stack through scoop : > > > scoop install haskell stack > > > > > > Alexis > > > > > > ------- Original Message ------- > > > On Thursday, February 23rd, 2023 at 10:23 AM, Dan Dart > > > haskellcafe at dandart.co.uk wrote: > > > > > > > There I was thinking that students use Linux almost exclusively for > > > > its TeX to write papers in... > > > > _______________________________________________ > > > > Haskell-Cafe mailing list > > > > To (un)subscribe, modify options or view archives go to: > > > > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > > > > Only members subscribed via the mailman list are allowed to post. > > > > _______________________________________________ > > > > Haskell-Cafe mailing list > > > > To (un)subscribe, modify options or view archives go to: > > > > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > > > > Only members subscribed via the mailman list are allowed to post. > > -- > Hécate ✨ > 🐦: @TechnoEmpress > IRC: Hecate > WWW: https://glitchbra.in > RUN: BSD > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. From virginia.niculescu at ubbcluj.ro Thu Feb 23 14:44:15 2023 From: virginia.niculescu at ubbcluj.ro (VIRGINIA NICULESCU) Date: Thu, 23 Feb 2023 14:44:15 +0000 Subject: [Haskell-cafe] =?cp1250?q?CfP_-_HLPP=272023=A0High-Level_Parallel?= =?cp1250?q?_Programming_and_Applications?= In-Reply-To: References: Message-ID: [Apologies if you receive multiple copies of this CFP] CALL FOR PAPERS >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> HLPP 2023 16th International Symposium on International Symposium on High-Level Parallel Programming and Applications Cluj-Napoca, Romania June 29-30, 2023 https://www.cs.ubbcluj.ro/hlpp2023 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Important Dates * Abstract submission: April 3, 2023 * Paper submission: April 7, 2023 * Notification: May 15, 2023 * Draft proceedings version: June 9, 2023 * Conference: June 29-30, 2023 * Journal paper submission: September 2023 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Aims and Scope As processor and system manufacturers adjust their roadmaps towards increasing levels of both inter and intra-chip parallelism, so the urgency of reorienting the mainstream software industry towards these architectures grows. At present, popular parallel and distributed programming methodologies are dominated by low-level techniques such as send/receive message passing, or equivalently unstructured shared memory mechanisms. Higher-level, structured approaches offer many possible advantages and have a key role to play in the scalable exploitation of ubiquitous parallelism. HLPP symposia provide a forum for discussion and research about such high-level approaches to parallel and distributed programming. Topics HLPP 2023 invites papers on all topics in high-level parallel programming, its tools and applications including, but not limited to, the following aspects: * High-level parallel programming and performance models (e.g. BSP, CGM, LogP, MPM, etc.) and tools * Declarative parallel and distributed programming methodologies based on functional, logical, data-flow, actor, and other paradigms * Algorithmic skeletons, patterns, etc. and constructive methods * High-level parallelism in programming languages and libraries (e.g, OCaml, Haskell, Scala, C++, etc.): semantics and implementation * Verification of declarative parallel and distributed programs * Efficient code generation, auto-tuning, and optimization for parallel and distributed programs * Model-driven software engineering for parallel and distributed systems * Domain-specific languages: design, implementation, and applications * High-level programming models for heterogeneous/hierarchical platforms with accelerators, e.g., GPU, Many-core, DSP, VPU, FPGA, etc. * High-level parallel methods for large structured and semi-structured datasets * Applications of parallel and distributed systems using high-level languages and tools * Teaching experience with high-level tools and methods for parallel and distributed computing Past HLPP Symposia: https://hlpp.eu Submission Papers submitted to HLPP 2023 must describe original research results and must not have been published or simultaneously submitted anywhere else. As it is traditional for HLPP symposia, the accepted papers will be distributed at the symposium in draft proceedings, and then the papers will be published in the special issue of an international journal (the name of the journal is to be confirmed). In the past years, the journals were the International Journal of Parallel Programming and The Journal of Supercomputing. Each paper will receive a minimum of three reviews by members of the international technical program committee. Papers will be selected based on their originality, relevance, technical clarity, and quality of presentation. Manuscripts must be prepared with the Springer IJSS latex macro package using the single column option (\documentclass[smallextended]{svjour3}) and submitted via the EasyChair Conference Management System as one pdf file. The strict page limit for initial submission and camera-ready version is 20 pages in the aforementioned format. At least one author of each accepted paper must register for the HLPP 2023 symposium and present the paper. After the symposium the authors of the papers will have ample time to revise their papers and to incorporate both reviewer feedback and presentation feedback from the whole audience during the symposium. Organization * Virginia Niculescu, “Babeş-Bolyai” University of Cluj-Napoca, Romania * Adrian Sterca, “Babeş-Bolyai” University of Cluj-Napoca, Romania * Darius Bufnea, “Babeş-Bolyai” University of Cluj-Napoca, Romania Steering Committee * Gaétan Hains (Université Paris-Est Créteil, France) * Clemens Grelck (Universiteit van Amsterdam, Netherlands) * Kiminori Matsuzaki (Kochi University of Technology, Japan) * Christoph W. Kessler (Linköping University, Sweden) * Herbert Kuchen (University of Münster, Germany) * Marco Danelutto (University of Pisa, Italy) * Ines Dutra (University of Porto, Portugal) * Arturo Gonzalez-Escribano (Universidad de Valladolid, Spain) * Frédéric Dabrowski, Université d'Orléans, France) * Virginia Niculescu (“Babes-Bolyai” University, Romania) We are looking forward to your submissions and to seeing you in Cluj-Napoca, Romania in June 2022. Best regards, Virginia Niculescu ---------------------------------------------- Dr. Virginia Niculescu Faculty of Mathematics and Computer Science "Babes-Bolyai" University E-mail: virginia.niculescu at ubbcluj.ro, vniculescu at cs.ubbcluj.ro Web: http://www.cs.ubbcluj.ro/~vniculescu DISCLAIMER Prezentul mesaj ?i orice documente ata?ate pot con?ine informa?ii confiden?iale sau sensibile care apar?in Universită?ii Babe?-Bolyai din Cluj-Napoca. Con?inutul mesajului nu poate fi dezvăluit sau utilizat de către altcineva decât destinatarul, persoană fizică sau juridică. Dacă a?i primit acest mesaj dintr-o eroare, vă rugăm să ne anun?ati imediat, ca răspuns la mesajul de fa?ă, ?i să ?terge?i apoi din sistemul dvs. mesajul fără a-l copia sau deschide. Prin prezenta vi se notifică faptul că orice dezvaluire, copiere, distribuire sau ini?ierea/omiterea unor ac?iuni pe baza prezentelor informa?ii sunt strict interzise ?i atrag răspunderea civilă ?i/sau penală (art. 302 Noul Cod Penal). UBB nu este răspunzătoare pentru modificările care pot fi aduse prezentului mesaj ?i nici pentru întârzierile care pot surveni în recep?ionarea acestuia. De asemenea, nu putem garanta integritatea mesajului ?i nici că acesta este lipsit de viru?i, interceptări sau interferen?e de orice natură. ================= The contents of this email message and any attachments may contain confidential and/or privileged information belonging to Babe?-Bolyai University of Cluj-Napoca. This information is intended solely for the addressee, natural or legal person, and is legally protected from disclosure and may not be used by anyone other than the intended recipient. If you are not the intended recipient of this message, or if this message has been addressed to you in error, please immediately alert the sender by reply email and then delete this message and any attachments. You are hereby notified that any use, dissemination, copying, or storage of this message or its attachments as well as taking any action in reliance on the contents of this information is strictly prohibited and entails civil and/or criminal liability (under Art. 302 of the New Criminal Code). UBB accepts no liability for any errors or omissions in the contents of this message. Email transmission cannot be guaranteed to be secure or error-free, as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. UBBCLUJ -------------- next part -------------- An HTML attachment was scrubbed... URL: From bryan at haskell.foundation Thu Feb 23 15:22:21 2023 From: bryan at haskell.foundation (Bryan Richter) Date: Thu, 23 Feb 2023 17:22:21 +0200 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: <4NmVpvlnwsCJjCG0f__KAcrspOTVBOvIWcEB_MYNH07QsgtXaSBOxxRIHnIgXWWrmAUEcWTi4IfbpqrRBkpiMCXGl4nyte10Zl_gBmdEu08=@proton.me> References: <132e14c2-7eec-f439-fa55-60cffdaeaf8c@glitchbra.in> <4NmVpvlnwsCJjCG0f__KAcrspOTVBOvIWcEB_MYNH07QsgtXaSBOxxRIHnIgXWWrmAUEcWTi4IfbpqrRBkpiMCXGl4nyte10Zl_gBmdEu08=@proton.me> Message-ID: Sigh, I guess since the GHCUp docs have to explicitly call out this situation, it's not unusual. I've also heard rumours in the past that corporate networks can have an.. incomplete? set of root certificates? Does anyone know what the root cause is here? It would be nice if GHCUp just worked. On Thu, 23 Feb 2023 at 12:58, Alexis Praga via Haskell-Cafe < haskell-cafe at haskell.org> wrote: > Thanks. For my use case, the Powershell command below fails to download > mysys2 dependncies due to issues with "self-signed certificates". > This is why I used scoop in the end. > > Just my two cents. > > Alexis > > > > > ------- Original Message ------- > On Thursday, February 23rd, 2023 at 11:40 AM, Hécate > wrote: > > > > > > > > And I of course forgot the most relevant part for you: > > https://www.haskell.org/ghcup/guide/#certificate-authority-errors-curl > > > > Hope this can help! > > > > Cheers, > > Hécate > > > > On 23/02/2023 11:29, Hécate wrote: > > > > > Thankfully you can either disable the cURL check for TLS certificate > > > or just install manually: > > > > > > https://www.haskell.org/ghcup/install/#manual-installation > > > > > > Cheers, > > > Hécate > > > > > > On 23/02/2023 10:32, Alexis Praga via Haskell-Cafe wrote: > > > > > > > Hi, > > > > > > > > Being on Windows being a firewall at work, I cannot use ghcup (a > > > > custom SSL certificate is needed). > > > > > > > > I settled to stack through scoop : > > > > scoop install haskell stack > > > > > > > > Alexis > > > > > > > > ------- Original Message ------- > > > > On Thursday, February 23rd, 2023 at 10:23 AM, Dan Dart > > > > haskellcafe at dandart.co.uk wrote: > > > > > > > > > There I was thinking that students use Linux almost exclusively for > > > > > its TeX to write papers in... > > > > > _______________________________________________ > > > > > Haskell-Cafe mailing list > > > > > To (un)subscribe, modify options or view archives go to: > > > > > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > > > > > Only members subscribed via the mailman list are allowed to post. > > > > > _______________________________________________ > > > > > Haskell-Cafe mailing list > > > > > To (un)subscribe, modify options or view archives go to: > > > > > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > > > > > Only members subscribed via the mailman list are allowed to post. > > > > -- > > Hécate ✨ > > 🐦: @TechnoEmpress > > IRC: Hecate > > WWW: https://glitchbra.in > > RUN: BSD > > > > _______________________________________________ > > Haskell-Cafe mailing list > > To (un)subscribe, modify options or view archives go to: > > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > > Only members subscribed via the mailman list are allowed to post. > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: From djsamperi at gmail.com Thu Feb 23 17:29:48 2023 From: djsamperi at gmail.com (Dominick Samperi) Date: Thu, 23 Feb 2023 12:29:48 -0500 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: References: Message-ID: <9A831895-90B6-407E-BAFC-DC730117F899@gmail.com> An HTML attachment was scrubbed... URL: From ietf-dane at dukhovni.org Thu Feb 23 17:48:29 2023 From: ietf-dane at dukhovni.org (Viktor Dukhovni) Date: Thu, 23 Feb 2023 12:48:29 -0500 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: <132e14c2-7eec-f439-fa55-60cffdaeaf8c@glitchbra.in> References: <132e14c2-7eec-f439-fa55-60cffdaeaf8c@glitchbra.in> Message-ID: On Thu, Feb 23, 2023 at 11:40:21AM +0100, Hécate wrote: > And I of course forgot the most relevant part for you: > https://www.haskell.org/ghcup/guide/#certificate-authority-errors-curl Why not publish the relevant issuer certificate chain, it could even be curated and regularly updated as ghcup "updates". The curl executable has a "--cacert" option allowing the specification of an alternative trust anchor (root CA if you prefer) and any missing intermediate certificates. It also supports a "CURL_CA_BUNDLE" environment variable, if that's simpler. An explicit (securely obtained) trust anchor is safer than ignoring download source authentication. -- Viktor. From allbery.b at gmail.com Thu Feb 23 17:50:40 2023 From: allbery.b at gmail.com (Brandon Allbery) Date: Thu, 23 Feb 2023 12:50:40 -0500 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: References: <132e14c2-7eec-f439-fa55-60cffdaeaf8c@glitchbra.in> Message-ID: You're all missing the possibility that the corporate gateway requires a specific certificate so it can inspect traffic (anyone remember https://arstechnica.com/information-technology/2015/02/lenovo-pcs-ship-with-man-in-the-middle-adware-that-breaks-https-connections/)? On Thu, Feb 23, 2023 at 12:48 PM Viktor Dukhovni wrote: > > On Thu, Feb 23, 2023 at 11:40:21AM +0100, Hécate wrote: > > > And I of course forgot the most relevant part for you: > > https://www.haskell.org/ghcup/guide/#certificate-authority-errors-curl > > Why not publish the relevant issuer certificate chain, it could even be > curated and regularly updated as ghcup "updates". The curl executable > has a "--cacert" option allowing the specification of an alternative > trust anchor (root CA if you prefer) and any missing intermediate > certificates. > > It also supports a "CURL_CA_BUNDLE" environment variable, if that's > simpler. > > An explicit (securely obtained) trust anchor is safer than ignoring > download source authentication. > > -- > Viktor. > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -- brandon s allbery kf8nh allbery.b at gmail.com From ietf-dane at dukhovni.org Thu Feb 23 17:53:09 2023 From: ietf-dane at dukhovni.org (Viktor Dukhovni) Date: Thu, 23 Feb 2023 12:53:09 -0500 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: References: <132e14c2-7eec-f439-fa55-60cffdaeaf8c@glitchbra.in> Message-ID: On Thu, Feb 23, 2023 at 12:50:40PM -0500, Brandon Allbery wrote: > You're all missing the possibility that the corporate gateway requires > a specific certificate so it can inspect traffic (anyone remember > https://arstechnica.com/information-technology/2015/02/lenovo-pcs-ship-with-man-in-the-middle-adware-that-breaks-https-connections/)? In which case, *that* certificate can be configured as trusted by curl, of course it that case it can't be provided by the ghcup team, and needs to obtained locally by the user. -- Viktor. From alexis.praga at proton.me Thu Feb 23 17:59:45 2023 From: alexis.praga at proton.me (Alexis Praga) Date: Thu, 23 Feb 2023 17:59:45 +0000 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: References: <132e14c2-7eec-f439-fa55-60cffdaeaf8c@glitchbra.in> Message-ID: I do have such a certificate. Do you have any pointer on how to configure curl to use, especially on windows and for ghcup ? ------- Original Message ------- On Thursday, February 23rd, 2023 at 6:53 PM, Viktor Dukhovni wrote: > > > On Thu, Feb 23, 2023 at 12:50:40PM -0500, Brandon Allbery wrote: > > > You're all missing the possibility that the corporate gateway requires > > a specific certificate so it can inspect traffic (anyone remember > > https://arstechnica.com/information-technology/2015/02/lenovo-pcs-ship-with-man-in-the-middle-adware-that-breaks-https-connections/)? > > > In which case, that certificate can be configured as trusted by curl, > of course it that case it can't be provided by the ghcup team, and needs > to obtained locally by the user. > > -- > Viktor. > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. From jgbm at acm.org Thu Feb 23 18:35:15 2023 From: jgbm at acm.org (J. Garrett Morris) Date: Thu, 23 Feb 2023 12:35:15 -0600 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: References: Message-ID: My approach to this problem has been to rely on virtualization, via VS Code's remoting extension. So students install VS Code and then either: * Install Haskell locally * Install Docker; VS Code will handle launching the VM and such * And the past semesters, purely online via GitHub Codespaces. In my recent big classes, students have been evenly divided between using Haskell locally or installing Docker. This hasn't completely eliminated configuration issues, but it's minimized them; I'm hoping that moving towards Codespaces will better support those students. For smaller classes, GitHub's educational allowance should be sufficient even if all your students are using CodeSpaces. If you prefer (or are required) to do things locally, there's an alternative via Gitpod and Gitlab. /g On Tue, Feb 21, 2023 at 8:23 PM Todd Wilson wrote: > I tell students about repl.it in case they run into > persistent installation issues and need to get an early lab assignment > finished by the deadline, but I didn't think it would be easy to scale that > to a whole class for the entire semester. I will have to look into it > further. How do you find the performance of repl.it compared to native? > > --Todd > > On Tue, Feb 21, 2023 at 6:10 PM Curtis D'Alves > wrote: > >> After many years of dealing with Haskell install nonsense with student >> after student, I started using replit. They support nix configuration to >> install any dependencies you need and haskell language server in their >> browser based IDE >> > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -- Prosperum ac felix scelus virtus vocatur -- Seneca -------------- next part -------------- An HTML attachment was scrubbed... URL: From branimir.maksimovic at gmail.com Thu Feb 23 18:52:30 2023 From: branimir.maksimovic at gmail.com (Branimir Maksimovic) Date: Thu, 23 Feb 2023 19:52:30 +0100 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: References: Message-ID: Firewall or transparent proxy to spy on you? Certificates are invented to prevent man the middle attacks.. Greete, Branimir. > On 23. 2. 2023., at 10:32, Alexis Praga via Haskell-Cafe wrote: > > Hi, > > Being on Windows being a firewall at work, I cannot use ghcup (a custom SSL certificate is needed). > > I settled to stack through scoop : > scoop install haskell stack > > Alexis > > > > ------- Original Message ------- > On Thursday, February 23rd, 2023 at 10:23 AM, Dan Dart wrote: > > >> >> >> There I was thinking that students use Linux almost exclusively for >> its TeX to write papers in... >> _______________________________________________ >> Haskell-Cafe mailing list >> To (un)subscribe, modify options or view archives go to: >> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe >> Only members subscribed via the mailman list are allowed to post. > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. From kari.pahula at ksfmedia.fi Fri Feb 24 12:16:54 2023 From: kari.pahula at ksfmedia.fi (Kari Pahula) Date: Fri, 24 Feb 2023 14:16:54 +0200 Subject: [Haskell-cafe] KSF Media Ab hiring Senior Developer in Helsinki, Finland (repost) Message-ID: This was posted already once in November: https://mail.haskell.org/pipermail/haskell-cafe/2022-November/135687.html We got a second open position. KSF Media is Finland’s largest Swedish language news media group. Our products include Hufvudstadsbladet, Västra Nyland, Östnyland and HBL Junior. KSF Media’s digital products are growing fast and our focus is in digital subscription sales and product development. We are now looking for a new member to join our digital development team to create outstanding news media products for our readers. We are a small but capable team with a lean way of working and passion to learn new things every day. Our way of working • Kanban • Pair Programming, Code Reviews • Git, CI/CD (multiple deployments a day), Trunk Based Development • Working in the open. Our whole frontend is open source: https://github.com/KSF-Media/affresco and https://github.com/KSF-Media/mosaico Our stack • Most new developments happen in Haskell, PureScript and Javascript • Cloud Infrastructure as Code (Google Cloud, Kubernetes, Terraform) • Microservices environment with REST APIs What we expect from you is some relevant work experience and • English language. Swedish or Finnish knowledge is a plus • Knowledge of the principles behind the modern Web stack: things like MVC, Relational Databases and Testing • High motivation, self-steering, willingness to learn and dive into things, good social skills and good sense of humour • Interest in functional programming, news media and making the world a better place • Awareness of some UX principles, API design (and optionally UI design) and empathy for the users of your code • This job opportunity requires the successful candidate to relocate to Finland and offers a hybrid work arrangement, combining remote work and on-site presence. What we can offer • Competitive salary and benefits • The best co-workers • Office in the most central location in Helsinki • Flexible terms, with possibility to remote working Interested? Please apply via LinkedIn or drop a line at antti.haarala at ksfmedia.fi no later than on the 10th of March. From leah at vuxu.org Sat Feb 25 15:07:01 2023 From: leah at vuxu.org (Leah Neukirchen) Date: Sat, 25 Feb 2023 16:07:01 +0100 Subject: [Haskell-cafe] Munich Haskell Meeting, 2023-02-28 @ 19:30 Message-ID: <87leklss16.fsf@vuxu.org> Dear all, Next week, our monthly Munich Haskell Meeting will take place again on Tuesday, February 28 at Cafe Puck at 19h30. For details see here: http://muenchen.haskell.bayern/dates.html If you plan to join, please add yourself to this nuudel so we can reserve enough seats! It is OK to add yourself to the dudle anonymously or pseudonymously. https://nuudel.digitalcourage.de/1HlsYFhVtoBdDSSM Everybody is welcome! cu, -- Leah Neukirchen https://leahneukirchen.org/ From ivanperezdominguez at gmail.com Sat Feb 25 17:34:01 2023 From: ivanperezdominguez at gmail.com (Ivan Perez) Date: Sat, 25 Feb 2023 09:34:01 -0800 Subject: [Haskell-cafe] [ANN] NASA's Ogma 1.0.7 Message-ID: Hi everyone! I'm really excited to announce the release of Ogma 1.0.7! Ogma is a NASA tool that facilitates integrating runtime monitors or runtime verification applications into other systems. Ogma extends Copilot [1], a high-level runtime verification framework that generates hard real-time code. In spite of the small increase in the version number, the feature included in this version is big: we now generate monitors for Robot Operating System (ROS 2) applications. Use cases supported by Ogma also include generating monitors directly from requirements specified using a structure natural language framework, and producing NASA Core Flight System (cFS) monitoring applications. For more details, including videos of monitors being generated and flown in simulators, see: https://github.com/nasa/ogma * Releases Ogma is released as a collection of packages in Hackage. The entry point is https://hackage.haskell.org/package/ogma-cli. * Code The github repo is located at: https://github.com/nasa/ogma. * What's coming The next release is planned for March 21st, 2023. Ogma is currently undergoing the qualification process necessary for NASA Class D Software. Apart from the changes required by that process, we also have the following in our roadmap: - Extend ROS 2 monitors with further information about sources of violations. - Add tests to generated code. - Simplify NASA cFS monitor generation process. Happy Haskelling! Ivan [1] https://github.com/Copilot-Language/copilot/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From leah at vuxu.org Mon Feb 27 10:10:57 2023 From: leah at vuxu.org (Leah Neukirchen) Date: Mon, 27 Feb 2023 11:10:57 +0100 Subject: [Haskell-cafe] Munich Haskell Meeting, 2023-02-28 @ 19:30 In-Reply-To: <87leklss16.fsf@vuxu.org> References: <87leklss16.fsf@vuxu.org> Message-ID: On Sat, Feb 25, 2023 at 4:07 PM Leah Neukirchen wrote: > > Dear all, > > Next week, our monthly Munich Haskell Meeting will take place again on > Tuesday, February 28 at Cafe Puck at 19h30. For details see here: There's a mistake in the announcement: the meeting takes place at *Augustiner-Gaststätte Rumpler* as stated on the website and the nuudel. See you there, -- Leah Neukirchen https://leahneukirchen.org/ From zubin at well-typed.com Mon Feb 27 14:37:11 2023 From: zubin at well-typed.com (Zubin Duggal) Date: Mon, 27 Feb 2023 20:07:11 +0530 Subject: [Haskell-cafe] [Haskell] [ANNOUNCE] GHC 9.2.7 released Message-ID: <20230227143711.asabyw5v2435wqcb@zubin-pc.sungrazer-frog.ts.net> The GHC developers are happy to announce the availability of GHC 9.2.7. Binary distributions, source distributions, and documentation are available at [downloads.haskell.org](https://downloads.haskell.org/ghc/9.2.7). Download Page: https://www.haskell.org/ghc/download_ghc_9_2_7.html Blog Post: https://www.haskell.org/ghc/blog/20230227-ghc-9.2.7-released.html This release is primarily a bugfix release addressing a few issues found in 9.2.6. These include: * A fix for a bug with the RTS linker being unable to resolve the `setKeepCafs` symbol which started being used by the GHC library in 9.2.6, resulting in code depending on this symbol failing to load in GHCi or via a compile time splice when using a statically linked GHC, such as on Windows (#22961). * A fix a bug with the alignment of RTS data structures that could result in segfaults when compiled with high optimisation settings on certain platforms (#22975 , #22965). * A fix for a bug in the simplifier related to placeholder values (rubbish literals) emitted by the worker/wrapper optimisation leading to -dcore-lint errors and compiler panics in certain cases (#19882, #22914, #23000). * Easier installation of binary distribution on MacOS platforms by changing the installation Makefile to remove the quarantine attribute when installing. * ... and a few more. See the [release notes] for a full accounting. As some of the fixed issues do affect correctness users are encouraged to upgrade promptly. We would like to thank Microsoft Azure, GitHub, IOG, the Zw3rk stake pool, Well-Typed, Tweag I/O, Serokell, Equinix, SimSpace, Haskell Foundation, and other anonymous contributors whose on-going financial and in-kind support has facilitated GHC maintenance and release management over the years. Finally, this release would not have been possible without the hundreds of open-source contributors whose work comprise this release. As always, do give this release a try and open a [ticket][] if you see anything amiss. Happy compiling, - Zubin [ticket]: https://gitlab.haskell.org/ghc/ghc/-/issues/new [release notes]: https://downloads.haskell.org/~ghc/9.2.7/docs/html/users_guide/9.2.7-notes.html -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: not available URL: From ikke at nicolast.be Mon Feb 27 14:50:18 2023 From: ikke at nicolast.be (Nicolas Trangez) Date: Mon, 27 Feb 2023 15:50:18 +0100 Subject: [Haskell-cafe] [ANN] landlock 0.2.1.0 Message-ID: <10129a53e805ba63546682096209a3ed683e7314.camel@nicolast.be> I’m happy to announce the latest version of `landlock`, a Haskell library to access the Linux Landlock LSM API. This version updates the library to expose all Landlock features up to Linux 6.2 (Landlock ABI 3). It also introduces `landlocked`[1], a utility to spawn some process in a landlocked environment, and serves as a demo of how to use the API (next to the library documentation[2] and README.md[3]). It’s available on Hackage[4] and GitHub[5]. The Linux kernel Landlock API provides unprivileged access control. The goal of Landlock is to enable to restrict ambient rights (e.g. global filesystem access) for a set of processes. Because Landlock is a stackable LSM, it makes possible to create safe security sandboxes as new security layers in addition to the existing system-wide access- controls. This kind of sandbox is expected to help mitigate the security impact of bugs or unexpected/malicious behaviors in user space applications. Landlock empowers any process, including unprivileged ones, to securely restrict themselves. For more information, see the Landlock homepage[6] and its kernel documentation[7]. [1] https://github.com/NicolasT/landlock-hs/blob/27d2d95478f8c85cfbf4025bb41d57d0e57d670f/landlock/bin/landlocked.hs [2] https://hackage.haskell.org/package/landlock-0.2.1.0/docs/System-Landlock.html [3] https://github.com/NicolasT/landlock-hs/tree/main/landlock#readme [4] https://hackage.haskell.org/package/landlock-0.2.1.0 [5] https://github.com/NicolasT/landlock-hs [6] https://landlock.io/ [7] https://docs.kernel.org/userspace-api/landlock.html From bryan at haskell.foundation Tue Feb 28 12:15:08 2023 From: bryan at haskell.foundation (Bryan Richter) Date: Tue, 28 Feb 2023 14:15:08 +0200 Subject: [Haskell-cafe] Status of ghcup? In-Reply-To: References: <132e14c2-7eec-f439-fa55-60cffdaeaf8c@glitchbra.in> Message-ID: The curl man page suggests the --cacert or --capath option. https://www.man7.org/linux/man-pages/man1/curl.1.html On Thu, 23 Feb 2023 at 20:00, Alexis Praga via Haskell-Cafe < haskell-cafe at haskell.org> wrote: > I do have such a certificate. Do you have any pointer on how to configure > curl to use, especially on windows and for ghcup ? > > > > > ------- Original Message ------- > On Thursday, February 23rd, 2023 at 6:53 PM, Viktor Dukhovni < > ietf-dane at dukhovni.org> wrote: > > > > > > > > On Thu, Feb 23, 2023 at 12:50:40PM -0500, Brandon Allbery wrote: > > > > > You're all missing the possibility that the corporate gateway requires > > > a specific certificate so it can inspect traffic (anyone remember > > > > https://arstechnica.com/information-technology/2015/02/lenovo-pcs-ship-with-man-in-the-middle-adware-that-breaks-https-connections/ > )? > > > > > > In which case, that certificate can be configured as trusted by curl, > > of course it that case it can't be provided by the ghcup team, and needs > > to obtained locally by the user. > > > > -- > > Viktor. > > _______________________________________________ > > Haskell-Cafe mailing list > > To (un)subscribe, modify options or view archives go to: > > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > > Only members subscribed via the mailman list are allowed to post. > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: