Home freenode/#haskell: Logs Calendar

Logs: freenode/#haskell

←Prev  Next→
Page 1 .. 891 892 893 894 895 896 897 898 899 900 901 .. 5022
502,152 events total
2020-10-27 13:08:01 <Raito_Bezarius> 8.10
2020-10-27 13:08:36 <Raito_Bezarius> enabling GADT made it work
2020-10-27 13:09:05 xerox_ joins (~xerox@unaffiliated/xerox)
2020-10-27 13:09:55 <dminuoso> It's possible this is due to some changes in 8.10
2020-10-27 13:10:23 <dminuoso> "GHC now performs more validity checks on inferred type signatures."
2020-10-27 13:10:27 <dminuoso> That's very non-descript.
2020-10-27 13:10:34 <dminuoso> But Im guessing that's why
2020-10-27 13:11:17 <geekosaur> this might be worth asking haskell-cafe about, if it's affecting random Megaparsec parsers then it might be surprising to a bunch of people
2020-10-27 13:11:36 <geekosaur> lthough 8.10 has been out for a while now so it should have already caused an uproar, hm
2020-10-27 13:12:12 danza joins (~francesco@151.53.87.185)
2020-10-27 13:12:17 <Raito_Bezarius> Well, I'm okay with enabling type families or GADT meanwhile
2020-10-27 13:13:29 <geekosaur> I'm kinda not so comfortable with it tbh. Megaparsec seems a strange place for a hidden dependency on GADTs to arise
2020-10-27 13:14:14 <Raito_Bezarius> Could one of you verify in a REPL I'm not saying stupid things?
2020-10-27 13:14:26 <Raito_Bezarius> I just imported a bunch of megaparsec classic things, everything is built-in
2020-10-27 13:14:28 <dminuoso> Raito_Bezarius: Im very sure this is why.
2020-10-27 13:14:31 <merijn> dminuoso: I think it's basically like before where GHC would infer types that required extensions that weren't enabled
2020-10-27 13:14:47 <merijn> And then when it (correctly) demanded those extensions be enabled, stuff broke
2020-10-27 13:14:50 <dminuoso> Raito_Bezarius: The release notes even lists a similar example, albeit with a different extension.
2020-10-27 13:14:58 <Raito_Bezarius> Fair enough
2020-10-27 13:15:09 <dminuoso> merijn: Oh because it affected the semantics of other code?
2020-10-27 13:15:15 <dminuoso> Like ScopedTypeVariables?
2020-10-27 13:15:17 × whatisRT quits (~whatisRT@2002:5b41:6a33:0:c56a:ceb4:6140:c4a1) (Read error: Connection reset by peer)
2020-10-27 13:15:26 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2020-10-27 13:15:51 <merijn> dminuoso: No, stuff like, if you left out a type signature and GHC inferred one that used MultiParamTypeclasses, then it would allow the inferred type *even* if MPTC wasn't enabled
2020-10-27 13:15:55 <merijn> Which is, of course, wrong
2020-10-27 13:16:02 <dminuoso> (Say because you're doing something like `(\(e :: FooException) -> ...)`, then enabling ScopedTypeVariables could actually alter the meaning in other places where if you have ExplicitForAll
2020-10-27 13:16:22 <dminuoso> mmm
2020-10-27 13:16:40 <merijn> So it used to allow types with extensions that weren't enabled *iff* the types were inferred, which is a bug, but one you can accidentally rely on
2020-10-27 13:16:43 × denisse quits (~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 240 seconds)
2020-10-27 13:16:49 × ptrcmd quits (~ptrcmd@unaffiliated/petercommand) (Remote host closed the connection)
2020-10-27 13:17:12 xerox__ joins (~xerox@unaffiliated/xerox)
2020-10-27 13:17:13 denisse joins (~spaceCat@gateway/tor-sasl/alephzer0)
2020-10-27 13:17:29 <dminuoso> merijn: I cant even fathom what kind of engineering complexity language extensions brings with them because you have precisely this kind of cross-module friction.
2020-10-27 13:17:30 × Franciman quits (~francesco@host-82-54-10-114.retail.telecomitalia.it) (Read error: Connection reset by peer)
2020-10-27 13:17:47 Franciman joins (~francesco@host-82-54-10-114.retail.telecomitalia.it)
2020-10-27 13:18:03 <merijn> So it looks like, in Raito_Bezarius's example is that due to the lack of type signature, the inferred type has megaparsec Token constraint, which uses type families, but type families isn't enabled in his code
2020-10-27 13:18:10 <dminuoso> merijn: Right.
2020-10-27 13:18:18 <merijn> So writing out a non-polymorphic type would *also* fix the issue
2020-10-27 13:18:21 <dminuoso> merijn: Im just saying the release note could have explained this better
2020-10-27 13:18:23 <Raito_Bezarius> merijn: I see
2020-10-27 13:18:23 <dminuoso> I *assumed* what you said
2020-10-27 13:18:54 <merijn> Raito_Bezarius: If you write out a specific type, then the constraint is already solved and the extension unneeded
2020-10-27 13:18:54 <dminuoso> I sometimes wish, GHC would roll out such things with deprecation notices
2020-10-27 13:18:56 <dminuoso> like
2020-10-27 13:19:02 <dminuoso> "This is going to fail in a future GHC"
2020-10-27 13:19:06 × PragCypher quits (~cypher@li1507-98.members.linode.com) (Quit: ZNC 1.7.5 - https://znc.in)
2020-10-27 13:19:09 <merijn> dminuoso: Where do you draw the line, though?
2020-10-27 13:19:09 ptrcmd joins (~ptrcmd@unaffiliated/petercommand)
2020-10-27 13:19:20 <merijn> Does every bugfix need a deprecation warning?
2020-10-27 13:19:20 PragCypher joins (~cypher@li1507-98.members.linode.com)
2020-10-27 13:19:34 <merijn> dminuoso: See the endless discussion on the TH change I got temporarily rolled back in 8.10
2020-10-27 13:19:40 <dminuoso> Which TH change?
2020-10-27 13:20:12 × xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 260 seconds)
2020-10-27 13:20:49 <merijn> That typeclass constraint (incorrectly) are allowed to violate the staging/splicing rules
2020-10-27 13:20:52 × denisse quits (~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection)
2020-10-27 13:20:54 <merijn> https://gitlab.haskell.org/ghc/ghc/-/issues/17816
2020-10-27 13:21:07 denisse joins (~spaceCat@gateway/tor-sasl/alephzer0)
2020-10-27 13:22:07 <dminuoso> merijn: Perhaps GHC releases should be tested against stackage.
2020-10-27 13:22:12 <merijn> They are
2020-10-27 13:22:17 <merijn> But once again
2020-10-27 13:22:25 <merijn> Where's the line?
2020-10-27 13:22:50 <merijn> The behaviour in that ticket is *clearly* a bug that violates the definition of TH as it is specified
2020-10-27 13:22:51 <dminuoso> 1.73% breakage
2020-10-27 13:24:02 <merijn> Is that including transitive dependencies?
2020-10-27 13:24:02 × mirrorbird quits (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) (Read error: Connection reset by peer)
2020-10-27 13:24:15 <merijn> Because then you probably will be unable to ever fix anything
2020-10-27 13:24:32 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
2020-10-27 13:24:56 xerox__ is now known as xerox_
2020-10-27 13:25:04 <dminuoso> Unrelatedly
2020-10-27 13:25:06 <dminuoso> Im sad now
2020-10-27 13:25:08 <dminuoso> % % Just 'a' <**> (Just 'b' <&> (,))
2020-10-27 13:25:08 <yahb> dminuoso: ; <interactive>:183:1: error: parse error on input `%'
2020-10-27 13:25:13 <dminuoso> % Just 'a' <**> (Just 'b' <&> (,))
2020-10-27 13:25:14 <yahb> dminuoso: Just ('b','a')
2020-10-27 13:25:16 <dminuoso> % Just 'a' <**> Just 'b' <&> (,)
2020-10-27 13:25:16 <yahb> dminuoso: ; <interactive>:185:15: error:; * Couldn't match type `Char' with `Char -> a'; Expected type: Maybe (Char -> a); Actual type: Maybe Char; * In the second argument of `(<**>)', namely Just 'b'; In the first argument of `(<&>)', namely Just 'a' <**> Just 'b'; In the expression: Just 'a' <**> Just 'b' <&> (,); * Relevant bindings include it :: Maybe (b -> (a, b)) (bound
2020-10-27 13:25:21 <dminuoso> Why is the precedence all wrong here? :(
2020-10-27 13:26:51 × vacm quits (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-27 13:27:14 <dminuoso> merijn: But I see what you're getting at.
2020-10-27 13:27:19 <dminuoso> I mean for bugfixes its hard
2020-10-27 13:27:25 <dminuoso> But when you *know* you're making breaking changes
2020-10-27 13:27:34 <dminuoso> Its not too much to ask for a deprecation notice one major release in advance
2020-10-27 13:27:46 <merijn> dminuoso: -Wcompat exists
2020-10-27 13:27:54 <merijn> But, sadly, not enabled by default
2020-10-27 13:28:14 <dminuoso> merijn: Does -Wcompat work with *GHC* changes?
2020-10-27 13:28:42 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-27 13:28:48 <merijn> for those added
2020-10-27 13:28:48 <dminuoso> I mean only if they receive a particular warning for it
2020-10-27 13:28:54 <dminuoso> Like, star-is-type
2020-10-27 13:30:01 ggole joins (~ggole@2001:8003:8119:7200:b94d:2b16:8058:a9b7)
2020-10-27 13:31:05 × jespada quits (~jespada@90.254.243.98) (Ping timeout: 240 seconds)
2020-10-27 13:32:45 jespada joins (~jespada@90.254.243.98)
2020-10-27 13:33:01 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
2020-10-27 13:33:15 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-10-27 13:33:54 × bitmapper quits (uid464869@gateway/web/irccloud.com/x-nwqswzdnuoofdofv) (Quit: Connection closed for inactivity)
2020-10-27 13:34:25 knupfer joins (~Thunderbi@200116b82cb7c4006c9b6afffea7b391.dip.versatel-1u1.de)
2020-10-27 13:34:25 × knupfer quits (~Thunderbi@200116b82cb7c4006c9b6afffea7b391.dip.versatel-1u1.de) (Client Quit)
2020-10-27 13:34:38 knupfer joins (~Thunderbi@mue-88-130-61-249.dsl.tropolys.de)
2020-10-27 13:36:22 gothnbass joins (~kvirc@111.red-83-37-117.dynamicip.rima-tde.net)
2020-10-27 13:36:35 <Raito_Bezarius> Let us suppose that I'd like to define a character literal as something which is an ASCII char which is not \ or " and accept the escaped versions as char literals

All times are in UTC.