Logs on 2021-01-31 (freenode/#haskell)
| 00:01:53 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 246 seconds) |
| 00:02:22 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 265 seconds) |
| 00:02:28 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0) |
| 00:05:26 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 00:05:40 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 00:06:56 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
| 00:08:12 | → | Tario joins (~Tario@200.119.187.22) |
| 00:08:25 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 00:08:49 | × | elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
| 00:08:56 | <koz_> | Is there some concise way to spell 'the elements of this Vector are not all the same'? |
| 00:09:49 | <infinisil> | Maybe something like "is not a multiple of the identity" |
| 00:10:21 | <koz_> | infinisil: I don't understand what 'multiple' or 'identity' means in the context of Data.Vector from vector. |
| 00:11:27 | <infinisil> | identity in regards to the dot product of vectors |
| 00:11:37 | <infinisil> | Which is just all 1's |
| 00:12:00 | <infinisil> | Anyways, I guess that's not what you're looking for, but that's a concise way to specify that all elements are the same (or not) |
| 00:12:25 | → | soft-warm joins (4408f588@ip68-8-245-136.sd.sd.cox.net) |
| 00:12:32 | <koz_> | Thanks, but indeed this is not what I'm looking for. |
| 00:13:05 | <infinisil> | (I have no idea what you're looking for then, what's a "way to spell"?) |
| 00:13:41 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:13:46 | <koz_> | infinisil: I have a Vector full of a, such that Eq a. How do I write, in Haskell, the equivalent of 'True if every element is equal to every other element, False otherwise', concisely? |
| 00:14:16 | <infinisil> | Oh, so you're looking for an implementation of a check for that |
| 00:15:53 | → | bennofs_ joins (~quassel@dslb-094-222-050-219.094.222.pools.vodafone-ip.de) |
| 00:17:11 | <Ariakenom> | I like how laziness makes this work \xs -> all (==head xs) xs |
| 00:17:12 | <koz_> | Best I can think of is somethign to the tune of \v -> and [v ! i == v ! j | i <- [0 .. length v - 1], j <- [0 .. length v - 1]] |
| 00:17:13 | <jkaye[m]> | koz_ if list if empty, True, otherwise are all elements equal to the head element. Very simple recursion |
| 00:17:38 | <jkaye[m]> | You don't need to check all elements against each other |
| 00:17:45 | <koz_> | Although jkaye[m]'s suggestion is indeed better, thanks! |
| 00:17:56 | <Ariakenom> | jkaye[m]: and you dont need the first check due to laziness |
| 00:18:09 | <jkaye[m]> | If you use head you need it |
| 00:18:34 | <Ariakenom> | all f [] = True |
| 00:18:36 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 00:18:46 | <jkaye[m]> | Yep exactly what I meant! |
| 00:19:16 | × | bennofs__ quits (~quassel@dslb-094-222-083-164.094.222.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
| 00:19:45 | <Ariakenom> | head on empty list in "f" doesn't matter if f isn't used |
| 00:22:00 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 00:22:19 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 00:22:29 | <ski> | @instances-importing Data.Vector Foldable |
| 00:22:30 | <lambdabot> | Alt f, Ap f, Dual, First, Last, Maybe, Product, Sum, Vector, [] |
| 00:22:33 | → | conal joins (~conal@64.71.133.70) |
| 00:22:56 | <Ariakenom> | % :t all |
| 00:22:57 | <yahb> | Ariakenom: Foldable t => (a -> Bool) -> t a -> Bool |
| 00:23:03 | <ski> | @type all :: (a -> Bool) -> (Data.Vector.Vector a -> Bool) |
| 00:23:04 | <lambdabot> | (a -> Bool) -> Data.Vector.Vector a -> Bool |
| 00:23:13 | → | rekahsoft joins (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) |
| 00:23:36 | → | conal_ joins (~conal@64.71.133.70) |
| 00:25:34 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Read error: Connection reset by peer) |
| 00:26:03 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 00:26:59 | × | conal quits (~conal@64.71.133.70) (Ping timeout: 264 seconds) |
| 00:27:57 | ski | looks at jkaye[m] |
| 00:28:19 | → | erisco joins (~erisco@104-195-141-253.cpe.teksavvy.com) |
| 00:28:56 | <jkaye[m]> | ski yep. Just gotta get that first `a` there |
| 00:29:23 | <jkaye[m]> | I don't think I'm taking crazy pills |
| 00:29:54 | <ski> | jkaye[m] : something like what Ariakenom suggested doesn't work ? |
| 00:30:11 | <jkaye[m]> | No |
| 00:30:15 | <ski> | why not ? |
| 00:30:16 | <jkaye[m]> | Where does f come from? |
| 00:30:23 | <ski> | which `f' ? |
| 00:30:35 | <jkaye[m]> | The function is `Vec a -> Bool` |
| 00:30:43 | <ski> | yes ? |
| 00:30:52 | <Ariakenom> | \xs -> all (==head xs) xs |
| 00:30:54 | <Ariakenom> | no f |
| 00:31:42 | <jkaye[m]> | Okay, I see what you meab |
| 00:31:47 | <jkaye[m]> | * Okay, I see what you mean |
| 00:31:50 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 264 seconds) |
| 00:31:52 | <jkaye[m]> | You're right, that worjs |
| 00:31:58 | <jkaye[m]> | * You're right, that works |
| 00:32:52 | <ski> | you could probably use the aztec trick, as well |
| 00:33:04 | <Ariakenom> | does it work for length 0 and 1? |
| 00:33:14 | <Ariakenom> | [] and [1] |
| 00:34:11 | <ski> | > and ((zipWith (==) `ap` tail) "0000") |
| 00:34:13 | <lambdabot> | True |
| 00:34:15 | <ski> | > and ((zipWith (==) `ap` tail) "0010") |
| 00:34:16 | <lambdabot> | False |
| 00:36:11 | → | rajivr joins (uid269651@gateway/web/irccloud.com/x-wkqzxzwdoldxjjgk) |
| 00:36:52 | × | erisco quits (~erisco@104-195-141-253.cpe.teksavvy.com) (Quit: Leaving) |
| 00:39:53 | <infinisil> | Hmm, but how about not relying on partial functions |
| 00:40:39 | <ski> | use `drop 1' instead of `tail' |
| 00:40:51 | <jkaye[m]> | Does it really matter if it's guaranteed not to be a problem? |
| 00:41:03 | <jkaye[m]> | Other than intellectually I guess |
| 00:41:08 | <infinisil> | ^^ |
| 00:41:27 | <ski> | perhaps to satisfy some termination checker ? |
| 00:42:20 | <jkaye[m]> | I wonder what liquid haskell would think about it |
| 00:43:06 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 00:43:47 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:44:36 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:9f3:d193:94ea:a2fe) |
| 00:45:21 | <infinisil> | > allEqual xs = [xs] == group xs |
| 00:45:23 | <lambdabot> | <hint>:1:13: error: <hint>:1:13: error: parse error on input ‘=’ |
| 00:45:25 | <infinisil> | How about that! |
| 00:45:58 | <infinisil> | > (\xs -> [xs] == group xs) (repeat 10 0) |
| 00:46:00 | <lambdabot> | error: |
| 00:46:00 | <lambdabot> | • Couldn't match expected type ‘t0 -> [a0]’ with actual type ‘[a1]’ |
| 00:46:00 | <lambdabot> | • The function ‘repeat’ is applied to two arguments, |
| 00:46:13 | <infinisil> | > (\xs -> [xs] == group xs) (replicate 10 0) |
| 00:46:14 | <lambdabot> | True |
| 00:46:25 | <infinisil> | > (\xs -> [xs] == group xs) (replicate 10 0 ++ [1] ++ replicate 10 0) |
| 00:46:26 | <lambdabot> | False |
| 00:47:15 | × | conal_ quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 00:47:22 | <ski> | @check \n x -> let xs = replicate n x in [xs] == group xs |
| 00:47:23 | <lambdabot> | *** Failed! Falsifiable (after 1 test): |
| 00:47:23 | <lambdabot> | 0 () |
| 00:48:35 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds) |
| 00:48:36 | <MarcelineVQ> | @let allEqual xs = [xs] == group xs |
| 00:48:37 | <lambdabot> | Defined. |
| 00:48:42 | <MarcelineVQ> | > allEqual [] |
| 00:48:42 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 00:48:44 | <lambdabot> | False |
| 00:48:47 | → | conal joins (~conal@64.71.133.70) |
| 00:49:06 | <infinisil> | Damn, group not returning any result should be illegal |
| 00:49:12 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:9f3:d193:94ea:a2fe) (Ping timeout: 260 seconds) |
| 00:49:20 | <ski> | @type NE.group |
| 00:49:21 | <lambdabot> | (Foldable f, Eq a) => f a -> [NonEmpty a] |
| 00:49:25 | <infinisil> | Yeah just saw that too |
| 00:49:32 | <ski> | `group' returns a list of non-empty lists |
| 00:49:46 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:50:52 | <infinisil> | @let allEqual xs = [xs :| []] == NE.group xs |
| 00:50:53 | <lambdabot> | .L.hs:158:29: error: |
| 00:50:53 | <lambdabot> | • Occurs check: cannot construct the infinite type: a ~ [a] |
| 00:50:53 | <lambdabot> | Expected type: [NonEmpty [a]] |
| 00:51:13 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 00:51:25 | × | mozzarella quits (~sam@unaffiliated/sam113101) (Ping timeout: 240 seconds) |
| 00:52:04 | <ski> | @check ((all <$> (==) <*> group) .) . replicate |
| 00:52:06 | <lambdabot> | +++ OK, passed 100 tests. |
| 00:52:19 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 00:52:39 | <infinisil> | Heh |
| 00:52:42 | <infinisil> | That feels like cheating |
| 00:53:17 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds) |
| 00:53:40 | → | conal joins (~conal@64.71.133.70) |
| 00:53:57 | <infinisil> | But nice |
| 00:54:18 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:67bb:b9ef:e561:ae2:7da2) |
| 00:58:34 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 00:59:03 | × | thongpv87 quits (~thongpv87@103.6.151.121) (Remote host closed the connection) |
| 01:01:01 | → | thongpv87 joins (~thongpv87@103.6.151.121) |
| 01:01:35 | <koz_> | :t unlines |
| 01:01:36 | <lambdabot> | [String] -> String |
| 01:01:50 | <infinisil> | ski: But heck, how did you manage to make that type check |
| 01:01:58 | → | elliott_ joins (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
| 01:02:24 | <ski> | er, i just hand-pled it ? |
| 01:02:57 | <infinisil> | :t (<$>) |
| 01:02:58 | <lambdabot> | Functor f => (a -> b) -> f a -> f b |
| 01:03:14 | <infinisil> | :t all |
| 01:03:15 | <lambdabot> | Foldable t => (a -> Bool) -> t a -> Bool |
| 01:03:18 | <infinisil> | :t (==) |
| 01:03:19 | <lambdabot> | Eq a => a -> a -> Bool |
| 01:03:19 | <ski> | `all <$> (==) <*> group' is `\xs -> all (xs ==) (group xs)' |
| 01:03:31 | <ski> | and `\x y -> f (g x y)' is `(f .) . g' |
| 01:03:31 | × | teardown quits (~user@gateway/tor-sasl/mrush) (Remote host closed the connection) |
| 01:03:52 | → | jlamothe joins (~jlamothe@198.251.55.207) |
| 01:03:53 | <ski> | that's basically all there is to it |
| 01:03:54 | → | teardown joins (~user@gateway/tor-sasl/mrush) |
| 01:03:55 | <infinisil> | Hmm |
| 01:04:19 | <infinisil> | Ahh, the functor for (->) just applies the same argument to all functions |
| 01:04:54 | <mniip> | what |
| 01:05:10 | <infinisil> | Or the applicative I mean |
| 01:05:23 | <mniip> | that's kinda true yes |
| 01:05:36 | <mniip> | there's an "environment" that's being propagated down |
| 01:05:38 | <ski> | environment distributes the config to all branches, yes |
| 01:06:28 | × | livvy quits (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection) |
| 01:06:39 | <infinisil> | Yeah looking at it like that, makes sense :) |
| 01:06:40 | → | livvy joins (~livvy@gateway/tor-sasl/livvy) |
| 01:07:11 | <infinisil> | @pointfree \xs -> all (xs ==) (group xs) |
| 01:07:11 | <lambdabot> | Unknown command, try @list |
| 01:07:19 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:9f3:d193:94ea:a2fe) |
| 01:07:23 | <ski> | @pointless \xs -> all (xs ==) (group xs) |
| 01:07:23 | <lambdabot> | liftM2 all (==) group |
| 01:07:36 | <infinisil> | :o |
| 01:07:37 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 265 seconds) |
| 01:07:42 | <ski> | (could use `liftA2' .. but it didn't exist, when the plugin was written) |
| 01:07:49 | <infinisil> | > :t liftA2 |
| 01:07:51 | <lambdabot> | <hint>:1:1: error: <hint>:1:1: error: parse error on input ‘:’ |
| 01:07:54 | <infinisil> | :t liftA2 |
| 01:07:55 | <lambdabot> | Applicative f => (a -> b -> c) -> f a -> f b -> f c |
| 01:08:14 | <infinisil> | :t liftA2 all (==) group |
| 01:08:15 | <lambdabot> | Eq a => [a] -> Bool |
| 01:08:18 | <infinisil> | Nice |
| 01:09:12 | <infinisil> | Not as generic as it could be though |
| 01:10:08 | <ski> | @type liftA2 `asTypeIn` \liftA2 -> liftA2 all (==) group |
| 01:10:09 | <lambdabot> | Eq a => (([a] -> Bool) -> [[a]] -> Bool) -> ([a] -> [a] -> Bool) -> ([a] -> [[a]]) -> [a] -> Bool |
| 01:10:15 | <ski> | hm .. somewhat excessive |
| 01:10:52 | <ski> | @type liftA2 `asTypeIn` \liftA2 f g h x -> liftA2 f g h x |
| 01:10:53 | <lambdabot> | (a -> b -> t1) -> (t2 -> a) -> (t2 -> b) -> t2 -> t1 |
| 01:10:53 | → | jedws joins (~jedws@121.209.199.128) |
| 01:11:38 | <ski> | int-e : was missing `asTypeIn' :) |
| 01:12:03 | <ski> | (oh, also `Natural', while we're at it ..) |
| 01:13:08 | <ski> | infinisil : not as generic ? |
| 01:14:01 | <infinisil> | Huh! |
| 01:14:03 | × | pera quits (~pera@unaffiliated/pera) (Quit: leaving) |
| 01:14:04 | <infinisil> | Wait how would I use that? |
| 01:14:36 | <ski> | use which ? |
| 01:16:02 | <ski> | you mean `asTypeIn' ? |
| 01:16:14 | <ski> | @src asTypeIn |
| 01:16:14 | <lambdabot> | a `asTypeIn` f = a where _ = f a |
| 01:16:15 | <lambdabot> | infixl 0 `asTypeIn` |
| 01:16:32 | <ski> | it's just a glorified `const' (as is `asAppliedTo') |
| 01:16:42 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 01:16:55 | <ski> | @src asAppliedTo |
| 01:16:55 | <lambdabot> | f `asAppliedTo` a = f where _ = f a |
| 01:16:55 | <lambdabot> | infixl 0 `asAppliedTo` |
| 01:16:56 | <infinisil> | I'm probably missing something |
| 01:17:07 | <ski> | @type map `asAppliedTo` ord |
| 01:17:08 | <lambdabot> | (Char -> Int) -> [Char] -> [Int] |
| 01:17:52 | <infinisil> | I was wondering if we could find an implementation of `liftA2 all (==) group` that had a more generic type, like with Traversable instead of [] |
| 01:18:04 | <ski> | they are just two lambdabot-defined functions which are sometimes helpful to show a (more) monomorphic type of something |
| 01:18:28 | → | mozzarella joins (~sam@unaffiliated/sam113101) |
| 01:18:34 | <ski> | well, it's `group' that forces `[]' |
| 01:18:56 | <ski> | so .. can you generalize `group', is then the question ? |
| 01:19:47 | <infinisil> | I guess yeah :) |
| 01:21:22 | <infinisil> | Anyways, it's easy to make a generic total function by just pattern matching |
| 01:22:07 | <ski> | on what ? |
| 01:22:24 | <infinisil> | The list |
| 01:22:44 | <infinisil> | If empty, just return True, otherwise `all (== x) xs` |
| 01:22:57 | <infinisil> | Though I guess you need Foldable, Traversable isn't enough |
| 01:23:16 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 01:23:47 | → | xelxebar_ joins (~xelxebar@gateway/tor-sasl/xelxebar) |
| 01:23:54 | <ski> | every instance of `Traversable' is an instance of `Foldable' (but not vice versa) |
| 01:24:45 | × | xelxebar quits (~xelxebar@gateway/tor-sasl/xelxebar) (Ping timeout: 268 seconds) |
| 01:24:57 | <ski> | well, if you want to generalize from list, then you don't have a list to match on |
| 01:25:10 | <infinisil> | Oh yeah, had those flipped around |
| 01:25:40 | <ski> | (you could get a list using `Foldable. but then you can't get back again ..) |
| 01:26:35 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds) |
| 01:28:58 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 01:29:44 | → | zeta_0 joins (~zeta@2601:8c0:1:2630:a6ba:f759:774b:830c) |
| 01:30:33 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer) |
| 01:30:36 | → | tromp_ joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 01:30:51 | <zeta_0> | I have a miso nix related issue, will any of you be able to help me out? I already asked for help in the #nixos channel, but no one has responded yet! |
| 01:30:54 | <zeta_0> | https://github.com/dmjio/miso#nix |
| 01:32:01 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:67bb:b9ef:e561:ae2:7da2) (Quit: Textual IRC Client: www.textualapp.com) |
| 01:33:50 | <zeta_0> | when I follow the miso/nix example, everything works fine, but whenever I try to configure this with my (direnv+nix-diren+emacs-direnv) setup, callCabal2Nix does not work, a bunch of dependency errors are returned? |
| 01:34:57 | <infinisil> | ski: I feel like foldMap could be used with a suitable Monoid, but I don't think such a Monoid exists already |
| 01:35:06 | <infinisil> | :t foldMap |
| 01:35:07 | <lambdabot> | (Foldable t, Monoid m) => (a -> m) -> t a -> m |
| 01:35:23 | × | tromp_ quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds) |
| 01:35:48 | <ski> | infinisil : aiming at what type ? |
| 01:36:37 | <infinisil> | > :t foldMap Just |
| 01:36:38 | <lambdabot> | <hint>:1:1: error: <hint>:1:1: error: parse error on input ‘:’ |
| 01:36:43 | <infinisil> | :t foldMap Just |
| 01:36:44 | <ski> | @type foldMap Just |
| 01:36:44 | <lambdabot> | (Foldable t, Semigroup a) => t a -> Maybe a |
| 01:36:45 | <lambdabot> | (Foldable t, Semigroup a) => t a -> Maybe a |
| 01:36:51 | <infinisil> | Then isJust! |
| 01:37:06 | <infinisil> | Wait no |
| 01:37:39 | <ski> | are you aiming at `group :: (Foldable t,Eq a) => t a -> [[a]]', or what ? |
| 01:39:09 | <infinisil> | Something like Maybe, but with a Semigroup instance that compares values, and in case both sides are Just, it only returns Just when they are equal |
| 01:39:43 | <infinisil> | Eq a => Semigroup (Maybe a) |
| 01:41:57 | × | Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:9c13:27da:3792:17be) (Quit: Leaving) |
| 01:43:53 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 01:45:11 | <infinisil> | Would be defined like |
| 01:45:18 | <infinisil> | Just a <> Just b | a == b = Just a |
| 01:45:22 | <infinisil> | _ <> _ = Nothing |
| 01:45:57 | <infinisil> | Then I believe `isJust . foldMap Just` would check whether all elements are equal |
| 01:46:26 | <infinisil> | (but this doesn't work because there's already another Semigroup (Maybe a) instance) |
| 01:47:26 | <zeta_0> | https://github.com/dmjio/miso#nix https://dpaste.org/sTcE https://dpaste.org/e2Wh https://dpaste.org/LJNC |
| 01:48:05 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
| 01:48:48 | <zeta_0> | if any of you would like to take a look and help me with my miso/nix error, thanks, I got miso to work with my (direnv+nix-direnv+emacs-direnv) setup, but I can't get callCabal2Nix working, it's throwing errors, which I pastebined above. |
| 01:49:54 | × | metreo quits (~Thunderbi@unaffiliated/metreo) (Quit: metreo) |
| 01:50:28 | × | dnlkrgr quits (~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 260 seconds) |
| 01:51:36 | × | gluegadget quits (sid22336@gateway/web/irccloud.com/x-uqcwrzaflpkghsoy) (Ping timeout: 265 seconds) |
| 01:51:37 | × | heyj quits (sid171370@gateway/web/irccloud.com/x-bflehhffxpswalwj) (Ping timeout: 260 seconds) |
| 01:51:37 | × | Firedancer quits (sid336191@gateway/web/irccloud.com/x-eedluoddpkolzhde) (Ping timeout: 260 seconds) |
| 01:51:37 | × | simony quits (sid226116@gateway/web/irccloud.com/x-wuwbandquivjrcox) (Ping timeout: 260 seconds) |
| 01:51:37 | × | SanchayanMaity quits (sid478177@gateway/web/irccloud.com/x-xfixrnosidhdkmvo) (Ping timeout: 260 seconds) |
| 01:51:38 | × | mpickering quits (sid78412@gateway/web/irccloud.com/x-nlhzowtetdmoksio) (Ping timeout: 264 seconds) |
| 01:51:43 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 01:52:03 | × | acertain quits (sid470584@gateway/web/irccloud.com/x-ukmpkghtxinppagh) (Ping timeout: 272 seconds) |
| 01:52:12 | × | edwinb quits (sid69486@gateway/web/irccloud.com/x-mayongskwkdlziau) (Ping timeout: 260 seconds) |
| 01:52:14 | × | nick_h quits (sid319833@gateway/web/irccloud.com/x-ikiutvcdzbiuuesy) (Ping timeout: 264 seconds) |
| 01:52:28 | → | mpickering joins (sid78412@gateway/web/irccloud.com/x-gpnegcmfmjdgvvhd) |
| 01:52:32 | × | vgtw quits (~vgtw@gateway/tor-sasl/vgtw) (Remote host closed the connection) |
| 01:52:36 | → | nick_h joins (sid319833@gateway/web/irccloud.com/x-fmszvbukywibvnjt) |
| 01:52:38 | → | edwinb joins (sid69486@gateway/web/irccloud.com/x-ksiofhqyzwmiecwk) |
| 01:52:50 | × | affinespaces quits (sid327561@gateway/web/irccloud.com/x-bebojrcoufbnwpah) (Ping timeout: 264 seconds) |
| 01:52:50 | → | vgtw joins (~vgtw@gateway/tor-sasl/vgtw) |
| 01:53:17 | → | SanchayanMaity joins (sid478177@gateway/web/irccloud.com/x-rpffknmnzhckxcik) |
| 01:53:32 | → | Firedancer joins (sid336191@gateway/web/irccloud.com/x-ligfkiqpgzdsoowm) |
| 01:53:37 | → | simony joins (sid226116@gateway/web/irccloud.com/x-yvxwbmloxgyrtusv) |
| 01:53:40 | → | heyj joins (sid171370@gateway/web/irccloud.com/x-jlmkaetfreswmuao) |
| 01:53:56 | → | gluegadget joins (sid22336@gateway/web/irccloud.com/x-rxofsnehgcvjxzjy) |
| 01:54:06 | → | acertain joins (sid470584@gateway/web/irccloud.com/x-yywtldtivzbefsrr) |
| 01:54:39 | × | gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in) |
| 01:54:49 | → | affinespaces joins (sid327561@gateway/web/irccloud.com/x-jflhsfrfrwoamxgm) |
| 01:55:01 | → | gabiruh joins (~gabiruh@vps19177.publiccloud.com.br) |
| 01:57:51 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds) |
| 01:59:08 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
| 01:59:29 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 2.9) |
| 02:00:13 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 02:02:45 | × | d3od quits (~nickmeno3@78-1-83-60.adsl.net.t-com.hr) (Ping timeout: 240 seconds) |
| 02:03:00 | → | d3od joins (~nickmeno3@78-0-99-153.adsl.net.t-com.hr) |
| 02:05:17 | × | soft-warm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Quit: Ping timeout (120 seconds)) |
| 02:07:46 | × | bgamari quits (~bgamari@72.65.102.166) (Ping timeout: 256 seconds) |
| 02:09:10 | → | bgamari joins (~bgamari@72.65.102.164) |
| 02:14:06 | × | miguel_clean quits (~Miguel@89-72-187-203.dynamic.chello.pl) (Quit: Leaving.) |
| 02:16:36 | × | jedws quits (~jedws@121.209.199.128) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 02:22:02 | → | jpds_ joins (~jpds@gateway/tor-sasl/jpds) |
| 02:22:43 | <zeta_0> | here's an issue if any of you would like to take a look, thanks in advance: https://github.com/dmjio/miso/issues/641 |
| 02:23:57 | × | hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds) |
| 02:23:57 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
| 02:24:30 | × | carlomagno quits (~cararell@148.87.23.9) (Remote host closed the connection) |
| 02:25:11 | → | carlomagno joins (~cararell@148.87.23.9) |
| 02:25:13 | → | jedws joins (~jedws@121.209.199.128) |
| 02:25:32 | → | hekkaidekapus joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 02:27:26 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 02:28:05 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
| 02:28:41 | → | dcoutts_ joins (~dcoutts@unaffiliated/dcoutts) |
| 02:31:05 | × | dcoutts__ quits (~duncan@51.186.125.91.dyn.plus.net) (Ping timeout: 240 seconds) |
| 02:31:06 | × | Tario quits (~Tario@200.119.187.22) (Read error: Connection reset by peer) |
| 02:31:17 | → | Tario joins (~Tario@201.192.165.173) |
| 02:31:35 | → | dcoutts__ joins (~duncan@85.186.125.91.dyn.plus.net) |
| 02:31:45 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
| 02:32:05 | × | dcoutts quits (~dcoutts@unaffiliated/dcoutts) (Ping timeout: 240 seconds) |
| 02:32:06 | → | soft-warm joins (4408f588@ip68-8-245-136.sd.sd.cox.net) |
| 02:34:35 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 02:34:41 | × | xff0x_ quits (~xff0x@2001:1a81:5286:1d00:27bb:49b:c3ad:c098) (Ping timeout: 258 seconds) |
| 02:36:23 | → | xff0x_ joins (~xff0x@2001:1a81:52bf:eb00:e63f:41c2:291d:74fd) |
| 02:36:32 | × | _Alleria quits (~AllahuAkb@2603-7000-3040-0000-749a-5200-2a68-b0ee.res6.spectrum.com) (Ping timeout: 260 seconds) |
| 02:37:47 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds) |
| 02:38:53 | × | Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Ping timeout: 256 seconds) |
| 02:39:27 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
| 02:42:27 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:9f3:d193:94ea:a2fe) (Remote host closed the connection) |
| 02:42:46 | → | bgamari_ joins (~bgamari@72.65.102.22) |
| 02:43:47 | × | bgamari quits (~bgamari@72.65.102.164) (Ping timeout: 264 seconds) |
| 02:43:52 | × | shailangsa quits (~shailangs@host86-186-177-234.range86-186.btcentralplus.com) (Disconnected by services) |
| 02:47:30 | × | sh9 quits (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8) |
| 02:49:02 | → | Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
| 02:50:08 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:9f3:d193:94ea:a2fe) |
| 02:50:57 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 02:52:25 | → | e71_ joins (~e71@89.187.165.99) |
| 02:54:20 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 02:55:16 | × | Lowl3v3l quits (~Lowl3v3l@dslb-002-203-233-121.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
| 02:55:47 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds) |
| 02:57:52 | → | nineonine joins (~nineonine@S0106a0ff7073d5d5.vf.shawcable.net) |
| 02:58:42 | × | Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
| 02:58:46 | → | Alleria_ joins (~AllahuAkb@69.202.254.168) |
| 02:58:54 | → | Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
| 03:01:05 | × | zeta_0 quits (~zeta@2601:8c0:1:2630:a6ba:f759:774b:830c) (Quit: rcirc on GNU Emacs 27.1) |
| 03:01:47 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 264 seconds) |
| 03:01:56 | × | nineonine quits (~nineonine@S0106a0ff7073d5d5.vf.shawcable.net) (Ping timeout: 240 seconds) |
| 03:02:13 | → | Tario joins (~Tario@201.192.165.173) |
| 03:03:53 | × | thongpv87 quits (~thongpv87@103.6.151.121) (Quit: Lost terminal) |
| 03:04:35 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 03:09:25 | × | m0rphism1 quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 240 seconds) |
| 03:09:58 | → | Shailangsa_ joins (~shailangs@host86-186-177-234.range86-186.btcentralplus.com) |
| 03:10:04 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds) |
| 03:12:44 | × | glguy quits (x@freenode/staff/haskell.developer.glguy) (Read error: Connection reset by peer) |
| 03:13:05 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 03:13:16 | → | glguy joins (x@freenode/staff/haskell.developer.glguy) |
| 03:13:26 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 03:13:56 | → | halbGefressen joins (~halbGefre@2a02:810d:f40:2a9c:a4fe:2adc:248b:466f) |
| 03:14:54 | <halbGefressen> | Hi guys, I am trying to understand this definition of the faculty function, but I still don't get it: fac = fix \f x -> if x == 1 then 1 else x * f (x-1) |
| 03:15:02 | <halbGefressen> | What is going on here? |
| 03:15:07 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 03:16:08 | × | ezrakilty quits (~ezrakilty@75-172-109-5.tukw.qwest.net) (Remote host closed the connection) |
| 03:16:38 | <halbGefressen> | (the correct syntax is this, sorry:) fac = fix $ \f x -> if x == 1 then 1 else x * f (x-1) |
| 03:18:01 | → | drbean joins (~drbean@TC210-63-209-161.static.apol.com.tw) |
| 03:19:30 | <glguy> | halbGefressen, is the issue that it uses "fix"? |
| 03:19:32 | <mniip> | that's normally called the factorial |
| 03:19:51 | <glguy> | ?src fix |
| 03:19:51 | <lambdabot> | fix f = let x = f x in x |
| 03:19:53 | <halbGefressen> | i forgot how its called in english, I mean that |
| 03:20:02 | <halbGefressen> | yea, I don't get the use of fix here |
| 03:20:14 | <glguy> | Well, let's just inline the definition, then |
| 03:20:22 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:20:42 | <glguy> | fac = let g = (\f x -> if x == 1 then 1 else x * f (x-1)) g in g |
| 03:20:53 | × | berberman quits (~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in) |
| 03:20:55 | <glguy> | I renamed 'x' to 'g' to avoid clashing with your existing x |
| 03:20:59 | <glguy> | Good so far? |
| 03:21:17 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 03:21:21 | <halbGefressen> | ohh, I get it now |
| 03:21:35 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds) |
| 03:21:37 | <halbGefressen> | wait no |
| 03:21:44 | <glguy> | OK, let's keep going then |
| 03:21:53 | <glguy> | we'll apply the lambda expression to g |
| 03:22:10 | <glguy> | fac = let g = (\x -> if x == 1 then 1 else x * g (x-1)) in g |
| 03:22:28 | <glguy> | Are you OK with that? |
| 03:22:36 | <halbGefressen> | that seems to make sense |
| 03:22:50 | <glguy> | OK, and g = (\x -> ... is another way of writing, g x = ... |
| 03:22:51 | <halbGefressen> | wait, now we have a recursive function |
| 03:22:59 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 03:23:06 | <glguy> | fac = let g x = if x == 1 then 1 else x * g (x-1) in g |
| 03:23:07 | <halbGefressen> | or well, we had it all the time, but this time it looks more familiar |
| 03:23:24 | → | Codaraxis_ joins (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) |
| 03:23:59 | <halbGefressen> | ahhhh thank you, I think I got it |
| 03:24:01 | <halbGefressen> | :D |
| 03:24:04 | <glguy> | :) |
| 03:24:41 | e71_ | is now known as e71e71 |
| 03:24:47 | × | halbGefressen quits (~halbGefre@2a02:810d:f40:2a9c:a4fe:2adc:248b:466f) (Quit: halbGefressen) |
| 03:25:05 | × | theDon quits (~td@muedsl-82-207-238-229.citykom.de) (Ping timeout: 240 seconds) |
| 03:25:24 | e71e71 | is now known as e71_ |
| 03:26:45 | × | Codaraxis__ quits (Codaraxis@gateway/vpn/mullvad/codaraxis) (Ping timeout: 240 seconds) |
| 03:27:11 | → | theDon joins (~td@94.134.91.199) |
| 03:30:50 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
| 03:32:10 | × | Sheilong quits (uid293653@gateway/web/irccloud.com/x-ihpmwhrtqcetefmy) () |
| 03:36:30 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 03:38:23 | × | proteusguy quits (~proteusgu@cm-58-10-154-202.revip7.asianet.co.th) (Ping timeout: 264 seconds) |
| 03:38:52 | <orzo> | Is it feasible to use multiplicity 0 (context: LinearTypes) as a communication of intention that something be optimized away so that it is present only at compile-time? The Idris2 seems to use it? |
| 03:39:09 | <orzo> | Like Idris2 |
| 03:39:12 | <orzo> | i mean |
| 03:39:52 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 03:41:06 | → | FinnElija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
| 03:41:06 | finn_elija | is now known as Guest41169 |
| 03:41:06 | FinnElija | is now known as finn_elija |
| 03:41:29 | → | xirhtogal joins (~lagothrix@unaffiliated/lagothrix) |
| 03:41:29 | × | lagothrix quits (~lagothrix@unaffiliated/lagothrix) (Killed (orwell.freenode.net (Nickname regained by services))) |
| 03:41:29 | xirhtogal | is now known as lagothrix |
| 03:43:38 | <mniip> | orzo, currently the compiler makes no optimization decisions at all based on linearity |
| 03:43:52 | <mniip> | it's only additional statically checked restrictions at the moment |
| 03:44:43 | <orzo> | that's surely only because the feature is newish |
| 03:44:44 | × | Guest41169 quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds) |
| 03:45:26 | <mniip> | there's probably plans to change that |
| 03:45:30 | <mniip> | but on a very long scale I expect |
| 03:45:39 | <mniip> | it's no easy feat |
| 03:45:48 | <orzo> | hm |
| 03:46:11 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds) |
| 03:46:36 | <orzo> | say i want to update one field of a large record and the update is linear, then shouldn't it in-place modify the record instead of copying? |
| 03:47:00 | <koz_> | orzo: Theoretically, linear typing _can_ enable a lot of perf stuff. |
| 03:47:07 | <koz_> | Whether it _does_ or not is a matter for the codegen backend. |
| 03:49:05 | <mniip> | orzo, nope because the original value in the struct might be used elsewhere |
| 03:50:26 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
| 03:51:13 | × | mmmattyx quits (uid17782@gateway/web/irccloud.com/x-idtcxnqhmlqxtsid) (Quit: Connection closed for inactivity) |
| 03:51:13 | <mniip> | it's more about how a linear function can take ownership of an object such as an allocation |
| 03:51:23 | → | proteusguy joins (~proteusgu@cm-58-10-154-202.revip7.asianet.co.th) |
| 03:51:41 | <mniip> | removing the necessity for tracking the lifetime of that object with a GC |
| 03:51:55 | × | Aquazi quits (uid312403@gateway/web/irccloud.com/x-wxwbipkpfyibgvpa) (Quit: Connection closed for inactivity) |
| 03:53:03 | <mniip> | the allocation could be mutable yes, which amounts to call by mutable reference |
| 03:53:23 | <orzo> | are you saying a future optimization that enables in-place field update based on lineartypes is not possible or are you saying there's something about the way lineartypes is currently implemented that makes it not possible? |
| 03:53:23 | <mniip> | but that is now a different calling convention, and converting an immutable reference into a mutable one involves copying |
| 03:53:33 | <mniip> | and not all functions would benefit once you take that into account |
| 03:53:33 | × | catt quits (~r@31.124.181.226) (Remote host closed the connection) |
| 03:53:39 | → | ezrakilty joins (~ezrakilty@75-172-109-5.tukw.qwest.net) |
| 03:54:23 | <orzo> | if i thread the record through a bunch of computations and intermediate computations make field-updates, i don't see why the compiler can't be given the information that in-place update is safe using the lineartypes mechanism |
| 03:54:28 | <ski> | orzo : ".. and the update is linear, then shouldn't it in-place modify the record instead of copying?" -- not necessarily |
| 03:54:43 | <ski> | "linear" doesn't mean "unique reference" |
| 03:55:47 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 03:55:52 | <ski> | you can have a linear reference to an object, while there's also other extant references to the same object |
| 03:56:16 | → | catt joins (~r@31.124.181.226) |
| 03:56:36 | <ski> | if you were given a unique reference, and you're going to drop it, *then* an implementation could possibly reuse the memory in the construction of a new object |
| 03:56:37 | <mniip> | very simple example, f :: A -o A; x :: A, (x, f x) |
| 03:57:03 | <mniip> | yup, ownership transfer is actually a different contract than linearity |
| 03:57:30 | <ski> | (especially attractive if most components of the new object are to be the same as the ones in the old one, since then one wouldn't have to write to those sub-locations, even) |
| 03:58:07 | × | ezrakilty quits (~ezrakilty@75-172-109-5.tukw.qwest.net) (Client Quit) |
| 03:58:11 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 03:58:25 | <ski> | "uniqueness" expresses "hasn't been copied/shared in the past". "linearity" expresses "will not be copied/shared in the future" |
| 04:01:51 | <ski> | Clean and Mercury are two languages which incorporates uniqueness |
| 04:02:59 | <ski> | iirc, in the Linear Haskell paper, there was some example of achieving uniqueness, by using linearity and CPS |
| 04:03:00 | × | jpds_ quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 04:03:09 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds) |
| 04:03:22 | → | jpds_ joins (~jpds@gateway/tor-sasl/jpds) |
| 04:03:55 | <orzo> | well, maybe ghc will eventually recognize that use and optimize it the way i'm saying |
| 04:04:10 | <orzo> | the linearity+cps to achieve uniqueness and thus in-place updates |
| 04:05:18 | <ski> | possibly |
| 04:07:38 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 04:12:22 | × | RusAlex quits (~Chel@unaffiliated/rusalex) (Read error: Connection reset by peer) |
| 04:12:49 | × | soft-warm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 248 seconds) |
| 04:13:20 | → | RusAlex joins (~Chel@unaffiliated/rusalex) |
| 04:13:48 | × | Shailangsa_ quits (~shailangs@host86-186-177-234.range86-186.btcentralplus.com) () |
| 04:14:39 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
| 04:18:37 | × | RusAlex quits (~Chel@unaffiliated/rusalex) (Read error: Connection reset by peer) |
| 04:19:36 | → | RusAlex joins (~Chel@unaffiliated/rusalex) |
| 04:20:18 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 04:20:38 | <orzo> | linear-base has a linear monad class with do notation which makes a kind of linear cps convenient |
| 04:23:13 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 04:24:25 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
| 04:27:22 | × | sakirious0 quits (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Read error: Connection reset by peer) |
| 04:27:23 | → | sakirious02 joins (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) |
| 04:30:03 | <orzo> | would could have record-update sugar over Data.Array.Mutable.Linear |
| 04:30:06 | <orzo> | from linear-base |
| 04:30:20 | <orzo> | give us in-place field update using lineartypes |
| 04:30:37 | <orzo> | jsut not in the naive way of mniip's example |
| 04:30:57 | <mniip> | you still need to freeze |
| 04:31:05 | <mniip> | an expensive operation |
| 04:34:08 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 04:35:25 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
| 04:35:39 | → | shailangsa joins (~shailangs@host86-186-177-234.range86-186.btcentralplus.com) |
| 04:37:18 | <orzo> | freeze :: Array a -> Ur (Vector a) |
| 04:37:28 | <orzo> | haddock: O(1) Convert an Array to an immutable Vector (from vector package). |
| 04:37:51 | <orzo> | it's documented as inexpensive |
| 04:38:43 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 272 seconds) |
| 04:38:50 | → | toorevitimirp joins (~tooreviti@117.182.181.145) |
| 04:40:04 | <mniip> | then the converse operation is expensive |
| 04:40:53 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 04:45:25 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
| 04:47:16 | × | mmohammadi9812 quits (~mmohammad@188.210.96.120) (Ping timeout: 240 seconds) |
| 04:47:32 | → | mmohammadi9812 joins (~mmohammad@188.210.122.58) |
| 04:48:51 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 04:49:13 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 256 seconds) |
| 04:49:34 | → | Tario joins (~Tario@201.192.165.173) |
| 04:49:45 | × | jespada quits (~jespada@90.254.242.138) (Ping timeout: 240 seconds) |
| 04:50:43 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 04:52:03 | × | mmohammadi9812 quits (~mmohammad@188.210.122.58) (Ping timeout: 256 seconds) |
| 04:52:25 | → | jespada joins (~jespada@90.254.242.138) |
| 04:53:49 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
| 04:54:19 | → | mmohammadi9812 joins (~mmohammad@188.210.122.58) |
| 04:54:43 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 04:57:06 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 04:59:05 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
| 05:00:18 | × | catt quits (~r@31.124.181.226) (Remote host closed the connection) |
| 05:02:54 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-102-193.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 05:10:33 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 05:10:45 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 256 seconds) |
| 05:11:02 | → | acidjnk_new joins (~acidjnk@p200300d0c704e77020ba0d2c1a7fed29.dip0.t-ipconnect.de) |
| 05:13:38 | × | urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna) |
| 05:14:05 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 05:14:16 | × | pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!) |
| 05:17:27 | × | brimstone1 quits (~brimstone@185.204.1.185) (Remote host closed the connection) |
| 05:18:56 | → | Jeanne-Kamikaze joins (~Jeanne-Ka@static-198-54-134-171.cust.tzulo.com) |
| 05:19:09 | × | Jeanne-Kamikaze quits (~Jeanne-Ka@static-198-54-134-171.cust.tzulo.com) (Client Quit) |
| 05:19:45 | → | catt joins (~r@31.124.181.226) |
| 05:21:56 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
| 05:24:16 | × | quinn quits (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.1 - https://znc.in) |
| 05:26:36 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 05:32:45 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:33:52 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 05:35:16 | × | mmohammadi9812 quits (~mmohammad@188.210.122.58) (Ping timeout: 240 seconds) |
| 05:35:41 | → | mmohammadi9812 joins (~mmohammad@5.115.1.251) |
| 05:37:41 | → | Saukk joins (~Saukk@83-148-239-3.dynamic.lounea.fi) |
| 05:38:05 | × | gzj quits (~gzj@unaffiliated/gzj) (Ping timeout: 240 seconds) |
| 05:38:31 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
| 05:48:15 | → | nicecoats joins (~textual@h235.145.88.75.dynamic.ip.windstream.net) |
| 05:49:03 | → | betrion[m] joins (betrionmat@gateway/shell/matrix.org/x-kgnrjpfwruxoxiik) |
| 05:49:40 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 05:51:00 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:51:40 | × | nicecoats quits (~textual@h235.145.88.75.dynamic.ip.windstream.net) (Client Quit) |
| 05:51:58 | → | nicecoats joins (~nicecoats@h235.145.88.75.dynamic.ip.windstream.net) |
| 05:53:20 | → | conal joins (~conal@64.71.133.70) |
| 05:54:35 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds) |
| 05:56:44 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 05:58:17 | → | mirrorbird joins (~psutcliff@2a00:801:42d:5efa:6585:c362:5f1c:676) |
| 05:58:37 | × | raym quits (~ray@45.64.220.55) (Quit: leaving) |
| 05:58:55 | → | raym joins (~ray@45.64.220.55) |
| 05:59:17 | → | conal joins (~conal@64.71.133.70) |
| 06:00:22 | × | nicecoats quits (~nicecoats@h235.145.88.75.dynamic.ip.windstream.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 06:00:26 | × | raym quits (~ray@45.64.220.55) (Client Quit) |
| 06:00:45 | → | nicecoats joins (~nicecoats@h235.145.88.75.dynamic.ip.windstream.net) |
| 06:01:57 | × | nicecoats quits (~nicecoats@h235.145.88.75.dynamic.ip.windstream.net) (Client Quit) |
| 06:02:29 | → | raym joins (~ray@45.64.220.55) |
| 06:03:55 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 06:04:53 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 06:06:11 | → | conal joins (~conal@64.71.133.70) |
| 06:06:23 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 06:08:56 | × | slack1256 quits (~slack1256@dvc-186-186-101-190.movil.vtr.net) (Remote host closed the connection) |
| 06:15:05 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
| 06:15:05 | × | conal quits (~conal@64.71.133.70) (Read error: Connection reset by peer) |
| 06:17:11 | → | Codaraxis__ joins (Codaraxis@gateway/vpn/mullvad/codaraxis) |
| 06:17:16 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 06:19:26 | → | conal joins (~conal@64.71.133.70) |
| 06:20:11 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 06:20:43 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 06:20:59 | × | Codaraxis_ quits (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 264 seconds) |
| 06:22:20 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 06:24:47 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 06:25:21 | × | desophos quits (~desophos@2601:249:1680:a570:6c5d:6065:851c:11c8) (Read error: Connection reset by peer) |
| 06:25:33 | × | eacameron quits (uid256985@gateway/web/irccloud.com/x-aohjgkptcanyniwh) (Quit: Connection closed for inactivity) |
| 06:26:44 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 256 seconds) |
| 06:26:54 | → | ixaxaar joins (~ixaxaar@49.207.210.215) |
| 06:30:23 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 06:30:36 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 06:33:36 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 240 seconds) |
| 06:33:56 | → | Tario joins (~Tario@200.119.186.212) |
| 06:41:10 | × | Wuzzy quits (~Wuzzy@p549c9562.dip0.t-ipconnect.de) (Quit: Wuzzy) |
| 06:44:40 | → | samik joins (67578edb@103.87.142.219) |
| 06:50:23 | × | Tario quits (~Tario@200.119.186.212) (Ping timeout: 264 seconds) |
| 06:50:27 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 06:50:58 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 06:51:03 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 06:51:35 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
| 06:52:50 | × | danso quits (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 264 seconds) |
| 06:53:16 | → | danso joins (~dan@d67-193-121-2.home3.cgocable.net) |
| 06:54:15 | × | Nikotiini quits (~ubuntu@ec2-52-213-118-142.eu-west-1.compute.amazonaws.com) (Ping timeout: 272 seconds) |
| 06:55:20 | → | forgottenone joins (~forgotten@176.42.24.169) |
| 06:55:25 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
| 06:56:59 | × | mmohammadi9812 quits (~mmohammad@5.115.1.251) (Ping timeout: 264 seconds) |
| 06:57:46 | × | samik quits (67578edb@103.87.142.219) (Quit: Ping timeout (120 seconds)) |
| 06:58:41 | → | mmohammadi9812 joins (~mmohammad@188.210.122.58) |
| 06:59:54 | → | Nikotiini joins (~ubuntu@ec2-52-213-118-142.eu-west-1.compute.amazonaws.com) |
| 07:03:40 | × | Saukk quits (~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection) |
| 07:03:58 | → | samik joins (67578edb@103.87.142.219) |
| 07:04:25 | × | rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 240 seconds) |
| 07:10:36 | × | mannin quits (mannin@90.221.74.173) (Ping timeout: 240 seconds) |
| 07:10:47 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
| 07:11:08 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 07:15:25 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
| 07:17:33 | <samik> | while installing regex-posix with stack I'm getting build error saying there is no file regex.h, this is on Windows. How can I resolve this? |
| 07:19:22 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:9f3:d193:94ea:a2fe) (Remote host closed the connection) |
| 07:19:26 | → | Tario joins (~Tario@200.119.184.142) |
| 07:23:02 | × | forgottenone quits (~forgotten@176.42.24.169) (Read error: Connection reset by peer) |
| 07:23:18 | → | forgottenone joins (~forgotten@176.42.24.169) |
| 07:24:16 | <samik> | found the solution here https://github.com/haskell-hvr/regex-posix/issues/4#issuecomment-610804288 Had to install that package from mingw |
| 07:24:46 | <samik> | msys* |
| 07:26:02 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 07:30:54 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 265 seconds) |
| 07:31:33 | → | Lowl3v3l joins (~Lowl3v3l@dslb-002-203-233-121.002.203.pools.vodafone-ip.de) |
| 07:32:35 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 07:34:23 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 07:38:22 | × | Tario quits (~Tario@200.119.184.142) (Ping timeout: 264 seconds) |
| 07:41:39 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 07:42:58 | → | mananamenos_ joins (~mananamen@84.122.202.215.dyn.user.ono.com) |
| 07:43:50 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 07:49:12 | → | fosky joins (~fosky@124.181.1.167) |
| 07:49:33 | × | HarveyPwca quits (~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net) (Quit: Leaving) |
| 07:54:16 | × | mananamenos_ quits (~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 240 seconds) |
| 07:56:44 | → | idhugo joins (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) |
| 08:04:22 | × | acidjnk_new quits (~acidjnk@p200300d0c704e77020ba0d2c1a7fed29.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 08:05:51 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
| 08:08:27 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 08:09:49 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection) |
| 08:10:45 | × | Rudd0 quits (~Rudd0@185.189.115.108) (Read error: Connection reset by peer) |
| 08:11:26 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) |
| 08:12:57 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
| 08:14:22 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Remote host closed the connection) |
| 08:14:34 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 08:16:51 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection) |
| 08:17:31 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 08:18:58 | × | revprez_anzio quits (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Quit: Lost terminal) |
| 08:19:52 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:9f3:d193:94ea:a2fe) |
| 08:20:42 | → | revprez_anzio joins (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) |
| 08:21:25 | → | jchia[m] joins (jchiamatri@gateway/shell/matrix.org/x-bjjkanbayhvdzkzv) |
| 08:21:35 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 08:21:52 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 260 seconds) |
| 08:23:13 | × | styledash quits (~styledash@157.230.173.136) (Quit: Ping timeout (120 seconds)) |
| 08:23:37 | → | styledash joins (~styledash@157.230.173.136) |
| 08:24:38 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:9f3:d193:94ea:a2fe) (Ping timeout: 264 seconds) |
| 08:28:13 | → | mananamenos_ joins (~mananamen@84.122.202.215.dyn.user.ono.com) |
| 08:30:33 | → | acidjnk_new joins (~acidjnk@p200300d0c704e77020ba0d2c1a7fed29.dip0.t-ipconnect.de) |
| 08:32:25 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 08:35:48 | → | dnlkrgr joins (~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) |
| 08:36:33 | → | LKoen joins (~LKoen@107.173.9.109.rev.sfr.net) |
| 08:43:57 | × | jedws quits (~jedws@121.209.199.128) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 08:45:12 | → | Franciman joins (~francesco@host-95-235-155-82.retail.telecomitalia.it) |
| 08:47:24 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 08:47:26 | ← | samik parts (67578edb@103.87.142.219) () |
| 08:48:54 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 08:51:08 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 08:52:33 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection) |
| 08:53:35 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 08:54:02 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
| 08:56:20 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 08:58:02 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 260 seconds) |
| 09:01:41 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 09:02:58 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection) |
| 09:04:00 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 09:06:43 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 09:08:32 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 260 seconds) |
| 09:09:52 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 09:11:05 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 09:12:24 | × | Maxdamantus quits (~Maxdamant@unaffiliated/maxdamantus) (Ping timeout: 265 seconds) |
| 09:12:52 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 09:13:47 | → | Maxdamantus joins (~Maxdamant@unaffiliated/maxdamantus) |
| 09:14:20 | → | jonatanb joins (~jonatanb@83.24.13.14.ipv4.supernova.orange.pl) |
| 09:16:58 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
| 09:18:25 | × | drbean quits (~drbean@TC210-63-209-161.static.apol.com.tw) (Ping timeout: 240 seconds) |
| 09:18:47 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 09:21:03 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:5c7e:49cf:6f49:c8ad) |
| 09:21:12 | × | jonatanb quits (~jonatanb@83.24.13.14.ipv4.supernova.orange.pl) (Remote host closed the connection) |
| 09:23:04 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 09:23:26 | × | kini quits (~kini@unaffiliated/kini) (Ping timeout: 264 seconds) |
| 09:23:26 | × | fosky quits (~fosky@124.181.1.167) (Quit: Leaving) |
| 09:23:36 | → | krkini joins (~kini@unaffiliated/kini) |
| 09:24:17 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 09:24:50 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 09:25:50 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:5c7e:49cf:6f49:c8ad) (Ping timeout: 264 seconds) |
| 09:28:11 | × | xelxebar_ quits (~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection) |
| 09:28:31 | → | xelxebar joins (~xelxebar@gateway/tor-sasl/xelxebar) |
| 09:28:52 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
| 09:29:25 | × | idhugo quits (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Ping timeout: 272 seconds) |
| 09:31:44 | × | toorevitimirp quits (~tooreviti@117.182.181.145) (Remote host closed the connection) |
| 09:32:32 | → | Ramoun joins (c53b5c74@197.59.92.116) |
| 09:32:50 | × | Ramoun quits (c53b5c74@197.59.92.116) (Client Quit) |
| 09:33:11 | → | Ramoun joins (c53b5c74@197.59.92.116) |
| 09:34:53 | → | toorevitimirp joins (~tooreviti@117.182.181.145) |
| 09:35:15 | → | jonatanb joins (~jonatanb@83.24.13.14.ipv4.supernova.orange.pl) |
| 09:36:02 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 09:37:50 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection) |
| 09:38:29 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) |
| 09:41:16 | × | timCF quits (~i.tkachuk@m91-129-101-103.cust.tele2.ee) (Ping timeout: 240 seconds) |
| 09:41:44 | × | Ramoun quits (c53b5c74@197.59.92.116) (Quit: Connection closed) |
| 09:42:57 | × | acidjnk_new quits (~acidjnk@p200300d0c704e77020ba0d2c1a7fed29.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 09:43:14 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Ping timeout: 264 seconds) |
| 09:44:30 | → | fosky joins (~fosky@124.181.1.167) |
| 09:44:34 | × | fosky quits (~fosky@124.181.1.167) (Read error: Connection reset by peer) |
| 09:45:30 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 09:47:47 | × | Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
| 09:48:06 | → | Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
| 09:49:35 | → | coot joins (~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) |
| 09:50:07 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 09:52:27 | → | m0rphism1 joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
| 09:54:40 | → | fendor_ joins (~fendor@178.115.131.1.wireless.dyn.drei.com) |
| 09:56:39 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 09:56:39 | × | Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
| 09:57:17 | × | fendor quits (~fendor@178.115.130.239.wireless.dyn.drei.com) (Ping timeout: 272 seconds) |
| 09:57:24 | → | Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
| 09:58:14 | → | noop_noob joins (b816797e@184.22.121.126) |
| 10:00:34 | × | uehhtnefa^ quits (uehhtnefa@ip98-184-89-2.mc.at.cox.net) () |
| 10:01:43 | × | Narinas quits (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
| 10:01:50 | × | jonatanb quits (~jonatanb@83.24.13.14.ipv4.supernova.orange.pl) (Remote host closed the connection) |
| 10:01:58 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 10:02:00 | → | Narinas joins (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
| 10:05:15 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection) |
| 10:05:55 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 10:08:58 | → | p-core joins (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) |
| 10:09:58 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-aeybxknatgemlfic) (Quit: Connection closed for inactivity) |
| 10:10:22 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 260 seconds) |
| 10:11:58 | → | Rudd0 joins (~Rudd0@185.189.115.108) |
| 10:16:21 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
| 10:21:46 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:5c7e:49cf:6f49:c8ad) |
| 10:23:32 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 10:25:50 | × | p-core quits (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Ping timeout: 264 seconds) |
| 10:26:26 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:5c7e:49cf:6f49:c8ad) (Ping timeout: 264 seconds) |
| 10:26:45 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds) |
| 10:26:49 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 10:27:04 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:27:23 | → | Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 10:27:30 | → | miguel_clean joins (~Miguel@89-72-187-203.dynamic.chello.pl) |
| 10:31:46 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
| 10:32:21 | → | nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
| 10:32:36 | → | bitmagie joins (~Thunderbi@200116b8065856001599e2e0407cbc41.dip.versatel-1u1.de) |
| 10:32:42 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 10:32:53 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 10:33:35 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 10:35:47 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 10:36:56 | → | hexagenic joins (~mattias@2001:2002:51e0:74c9:5c3d:79a1:6bfe:fd56) |
| 10:37:10 | × | nhs quits (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds) |
| 10:37:23 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 10:37:28 | × | toorevitimirp quits (~tooreviti@117.182.181.145) (Remote host closed the connection) |
| 10:38:00 | → | jonatanb joins (~jonatanb@83.24.13.14.ipv4.supernova.orange.pl) |
| 10:38:07 | → | tsrt^ joins (tsrt@ip98-184-89-2.mc.at.cox.net) |
| 10:38:43 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection) |
| 10:39:45 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 10:44:26 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 264 seconds) |
| 10:44:35 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 10:46:10 | → | revtintin joins (~revtintin@42.61.242.247) |
| 10:46:12 | <merijn> | "fixed point function" or "fixpoint function" or some other spelling entirely? |
| 10:46:57 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 10:47:48 | × | coot quits (~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 10:49:25 | × | raym quits (~ray@45.64.220.55) (Ping timeout: 240 seconds) |
| 10:49:42 | × | Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
| 10:51:25 | → | raym joins (~ray@45.64.220.55) |
| 10:52:25 | × | darjeeling_ quits (~darjeelin@115.215.41.65) (Ping timeout: 240 seconds) |
| 10:52:55 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds) |
| 10:54:33 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Ping timeout: 268 seconds) |
| 10:54:49 | → | darjeeling_ joins (~darjeelin@115.215.41.65) |
| 10:55:13 | × | jonatanb quits (~jonatanb@83.24.13.14.ipv4.supernova.orange.pl) (Remote host closed the connection) |
| 10:57:16 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 10:57:41 | <wz1000> | any recommendations for a very lightweight extensible sum library? |
| 10:58:12 | <merijn> | "no"? :p |
| 10:58:43 | <merijn> | I've only seen heavyweight ones :p |
| 10:59:25 | <maerwald> | wz1000: https://hackage.haskell.org/package/haskus-utils-variant-3.0/docs/Haskus-Utils-Variant.html |
| 10:59:33 | <maerwald> | and merijn is correct |
| 11:01:32 | → | bashke joins (bashke@90.221.74.173) |
| 11:02:25 | <merijn> | My main take away from "extensible sum" libraries: "If it ever comes to that, just rewrite your shit in Idris or something" :p |
| 11:03:36 | <wz1000> | I just want anonymous sums without `Left (Right (Left (Left foo)))` |
| 11:04:02 | <maerwald> | wz1000: use typescript :p |
| 11:04:36 | <merijn> | wz1000: You're in a better position to fix that in GHC than most, I think ;) |
| 11:04:36 | <wz1000> | I need it for haskell bindings to a typescript api... |
| 11:08:14 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 11:08:30 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 11:09:19 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 11:10:39 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 11:11:10 | × | Xnuk quits (~xnuk@vultr.xnu.kr) (Quit: ZNC - https://znc.in) |
| 11:11:26 | → | Xnuk joins (~xnuk@45.76.202.58) |
| 11:11:52 | → | kritzefitz joins (~kritzefit@212.86.56.80) |
| 11:12:13 | <sshine> | is RecordDotSyntax in GHC 8.10? |
| 11:12:28 | <merijn> | Eh...consult the user guide? :p |
| 11:12:49 | <sshine> | oh, https://gitlab.haskell.org/ghc/ghc/-/issues/18599 |
| 11:13:29 | <sshine> | merijn, thanks :) |
| 11:13:56 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
| 11:14:23 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 11:15:15 | <merijn> | I have learned one obvious thing for my own language design |
| 11:15:40 | <merijn> | I will *definitely* be making spaces around operators mandatory in any future language I design |
| 11:16:08 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection) |
| 11:16:11 | <merijn> | That would have avoid 90% of this nonsense >.> |
| 11:16:45 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 11:21:38 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 264 seconds) |
| 11:21:45 | × | dnlkrgr quits (~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 240 seconds) |
| 11:22:23 | × | noop_noob quits (b816797e@184.22.121.126) (Quit: Connection closed) |
| 11:22:30 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:5c7e:49cf:6f49:c8ad) |
| 11:24:38 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 11:27:02 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:5c7e:49cf:6f49:c8ad) (Ping timeout: 264 seconds) |
| 11:29:05 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 11:39:45 | × | lotuseater quits (~user@2a02:908:fbd1:b0a0:d195:6d09:bec7:c1f9) (Remote host closed the connection) |
| 11:40:08 | <sshine> | haha |
| 11:40:49 | <merijn> | sshine: That's not even a joke, the use of . is already a clusterfuck and RecordDotSyntax just makes it even worse :\ |
| 11:41:08 | <merijn> | > map (Just.even) [1..5] |
| 11:41:09 | <lambdabot> | error: |
| 11:41:09 | <lambdabot> | Not in scope: ‘Just.even’ |
| 11:41:09 | <lambdabot> | No module named ‘Just’ is imported. |
| 11:41:11 | × | LKoen quits (~LKoen@107.173.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”) |
| 11:41:14 | <merijn> | > map (Just .even) [1..5] |
| 11:41:16 | <lambdabot> | [Just False,Just True,Just False,Just True,Just False] |
| 11:41:21 | <sshine> | merijn, a friend asked me what the status was, and revisiting this, I just had to think "wait, this is probably not that trivial to parse." |
| 11:41:22 | <merijn> | > map (Just. even) [1..5] |
| 11:41:24 | <lambdabot> | [Just False,Just True,Just False,Just True,Just False] |
| 11:41:32 | <merijn> | madness |
| 11:42:03 | <maerwald> | not too bad |
| 11:42:05 | <sshine> | yeah, mandatory spacing would solve some things here :) |
| 11:42:08 | <merijn> | > map (not.even) [1..5] -- but this somehow *is* correct |
| 11:42:09 | <lambdabot> | [True,False,True,False,True] |
| 11:42:25 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 11:42:39 | <sshine> | I hadn't thought about that. |
| 11:42:51 | <merijn> | maerwald: Yeah, but if we'd just mandated spaces around every operator the entire ambiguity between qualified names and . wouldn't exist |
| 11:42:54 | <maerwald> | if you can come up with an example where removing/adding whitespaces still compiles, but changes semantics of the program... that would be more convincing |
| 11:42:58 | <sshine> | also, I don't pretend to want to solve this type of problem for real-world scenarios like Haskelll |
| 11:43:12 | <maerwald> | and I'm sure that's possible |
| 11:43:19 | <merijn> | maerwald: The problem is that you now need like 6 special case rules to understand the meaning of . |
| 11:43:28 | <sshine> | merijn, yeah but you also have to think of "how many programs do we break by changing this?" |
| 11:43:37 | <merijn> | Which is either "field accessor", "qualified name" or the operator |
| 11:43:37 | <sshine> | merijn, and "how much do we care about that?" |
| 11:43:45 | <merijn> | depending on the exact spacing |
| 11:44:05 | <maerwald> | merijn: i use fmap instead of . |
| 11:44:07 | <maerwald> | xD |
| 11:44:19 | <merijn> | For a new language I don't think "mandatory space around operators" has almost no negative impact |
| 11:44:28 | <merijn> | And this whole category of ambiguity just disappears |
| 11:44:47 | <merijn> | I don't think Haskell can ever change this, though, sadly |
| 11:45:01 | <sshine> | merijn, maybe "enable RecordDotSyntax mandates more spacing" isn't bad either? |
| 11:45:18 | <merijn> | sshine: That makes the parser even more of a clusterfuck, though |
| 11:45:20 | <sshine> | merijn, it just post-pones the problem when RecordDotSyntax should be enabled by default. |
| 11:45:26 | <sshine> | merijn, ah yeah. |
| 11:45:29 | <sshine> | legacy never dies. |
| 11:45:47 | <merijn> | tbh, I think RecordDotSyntax and it's ilk are a bad idea |
| 11:46:18 | <sshine> | I think we should just accept that software breaks and change the syntax every 6 months. |
| 11:46:36 | → | lotuseater joins (~user@ip-176-198-181-127.hsi05.unitymediagroup.de) |
| 11:46:40 | <sshine> | "Is this Haskell 2021-06?" |
| 11:46:42 | <maerwald> | yeah... it'll make haskell vanish from industry |
| 11:46:59 | <merijn> | tbh, I have infinitely more faith in the usefulness of -XNoFieldSelectors |
| 11:47:30 | <merijn> | All these tiny syntactical extensions that basically no one is using just make *everything* more complicated and I'm not convinced by the (supposed) value |
| 11:47:33 | <sshine> | oh... then you can have overlapping field names? |
| 11:48:06 | <sshine> | I think if you don't consider the costs, having dot syntax for accessing records is nice and understandable. |
| 11:48:07 | <merijn> | sshine: You can already do that, by simply, not defining them in the same module |
| 11:48:18 | <maerwald> | I think it should be possible to support multiple syntax flavors and then have some GHC extension require a certain flavor |
| 11:48:26 | <merijn> | sshine: The whole problem is people inventing these syntactical extensions without considering the cost |
| 11:48:28 | <sshine> | merijn, that sounds convenient. |
| 11:48:39 | <merijn> | sshine: tbh, I think NoFieldSelectors has a *much* more useful usecase |
| 11:48:49 | <wz1000> | I wonder if the record dot syntax implementation still lets you write unsafeCoerce like regular record updates |
| 11:48:56 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 11:48:56 | <merijn> | sshine: Because it means you can finally use record syntax for sumtypes |
| 11:49:04 | <sshine> | maerwald, I think there is a future in Unison's approach to syntax. we're just not there yet at all. |
| 11:49:32 | <merijn> | sshine: I mean, you already can, but you get partial field accessors that will crash when used on the wrong constructor |
| 11:50:28 | <merijn> | sshine: With NoFieldSelectors it doesn't generate any selectors at all, you must use record pattern matching, NamedFieldPuns, and/or RecordWildCards for matching or constructing records |
| 11:50:36 | <sshine> | merijn, I buy it. so, you can always generate them *when needed*. kinda like Eq, Ord, Show. |
| 11:50:41 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection) |
| 11:51:13 | <merijn> | sshine: Something like this: https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/model-src/ModelOptions.hs#L63-L97 |
| 11:51:14 | <sshine> | merijn, I pretty often use RecordWildCards anyway. |
| 11:51:19 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 11:51:38 | <merijn> | sshine: Is currently unsafe as hell, but dropping the record selectors would suck |
| 11:51:50 | <sshine> | merijn, right... not having partial record getters is a pretty good argument in itself. :) |
| 11:52:15 | <merijn> | sshine: Plus, that frees up the selector names for lenses/prisms |
| 11:52:15 | → | Saukk joins (~Saukk@83-148-239-3.dynamic.lounea.fi) |
| 11:52:31 | <merijn> | (which was one of the other reasons for it) |
| 11:52:31 | <sshine> | merijn, I guess generating record getters that aren't partial is another strategy that NoFieldSelectors would also open up for? |
| 11:52:56 | <merijn> | All in all that seems like the much more sensible approach to me |
| 11:53:15 | <merijn> | Doesn't require syntactical changes, gets you quite a lot of utility/flexibility |
| 11:53:31 | <sshine> | actually removes stuff |
| 11:53:45 | <maerwald> | and then total record selectors for open sum types |
| 11:53:47 | <merijn> | I think there's like 12 extensions for records or something by now and I don't know *any* of them, because nobody uses them |
| 11:53:53 | sshine | feels more productive when he deletes things at work. :p |
| 11:54:22 | <merijn> | But they all complicate the parser, require people to keep track of if/when they're enabled and lookup whatever it was they did |
| 11:54:31 | <sshine> | merijn, you don't use RecordWildCards? |
| 11:54:56 | <merijn> | sshine: I use NamedFieldPuns/RecordWildCards, but I try and avoid the latter if possible |
| 11:55:10 | <sshine> | why? |
| 11:55:23 | <merijn> | sshine: But we got OverloadedLabels, DuplicateRecordFields, and whatever |
| 11:55:34 | <sshine> | yeah I honestly don't even know what they do. |
| 11:55:37 | <merijn> | sshine: Because recordwildcards requires you to remember wtf you brought in scope |
| 11:55:45 | <sshine> | well, I understand DuplicateRecordFields. |
| 11:55:50 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 264 seconds) |
| 11:55:53 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 11:56:10 | <sshine> | it requires you to go and look at the data definition, yeah. |
| 11:56:12 | <merijn> | sshine: And everyone on reddit is always like "yeah! this is amazing" |
| 11:56:23 | <sshine> | merijn, that is a good enough reason to dislike it! |
| 11:56:38 | <merijn> | But I wonder how many of those people circlejerking about record extension number 15 are actually writing Haskell codebases of non-trivial size |
| 11:57:11 | <sshine> | I try to do the opposite of what Reddit says. otherwise I'd be neck-deep in GameStop shares. |
| 11:57:21 | <maerwald> | :D |
| 11:57:22 | <merijn> | I'm using some nested record (only 2-3 levels of nesting, though) in my code without lenses and in terms of *actual* pain it's causing me is about...2-3 out of 10? |
| 11:57:28 | <merijn> | Like, sure, it's annoying |
| 11:57:49 | <merijn> | But man, is it nowhere *near* the level of shit I have to deal with in C++/Python |
| 11:58:08 | <merijn> | Maybe it peaks to 4 sometimes |
| 11:59:49 | <sshine> | merijn, I don't ever have a data model that makes me feel the need to use lenses just for accessing records. but I can't claim that having some stupid, real-world data model doesn't eventually necessitate it, because I haven't tried it. |
| 12:00:08 | <maerwald> | it doesn't |
| 12:00:16 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 12:00:18 | <maerwald> | it just makes it more convenient... sometimes |
| 12:00:23 | <merijn> | Like, this https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/TrainConfig.hs#L52-L83 is ugly as shit, sure. But you know what, aside from writing it the first time and being an eyesore it's actually pretty maintainabl |
| 12:00:39 | <sshine> | I can only say that if I ever have to deal with this huge 50-100 different data type model in Haskell, as I've experienced working for companies in other languages, I'd still think that it'd be infinitely better just using custom helper getters/setters. :) |
| 12:00:58 | <merijn> | I think a lot of the extension circlejerking is the same bad habit you see in many dynamic languages |
| 12:01:05 | <merijn> | laziness over predictability |
| 12:01:21 | <merijn> | "I wanna do this automagically, writing only 1 single function that magically does what I want" |
| 12:01:22 | <maerwald> | sshine: if you have a typed API with a bazillion data types (common for large servant APIs)... then you want autogenerated accessors |
| 12:01:27 | <merijn> | You see the same in packaging, etc. |
| 12:01:37 | <sshine> | maerwald, I'm sure I do. :) |
| 12:01:54 | <merijn> | Just do it explicitly and directly and if the pattern occurs so often to be annoying you can always abstract it out |
| 12:02:00 | <sshine> | maerwald, when that happens I can join the Reddit circlejerk session about what GHC extensions will provide the best user experience. :-D |
| 12:02:59 | <maerwald> | right and brag about how much investing time in esoteric extensions has boosted programmer ego.. err, i mean boosted productivity |
| 12:03:19 | <merijn> | There's a bunch of tiny syntax extensions that should just be auto-includes in the next report, I'm not against those (NumDecimals, HexFloats, BangPatterns, TupleSections, for example) |
| 12:03:25 | <sshine> | RecordWildCards certainly boosts my ego. I feel so smart when I use it. |
| 12:03:31 | <sshine> | s/smart/lazy/ |
| 12:03:57 | <maerwald> | I use it too and I think it's quite well-defined |
| 12:03:58 | <sshine> | I think if there's any downside to this, it is some cost over time I can't correctly predict. |
| 12:06:23 | <sshine> | question: if I have a data type, data Foo { bar :: Int, baz :: Bool }, and I create it with, Foo 5 True, then if I extend the type, I'll get a type error because of Foo's arity. but if I do, Foo { bar = 5, baz = True }, and I extend the type, it'll just assume I want the new field undefined, right? I don't like this. Foo 5 True is obscure, and Foo { bar = 5, baz = True } is explicit but unsafe. what am I |
| 12:06:28 | <merijn> | sshine: I mean, this is really not so bad: https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/Query/Train.hs#L42-L58 |
| 12:06:29 | <sshine> | missing? |
| 12:06:46 | <maerwald> | but although I appreciate it I don't think it should be part of the language |
| 12:06:57 | <merijn> | sshine: I believe that's a warning/error by default in -Wall ? |
| 12:07:07 | <merijn> | maerwald: NamedFieldPuns should be, though |
| 12:07:26 | <sshine> | merijn, oh, okay. good. then I just historically forgot to enable -Wall by default. |
| 12:07:27 | → | fendor joins (~fendor@178.115.131.1.wireless.dyn.drei.com) |
| 12:08:02 | <merijn> | sshine: https://downloads.haskell.org/ghc/latest/docs/html/users_guide/using-warnings.html#ghc-flag--Wmissing-fields |
| 12:08:17 | <sshine> | merijn, thx |
| 12:08:37 | <merijn> | -Werror=missing-fields :p |
| 12:11:06 | → | jonatanb joins (~jonatanb@83.24.13.14.ipv4.supernova.orange.pl) |
| 12:11:13 | × | jonatanb quits (~jonatanb@83.24.13.14.ipv4.supernova.orange.pl) (Remote host closed the connection) |
| 12:11:38 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 12:11:41 | <sshine> | right :) I think I've enabled that in my later projects, but I hadn't thought as far as it'd solve this particular problem. :-D |
| 12:16:19 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 12:20:28 | → | Jamalaka joins (~Jamalaka@185.163.110.109) |
| 12:22:46 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 12:23:47 | → | drbean joins (~drbean@TC210-63-209-66.static.apol.com.tw) |
| 12:24:10 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 12:24:31 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection) |
| 12:25:09 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 12:25:26 | × | Jamalaka quits (~Jamalaka@185.163.110.109) (Remote host closed the connection) |
| 12:27:45 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 12:28:18 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 12:28:51 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 12:30:02 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 264 seconds) |
| 12:32:46 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 12:33:20 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 12:34:07 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 12:34:30 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection) |
| 12:35:29 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 12:35:58 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
| 12:36:03 | → | aveltras joins (uid364989@gateway/web/irccloud.com/x-lhtbuspbkzjkrfxv) |
| 12:39:02 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
| 12:39:02 | → | ADG1089__ joins (~aditya@223.236.190.35) |
| 12:40:14 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 264 seconds) |
| 12:44:59 | → | __monty__ joins (~toonn@unaffiliated/toonn) |
| 12:51:31 | × | jespada quits (~jespada@90.254.242.138) (Read error: Connection reset by peer) |
| 12:52:11 | → | jespada joins (~jespada@90.254.242.138) |
| 12:53:28 | × | bitmagie quits (~Thunderbi@200116b8065856001599e2e0407cbc41.dip.versatel-1u1.de) (Quit: bitmagie) |
| 12:55:12 | × | revtintin quits (~revtintin@42.61.242.247) (Quit: WeeChat 1.9.1) |
| 12:58:08 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 12:58:29 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 13:03:24 | → | hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 13:04:18 | → | davr0s joins (~davrs@host86-185-99-39.range86-185.btcentralplus.com) |
| 13:04:23 | × | davr0s quits (~davrs@host86-185-99-39.range86-185.btcentralplus.com) (Remote host closed the connection) |
| 13:05:54 | × | hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds) |
| 13:07:34 | × | sayola quits (~vekto@dslb-002-201-085-014.002.201.pools.vodafone-ip.de) (Read error: Connection reset by peer) |
| 13:08:22 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 264 seconds) |
| 13:11:43 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 13:13:03 | × | perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.0) |
| 13:13:36 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection) |
| 13:14:16 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) |
| 13:18:41 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 258 seconds) |
| 13:19:34 | → | perrier-jouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 13:21:02 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 13:23:11 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
| 13:23:22 | × | darjeeling_ quits (~darjeelin@115.215.41.65) (Ping timeout: 246 seconds) |
| 13:24:02 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:f1b8:ce88:1a44:7e32) |
| 13:24:12 | × | perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Client Quit) |
| 13:28:27 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 13:28:50 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:f1b8:ce88:1a44:7e32) (Ping timeout: 264 seconds) |
| 13:31:58 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 13:35:20 | → | toorevitimirp joins (~tooreviti@117.182.181.145) |
| 13:36:02 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Ping timeout: 264 seconds) |
| 13:36:16 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 13:37:42 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 13:38:21 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 13:38:42 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 13:38:57 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 13:44:52 | → | darjeeling_ joins (~darjeelin@115.215.41.65) |
| 13:45:44 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
| 13:46:10 | × | mmohammadi9812 quits (~mmohammad@188.210.122.58) (Ping timeout: 264 seconds) |
| 13:46:56 | → | mmohammadi9812 joins (~mmohammad@2.178.164.60) |
| 13:47:32 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection) |
| 13:49:07 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 13:49:58 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 13:52:58 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection) |
| 13:53:21 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 13:54:05 | × | drbean quits (~drbean@TC210-63-209-66.static.apol.com.tw) (Ping timeout: 240 seconds) |
| 13:56:25 | → | mirrorbird_ joins (~psutcliff@2a00:801:42d:5efa:6585:c362:5f1c:676) |
| 13:56:37 | × | mirrorbird quits (~psutcliff@2a00:801:42d:5efa:6585:c362:5f1c:676) (Read error: Connection reset by peer) |
| 13:57:58 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
| 13:58:17 | → | hiroaki joins (~hiroaki@ip4d167562.dynamic.kabel-deutschland.de) |
| 13:59:28 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 14:00:28 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 14:01:15 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 14:01:57 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 14:02:08 | × | mirrorbird_ quits (~psutcliff@2a00:801:42d:5efa:6585:c362:5f1c:676) (Ping timeout: 265 seconds) |
| 14:04:01 | × | Saukk quits (~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection) |
| 14:04:05 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
| 14:05:25 | × | gzj quits (~gzj@unaffiliated/gzj) (Ping timeout: 240 seconds) |
| 14:06:05 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 14:06:13 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 14:06:31 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 14:14:04 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 14:15:15 | → | perrier-jouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 14:16:42 | → | metreo joins (~Thunderbi@unaffiliated/metreo) |
| 14:17:10 | → | mirrorbird_ joins (~psutcliff@2a00:801:42d:5efa:6585:c362:5f1c:676) |
| 14:18:16 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 14:19:01 | → | dnlkrgr joins (~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) |
| 14:22:35 | → | ArConan joins (9de62a69@157.230.42.105) |
| 14:23:01 | → | frdg joins (~user@pool-96-252-123-136.bstnma.fios.verizon.net) |
| 14:23:17 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
| 14:24:44 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:f1b8:ce88:1a44:7e32) |
| 14:25:08 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection) |
| 14:29:58 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:f1b8:ce88:1a44:7e32) (Ping timeout: 260 seconds) |
| 14:31:24 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-102-193.w86-212.abo.wanadoo.fr) |
| 14:31:40 | <frdg> | is there a function `m1 (m2 a) -> m1 a` where m1 and m2 are monads? |
| 14:32:35 | <Uniaika> | frdg: two different monads, right? |
| 14:32:53 | × | sw1nn quits (~sw1nn@2a00:23c6:2385:3a00:2674:77a1:134b:dae9) (Ping timeout: 260 seconds) |
| 14:32:53 | <frdg> | yes |
| 14:34:31 | <Uniaika> | hmm |
| 14:34:34 | <merijn> | "Yes" |
| 14:34:49 | <ephemient> | can you lift one monad to the other? |
| 14:35:04 | <merijn> | Except you probably mean "a general function that works for any 2 arbitrary monads" |
| 14:35:14 | <Uniaika> | yeah some kind of lift + pure? |
| 14:35:17 | <merijn> | To which the answer is "not one that makes sense" |
| 14:35:25 | <Uniaika> | +1 |
| 14:35:39 | <frdg> | ok ill try lift and pure |
| 14:36:00 | <ephemient> | :t (>>= lift) |
| 14:36:01 | <lambdabot> | (MonadTrans t, Monad m, Monad (t m)) => t m (m b) -> t m b |
| 14:36:05 | <merijn> | frdg: What *actual* types do you have and why do you need to collapse them like that? |
| 14:36:34 | <ephemient> | in this case, if m1 = t m and m2 = m, that would work |
| 14:36:43 | <ephemient> | otherwise, ¯\_(ツ)_/¯ |
| 14:36:57 | × | krkini quits (~kini@unaffiliated/kini) (Remote host closed the connection) |
| 14:36:58 | <ArConan> | which function's type is `forall a.a->a` in preclude? |
| 14:38:16 | → | kini joins (~kini@unaffiliated/kini) |
| 14:38:21 | <ephemient> | @hoogle :: a -> a |
| 14:38:22 | <lambdabot> | Prelude id :: a -> a |
| 14:38:22 | <lambdabot> | Data.Function id :: a -> a |
| 14:38:22 | <lambdabot> | GHC.Base breakpoint :: a -> a |
| 14:38:42 | <frdg> | merijn: I have a list of parser Results |
| 14:39:07 | <frdg> | [Result a] I should say |
| 14:39:34 | × | darjeeling_ quits (~darjeelin@115.215.41.65) (Ping timeout: 264 seconds) |
| 14:39:44 | × | berberman quits (~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in) |
| 14:40:12 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 14:40:20 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 14:41:16 | <maerwald> | frdg: supermonads |
| 14:41:29 | <maerwald> | frdg: https://hackage.haskell.org/package/supermonad-0.2.1.1/docs/Control-Super-Monad.html |
| 14:42:05 | <maerwald> | thank me later (or not at all) |
| 14:42:33 | <merijn> | tbh, I wager he just needs sequence or something like that |
| 14:42:40 | <frdg> | ill look at this |
| 14:43:03 | <ArConan> | @src |
| 14:43:03 | <lambdabot> | src <id>. Display the implementation of a standard function |
| 14:43:06 | <ArConan> | @src id |
| 14:43:06 | <lambdabot> | id x = x |
| 14:43:49 | → | charlemDick joins (~DickensCh@195.242.213.148) |
| 14:44:11 | <ephemient> | sequence would turn [Result a] into Result [a] |
| 14:44:34 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds) |
| 14:44:39 | <ephemient> | if `Result a` were a monoid, you could mconcat :: [Result a] -> Result a, but I don't know if that's the case |
| 14:44:57 | <merijn> | ephemient: but the question was "m1 (m2 a) -> m1 a" |
| 14:45:03 | <merijn> | So presumably he wants [a] |
| 14:45:04 | × | hexagenic quits (~mattias@2001:2002:51e0:74c9:5c3d:79a1:6bfe:fd56) (Read error: Connection reset by peer) |
| 14:45:13 | <merijn> | So you'd do sequence + pattern match on result |
| 14:45:13 | <ephemient> | oh right |
| 14:45:57 | → | sw1nn joins (~sw1nn@2a00:23c6:2385:3a00:bc71:9ab4:c3a5:8b4c) |
| 14:46:07 | → | hexagenic joins (~mattias@2001:2002:51e0:74c9:5c3d:79a1:6bfe:fd56) |
| 14:46:11 | <ephemient> | yeah, whatever Result is, you'd need to know more to be able to get rid of it |
| 14:49:43 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0) |
| 14:50:25 | × | charlemDick quits (~DickensCh@195.242.213.148) (Quit: leaving) |
| 14:51:40 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Read error: Connection reset by peer) |
| 14:52:27 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 14:54:34 | <sshine> | what's a good way to catch 'openFile: does not exist (No such file or directory)' and 'hGetContents: invalid argument (invalid byte sequence)' and deal with them? |
| 14:55:23 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 14:55:31 | <merijn> | The former is an IOException which should be in System.IO (I think) |
| 14:55:57 | <merijn> | The latter I'm not sure which exception it is, but it's almost certainly caused by having a broken environment |
| 14:56:14 | <sshine> | I'm using readFileUtf8 on a non-UTF-8 file. |
| 14:56:37 | <merijn> | sshine: Well, I'm not sure why you'd expect that to work? |
| 14:56:53 | <sshine> | merijn, I don't expect it to work. I'm asking how I handle the exception in a good way. do you use safe-exceptions? |
| 14:57:25 | <maerwald> | sshine: use unix package |
| 14:57:30 | <maerwald> | and not readFile :p |
| 14:57:54 | <merijn> | I don't, but you can just cathc SomeException and print the type of the exception via Data.Typeable if you can't figure out what the exception is |
| 14:58:10 | → | son0p joins (~son0p@181.136.122.143) |
| 14:58:13 | <merijn> | sshine: Note that readFileUtf8 is a *deeply* broken idea that nobody should be using |
| 14:58:24 | <sshine> | merijn, oh, haha. okay. :) it's not my code, but good to know. |
| 14:59:12 | <maerwald> | see, that's why programming basically is torture... you have to put up with other ppls madness |
| 14:59:29 | <sshine> | this is https://hackage.haskell.org/package/rio-0.1.20.0/docs/RIO.html#v:readFileUtf8 -- I don't know why it is madness, it doesn't say so in the haddock. |
| 14:59:35 | <merijn> | sshine: All exception are Typeable, you can just use typeOf on whatever is in SomeException to figure out what was thrown |
| 14:59:44 | <sshine> | merijn, thanks! |
| 14:59:45 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 14:59:48 | <maerwald> | rio, lol |
| 15:00:06 | <merijn> | sshine: Well, if you ever have a user whose system has non-utf8 files then code using readFileUtf8 will always crash |
| 15:00:22 | <__monty__> | merijn: You mean you should rely on the locale's encoding? Because equal amounts of madness lies there. |
| 15:00:31 | <merijn> | sshine: This is generally considered "unhelpful" in terms of UI/UX :p |
| 15:00:54 | <merijn> | __monty__: If you don't know for sure what the encoding is, locale is the only sensible thing you *can* do |
| 15:01:07 | <maerwald> | try to rely on nothing, until the very end (and... for many things, you don't actually need to know the encoding) |
| 15:01:12 | <merijn> | __monty__: And if you *do* know what the encoding is, you can just set it |
| 15:01:53 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
| 15:02:00 | <__monty__> | I understand and sympathise with the "Just hope everything's UTF-8" approach tbh. |
| 15:02:06 | <sshine> | maerwald, what is the 'unix' package equivalent of readFile? I can only find ByteString-related functions. |
| 15:02:12 | <merijn> | __monty__: I don't... |
| 15:02:16 | <maerwald> | sshine: exactly |
| 15:02:29 | <sshine> | so... roll my own readFileWhateverThisIs? |
| 15:02:35 | <merijn> | __monty__: "oh, let's just break functionality on everyone whose system is properly configured" |
| 15:02:58 | <sshine> | I was hoping for someone smarter than me having solved this with all the peculiarities of this obscure encoding domain :) |
| 15:03:07 | <merijn> | __monty__: Locale's kinda suck, sure, but they're the kinda suck that has been standard for, like, 40 years |
| 15:03:13 | <merijn> | sshine: haha |
| 15:03:31 | <maerwald> | sshine: https://hackage.haskell.org/package/hpath-directory-0.14.0/docs/System-Posix-RawFilePath-Directory.html#g:7 |
| 15:03:38 | <merijn> | sshine: The only solution is the same level of cynicism and depression as me and maerwald :p |
| 15:03:41 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection) |
| 15:03:58 | <merijn> | sshine: No one smarter has solved it as the problem is fundamentally unsolvable |
| 15:04:28 | <merijn> | You need to know the encoding of a file "out of band" to be able to decode it |
| 15:04:43 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
| 15:04:45 | <__monty__> | The solution is for people to stop being obstinate and adopt UTF-8 : ) |
| 15:04:57 | <sshine> | merijn, ah :) I guess there is a bridge to be gapped between /usr/bin/file telling me why a file won't decode, and having readFileDerpDerp actually decode it. ;) |
| 15:05:13 | <sm[m]> | sshine is at least on track to catch this error and report something more useful to the user |
| 15:05:15 | <merijn> | __monty__: I mean, linux can't even sensibly *name* files, let alone their contents |
| 15:05:27 | <merijn> | sshine: file is basically just *guessing* |
| 15:05:44 | <sshine> | I'm actually just asking how to catch and report exceptions, not really how to solve fundamental problems of character encoding. :p |
| 15:05:45 | <merijn> | sshine: file is a massive pile of heuristic hacks, which "usually works" |
| 15:05:55 | <sshine> | merijn, hehe yes. |
| 15:05:58 | <merijn> | sshine: #haskell likes to get sidetracked! |
| 15:06:06 | sshine | likes to get sidetracked! |
| 15:06:21 | <merijn> | sshine: catching exceptions is easy, try or catch and done :p |
| 15:06:29 | <merijn> | Now you just gotta know which ones ;) |
| 15:07:19 | <merijn> | sshine: Hacky debugging life-hack: https://hackage.haskell.org/package/base-4.14.1.0/docs/GHC-Conc.html#v:setUncaughtExceptionHandler |
| 15:07:37 | <merijn> | sshine: Then set a function that uses typeOf to output the type of whatever you're not catching |
| 15:07:43 | <merijn> | > typeOf 'c' |
| 15:07:45 | <lambdabot> | Char |
| 15:07:49 | <merijn> | > typeOf True |
| 15:07:50 | <lambdabot> | Bool |
| 15:08:24 | <merijn> | Something like "\exc -> case exc of SomeException e -> print (typeOf e)" |
| 15:08:52 | <sshine> | cool!! |
| 15:09:17 | <merijn> | sshine: Since Typeable is a required superclass of Exception that always works :p |
| 15:09:37 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 260 seconds) |
| 15:10:27 | → | geekosaur joins (ae68c070@cpe-174-104-192-112.neo.res.rr.com) |
| 15:12:57 | ← | frdg parts (~user@pool-96-252-123-136.bstnma.fios.verizon.net) ("ERC (IRC client for Emacs 27.1)") |
| 15:13:16 | × | atwm quits (~andrew@19-193-28-81.ftth.cust.kwaoo.net) (Ping timeout: 246 seconds) |
| 15:14:00 | × | conal quits (~conal@64.71.133.70) (Read error: Connection reset by peer) |
| 15:14:33 | × | aveltras quits (uid364989@gateway/web/irccloud.com/x-lhtbuspbkzjkrfxv) (Quit: Connection closed for inactivity) |
| 15:14:34 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 15:14:35 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 15:14:47 | → | urodna joins (~urodna@unaffiliated/urodna) |
| 15:16:14 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:16:25 | × | reactormonk quits (~reactormo@mehl.schokokeks.org) (Quit: WeeChat 2.7.1) |
| 15:18:40 | → | Aquazi joins (uid312403@gateway/web/irccloud.com/x-kotwuyuzikeamtlu) |
| 15:20:24 | → | conal joins (~conal@64.71.133.70) |
| 15:20:54 | <ephemient> | sshine: I've seen `file` get confused with various CJK encodings. similarly, something can easily be legal ISO-8859-X for multiple values of X, and you can't tell without a human in the loop to say that the resulting text makes sense or not |
| 15:20:58 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
| 15:21:43 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Read error: Connection reset by peer) |
| 15:22:19 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 15:24:40 | → | rdivyanshu joins (uid322626@gateway/web/irccloud.com/x-kjwsmgprrtjfqajz) |
| 15:26:09 | → | LKoen joins (~LKoen@107.173.9.109.rev.sfr.net) |
| 15:31:00 | → | soft-warm joins (4408f588@ip68-8-245-136.sd.sd.cox.net) |
| 15:37:33 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:38:14 | × | fradet quits (~ubuntu@216.252.75.247) (Read error: Connection reset by peer) |
| 15:40:09 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
| 15:40:22 | × | mananamenos_ quits (~mananamen@84.122.202.215.dyn.user.ono.com) (Quit: Leaving) |
| 15:40:54 | <sshine> | ephemient, right. I guess a cool variant of /usr/bin/file is one that says "it could be either one of these" :) |
| 15:41:45 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 15:42:00 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection) |
| 15:42:09 | × | Kaivo quits (~Kaivo@104-200-86-99.mc.derytele.com) (Quit: WeeChat 3.0) |
| 15:42:40 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
| 15:42:56 | × | livvy quits (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection) |
| 15:45:50 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:47:21 | → | Tario joins (~Tario@201.192.165.173) |
| 15:47:32 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 260 seconds) |
| 15:48:49 | → | idhugo joins (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) |
| 15:51:23 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 15:53:25 | × | idhugo quits (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds) |
| 15:53:29 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 15:54:04 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 15:54:55 | → | livvy joins (~livvy@gateway/tor-sasl/livvy) |
| 15:55:40 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
| 15:55:50 | → | leonardys joins (~leonard@118.136.193.138) |
| 15:56:07 | → | Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:3de8:edd9:c9fe:a9b7) |
| 15:56:18 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 15:58:20 | → | neiluj joins (~jco@91-167-203-101.subs.proxad.net) |
| 15:58:20 | × | neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Changing host) |
| 15:58:20 | → | neiluj joins (~jco@unaffiliated/neiluj) |
| 15:59:23 | × | toorevitimirp quits (~tooreviti@117.182.181.145) (Remote host closed the connection) |
| 16:00:11 | × | Wraul[m] quits (wraulmatri@gateway/shell/matrix.org/x-bqjjeeyelwcdlhhc) (Quit: Idle for 30+ days) |
| 16:00:11 | × | materialfuture[m quits (materialfu@gateway/shell/matrix.org/x-upbooxfvqrvklyvd) (Quit: Idle for 30+ days) |
| 16:00:12 | × | son0p quits (~son0p@181.136.122.143) (Ping timeout: 256 seconds) |
| 16:00:25 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 240 seconds) |
| 16:02:13 | → | son0p joins (~son0p@181.136.122.143) |
| 16:05:15 | × | chirpsalot quits (~Chirps@pool-98-115-239-235.phlapa.fios.verizon.net) (Ping timeout: 246 seconds) |
| 16:05:51 | × | Chobbes quits (~Chobbes@pool-98-115-239-235.phlapa.fios.verizon.net) (Ping timeout: 265 seconds) |
| 16:07:12 | × | ArConan quits (9de62a69@157.230.42.105) (Quit: Connection closed) |
| 16:09:59 | → | perdent joins (~perdent@101.175.174.67) |
| 16:10:09 | × | soft-warm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 248 seconds) |
| 16:11:32 | → | Chobbes joins (~Chobbes@pool-98-115-239-235.phlapa.fios.verizon.net) |
| 16:11:32 | → | chirpsalot joins (~Chirps@pool-98-115-239-235.phlapa.fios.verizon.net) |
| 16:13:37 | → | berberman_ joins (~berberman@unaffiliated/berberman) |
| 16:14:57 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds) |
| 16:18:22 | × | berberman_ quits (~berberman@unaffiliated/berberman) (Client Quit) |
| 16:19:04 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
| 16:19:10 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
| 16:19:53 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 16:20:20 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection) |
| 16:20:50 | × | mirrorbird_ quits (~psutcliff@2a00:801:42d:5efa:6585:c362:5f1c:676) (Ping timeout: 265 seconds) |
| 16:21:19 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
| 16:22:31 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 16:23:30 | × | berberman quits (~berberman@unaffiliated/berberman) (Client Quit) |
| 16:23:54 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 16:25:45 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 258 seconds) |
| 16:26:03 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:f1b8:ce88:1a44:7e32) |
| 16:28:08 | → | atwm joins (~andrew@19-193-28-81.ftth.cust.kwaoo.net) |
| 16:31:14 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:f1b8:ce88:1a44:7e32) (Ping timeout: 264 seconds) |
| 16:32:02 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:f1b8:ce88:1a44:7e32) |
| 16:33:05 | × | atwm quits (~andrew@19-193-28-81.ftth.cust.kwaoo.net) (Ping timeout: 240 seconds) |
| 16:33:53 | × | leonardys quits (~leonard@118.136.193.138) (Quit: WeeChat 3.0) |
| 16:34:45 | × | son0p quits (~son0p@181.136.122.143) (Ping timeout: 240 seconds) |
| 16:34:56 | <ij> | Does haskell have some extension that enables using _ as the argument of a lambda? (like in scala) e.g. _ { a = 1 } <-> \x -> x { a = 1 } |
| 16:35:12 | <merijn> | ij: No |
| 16:38:22 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 16:38:23 | <ephemient> | `set a 1` with lens, but that requires lens |
| 16:38:26 | <infinisil> | The closest thing would be TupleSections: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#tuple-sections |
| 16:39:11 | <infinisil> | ij: ^ |
| 16:39:38 | × | _ashbreeze_ quits (~mark@64.85.214.234.reverse.socket.net) (Remote host closed the connection) |
| 16:39:43 | <ij> | using TupleSections and lenses already :) |
| 16:42:17 | → | _ashbreeze_ joins (~mark@64.85.214.234.reverse.socket.net) |
| 16:42:37 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 16:42:53 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 16:43:09 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 272 seconds) |
| 16:43:34 | × | carlomagno quits (~cararell@148.87.23.9) (Remote host closed the connection) |
| 16:49:30 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 16:52:05 | × | DTZUZU quits (~DTZUZU@205.ip-149-56-132.net) (Read error: Connection reset by peer) |
| 16:52:05 | → | DTZUZU_ joins (~DTZUZU@207.81.119.43) |
| 16:56:05 | × | DTZUZU_ quits (~DTZUZU@207.81.119.43) (Ping timeout: 240 seconds) |
| 16:58:03 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
| 16:58:55 | → | carlomagno joins (~cararell@148.87.23.11) |
| 16:59:48 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection) |
| 17:00:25 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
| 17:01:10 | × | Franciman quits (~francesco@host-95-235-155-82.retail.telecomitalia.it) (Quit: Leaving) |
| 17:02:07 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 17:04:54 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:f1b8:ce88:1a44:7e32) (Remote host closed the connection) |
| 17:05:07 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 260 seconds) |
| 17:06:25 | × | gzj quits (~gzj@unaffiliated/gzj) (Ping timeout: 240 seconds) |
| 17:07:21 | → | worc3131 joins (~quassel@2a02:c7f:dcc4:6500:217b:6c7a:eac3:3be9) |
| 17:09:43 | → | pavonia joins (~user@unaffiliated/siracusa) |
| 17:10:11 | → | charlemDick joins (~DickensCh@185.156.175.131) |
| 17:11:08 | → | abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 17:12:03 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 17:12:11 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
| 17:16:26 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 17:16:45 | × | LKoen quits (~LKoen@107.173.9.109.rev.sfr.net) (Remote host closed the connection) |
| 17:16:52 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 17:17:53 | × | zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving) |
| 17:18:05 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 240 seconds) |
| 17:18:18 | → | atwm joins (~andrew@19-193-28-81.ftth.cust.kwaoo.net) |
| 17:20:58 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
| 17:22:26 | → | conal joins (~conal@45.155.40.52) |
| 17:22:46 | × | atwm quits (~andrew@19-193-28-81.ftth.cust.kwaoo.net) (Ping timeout: 246 seconds) |
| 17:22:46 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 17:23:41 | × | charlemDick quits (~DickensCh@185.156.175.131) (Quit: leaving) |
| 17:26:13 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 17:26:23 | → | LKoen joins (~LKoen@107.173.9.109.rev.sfr.net) |
| 17:27:30 | → | Yarrbeard joins (~Yarrbeard@2603-7081-6701-2976-d474-9e60-5ce3-9342.res6.spectrum.com) |
| 17:27:32 | × | conal quits (~conal@45.155.40.52) (Ping timeout: 265 seconds) |
| 17:29:04 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 17:29:25 | × | poscat quits (~poscat@114.245.115.216) (Remote host closed the connection) |
| 17:30:32 | × | worc3131 quits (~quassel@2a02:c7f:dcc4:6500:217b:6c7a:eac3:3be9) (Ping timeout: 258 seconds) |
| 17:31:10 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
| 17:32:05 | → | Raito_Bezarius joins (~Raito@unaffiliated/raito-bezarius/x-8764578) |
| 17:32:37 | → | poscat1 joins (~poscat@111.192.221.197) |
| 17:32:47 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
| 17:34:38 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection) |
| 17:35:18 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
| 17:35:24 | × | dnlkrgr quits (~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 256 seconds) |
| 17:35:35 | × | poscat1 quits (~poscat@111.192.221.197) (Remote host closed the connection) |
| 17:36:20 | → | poscat joins (~poscat@111.192.221.197) |
| 17:38:28 | → | lassulus_ joins (~lassulus@NixOS/user/lassulus) |
| 17:39:08 | → | atwm joins (~andrew@19-193-28-81.ftth.cust.kwaoo.net) |
| 17:39:55 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 260 seconds) |
| 17:41:18 | → | elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
| 17:41:47 | × | lassulus quits (~lassulus@NixOS/user/lassulus) (Ping timeout: 260 seconds) |
| 17:41:48 | lassulus_ | is now known as lassulus |
| 17:43:19 | × | sim590 quits (~sim590@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 272 seconds) |
| 17:45:05 | × | atwm quits (~andrew@19-193-28-81.ftth.cust.kwaoo.net) (Ping timeout: 240 seconds) |
| 17:47:33 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 17:50:31 | → | ehigham joins (d92c1d84@host217-44-29-132.range217-44.btcentralplus.com) |
| 17:51:14 | → | idhugo joins (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) |
| 17:51:49 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
| 17:52:08 | → | d34df00d joins (~d34df00d@104-14-27-213.lightspeed.austtx.sbcglobal.net) |
| 17:52:14 | → | atwm joins (~andrew@19-193-28-81.ftth.cust.kwaoo.net) |
| 17:53:50 | → | kuribas joins (~user@ptr-25vy0i6vfzb2d4iuy7c.18120a2.ip6.access.telenet.be) |
| 17:54:02 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 17:54:04 | → | zaquest joins (~notzaques@5.128.210.178) |
| 17:54:29 | <kuribas> | is there a penalty for using Storable to write low level code, vs writing it in C? |
| 17:54:38 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 17:54:50 | → | pruiz joins (~pruiz@2a01:4b00:8467:2300:c02f:54be:9b7:7ed3) |
| 17:55:41 | × | e2- quits (e2@sponsored.by.bnc4you.xyz) (Quit: Stable ZNC provider ##bnc4you) |
| 17:55:54 | × | rajivr quits (uid269651@gateway/web/irccloud.com/x-wkqzxzwdoldxjjgk) (Quit: Connection closed for inactivity) |
| 17:57:12 | × | bitmapper quits (uid464869@gateway/web/irccloud.com/x-gxnfoztdlfcipzrw) (Quit: Connection closed for inactivity) |
| 17:57:19 | <Uniaika> | kuribas: I read "death penalty" as first |
| 17:57:24 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
| 17:57:36 | <kuribas> | Uniaika: I wouldn't go so extreme :) |
| 17:57:56 | <maerwald> | oh man, this got grim real quick... better not write low-level code at all |
| 17:58:43 | → | lassulus_ joins (~lassulus@NixOS/user/lassulus) |
| 17:59:00 | <kuribas> | OTOH C is made for low level programming, and it's probably easier than in haskell... |
| 17:59:00 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection) |
| 17:59:20 | <kuribas> | I can just cast some struct to a binary blob, where in haskell I have to do pointer arithmetic myself... |
| 17:59:43 | <kuribas> | Or marshall each value to haskell, which is expensive. |
| 17:59:59 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
| 18:01:36 | × | lassulus quits (~lassulus@NixOS/user/lassulus) (Ping timeout: 240 seconds) |
| 18:01:37 | lassulus_ | is now known as lassulus |
| 18:02:41 | <geekosaur> | I think a lot depends on what this low level code is supposed to do |
| 18:03:09 | → | aidecoe joins (~aidecoe@unaffiliated/aidecoe) |
| 18:03:16 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 18:03:46 | → | Lycurgus joins (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) |
| 18:03:58 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 18:04:50 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 264 seconds) |
| 18:04:53 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 18:05:17 | → | knupfer joins (~Thunderbi@200116b82c5a6500e5f8b1cf02b0ef53.dip.versatel-1u1.de) |
| 18:05:18 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:f1b8:ce88:1a44:7e32) |
| 18:05:53 | × | fiQ2 quits (~fiQ@mirkk.ninja) (Quit: ZNC - https://znc.in) |
| 18:06:51 | × | atwm quits (~andrew@19-193-28-81.ftth.cust.kwaoo.net) (Ping timeout: 272 seconds) |
| 18:07:55 | → | fradet joins (~ubuntu@216.252.75.247) |
| 18:07:57 | × | perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.0) |
| 18:09:34 | → | fiQ2 joins (~fiQ@mirkk.ninja) |
| 18:09:45 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 18:10:06 | → | conal_ joins (~conal@66.115.157.67) |
| 18:10:14 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:f1b8:ce88:1a44:7e32) (Ping timeout: 264 seconds) |
| 18:11:02 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 18:11:48 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 18:11:53 | <orzo> | before you o any low-level Storable hacks, be familiar with the Data.Primitive stuff which uses a similar-to-Storable class called Prim |
| 18:13:22 | <orzo> | i'm not sure why Storable wasn't used, but there's a bunch of goodies like ST monad support associated |
| 18:13:55 | <geekosaur> | Storable matches C representations; prim matches GHC's |
| 18:14:02 | <orzo> | oh |
| 18:14:22 | <orzo> | what type in particular shows that? |
| 18:15:03 | <geekosaur> | there may not be much of a difference on x86-64 |
| 18:15:16 | <geekosaur> | but there is on some other supported platforms |
| 18:17:06 | <geekosaur> | I couldn't tell you offhand what would differ |
| 18:17:46 | <geekosaur> | also some odd corner cases, like ghc uses 64-bit Int even on i386 whereas C uses 32-bit int |
| 18:18:22 | <orzo> | c uses 32bit int even on x86_64 |
| 18:18:24 | <orzo> | heh |
| 18:18:52 | <sshine> | https://gist.github.com/sshine/0d4d7bd8e480ad44c5ded71ad12978eb -- not sure how to show the IOException (for which the constructor is IOError). is there a trick? |
| 18:18:56 | <orzo> | but you mean ghc is using 64bits for its 32-bit wide ints |
| 18:18:57 | <geekosaur> | then that will differ also. (I thought it did but didn't recall for certain; it's been a while since I touched C) |
| 18:19:05 | → | atraii joins (~atraii@2601:681:8800:3a87:c800:2de4:db0b:9f0) |
| 18:19:12 | <orzo> | eh |
| 18:19:13 | × | cods quits (~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 260 seconds) |
| 18:19:20 | <orzo> | Int and CInt are different types |
| 18:19:35 | <geekosaur> | no, I mean a specific decision was made to widen Int to 64 bits on i386 some time ago (back in 6.x) |
| 18:19:52 | × | thunderrd quits (~thunderrd@183.182.115.7) (Remote host closed the connection) |
| 18:19:56 | <orzo> | you mean maxBound will show a 64bit value? |
| 18:20:00 | → | cods joins (~fred@82-65-232-44.subs.proxad.net) |
| 18:20:04 | <geekosaur> | yeh |
| 18:20:10 | <orzo> | oh wow |
| 18:20:17 | <orzo> | i missed that |
| 18:20:36 | <orzo> | not 6.x, surely more recent than that |
| 18:20:45 | <orzo> | maybe 8.something ? |
| 18:21:06 | → | thunderrd joins (~thunderrd@183.182.115.7) |
| 18:21:09 | → | usr25 joins (~usr25@unaffiliated/usr25) |
| 18:21:34 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 18:21:48 | <d34df00d> | Alright, I need to parse a big (~200 megs) XML file, which has a nice uniform structure, and convert some part of that structure into a haskell data type. |
| 18:21:58 | <d34df00d> | xml-conduit takes 2.5 gigs just to parse the file. |
| 18:21:58 | × | knupfer quits (~Thunderbi@200116b82c5a6500e5f8b1cf02b0ef53.dip.versatel-1u1.de) (Remote host closed the connection) |
| 18:22:22 | <d34df00d> | I haven't tried hxt yet because arrows, which I always forget, plus I've heard it's not really optimized for performance (so I'm not sure if it's even worth trying). |
| 18:22:26 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 18:22:29 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
| 18:22:37 | <d34df00d> | xeno works great, but xeno is sax, and sax kinda sucks for this task. |
| 18:22:44 | <d34df00d> | (or, at least, feels not haskellish) |
| 18:22:57 | <d34df00d> | What should I use? |
| 18:23:25 | <sshine> | d34df00d, I have no personal recommendation, but have you considered 'xml' or 'tagsoup'? |
| 18:24:03 | <d34df00d> | The file looks roughly like a huge list of <event>s, where each event is <event id="..."><param>param1</param><param>param2</param><description>Yay long string</description></event>, and I'd like to obtain a list of Event { params :: [Param], description :: String }, roughly speaking. |
| 18:24:30 | <d34df00d> | sshine: I've considered tagsoup, yes, but, judging from other projects, it seems to be on the slower side. |
| 18:24:37 | <d34df00d> | I'll take a look at xml! |
| 18:25:05 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 18:25:35 | <merijn> | d34df00d: xml-conduit is fairly decent for dealing with schema-less XML |
| 18:26:09 | <sshine> | d34df00d, I literally just typed in 'xml' into hackage and ordered by DLs! maybe xml-conduit can be tweaked to use less RAM? |
| 18:26:45 | <merijn> | xml-conduit has a streaming mode |
| 18:26:54 | <orzo> | unless WORD_SIZE_IN_BITS is defined to be not 32 on i386, ghc-9.0 branch current source shows Bounded instance for Int to be 32-bit bounds |
| 18:27:04 | <orzo> | you're memory is wrong, geekosaur |
| 18:27:24 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 18:27:32 | <geekosaur> | noted |
| 18:28:06 | <d34df00d> | merijn: does that streaming mode look like your average SAX, or is it something else? I've seen sinkDoc whose type looks promising, but I never really used conduits so I don't know what to expect. |
| 18:28:08 | <orzo> | i think it was more a representation thing somewhere |
| 18:28:25 | <merijn> | d34df00d: I have no idea what SAX is, tbh |
| 18:28:36 | <orzo> | on x86-64, all the number types, like Word16, are actually 64 bits |
| 18:28:43 | × | conal_ quits (~conal@66.115.157.67) (Ping timeout: 265 seconds) |
| 18:28:49 | <orzo> | representation-wise |
| 18:29:08 | <d34df00d> | merijn: basically a bunch of callbacks for each XML event during streaming parsing (like "tag `tagname` opens", "attribute `attr` appears", "tag `tagname` closes", etc). |
| 18:29:41 | <merijn> | d34df00d: It's been over 2 years since I had a used for it, so no idea :p |
| 18:30:04 | <d34df00d> | That's what I get with xeno (which is super fast), but that's not too handy to assemble my data structure from all these events. |
| 18:30:34 | <merijn> | How large is this XML? |
| 18:31:04 | <d34df00d> | About 200 megabytes. |
| 18:31:12 | → | dnlkrgr joins (~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) |
| 18:31:22 | <merijn> | Is that worth bothering with complicated things? |
| 18:31:41 | <merijn> | I mean, that sounds like "fuck it, just read it all into memory" sizes |
| 18:31:51 | <maerwald> | if that's a backend api yeah? |
| 18:32:00 | <d34df00d> | xml-conduit's parseLBS_ takes about 2.5 gigabytes of RAM just to parse that into its Document, and takes more than 30 seconds to do that (xeno does that I think in a couple of seconds). |
| 18:32:23 | <merijn> | d34df00d: What's the problem with xeno? |
| 18:32:27 | <d34df00d> | It's sax. |
| 18:32:39 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
| 18:33:05 | merijn | still has no idea what SAX is |
| 18:33:16 | <d34df00d> | https://hackage.haskell.org/package/xeno-0.4.2/docs/Xeno-SAX.html |
| 18:33:29 | <d34df00d> | So you basically supply these openF/attrF/etc callbacks. |
| 18:33:47 | <d34df00d> | And fold over the corresponding events occuring when parsing xml. |
| 18:33:59 | <d34df00d> | So if I want to do something complicated, I need to keep non-trivial state, and it gets ugly. |
| 18:34:13 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-prvdoscebbvquvnj) |
| 18:34:26 | <d34df00d> | Although I just noted there's Xeno.DOM, lol. |
| 18:34:30 | <d34df00d> | Maybe I should give it a shot too. |
| 18:35:05 | × | idhugo quits (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds) |
| 18:36:02 | → | funkyuser99 joins (~user@2402:e280:3e00:9cd8:ba86:367b:431b:aadd) |
| 18:38:07 | <d34df00d> | Yea, xeno's dom parser is like infinitely faster than xml-conduit's |
| 18:38:16 | → | e2 joins (e2@sponsored.by.bnc4you.xyz) |
| 18:38:16 | → | perrier-jouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 18:38:20 | <d34df00d> | 0.6 seconds, 400 megs of RAM. |
| 18:38:26 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 264 seconds) |
| 18:38:40 | <maerwald> | nothing can beat pythons lxml |
| 18:38:41 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
| 18:39:06 | <maerwald> | (yeah, I wrote an xml microservice once to avoid using haskell for xml) |
| 18:39:40 | <d34df00d> | I get this funny ache in my fingers as I just merely think about writing anything in python. |
| 18:39:59 | <d34df00d> | Also I bet python's lxml is actually C. |
| 18:40:12 | <maerwald> | well, I guess half of the data science community will disagree :D |
| 18:40:43 | <maerwald> | but ppl still think python is just for scripting |
| 18:41:05 | <merijn> | Python is for hating yourself and making you wanna die |
| 18:41:19 | <maerwald> | nah, it's just different trade-offts |
| 18:41:31 | <maerwald> | every language makes me wanna die |
| 18:41:40 | <merijn> | Some more than others :p |
| 18:41:52 | <sshine> | merijn, Python is a gateway drug to Haskell. |
| 18:42:05 | <maerwald> | the language just determines the amount of alcohol in my blood |
| 18:42:12 | <d34df00d> | That's one of the reasons I stopped doing data science things. |
| 18:42:32 | <aldum> | alcohol is a gateway drug to python? |
| 18:42:41 | <maerwald> | haha |
| 18:42:51 | <merijn> | aldum: You got that the wrong way around |
| 18:43:15 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 18:43:45 | × | ehigham quits (d92c1d84@host217-44-29-132.range217-44.btcentralplus.com) (Quit: Ping timeout (120 seconds)) |
| 18:44:19 | → | garFF joins (~garff@0x3e2c8761.mobile.telia.dk) |
| 18:44:28 | <kuribas> | d34df00d: I wrote a streaming parser on top of hexpat, that should be pretty fast. |
| 18:44:33 | × | geekosaur quits (ae68c070@cpe-174-104-192-112.neo.res.rr.com) (Quit: Ping timeout (120 seconds)) |
| 18:44:59 | → | tromp_ joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 18:45:04 | <d34df00d> | kuribas: that's my fallback! I just wondered if I could avoid writing my logic in streaming style. |
| 18:45:10 | <kuribas> | d34df00d: https://hackage.haskell.org/package/hexpat-streamparser-0.0.1/docs/Text-XML-Expat-StreamParser.html |
| 18:45:26 | <kuribas> | d34df00d: I don't know what you mean with "streaming style", but it's just like standard combinators. |
| 18:45:34 | → | tanuki joins (~quassel@173.168.154.189) |
| 18:45:44 | <kuribas> | d34df00d: only you cannot backtrack, there is a single tag lookahead. |
| 18:45:47 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 18:46:02 | → | gioyik joins (~gioyik@gateway/tor-sasl/gioyik) |
| 18:46:23 | <kuribas> | d34df00d: in fact, one of the reasons I wrote it, is so I could reuse Control.Applicative.Combinators. |
| 18:46:30 | × | tromp_ quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
| 18:46:30 | → | tromp__ joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 18:46:46 | <d34df00d> | Oh, this looks interesting! |
| 18:47:09 | <d34df00d> | Looks be much less painful than using some other streaming libs directly. |
| 18:47:27 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer) |
| 18:50:22 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 264 seconds) |
| 18:51:23 | → | geekosaur joins (ae68c070@cpe-174-104-192-112.neo.res.rr.com) |
| 18:51:41 | → | bitmagie joins (~Thunderbi@200116b8065856001599e2e0407cbc41.dip.versatel-1u1.de) |
| 18:52:04 | × | bitmagie quits (~Thunderbi@200116b8065856001599e2e0407cbc41.dip.versatel-1u1.de) (Client Quit) |
| 18:52:26 | → | worc3131 joins (~quassel@2a02:c7f:dcc4:6500:217b:6c7a:eac3:3be9) |
| 18:52:49 | <kuribas> | it's similar to Text.XML.Stream.Parse from xml-conduit, but it actually returns error locations. |
| 18:52:50 | × | atraii quits (~atraii@2601:681:8800:3a87:c800:2de4:db0b:9f0) (Ping timeout: 264 seconds) |
| 18:53:09 | <kuribas> | and it uses the same parser combinators as Parsec etc.. |
| 18:54:22 | × | hexagenic quits (~mattias@2001:2002:51e0:74c9:5c3d:79a1:6bfe:fd56) (Read error: Connection reset by peer) |
| 18:55:20 | → | hexagenic joins (~mattias@2001:2002:51e0:74c9:5098:c4b6:1b73:7815) |
| 18:55:54 | <kuribas> | merijn: a SAX parser basically tokenizes the xml file, than fires different callbacks based on the next token. |
| 18:59:04 | <kuribas> | d34df00d: note that parseXMLFile will force the whole output value. |
| 19:01:07 | → | Franciman joins (~francesco@host-95-235-155-82.retail.telecomitalia.it) |
| 19:02:11 | × | jpds_ quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 19:02:13 | → | atwm joins (~andrew@19-193-28-81.ftth.cust.kwaoo.net) |
| 19:02:35 | → | jpds_ joins (~jpds@gateway/tor-sasl/jpds) |
| 19:02:56 | → | idhugo joins (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) |
| 19:03:21 | → | berberman_ joins (~berberman@unaffiliated/berberman) |
| 19:03:28 | <kuribas> | ah, and xeno cheats by ignoring the XML standard, hexpat fully implements the standard. |
| 19:04:00 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds) |
| 19:04:10 | × | raym quits (~ray@45.64.220.55) (Quit: leaving) |
| 19:04:22 | × | tanuki quits (~quassel@173.168.154.189) (Ping timeout: 256 seconds) |
| 19:04:31 | → | raym joins (~ray@45.64.220.55) |
| 19:04:50 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds) |
| 19:05:26 | × | xelxebar quits (~xelxebar@gateway/tor-sasl/xelxebar) (Ping timeout: 268 seconds) |
| 19:05:26 | ← | funkyuser99 parts (~user@2402:e280:3e00:9cd8:ba86:367b:431b:aadd) ("ERC (IRC client for Emacs 26.1)") |
| 19:06:02 | × | ep1ctetus quits (~epictetus@ip184-187-162-163.sb.sd.cox.net) (Read error: Connection reset by peer) |
| 19:06:02 | → | danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 19:06:27 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:75dd:a55d:449b:280f) |
| 19:10:35 | → | xelxebar joins (~xelxebar@gateway/tor-sasl/xelxebar) |
| 19:11:26 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:75dd:a55d:449b:280f) (Ping timeout: 264 seconds) |
| 19:13:15 | × | worc3131 quits (~quassel@2a02:c7f:dcc4:6500:217b:6c7a:eac3:3be9) (Ping timeout: 272 seconds) |
| 19:13:40 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:75dd:a55d:449b:280f) |
| 19:21:41 | → | quinn joins (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) |
| 19:24:23 | <Uniaika> | uh |
| 19:24:31 | <Uniaika> | I have the hardest time solving this cabal riddle https://paste.tomsmeding.com/vSEJBQ4g |
| 19:24:49 | <Uniaika> | and especially : |
| 19:24:50 | <Uniaika> | [__1] rejecting: base-4.13.0.0/installed-4.13.0.0 (conflict: control-plane => |
| 19:24:50 | <Uniaika> | base^>=4.14.1) |
| 19:24:58 | → | afwingnut joins (~af_wingnu@ip174-79-2-139.mc.at.cox.net) |
| 19:25:07 | <merijn> | Uniaika: Which ghc? |
| 19:25:35 | <maerwald> | 8.8.4? |
| 19:25:39 | <Uniaika> | my cabal.project file contains this stanza |
| 19:25:40 | <Uniaika> | with-compiler: ghc-8.10.3 |
| 19:25:57 | <merijn> | Uniaika: Looks like it's using ghc 8.8, though :p |
| 19:26:04 | <merijn> | because that's what base-4.13 is |
| 19:26:16 | × | dnlkrgr quits (~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 240 seconds) |
| 19:26:26 | <merijn> | Time to run "ghc-8.10.3 --version" :p |
| 19:26:27 | <Uniaika> | that's what buggers me |
| 19:26:34 | <Uniaika> | damnit hahaha |
| 19:26:35 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 19:26:38 | → | ehigham joins (d92c1d84@host217-44-29-132.range217-44.btcentralplus.com) |
| 19:26:42 | <Uniaika> | ❯ ghc-8.10.3 --version |
| 19:26:42 | <Uniaika> | The Glorious Glasgow Haskell Compilation System, version 8.10.3 |
| 19:26:44 | <Uniaika> | thank god |
| 19:26:49 | <Uniaika> | ghcup does its job well |
| 19:26:52 | <merijn> | And/or use -v3 when running cabal |
| 19:26:52 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 19:27:02 | <Uniaika> | hm. |
| 19:27:04 | <maerwald> | cabal should print the ghc it uses at the beginning |
| 19:27:50 | <Uniaika> | cabal gen-bounds does not do that apparently |
| 19:28:11 | <merijn> | This error is from gen-bounds? |
| 19:28:14 | ← | afwingnut parts (~af_wingnu@ip174-79-2-139.mc.at.cox.net) () |
| 19:28:20 | <maerwald> | Uniaika: ghc --version is what? |
| 19:28:23 | → | Jd007 joins (~Jd007@162.156.11.151) |
| 19:28:33 | <Uniaika> | okay so |
| 19:28:36 | <merijn> | What happens if you run "cabal -w ghc-8.10.3 gen-bounds" ? |
| 19:28:40 | <Uniaika> | using cabal build -j works |
| 19:28:42 | <Uniaika> | Build profile: -w ghc-8.10.3 -O1 |
| 19:28:51 | <Uniaika> | oh yeah I could try that, thanks merijn |
| 19:29:03 | <maerwald> | I'm suspecting ghc symlink is 8.8.4 |
| 19:29:03 | <merijn> | Uniaika: Me thinks gen-bounds isn't using cabal.project :p |
| 19:29:11 | <Uniaika> | maerwald: fuck, you're right! |
| 19:29:15 | <merijn> | hah |
| 19:29:16 | <Uniaika> | it's symlinked to 8.8.4 |
| 19:29:22 | <merijn> | Great minds think alike |
| 19:29:34 | <Uniaika> | so yeah, gen-bounds doesn't use cabal.project, this sucks |
| 19:29:37 | × | rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-kjwsmgprrtjfqajz) (Quit: Connection closed for inactivity) |
| 19:29:41 | <merijn> | Seems a bug to me |
| 19:29:52 | <Uniaika> | now, I need to tell hls to use cabal.project too |
| 19:30:02 | <maerwald> | Uniaika: it already does afaik |
| 19:30:32 | <maerwald> | it literally invokes cabal repl or something similar |
| 19:30:35 | <Uniaika> | maerwald: nope |
| 19:30:36 | <Uniaika> | Tool versions found on the $PATH |
| 19:30:36 | <Uniaika> | cabal: 3.4.0.0 |
| 19:30:36 | <Uniaika> | stack: 2.5.1 |
| 19:30:36 | <Uniaika> | ghc: 8.8.4 |
| 19:30:51 | <Uniaika> | that's when running haskell-language-server-wrapper in the directory |
| 19:30:56 | <maerwald> | Uniaika: yes, for hls to work nicely, you ALSO need to set current ghc to project ghc |
| 19:31:06 | <maerwald> | but it still uses cabal.project |
| 19:31:22 | <Uniaika> | maerwald: this is extremely shitty behaviour since I have different projects that use different GHCs :( |
| 19:31:29 | <maerwald> | yeah |
| 19:31:36 | <Uniaika> | I'm going to bother the appropriate channel |
| 19:31:39 | <Uniaika> | thanks maerwald and merijn :) |
| 19:31:43 | <Uniaika> | maerwald: love your ghcup work <3 |
| 19:31:48 | <maerwald> | per project PATH hackery is another workaround |
| 19:32:09 | <Uniaika> | there's a reason why I live in 2021 and not in 2006 though |
| 19:32:26 | <maerwald> | you can literally tell ghcup to use the current working directory as "base" (that's what I do in CI too) |
| 19:32:29 | → | Tops2 joins (~Tobias@dyndsl-095-033-019-168.ewe-ip-backbone.de) |
| 19:32:45 | <maerwald> | a little overkill, if you ask me, though |
| 19:33:05 | → | Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
| 19:33:26 | <maerwald> | almost time for nix... but does hls work with nix? |
| 19:33:38 | <Uniaika> | hmm |
| 19:33:43 | <Uniaika> | I could run hls in a nix-shell |
| 19:34:05 | × | ixaxaar quits (~ixaxaar@49.207.210.215) (Ping timeout: 240 seconds) |
| 19:34:12 | <Uniaika> | but no, I'm not looking for workarounds right now, I just want people to stop giving cabal-based projects a bad reputation |
| 19:34:15 | <Uniaika> | and this isn't helping |
| 19:35:47 | → | darjeeling_ joins (~darjeelin@115.215.41.65) |
| 19:35:58 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
| 19:38:51 | × | Lycurgus quits (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt) |
| 19:43:14 | × | kuribas quits (~user@ptr-25vy0i6vfzb2d4iuy7c.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
| 19:43:24 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 19:44:07 | → | Saukk joins (~Saukk@83-148-239-3.dynamic.lounea.fi) |
| 19:44:21 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection) |
| 19:45:04 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
| 19:45:07 | <sm[m]> | cabal has its reputation for a reason |
| 19:45:41 | <Uniaika> | yeah it's not entirely stolen, but if the tooling around it does not behave as well, it's quite problematic |
| 19:45:46 | <sm[m]> | I feel people more often give it a free pass than wrongly give it a bad reputation |
| 19:47:58 | <sm[m]> | Uniaika: just curious, which tooling isn't behaving right, I can't quite tell |
| 19:48:46 | <sm[m]> | hls ? |
| 19:48:58 | Uniaika | invokes fendor |
| 19:49:12 | <Uniaika> | hls is the one that misbehaves but it seems that it might be hie-bios |
| 19:49:19 | <Uniaika> | that is the reason |
| 19:49:46 | <zzz> | > [minBound..maxBound] :: (Enum a,Bounded a) => [a] |
| 19:49:47 | <lambdabot> | [()] |
| 19:49:59 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 272 seconds) |
| 19:50:00 | <zzz> | ^ why () ? |
| 19:50:15 | <geekosaur> | ExtendedDefaultRules |
| 19:50:34 | <zzz> | thank you |
| 19:51:06 | <fendor> | yeah, looks like a long-standing hie-bios issue |
| 19:51:42 | × | tromp__ quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer) |
| 19:52:16 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 19:55:13 | <maerwald> | sm[m]: don't you bash on cabal now :p |
| 19:55:22 | × | idhugo quits (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Ping timeout: 246 seconds) |
| 19:56:58 | <maerwald> | but last time i used hls it was via stack (to work around a bug in cabal+hls where it constantly reconfigures itself) |
| 19:57:45 | <maerwald> | so cabal for local build, stack for hls and no problems |
| 19:59:54 | → | idhugo joins (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) |
| 20:01:02 | <sm[m]> | no bashing here |
| 20:02:50 | <sm[m]> | just mentioning my feeling that we too often give it a free pass, overlooking the issues encountered by users in practice - balanced critical assessment is good |
| 20:02:59 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
| 20:03:08 | <sm[m]> | if that's bashing, I'm sorry and I'll say no more :) |
| 20:03:30 | <juri_> | wait, there was an opportunity to bash cabal, and i missed it? |
| 20:03:36 | <sclv> | in this case it looks like a combination of rough edges in cabal and also it seems just hie integration is very partial |
| 20:03:49 | <sclv> | which is the more general thing -- the stack model is much easier for ides to interop with |
| 20:04:07 | × | fradet quits (~ubuntu@216.252.75.247) (Remote host closed the connection) |
| 20:04:43 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 20:04:58 | <maerwald> | yep, Unix way is always more work |
| 20:05:22 | × | petersen quits (~petersen@redhat/juhp) (Ping timeout: 264 seconds) |
| 20:06:18 | <maerwald> | and not a popular philosophy anymore |
| 20:06:34 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 20:07:34 | → | petersen joins (~petersen@redhat/juhp) |
| 20:08:06 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:08:19 | × | livvy quits (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 268 seconds) |
| 20:09:02 | × | TMA quits (tma@twin.jikos.cz) (Ping timeout: 264 seconds) |
| 20:09:37 | → | TMA joins (tma@twin.jikos.cz) |
| 20:13:05 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 20:13:57 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:15:31 | × | dragestil quits (~quassel@fsf/member/dragestil) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 20:15:37 | <fendor> | maerwald, btw, next hie-bios release might fix the reconfigure issue |
| 20:18:22 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
| 20:20:45 | × | idhugo quits (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds) |
| 20:24:32 | × | garFF quits (~garff@0x3e2c8761.mobile.telia.dk) (Read error: Connection reset by peer) |
| 20:24:56 | × | fendor quits (~fendor@178.115.131.1.wireless.dyn.drei.com) (Remote host closed the connection) |
| 20:24:56 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 20:25:01 | × | jb55 quits (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection) |
| 20:25:38 | → | garFF joins (~garff@0x3e2c8761.mobile.telia.dk) |
| 20:25:39 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:26:21 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 20:26:24 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 240 seconds) |
| 20:26:43 | → | dnlkrgr joins (~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) |
| 20:27:42 | → | fendor joins (~fendor@178.115.131.1.wireless.dyn.drei.com) |
| 20:29:04 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Client Quit) |
| 20:30:43 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 20:31:30 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:32:22 | → | livvy joins (~livvy@gateway/tor-sasl/livvy) |
| 20:32:45 | → | niekvandepas joins (~niekvande@dhcp-077-249-088-250.chello.nl) |
| 20:33:51 | × | hexagenic quits (~mattias@2001:2002:51e0:74c9:5098:c4b6:1b73:7815) (Quit: WeeChat 1.9.1) |
| 20:34:25 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 20:36:41 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 20:36:43 | → | xelxebar_ joins (~xelxebar@gateway/tor-sasl/xelxebar) |
| 20:37:16 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:37:55 | × | xelxebar quits (~xelxebar@gateway/tor-sasl/xelxebar) (Ping timeout: 268 seconds) |
| 20:42:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 20:43:00 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:48:12 | × | Saukk quits (~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection) |
| 20:52:46 | → | alx741 joins (~alx741@186.178.110.149) |
| 20:53:10 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 20:53:42 | <d34df00d> | What's the right (memory- and time-efficient) way to store a set of Word32's? |
| 20:54:08 | <d34df00d> | I'd convert them to Ints and shove into an IntSet, but Int is twice as big on my machine. |
| 20:54:19 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:55:08 | <MarcelineVQ> | store where? |
| 20:56:15 | <d34df00d> | In memory. |
| 20:56:33 | <d34df00d> | I basically need set-like semantics for the specific case of (smaller) Words. |
| 20:57:42 | → | knupfer joins (~Thunderbi@200116b82c5a65007d58e9056fe28ef3.dip.versatel-1u1.de) |
| 20:58:46 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 20:59:02 | <Franciman> | d34df00d, I'd consider a sequence :P |
| 20:59:16 | <Franciman> | a Data.Seq |
| 20:59:23 | <Franciman> | no wait |
| 20:59:25 | <Franciman> | I mean a finger tree |
| 20:59:31 | <Franciman> | Data.Seq is specialized |
| 20:59:55 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 21:00:04 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:01:10 | <d34df00d> | That's, well, a sequence? |
| 21:01:25 | <d34df00d> | Wouldn't it have some overhead over a set-like structure that doesn't care about the relative ordering of the elements? |
| 21:01:55 | × | garFF quits (~garff@0x3e2c8761.mobile.telia.dk) (Quit: Leaving) |
| 21:02:23 | <ephemient> | https://hackage.haskell.org/package/unpacked-containers would be an option if you're not using stack |
| 21:02:31 | <d34df00d> | On an unrelated note, I've just did a memory profiling run of my program (with -hc), and the most space-consuming function is "primitive/basicUnsafe..." according to the diagram (and to the .hp file). |
| 21:02:40 | <d34df00d> | Is there a way to know what's hidden behind the ellipsis? |
| 21:02:46 | <d34df00d> | Otherwise "basicUnsafe" isn't too telling. |
| 21:03:14 | <d34df00d> | ephemient: oh, I didn't even know about that package, thank you! |
| 21:03:30 | <mniip> | could make your own radix tree with a large base |
| 21:03:46 | <MarcelineVQ> | iirc you can set a label width somehow to remove some of the ... cutoff |
| 21:04:34 | <ephemient> | the ideal solution will depend on what you types of operations you need, though |
| 21:04:55 | <d34df00d> | ephemient: inserts and membership checks. |
| 21:05:22 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 21:05:26 | <d34df00d> | MarcelineVQ: well, looks like the name gets cut off before going to the .hp file even. |
| 21:05:32 | d34df00d | looking through ghc docs on profiling now, meh. |
| 21:05:33 | <ephemient> | e.g. write-once read-often: sorted unboxed array would be an option |
| 21:05:41 | <mniip> | d34df00d, you're going to need to balance memory usage vs lookup/insert time |
| 21:05:45 | <MarcelineVQ> | oh, hmm, maybe that was for hp2ps |
| 21:05:49 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:05:53 | <Franciman> | d34df00d, a Set keeps track of the relative ordering, though |
| 21:06:02 | <Franciman> | at least Data.Set does |
| 21:06:13 | <mniip> | on one hand you have a Set which is gonna be among the most memory efficient |
| 21:06:22 | <mniip> | IntSet slightly faster and less memory efficient |
| 21:06:29 | <mniip> | and then we have a 2^32 bit long bitmask |
| 21:06:50 | <d34df00d> | I thought about maybe I should use a bloom filter as well or something (most checks gonna be negative). |
| 21:07:09 | <d34df00d> | But that's next stage, I need a zero-false-positives structure anyway. |
| 21:07:21 | × | ehigham quits (d92c1d84@host217-44-29-132.range217-44.btcentralplus.com) (Quit: Connection closed) |
| 21:07:33 | <d34df00d> | Also I didn't know IntSet is less memory efficient, that's even a bit contrary to my intuition! |
| 21:07:45 | <MarcelineVQ> | patricia trees are so darn neat |
| 21:08:06 | <geekosaur> | performance and space use are often related like that? |
| 21:08:18 | <MarcelineVQ> | There's a newer versio of that too, trying to remember the link, might be relevant to the convo |
| 21:08:34 | <mniip> | whoops I might be thinking of a different structure |
| 21:09:08 | <mniip> | IntSet looks to be slightly more efficient |
| 21:09:09 | <ephemient> | IntSet should be better than Set Int, the values are split up into bits and inlined into the nodes instead of being boxed |
| 21:09:23 | <d34df00d> | Yep, that's my intuition. |
| 21:09:23 | <mniip> | in that it coalesces some tips into a 32-bit bitmask |
| 21:09:30 | <mniip> | but other than that not that different |
| 21:10:28 | <MarcelineVQ> | blartg, can't find it, it was a patricia tree(ie) with even more collappsing for tips |
| 21:10:52 | <mniip> | I was thinking of some other structure that used 16-long arrays as nodes |
| 21:10:55 | <MarcelineVQ> | and was related to the word size, so thought it could be relevant |
| 21:10:56 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 21:11:12 | <mniip> | HashMap |
| 21:11:14 | <mniip> | that's the one |
| 21:11:44 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:11:44 | <ephemient> | hashing ints is a waste of computation though |
| 21:11:56 | <c_wraith> | Eh, that depends on the structure. |
| 21:12:06 | <mniip> | you could take hash = id |
| 21:12:09 | <mniip> | no big deal there |
| 21:12:10 | <c_wraith> | Some hash tables are bad when the hashes are clustered |
| 21:12:19 | <c_wraith> | and ints tend to be clustered |
| 21:12:33 | <mniip> | this is not actually a hashtable |
| 21:12:38 | <mniip> | it's a prefix tree |
| 21:13:00 | <c_wraith> | a prefix tree is kind of bad when the inputs are clustered, too |
| 21:13:10 | <c_wraith> | you have to traverse further to find the branches |
| 21:13:15 | <mniip> | hashtables and immutability/persistence don't click well |
| 21:14:07 | <c_wraith> | though I suppose doing LE traversal breaks up the common clustering cases |
| 21:16:50 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:75dd:a55d:449b:280f) (Remote host closed the connection) |
| 21:17:30 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 21:17:49 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:18:10 | × | ADG1089__ quits (~aditya@223.236.190.35) (Remote host closed the connection) |
| 21:19:48 | × | geekosaur quits (ae68c070@cpe-174-104-192-112.neo.res.rr.com) (Quit: Connection closed) |
| 21:22:56 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 21:23:34 | → | fendor__ joins (~fendor@91.141.0.151.wireless.dyn.drei.com) |
| 21:23:37 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:24:49 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
| 21:26:02 | × | fendor_ quits (~fendor@178.115.131.1.wireless.dyn.drei.com) (Ping timeout: 256 seconds) |
| 21:26:22 | × | fendor quits (~fendor@178.115.131.1.wireless.dyn.drei.com) (Ping timeout: 264 seconds) |
| 21:26:31 | → | fendor joins (~fendor@046124067054.public.t-mobile.at) |
| 21:28:49 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 21:29:20 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:29:26 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 264 seconds) |
| 21:29:36 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 21:30:11 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 21:31:36 | × | kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection) |
| 21:31:45 | → | son0p joins (~son0p@181.136.122.143) |
| 21:34:19 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 21:34:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 21:34:45 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 21:35:10 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:35:36 | × | jneira quits (501ca940@gateway/web/cgi-irc/kiwiirc.com/ip.80.28.169.64) (Ping timeout: 240 seconds) |
| 21:36:08 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 21:39:56 | → | Tario joins (~Tario@201.192.165.173) |
| 21:40:22 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 21:40:45 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 21:41:03 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:41:55 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 21:44:16 | → | ukari joins (~ukari@unaffiliated/ukari) |
| 21:45:07 | × | knupfer quits (~Thunderbi@200116b82c5a65007d58e9056fe28ef3.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
| 21:45:18 | arahael2 | is now known as arahael |
| 21:46:19 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
| 21:49:52 | → | renzhi joins (~renzhi@2607:fa49:6500:6f00::1e43) |
| 21:50:00 | × | Varis quits (~Tadas@unaffiliated/varis) (Read error: Connection reset by peer) |
| 21:52:45 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 21:53:15 | → | sim590 joins (~sim590@modemcable090.207-203-24.mc.videotron.ca) |
| 21:53:40 | × | alx741 quits (~alx741@186.178.110.149) (Quit: alx741) |
| 21:59:44 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 22:14:41 | → | nictki joins (~nictki@b2b-78-94-64-166.unitymedia.biz) |
| 22:15:00 | × | nictki quits (~nictki@b2b-78-94-64-166.unitymedia.biz) (Client Quit) |
| 22:16:47 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 22:17:22 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:75dd:a55d:449b:280f) |
| 22:19:13 | × | lawid quits (~quassel@dslb-090-186-099-081.090.186.pools.vodafone-ip.de) (Quit: lawid) |
| 22:19:13 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 22:19:38 | → | DavidEichmann joins (~david@234.109.45.217.dyn.plus.net) |
| 22:20:15 | <ij> | I wonder why removing IO here made it work faster https://github.com/siers/ppmz/commit/ec38fc399a03d8adbd04ce839f6c658ebd9e7db4#diff-abc40ee5b7b539d1e5f2d3238702f3815199caefada4e179fb95359832b638f0L320 |
| 22:20:52 | → | Tario joins (~Tario@201.192.165.173) |
| 22:20:56 | <ij> | Could it be because that allowed "all" to short-circuit without having to complete (what was previously) the IO action? |
| 22:21:20 | → | lawid joins (~quassel@dslb-090-186-099-081.090.186.pools.vodafone-ip.de) |
| 22:22:15 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:75dd:a55d:449b:280f) (Ping timeout: 258 seconds) |
| 22:23:45 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 22:24:30 | × | gioyik quits (~gioyik@gateway/tor-sasl/gioyik) (Quit: WeeChat 3.0) |
| 22:25:46 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 264 seconds) |
| 22:26:32 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 22:28:16 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 22:29:55 | × | Franciman quits (~francesco@host-95-235-155-82.retail.telecomitalia.it) (Quit: Leaving) |
| 22:30:13 | → | Tario joins (~Tario@200.119.186.23) |
| 22:31:07 | → | jneira joins (501ca940@gateway/web/cgi-irc/kiwiirc.com/ip.80.28.169.64) |
| 22:31:33 | × | danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 265 seconds) |
| 22:31:50 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 22:36:39 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 22:37:17 | → | Welkin joins (~Welkin@216.243.35.47) |
| 22:40:24 | <ski> | `unsafePerformIO' :( |
| 22:40:25 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 22:40:53 | <ij> | why ":("? |
| 22:41:42 | <ski> | well, i dunno what `mazeRead' is doing |
| 22:41:57 | <ski> | but what you said about `all' could be it |
| 22:42:34 | <ski> | btw, `allM id' looks pretty useless. could you use an `andM' instead ? |
| 22:42:59 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer) |
| 22:43:32 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 22:45:19 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 22:45:22 | <ij> | :) that did feel wrong, but I hadn't bothered thinking about it yet |
| 22:46:39 | <ski> | is `mazeRead' reading from some file ? |
| 22:46:55 | <ij> | Data.Vector.Mutable.unsafeRead |
| 22:47:34 | <ij> | the data is eventually from samples/* or the websocket problem server |
| 22:48:02 | → | abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 22:48:04 | <ij> | there's only a single file, you won't have to run all over the place to find a function :) |
| 22:48:13 | ← | Welkin parts (~Welkin@216.243.35.47) () |
| 22:48:15 | <ski> | freeze ? |
| 22:49:13 | <ij> | never called within the hotspots |
| 22:50:49 | <ski> | btw, fwiw, you don't need multiple `let's when they're contiguous, in a `do'-expression |
| 22:51:52 | <ij> | in cursorToContinue? yeah, it looks like I'd forgotten that |
| 22:51:58 | <ij> | btw, there is solve.prof attached :) |
| 22:55:43 | × | niekvandepas quits (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
| 22:55:44 | × | Tario quits (~Tario@200.119.186.23) (Read error: Connection reset by peer) |
| 22:55:53 | → | Tario joins (~Tario@201.192.165.173) |
| 23:00:34 | × | Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:3de8:edd9:c9fe:a9b7) (Quit: Leaving) |
| 23:00:37 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 272 seconds) |
| 23:00:49 | × | xsperry quits (~as@unaffiliated/xsperry) (Remote host closed the connection) |
| 23:00:52 | <Squarism> | if i pattern match on a list. Instead of pulling say first element into a local scope value make sure say first value of list == some value. Is that possible in some short form? |
| 23:00:55 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 23:01:52 | <Squarism> | case lst of ; imADefinedValue : [] -> ... |
| 23:02:10 | → | jedws joins (~jedws@121.209.199.128) |
| 23:02:36 | <Squarism> | such that match if first element == imADefinedValue |
| 23:02:42 | <Axman6> | Squarism: if you can pattern match on that type you can. like case lst of 0 : xs -> ... |
| 23:03:03 | <Axman6> | there's also view patterns, |
| 23:03:22 | <Axman6> | case lst of x@((== someValue) -> True) : xs -> ... |
| 23:04:11 | × | LKoen quits (~LKoen@107.173.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”) |
| 23:05:22 | × | son0p quits (~son0p@181.136.122.143) (Quit: Lost terminal) |
| 23:05:58 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
| 23:08:34 | × | jonn quits (~sweater@206.81.18.26) (Quit: WeeChat 2.8) |
| 23:12:29 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:75dd:a55d:449b:280f) |
| 23:13:46 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 23:14:01 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 23:17:53 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 23:18:14 | → | alx741 joins (~alx741@186.178.110.149) |
| 23:19:44 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:20:30 | <ski> | Squarism : also `case lst of [element] | element == imADefinedValue -> ...; ...' |
| 23:20:57 | → | worc3131 joins (~quassel@2a02:c7f:dcc4:6500:217b:6c7a:eac3:3be9) |
| 23:24:41 | × | neiluj quits (~jco@unaffiliated/neiluj) (Quit: leaving) |
| 23:25:43 | × | forgottenone quits (~forgotten@176.42.24.169) (Ping timeout: 246 seconds) |
| 23:25:55 | <Squarism> | Axman6, ah ok. in this case my constant is of type String. Would that work? I just got the impression the constant (value ref) i put there shadowed the constant and instead became a local value. |
| 23:26:14 | <ski> | Squarism : is it a `String' literal, or is it bound to a variable ? |
| 23:26:38 | <ski> | if it's a variable name, then yes, it would just shadow the non-local |
| 23:26:39 | × | worc3131 quits (~quassel@2a02:c7f:dcc4:6500:217b:6c7a:eac3:3be9) (Ping timeout: 265 seconds) |
| 23:26:47 | → | xsperry joins (~as@unaffiliated/xsperry) |
| 23:27:08 | <ski> | (unlike in say Erlang, which got this behaviour from Prolog. Mercury also behaves the same) |
| 23:28:17 | <Squarism> | ski, Ah, thanks. That explains it |
| 23:28:32 | <ski> | you probably want to use a guard |
| 23:28:49 | <ski> | (view pattern could also work, but it probably less readable) |
| 23:30:30 | ski | idly notes guards doesn't work with lambdas |
| 23:30:45 | <ski> | > (\n | n > 0 -> n) 2 |
| 23:30:47 | <lambdabot> | <hint>:1:5: error: <hint>:1:5: error: parse error on input ‘|’ |
| 23:31:10 | <ski> | > (\n@((> 0) -> True) -> n) 2 |
| 23:31:12 | <lambdabot> | 2 |
| 23:31:13 | <ski> | > (\n@((> 0) -> True) -> n) 0 |
| 23:31:15 | <lambdabot> | *Exception: <interactive>:3:2-24: Non-exhaustive patterns in lambda |
| 23:33:31 | <Squarism> | 6 |
| 23:33:41 | <Squarism> | ops. Ok! |
| 23:33:47 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
| 23:33:51 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-102-193.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 23:34:00 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 23:34:14 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-102-193.w86-212.abo.wanadoo.fr) |
| 23:35:09 | <sm[m]> | tomsmeding: hi, weren't you running ircbrowse.net ? where is/was it most recently ? |
| 23:35:55 | → | forgottenone joins (~forgotten@176.42.19.155) |
| 23:36:06 | <sm[m]> | aha, https://ircbrowse.tomsmeding.com |
| 23:37:15 | <ski> | @where ircbrowse |
| 23:37:15 | <lambdabot> | I know nothing about ircbrowse. |
| 23:37:30 | <ski> | @where+ ircbrowse https://ircbrowse.tomsmeding.com |
| 23:37:30 | <lambdabot> | Okay. |
| 23:38:46 | → | toasty_avocado[m joins (toastyavoc@gateway/shell/matrix.org/x-twwexxfwljxysnrf) |
| 23:39:37 | → | chunibio joins (47a27949@pool-71-162-121-73.bstnma.fios.verizon.net) |
| 23:40:28 | × | chunibio quits (47a27949@pool-71-162-121-73.bstnma.fios.verizon.net) (Client Quit) |
| 23:41:16 | <sm[m]> | tomsmeding: and I have a small request, when you're around |
| 23:42:35 | × | fendor__ quits (~fendor@91.141.0.151.wireless.dyn.drei.com) (Read error: Connection reset by peer) |
| 23:44:12 | → | abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 23:48:45 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 23:51:24 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
| 23:51:28 | → | conal joins (~conal@64.71.133.70) |
| 23:59:21 | × | usr25 quits (~usr25@unaffiliated/usr25) (Quit: Leaving) |
| 23:59:47 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
| 23:59:55 | → | tessier_ joins (~treed@kernel-panic/copilotco) |
All times are in UTC on 2021-01-31.