Logs on 2020-12-22 (freenode/#haskell)
| 00:00:14 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:2570:8bc6:6048:3a26) (Remote host closed the connection) |
| 00:00:21 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:2570:8bc6:6048:3a26) |
| 00:01:59 | <fuzzypixelz> | I I want to map elem on a list of elements and lists, how can I do that? |
| 00:02:16 | <fuzzypixelz> | elem (1, [1, 2, 3]) doesn't work for example |
| 00:02:29 | <fuzzypixelz> | so I can't map elem on a list of tuples |
| 00:04:41 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8) (Ping timeout: 268 seconds) |
| 00:04:49 | <fuzzypixelz> | here's what I did: elem' (e, l) = elem e l |
| 00:04:55 | <fuzzypixelz> | and just used elem1 |
| 00:08:14 | × | dandart quits (~Thunderbi@home.dandart.co.uk) (Ping timeout: 256 seconds) |
| 00:08:58 | × | mimi_vx quits (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) (Ping timeout: 258 seconds) |
| 00:11:42 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:2570:8bc6:6048:3a26) (Remote host closed the connection) |
| 00:12:38 | × | Genome quits (~genome@cpc153687-nrwh14-2-0-cust19.4-4.cable.virginm.net) (Quit: Leaving) |
| 00:13:14 | × | acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 264 seconds) |
| 00:14:06 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving) |
| 00:15:34 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 246 seconds) |
| 00:15:38 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 00:18:22 | → | thir joins (~thir@p200300f27f164f00f068565576ce0558.dip0.t-ipconnect.de) |
| 00:21:54 | × | Entertainment quits (~entertain@104.246.132.210) (Ping timeout: 265 seconds) |
| 00:22:53 | × | thir quits (~thir@p200300f27f164f00f068565576ce0558.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 00:24:45 | <hseg> | any way to optimize this? http://ix.io/2J4J ds and terms are heavy functions that i don't think i can optimize much |
| 00:25:04 | <hseg> | (restricted by combinatorial explosion) |
| 00:25:39 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:26:50 | <hseg> | especially should be able to share one (ds m) call over the entire needle call |
| 00:28:53 | → | Vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 00:29:48 | → | acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
| 00:31:27 | × | Vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Remote host closed the connection) |
| 00:31:34 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:2570:8bc6:6048:3a26) |
| 00:32:09 | <hseg> | oh wait. ds m :: [(a,Int)] is injective, so can replace the sum by a lookup |
| 00:32:53 | <hseg> | still needs a shared ds call though |
| 00:33:14 | × | hiroaki quits (~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds) |
| 00:35:17 | × | shenyi quits (uid216035@gateway/web/irccloud.com/x-uvfrbzkrqfbnyxjp) (Quit: Connection closed for inactivity) |
| 00:35:31 | → | irc_user joins (uid423822@gateway/web/irccloud.com/x-zpqgavcurwhmhgkg) |
| 00:37:57 | <monochrom> | needle m l = let dsm = ds m in [(t, f * occs t dsm) | ...] |
| 00:38:09 | <monochrom> | occs t dsm = sum . map snd $ filter ((== t) . fst) dsm |
| 00:40:41 | <hseg> | sure, though as i realized 5m ago, can replace the sum . filter by just fromMaybe 0 . lookup |
| 00:41:19 | <hseg> | and am not seeing *that* drastic of an improvement by floating the (ds m) call out, for some reason |
| 00:41:57 | <hseg> | ... indeed, am doing a poor man's inner join of maps on lists |
| 00:42:04 | → | mimi_vx joins (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) |
| 00:45:54 | <hseg> | so should rather refactor ds, terms into Map [Int] Int and replace needle by unionsWith (+) ([0..m] <&> intersectionWith (*) (ds m) . (`terms` l)) |
| 00:46:03 | <dsal> | fuzzypixelz: the tuple is possibly confusing you. |
| 00:46:14 | <xsperry> | fuzzypixelz, what's your input and desired output? |
| 00:46:15 | <dsal> | It's not clear what you mean by "map elem" |
| 00:46:25 | × | wonko7 quits (~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net) (Ping timeout: 264 seconds) |
| 00:46:37 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving) |
| 00:47:12 | <dsal> | > uncurry elem <$> [(1, [1, 2, 3]), (4, [1, 2, 3])] -- fuzzypixelz do you mean something like this? |
| 00:47:14 | <lambdabot> | [True,False] |
| 00:48:09 | <dsal> | :t uncurry |
| 00:48:11 | <lambdabot> | (a -> b -> c) -> (a, b) -> c |
| 00:49:42 | → | Jeanne-Kamikaze joins (~Jeanne-Ka@static-198-54-134-90.cust.tzulo.com) |
| 00:51:16 | × | Wamanuz quits (~wamanuz@78-70-34-81-no84.tbcn.telia.com) (Ping timeout: 240 seconds) |
| 00:52:08 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 00:56:01 | → | delYsid joins (~user@unaffiliated/delysid) |
| 00:56:34 | nitrix | is now known as nitrix-mas |
| 00:58:23 | <delYsid> | Given two rose trees a and b where b is a subset of a, is there a simple way to impose the ordering of b onto a? |
| 00:59:18 | <delYsid> | IOW all the nodes present in b should be put first in a, in the same order they occur in b. |
| 00:59:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 01:00:55 | × | arybczak quits (~unknown@2a02:a312:c83d:7800:bb7f:5c00:4f48:cc5c) (Quit: Konversation terminated!) |
| 01:01:42 | × | MVQq quits (~anja@198.254.202.72) (Quit: q) |
| 01:02:24 | → | MarcelineVQ joins (~anja@198.254.202.72) |
| 01:03:10 | <fuzzypixelz> | dsal: yes that's exactly what I need, thank you |
| 01:03:57 | → | sgibber2018 joins (~arch-gibb@208.85.237.137) |
| 01:05:13 | → | revprez_anzio joins (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) |
| 01:07:14 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds) |
| 01:10:52 | × | kam1 quits (~kam1@24.231.108.143) (Ping timeout: 246 seconds) |
| 01:10:59 | × | Sheilong quits (uid293653@gateway/web/irccloud.com/x-exdojaqirdkfmvpz) (Quit: Connection closed for inactivity) |
| 01:11:00 | → | kam1 joins (~kam1@24.231.108.143) |
| 01:11:02 | × | Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 260 seconds) |
| 01:11:04 | × | sgibber2018 quits (~arch-gibb@208.85.237.137) (Quit: WeeChat 3.0) |
| 01:11:37 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds) |
| 01:11:39 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 01:11:54 | → | Tario joins (~Tario@201.192.165.173) |
| 01:14:08 | × | iqubic quits (~user@2601:602:9500:4870:55c5:a9fe:a753:58ff) (Ping timeout: 258 seconds) |
| 01:14:20 | → | Sheilong joins (uid293653@gateway/web/irccloud.com/x-duufhsmgfmkrtnrr) |
| 01:14:26 | → | sgibber2018 joins (~arch-gibb@208.85.237.137) |
| 01:15:16 | <xsperry> | <$> is just fmap btw, which is map for lists |
| 01:15:23 | → | iqubic joins (~user@c-67-171-38-72.hsd1.wa.comcast.net) |
| 01:16:11 | × | sgibber2018 quits (~arch-gibb@208.85.237.137) (Client Quit) |
| 01:16:28 | → | sgibber2018 joins (~arch-gibb@208.85.237.137) |
| 01:16:49 | × | mimi_vx quits (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) (Ping timeout: 272 seconds) |
| 01:16:57 | <fuzzypixelz> | xsperry: oh I see |
| 01:17:23 | <fuzzypixelz> | my (haskell) solution for AOC day 6: https://bpa.st/4QIA |
| 01:17:37 | <fuzzypixelz> | Any feedback is (very) appreciated |
| 01:17:39 | <fuzzypixelz> | :P |
| 01:18:37 | <fuzzypixelz> | uhh, I mean, please give me feedback/comments/remarks .. anything |
| 01:21:19 | → | MOSCOS joins (~MOSCOS@152.32.70.55) |
| 01:24:25 | × | Mikagami quits (~MOSCOS@122.54.107.175) (Ping timeout: 240 seconds) |
| 01:24:51 | → | Mikagami joins (~MOSCOS@122.54.107.175) |
| 01:26:25 | × | MOSCOS quits (~MOSCOS@152.32.70.55) (Ping timeout: 240 seconds) |
| 01:28:00 | → | guest1222 joins (~user@49.5.6.87) |
| 01:28:31 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:28:44 | × | Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
| 01:29:17 | → | Kaiepi joins (~Kaiepi@47.54.252.148) |
| 01:30:16 | → | MOSCOS joins (~MOSCOS@152.32.70.55) |
| 01:30:58 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
| 01:31:52 | × | jumper149 quits (~jumper149@ip4d1622a9.dynamic.kabel-deutschland.de) (Quit: WeeChat 2.9) |
| 01:32:16 | → | mimi_vx joins (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) |
| 01:32:58 | → | dibblego joins (~dibblego@122-199-1-30.ip4.superloop.com) |
| 01:32:58 | × | dibblego quits (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host) |
| 01:32:58 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 01:33:25 | × | Mikagami quits (~MOSCOS@122.54.107.175) (Ping timeout: 240 seconds) |
| 01:33:49 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 01:33:51 | → | Mikagami joins (~MOSCOS@122.54.107.175) |
| 01:34:20 | → | fuzzypixelz_ joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 01:34:27 | <hseg> | hrm. is there some way of altering the key of a map for a single query? |
| 01:35:25 | × | MOSCOS quits (~MOSCOS@152.32.70.55) (Ping timeout: 240 seconds) |
| 01:35:36 | × | fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 240 seconds) |
| 01:35:39 | fuzzypixelz_ | is now known as fuzzypixelz |
| 01:36:47 | <hseg> | otherwise, i'm forced to compute the key-dependent values before alteration, adding unnecessary strictness |
| 01:40:05 | <hseg> | hrm. and that breaks all of my abstraction boundaries |
| 01:40:50 | <hseg> | unfortunately, maps are not key-value pairs, so this proposed alteration is too expensive to be reasonable |
| 01:41:04 | <ski> | > ST.Lazy.runST (do ref <- STRef.Lazy.newSTRef []; let loop n = do loop (n+1); STRef.Lazy.modifySTRef ref (n:) in do loop 0; STRef.Lazy.readSTRef ref) |
| 01:41:10 | <lambdabot> | mueval-core: Time limit exceeded |
| 01:41:33 | <ski> | monochrom : was one of your `ST.Lazy' examples something like that ^ ? |
| 01:44:11 | <monochrom> | Yes. Head/left recursion works. |
| 01:44:50 | → | cn8 joins (~8cn@2603-8081-8f01-4e00-0c24-30c9-e128-1797.res6.spectrum.com) |
| 01:45:01 | → | Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com) |
| 01:46:25 | <hseg> | ok, converting to maps made everything *much* faster |
| 01:46:31 | <ski> | so i wonder why that wasn't productive |
| 01:48:04 | × | columbarius quits (~columbari@mue-88-130-54-123.dsl.tropolys.de) (Ping timeout: 260 seconds) |
| 01:48:08 | → | wei2912 joins (~wei2912@unaffiliated/wei2912) |
| 01:49:50 | × | Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 256 seconds) |
| 01:50:08 | → | columbarius joins (~columbari@i5E86B3C9.versanet.de) |
| 01:50:54 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
| 01:51:02 | × | Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
| 01:51:21 | → | Kaiepi joins (~Kaiepi@47.54.252.148) |
| 01:51:46 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 01:52:51 | → | Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 01:53:26 | × | hseg quits (~gesh@IGLD-84-228-238-87.inter.net.il) (Quit: WeeChat 3.0) |
| 01:55:34 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 272 seconds) |
| 01:55:34 | Lord_of_Life_ | is now known as Lord_of_Life |
| 01:58:16 | <koz_> | ski: It spent too much time procastinating on social media. :P |
| 01:58:27 | <fuzzypixelz> | just dropping this https://bpa.st/4QIA again (my aoc day 6 solution), if you have anything to say about it please do |
| 01:59:15 | × | xcmw quits (~textual@2603-6011-2200-f103-c0c2-1e0a-7ed6-0dd8.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 02:01:40 | → | xcmw joins (~textual@2603-6011-2200-f103-c0c2-1e0a-7ed6-0dd8.res6.spectrum.com) |
| 02:01:44 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:01:52 | → | christo joins (~chris@81.96.113.213) |
| 02:06:13 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 264 seconds) |
| 02:06:51 | × | mimi_vx quits (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) (Ping timeout: 272 seconds) |
| 02:07:29 | hackage | yesod-form-multi 1.7.0 - Multi-input form handling for Yesod Web Framework https://hackage.haskell.org/package/yesod-form-multi-1.7.0 (Burtannia) |
| 02:10:09 | → | eacameron joins (uid256985@gateway/web/irccloud.com/x-vxdrpcotoqmkhsji) |
| 02:12:32 | → | mimi_vx joins (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) |
| 02:15:35 | → | ADG1089_ joins (~adg1089@122.163.166.13) |
| 02:16:57 | × | mimi_vx quits (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) (Ping timeout: 260 seconds) |
| 02:19:26 | → | mimi_vx joins (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) |
| 02:19:29 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 02:19:49 | × | ADG1089_ quits (~adg1089@122.163.166.13) (Ping timeout: 246 seconds) |
| 02:19:51 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 02:24:22 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds) |
| 02:25:02 | → | ADG1089_ joins (~adg1089@122.163.166.13) |
| 02:25:23 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 02:27:34 | × | jmchael quits (~jmchael@81.174.205.210) (Ping timeout: 256 seconds) |
| 02:29:25 | <delYsid> | pathTree :: Tree a -> Tree (NonEmpty a) |
| 02:29:30 | <delYsid> | pathTree = foldTree $ \a -> Node (pure a) . (fmap . fmap) (cons a) |
| 02:29:42 | <guest1222> | is rio a good library to use? |
| 02:29:44 | <delYsid> | Thats about the most useful function I have ever written/discovered. |
| 02:29:46 | <guest1222> | https://hackage.haskell.org/package/rio |
| 02:30:13 | × | ADG1089_ quits (~adg1089@122.163.166.13) (Ping timeout: 268 seconds) |
| 02:30:27 | <glguy> | guest1222, it's unmaintained build-depends would make it a mess to rely on |
| 02:30:37 | <guest1222> | glguy: ... |
| 02:32:22 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 02:32:58 | → | christo joins (~chris@81.96.113.213) |
| 02:36:02 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 02:37:19 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 246 seconds) |
| 02:39:51 | × | delYsid quits (~user@unaffiliated/delysid) (Remote host closed the connection) |
| 02:44:36 | → | christo joins (~chris@81.96.113.213) |
| 02:45:28 | <guest1222> | glguy: what runParser is used to in parsec? |
| 02:45:44 | <guest1222> | there's State monad in runParser? |
| 02:49:00 | × | kam1 quits (~kam1@24.231.108.143) (Read error: Connection reset by peer) |
| 02:49:32 | → | drbean joins (~drbean@TC210-63-209-143.static.apol.com.tw) |
| 02:50:13 | → | olligobber joins (~olligobbe@unaffiliated/olligobber) |
| 02:51:25 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 02:51:31 | × | tsrt^ quits (tsrt@ip98-184-89-2.mc.at.cox.net) () |
| 02:54:21 | × | mimi_vx quits (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) (Ping timeout: 272 seconds) |
| 02:55:11 | → | mimi_vx joins (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) |
| 02:56:13 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds) |
| 02:57:03 | × | fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz) |
| 02:57:19 | × | Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
| 02:57:24 | → | Kaeipi joins (~Kaiepi@47.54.252.148) |
| 02:58:34 | → | kam1 joins (~kam1@24.231.108.143) |
| 02:59:33 | × | mimi_vx quits (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) (Ping timeout: 258 seconds) |
| 03:00:16 | × | drbean quits (~drbean@TC210-63-209-143.static.apol.com.tw) (Ping timeout: 240 seconds) |
| 03:00:20 | → | drbean_ joins (~drbean@TC210-63-209-167.static.apol.com.tw) |
| 03:00:57 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 03:01:05 | → | mimi_vx joins (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) |
| 03:01:33 | → | mastarija joins (~mastarija@93-136-154-213.adsl.net.t-com.hr) |
| 03:01:51 | × | xff0x_ quits (~fox@2001:1a81:537d:6200:a74c:d71f:eb2e:2908) (Ping timeout: 258 seconds) |
| 03:03:44 | → | xff0x_ joins (~fox@2001:1a81:53b4:600:dcc7:7fd8:9f40:3657) |
| 03:05:41 | × | mimi_vx quits (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) (Ping timeout: 258 seconds) |
| 03:07:50 | × | drbean_ quits (~drbean@TC210-63-209-167.static.apol.com.tw) (Ping timeout: 268 seconds) |
| 03:07:52 | <glguy> | guest1222, I don't understand the question |
| 03:08:14 | <glguy> | You're asking about: runParser :: Stream s Identity t => Parsec s u a -> u -> SourceName -> s -> Either ParseError a ? |
| 03:09:46 | → | jedws joins (~jedws@121.209.189.201) |
| 03:11:06 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:11:24 | → | drbean joins (~drbean@TC210-63-209-160.static.apol.com.tw) |
| 03:11:26 | × | jespada quits (~jespada@90.254.245.49) (Ping timeout: 256 seconds) |
| 03:11:59 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 03:12:21 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 03:12:39 | <glguy> | and parsec provides built-in support for tracking some state, along the path of a successful parse |
| 03:12:45 | → | jespada joins (~jespada@90.254.245.49) |
| 03:14:21 | × | theDon quits (~td@muedsl-82-207-238-191.citykom.de) (Read error: Connection reset by peer) |
| 03:15:06 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 03:15:43 | <dsal> | :t map concat |
| 03:15:44 | <lambdabot> | Foldable t => [t [a]] -> [[a]] |
| 03:15:52 | <dsal> | :t foldMap |
| 03:15:53 | <lambdabot> | (Foldable t, Monoid m) => (a -> m) -> t a -> m |
| 03:16:10 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 03:16:18 | → | theDon joins (~td@muedsl-82-207-238-252.citykom.de) |
| 03:17:29 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
| 03:17:49 | × | jedws quits (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 03:19:16 | × | Wayno quits (~Wayno@185.103.96.147) (Remote host closed the connection) |
| 03:19:42 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 256 seconds) |
| 03:20:02 | → | xirhtogal joins (~lagothrix@unaffiliated/lagothrix) |
| 03:20:02 | lagothrix | is now known as Guest79707 |
| 03:20:02 | × | Guest79707 quits (~lagothrix@unaffiliated/lagothrix) (Killed (orwell.freenode.net (Nickname regained by services))) |
| 03:20:02 | xirhtogal | is now known as lagothrix |
| 03:22:57 | × | cn8 quits (~8cn@2603-8081-8f01-4e00-0c24-30c9-e128-1797.res6.spectrum.com) (Read error: Connection reset by peer) |
| 03:25:27 | → | chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
| 03:26:44 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 03:27:47 | <MarcelineVQ> | :t fold . fold |
| 03:27:49 | <lambdabot> | (Foldable t1, Foldable t2, Monoid c, Monoid (t1 c)) => t2 (t1 c) -> c |
| 03:29:18 | → | drbean_ joins (~drbean@TC210-63-209-212.static.apol.com.tw) |
| 03:29:42 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 03:29:46 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Client Quit) |
| 03:30:03 | × | urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna) |
| 03:30:05 | × | drbean quits (~drbean@TC210-63-209-160.static.apol.com.tw) (Ping timeout: 240 seconds) |
| 03:32:13 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 03:37:33 | → | nineonin_ joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 03:40:00 | × | Sheilong quits (uid293653@gateway/web/irccloud.com/x-duufhsmgfmkrtnrr) () |
| 03:40:57 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 260 seconds) |
| 03:43:52 | × | mastarija quits (~mastarija@93-136-154-213.adsl.net.t-com.hr) (Quit: Leaving) |
| 03:45:17 | × | MarcelineVQ quits (~anja@198.254.202.72) (Ping timeout: 256 seconds) |
| 03:45:45 | → | Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com) |
| 03:48:01 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:48:49 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
| 03:49:20 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 03:50:04 | → | vs^ joins (vs@ip98-184-89-2.mc.at.cox.net) |
| 03:50:23 | × | Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 256 seconds) |
| 03:50:36 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit) |
| 03:54:22 | → | _Cactus_ joins (~cactus@2404:e801:200e:1f22:94f1:f531:bd80:25b1) |
| 03:56:30 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 03:56:46 | × | m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 246 seconds) |
| 03:56:52 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 03:57:04 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:2570:8bc6:6048:3a26) (Remote host closed the connection) |
| 03:57:49 | × | sgibber2018 quits (~arch-gibb@208.85.237.137) (Ping timeout: 258 seconds) |
| 03:58:03 | × | Aquazi quits (uid312403@gateway/web/irccloud.com/x-rvdkfbbedyjxkcho) (Quit: Connection closed for inactivity) |
| 04:00:20 | → | rprije joins (~rprije@202.168.43.92) |
| 04:00:30 | → | Rudd0 joins (~Rudd0@185.189.115.103) |
| 04:01:52 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
| 04:02:28 | → | Vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 04:02:47 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:65a1:7ff2:d4f4:eebe) |
| 04:05:08 | → | orion joins (~orion@c-76-19-238-5.hsd1.ma.comcast.net) |
| 04:05:08 | × | orion quits (~orion@c-76-19-238-5.hsd1.ma.comcast.net) (Changing host) |
| 04:05:08 | → | orion joins (~orion@unaffiliated/orion) |
| 04:05:10 | → | MarcelineVQ joins (~anja@198.254.202.72) |
| 04:07:02 | × | Vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 268 seconds) |
| 04:10:18 | → | coot joins (~coot@37.30.50.187.nat.umts.dynamic.t-mobile.pl) |
| 04:11:38 | × | srk quits (~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection) |
| 04:11:56 | → | srk joins (~sorki@gateway/tor-sasl/sorki) |
| 04:13:12 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) |
| 04:13:22 | × | xcmw quits (~textual@2603-6011-2200-f103-c0c2-1e0a-7ed6-0dd8.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 04:14:36 | × | irc_user quits (uid423822@gateway/web/irccloud.com/x-zpqgavcurwhmhgkg) (Quit: Connection closed for inactivity) |
| 04:15:01 | → | flukiluke1 joins (~flukiluke@217.146.82.202) |
| 04:15:05 | × | zv quits (~zv@unaffiliated/zv) (Ping timeout: 240 seconds) |
| 04:16:28 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Remote host closed the connection) |
| 04:16:34 | → | Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) |
| 04:17:48 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 04:18:44 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit) |
| 04:19:51 | → | thir joins (~thir@p200300f27f164f00f068565576ce0558.dip0.t-ipconnect.de) |
| 04:22:07 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 04:22:32 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 04:24:38 | × | thir quits (~thir@p200300f27f164f00f068565576ce0558.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 04:25:01 | → | mimi_vx joins (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) |
| 04:25:11 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit) |
| 04:25:29 | → | jmchael joins (~jmchael@81.174.205.210) |
| 04:25:42 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 04:26:15 | → | xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com) |
| 04:27:30 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 04:30:03 | × | revprez_anzio quits (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 256 seconds) |
| 04:32:56 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 268 seconds) |
| 04:34:48 | × | iqubic quits (~user@c-67-171-38-72.hsd1.wa.comcast.net) (Remote host closed the connection) |
| 04:37:04 | → | iqubic joins (~user@2601:602:9500:4870:e949:f050:eec9:86cb) |
| 04:41:30 | hackage | HaskellNet 0.5.3 - Client support for POP3, SMTP, and IMAP https://hackage.haskell.org/package/HaskellNet-0.5.3 (AlexanderVershilov) |
| 04:43:36 | → | jedws joins (~jedws@121.209.189.201) |
| 04:49:23 | × | coot quits (~coot@37.30.50.187.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 04:49:23 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
| 04:49:25 | × | orion quits (~orion@unaffiliated/orion) (Ping timeout: 264 seconds) |
| 04:53:17 | × | jmchael quits (~jmchael@81.174.205.210) (Ping timeout: 268 seconds) |
| 04:54:10 | × | chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 04:54:25 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 240 seconds) |
| 04:57:01 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:58:46 | × | mimi_vx quits (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) (Ping timeout: 258 seconds) |
| 05:01:05 | × | Kaeipi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
| 05:01:19 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 05:01:25 | → | Kaeipi joins (~Kaiepi@47.54.252.148) |
| 05:02:22 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 05:02:37 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 05:06:12 | × | Kaeipi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
| 05:06:14 | × | MarcelineVQ quits (~anja@198.254.202.72) (Ping timeout: 268 seconds) |
| 05:09:29 | → | Kaiepi joins (~Kaiepi@47.54.252.148) |
| 05:10:30 | × | Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Remote host closed the connection) |
| 05:12:01 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 246 seconds) |
| 05:12:34 | × | Kronic quits (~Kronic___@84.203.96.46) (Read error: Connection reset by peer) |
| 05:12:59 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 05:13:32 | → | Tario joins (~Tario@201.192.165.173) |
| 05:20:15 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) |
| 05:21:18 | → | DTZUZU_ joins (~DTZUZU@207.81.171.116) |
| 05:21:49 | → | ADG1089__ joins (~aditya@122.163.166.13) |
| 05:22:11 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 05:22:29 | × | DTZUZU quits (~DTZUZU@205.ip-149-56-132.net) (Read error: Connection reset by peer) |
| 05:22:36 | <iqubic> | Is there a way to short circuit a Do block? I have a Do block using State GameState Int, for a custom type GameState. I want to first check if GameState has a given property, and if so, I want to do none of the remaining computations and just return of a set value. |
| 05:23:55 | → | DTZUZU joins (~DTZUZU@205.ip-149-56-132.net) |
| 05:24:47 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 260 seconds) |
| 05:25:42 | <monochrom> | Just use a conditional. |
| 05:25:46 | <iqubic> | How so? |
| 05:26:01 | <monochrom> | You know if-then-else? You know case-of? |
| 05:26:14 | × | DTZUZU_ quits (~DTZUZU@207.81.171.116) (Ping timeout: 260 seconds) |
| 05:26:33 | <iqubic> | I do. |
| 05:26:45 | <pavonia> | It depends on the used monad, e.g. Cont can do that, IIRC |
| 05:26:55 | <iqubic> | I'm using State. |
| 05:27:12 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
| 05:27:47 | <pavonia> | Then use a conditional :) |
| 05:28:20 | <iqubic> | I se. |
| 05:32:08 | × | Jeanne-Kamikaze quits (~Jeanne-Ka@static-198-54-134-90.cust.tzulo.com) (Quit: Leaving) |
| 05:32:56 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 240 seconds) |
| 05:35:02 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:35:13 | × | borne quits (~fritjof@200116b864861500c0a3d285e8e687f4.dip.versatel-1u1.de) (Ping timeout: 272 seconds) |
| 05:36:46 | → | borne joins (~fritjof@200116b864c6f800cebf0c02893372bd.dip.versatel-1u1.de) |
| 05:40:28 | → | MarcelineVQ joins (~anja@198.254.202.72) |
| 05:41:15 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) |
| 05:42:57 | → | al3x27 joins (~plovs@85.254.75.83) |
| 05:46:14 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 264 seconds) |
| 05:46:22 | × | _Cactus_ quits (~cactus@2404:e801:200e:1f22:94f1:f531:bd80:25b1) (Ping timeout: 260 seconds) |
| 05:46:33 | → | Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com) |
| 05:50:52 | × | Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 246 seconds) |
| 05:53:42 | × | jedws quits (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 05:55:09 | × | jathan quits (~jathan@69.61.93.38) (Quit: WeeChat 2.3) |
| 05:59:37 | × | Mikagami quits (~MOSCOS@122.54.107.175) (Remote host closed the connection) |
| 06:00:07 | → | Mikagami joins (~MOSCOS@122.54.107.175) |
| 06:02:25 | × | jlamothe quits (~jlamothe@198.251.55.207) (Ping timeout: 240 seconds) |
| 06:04:42 | × | mounty quits (~mounty@2001:8000:2f59:0:6d56:fa71:1764:6b85) (Ping timeout: 260 seconds) |
| 06:04:43 | × | philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds) |
| 06:06:33 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) |
| 06:08:47 | <gentauro> | tdammers: hey, you still haven't got any scandinavians? https://well-typed.com/who_we_are/ |
| 06:09:03 | <gentauro> | tdammers: is it cos they don't apply, or do you just not hire scandis? :D |
| 06:09:13 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 06:09:20 | → | mimi_vx joins (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) |
| 06:09:38 | <gentauro> | tdammers: https://well-typed.com/blog/2020/12/haskell-development-job-with-well-typed/ |
| 06:09:51 | <MarcelineVQ> | the latter for sure |
| 06:11:27 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 260 seconds) |
| 06:12:49 | × | ADG1089__ quits (~aditya@122.163.166.13) (Remote host closed the connection) |
| 06:13:10 | × | Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
| 06:13:19 | → | Kaiepi joins (~Kaiepi@47.54.252.148) |
| 06:14:07 | → | jedws joins (~jedws@121.209.189.201) |
| 06:14:29 | × | mimi_vx quits (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) (Ping timeout: 272 seconds) |
| 06:15:20 | → | mimi_vx joins (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) |
| 06:16:44 | × | hekkaidekapus[ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection) |
| 06:16:57 | → | hekkaidekapus[ joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 06:17:40 | → | zv joins (~zv@unaffiliated/zv) |
| 06:18:59 | <gentauro> | btw, troll spotted? https://yairchu.github.io/posts/silly-haskell-formatting |
| 06:19:26 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection) |
| 06:19:38 | <gentauro> | I tend to write my signtaures like this for readability (and sanity) -> https://gitlab.com/spisemisu/bornhack-demo-2019/-/blob/master/src/Main.hs#L52-59 |
| 06:19:50 | <gentauro> | how is this "silly"? |
| 06:20:03 | → | grdvnl joins (~gdrvnl@cpe-76-94-36-134.socal.res.rr.com) |
| 06:21:12 | → | thir joins (~thir@p200300f27f164f00f068565576ce0558.dip0.t-ipconnect.de) |
| 06:23:45 | → | _Cactus_ joins (~cactus@2404:e801:200e:1f22:94f1:f531:bd80:25b1) |
| 06:25:38 | <pavonia> | gentauro: Well, he has a point there. If you want to remove/move the first parameter with "silly" formatting, you have to change two lines |
| 06:25:47 | × | thir quits (~thir@p200300f27f164f00f068565576ce0558.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
| 06:27:05 | <leifm> | The way he prefers works better with proportionally-spaced fonts |
| 06:27:53 | <MarcelineVQ> | I don't strictly adhere to one parameter to one line |
| 06:28:18 | <MarcelineVQ> | I might have 2,3,1 even |
| 06:29:11 | <MarcelineVQ> | Code as an artform should shun strict formatting anyway :> |
| 06:29:24 | <MarcelineVQ> | Make it beautiful not conformant |
| 06:30:20 | <pavonia> | Heh |
| 06:30:42 | <gentauro> | pavonia: so compromise readability for the sake of "lazyness"? |
| 06:31:07 | × | nineonin_ quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
| 06:31:20 | → | nfd joins (~nfd9001@c-67-183-38-33.hsd1.wa.comcast.net) |
| 06:31:50 | → | nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 06:32:33 | <gentauro> | also, I think it's a bit meh to dismiss all of Haskell styling tools -> «I was looking to see what formatting tools exist for Haskell, and discovered that while several tools exist, none fit my taste, and some of these tools were disqualified on the grounds of applying silly formatting.» |
| 06:32:43 | <gentauro> | maybe he should have stayed in the C++ ecosystem |
| 06:32:47 | <nfd> | hey folks :) trying to finish up AoC day 19 and i think i have most of a cfg parser generator (to megaparsec) handy, but i've got some hiccup somewhere here that's causing it to not consume all input (like i expected from the backtracking strat) |
| 06:32:56 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:65a1:7ff2:d4f4:eebe) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 06:33:18 | <nfd> | https://nfd.moe/files/tmp/day19.txt think my problem's in mkParser here |
| 06:33:18 | <gentauro> | nfd: there are `hints` on the /r/haskell ;) |
| 06:33:29 | <nfd> | heh nice |
| 06:33:54 | <nfd> | specifically i'm rejecting good inputs on that last `<* eof` check on the top-level |
| 06:34:27 | <nfd> | i'll check the reddit but i don't know if i want to see how everyone else generally does it before i'm through |
| 06:34:31 | × | Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
| 06:34:39 | → | Kaiepi joins (~Kaiepi@47.54.252.148) |
| 06:34:59 | <gentauro> | btw, I personally use `stylish-haskell`. I somehow agree with the formatting except on imports of constructors and record fields. Instead of beeing multi-line, they are always one-liners … |
| 06:35:19 | <gentauro> | nfd: good point |
| 06:35:45 | × | nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 240 seconds) |
| 06:35:47 | <pavonia> | gentauro: I wouldn't say, and I also don't like the formatting suggested in the article, but it doesn't seem like trolling to me |
| 06:37:56 | <gentauro> | pavonia: using the terms "silly" for all others (including Jasper Van der Jeugt tool) compared to "propper" (his) is trolling in my book |
| 06:38:52 | <gentauro> | nfd: I guess it would help if you posted a "sample" of the data to parse … |
| 06:39:58 | × | xff0x_ quits (~fox@2001:1a81:53b4:600:dcc7:7fd8:9f40:3657) (Ping timeout: 258 seconds) |
| 06:40:13 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:40:53 | → | xff0x_ joins (~fox@2001:1a81:53b4:600:e33a:6fca:3b6a:86a2) |
| 06:42:38 | nitrix-mas | is now known as nitrix |
| 06:43:13 | → | EdFletcher joins (~EdFletche@unaffiliated/edfletchert137) |
| 06:43:28 | <nfd> | so i'm going through with megaparsec debug and i'm mostly seeing what i expected |
| 06:45:15 | <nfd> | aabbbbbaabbbaaaaaabbbbbababaaaaabbaaabba is accepted early at aabbbbbaabbbaaaaaabbbbbababa in the trial input |
| 06:45:31 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 06:45:31 | <nfd> | (and then caught and errored by the guard at the top-level |
| 06:45:51 | <nfd> | gentauro: sorry, i was staring at the debug output :D |
| 06:46:08 | × | kostic_ quits (~kostic@51.194.80.91) (Ping timeout: 268 seconds) |
| 06:46:55 | <nfd> | my first instinct was "well, maybe i need more eof checking in the midst of this thing" but clearly that's probably not *quite* it all of the time |
| 06:47:30 | <nfd> | because parsers may be called in the middle of others, generally |
| 06:48:09 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 06:49:13 | <nfd> | this problem kinda smells of Kleene |
| 06:49:49 | xerox_ | watches Kleene checking his armpits |
| 06:50:16 | → | kostic_ joins (~kostic@51.194.80.91) |
| 06:50:39 | <nfd> | though the last parser to apparently wrongly succeed was 11, which is by definition in p2. 42, 31 | 42, 11, 31 which isn't very kleeney |
| 06:50:53 | → | toorevitimirp joins (~tooreviti@117.182.182.252) |
| 06:51:03 | <nfd> | so maybe i take it back |
| 06:52:25 | <nfd> | and also not very regular |
| 06:52:44 | nfd | has flashbacks of having to do pumping lemma problems in exams |
| 06:53:33 | <nfd> | uptree 11 fails a whole bunch, though! strange |
| 06:56:04 | × | kostic_ quits (~kostic@51.194.80.91) (Ping timeout: 260 seconds) |
| 06:56:15 | × | Tspoon quits (tlarjoma@hilla.kapsi.fi) (Ping timeout: 256 seconds) |
| 06:56:21 | → | Tspoon joins (tlarjoma@hilla.kapsi.fi) |
| 06:57:26 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 06:58:23 | × | berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds) |
| 06:59:08 | → | nemron joins (~nemron@2a02:810b:c7bf:fdb8:e5d9:cf51:dbc1:34c4) |
| 07:00:29 | × | vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
| 07:00:53 | → | kostic_ joins (~kostic@51.194.80.91) |
| 07:01:26 | → | danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 07:09:49 | × | kostic_ quits (~kostic@51.194.80.91) (Ping timeout: 264 seconds) |
| 07:09:58 | → | fxg joins (~fxg@unaffiliated/fxg) |
| 07:10:23 | → | Turmiht joins (2d38964a@45.56.150.74) |
| 07:11:16 | <Turmiht> | Anybody here uses macOS Big Sur to write Haskell? |
| 07:11:49 | <Turmiht> | I got a linker error yesterday and cannot figure it out |
| 07:14:02 | → | kostic_ joins (~kostic@51.194.80.91) |
| 07:15:01 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 07:16:24 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 07:17:51 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:19:28 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 07:19:31 | → | u0_a203 joins (~u0_a203@37.98.47.224) |
| 07:19:45 | × | bitmapper quits (uid464869@gateway/web/irccloud.com/x-zzifphhwbirnbmhh) (Quit: Connection closed for inactivity) |
| 07:20:33 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Client Quit) |
| 07:22:50 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 07:22:52 | × | u0_a203 quits (~u0_a203@37.98.47.224) (Client Quit) |
| 07:23:17 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 07:24:03 | × | nemron quits (~nemron@2a02:810b:c7bf:fdb8:e5d9:cf51:dbc1:34c4) (Ping timeout: 258 seconds) |
| 07:24:38 | × | kostic_ quits (~kostic@51.194.80.91) (Ping timeout: 264 seconds) |
| 07:24:48 | <dminuoso> | Turmiht: What error message do you get? |
| 07:25:43 | → | CMCDragonkai2 joins (~Thunderbi@124.19.3.250) |
| 07:25:50 | <Turmiht> | Resolving dependencies...Build profile: -w ghc-8.8.4 -O1In order, the following will be built (use -v for more details): - distributive-0.6.2 (lib:distributive) (requires build)Starting distributive-0.6.2 (all, legacy fallback)cabal: Failed to build distributive-0.6.2. The failure occurred during theconfigure step. The exception |
| 07:25:50 | <Turmiht> | was:dieVerbatim: user error (cabal: '/Users/turmiht/.ghcup/bin/ghc' exited with anerror:ld: warning: ignoring file/Users/turmiht/.cabal/store/ghc-8.8.4/cbl-dctst-1.0.8-9ce5b252/lib/libHScbl-dctst-1.0.8-9ce5b252.a,building for macOS-x86_64 but attempting to link with file built forunknown-unsupported file format ( 0x21 0x3C 0x61 0x72 0x63 0x68 0x3E |
| 07:25:51 | <Turmiht> | 0x0A 0x2F0x20 0x20 0x20 0x20 0x20 0x20 0x20 )Undefined symbols for architecture x86_64:"_cblzmdctstzm1zi0zi8zm9ce5b252_DistributionziExtraziDoctest_defaultMainWithDoctests_closure",referenced from:_Main_main_info in Main.o_Lu2mR_srt in Main.old: symbol(s) not found for architecture x86_64clang: error: linker command failed with exit code 1 (use -v |
| 07:25:51 | <Turmiht> | to seeinvocation)`gcc' failed in phase `Linker'. (Exit code: 1)) |
| 07:25:57 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 07:26:44 | <Turmiht> | It seems to me that my ld fail to recognize the ar file (given the magic bytes) |
| 07:26:52 | → | nemron joins (~nemron@2a01:598:a906:d62d:a0e2:5e5d:3ca2:a658) |
| 07:28:07 | → | nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 07:28:37 | → | kostic_ joins (~kostic@51.194.80.91) |
| 07:29:00 | hackage | spdx-license 0.1.0 - SPDX license templates https://hackage.haskell.org/package/spdx-license-0.1.0 (Poscat) |
| 07:29:10 | <Turmiht> | lipo -info and object dump show contents of referenced libs is build for macho-x86-64 |
| 07:29:26 | <dminuoso> | @where |
| 07:29:26 | <lambdabot> | @where <key>, return element associated with key |
| 07:29:35 | <dminuoso> | @where paste |
| 07:29:35 | <lambdabot> | Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com |
| 07:29:37 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 07:29:59 | <dminuoso> | Turmiht: Can you use that? It's just easier for me to read when whitespace is nicely preserved |
| 07:30:09 | <Turmiht> | I'll give it a try |
| 07:30:19 | <Turmiht> | Wait a minute plz |
| 07:30:20 | → | christo joins (~chris@81.96.113.213) |
| 07:31:19 | × | nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
| 07:31:23 | <Turmiht> | https://paste.tomsmeding.com/rdCfhFsm |
| 07:31:28 | <Turmiht> | Is it ok? |
| 07:31:33 | <dminuoso> | Yes, cheers |
| 07:31:44 | <dminuoso> | Mmm, still looks weird, but it's fine |
| 07:31:59 | → | nineonine joins (~nineonine@50.216.62.2) |
| 07:32:13 | <Turmiht> | Well, thx |
| 07:32:29 | → | solarliner joins (~solarline@243.81.10.109.rev.sfr.net) |
| 07:33:25 | <dminuoso> | Turmiht: Does the error happen with 8.10.3 as well? |
| 07:33:42 | <Turmiht> | Yes, and 8.6.5 |
| 07:34:18 | <Turmiht> | Wait, no |
| 07:34:28 | → | ADG1089__ joins (~aditya@122.163.166.13) |
| 07:34:28 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 246 seconds) |
| 07:34:30 | <Turmiht> | I just tried 8.10.2 which appear in ghcup list |
| 07:34:40 | → | asheshambasta joins (~user@ptr-e1lysaxt4bg7tmaahx1.18120a2.ip6.access.telenet.be) |
| 07:35:09 | <Turmiht> | should I build 8.10.3 from source? |
| 07:36:45 | × | natechan quits (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Quit: WeeChat 2.9) |
| 07:36:55 | × | olligobber quits (~olligobbe@unaffiliated/olligobber) (Ping timeout: 246 seconds) |
| 07:37:57 | <dminuoso> | Turmiht: What command did you use to provoke this error? |
| 07:38:35 | <Turmiht> | `cabal install distributive` could, although I first found it when I try install Agda |
| 07:39:07 | <dminuoso> | Just to rule some stuff out, do you have any modifications in your ~/.cabal/config ? |
| 07:39:32 | <Turmiht> | nop, and it have tried reinstall everthing |
| 07:39:58 | <Turmiht> | I and everything, typos |
| 07:40:12 | → | shad0w_ joins (~shad0w_@160.202.37.210) |
| 07:40:20 | <dminuoso> | https://gitlab.haskell.org/ghc/ghc/-/issues/18446 |
| 07:40:24 | <dminuoso> | Im wondering whether this is related |
| 07:41:07 | × | shad0w_ quits (~shad0w_@160.202.37.210) (Read error: Connection reset by peer) |
| 07:41:30 | <dminuoso> | Turmiht: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-apple-darwin.tar.xz |
| 07:41:34 | <dminuoso> | Try the version manually |
| 07:41:37 | → | natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 07:41:50 | <dminuoso> | Just unpack it somewhere and install as regular bindist |
| 07:41:59 | <tdammers> | gentauro: you'd think well-typed, out of all people, would have a "strictly no scandinavians" hiring policy? |
| 07:42:11 | <Turmiht> | I'm downloading it |
| 07:42:57 | → | shad0w_ joins (~shad0w_@160.202.37.210) |
| 07:43:13 | × | danso quits (~dan@69-165-210-185.cable.teksavvy.com) (Quit: WeeChat 2.9) |
| 07:43:54 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 07:44:30 | → | Franciman joins (~francesco@host-82-49-79-73.retail.telecomitalia.it) |
| 07:45:31 | × | shad0w_ quits (~shad0w_@160.202.37.210) (Read error: Connection reset by peer) |
| 07:47:18 | → | Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com) |
| 07:50:14 | × | nfd quits (~nfd9001@c-67-183-38-33.hsd1.wa.comcast.net) (Ping timeout: 272 seconds) |
| 07:51:07 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 07:51:39 | × | Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 258 seconds) |
| 07:53:34 | <Turmiht> | sorry to ask, how can I use a specific ghc version when using cabal? |
| 07:54:59 | <sclv> | use the -w flag |
| 07:55:18 | <sclv> | cabal —help and the manual are your friends |
| 07:56:00 | <dminuoso> | sclv: — instead of -? |
| 07:56:01 | → | RaderH2O joins (02b03581@2.176.53.129) |
| 07:56:03 | <dminuoso> | Does cabal eat that? |
| 07:56:11 | <RaderH2O> | hMmMm |
| 07:56:50 | → | Turmiht27 joins (c6347492@198.52.116.146) |
| 07:56:56 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 07:57:23 | × | Turmiht27 quits (c6347492@198.52.116.146) (Remote host closed the connection) |
| 07:58:25 | × | Turmiht quits (2d38964a@45.56.150.74) (Ping timeout: 245 seconds) |
| 07:59:09 | × | natechan quits (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Quit: WeeChat 2.9) |
| 08:03:56 | × | kostic_ quits (~kostic@51.194.80.91) (Ping timeout: 240 seconds) |
| 08:04:27 | × | RaderH2O quits (02b03581@2.176.53.129) (Remote host closed the connection) |
| 08:05:25 | × | fxg quits (~fxg@unaffiliated/fxg) (Ping timeout: 240 seconds) |
| 08:06:50 | → | olligobber joins (~olligobbe@unaffiliated/olligobber) |
| 08:08:02 | → | kostic_ joins (~kostic@51.194.80.91) |
| 08:13:27 | → | Turmiht joins (2d389679@45.56.150.121) |
| 08:13:34 | → | natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 08:14:01 | <Turmiht> | I disconnected.. have a way to get history I missed? |
| 08:14:08 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0) |
| 08:15:10 | <dminuoso> | Turmiht: Check the topic of the channel |
| 08:16:11 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Quit: mputz) |
| 08:16:50 | × | nemron quits (~nemron@2a01:598:a906:d62d:a0e2:5e5d:3ca2:a658) (Ping timeout: 264 seconds) |
| 08:16:55 | → | gothos_ joins (~gothos@antsy.jhz.name) |
| 08:17:17 | × | [exa] quits (exa@unaffiliated/exa/x-5381537) (Ping timeout: 256 seconds) |
| 08:17:17 | × | arw quits (~arw@impulse.informatik.uni-erlangen.de) (Ping timeout: 256 seconds) |
| 08:17:20 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) |
| 08:17:24 | → | [exa] joins (exa@srv3.blesmrt.net) |
| 08:17:24 | → | arw joins (~arw@impulse.informatik.uni-erlangen.de) |
| 08:17:48 | × | Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
| 08:17:51 | × | gothos quits (~gothos@antsy.jhz.name) (Ping timeout: 256 seconds) |
| 08:17:51 | gothos_ | is now known as gothos |
| 08:18:02 | × | sw1nn quits (~sw1nn@2a00:23c6:2385:3a00:55:615d:2b49:d448) (Ping timeout: 260 seconds) |
| 08:18:14 | → | nemron joins (~nemron@2a02:810b:c7bf:fdb8:61d2:5f6c:bc78:4d37) |
| 08:18:37 | × | xff0x_ quits (~fox@2001:1a81:53b4:600:e33a:6fca:3b6a:86a2) (Ping timeout: 260 seconds) |
| 08:19:05 | → | xff0x_ joins (~fox@2001:1a81:53b4:600:1516:de:d27a:a053) |
| 08:19:35 | → | sw1nn joins (~sw1nn@2a00:23c6:2385:3a00:268a:d573:fb76:8521) |
| 08:19:50 | × | _Cactus_ quits (~cactus@2404:e801:200e:1f22:94f1:f531:bd80:25b1) (Ping timeout: 264 seconds) |
| 08:20:58 | → | solonarv joins (~solonarv@adijon-656-1-25-229.w90-13.abo.wanadoo.fr) |
| 08:22:18 | <Turmiht> | I read the log and try -w, but found nothing about -w option in cabal --help |
| 08:22:50 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 264 seconds) |
| 08:24:09 | → | kritzefitz joins (~kritzefit@fw-front.credativ.com) |
| 08:24:36 | × | cyphase quits (~cyphase@unaffiliated/cyphase) (Ping timeout: 240 seconds) |
| 08:25:18 | <sclv> | -w is short for with-ghc |
| 08:26:02 | <sclv> | re earlier, autocorrect turning my double hyphens into dashes, sigh |
| 08:27:20 | → | mounty joins (~mounty@210.1.196.133) |
| 08:27:22 | <Turmiht> | is it in cabal's help? I still cannot found it |
| 08:28:00 | <Turmiht> | search pattern `with-ghc` highlight nothing |
| 08:28:17 | <sclv> | might only be kn the help for specific subcommands |
| 08:31:09 | <Turmiht> | build with 8.10.3 also failed |
| 08:31:14 | <Turmiht> | sadly |
| 08:31:45 | → | cyphase joins (~cyphase@unaffiliated/cyphase) |
| 08:32:33 | <Turmiht> | -w works but it's not in manual if I'm not missed it |
| 08:32:59 | → | thir joins (~thir@p200300f27f164f00f068565576ce0558.dip0.t-ipconnect.de) |
| 08:33:06 | <Turmiht> | whatever, your advise is helpful and thx |
| 08:33:28 | → | hhpp joins (3dded63f@61-222-214-63.HINET-IP.hinet.net) |
| 08:34:57 | × | thir quits (~thir@p200300f27f164f00f068565576ce0558.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 08:35:04 | → | thir joins (~thir@p200300f27f164f00f068565576ce0558.dip0.t-ipconnect.de) |
| 08:35:44 | × | mimi_vx quits (~mimi@2a01:490:16:1026:bdf1:c121:9afd:9d42) (Ping timeout: 258 seconds) |
| 08:37:19 | × | thir quits (~thir@p200300f27f164f00f068565576ce0558.dip0.t-ipconnect.de) (Client Quit) |
| 08:38:30 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) |
| 08:39:33 | × | Turmiht quits (2d389679@45.56.150.121) (Remote host closed the connection) |
| 08:39:57 | → | mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl) |
| 08:39:57 | × | mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host) |
| 08:39:57 | → | mouseghost joins (~draco@wikipedia/desperek) |
| 08:40:59 | × | Mikagami quits (~MOSCOS@122.54.107.175) (Read error: Connection reset by peer) |
| 08:41:25 | → | Mikagami joins (~MOSCOS@122.54.107.175) |
| 08:42:36 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 08:43:07 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 260 seconds) |
| 08:46:22 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:7482:9511:22c:1523) (Remote host closed the connection) |
| 08:46:46 | → | Turmiht joins (2d389679@45.56.150.121) |
| 08:49:24 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) |
| 08:49:59 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 08:50:20 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 08:54:21 | × | Turmiht quits (2d389679@45.56.150.121) (Remote host closed the connection) |
| 08:55:22 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds) |
| 08:57:25 | × | drbean_ quits (~drbean@TC210-63-209-212.static.apol.com.tw) (Ping timeout: 246 seconds) |
| 08:57:36 | × | CMCDragonkai2 quits (~Thunderbi@124.19.3.250) (Ping timeout: 240 seconds) |
| 09:01:27 | → | mimi_vx joins (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) |
| 09:05:24 | → | neiluj joins (~jco@91-167-203-101.subs.proxad.net) |
| 09:05:29 | × | jedws quits (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 09:08:56 | → | wonko7 joins (~wonko7@2a01:e35:2ffb:7040:4535:f480:7dff:b3b5) |
| 09:12:16 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 240 seconds) |
| 09:13:43 | → | dibblego joins (~dibblego@122-199-1-30.ip4.superloop.com) |
| 09:13:43 | × | dibblego quits (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host) |
| 09:13:43 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 09:15:17 | × | Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
| 09:15:30 | → | Kaiepi joins (~Kaiepi@47.54.252.148) |
| 09:20:34 | × | Randy quits (randy@freebsd/user/randy) (Quit: Brb) |
| 09:21:31 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 09:22:14 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 264 seconds) |
| 09:23:09 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 09:25:07 | × | mimi_vx quits (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) (Ping timeout: 260 seconds) |
| 09:26:16 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
| 09:26:37 | × | neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Ping timeout: 264 seconds) |
| 09:26:43 | × | zv quits (~zv@unaffiliated/zv) (Ping timeout: 258 seconds) |
| 09:28:06 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) |
| 09:31:09 | → | Turmiht joins (2d389679@45.56.150.121) |
| 09:32:30 | × | vodkaInferno quits (~wormphleg@104.131.156.184) (Read error: Connection reset by peer) |
| 09:32:36 | → | __monty__ joins (~toonn@unaffiliated/toonn) |
| 09:32:41 | → | vodkaInf1rno joins (~wormphleg@104.131.156.184) |
| 09:32:42 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 260 seconds) |
| 09:33:26 | <Turmiht> | I just removed the binutils installed from homebrew and the original problems disappeared however how it fails in building phase instead of linking. |
| 09:34:08 | → | _Cactus_ joins (~cactus@2404:e801:200e:1f22:94f1:f531:bd80:25b1) |
| 09:34:10 | <Turmiht> | Seems ghc use the linux version bin utils to build lib for me earlier. |
| 09:36:53 | → | Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com) |
| 09:36:54 | <Turmiht> | just for reference if somebody meet the same error. |
| 09:37:40 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Ping timeout: 246 seconds) |
| 09:37:57 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) |
| 09:41:36 | × | Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 265 seconds) |
| 09:42:19 | → | zv joins (~zv@unaffiliated/zv) |
| 09:42:38 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 264 seconds) |
| 09:43:16 | × | ADG1089__ quits (~aditya@122.163.166.13) (Remote host closed the connection) |
| 09:43:42 | → | ADG1089__ joins (~aditya@122.163.166.13) |
| 09:43:42 | × | DavidEichmann quits (~david@62.110.198.146.dyn.plus.net) (Remote host closed the connection) |
| 09:45:02 | → | DavidEichmann joins (~david@62.110.198.146.dyn.plus.net) |
| 09:45:19 | × | Turmiht quits (2d389679@45.56.150.121) (Remote host closed the connection) |
| 09:46:46 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) |
| 09:47:47 | × | hhpp quits (3dded63f@61-222-214-63.HINET-IP.hinet.net) (Remote host closed the connection) |
| 09:48:32 | × | toorevitimirp quits (~tooreviti@117.182.182.252) (Read error: Connection reset by peer) |
| 09:48:49 | → | toorevitimirp joins (~tooreviti@117.182.182.252) |
| 09:50:22 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 256 seconds) |
| 09:50:52 | → | nineonine joins (~nineonine@50.216.62.2) |
| 09:51:22 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Ping timeout: 260 seconds) |
| 09:51:33 | → | ulidtko|kk joins (~ulidtko@194.54.80.38) |
| 09:52:25 | × | guest1222 quits (~user@49.5.6.87) (Quit: ERC (IRC client for Emacs 27.1)) |
| 09:52:34 | × | nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection) |
| 09:52:50 | → | kindaro joins (1f08c5b4@h31-8-197-180.dyn.bashtel.ru) |
| 09:53:01 | → | nineonine joins (~nineonine@50.216.62.2) |
| 09:53:03 | <kindaro> | How can I view Template Haskell splices when building with Cabal? |
| 09:53:30 | <kindaro> | `cabal build --ghc-options '-ddump-splices -ddump-to-file'` does not seem to produce any relevant files. |
| 09:53:45 | × | ulidtko|k quits (~ulidtko@193.111.48.79) (Ping timeout: 240 seconds) |
| 09:53:47 | → | neiluj joins (~jco@91-167-203-101.subs.proxad.net) |
| 09:54:23 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-vynnkfmwforjolgj) (Quit: Connection closed for inactivity) |
| 09:54:24 | <kindaro> | I am using Cabal 3.4. |
| 09:54:33 | × | nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection) |
| 09:54:57 | × | neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Client Quit) |
| 09:55:04 | → | nineonine joins (~nineonine@50.216.62.2) |
| 09:56:00 | × | xff0x_ quits (~fox@2001:1a81:53b4:600:1516:de:d27a:a053) (Remote host closed the connection) |
| 09:56:17 | → | xff0x_ joins (~fox@2001:1a81:53b4:600:a2ff:122b:9237:e1f5) |
| 09:56:44 | × | nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection) |
| 09:56:48 | → | scde joins (~scde@5.63.35.8) |
| 09:57:13 | → | nineonine joins (~nineonine@50.216.62.2) |
| 09:58:51 | × | nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection) |
| 09:58:54 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 09:59:17 | → | nineonine joins (~nineonine@50.216.62.2) |
| 10:00:48 | × | scde quits (~scde@5.63.35.8) (Client Quit) |
| 10:00:56 | × | nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection) |
| 10:01:34 | → | nineonine joins (~nineonine@50.216.62.2) |
| 10:02:21 | → | mimi_vx joins (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) |
| 10:03:08 | × | nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection) |
| 10:03:43 | → | nineonine joins (~nineonine@50.216.62.2) |
| 10:04:23 | × | [exa] quits (exa@srv3.blesmrt.net) (Changing host) |
| 10:04:23 | → | [exa] joins (exa@unaffiliated/exa/x-5381537) |
| 10:05:17 | × | nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection) |
| 10:05:29 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 10:05:42 | → | nineonine joins (~nineonine@50.216.62.2) |
| 10:07:08 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Read error: Connection reset by peer) |
| 10:07:18 | × | nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection) |
| 10:07:44 | → | Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas) |
| 10:07:47 | → | nineonine joins (~nineonine@50.216.62.2) |
| 10:09:20 | × | nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection) |
| 10:09:26 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye) |
| 10:09:29 | <gentauro> | 08:41 < tdammers> gentauro: you'd think well-typed, out of all people, would have a "strictly no scandinavians" hiring policy? |
| 10:09:50 | <gentauro> | I just find it strange that no scandis are at your company. I mean, people here are all <3 Haskell … |
| 10:09:51 | → | nineonine joins (~nineonine@50.216.62.2) |
| 10:10:15 | × | kam1 quits (~kam1@24.231.108.143) (Ping timeout: 268 seconds) |
| 10:10:21 | <gentauro> | I heard from an employee that IOHK has a single dane (or somebody living here in CPH) as an employee |
| 10:10:35 | <gentauro> | maybe is the wage gap? |
| 10:11:08 | <gentauro> | tdammers: nevertheless, I'm doing some promo on LinkedIn. Hopefully some of my fellow CPH and FP lovers will apply :) |
| 10:11:45 | × | urdh quits (~urdh@unaffiliated/urdh) (Quit: Boom!) |
| 10:12:05 | × | nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection) |
| 10:12:30 | <tdammers> | yes, please do. wage gap might play a role, but I don't think it's the decisive factor - after all, we do have people in other high-income areas |
| 10:12:37 | → | nineonine joins (~nineonine@50.216.62.2) |
| 10:13:26 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 10:13:55 | → | urdh joins (~urdh@unaffiliated/urdh) |
| 10:14:15 | × | nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection) |
| 10:14:41 | <gentauro> | tdammers: I noticed myself (found and organizer of MF#K in Denmark) where people "beg" for FP jobs. And yes, wage isn't an issue. Personally, I had to decline a Swedish (Haskell) startup-job cos the person offered me a salary that was worse than a Danish cashier … |
| 10:14:46 | → | nineonine joins (~nineonine@50.216.62.2) |
| 10:14:56 | <gentauro> | I mean, I would <3 to work with Haskell, but with a "fair" salary ;) |
| 10:15:06 | <tdammers> | hmhm |
| 10:16:09 | <gentauro> | tdammers: Well-Types is an UK company right? What will happen from the new year (Brexit)? |
| 10:16:18 | × | nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection) |
| 10:16:50 | × | _Cactus_ quits (~cactus@2404:e801:200e:1f22:94f1:f531:bd80:25b1) (Ping timeout: 264 seconds) |
| 10:16:57 | → | nineonine joins (~nineonine@50.216.62.2) |
| 10:18:04 | → | kam1 joins (~kam1@24.231.108.143) |
| 10:18:25 | × | nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection) |
| 10:18:26 | <tdammers> | it is, yes |
| 10:18:51 | → | dandart joins (~Thunderbi@home.dandart.co.uk) |
| 10:18:57 | → | nineonine joins (~nineonine@50.216.62.2) |
| 10:19:01 | <tdammers> | I'm not sure it's decided what the consequences of Brexit will be, but it won't be the end of the company |
| 10:22:05 | <gentauro> | tdammers: I guess WT can do the same as `serokell` where if the owners of WT just apply for a virtual Estonian citizenship (I have it) they can make a company in the EU from anywhere in the world |
| 10:22:24 | <gentauro> | but I guess the owners of WT already have that covered :) |
| 10:22:32 | <tdammers> | yep |
| 10:22:36 | <merijn> | eh, Brexit has already happened, this year is just the end of the grace period for the free trade agreement. And since consulting isn't a physical good I suspect the impact of Brexit is at worst "slightly increased cost" |
| 10:22:50 | <tdammers> | we also literally have one employee in Estonia (though I believe he doesn't have citizenship) |
| 10:23:16 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 240 seconds) |
| 10:23:16 | <tdammers> | merijn: yeah, hence my assessment that chances to the company structure might not be necessary at all |
| 10:23:31 | <tdammers> | after all, we already have plenty of clients outside of the EU |
| 10:24:22 | <gentauro> | merijn: I do freelance gigs. And my `Certified Public Accountant` told me to "stay away" from anything UK related (so much paperwork that needs to be done now) |
| 10:24:57 | → | glowcoil joins (sid3405@gateway/web/irccloud.com/x-urkxtcqlvmxbhybw) |
| 10:25:17 | → | nineonine joins (~nineonine@50.216.62.2) |
| 10:25:17 | <gentauro> | 11:23 < tdammers> after all, we already have plenty of clients outside of the EU |
| 10:25:20 | <gentauro> | good to hear |
| 10:25:48 | <tdammers> | the interesting bit is of course that we're a UK-based company that has both clients and employees outside the UK |
| 10:25:49 | → | rslima_____ joins (sid26145@gateway/web/irccloud.com/x-sxoacwwvrypgvpjy) |
| 10:26:09 | → | ocharles joins (sid30093@gateway/web/irccloud.com/x-xltcvhbyjparvqrq) |
| 10:26:20 | <merijn> | gentauro: I mean, it's the exact same paperwork as working with companies in the US |
| 10:26:23 | ocharles | is now known as Guest98308 |
| 10:26:48 | → | kyagrd__ joins (sid102627@gateway/web/irccloud.com/x-ypgrgcqphmltykqe) |
| 10:26:49 | → | milessabin joins (sid86799@gateway/web/irccloud.com/x-qdexhvophzkhmamx) |
| 10:27:16 | <tdammers> | this is interesting already even without brexit, because while I am employed by WT directly as far as employment legalities are concerned, the fiscal situation is that WT rents my services from a Dutch payroll agency, and I am fiscally employed by the payroll agency, not WT |
| 10:27:20 | → | Kamuela joins (sid111576@gateway/web/irccloud.com/x-sygmzwyrzcdkakla) |
| 10:27:24 | <gentauro> | merijn: yeah, that pretty `meh` as well. I know one of the few `Tor` employees here in Denmark. It was to much hasle to `Tor` created a danish subsidiary company in Denmark |
| 10:28:26 | → | kristjansson joins (sid126207@gateway/web/irccloud.com/x-kjqkrwfhxeyivisw) |
| 10:28:31 | → | graingert joins (sid128301@gateway/web/irccloud.com/x-pvrbspgvxauvbmrf) |
| 10:28:33 | <merijn> | gentauro: You don't need to directly employ people anyway. An old colleague "works for" a US company, but he's basically self-employed and then his company gets contracted from the US, as there's much simpler paperwork for B2B contract |
| 10:28:35 | <tdammers> | some other WT employees are fiscally self-employed, and send invoices to WT directly, so they get to do the international paperwork themselves - but I opted to do the payrolling thing, for all sorts of boring reasons |
| 10:29:15 | <gentauro> | merijn: yeah, that is what Oskar Wickström (haskellatwork) does :) |
| 10:29:38 | → | kuribas joins (~user@ptr-25vy0i7ylwdflfexhxz.18120a2.ip6.access.telenet.be) |
| 10:29:44 | → | taktoa[c] joins (sid282096@gateway/web/irccloud.com/x-qzdgtblpiialqhic) |
| 10:30:02 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 256 seconds) |
| 10:30:15 | → | hazard-pointer joins (sid331723@gateway/web/irccloud.com/x-nmwklpcxqbimwbcx) |
| 10:30:35 | <kuribas> | why isn't there a IsLable instance for Proxy? |
| 10:30:40 | → | dani- joins (sid341953@gateway/web/irccloud.com/x-ntpllqrkvsgxojfo) |
| 10:30:44 | <kuribas> | IsLabel |
| 10:30:47 | <tdammers> | main reason being that Dutch gov't is on a crusade against "fake self employement", and that means that if you do it that way, you will be subjected to a lot of paperwork and scrutinity, and you may find yourself being considered "not really self-employed after all", and then you get to deal with even more bureaucratic nonsense |
| 10:30:53 | → | srhb joins (sid400352@NixOS/user/srhb) |
| 10:31:03 | → | m-renaud joins (sid333785@gateway/web/irccloud.com/x-rdlxbrqpwuslqdal) |
| 10:31:23 | <kuribas> | Or at least some kind of Label type in base? |
| 10:31:26 | → | ghuntley joins (sid16877@gateway/web/irccloud.com/x-ykjkjsicixvqqmkq) |
| 10:31:28 | <tdammers> | I mean, the intended goal is honorable - this kind of fake self-employment has been a loophole to bypass labor laws for a long while |
| 10:31:30 | → | _Cactus_ joins (~cactus@173.244.208.116) |
| 10:31:56 | → | kozowu joins (uid44796@gateway/web/irccloud.com/x-lmrzkgcwuiqfijer) |
| 10:32:00 | <gentauro> | tdammers: so it's like in DK. If you work as a freelance as you would do as an employee (same tasks) then the Government will "fine" the hiring company |
| 10:32:16 | <tdammers> | yes. even retroactively. |
| 10:32:23 | × | wei2912 quits (~wei2912@unaffiliated/wei2912) (Quit: Lost terminal) |
| 10:32:38 | <gentauro> | the trick is to have at least "two different" companies in a fiscal year |
| 10:32:38 | → | J_Arcane joins (sid119274@gateway/web/irccloud.com/x-rmzbmhxqvjyslqlb) |
| 10:32:50 | <tdammers> | the rules are bit more involved here |
| 10:32:55 | <gentauro> | I guess |
| 10:33:07 | <tdammers> | e.g., for certain industries (like performing arts), two is not enough |
| 10:33:50 | <tdammers> | you also have to make a plausible argument that you are spending at least 24 hours per week directly on the job - and for musicians, this can be a problem, because the time you spend preparing for gigs and practicing your instrument skills does not count towards that |
| 10:34:08 | <gentauro> | :o |
| 10:34:16 | → | typetetris joins (sid275937@gateway/web/irccloud.com/x-wukxokdildxlsinc) |
| 10:34:19 | <tdammers> | which is absolute nonsense of course, but that's the situation |
| 10:34:42 | <gentauro> | so artist needs to be part of a "corporate" then? |
| 10:34:50 | <tdammers> | hmm, no |
| 10:34:52 | <gentauro> | that will help with "creativity" |
| 10:34:57 | × | nowhere_man quits (~pierre@2a01:e0a:3c7:60d0:e88f:4e24:f6a7:f155) (Remote host closed the connection) |
| 10:35:06 | <kuribas> | tdammers: that would make the actual work versus percieved work ration for a musician 0.1% |
| 10:35:13 | <tdammers> | some artists manage to meet the criteria, while many others instead do the payroll thing |
| 10:35:21 | <tdammers> | kuribas: yes, just about |
| 10:35:39 | → | jackdk joins (sid373013@gateway/web/irccloud.com/x-xeablxzuerknfxni) |
| 10:35:50 | → | agander_m joins (sid407952@gateway/web/irccloud.com/x-godagyxukcquqjck) |
| 10:36:12 | <tdammers> | kuribas: though not that extreme. when I was still a pro musician, I would work 80 hour weeks on average; about 2-3 hours of that would be performing, and another 16 hours teaching, plus maybe 1-2 hours doing paid composition / arrangement work |
| 10:36:16 | → | nowhere_man joins (~pierre@2a01:e0a:3c7:60d0:e88f:4e24:f6a7:f155) |
| 10:36:26 | <tdammers> | so about a 1:4 ratio |
| 10:37:07 | <gentauro> | maybe they are part of the "SCAM" that they use in Spain with the "media money". It's shared based on your exposure on TV/radio. People who "sell out" and vote the "dark side" on how to distribute the "media money", gets their music played between 01:00 - 05:00 AM |
| 10:37:30 | <gentauro> | since ther music is played the "most", they get more TV-money that "well know artist" |
| 10:38:10 | <gentauro> | "well know artist" complain about this, but nobody cares cos they had these campaigsn where they called "everybody thiefs" for "stealing the music". Karma can be a b- … |
| 10:38:13 | <gentauro> | :) |
| 10:38:24 | <tdammers> | it's a shame that there's no good model for fitting professional artists into the capitalist model |
| 10:38:26 | <kuribas> | tdammers: funny thing is, if I am doing choir accompaniment, I hardly need to practice, and get payed usually quite well. When doing "serious music", like Brahms quartets, I spend months praciticing, going to Gent every weekend with the train to rehearse, and if I get just the cost back I can be happy. |
| 10:39:31 | <kuribas> | tdammers: tl;dr people don't care about Brahms, but they care about John Rutter :-) |
| 10:39:32 | × | miklcct quits (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
| 10:39:45 | → | miklcct joins (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) |
| 10:39:45 | <gentauro> | tdammers: I once where at this small bar with some IT-people drinking a few beers. It was only us and some "random" Swedish band playing some music in the background. Since nobody else came in, the owner didn't want to pay the band. So we all chipped up money for gas so they could go back to Sweden |
| 10:39:52 | <tdammers> | kuribas: that's the arts for ya. when I was a pro, I'd do the stuff I love for a sandwich and gas money, but playing stupid charts stuff, or just sitting in a corner playing unobtrusive piano music was the stuff that'd rake in the money |
| 10:39:53 | <gentauro> | musician don't have it easy … |
| 10:39:56 | <kuribas> | or worse, Ludovico einaudi |
| 10:40:42 | <tdammers> | I know you classical pianists hate Einaudi, but I kind of admire him for having found a thing that sells and consistently pulling off selling it over and over and over again |
| 10:40:57 | × | nowhere_man quits (~pierre@2a01:e0a:3c7:60d0:e88f:4e24:f6a7:f155) (Ping timeout: 260 seconds) |
| 10:40:58 | <tdammers> | and apparently he manages to do it without grinding his soul into a mushy pulp |
| 10:40:59 | <kuribas> | sure, he's absolutely great at marketing |
| 10:41:23 | <gentauro> | wait a second. Is this an analogy with FP/Haskell? xD |
| 10:41:30 | → | shad0w_ joins (~shad0w_@160.202.37.210) |
| 10:41:31 | <tdammers> | nooooooo... |
| 10:41:36 | <kuribas> | yeah, this is very offtopic |
| 10:41:53 | <kuribas> | unless you compare einaudi with php |
| 10:42:03 | <tdammers> | nah, he's way too consistent |
| 10:42:09 | <gentauro> | kuribas: for me it is. I would rather work with Haskell, but what brings food on the table is my .NET gigs |
| 10:42:12 | <gentauro> | xD |
| 10:42:15 | <kuribas> | tdammers: lol |
| 10:42:31 | <kuribas> | gentauro: not f# I suppose |
| 10:42:33 | <kuribas> | ? |
| 10:42:56 | <gentauro> | in Denmark is C#, cos the person who created it was a dane. Tough market to introduce something else … |
| 10:43:26 | <tdammers> | C# is also insanely popular across Europe due to Windows and the MS stack in general |
| 10:43:37 | <gentauro> | kuribas: but sometimes I do F#, but people can't maintain it so I end up re-writting it to C# :( |
| 10:43:43 | <kuribas> | gentauro: can you introduce FP concepts in your team? |
| 10:43:52 | <tdammers> | lots of European companies have been on MS stacks forever, and many corporate IT systems started as an Excel sheet on the CEO's computer |
| 10:43:58 | <kuribas> | .NET seem to have better support for immutability than java |
| 10:44:12 | <tdammers> | gah, there's the I-word again |
| 10:44:20 | × | solarliner quits (~solarline@243.81.10.109.rev.sfr.net) (Read error: Connection reset by peer) |
| 10:44:29 | <gentauro> | kuribas: not where I am at the moment. It's a freelance gig. If I introduce something and the team can't take over, I have to provide "free hours" until they do. So this time no FP for me ;) |
| 10:44:36 | × | ADG1089__ quits (~aditya@122.163.166.13) (Quit: Konversation terminated!) |
| 10:45:32 | × | st8less quits (~st8less@inet-167-224-197-181.isp.ozarksgo.net) (Quit: WeeChat 2.9) |
| 10:45:35 | <dminuoso> | https://hackage.haskell.org/package/websockets-0.12.7.2/docs/Network-WebSockets.html#t:WebSocketsData |
| 10:45:37 | <dminuoso> | You should only use the Text or the Text instance when you are sure that the data is UTF-8 encoded (which is the case for Text messages). |
| 10:45:44 | <dminuoso> | Can anyone guess what they mean by this here? It sounds confused. |
| 10:45:48 | <gentauro> | kuribas: but right now, I'm writing a tool in Haskell that generates F# code :) |
| 10:46:08 | <kuribas> | tdammers: what's wrong with that? |
| 10:46:08 | <gentauro> | I'm expecting to have it ready by the end of the year |
| 10:46:31 | <tdammers> | dminuoso: I think it means "if you are not sure that the data you will receive is UTF-8 encoded, then do not use the Text instances" |
| 10:47:21 | <tdammers> | kuribas: it misses the point. the problem isn't just mutability, and making variables immutable when you can just willy-nilly have all sorts of side effects is completely pointless |
| 10:47:45 | <tdammers> | take, for example, clojure, which makes a pompous deal out of immutability, but completely ignores other side effects, such as disk I/O |
| 10:47:47 | <kuribas> | tdammers: I totally agree, but at least it's a small step, no? |
| 10:48:25 | <dminuoso> | tdammers: Given the context that's strange. |
| 10:48:28 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) |
| 10:48:48 | × | mimi_vx quits (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) (Ping timeout: 260 seconds) |
| 10:49:20 | <tdammers> | dminuoso: the other interpretation just doesn't make sense ("when you are sure that the data is UTF-8 encoded, then do not use any other instances") |
| 10:50:15 | <kuribas> | tdammers: IMO the biggest fuckup in clojure is using hashmaps for everything. |
| 10:50:21 | <dminuoso> | tdammers: Mmm. The phrasing is just odd, especially the `(which is the case for Text messages)` part of it. |
| 10:50:46 | <kuribas> | tdammers: being so lenient means that most advantages of purity go away. |
| 10:50:59 | <gentauro> | kuribas: some F# I have seen, it's just C# (OO) but written with F# syntax |
| 10:51:16 | <gentauro> | very few people write F# as they would write SML/ML |
| 10:51:22 | <tdammers> | kuribas: clojure never really had a lot of advantages of purity in the first place, but hashmaps-for-everything has nothing to do with it |
| 10:51:24 | <dminuoso> | But I think they're just trying to say `fromDataMessage @Text` will crash, unles you are getting a Text message (as per websocket specs), or an utf8 encoded binary message. |
| 10:51:39 | <tdammers> | you can have completely pure hashmaps (though preventing HashDoS is tricky then) |
| 10:51:50 | <kuribas> | tdammers: hashmaps for everything means it's impossible to reason about anything |
| 10:52:10 | <kuribas> | tdammers: and the goal of immutability is reasoning |
| 10:52:16 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 10:52:24 | <tdammers> | no it doesn't |
| 10:52:39 | <tdammers> | *pure* hashmaps means they're still pure, and you can still reason about their purity |
| 10:52:58 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Ping timeout: 258 seconds) |
| 10:53:14 | <tdammers> | it's very vaguely similar to how you can still apply pure reasoning to IO actions, as long as you don't apply pure reasoning to the *execution* of IO actions |
| 10:53:28 | <kuribas> | pure until something crashes because you don't have a field in the hashmap... |
| 10:54:08 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 10:54:16 | <tdammers> | that's orthogonal |
| 10:54:25 | <tdammers> | we have enough partial functions in Haskell too |
| 10:54:39 | <kuribas> | gentauro: in that case it would be better to keep it in C# |
| 10:54:56 | <tdammers> | > [] ! 1 |
| 10:54:58 | <lambdabot> | error: |
| 10:54:58 | <lambdabot> | • Couldn't match expected type ‘Array i0 e’ with actual type ‘[a0]’ |
| 10:54:59 | <lambdabot> | • In the first argument of ‘(!)’, namely ‘[]’ |
| 10:55:03 | <tdammers> | > [] !! 1 |
| 10:55:05 | <kuribas> | tdammers: and I try to avoid partial functions in haskell |
| 10:55:06 | <lambdabot> | *Exception: Prelude.!!: index too large |
| 10:55:22 | <tdammers> | so avoid partial functions in clojure. this has nothing to do with purity |
| 10:55:45 | → | hiroaki joins (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) |
| 10:56:14 | <kuribas> | tdammers: every function in clojure that takes a hashmap is partial. |
| 10:56:28 | <tdammers> | that is obviously false |
| 10:56:33 | <kuribas> | tdammers: or even worse when it isn't partial, it just returns a wrong result. |
| 10:57:05 | <kuribas> | yeah, the "obviously false" case is worse. |
| 10:57:15 | <kuribas> | I prefer things crashing early over wrong behaviour. |
| 10:57:43 | <kuribas> | IMO total > partial > total doing the wrong thing |
| 10:58:07 | <tdammers> | (get hashmap key) returns nil if the key doesn't exist |
| 10:58:12 | <tdammers> | that is neither partial nor the wrong thing |
| 10:58:19 | <tdammers> | what else would you want it to do? |
| 10:58:45 | <tdammers> | it could crash, but that would make it partial, by the definition we use in Haskell |
| 10:59:24 | <tdammers> | then again, due to the lack of a type checker, most clojure functions are in fact partial - `get`, for example, cannot be called on something that isn't a collection |
| 10:59:51 | <tdammers> | but anyway, this has absolutely nothing to do with effects, nor mutability |
| 10:59:54 | <kuribas> | tdammers: it's not about what I want a hashmap to do, it's about when I want to use a hashmap. |
| 11:00:04 | <kuribas> | and I don't want to use it for everything |
| 11:00:11 | <tdammers> | that's a completely valid complaint |
| 11:00:13 | → | Tops2 joins (~Tobias@dyndsl-095-033-089-034.ewe-ip-backbone.de) |
| 11:00:23 | <tdammers> | but it has nothing to do with purity or partiality |
| 11:00:37 | <tdammers> | your complaint is about hashmaps being too generic |
| 11:00:37 | × | Mikagami quits (~MOSCOS@122.54.107.175) (Remote host closed the connection) |
| 11:00:55 | <tdammers> | about not providing any static constraints as to which values may go into which keys |
| 11:01:03 | <kuribas> | tdammers: it can: (get 5 :a) => nil |
| 11:01:05 | → | Mikagami joins (~MOSCOS@122.54.107.175) |
| 11:01:18 | <kuribas> | (get "abc" :a) => nil |
| 11:01:22 | <tdammers> | right |
| 11:01:48 | <tdammers> | but since clj runs on the jvm, and uses java interfaces to implement things like lookup, you can fabricate classes that will cause lookups to crash |
| 11:02:11 | <tdammers> | granted, that's a bit of a fabricated argument |
| 11:03:40 | × | cow-orker quits (~foobar@pogostick.net) (Remote host closed the connection) |
| 11:04:56 | <kuribas> | the philosophy of clojure is to be very lenient |
| 11:05:04 | <kuribas> | it's typically the java side that crashes |
| 11:05:16 | × | CindyLinz quits (~cindy_utf@112.121.78.20) (Ping timeout: 240 seconds) |
| 11:05:56 | × | solarion quits (~solarion@fsf/member/solarion) (Ping timeout: 240 seconds) |
| 11:05:56 | × | c_wraith quits (~c_wraith@adjoint.us) (Ping timeout: 240 seconds) |
| 11:05:56 | × | byorgey quits (~byorgey@155.138.238.211) (Ping timeout: 240 seconds) |
| 11:06:18 | → | byorgey joins (~byorgey@155.138.238.211) |
| 11:06:20 | → | CindyLinz joins (~cindy_utf@112.121.78.20) |
| 11:07:33 | → | solarion joins (~solarion@mail.digitasaru.net) |
| 11:09:17 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8) |
| 11:09:49 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Ping timeout: 260 seconds) |
| 11:10:58 | → | c_wraith joins (~c_wraith@adjoint.us) |
| 11:11:25 | <kuribas> | tdammers: my point is that with pattern matching and records, you can avoid a complex type system, and still get easy to understand errors. |
| 11:11:41 | <kuribas> | tdammers: a sufficiently smart compiler could even do that at compile time. |
| 11:11:56 | <kuribas> | SBCL is quite good in static analysis. |
| 11:12:30 | × | xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 11:12:32 | <gentauro> | 11:54 < kuribas> gentauro: in that case it would be better to keep it in C# |
| 11:12:35 | <gentauro> | kuribas: yep |
| 11:13:54 | <kuribas> | tdammers: I totally agree that the benifits from static pure FP doesn't come from a single feature, but several features and how you use them. |
| 11:14:48 | <tdammers> | case in point, something more strict than hashmaps is fairly useless without static checks |
| 11:14:53 | <tdammers> | take for example Python classes |
| 11:15:14 | <tdammers> | you can say foo.bar, which is roughly equivalent to (get foo :bar) in clojure, or bar foo in haskell |
| 11:15:44 | <tdammers> | in haskell, the compiler can tell you that you cannot apply bar to foo, because the foo type doesn't have a bar field |
| 11:16:13 | <tdammers> | in clojure, you're just going to get nil, which is the interpreter telling you, at runtime, that the value you're looking at doesn't have a bar field |
| 11:16:24 | <tdammers> | in python, you get a crash at runtime |
| 11:16:50 | → | qwsd joins (~tema@217.118.92.215) |
| 11:16:58 | <tdammers> | so in both of these dynamic languages, the error doesn't get reported until runtime - Python fares no better than clojure, even though you declared the class beforehand as a "type" |
| 11:17:54 | <gentauro> | tdammers: languages with `casting` are as bad as `dynamic-typed` langauges. |
| 11:17:59 | <tdammers> | so why, then, would you go through the trouble of declaring classes (or having explicit record fields, or anything similar) when you can't get more useful (i.e., earlier and louder) failures out of it? |
| 11:18:53 | × | Majiir quits (~Majiir@pool-96-237-149-35.bstnma.fios.verizon.net) (Quit: CUT THE HARDLINES!!) |
| 11:18:54 | <tdammers> | gentauro: not the point, really - all I'm saying here is that the benefit of more explicit record types is that you can get better static reasoning, but if the static reasoning doesn't happen and you still won't get errors until you actually run the broken code, then you're not getting much value out of it |
| 11:19:37 | <tdammers> | clojure acknowledges this and says, OK, so we're not getting any static assertions out of this either way, so let's just use the simpler solution here |
| 11:23:21 | → | Majiir joins (~Majiir@pool-96-237-149-35.bstnma.fios.verizon.net) |
| 11:25:47 | <kuribas> | tdammers: yeah, earlier and louder is better that late and/or silent |
| 11:26:16 | <kuribas> | tdammers: but you do get earlier and louder errors, as long as you don't do nil punning. |
| 11:26:24 | → | m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
| 11:26:51 | × | kindaro quits (1f08c5b4@h31-8-197-180.dyn.bashtel.ru) (Remote host closed the connection) |
| 11:26:52 | → | livvy joins (~livvy@gateway/tor-sasl/livvy) |
| 11:27:49 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 11:28:05 | <kuribas> | tdammers: I think scheme works that way, let me test... |
| 11:28:06 | <tdammers> | the "lateness" of errors can be classified pretty much like this: 1. while writing the code, 2. while building ("compile-time"), 3. when running test suite, 4. when starting up the application, 5. when running the offending code under the error conditions |
| 11:28:31 | <tdammers> | anything more fine-grained than that is largely irrelevant |
| 11:28:42 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 11:29:03 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:29:15 | <tdammers> | oh, and there is 6. after running the offending code under the error conditions |
| 11:29:33 | <tdammers> | which is of course the worst, because now you have absolutely no idea what even triggers the error |
| 11:30:08 | <dminuoso> | I guess memory corruption is a frequenty case of 6. |
| 11:30:30 | <tdammers> | yeah, and it's the reason why, all else being equal, garbage collection is the lesser evil |
| 11:30:38 | <gentauro> | tdammers: or type-system not providing anything at all :P https://youtu.be/Gv2I7qTux7g?t=549 |
| 11:30:49 | × | shad0w_ quits (~shad0w_@160.202.37.210) (Ping timeout: 264 seconds) |
| 11:31:22 | <kuribas> | tdammers: 5. running the code in acceptance, 6. running the code in production |
| 11:31:52 | <tdammers> | kuribas: that's one of those more fine-grained distinctions that don't matter much in practice |
| 11:33:12 | → | drbean joins (~drbean@TC210-63-209-21.static.apol.com.tw) |
| 11:33:19 | × | p-core quits (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection) |
| 11:34:40 | → | mimi_vx joins (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) |
| 11:35:24 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 11:35:46 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 11:36:18 | <kuribas> | tdammers: in our case, we even remotely connect to the production repl :-) |
| 11:36:25 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) () |
| 11:36:26 | <dminuoso> | gentauro: Speaking of "langauges with `casting`", should we have a good and long talk about Haskell and it's ubiquitous realToFrac and fromIntegral functions? :> |
| 11:36:48 | <dminuoso> | Realistically, Haskell is not a dime better than C with regards to casting of integral types. |
| 11:37:25 | <dminuoso> | It's some worse in fact, because you're constantly annoyed to insert realToFrac and fromIntegral everywhere, which add no value to the quality of code. |
| 11:37:34 | → | Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com) |
| 11:38:42 | × | xff0x_ quits (~fox@2001:1a81:53b4:600:a2ff:122b:9237:e1f5) (Ping timeout: 260 seconds) |
| 11:40:18 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
| 11:40:18 | <kuribas> | can unsafeCoerce crash a production server? |
| 11:40:26 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 11:41:30 | → | xff0x_ joins (~fox@2001:1a81:53b4:600:a2ff:122b:9237:e1f5) |
| 11:42:00 | × | Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 256 seconds) |
| 11:42:02 | <kuribas> | or will it crash a single thread? |
| 11:42:24 | <dminuoso> | It has the capability of crashing the entire process |
| 11:43:00 | <solonarv> | you can probably achieve a segfault using unsafeCoerce |
| 11:44:04 | <tdammers> | s/probably/definitely/ -- been there, done that |
| 11:44:28 | <solonarv> | I only hedged because I couldn't provide/remember a concrete example ;) |
| 11:44:53 | <sshine> | 1 is a decent probability. |
| 11:44:53 | <dminuoso> | % unsafeCoerce 10 :: String |
| 11:44:54 | <yahb> | dminuoso: ; <interactive>:34:20: error:; Not in scope: type constructor or class `String'; Perhaps you meant one of these: `IsString' (imported from GHC.Exts), `Strict' (imported from Control.Lens), `Strict' (imported from Language.Haskell.TH) |
| 11:45:01 | <dminuoso> | err |
| 11:45:27 | <dminuoso> | % unsafeCoerce 10 :: String |
| 11:45:27 | <yahb> | dminuoso: "" |
| 11:45:31 | <dminuoso> | Okay what? |
| 11:45:46 | <dminuoso> | % unsafeCoerce 10 :: IO String |
| 11:45:47 | <yahb> | dminuoso: "[Segmentation fault] |
| 11:45:56 | <dminuoso> | Much better. ^- kuribas |
| 11:46:01 | <kuribas> | % unsafeCoerce (10 :: Int) :: String |
| 11:46:02 | <yahb> | kuribas: "" |
| 11:46:04 | <solonarv> | ADT-to-ADT is usually (always?) safe, both Integer (which the 10 defaults to) and String are ADTs |
| 11:46:25 | <dminuoso> | solonarv: I dont think it's safe. |
| 11:47:08 | <dminuoso> | solonarv: Also, IO is also just an ADT. |
| 11:47:08 | <kuribas> | 10 must be compatible with String... |
| 11:47:17 | <kuribas> | maybe some magic bit |
| 11:47:27 | <solonarv> | no, IO is a newtype over a function. That makes it not an ADT (in terms of representation) |
| 11:47:34 | <dminuoso> | Ah, I see what you mean |
| 11:48:16 | <solonarv> | data Int = I# Int# ; so (10 :: Int) is represented by a tag saying "first constructor" followed by the actual value |
| 11:49:01 | <kuribas> | tdammers: gauche scheme raises an error when accessing an unbound slot |
| 11:49:03 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) |
| 11:49:03 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) |
| 11:49:32 | <solonarv> | data [] a = [] | a : [] a ; if you try to interpret that (10 :: Int) value as a [b] , you look at that tag, which tells you "first constructor"; the first constructor is [], which has no fields, so you don't look any further and everything "works" |
| 11:49:44 | <dminuoso> | solonarv: Here's why your theory is wrong: |
| 11:50:25 | <dminuoso> | % unsafeCoerce () :: NE.NonEmpty Char -- solonarv |
| 11:50:26 | <yahb> | dminuoso: ; <interactive>:1:20: error:; Not in scope: type constructor or class `NE.NonEmpty'; No module named `NE' is imported. |
| 11:50:35 | <dminuoso> | % import qualified Data.List.NonEmpty as NE |
| 11:50:35 | <yahb> | dminuoso: |
| 11:50:37 | <dminuoso> | % unsafeCoerce () :: NE.NonEmpty Char -- solonarv |
| 11:50:37 | <yahb> | dminuoso: [Segmentation fault] |
| 11:50:54 | <solonarv> | I don't see where this contradicts my theory |
| 11:51:41 | <solonarv> | you try to interpret () as a NonEmpty Char, you see "first constructor", and you go on to look at the next few memory addresses where you expect that constructor's two fields; but instead there's garbage |
| 11:51:47 | <kuribas> | how does yahb detect segmentation fault? |
| 11:52:09 | <solonarv> | kuribas: ptrace, I think |
| 11:52:16 | → | nfd joins (~nfd9001@c-67-183-38-33.hsd1.wa.comcast.net) |
| 11:52:27 | <dminuoso> | 12:46:04 solonarv | ADT-to-ADT is usually (always?) safe, both Integer (which the 10 defaults to) and String are ADTs |
| 11:52:31 | <dminuoso> | Im just saying its not always safe |
| 11:52:42 | <solonarv> | ah yes, then I agree |
| 11:53:32 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Ping timeout: 258 seconds) |
| 11:53:52 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 260 seconds) |
| 11:55:57 | <merijn> | kuribas: You can just install a signal handler for SIGSEGV :p |
| 11:56:25 | <kuribas> | merijn: can you resume from that? |
| 11:56:38 | <merijn> | Sure, why not? |
| 11:57:12 | <merijn> | For one, you process may have many threads besides the one the segfaulted |
| 11:58:01 | <merijn> | kuribas: Only SIGKILL and SIGSTOP can't be overridden with a signal handler |
| 11:58:08 | <kuribas> | right |
| 11:58:09 | <nfd> | mind you, in a single-thread application, exiting your sigsegv handler will promptly replay the same effect that caused the last segfault, so |
| 11:59:09 | <nfd> | second of all, i don't know what sane actions you can take in that handler other than "violently explode but write a little note on the way out" |
| 11:59:24 | <dminuoso> | nfd: A lot, actually |
| 11:59:28 | <merijn> | nfd: It Depends (TM) |
| 11:59:41 | <dminuoso> | nfd: This trick is used to implement high performance speculative JIT exit points with. |
| 12:00:11 | <nfd> | i mean, It Depends, but you're doing some really weird systems hacking s.t. you wouldn't need this discussion |
| 12:00:18 | <dminuoso> | When Java HotSpot does a speculative optimization, it speculatively constant folds (quite deep), and prepends a read to a special page. When the speculative optimization is invalidated, read permissions for that page are taken back |
| 12:00:26 | <dminuoso> | Triggering a SIGSEGV |
| 12:00:41 | <nfd> | common application dev puts sigsegv clearly in the category of "the program is wrong" |
| 12:00:51 | <dminuoso> | So the sigsegv handler of HotSpot then undoes the optimization, fixes the read permission, and resumes. |
| 12:01:15 | <dminuoso> | (The benefits of this, is that it plays nicely with branch predictors in the CPU) |
| 12:01:39 | <tdammers> | wow, our craft is absolutely terrible |
| 12:01:40 | <dminuoso> | as opposed to flipping a bit in memory and doing a conditional jnz on it |
| 12:02:20 | <nfd> | hotspot is a bizarre pile of beauty in horrors, and i know this quite well, as someone who has spent weeks of my life minmaxing its gc |
| 12:02:43 | <merijn> | tdammers: tbh, I disagree with that being terrible |
| 12:02:57 | <nfd> | it's not Terrible, it's Systems |
| 12:03:04 | <merijn> | tdammers: That's just "using hardware features that currently don't have nicely provided interfaces" |
| 12:03:10 | <nfd> | regrettably our code has to run on actual computers |
| 12:03:23 | <dminuoso> | nfd: Switch jobs and become a mathematician |
| 12:03:27 | <dminuoso> | You never have to worry about computability again. |
| 12:03:28 | <tdammers> | merijn: the terrible part is that they don't have nicely provided interfaces to begin with |
| 12:03:30 | <merijn> | tdammers: The fuck do I have MMU and virtual addresses for if people are going to whine when I use them >.> |
| 12:04:02 | <merijn> | Same reason GHC programs take 1 TB according to top/linux's dumb memory measuring >.> |
| 12:04:13 | <tdammers> | yeah, that's terrible too |
| 12:04:34 | <nfd> | dminuoso: /me laughs in von neumann/godel/hilbert/.... |
| 12:04:36 | <merijn> | Linux/top are terrible, GHC's implementation is totally sensible and intended use of the interface |
| 12:04:58 | <merijn> | It's just unfortunate some users blame GHC/haskell |
| 12:05:19 | <nfd> | linux is terrible, but what're ya gonna use |
| 12:05:26 | <merijn> | nfd: FreeBSD :p |
| 12:05:27 | <dminuoso> | merijn will say freebsd in 1 second |
| 12:05:29 | <dminuoso> | Oh darn |
| 12:05:31 | <dminuoso> | He beat me to it |
| 12:05:32 | <nfd> | plan9? bsd? hurd? |
| 12:05:56 | <dminuoso> | Also, Windows is an option. |
| 12:05:58 | <merijn> | FreeBSD isn't great on the desktop, but linux sucks there too so just use macOS or Windows :p |
| 12:06:30 | <dminuoso> | merijn: to be honest, my quality of life has drastically improved since switching to a wiling window manager. That alone is what keeps me on Linux. |
| 12:06:52 | <merijn> | dminuoso: I used FreeBSD with tiling window manager for ages, but I don't really miss it |
| 12:07:06 | <merijn> | dminuoso: My main mode of operation is full screen terminal running tmux anyway :p |
| 12:07:07 | <nfd> | i went to university talking to/making buddies with the grad students and faculty who hacked on netbsd a lot, haha |
| 12:07:14 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 12:07:18 | <kuribas> | dminuoso: what's a willing window manager? :-) |
| 12:07:34 | <nfd> | reliably i would talk to them about flaws in linux and how i was sure netbsd did it better, and they would wince and say there was a bug |
| 12:08:47 | <nfd> | like, CLOCK_MONOTONIC in linux isn't actually that MONOTONIC, and netbsd has something actually monotonic, and i said that was great, and they said "yeah but it kinda panics the kernel actually" |
| 12:09:11 | <nfd> | tiling window manager? yeah i think i use one of those on my phone |
| 12:09:17 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) |
| 12:10:21 | → | nineonine joins (~nineonine@50.216.62.2) |
| 12:10:25 | × | flukiluke1 quits (~flukiluke@217.146.82.202) (Remote host closed the connection) |
| 12:10:38 | <nfd> | (i actually use dwm on my phone) |
| 12:11:01 | <nfd> | (works great) |
| 12:12:14 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds) |
| 12:13:58 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 260 seconds) |
| 12:14:02 | × | vs^ quits (vs@ip98-184-89-2.mc.at.cox.net) () |
| 12:14:09 | × | clog quits (~nef@bespin.org) (Ping timeout: 260 seconds) |
| 12:15:08 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 260 seconds) |
| 12:17:29 | <gentauro> | does anybody know if the GHC binaries for windows are made with some GitLab CI/CD? If yes, link please :) |
| 12:18:19 | × | rprije quits (~rprije@202.168.43.92) (Ping timeout: 246 seconds) |
| 12:22:18 | <opqdonut> | https://gitlab.haskell.org/ghc/ghc/-/wikis/continuous-integration sounds like circleci |
| 12:22:27 | → | Sheilong joins (uid293653@gateway/web/irccloud.com/x-tihixihqvmmwogqg) |
| 12:22:59 | → | Tops21 joins (~Tobias@dyndsl-095-033-089-034.ewe-ip-backbone.de) |
| 12:23:41 | <opqdonut> | hmm looks like there are gitlab pipelines as well, https://gitlab.haskell.org/ghc/ghc/-/pipelines |
| 12:23:49 | <opqdonut> | #ghc can tell you more probably... |
| 12:24:41 | → | Entertainment joins (~entertain@104.246.132.210) |
| 12:25:35 | × | tzlil quits (~tzlil@unaffiliated/tzlil) (Read error: Connection reset by peer) |
| 12:25:40 | <gentauro> | opqdonut: that table at the bottom doesn't look right |
| 12:25:52 | → | tzlil joins (~tzlil@unaffiliated/tzlil) |
| 12:25:56 | × | Tops2 quits (~Tobias@dyndsl-095-033-089-034.ewe-ip-backbone.de) (Ping timeout: 240 seconds) |
| 12:26:39 | <opqdonut> | yeah I have no idea what that wiki page is about, there's no circleci config in the main ghc repo (only appveyor and gitlab-ci) |
| 12:27:25 | × | Entertainment quits (~entertain@104.246.132.210) (Client Quit) |
| 12:27:38 | <gentauro> | join #ghc |
| 12:28:47 | → | Entertainment joins (~entertain@104.246.132.210) |
| 12:28:50 | → | Betelgeuse1 joins (~Betelgeus@185.204.1.185) |
| 12:29:22 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 12:29:46 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) |
| 12:30:44 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 12:31:26 | → | shad0w_ joins (~shad0w_@160.202.37.172) |
| 12:34:10 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 258 seconds) |
| 12:43:36 | → | kkateq joins (1f11e846@ip1f11e846.dynamic.kabel-deutschland.de) |
| 12:43:39 | × | shad0w_ quits (~shad0w_@160.202.37.172) (Read error: Connection reset by peer) |
| 12:44:01 | → | geekosaur joins (ac3a5304@172.58.83.4) |
| 12:45:14 | × | mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew) |
| 12:46:15 | × | _Cactus_ quits (~cactus@173.244.208.116) (Quit: Ex-Chat) |
| 12:49:47 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) |
| 12:49:56 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) |
| 12:50:20 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 12:51:13 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 12:51:14 | → | jmchael joins (~jmchael@81.174.205.210) |
| 12:53:27 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 12:54:38 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 264 seconds) |
| 12:54:54 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Ping timeout: 268 seconds) |
| 12:55:14 | <sshine> | https://hackage.haskell.org/package/hedgehog-1.0.4/docs/Hedgehog.html#t:Command |
| 12:55:30 | <sshine> | Hedgehog has so many features I don't know about. |
| 12:57:59 | hackage | api-maker 0.1.0.0 - Package to make APIs https://hackage.haskell.org/package/api-maker-0.1.0.0 (schnecki) |
| 13:00:18 | → | Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com) |
| 13:04:28 | → | Tario joins (~Tario@201.192.165.173) |
| 13:10:10 | → | ADG1089__ joins (~aditya@122.163.166.13) |
| 13:10:36 | × | Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 240 seconds) |
| 13:13:47 | × | kostic_ quits (~kostic@51.194.80.91) (Ping timeout: 265 seconds) |
| 13:16:10 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) |
| 13:16:33 | <siraben> | How do I convert Text.ParserCombinators.Token into a parser? |
| 13:16:39 | <siraben> | parse decimal "" is ill-typed |
| 13:17:17 | → | kostic_ joins (~kostic@51.194.80.91) |
| 13:17:26 | × | olligobber quits (~olligobbe@unaffiliated/olligobber) (Remote host closed the connection) |
| 13:21:09 | <pavonia> | siraben: You need to apply it to a token parser |
| 13:21:28 | <pavonia> | see the example for makeTokenParser |
| 13:24:09 | → | Guest_2 joins (56b2cdc4@host86-178-205-196.range86-178.btcentralplus.com) |
| 13:24:25 | × | Guest_2 quits (56b2cdc4@host86-178-205-196.range86-178.btcentralplus.com) (Remote host closed the connection) |
| 13:25:18 | × | Franciman quits (~francesco@host-82-49-79-73.retail.telecomitalia.it) (Remote host closed the connection) |
| 13:26:49 | × | kkateq quits (1f11e846@ip1f11e846.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 13:28:09 | → | Franciman joins (~francesco@host-82-49-79-73.retail.telecomitalia.it) |
| 13:34:06 | → | chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
| 13:34:22 | → | knupfer joins (~Thunderbi@200116b82c2bd800516fbdbd3eb5c414.dip.versatel-1u1.de) |
| 13:35:17 | × | tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection) |
| 13:37:58 | → | tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64) |
| 13:40:33 | → | fendor joins (~fendor@77.119.131.23.wireless.dyn.drei.com) |
| 13:40:37 | <sshine> | why aren't there any LR(k) parser combinators? why are they all LL(k)? |
| 13:41:15 | <sshine> | siraben, Text.ParserCombinators smells like Parsec's old namespace. |
| 13:42:13 | × | pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!) |
| 13:42:21 | <sshine> | siraben, did you see the example at the bottom of Text.Parsec.Token? https://hackage.haskell.org/package/parsec-3.1.14.0/docs/Text-Parsec-Token.html#v:makeTokenParser |
| 13:42:36 | × | ADG1089__ quits (~aditya@122.163.166.13) (Remote host closed the connection) |
| 13:43:01 | → | ADG1089__ joins (~aditya@122.163.166.13) |
| 13:43:49 | <merijn> | sshine: That's a...flawed question |
| 13:44:31 | <siraben> | pavonia: sshine: I did, so looks like I need to use the empty language def |
| 13:44:38 | <merijn> | sshine: LR(k)/LL(k) refer to the lookahead/recurssion parser generators can properly handle. But parser combinators aren't parser generators, they're more like DSLs/convenience libraries for writing recursive descent parsers |
| 13:44:59 | <merijn> | sshine: And recursive descent parsers can handle unbounded lookahead/retry IFF you write them like that |
| 13:45:15 | × | Kaiepi quits (~Kaiepi@47.54.252.148) (Read error: Connection reset by peer) |
| 13:45:29 | <merijn> | sshine: Of course, actually using that unboundedness will get you terrible performance |
| 13:45:35 | → | Kaiepi joins (~Kaiepi@47.54.252.148) |
| 13:46:51 | <sshine> | merijn, I'm asking, why aren't there parser combinators that construct LR(k) parsers? I understand that parser combinators are eDSLs. I don't understand why they can't be eDSLs over LR(k) parsers. |
| 13:47:30 | × | Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
| 13:47:46 | <sshine> | so basically rather than have Happy as a stand-alone program with a separate compilation step, you could have an embedded DSL. |
| 13:47:52 | → | Kaiepi joins (~Kaiepi@47.54.252.148) |
| 13:48:35 | <merijn> | sshine: You'd have to redo all the analysis every time you run the program to create the parser, though |
| 13:49:25 | × | drbean quits (~drbean@TC210-63-209-21.static.apol.com.tw) (Ping timeout: 264 seconds) |
| 13:49:26 | → | fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 13:49:47 | <sshine> | what if you did the analysis during compilation? |
| 13:49:48 | <merijn> | By having happy indepedent you analyse the grammar once and then encode the resulting parser. If you wanna embed happy you'll end up either 1) doing the analysis in TH at compile time to only analyse once, or 2) pay the cost each time |
| 13:50:04 | <sshine> | yes okay. |
| 13:53:02 | <dminuoso> | sshine: Look at parsley perhaps, so libraries that do static analysis at TH time is doable |
| 13:53:10 | <dminuoso> | https://github.com/J-mie6/ParsleyHaskell |
| 13:53:21 | <kuribas> | is there a way to hide a phantom type parameter? |
| 13:53:29 | <kuribas> | without an existential? |
| 13:54:17 | × | borne quits (~fritjof@200116b864c6f800cebf0c02893372bd.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
| 13:54:28 | <kuribas> | I suppose I should make a new type without the parameter then... |
| 13:56:49 | <kuribas> | ah wait, I already have a simpler type I can use :) |
| 13:57:45 | <kuribas> | I guess newtype + coerce would be the generic answer |
| 13:58:14 | → | Kaivo joins (~Kaivo@104-200-86-99.mc.derytele.com) |
| 13:59:33 | × | ADG1089__ quits (~aditya@122.163.166.13) (Remote host closed the connection) |
| 13:59:38 | <dminuoso> | That's the equivalent of `undefined` as a proof for type-level programming, isnt it? :) |
| 13:59:48 | <kuribas> | yeah |
| 14:00:11 | <kuribas> | coerce seems to circumvent type level safety (but not value level safety) |
| 14:02:57 | → | urodna joins (~urodna@unaffiliated/urodna) |
| 14:03:16 | × | Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 240 seconds) |
| 14:04:14 | × | kam1 quits (~kam1@24.231.108.143) (Ping timeout: 260 seconds) |
| 14:05:36 | × | kostic_ quits (~kostic@51.194.80.91) (Ping timeout: 240 seconds) |
| 14:08:47 | → | kam1 joins (~kam1@24.231.108.143) |
| 14:09:13 | <dminuoso> | fsvo of "safety" |
| 14:09:29 | hackage | hasbolt-extras 0.0.1.5 - Extras for hasbolt library https://hackage.haskell.org/package/hasbolt-extras-0.0.1.5 (ozzzzz) |
| 14:09:29 | <dminuoso> | If the newtype guarantees some preconditions on the value, then a coerce can break "value level safety" too |
| 14:09:32 | → | jlamothe joins (~jlamothe@198.251.55.207) |
| 14:09:42 | → | kostic_ joins (~kostic@51.194.80.91) |
| 14:10:34 | → | mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl) |
| 14:10:34 | × | mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host) |
| 14:10:34 | → | mouseghost joins (~draco@wikipedia/desperek) |
| 14:14:13 | <merijn> | Preventing Coercible from working is pretty trivial, though |
| 14:14:23 | <merijn> | So not really |
| 14:14:29 | × | Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
| 14:14:48 | → | Kaiepi joins (~Kaiepi@47.54.252.148) |
| 14:14:49 | <merijn> | You can only coerce newtypes when their constructor is in scope and they're used in a role that allows it |
| 14:15:09 | <solonarv> | coerce only works when the constructors of all newtypes involved in the coercion are in scope, and in that case you were already able to dig in and break the invariants |
| 14:15:24 | <merijn> | solonarv: Too slow, n00b ;) |
| 14:15:45 | Rembane | hands out swords |
| 14:16:19 | <solonarv> | if a library exports 'newtype SortedList a = SortedList { getSortedList :: [a] }' (with the obvious-given-the-name invariant) there is no difference between 'SortedList [3,1,2]' and 'coerce [3,1,2]', really - the presence of 'coerce' doesn't allow you to do things you couldn't already do |
| 14:18:46 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Ping timeout: 268 seconds) |
| 14:20:17 | → | ulidtko|k joins (~ulidtko@194.54.80.38) |
| 14:20:37 | × | ulidtko|kk quits (~ulidtko@194.54.80.38) (Read error: Connection reset by peer) |
| 14:24:58 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) |
| 14:25:54 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) (Remote host closed the connection) |
| 14:26:00 | → | Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:a017:afb:342e:7f38) |
| 14:26:18 | → | bitmapper joins (uid464869@gateway/web/irccloud.com/x-icrmchothviupllr) |
| 14:30:13 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 14:30:36 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 14:31:09 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:e8a6:fffb:d62d:21f1) |
| 14:32:11 | × | Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
| 14:32:20 | → | Kaiepi joins (~Kaiepi@47.54.252.148) |
| 14:35:34 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds) |
| 14:36:12 | × | drewolson quits (~drewolson@64.227.24.16) (Quit: The Lounge - https://thelounge.chat) |
| 14:36:24 | → | drewolson joins (~drewolson@64.227.24.16) |
| 14:37:26 | → | Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com) |
| 14:39:38 | × | geekosaur quits (ac3a5304@172.58.83.4) (Remote host closed the connection) |
| 14:41:08 | × | fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz) |
| 14:41:49 | × | Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 246 seconds) |
| 14:42:01 | → | arybczak joins (~unknown@2a02:a312:c83d:7800:bb7f:5c00:4f48:cc5c) |
| 14:42:44 | × | kam1 quits (~kam1@24.231.108.143) (Ping timeout: 260 seconds) |
| 14:44:52 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:e8a6:fffb:d62d:21f1) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 14:46:11 | → | coot joins (~coot@37.30.50.187.nat.umts.dynamic.t-mobile.pl) |
| 14:46:31 | × | hiroaki quits (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
| 14:48:18 | <ezzieyguywuf> | hoooray, ghc 8.10 hit in gentoo today! |
| 14:50:09 | → | Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
| 14:50:56 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) |
| 14:52:54 | fendor | doesn't know the context but happily takes a sword |
| 14:55:32 | × | chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 14:55:46 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Ping timeout: 268 seconds) |
| 14:57:31 | → | superstar64 joins (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) |
| 14:57:59 | → | chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
| 15:02:02 | <superstar64> | does `-XStrict` affect the prelude? |
| 15:04:01 | <superstar64> | or does it stay lazy? |
| 15:04:15 | → | fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 15:04:37 | × | _ashbreeze_ quits (~mark@184-157-32-85.dyn.centurytel.net) (Ping timeout: 260 seconds) |
| 15:05:17 | → | _ashbreeze_ joins (~mark@64.85.214.234.reverse.socket.net) |
| 15:05:51 | <solonarv> | any extension generally only affects a module if it's enabled when compiling that module, and this is certainly true for Strict |
| 15:07:17 | <solonarv> | it's purely a syntax extension (inserts a number of '!'s all over the modules it's enabled in, basically) |
| 15:07:32 | → | boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
| 15:07:36 | × | kostic_ quits (~kostic@51.194.80.91) (Ping timeout: 240 seconds) |
| 15:09:08 | → | hiroaki joins (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) |
| 15:09:51 | × | p3n quits (~p3n@217.198.124.246) (Remote host closed the connection) |
| 15:11:43 | × | jespada quits (~jespada@90.254.245.49) (Ping timeout: 258 seconds) |
| 15:11:44 | → | kostic_ joins (~kostic@51.194.80.91) |
| 15:12:34 | → | christo joins (~chris@81.96.113.213) |
| 15:14:30 | → | jespada joins (~jespada@90.254.245.49) |
| 15:18:51 | × | Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
| 15:19:08 | → | Kaiepi joins (~Kaiepi@47.54.252.148) |
| 15:22:24 | <wz1000> | Is there anything like LogicT, but with the ability to dynamically reorder/reprioritise the computation? |
| 15:22:45 | → | fendor_ joins (~fendor@178.165.130.57.wireless.dyn.drei.com) |
| 15:23:14 | <wz1000> | at some point, I want to be able to set the priority of the current branch, so that it is re-scheduled after all branches with a higher priority |
| 15:23:55 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 15:25:13 | × | fendor quits (~fendor@77.119.131.23.wireless.dyn.drei.com) (Ping timeout: 246 seconds) |
| 15:25:13 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 246 seconds) |
| 15:25:17 | × | Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
| 15:25:28 | → | Kaiepi joins (~Kaiepi@47.54.252.148) |
| 15:27:29 | → | GRemLin joins (~GRemLin@45.32.110.226) |
| 15:28:00 | × | boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed) |
| 15:29:36 | × | toorevitimirp quits (~tooreviti@117.182.182.252) (Ping timeout: 240 seconds) |
| 15:31:20 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 15:32:09 | × | al3x27 quits (~plovs@85.254.75.83) (Ping timeout: 268 seconds) |
| 15:32:51 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 15:33:49 | → | Forlorn joins (~Forlorn@unaffiliated/forlorn) |
| 15:33:52 | <Forlorn> | "The purpose of the state monad is to hide the passing of state between _functions." -- but doesn't that just make it as abstract and more _confusing and unreadable just like when working with OOP? And also less _explicit? |
| 15:34:02 | × | hexfive quits (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Quit: i must go. my people need me.) |
| 15:34:10 | <Forlorn> | Is5 |
| 15:35:13 | <Forlorn> | isn't it better to make things more clear and where you can easily interpret and grasp something and where certainty stands despitte all possible doubt? |
| 15:35:26 | fendor_ | is now known as fendor |
| 15:35:31 | <Forlorn> | despite* |
| 15:35:52 | <merijn> | Yes, no, maybe, it depends |
| 15:37:42 | <merijn> | There are no "one size fits all" solutions |
| 15:38:03 | <merijn> | The State monad can both make things easier or harder, depending on what you're doing with it |
| 15:38:09 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 260 seconds) |
| 15:38:23 | <Forlorn> | merijn, When would it make things "easier". |
| 15:38:30 | <Forlorn> | ? |
| 15:39:40 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 15:41:53 | <solonarv> | easier, because you don't have to explicitly mention the state all the time, and since you're not handling the state explicitly, you can't as easily accidentally keep working on an old state |
| 15:42:11 | <merijn> | If there's some state that needs to be shared between a bunch of deeply nested structures or if there's no other convenient way to propagate the state |
| 15:43:00 | <solonarv> | I've also found it very convenient combined with lens's state-y operators, for writing VMs and such |
| 15:44:41 | <AWizzArd> | Are class MyClass a b c | a b -> c where and class MyClass a b c | b a -> c where identical? Or does the order before -> matter? |
| 15:45:43 | <merijn> | AWizzArd: I *think* they should be identical |
| 15:45:53 | <solonarv> | half-made-up example: interpret (Add src dest) = do Just x <- preuse (vmMem . ix sx); vmMem . ix dest += x; vmPC += 1 |
| 15:45:55 | <merijn> | AWizzArd: Since they mean that 'a' and 'b' together uniquely determine C |
| 15:45:56 | <AWizzArd> | I would think so too. |
| 15:46:04 | <AWizzArd> | yeah, my interpretation |
| 15:46:14 | <AWizzArd> | merijn: thx |
| 15:46:44 | <solonarv> | I can imagine that the order might come into play if you are doing weird things with INCOHERENT instances, but apart from that I don t think it should matter |
| 15:47:09 | <merijn> | At that point you've got yourself to blame ;) |
| 15:47:35 | <solonarv> | oh for sure :D |
| 15:47:52 | → | p-core joins (~Thunderbi@koleje-wifi-0045.koleje.cuni.cz) |
| 15:47:53 | <solonarv> | INCOHERENT also makes (A, B) and (B, A) not mean the same thing in constraints sometimes |
| 15:48:23 | <adamCS> | Anyone know when the very awesome and amazing ghcup will add 8.10.3? I did something very dumb--upgraded to Big Sur on my laptop--and I think 8.10.3 will make everything work again. I tried to install by hand from the binary distribution but all the OS security stuff seems to get in the way even if I click "Allow" on everything. So I think I need to wait for ghcup... |
| 15:49:21 | <merijn> | adamCS: There's a magical command you need to run, I think? ping carter (I think he knew?) |
| 15:50:35 | <adamCS> | merijn: Like, there's a way to do it without waiting for it to just magically show up in the list? I assumed it was some file it pulls on startup and that one needed updating... |
| 15:51:21 | <merijn> | adamCS: I meant fixing the bindist to work |
| 15:51:41 | <merijn> | It has to do with notarisation, iirc |
| 15:52:04 | <carter> | theres an xattr command |
| 15:52:06 | <merijn> | But I'm a smart cookie, so I don't upgrade to Big Sur yet ;) |
| 15:52:10 | <adamCS> | merijn: Oh. That'd be useful as well. |
| 15:52:11 | <carter> | for removing foreign |
| 15:52:17 | <adamCS> | merijn: No need to rub it in! |
| 15:52:19 | <carter> | man xattr |
| 15:52:24 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) |
| 15:53:41 | <carter> | xattr -c ./ghc* |
| 15:55:00 | <adamCS> | carter: Thanks! Still gets stuck on ghc-pkg |
| 15:55:17 | <carter> | you didnt recurisvely do it? |
| 15:55:28 | <carter> | adamCS: you need to do the entire zip |
| 15:55:36 | <carter> | and then unpack |
| 15:55:53 | <adamCS> | got it. I'll try that! |
| 15:56:16 | → | kam1 joins (~kam1@24.231.108.143) |
| 15:56:48 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Ping timeout: 260 seconds) |
| 15:56:53 | × | nemron quits (~nemron@2a02:810b:c7bf:fdb8:61d2:5f6c:bc78:4d37) (Quit: Textual IRC Client: www.textualapp.com) |
| 15:57:21 | × | Graypup_ quits (Graypup@lfcode.ca) (Quit: ZNC 1.6.1 - http://znc.in) |
| 15:59:08 | × | fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz) |
| 15:59:14 | <adamCS> | carter, merijn: It's working. Thank you! |
| 15:59:16 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 256 seconds) |
| 15:59:21 | → | Graypup_ joins (Graypup@lfcode.ca) |
| 16:00:10 | → | vfaronov joins (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) |
| 16:01:12 | <merijn> | \o/ |
| 16:01:21 | → | Rudd0 joins (~Rudd0@185.189.115.103) |
| 16:01:25 | → | mastarija joins (~mastarija@93-138-112-136.adsl.net.t-com.hr) |
| 16:02:01 | × | mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew) |
| 16:03:42 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 16:03:54 | <adamCS> | and now the great rebuild of all the libraries commences... |
| 16:04:14 | × | qwsd quits (~tema@217.118.92.215) (Ping timeout: 272 seconds) |
| 16:04:46 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
| 16:07:26 | → | dandart1 joins (~Thunderbi@home.dandart.co.uk) |
| 16:07:54 | × | dandart quits (~Thunderbi@home.dandart.co.uk) (Ping timeout: 260 seconds) |
| 16:07:54 | dandart1 | is now known as dandart |
| 16:09:21 | <kuribas> | :t lift |
| 16:09:23 | <lambdabot> | (MonadTrans t, Monad m) => m a -> t m a |
| 16:09:29 | <kuribas> | what does lift require Monad m? |
| 16:09:37 | <kuribas> | why? |
| 16:10:07 | <kuribas> | liftA2 doesn't... |
| 16:10:30 | <merijn> | How are those two related? |
| 16:10:43 | <kuribas> | ok, maybe not :) |
| 16:11:45 | → | orion joins (~orion@c-76-19-238-5.hsd1.nh.comcast.net) |
| 16:11:45 | × | orion quits (~orion@c-76-19-238-5.hsd1.nh.comcast.net) (Changing host) |
| 16:11:45 | → | orion joins (~orion@unaffiliated/orion) |
| 16:11:59 | <kuribas> | lift in the lift type looks arbitrary... |
| 16:12:47 | <kuribas> | why not put the Monad constraint in the instance? |
| 16:13:35 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
| 16:14:05 | <orion> | In theory, if GHC is configured to output LLVM, would I be able to compile applications on and for an IBM POWER9 processor? |
| 16:14:17 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 16:16:09 | <kuribas> | IMO ReaderT could have a Monoid instance as well |
| 16:18:04 | × | Betelgeuse1 quits (~Betelgeus@185.204.1.185) (Remote host closed the connection) |
| 16:18:33 | <kuribas> | orion: it's not that easy |
| 16:18:56 | <kuribas> | orion: ghc has a large runtime as well |
| 16:19:09 | <orion> | The runtime is written in C though, yes? |
| 16:19:47 | <kuribas> | I think so... |
| 16:21:24 | → | bitmagie joins (~Thunderbi@200116b806b59b006c2fdba00c21d3bd.dip.versatel-1u1.de) |
| 16:21:34 | <merijn> | orion: Part of the runtime is |
| 16:21:45 | <merijn> | orion: Also "probably not" |
| 16:24:08 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
| 16:24:31 | → | al3x27 joins (~plovs@85.254.75.83) |
| 16:25:08 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 16:25:43 | → | fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 16:25:57 | → | ddellacosta joins (dd@gateway/vpn/mullvad/ddellacosta) |
| 16:26:34 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 16:30:01 | × | kam1 quits (~kam1@24.231.108.143) (Ping timeout: 265 seconds) |
| 16:30:49 | × | mastarija quits (~mastarija@93-138-112-136.adsl.net.t-com.hr) (Quit: Leaving) |
| 16:32:35 | × | Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
| 16:32:40 | → | UltimateNate joins (~UltimateN@s91904426.blix.com) |
| 16:32:46 | → | Kaiepi joins (~Kaiepi@47.54.252.148) |
| 16:34:52 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
| 16:37:16 | → | hekkaidekapus] joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 16:38:09 | → | Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com) |
| 16:38:23 | × | hekkaidekapus[ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
| 16:39:21 | <monochrom> | "written in C" has little information. The hardest part is "written for the OS". |
| 16:39:57 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 16:40:22 | ← | superstar64 parts (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) () |
| 16:42:16 | × | Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 240 seconds) |
| 16:42:19 | × | dandart quits (~Thunderbi@home.dandart.co.uk) (Ping timeout: 260 seconds) |
| 16:43:27 | → | dandart joins (~Thunderbi@home.dandart.co.uk) |
| 16:43:28 | × | Kaivo quits (~Kaivo@104-200-86-99.mc.derytele.com) (Ping timeout: 256 seconds) |
| 16:44:02 | <orion> | merijn: Thanks. |
| 16:47:51 | → | danso joins (~dan@69-165-210-185.cable.teksavvy.com) |
| 16:49:50 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
| 16:51:07 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 16:51:31 | × | chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:51:58 | → | chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
| 16:52:05 | × | xelxebar quits (~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection) |
| 16:52:15 | → | iekfkk joins (~username@117.200.6.222) |
| 16:52:17 | <iekfkk> | hi |
| 16:52:32 | × | orzo quits (joe@lasker.childrenofmay.org) (Ping timeout: 258 seconds) |
| 16:52:34 | <iekfkk> | do we need OOP or structs ... as most languages have them. |
| 16:52:42 | → | orzo joins (joe@lasker.childrenofmay.org) |
| 16:52:49 | × | duairc quits (~shane@ana.rch.ist) (Ping timeout: 260 seconds) |
| 16:53:03 | <Rembane> | iekfkk: Hi. No. |
| 16:53:04 | → | xelxebar joins (~xelxebar@gateway/tor-sasl/xelxebar) |
| 16:53:06 | <monochrom> | structs yes, OOP no. |
| 16:53:07 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) |
| 16:53:23 | × | cantstanya quits (~chatting@gateway/tor-sasl/cantstanya) (Ping timeout: 240 seconds) |
| 16:54:04 | <iekfkk> | why would haskell has structs |
| 16:54:17 | <merijn> | Why wouldn't it? |
| 16:54:23 | <iekfkk> | are they even needed for a purely functional approach |
| 16:54:30 | → | duairc joins (~shane@ana.rch.ist) |
| 16:54:33 | <merijn> | iekfkk: Define "purely functional" |
| 16:54:58 | <Vulfe_> | a struct is essentially the same thing as a product type |
| 16:55:06 | <iekfkk> | i mean just using functions that accept input and return output, avoiding structs |
| 16:55:23 | <merijn> | Vulfe_: That's not gonna be super helpful for someone asking this question :) |
| 16:55:32 | <Vulfe_> | merijn: fair |
| 16:55:37 | <merijn> | iekfkk: Why is that input/output not allowed to be a struct? |
| 16:55:42 | <monochrom> | The question itself was not helpful in the first place. |
| 16:55:51 | <iekfkk> | struct has data members and is not a function, can't functions do that functionality thereby making struct superficial |
| 16:55:56 | <monochrom> | Or rather, based on an unhelpful premise. |
| 16:56:01 | <iekfkk> | because i don't like struct |
| 16:56:07 | <merijn> | iekfkk: Also, "just using functions" is not how anyone in this channel would define "purely functional" |
| 16:56:12 | <Vulfe_> | then think about records as product types instead |
| 16:56:16 | <monochrom> | My output is a tuple, so I need a product type. |
| 16:56:18 | <merijn> | iekfkk: Not everything is a function in functional programming |
| 16:56:19 | <Vulfe_> | because they are that |
| 16:56:34 | <Vulfe_> | a product type is determined by its projection operators |
| 16:56:37 | <merijn> | iekfkk: See also: http://conal.net/blog/posts/everything-is-a-function-in-haskell |
| 16:56:38 | <Vulfe_> | it doesn't really get more functional than that |
| 16:56:40 | × | bitmagie quits (~Thunderbi@200116b806b59b006c2fdba00c21d3bd.dip.versatel-1u1.de) (Quit: bitmagie) |
| 16:56:59 | → | Kaeipi joins (~Kaiepi@47.54.252.148) |
| 16:57:36 | → | cantstanya joins (~chatting@gateway/tor-sasl/cantstanya) |
| 16:57:47 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Ping timeout: 260 seconds) |
| 16:58:05 | <monochrom> | Sometimes I need an existential type. An existential type is most useful when it is the existential quantifier wrapping over a product type. |
| 16:58:31 | <monochrom> | If there is no product type, then existential quantification is useless. |
| 16:58:33 | × | Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
| 16:59:32 | <monochrom> | If you don't like tuples, you don't have to use them. Go on with your simplistic Int->Bool programming. |
| 17:00:25 | → | geekosaur joins (42d52137@66.213.33.55) |
| 17:01:53 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0) |
| 17:03:16 | × | kritzefitz quits (~kritzefit@fw-front.credativ.com) (Remote host closed the connection) |
| 17:06:49 | × | lyxia quits (~lyxia@poisson.chat) (Ping timeout: 264 seconds) |
| 17:08:13 | <solonarv> | iekfkk: yes, you can forgo all data types ("structs") and work with functions exclusively. But this is very inconvenient to actually accomplish practical tasks with, and adding data types to a theory isn't all that complicated, so Haskell has them (has had them from the very start, even its direct ancestors had them) |
| 17:08:39 | <iekfkk> | no i want data types but not structs |
| 17:08:46 | <iekfkk> | reminds me of OOP |
| 17:08:53 | <solonarv> | please explain what you mean by "struct" |
| 17:09:03 | <iekfkk> | in julia we have them |
| 17:09:42 | <solonarv> | please also explain what you mean by "data type" |
| 17:10:08 | → | kritzefitz joins (~kritzefit@212.86.56.80) |
| 17:10:22 | → | lyxia joins (~lyxia@poisson.chat) |
| 17:10:23 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) |
| 17:10:24 | <travv0> | structs have nothing to do with OOP |
| 17:10:32 | <solonarv> | from where I'm standing, "struct" is just the word C and C-family languages use for product types (i.e. a subset of data types) that have named fields |
| 17:10:42 | <solonarv> | C isn't even object-oriented! |
| 17:10:51 | <iekfkk> | struct Employee \n name::String address:String id:Int end \n john = Employee("john","nyc",8283) john.address john.name ... you get it that struct |
| 17:11:01 | <merijn> | solonarv: In C++ struct is just another word for "class" (with slightly different rules for visibility) |
| 17:11:23 | <iekfkk> | solonarv: yes fieldnames they are called in julia |
| 17:11:48 | <solonarv> | merijn: yeah, I took a C++ class last semester :p |
| 17:11:49 | <iekfkk> | but do we even need them in haskell? |
| 17:12:08 | <solonarv> | "need"? no, all you *need* is lambda |
| 17:12:16 | <solonarv> | or machine code if that's your preference |
| 17:13:10 | <merijn> | You don't even need computers! |
| 17:13:16 | <geekosaur> | this is a strange discussion |
| 17:13:19 | <merijn> | Free yourself, sheople! |
| 17:13:37 | <merijn> | geekosaur: Well, mostly a very confused one, I think :) |
| 17:13:49 | <solonarv> | and if that's what you mean by "struct", then yes, Haskell has them - although they're called "records" here. You can't to john.name , currently, but there's a somewhat controversial GHC extension adding that syntax which I think is set to release sometime soon |
| 17:15:22 | → | kam1 joins (~kam1@24.231.108.143) |
| 17:16:20 | <Vulfe_> | if you don't like OOP then you can learn lenses and then feel superior about it |
| 17:16:56 | × | dandart quits (~Thunderbi@home.dandart.co.uk) (Ping timeout: 240 seconds) |
| 17:17:54 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 17:20:05 | × | coot quits (~coot@37.30.50.187.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 17:20:36 | <solonarv> | if you don't like OOP then remember that 'thing.fieldName' is not what OOP is about |
| 17:20:48 | × | jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 17:22:43 | <glguy> | I like having choices |
| 17:23:05 | × | chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 17:23:43 | × | Franciman quits (~francesco@host-82-49-79-73.retail.telecomitalia.it) (Quit: Leaving) |
| 17:23:58 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 17:24:21 | → | plutoniix joins (~q@ppp-27-55-88-126.revip3.asianet.co.th) |
| 17:27:26 | <koz_> | solonarv: It's not really all that soon. RDP missed 9.0, so it's 9.2 at the earliest. |
| 17:28:34 | × | jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 258 seconds) |
| 17:32:44 | → | Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:8163:ba97:5d66:959b) |
| 17:33:12 | <solonarv> | koz_: oh good, I won't have to see that blight for a few more months :p |
| 17:33:27 | <koz_> | solonarv: A lot more months if anything. |
| 17:35:57 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Remote host closed the connection) |
| 17:36:14 | <solonarv> | every time I look at the various proposals and issues around records I get sad, I get the impression that the implementation is just sort of going in random directions and piling on ad-hoc features |
| 17:37:13 | × | asheshambasta quits (~user@ptr-e1lysaxt4bg7tmaahx1.18120a2.ip6.access.telenet.be) (Ping timeout: 272 seconds) |
| 17:40:59 | → | Younder joins (~john@33.51-174-155.customer.lyse.net) |
| 17:43:21 | → | chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
| 17:44:15 | × | chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit) |
| 17:44:18 | → | jonkri joins (~jonkri@pontarius/jon) |
| 17:45:31 | <kuribas> | is a methodless typeclass a good replacement for a Type Family? |
| 17:45:38 | <jonkri> | Hi! I'm trying to understand the Persistent answer here: <https://stackoverflow.com/questions/30062707/foreign-key-constraints-in-yesod-persistent>. Why doesn't "Foreign User authorfk author" work? I'm trying to specify a foreign key in this way, but a foreign key contraint is not being generated when Persistent migrates the database. Thanks! |
| 17:46:20 | <kuribas> | I need: type family IsNullable where IsNullable NotNull a = a; IsNullable Nullable a = Maybe a |
| 17:47:03 | <dolio> | That doesn't seem like a class. |
| 17:47:25 | × | plutoniix quits (~q@ppp-27-55-88-126.revip3.asianet.co.th) (Ping timeout: 240 seconds) |
| 17:47:58 | <kuribas> | dolio: class FromNullable nullable a b; instance FromNullable Nullable a (Maybe a); instance FromNullable NotNull a a |
| 17:49:02 | <kuribas> | dolio: that may need a functional dependency |
| 17:49:23 | <kuribas> | which isn't boring haskell either I suppose |
| 17:50:25 | × | kam1 quits (~kam1@24.231.108.143) (Ping timeout: 240 seconds) |
| 17:50:40 | → | Wamanuz joins (~wamanuz@90-230-67-56-no84.tbcn.telia.com) |
| 17:50:53 | <solonarv> | it does need a fundep, but why do you want a class? |
| 17:51:09 | <kuribas> | so restrict to boring haskell... |
| 17:51:13 | <solonarv> | (the fundep is 'a nullable -> b') |
| 17:51:17 | → | boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
| 17:51:40 | <dolio> | This doesn't sound like a good reason. |
| 17:52:02 | <solonarv> | I'm not convinced that fundeps are any more boring than type families, given that you can use FDs to replicate what TFs do - *including* all of the potential type astronaut wizardry |
| 17:52:35 | <kuribas> | good point :) |
| 17:53:30 | <solonarv> | your question demonstrates the issue perfectly: you have a type family, but you propose encoding it as a FD instead; this doesn't make it any less (potentially) confusing! |
| 17:53:43 | <kuribas> | that's true |
| 17:54:24 | → | chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
| 17:54:37 | <dminuoso> | Strange, usually people do it the other way around.. |
| 17:54:50 | <dminuoso> | Switch from fundems to tyfams because of better ergonomics in many cases... |
| 17:55:26 | <dolio> | Yeah, the other thing is, the way that type families stuff works generally makes more sense than fundeps. |
| 17:55:37 | <koz_> | Also, every time someone brings up 'boring Haskell' or anything similar, I want to punch a bear. |
| 17:56:07 | <koz_> | Since it's at best extremely nebulous and at worst twists things into unrecognizable messes because of some kind of minimalism fetish. |
| 17:56:16 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 17:56:21 | <koz_> | (wow, I'm starting to sound like monochrom) |
| 17:56:22 | <dolio> | Like, fundeps work in a weird, "just inform inference" sort of way. They're missing behavior that an actual "functional dependency" would imply. |
| 17:56:26 | <Younder> | koz_, Drink one instead, less damaging to you health ;) |
| 17:56:33 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 17:56:43 | <koz_> | Younder: How does one _drink_ a bear? What next-level RUSSIA is this? |
| 17:56:46 | <kuribas> | koz_: I like the boring haskell sentiment, just not religiously... |
| 17:57:01 | → | Wuzzy joins (~Wuzzy@p549c9519.dip0.t-ipconnect.de) |
| 17:57:06 | <dminuoso> | And even if you do want the typeclass, chances are an associated tyfam is a bit nicer. :) |
| 17:57:10 | <dolio> | E.G. if you have `FromNullable n a b` and `FomNullable n a c`, you cannot deduce that `b = c`. |
| 17:58:20 | <iekfkk> | are records in the default lang without extension. why not remove them |
| 17:58:29 | <dminuoso> | iekfkk: Why would we remove records? |
| 17:58:32 | <iekfkk> | we dont' need those stinking records |
| 17:58:40 | <iekfkk> | we will use functions |
| 17:58:57 | <dminuoso> | iekfkk: There's a lot of associated benefits, from it. |
| 17:59:06 | <iekfkk> | idk |
| 17:59:14 | <kuribas> | koz_: if I got rid of the null checking, everything would be Maybe. Possibly but ugly. |
| 17:59:27 | → | nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 17:59:29 | <dminuoso> | iekfkk: Imagine you have a sum type with 10 fields, and you want to construct it. Using record syntax, it's less likely you make a mistake. Same story with pattern matching. |
| 17:59:29 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 17:59:39 | <koz_> | kuribas: Who said anything about getting rid of null checking? I wasn't objecting to that - just to 'boring Haskell'. |
| 17:59:43 | <koz_> | But in any case, you do you. |
| 17:59:58 | → | plutoniix joins (~q@node-uln.pool-125-24.dynamic.totinternet.net) |
| 18:00:30 | <koz_> | iekfkk: While we're at it, why not remove numbers too? We don't need those stinking numbers! We will use functions. |
| 18:00:31 | <dminuoso> | iekfkk: An unrelated part, you get niceties like Generics working really well with that. Being able to derive FromJSON or ToJSON is rather comfortable. |
| 18:00:58 | <iekfkk> | koz_: records are like classes |
| 18:01:05 | <kuribas> | koz_: I find many haskell libraries overengineered. |
| 18:01:18 | <iekfkk> | exactly overengineering |
| 18:01:41 | <koz_> | kuribas: I do too. Doesn't change my mind about 'boring Haskell' or anything similar. |
| 18:01:47 | <merijn> | This entire conversation feels rather pointless. Don't like records? Don't use them. |
| 18:02:01 | × | boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Ping timeout: 264 seconds) |
| 18:02:04 | <koz_> | merijn: Pointless conversations? In _my_ #haskell? Never! :P |
| 18:02:04 | <phaazon> | ^ |
| 18:02:09 | <phaazon> | I meant ^ merijn |
| 18:02:24 | <merijn> | Don't like Haskell because it has records? Don't use Haskell. Problem solved. |
| 18:02:47 | <dolio> | The important part is that 'boring haskell' isn't about what extensions you turn on. It's about how complicated the thing you write with those extensions is. |
| 18:03:07 | <kuribas> | and avoiding those extensions unless really needed. |
| 18:04:25 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 264 seconds) |
| 18:04:30 | <dolio> | Trying to do something complicated by mangling it into older extensions is going to make it more complicated, not less. |
| 18:04:32 | <iekfkk> | https://stackoverflow.com/questions/5367167/haskell-record-syntax#5520803 |
| 18:04:51 | <merijn> | dolio: More generally, I think it's useful to think in terms of "power-to-weight" ratio of extensions and complexity rather than some weird binary zealotry |
| 18:04:53 | <iekfkk> | if the early Haskellers had their way, we might've never had record syntax in the first place. The idea was apparently pushed onto Haskell by people who were already used to C-like syntax, and were more interested in getting C-like things into Haskell rather than doing things "the Haskell way". |
| 18:06:00 | <merijn> | iekfkk: This line of "questioning" is neither interesting nor productive |
| 18:06:04 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) |
| 18:06:48 | <koz_> | maerwald: Is ghcup gonna get an update due to the release of GHC 8.10.3? |
| 18:06:51 | <merijn> | "Imagine if the foundations of English were entirely different!" <- nice thought experiment, not helpful when communicating with the British |
| 18:08:48 | <iekfkk> | this raises serious discussion about practicality of struct to make an app and GUItk |
| 18:09:12 | × | knupfer quits (~Thunderbi@200116b82c2bd800516fbdbd3eb5c414.dip.versatel-1u1.de) (Ping timeout: 258 seconds) |
| 18:09:20 | <koz_> | iekfkk: How are those things even _remotely_ related? |
| 18:09:27 | <iekfkk> | making an app and lib that makes it guitk is all that matters to a software person |
| 18:09:37 | koz_ | is a software person. |
| 18:09:43 | <iekfkk> | koz_: because apps are everything |
| 18:09:44 | <Philonous> | jonkri, I've tried the code locally, and it creates the foreign constraint just fine |
| 18:09:48 | <koz_> | Neither of those things matters to me. |
| 18:10:07 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 18:10:43 | <koz_> | Also, what's QualifiedDo all about? |
| 18:10:54 | <iekfkk> | you say how is programming and gui software related, obvious what's the use of programming then if you can't make an app. Is your view different than mine? are you talking about not making an app? |
| 18:11:03 | <iekfkk> | i just see programming as an app maker |
| 18:12:01 | <koz_> | iekfkk: Your exact claim was, and I quote, 'this raises serious discussion about practicality of struct to make an app and GUItk'. I was inquiring how you go from 'struct' to 'making an app and GUItk'. |
| 18:12:12 | <koz_> | Because the logical sequence there is not clear to me. |
| 18:12:20 | <Feuermagier> | i have a treenode, that can either be a node or a leaf. how do I check the type of the object? |
| 18:12:29 | <koz_> | Feuermagier: Pattern match? |
| 18:12:33 | <merijn> | Feuermagier: Pattern matching |
| 18:12:34 | <iekfkk> | because if we can make an app without struct, then the conclusion is struct is useless... that's my thinking |
| 18:12:46 | <koz_> | iekfkk: I can make 'an app' without numbers too. |
| 18:12:47 | <geekosaur> | ... |
| 18:12:50 | → | magma joins (~magma@host-79-22-138-220.retail.telecomitalia.it) |
| 18:12:50 | <koz_> | Does that make _numbers_ useless? |
| 18:12:52 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 246 seconds) |
| 18:13:02 | <Feuermagier> | can i just n == Node ? |
| 18:13:12 | <koz_> | Feuermagier: No, because that doesn't make sense. |
| 18:13:14 | <merijn> | koz_: *points at "no feeding"-sign* |
| 18:13:17 | <koz_> | You want pattern matching. |
| 18:13:38 | <iekfkk> | koz_: no not effectively not even remotely using assembly as it won't be portable, even with C it's a nightmare , and then someone said like a child we can make it with machinecode !! |
| 18:13:56 | <koz_> | How does one summon mods? I think we broke the bot. |
| 18:14:16 | <Philonous> | jonkri, The answer given in under the stack overflow question is just wrong, persistent has supported explicit Primary and Foreign keys for a long time |
| 18:14:17 | <iekfkk> | koz_: but structs are not as fundamental to making apps as numbers are |
| 18:14:59 | <iekfkk> | i'd be in deep sh** if there are no numbers, as they are prerequisite |
| 18:15:26 | <Feuermagier> | isLeaf :: Tree a -> Boolean --- isLeaf t | t == Leaf = true |
| 18:15:34 | <Feuermagier> | like this? |
| 18:15:36 | <geekosaur> | no |
| 18:15:40 | <koz_> | Feuermagier: No. |
| 18:15:46 | <jle`> | Feuermagier: have you tried pattern matching? |
| 18:16:04 | <Feuermagier> | is pattern mathing the thing with the | ? |
| 18:16:09 | <koz_> | Feuermagier: Nope. |
| 18:16:12 | <jle`> | not quite, that's a guard |
| 18:16:13 | <koz_> | Those are called guards. |
| 18:16:18 | <jle`> | isLeaf Leaf = True |
| 18:16:23 | <jle`> | isLeaf (Node _ _ _) = False |
| 18:16:23 | <koz_> | jle`: Something something soda? |
| 18:16:25 | <jonkri> | Philonous: Thank you. :) |
| 18:16:32 | <jle`> | or however many arguments Node has |
| 18:16:33 | <jonkri> | I'd better go back and check my code again, then. :) |
| 18:16:46 | <Feuermagier> | oh, | seemed like something that well... matches patterns |
| 18:16:55 | <jle`> | Feuermagier: what pattern does it match? |
| 18:17:02 | <geekosaur> | this is a pattern of constructors |
| 18:17:12 | <Feuermagier> | the one i write in its check function |
| 18:17:13 | <geekosaur> | not e.g. regex |
| 18:17:24 | <jle`> | ah, you mean the boolean |
| 18:17:37 | <jle`> | yeah, pattern here is "how you could construct a tree" |
| 18:17:47 | <jle`> | data Tree a = Node a (Tree a) (Tree a) | Leaf |
| 18:17:54 | <merijn> | jle`: Pro tip, record syntax works on non-records! |
| 18:18:03 | <jle`> | so you can either match on the `Node _ _ _` pattern, or the `Leaf` pattern |
| 18:18:10 | <merijn> | jle`: So you can write "isLeaf Node{} = False" to match regardless of argument count |
| 18:18:14 | <jle`> | merijn: heh, wasn't sure that would be appropriate for a newcomer D: |
| 18:18:50 | <jle`> | Feuermagier: so your code would be like: `isLeaf (Node a b c) = ..,; isLeaf Leaf = ...` |
| 18:19:15 | <merijn> | Or, better yet, don't have an isLeaf at all and use pattern matching insead of using isLeaf ;) |
| 18:21:54 | <jonkri> | Philonous: Could it be that my primary key is a UUID, or that my foreign key column is a Maybe value (that is, that the foreign key column is nullable)? |
| 18:22:20 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 18:23:12 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 18:23:34 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 18:24:03 | × | natechan quits (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Quit: WeeChat 2.9) |
| 18:24:34 | <jonkri> | Philonous: Here's what the code looks like: <https://pastebin.com/quFCYqqQ>. |
| 18:25:56 | <Philonous> | jonkri, UUID is definitely not the problem, I've used them as foreign references a lot |
| 18:26:08 | → | borne joins (~fritjof@200116b864c6f800c0a3d285e8e687f4.dip.versatel-1u1.de) |
| 18:26:45 | <jonkri> | Philonous: Also, I'm using migrateAll for the Persistent migration. |
| 18:27:30 | hackage | countable-inflections 0.3.0 - Countable Text Inflections https://hackage.haskell.org/package/countable-inflections-0.3.0 (tippenein) |
| 18:27:39 | <shapr> | migrateAny |
| 18:27:56 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
| 18:28:09 | <Philonous> | jonkri, I'm assuming "migrateAll" is the name you've given to the migration via mkMigrate? |
| 18:29:07 | → | dandart joins (~Thunderbi@2a00:23c7:f5a6:d001:21e9:329e:6e0c:5ce) |
| 18:29:15 | <merijn> | jonkri: oof, optional foreign key? Not sure persistent supports that |
| 18:29:26 | <Philonous> | Just ran that code, it seems it does |
| 18:29:40 | × | hiroaki quits (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds) |
| 18:29:44 | <merijn> | jonkri: I would also recommend reconsidering using persistent, tbh :) |
| 18:30:04 | <Philonous> | I think the problem might be the backend, which actually creates the migration, I just checked with sqlite |
| 18:30:23 | <merijn> | The backend is responsible for migrations, yes |
| 18:30:30 | <merijn> | It's also not particularly sophisticated |
| 18:30:41 | <Philonous> | jonkri, No, come to think of it, I've used optional foreign keys in the past, can't be the problem either |
| 18:30:43 | <merijn> | Certainly don't expect to be able to arbitrary migrations |
| 18:31:06 | <Philonous> | Yeah, I've moved to manual migrations because I don't trust it |
| 18:31:24 | × | Guest98308 quits (sid30093@gateway/web/irccloud.com/x-xltcvhbyjparvqrq) (Changing host) |
| 18:31:25 | → | Guest98308 joins (sid30093@musicbrainz/user/ocharles) |
| 18:31:33 | Guest98308 | is now known as ocharles |
| 18:31:36 | → | natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 18:31:39 | <Philonous> | Much better to have them in source control, you can always see what's going on instead of hoping that persistent guesses the right migration |
| 18:32:03 | <merijn> | Philonous: I use semi-manual migrations piggy backing on persistent, but that's like 3.2k LOC right there just for migrations |
| 18:32:30 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8) (Remote host closed the connection) |
| 18:32:32 | × | chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 18:32:38 | <merijn> | jonkri: Which database are you using? |
| 18:32:49 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 246 seconds) |
| 18:33:00 | → | boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
| 18:33:23 | → | cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it) |
| 18:34:04 | <jonkri> | I'm using https://hackage.haskell.org/package/esqueleto-3.4.0.1/docs/Database-Esqueleto.html#v:runMigration. migrateAll is defined through Esqueleto somehow. |
| 18:34:13 | × | mimi_vx quits (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) (Ping timeout: 272 seconds) |
| 18:34:22 | <jonkri> | merijn: I'm using PostgreSQL. |
| 18:34:24 | <merijn> | ah, I don't use esqueleto, just persistent |
| 18:34:31 | → | christo joins (~chris@81.96.113.213) |
| 18:34:43 | <merijn> | jonkri: Well, at least you got that going for you! |
| 18:35:07 | <merijn> | jonkri: hmm, this migration is adding a foreign key to an existing database? |
| 18:35:10 | <Philonous> | I'm pretty sure that's just a re-export from persistent |
| 18:35:20 | <jonkri> | I have a feeling I'm doing something extremely silly here, and is totally wasting your time...! |
| 18:35:57 | <Philonous> | "migrateAll" is defined by "mkMigration", it's the string parameter you pass to it |
| 18:36:10 | <Philonous> | mkMigrate, I mean |
| 18:36:15 | <jonkri> | The foreign key should be visible through \d in psql, right? |
| 18:36:22 | <Philonous> | Yes |
| 18:36:39 | × | thecoffemaker quits (~thecoffem@unaffiliated/thecoffemaker) (Ping timeout: 260 seconds) |
| 18:37:30 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 18:37:50 | → | avdb joins (~avdb@gateway/tor-sasl/avdb) |
| 18:38:53 | → | Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com) |
| 18:39:19 | <jonkri> | I'm realizing now that the version I'm using of Persistent is very old. 2.7.3.1. That's almost 3 years. |
| 18:39:28 | <jonkri> | I should upgrade it and see if that solves the problem. |
| 18:39:47 | <Philonous> | Can't hurt, but it should still work |
| 18:40:02 | <merijn> | eh... |
| 18:40:18 | <merijn> | I know at least 2 major updates to foreign key stuff in persistent in the past 2 years, so... |
| 18:40:35 | <Philonous> | Oh ok then |
| 18:40:37 | <merijn> | I wouldn't be so sure if he's using a 3 year old version and you are not :p |
| 18:40:45 | × | Wamanuz quits (~wamanuz@90-230-67-56-no84.tbcn.telia.com) (Remote host closed the connection) |
| 18:41:05 | <jonkri> | merijn: Interesting! Why did you think I should reconsider Persistent, by the way? Was that just for the migrations, or in general? |
| 18:41:10 | → | Wamanuz joins (~wamanuz@90-230-67-56-no84.tbcn.telia.com) |
| 18:42:34 | <merijn> | jonkri: In general. It seems like such a nice and convenient way to write your schema. No messing with SQL and setup, yay! But I've basically built my own entire migration and query logic on top of it because it didn't expose all the details I needed (not to mention a number of PRs to persistent) |
| 18:42:42 | → | hiroaki joins (~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) |
| 18:42:56 | × | Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 240 seconds) |
| 18:43:22 | <merijn> | jonkri: And having looked at the current API design I find it *incredibly* hard to use properly, there's a number of exposed functions/features that can leak resources and using them without leaking is non-obvious |
| 18:44:46 | <jonkri> | merijn: I see! Thanks for the info. :) |
| 18:45:04 | <solonarv> | koz_: QualifiedDo is "like RebindableSyntax, but only for that one 'do' block" - I haven't looked into it in great detail but it seems like a very nice extension to me |
| 18:45:24 | <merijn> | jonkri: I'd probably use sqlite-simple and postgres-simple directly in the future |
| 18:45:43 | <merijn> | jonkri: But I've got too much code to be willing to rewrite it now >.> |
| 18:45:47 | <Philonous> | Also no joins, unless you use esqueleto, which is pretty good for what it does, but then you're writing SQL in Haskell, and it's not such a great fit. So sometimes you need to drop down to SQL anyway |
| 18:46:03 | <merijn> | Also, SQL is just pretty good |
| 18:46:03 | × | avdb quits (~avdb@gateway/tor-sasl/avdb) (Ping timeout: 240 seconds) |
| 18:46:09 | <kuribas> | jonkri, merijn I may find some time this holiday to port my library to hdbc |
| 18:46:29 | <merijn> | The sooner you embrace the love of SQL, the better! :p |
| 18:46:34 | <kuribas> | the typed layer looks a bit like esqueleto, but cleaner :) |
| 18:46:44 | <kuribas> | merijn: my library is just SQL btw |
| 18:46:45 | → | knupfer joins (~Thunderbi@i5E86B42D.versanet.de) |
| 18:46:49 | <kuribas> | a thin layer above it |
| 18:47:00 | <merijn> | kuribas: Eh, hdbc (I've heard) has pretty abysmal performance :) |
| 18:47:10 | <kuribas> | merijn: ah :( |
| 18:47:15 | <kuribas> | what should I use then? |
| 18:47:26 | → | juuandyy joins (~juuandyy@90.166.144.65) |
| 18:47:32 | <Philonous> | I've been fiddling about with code that automatically batches requests a la Haxl, but directly on top of persistent, so less futzing about. |
| 18:48:07 | <merijn> | kuribas: In the sense of a general backend? I don't think one really exists? |
| 18:48:13 | <Philonous> | Which means in common cases you can avoid n+1 queries without having to write custom joins |
| 18:48:41 | <kuribas> | merijn: I have currently mysql, which according to these channels only our company uses :) |
| 18:48:54 | × | evanjs quits (~evanjs@075-129-098-007.res.spectrum.com) (Ping timeout: 272 seconds) |
| 18:49:03 | <kuribas> | Philonous: for generic SQL? |
| 18:49:36 | <Philonous> | Anything that esqueleto can target, at this point |
| 18:49:44 | → | brisbin joins (~patrick@pool-173-49-158-4.phlapa.fios.verizon.net) |
| 18:50:33 | <kuribas> | open source? |
| 18:50:37 | × | kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 264 seconds) |
| 18:51:05 | → | avdb joins (~avdb@gateway/tor-sasl/avdb) |
| 18:51:06 | → | justan0theruser joins (~justanoth@unaffiliated/justanotheruser) |
| 18:52:55 | → | Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com) |
| 18:53:13 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds) |
| 18:53:49 | <kuribas> | Philonous: I am writing a graphql server based on SQL rewriting |
| 18:54:18 | <kuribas> | at least, a graphql server library that would support it. |
| 18:54:36 | <Philonous> | It's not realeased anywhere, there's a few problems I need to look into more. |
| 18:54:53 | <kuribas> | as the graphql seems to follow a less flexible imperative model, and morpheus is all TH magick. |
| 18:55:35 | → | AlexanderEliseev joins (b0c3cefe@176.195.206.254) |
| 18:57:12 | × | AlexanderEliseev quits (b0c3cefe@176.195.206.254) (Remote host closed the connection) |
| 18:57:21 | <kuribas> | merijn: maybe better, I document my library better, post it on reddit, and hope someone else ports it to postgresql :-) |
| 19:00:00 | → | mimi_vx joins (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) |
| 19:00:59 | hackage | tasty-silver 3.2.1 - A fancy test runner, including support for golden tests. https://hackage.haskell.org/package/tasty-silver-3.2.1 (PhilippHausmann) |
| 19:01:27 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 19:01:38 | × | Mikagami quits (~MOSCOS@122.54.107.175) (Remote host closed the connection) |
| 19:02:04 | → | Mikagami joins (~MOSCOS@122.54.107.175) |
| 19:02:58 | ← | EdFletcher parts (~EdFletche@unaffiliated/edfletchert137) ("Leaving") |
| 19:03:03 | → | Franciman joins (~francesco@host-82-49-79-73.retail.telecomitalia.it) |
| 19:03:25 | × | geekosaur quits (42d52137@66.213.33.55) (Ping timeout: 245 seconds) |
| 19:03:33 | → | berberman_ joins (~berberman@unaffiliated/berberman) |
| 19:04:01 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 258 seconds) |
| 19:06:49 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
| 19:09:05 | × | alx741 quits (~alx741@186.178.110.239) (Quit: alx741) |
| 19:09:23 | → | alx741 joins (~alx741@186.178.110.239) |
| 19:14:47 | → | ADG1089__ joins (~aditya@223.235.77.1) |
| 19:15:13 | × | Cthalupa quits (~cthulhu@47.186.47.75) (Ping timeout: 264 seconds) |
| 19:15:41 | → | bisickcor joins (~username@117.200.10.75) |
| 19:15:42 | → | Cthalupa joins (~cthulhu@47.186.47.75) |
| 19:15:59 | hackage | graphula 2.0.0.2 - A declarative library for describing dependencies between data https://hackage.haskell.org/package/graphula-2.0.0.2 (PatrickBrisbin) |
| 19:17:08 | → | jathan joins (~jathan@69.61.93.38) |
| 19:18:16 | × | iekfkk quits (~username@117.200.6.222) (Ping timeout: 240 seconds) |
| 19:21:18 | ← | joehillen parts (joehillen@unaffiliated/joehillen) () |
| 19:21:39 | → | geekosaur joins (42d52137@66.213.33.55) |
| 19:22:48 | → | pipi joins (cab83936@202.184.57.54) |
| 19:24:03 | × | pipi quits (cab83936@202.184.57.54) (Remote host closed the connection) |
| 19:24:21 | × | _ashbreeze_ quits (~mark@64.85.214.234.reverse.socket.net) (Remote host closed the connection) |
| 19:25:52 | → | _ashbreeze_ joins (~mark@64.85.214.234.reverse.socket.net) |
| 19:30:08 | × | m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Quit: WeeChat 2.7.1) |
| 19:31:21 | → | Merfont joins (~Kaiepi@47.54.252.148) |
| 19:31:24 | <dsal> | Is there an annotation I can use to tell GHC that a pattern, while incomplete, is still correct/total/ |
| 19:31:26 | × | Kaeipi quits (~Kaiepi@47.54.252.148) (Read error: Connection reset by peer) |
| 19:32:52 | <dsal> | Currently sledging in a `{-# OPTIONS_GHC -Wno-incomplete-patterns #-}`, but it'd be nice to be more local. |
| 19:35:01 | × | mimi_vx quits (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) (Ping timeout: 272 seconds) |
| 19:35:13 | <xerox_> | dsal: I have had the same question |
| 19:36:05 | <dsal> | Surely it must exist. I'd rather litter my code with annotations that it's correct than add pattern captures and cases for things that are impossible and I have to respond with error or something anyway. |
| 19:36:30 | <merijn> | dsal: Something more local would be "foo _ = error "can't happen"" |
| 19:37:10 | <xerox_> | that's exactly the line you feel worst about adding :D |
| 19:37:23 | <dsal> | Yeah, I have one of those. I guess satisfying the compiler and providing a better error message when impossible happens at the same time is probably fine. |
| 19:40:30 | hackage | cherry-core-alpha 0.2.0.0 - The core library for Cherry Haskell. https://hackage.haskell.org/package/cherry-core-alpha-0.2.0.0 (terezasokol) |
| 19:40:55 | × | ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ->) |
| 19:42:10 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 19:42:27 | <geekosaur> | not the most self-descriptive of packages |
| 19:43:15 | × | boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed) |
| 19:44:00 | <dsal> | cherry core sounds like the pits |
| 19:44:44 | → | kritzefitz joins (~kritzefit@212.86.56.80) |
| 19:47:03 | <cohn> | xD |
| 19:47:24 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
| 19:47:25 | → | texasmyn_ joins (~texasmyns@23.82.14.34) |
| 19:48:05 | × | knupfer quits (~Thunderbi@i5E86B42D.versanet.de) (Ping timeout: 240 seconds) |
| 19:48:10 | → | xiinotulp joins (~q@node-uov.pool-125-24.dynamic.totinternet.net) |
| 19:49:37 | → | Lycurgus joins (~niemand@cpe-45-46-137-210.buffalo.res.rr.com) |
| 19:50:18 | × | texasmynsted quits (~texasmyns@185.232.22.12) (Ping timeout: 256 seconds) |
| 19:51:27 | × | plutoniix quits (~q@node-uln.pool-125-24.dynamic.totinternet.net) (Ping timeout: 256 seconds) |
| 19:52:52 | × | StoneToad quits (~StoneToad@104-192-232-50.ppp.storm.ca) (Ping timeout: 272 seconds) |
| 19:52:52 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 19:53:27 | → | evanjs joins (~evanjs@075-129-098-007.res.spectrum.com) |
| 19:53:30 | → | StoneToad joins (~StoneToad@104-192-232-50.ppp.storm.ca) |
| 19:53:51 | <Philonous> | dsal, COMPLETE pragmas work for that |
| 19:54:38 | <dsal> | Philonous: Yeah, that's what I was looking for. I was searching for "total" and similar. |
| 19:54:39 | × | dandart quits (~Thunderbi@2a00:23c7:f5a6:d001:21e9:329e:6e0c:5ce) (Ping timeout: 272 seconds) |
| 19:54:58 | × | ADG1089__ quits (~aditya@223.235.77.1) (Remote host closed the connection) |
| 19:55:09 | <Philonous> | It's not necessarily what you want, though, since it's sort of "global" |
| 19:55:22 | → | ADG1089__ joins (~aditya@223.235.77.1) |
| 19:55:41 | <Philonous> | But if there's a specific set of constructors or pattern synonyms that you want considered complete it's what you're looking for |
| 19:56:29 | <dsal> | Yeah, it looks like most options are worse than just "error with a good reason this was impossible |
| 19:56:30 | <dsal> | " |
| 19:57:23 | × | ADG1089__ quits (~aditya@223.235.77.1) (Remote host closed the connection) |
| 19:57:45 | → | ADG1089__ joins (~aditya@223.235.77.1) |
| 19:58:02 | <Philonous> | I think {-# COMPLETE" #-} is mostly useful for pattern synonyms since they are opaque to the pattern match checker, but maybe some clever use could get you there |
| 19:58:27 | × | cyphase quits (~cyphase@unaffiliated/cyphase) (Ping timeout: 272 seconds) |
| 19:59:18 | × | Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 256 seconds) |
| 20:00:56 | × | ADG1089__ quits (~aditya@223.235.77.1) (Remote host closed the connection) |
| 20:01:18 | → | ADG1089__ joins (~aditya@223.235.77.1) |
| 20:02:36 | × | juuandyy quits (~juuandyy@90.166.144.65) (Ping timeout: 240 seconds) |
| 20:03:21 | <fuzzypixelz> | when I'm writing haskell I often end up with functions like: |
| 20:03:28 | <fuzzypixelz> | > f =map (bimap unwords (unwords . take 2) . splitAt 1 . words) . splitOn "," . unwords . drop 4 . words |
| 20:03:30 | <lambdabot> | <hint>:1:3: error: <hint>:1:3: error: parse error on input ‘=’ |
| 20:04:11 | <fuzzypixelz> | > map (bimap unwords (unwords . take 2) . splitAt 1 . words) . splitOn "," . unwords . drop 4 . words |
| 20:04:13 | <lambdabot> | <[Char] -> [([Char],[Char])]> |
| 20:04:31 | <fuzzypixelz> | Then I have no idea how to simplify them |
| 20:04:55 | → | chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
| 20:05:16 | × | nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
| 20:05:52 | → | nineonine joins (~nineonine@50.216.62.2) |
| 20:06:02 | × | wonko7 quits (~wonko7@2a01:e35:2ffb:7040:4535:f480:7dff:b3b5) (Ping timeout: 264 seconds) |
| 20:06:54 | <hololeap> | fuzzypixelz: maybe focus on making the code more readable/intelligable rather than making it as few lines as possible |
| 20:08:10 | <solonarv> | split it up: dropNWords n = unwords . drop n . words; firstThreeWords xs = case words xs of (x:y:z:_) -> (x, y ++ z) ; f = map firstThreeWords . splitOn "," . dropNWords 4 |
| 20:08:24 | <hololeap> | also, it kind of looks like you might benefit from using a parser library |
| 20:08:35 | <solonarv> | (probably add a sensible failure case to firstThreeWords, and choose better names) |
| 20:08:52 | <solonarv> | but this is also about the level of complexity where I'd jump ship to a parser combinator library |
| 20:09:02 | → | jneira joins (5127ad83@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.131) |
| 20:09:21 | <fuzzypixelz> | huh, this is AOC day 7 |
| 20:09:35 | <fuzzypixelz> | an example of a parser library please? |
| 20:09:40 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Remote host closed the connection) |
| 20:09:42 | <hololeap> | parsec |
| 20:09:44 | <solonarv> | I use parser combinators to parse all the AoC inputs |
| 20:09:49 | <solonarv> | megaparsec is my go-to |
| 20:09:57 | <hololeap> | not sure what's available for AoC |
| 20:10:11 | <merijn> | hololeap: Whatever you install locally... |
| 20:10:18 | <solonarv> | whatever you want, your code runs on your own machine (not on the AoC servers) |
| 20:10:22 | <fuzzypixelz> | hololeap: yes you can do whatever |
| 20:10:25 | <hololeap> | oh, didn't know that |
| 20:10:53 | <hololeap> | then yeah, megaparsec is what i would choose as well |
| 20:11:02 | <fuzzypixelz> | thanks for reminding me (informing me) that parser libraries exit |
| 20:11:17 | <fuzzypixelz> | um parsec vs megaparsec? |
| 20:11:19 | → | mimi_vx joins (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) |
| 20:11:22 | <Feuermagier> | I have an operation that might return "Nothing" - I need to perform further functions if I get a "Just", otherwise I need to abort and return "Nothing". How do I elegantly chain functions where any might fail and return "Nothing"? |
| 20:11:36 | → | xcmw joins (~textual@2603-6011-2200-f103-b803-6e7f-4f6f-d00a.res6.spectrum.com) |
| 20:11:38 | <shapr> | I need "how to convert your attoparsec code to megaparsec" tutorial. |
| 20:11:55 | <shapr> | Feuermagier: what about the maybe monad? |
| 20:12:31 | <Feuermagier> | shapr, haven't heard about those. will look it up. |
| 20:13:11 | <xerox_> | :t asum |
| 20:13:12 | <lambdabot> | (Foldable t, Alternative f) => t (f a) -> f a |
| 20:13:36 | × | evanjs quits (~evanjs@075-129-098-007.res.spectrum.com) (Ping timeout: 240 seconds) |
| 20:13:48 | → | evanjs- joins (~evanjs@075-129-098-007.res.spectrum.com) |
| 20:15:22 | → | dandart joins (~Thunderbi@2a00:23c7:f5a6:d001:21e9:329e:6e0c:5ce) |
| 20:16:21 | <solonarv> | % :t (>>=) @Maybe -- Feuermagier , sound like a useful type? |
| 20:16:22 | <yahb> | solonarv: Maybe a -> (a -> Maybe b) -> Maybe b |
| 20:17:26 | <hololeap> | fuzzypixelz: https://github.com/mrkkrp/megaparsec#comparison-with-other-solutions |
| 20:18:07 | <shapr> | yeah, I just need to port over all my existing code so I know what to use in place of say, decimal |
| 20:19:22 | <hololeap> | shapr: Text.Megaparsec.Char.Lexer.decimal ? |
| 20:20:02 | → | juuandyy joins (~juuandyy@90.166.144.65) |
| 20:20:42 | <hololeap> | or i guess you would probably want Text.Megaparsec.Byte.Lexer.decimal if you're working with ByteStrings |
| 20:20:52 | × | ADG1089__ quits (~aditya@223.235.77.1) (Remote host closed the connection) |
| 20:21:19 | → | ADG1089__ joins (~aditya@223.235.77.1) |
| 20:22:19 | → | wonko7 joins (~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net) |
| 20:22:57 | → | coot joins (~coot@37.30.50.187.nat.umts.dynamic.t-mobile.pl) |
| 20:23:41 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) |
| 20:24:09 | <shapr> | hololeap: I dunno, last year I tried to get started with megaparsec and switched back to attoparsec for reasons I've forgotton :-( |
| 20:24:29 | <shapr> | Attoparsec is not error friendly, that's for sure. |
| 20:24:36 | <hololeap> | if you're dealing with incremental input, attoparsec is really the only choice |
| 20:25:12 | <shapr> | haven't done that yet, I started using attoparsec before megaparsec was a thing |
| 20:25:42 | × | Merfont quits (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
| 20:26:04 | → | Merfont joins (~Kaiepi@47.54.252.148) |
| 20:26:18 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 20:26:20 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Client Quit) |
| 20:26:39 | → | Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com) |
| 20:26:46 | × | lep-delete quits (~lep@94.31.81.93) (Read error: Connection reset by peer) |
| 20:27:02 | → | lep-delete joins (~lep@94.31.81.93) |
| 20:27:08 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 20:27:11 | lep-delete | is now known as test |
| 20:27:15 | <hololeap> | megaparsec is pretty easy to learn. the semantics are very similar to attoparsec, with a few exceptions (attoparsec always backtracks on failure; with megaparsec, you sometimes have to use the `try` combinator) |
| 20:27:41 | test | is now known as Guest31393 |
| 20:27:49 | Guest31393 | is now known as lep-delete |
| 20:28:42 | <hololeap> | i actually don't understand why megaparsec doesn't backtrack on failure like attoparsec does. it seems more natural to me to automatically backtrack |
| 20:28:57 | <geekosaur> | because worst case it's unbounded |
| 20:29:01 | <merijn> | hololeap: Because it's far less efficient |
| 20:29:28 | <merijn> | Also, makes it much harder to sensible error reporting |
| 20:29:41 | <merijn> | You wanna commit as hard as possible as fast as possible for best errors |
| 20:29:52 | → | Janni joins (~jan@134.3.46.18) |
| 20:30:07 | <hololeap> | hm, ok |
| 20:30:10 | → | boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
| 20:30:26 | <glguy> | attoparsec only backtracks up to <|>, but its <|> is still biased, it won't backtrack on success |
| 20:30:47 | × | Janni quits (~jan@134.3.46.18) (Client Quit) |
| 20:30:55 | <merijn> | See also ezyang's post on "try a or b considered harmful": http://blog.ezyang.com/2014/05/parsec-try-a-or-b-considered-harmful/ |
| 20:31:01 | → | m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
| 20:31:14 | <merijn> | glguy: Yes, but if the top part of your parser is a bunch of alternatives it means it can backtrack all the way back to the start |
| 20:31:16 | × | Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 256 seconds) |
| 20:31:28 | <glguy> | attoparsec's <|> means you have to structure your parser differently when you want to commit earlier |
| 20:31:50 | <glguy> | merijn: yeah, but it's wrong/misleading to just say "it always backtracks" |
| 20:32:12 | <glguy> | it just don't have the input consumption commits optimization |
| 20:32:15 | <merijn> | glguy: to be fair, no one said that :p |
| 20:32:21 | <glguy> | people say it all the time, to be fair |
| 20:32:31 | <merijn> | glguy: hololeap said "it always backtracks on failure" :) |
| 20:32:46 | <glguy> | I'm not picking on hololeap |
| 20:33:26 | shapr | picks on lambdabot |
| 20:34:46 | <glguy> | oh well, sounds like I wasn't adding anything; back to work |
| 20:35:06 | × | juuandyy quits (~juuandyy@90.166.144.65) (Quit: Konversation terminated!) |
| 20:35:18 | → | shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com) |
| 20:36:12 | <sm[m]> | I for one am happy to see regular discussion of the finer points of parsing in Haskell |
| 20:37:33 | glguy | wonders what portion of parser combinator questions in december here are due to aoc |
| 20:37:54 | → | iekfkk joins (~username@117.200.13.21) |
| 20:37:58 | <sm[m]> | a sign it's becoming more mainstream and easier to get productive with |
| 20:38:13 | <sm[m]> | glguy I'm guessing all of them :) |
| 20:38:14 | <merijn> | glguy: ~95%? :p |
| 20:38:41 | <dminuoso> | sm[m]: The parsing discussions only happen in december, though. |
| 20:39:00 | <dminuoso> | In January, we're back to talking about adjunctions and homotopy type theory. |
| 20:39:02 | <glguy> | The rest of the year we're using happy :nod: |
| 20:39:06 | <dminuoso> | heh |
| 20:39:41 | <glguy> | I'm using happy to generate ReadP parsers to parse my inputs so I can use all the things |
| 20:40:45 | × | bisickcor quits (~username@117.200.10.75) (Ping timeout: 240 seconds) |
| 20:45:38 | × | mimi_vx quits (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) (Ping timeout: 264 seconds) |
| 20:50:29 | → | fxg joins (~fxg@unaffiliated/fxg) |
| 20:51:11 | → | tsrt^ joins (tsrt@ip98-184-89-2.mc.at.cox.net) |
| 20:52:30 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 20:54:30 | → | thecoffemaker joins (~thecoffem@unaffiliated/thecoffemaker) |
| 20:54:58 | × | andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection) |
| 20:54:58 | → | emmanuel_erc joins (~user@2603-7000-9600-01c9-0000-0000-0000-0adc.res6.spectrum.com) |
| 20:55:41 | → | rprije joins (~rprije@202.168.43.92) |
| 20:56:30 | hackage | hspec-expectations-json 1.0.0.2 - Hspec expectations for JSON Values https://hackage.haskell.org/package/hspec-expectations-json-1.0.0.2 (PatrickBrisbin) |
| 20:57:38 | <shapr> | great hspec tations |
| 20:57:51 | × | coot quits (~coot@37.30.50.187.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 20:57:56 | × | Merfont quits (~Kaiepi@47.54.252.148) (Read error: No route to host) |
| 20:58:01 | → | andreas303 joins (~andreas@gateway/tor-sasl/andreas303) |
| 20:58:17 | → | Merfont joins (~Kaiepi@47.54.252.148) |
| 20:58:22 | × | dandart quits (~Thunderbi@2a00:23c7:f5a6:d001:21e9:329e:6e0c:5ce) (Ping timeout: 260 seconds) |
| 20:58:25 | × | fxg quits (~fxg@unaffiliated/fxg) (Ping timeout: 246 seconds) |
| 20:58:49 | × | hekkaidekapus] quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection) |
| 20:59:11 | → | hekkaidekapus] joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 21:00:00 | → | mimi_vx joins (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) |
| 21:00:10 | × | mounty quits (~mounty@210.1.196.133) (Ping timeout: 256 seconds) |
| 21:00:35 | → | dandart joins (~Thunderbi@2a00:23c7:f5a6:d001:21e9:329e:6e0c:5ce) |
| 21:02:03 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 21:02:12 | <monochrom> | heh |
| 21:03:01 | <hololeap> | merijn: thanks for the blog post, it's very informative |
| 21:03:14 | → | cyphase joins (~cyphase@unaffiliated/cyphase) |
| 21:04:09 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 21:05:59 | hackage | ejdb2-binding 0.3.0.1 - Binding to EJDB2 C library, an embedded JSON noSQL database https://hackage.haskell.org/package/ejdb2-binding-0.3.0.1 (buro) |
| 21:08:03 | × | avdb quits (~avdb@gateway/tor-sasl/avdb) (Ping timeout: 240 seconds) |
| 21:09:29 | × | xcmw quits (~textual@2603-6011-2200-f103-b803-6e7f-4f6f-d00a.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 21:10:01 | × | Franciman quits (~francesco@host-82-49-79-73.retail.telecomitalia.it) (Quit: Leaving) |
| 21:10:51 | × | chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 21:14:27 | → | xcmw joins (~textual@2603-6011-2200-f103-b803-6e7f-4f6f-d00a.res6.spectrum.com) |
| 21:15:44 | → | Deide joins (~Deide@217.155.19.23) |
| 21:15:55 | × | geekosaur quits (42d52137@66.213.33.55) (Ping timeout: 245 seconds) |
| 21:16:01 | × | xcmw quits (~textual@2603-6011-2200-f103-b803-6e7f-4f6f-d00a.res6.spectrum.com) (Client Quit) |
| 21:18:19 | → | chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
| 21:18:44 | × | DavidEichmann quits (~david@62.110.198.146.dyn.plus.net) (Quit: Leaving) |
| 21:19:03 | → | dominik joins (~weechat@2001:a61:3412:1a01:9665:9cff:fe4d:b4d0) |
| 21:22:17 | × | fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz) |
| 21:23:22 | → | fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 21:23:36 | × | lisq quits (~quassel@lis.moe) (Quit: lisq) |
| 21:23:46 | → | lisq joins (~quassel@lis.moe) |
| 21:24:23 | <kritzefitz> | I recently spent days trying to improve performance in a concurrent application. Today I realized that I have a section in my code that sequentially checks various STM variables and loops if none of them have interesting content. I replaced that section with one proper STM action that checks all the variables and retries if nothing interesting happened and suddenly the performance problem is gone. Now I feel kinda stupid. |
| 21:26:21 | → | texasmynsted joins (~texasmyns@99.96.221.112) |
| 21:27:27 | <dminuoso> | merijn: eitherP is also a nice primitive in attoparsec. :) |
| 21:27:31 | × | lisq quits (~quassel@lis.moe) (Client Quit) |
| 21:27:41 | → | lisq joins (~quassel@lis.moe) |
| 21:28:04 | <dminuoso> | But, I guess it's just a take on <|> |
| 21:28:35 | <dminuoso> | Guess what Im really saying is, this should be selective :p |
| 21:30:51 | → | geekosaur joins (42d52137@66.213.33.55) |
| 21:32:44 | <shapr> | kritzefitz: is it on github? |
| 21:33:37 | <shapr> | or gitlab, or sr.ht or .. |
| 21:34:13 | <kritzefitz> | shapr, not yet. But I was planning to put it onto Gitlab anyway, so if you like to take a look, I can just upload it now. |
| 21:34:22 | <shapr> | yay! |
| 21:34:30 | shapr | hoards more Haskell repos |
| 21:34:45 | × | mimi_vx quits (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) (Ping timeout: 268 seconds) |
| 21:36:39 | → | mimi_vx joins (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) |
| 21:38:03 | sm[m] | thinks shapr is actually a dragon |
| 21:38:18 | <shapr> | when it comes to Haskell source, sure |
| 21:39:57 | → | N3RGY joins (~N3RGY@2600:1700:65aa:90b0:6446:3ba0:c322:ad4c) |
| 21:41:07 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-kgydrswmdfhxhpyo) |
| 21:41:32 | <kritzefitz> | shapr: https://gitlab.com/Kritzefitz/reflex-gi-gtk |
| 21:41:41 | × | mimi_vx quits (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) (Ping timeout: 272 seconds) |
| 21:42:42 | <kritzefitz> | shapr, I'm still getting the API and implementation into shape, so don't expect too much in terms of documentation. |
| 21:42:42 | → | mimi_vx joins (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) |
| 21:42:44 | → | Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com) |
| 21:42:49 | → | sgibber2018 joins (~arch-gibb@208.85.237.137) |
| 21:43:54 | × | dominik quits (~weechat@2001:a61:3412:1a01:9665:9cff:fe4d:b4d0) (Quit: WeeChat 2.8) |
| 21:46:56 | × | Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 240 seconds) |
| 21:47:19 | × | mimi_vx quits (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) (Ping timeout: 258 seconds) |
| 21:47:39 | × | chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Read error: Connection reset by peer) |
| 21:48:11 | × | boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed) |
| 21:48:33 | → | mimi_vx joins (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) |
| 21:50:34 | × | geekosaur quits (42d52137@66.213.33.55) (Remote host closed the connection) |
| 21:50:47 | <int-e> | shapr: so what happens when somebody comes and take a byte? |
| 21:51:37 | × | Lycurgus quits (~niemand@cpe-45-46-137-210.buffalo.res.rr.com) (Ping timeout: 246 seconds) |
| 21:51:57 | × | jathan quits (~jathan@69.61.93.38) (Quit: WeeChat 2.3) |
| 21:53:24 | × | cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone) |
| 21:54:11 | → | jathan joins (~jathan@69.61.93.38) |
| 21:55:58 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Remote host closed the connection) |
| 21:56:19 | → | Franciman joins (~francesco@host-82-49-79-73.retail.telecomitalia.it) |
| 21:57:08 | × | Franciman quits (~francesco@host-82-49-79-73.retail.telecomitalia.it) (Client Quit) |
| 21:57:14 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8) |
| 21:59:16 | × | fendor quits (~fendor@178.165.130.57.wireless.dyn.drei.com) (Remote host closed the connection) |
| 21:59:46 | → | knupfer joins (~Thunderbi@200116b82c2bd8009cf6cefffeb16eb0.dip.versatel-1u1.de) |
| 22:00:04 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection) |
| 22:00:27 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 22:00:45 | × | knupfer quits (~Thunderbi@200116b82c2bd8009cf6cefffeb16eb0.dip.versatel-1u1.de) (Remote host closed the connection) |
| 22:00:52 | → | fendor joins (~fendor@178.165.130.57.wireless.dyn.drei.com) |
| 22:00:55 | → | knupfer joins (~Thunderbi@200116b82c2bd800c8b0c6ced9ba4619.dip.versatel-1u1.de) |
| 22:01:44 | → | mounty joins (~mounty@2001:8000:2f59:0:dc99:8f7f:11be:dca1) |
| 22:02:16 | × | dandart quits (~Thunderbi@2a00:23c7:f5a6:d001:21e9:329e:6e0c:5ce) (Remote host closed the connection) |
| 22:02:18 | → | Franciman joins (~francesco@host-82-49-79-73.retail.telecomitalia.it) |
| 22:02:37 | → | dandart joins (~Thunderbi@2a00:23c7:f5a6:d001:21e9:329e:6e0c:5ce) |
| 22:02:42 | × | knupfer quits (~Thunderbi@200116b82c2bd800c8b0c6ced9ba4619.dip.versatel-1u1.de) (Client Quit) |
| 22:02:51 | → | knupfer joins (~Thunderbi@200116b82c2bd800c8b0c6ced9ba4619.dip.versatel-1u1.de) |
| 22:03:03 | × | knupfer quits (~Thunderbi@200116b82c2bd800c8b0c6ced9ba4619.dip.versatel-1u1.de) (Client Quit) |
| 22:03:12 | → | knupfer joins (~Thunderbi@200116b82c2bd80058d8cab548bcb510.dip.versatel-1u1.de) |
| 22:03:42 | × | arybczak quits (~unknown@2a02:a312:c83d:7800:bb7f:5c00:4f48:cc5c) (Quit: Konversation terminated!) |
| 22:06:45 | → | neiluj joins (~jco@91-167-203-101.subs.proxad.net) |
| 22:06:45 | × | neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Changing host) |
| 22:06:45 | → | neiluj joins (~jco@unaffiliated/neiluj) |
| 22:09:29 | → | pavonia joins (~user@unaffiliated/siracusa) |
| 22:10:21 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
| 22:10:24 | → | kam1 joins (~kam1@24.231.108.143) |
| 22:10:29 | × | ADG1089__ quits (~aditya@223.235.77.1) (Remote host closed the connection) |
| 22:11:36 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 22:13:47 | × | __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving) |
| 22:17:00 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 22:17:23 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 22:18:01 | × | knupfer quits (~Thunderbi@200116b82c2bd80058d8cab548bcb510.dip.versatel-1u1.de) (Quit: knupfer) |
| 22:18:10 | → | knupfer joins (~Thunderbi@i5E86B42D.versanet.de) |
| 22:21:56 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
| 22:23:03 | → | philopsos joins (~caecilius@gateway/tor-sasl/caecilius) |
| 22:23:19 | → | son0p joins (~son0p@181.136.122.143) |
| 22:23:28 | × | mimi_vx quits (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) (Ping timeout: 268 seconds) |
| 22:23:46 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 22:25:45 | → | leungbk joins (~user@2603-8000-f144-2028-88ca-9c13-d300-2ffb.res6.spectrum.com) |
| 22:29:18 | <ezzieyguywuf> | is it possible to `./setup clean` a single module in the build plan? |
| 22:29:23 | × | N3RGY quits (~N3RGY@2600:1700:65aa:90b0:6446:3ba0:c322:ad4c) (Remote host closed the connection) |
| 22:29:42 | <merijn> | build plans are about packages, not modules, so...no? |
| 22:29:46 | × | texasmyn_ quits (~texasmyns@23.82.14.34) (Ping timeout: 246 seconds) |
| 22:30:06 | × | kostic_ quits (~kostic@51.194.80.91) (Ping timeout: 256 seconds) |
| 22:30:16 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 22:30:30 | <ezzieyguywuf> | thought that might be the case |
| 22:30:55 | <ezzieyguywuf> | anyone here familiar with elm? trying to figure out if I can compile/install it without an internet connection |
| 22:31:26 | <ezzieyguywuf> | but the Develop.StaticFiles.Build module requires a connection to download ~/.elm from the interwebs or w/e |
| 22:36:11 | × | vfaronov quits (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Quit: vfaronov) |
| 22:36:27 | hololeap | is very curious what would run elm that doesn't have an internet connection |
| 22:37:21 | <ezzieyguywuf> | hololeap: I'm trying to *install* elm, not run it... |
| 22:37:29 | <ezzieyguywuf> | i.e. trying to package it |
| 22:39:03 | → | N3RGY joins (~N3RGY@2600:1700:65aa:90b0:6446:3ba0:c322:ad4c) |
| 22:39:33 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 22:40:15 | → | Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com) |
| 22:40:30 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 22:40:52 | <hololeap> | so you have an air-gapped machine that you copied the elm source to? (not being critical just curious) |
| 22:41:49 | <ezzieyguywuf> | hololeap: the packaging system I'm using implements a "network sandbox" during installation for security purposes |
| 22:41:50 | × | Sheilong quits (uid293653@gateway/web/irccloud.com/x-tihixihqvmmwogqg) (Quit: Connection closed for inactivity) |
| 22:41:50 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 22:42:10 | <ezzieyguywuf> | it uses the network to download the released tarball and then expects the entire installation to work without need of the network |
| 22:42:16 | <ezzieyguywuf> | I think it's a reasonable restriction |
| 22:42:31 | <hololeap> | ok, so portage with the network sandbox feature turned on, amirite? |
| 22:42:56 | → | Tario joins (~Tario@201.192.165.173) |
| 22:43:37 | <ezzieyguywuf> | hololeap: yes you are rite |
| 22:45:03 | × | dandart quits (~Thunderbi@2a00:23c7:f5a6:d001:21e9:329e:6e0c:5ce) (Ping timeout: 268 seconds) |
| 22:45:13 | × | Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 264 seconds) |
| 22:45:58 | × | N3RGY quits (~N3RGY@2600:1700:65aa:90b0:6446:3ba0:c322:ad4c) (Ping timeout: 258 seconds) |
| 22:48:30 | <fuzzypixelz> | earlier someone suggested I use a parser when I sowed a really complecated function |
| 22:48:40 | <fuzzypixelz> | for example, for aoc day 7 |
| 22:48:53 | <fuzzypixelz> | I need to "parse" a string like "light red bags contain 1 bright white bag, 2 muted yellow bags." |
| 22:49:41 | <hololeap> | ezzieyguywuf: the best course of action is probably to submit a bug/PR for that package on the gentoo-haskell repo. i think it's generally considered bad practice for a package to want to break the network sandbox. |
| 22:49:53 | <fuzzypixelz> | here I might need to save the type of bag in the beginning, the bags it can contain and their numbers |
| 22:50:06 | <fuzzypixelz> | how can a library like parsec help here? |
| 22:51:29 | <glguy> | fuzzypixelz: https://github.com/glguy/advent2020/blob/2fd663d49a622cf74661b52d89a0f6ea5c78a8fd/execs/Day07.hs#L27-L37 |
| 22:51:39 | <glguy> | That's how I used megaparsec to parse that |
| 22:51:42 | <ezzieyguywuf> | hololeap: I'm working on fixing it in gentoo-haskell |
| 22:52:21 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 22:54:01 | × | Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:8163:ba97:5d66:959b) (Quit: Leaving) |
| 22:54:19 | <ezzieyguywuf> | hololeap: that's why I'm asking if there's a way to tweak the elm installation to not require the network |
| 22:55:03 | × | fendor quits (~fendor@178.165.130.57.wireless.dyn.drei.com) (Remote host closed the connection) |
| 22:56:01 | × | kam1 quits (~kam1@24.231.108.143) (Ping timeout: 246 seconds) |
| 22:56:21 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) |
| 22:56:37 | × | knupfer quits (~Thunderbi@i5E86B42D.versanet.de) (Ping timeout: 264 seconds) |
| 22:58:06 | → | lordyod2 joins (~lordyod@c-67-169-144-132.hsd1.ca.comcast.net) |
| 22:58:37 | × | lordyod quits (~lordyod@c-67-169-144-132.hsd1.ca.comcast.net) (Ping timeout: 268 seconds) |
| 22:58:37 | lordyod2 | is now known as lordyod |
| 23:01:12 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) (Ping timeout: 260 seconds) |
| 23:01:23 | × | Franciman quits (~francesco@host-82-49-79-73.retail.telecomitalia.it) (Quit: Leaving) |
| 23:06:12 | → | dandart joins (~Thunderbi@2a00:23c7:f5a6:d001:21e9:329e:6e0c:5ce) |
| 23:06:32 | × | solonarv quits (~solonarv@adijon-656-1-25-229.w90-13.abo.wanadoo.fr) (Ping timeout: 256 seconds) |
| 23:06:53 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 23:07:15 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 23:08:34 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:e906:26f8:b4d1:f41d) |
| 23:09:17 | → | o1lo01ol1o joins (~o1lo01ol1@89.214.139.246) |
| 23:10:35 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
| 23:11:58 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
| 23:12:01 | → | xcmw joins (~textual@2603-6011-2200-f103-b803-6e7f-4f6f-d00a.res6.spectrum.com) |
| 23:13:19 | × | kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection) |
| 23:15:13 | × | neiluj quits (~jco@unaffiliated/neiluj) (Ping timeout: 264 seconds) |
| 23:17:13 | → | N3RGY joins (~N3RGY@2600:1700:65aa:90b0:6446:3ba0:c322:ad4c) |
| 23:18:04 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 246 seconds) |
| 23:18:19 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 23:19:50 | → | nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 23:20:15 | × | nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
| 23:20:49 | → | nineonine joins (~nineonine@50.216.62.2) |
| 23:21:50 | × | wonko7 quits (~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net) (Ping timeout: 256 seconds) |
| 23:22:19 | → | Tops2 joins (~Tobias@dyndsl-095-033-089-034.ewe-ip-backbone.de) |
| 23:23:02 | × | N3RGY quits (~N3RGY@2600:1700:65aa:90b0:6446:3ba0:c322:ad4c) (Ping timeout: 260 seconds) |
| 23:23:57 | × | nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection) |
| 23:25:43 | → | nineonine joins (~nineonine@50.216.62.2) |
| 23:26:08 | × | Tops21 quits (~Tobias@dyndsl-095-033-089-034.ewe-ip-backbone.de) (Ping timeout: 256 seconds) |
| 23:26:20 | → | wonko7 joins (~wonko7@2a01:e35:2ffb:7040:4535:f480:7dff:b3b5) |
| 23:26:38 | × | acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Remote host closed the connection) |
| 23:29:16 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 23:32:43 | → | mimi_vx joins (~mimi@2a01:490:16:1026:81e9:63f1:91e1:9716) |
| 23:32:44 | × | nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection) |
| 23:34:26 | → | nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 23:34:47 | × | Tops2 quits (~Tobias@dyndsl-095-033-089-034.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
| 23:35:00 | → | Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com) |
| 23:36:19 | × | leungbk quits (~user@2603-8000-f144-2028-88ca-9c13-d300-2ffb.res6.spectrum.com) (Quit: ERC (IRC client for Emacs 28.0.50)) |
| 23:36:26 | × | nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
| 23:36:46 | → | toxikos joins (uid438942@gateway/web/irccloud.com/x-wiojjvxxqjpnnnsa) |
| 23:36:58 | → | nineonine joins (~nineonine@50.216.62.2) |
| 23:37:13 | → | N3RGY joins (~N3RGY@2600:1700:65aa:90b0:6446:3ba0:c322:ad4c) |
| 23:38:39 | ← | toxikos parts (uid438942@gateway/web/irccloud.com/x-wiojjvxxqjpnnnsa) () |
| 23:38:48 | × | Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Client Quit) |
| 23:38:57 | × | o1lo01ol1o quits (~o1lo01ol1@89.214.139.246) (Remote host closed the connection) |
| 23:39:43 | → | o1lo01ol1o joins (~o1lo01ol1@89.214.139.246) |
| 23:40:01 | × | nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection) |
| 23:40:11 | → | nineonine joins (~nineonine@50.216.62.2) |
| 23:41:39 | <hololeap> | ok, so TemplateHaskell allows GHC to make network calls during a compile? |
| 23:42:50 | × | nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection) |
| 23:43:30 | → | nineonine joins (~nineonine@50.216.62.2) |
| 23:44:30 | × | o1lo01ol1o quits (~o1lo01ol1@89.214.139.246) (Ping timeout: 256 seconds) |
| 23:44:31 | <glguy> | With Template Haskell you're running an arbitrary program that generates some Haskell syntax. |
| 23:46:16 | → | nineonin_ joins (~nineonine@50.216.62.2) |
| 23:46:16 | × | nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection) |
| 23:46:43 | × | N3RGY quits (~N3RGY@2600:1700:65aa:90b0:6446:3ba0:c322:ad4c) (Ping timeout: 268 seconds) |
| 23:47:11 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8) (Quit: cosimone) |
| 23:48:53 | <hololeap> | gross :( |
| 23:49:06 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 272 seconds) |
| 23:49:26 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 23:49:33 | <glguy> | Yeah, it's a bad idea, so don't do it |
| 23:50:29 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 23:50:32 | <hololeap> | apparently elm does it, that's what ezzieyguywuf was asking about |
| 23:51:38 | <hololeap> | i looked into it and sure enough when compiling elm-compiler with GHC, it made a network call |
| 23:54:04 | × | UltimateNate quits (~UltimateN@s91904426.blix.com) (Remote host closed the connection) |
| 23:54:35 | × | wonko7 quits (~wonko7@2a01:e35:2ffb:7040:4535:f480:7dff:b3b5) (Ping timeout: 258 seconds) |
| 23:55:24 | → | jedws joins (~jedws@121.209.189.201) |
| 23:57:55 | × | son0p quits (~son0p@181.136.122.143) (Quit: leaving) |
| 23:58:21 | <monochrom> | The Q monad is a MonadIO. |
| 23:58:45 | → | N3RGY joins (~N3RGY@2600:1700:65aa:90b0:6446:3ba0:c322:ad4c) |
| 23:59:06 | <monochrom> | Since day one I already made a joke about launching a movie player when TH is compiling. |
| 23:59:23 | × | hexo quits (~hexo@gateway/tor-sasl/hexo) (Ping timeout: 240 seconds) |
All times are in UTC on 2020-12-22.