2020-11-24 00:02:28 +0100 | hiroaki | (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
2020-11-24 00:03:27 +0100 | darjeeling_ | (~darjeelin@122.245.219.209) (Ping timeout: 265 seconds) |
2020-11-24 00:04:28 +0100 | Lycurgus | (~niemand@98.4.114.74) (Quit: Exeunt) |
2020-11-24 00:04:44 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-11-24 00:05:11 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-24 00:06:23 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Ping timeout: 240 seconds) |
2020-11-24 00:08:00 +0100 | hackage | zeolite-lang 0.9.0.0 - Zeolite is a statically-typed, general-purpose programming language. https://hackage.haskell.org/package/zeolite-lang-0.9.0.0 (ta0kira) |
2020-11-24 00:08:08 +0100 | Kaeipi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Ping timeout: 256 seconds) |
2020-11-24 00:10:05 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
2020-11-24 00:10:17 +0100 | jneira | (02896ac0@gateway/web/cgi-irc/kiwiirc.com/ip.2.137.106.192) (Ping timeout: 260 seconds) |
2020-11-24 00:10:18 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2020-11-24 00:11:10 +0100 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2020-11-24 00:12:10 +0100 | frdg | (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) |
2020-11-24 00:12:13 +0100 | frdg | (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) () |
2020-11-24 00:15:18 +0100 | _linker_ | (~linker@2a02:a31a:a041:9a80:1550:ab25:bf6f:9a3a) (Remote host closed the connection) |
2020-11-24 00:15:37 +0100 | pavonia | (~user@unaffiliated/siracusa) |
2020-11-24 00:17:16 +0100 | mirrorbird | (~psutcliff@89.45.7.132) (Quit: Leaving) |
2020-11-24 00:17:17 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2020-11-24 00:17:48 +0100 | darjeeling_ | (~darjeelin@122.245.219.209) |
2020-11-24 00:19:23 +0100 | Tario | (~Tario@201.192.165.173) |
2020-11-24 00:19:31 +0100 | hackage | bitvec 1.1.0.0 - Space-efficient bit vectors https://hackage.haskell.org/package/bitvec-1.1.0.0 (Bodigrim) |
2020-11-24 00:19:38 +0100 | son0p | (~son0p@181.136.122.143) (Quit: Lost terminal) |
2020-11-24 00:21:39 +0100 | e2 | (e2@sponsored.by.bnc4you.xyz) |
2020-11-24 00:22:50 +0100 | terrorjack | (~terrorjac@static.23.111.201.195.clients.your-server.de) (Ping timeout: 264 seconds) |
2020-11-24 00:29:32 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2020-11-24 00:29:36 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-24 00:31:41 +0100 | rednaZ2 | (rednaZ2@freebnc.bnc4you.xyz) |
2020-11-24 00:33:13 +0100 | justan0theruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 264 seconds) |
2020-11-24 00:33:27 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-24 00:33:27 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-24 00:33:49 +0100 | cads | (~cads@ip-64-72-99-232.lasvegas.net) |
2020-11-24 00:34:08 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 00:36:38 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 00:36:38 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-24 00:37:26 +0100 | <sondr3> | I'm having some trouble with a parser I'm writing, I want it to parse a multiline string until it either reaches EOF or a specific text. I have been able to get one or the other but not a parser that does both |
2020-11-24 00:38:10 +0100 | <sondr3> | I got some help earlier and have `T.pack <$> someTill anySingle (lookAhead (string b) <|> string ("\n" <> b))`, but this fails if the string ends with EOF |
2020-11-24 00:38:24 +0100 | <sondr3> | And I've been looking at my code for too long now :P |
2020-11-24 00:38:27 +0100 | <sondr3> | ;;;;; |
2020-11-24 00:38:54 +0100 | <sondr3> | bah, sorry, getting used to Colemak and Moonlander at the same time |
2020-11-24 00:39:08 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 00:40:16 +0100 | <monochrom> | I would not use most parser combinator libraries for "anything at all except until this specific string" (unless that specific string is one single character) |
2020-11-24 00:40:48 +0100 | Kaeipi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2020-11-24 00:40:55 +0100 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Read error: Connection reset by peer) |
2020-11-24 00:42:13 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2020-11-24 00:43:09 +0100 | <monochrom> | A minority of parser combinator libraries feature non-determinism for ambiguous grammars, at the expense of speed. Those would be a good fit. |
2020-11-24 00:43:43 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
2020-11-24 00:46:50 +0100 | wonko7 | (~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) (Ping timeout: 264 seconds) |
2020-11-24 00:47:44 +0100 | vicfred_ | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2020-11-24 00:48:01 +0100 | <sondr3> | monochrom: do you happen to know hw |
2020-11-24 00:48:03 +0100 | justan0theruser | (~justanoth@unaffiliated/justanotheruser) |
2020-11-24 00:48:10 +0100 | cosimone | (~cosimone@5.170.241.60) (Quit: cosimone) |
2020-11-24 00:48:21 +0100 | <sondr3> | *how I'd get the rest of the input from megaparsec? |
2020-11-24 00:48:59 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-24 00:49:50 +0100 | <sondr3> | looks like I might be able to use getInput and friends |
2020-11-24 00:50:00 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Max SendQ exceeded) |
2020-11-24 00:50:31 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-24 00:50:40 +0100 | Chi1thangoo | (~Chi1thang@87.112.60.168) |
2020-11-24 00:50:53 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Read error: Connection reset by peer) |
2020-11-24 00:53:44 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
2020-11-24 00:54:18 +0100 | rednaZ2 | (rednaZ2@freebnc.bnc4you.xyz) (Quit: ZNC from ##bnc4you) |
2020-11-24 00:56:27 +0100 | redmp | (~redmp@mobile-166-137-178-102.mycingular.net) (Quit: leaving) |
2020-11-24 00:57:19 +0100 | <sm[m]> | hey friends.. what's the function f [a] that is equivalent to a <|> a <|> a <|> ... ? |
2020-11-24 00:58:20 +0100 | <hpc> | foldr1 (<|>)? |
2020-11-24 00:58:21 +0100 | <hpc> | ;) |
2020-11-24 00:58:44 +0100 | resolve | (~resolve@178.162.212.214) (Remote host closed the connection) |
2020-11-24 00:59:34 +0100 | terrorjack | (~terrorjac@static.23.111.201.195.clients.your-server.de) |
2020-11-24 00:59:38 +0100 | cosimone | (~cosimone@5.170.241.60) |
2020-11-24 01:00:34 +0100 | conal | (~conal@64.71.133.70) |
2020-11-24 01:01:00 +0100 | zargoertzel | (~zar@fw1.ciirc.cvut.cz) |
2020-11-24 01:01:28 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-24 01:02:36 +0100 | <sm[m]> | hpc: seems to work, thanks! :) |
2020-11-24 01:03:27 +0100 | TMA | (tma@twin.jikos.cz) (Ping timeout: 260 seconds) |
2020-11-24 01:03:35 +0100 | <dibblego> | asum1 ? |
2020-11-24 01:03:38 +0100 | dqd | (id@wikipedia/dqd) (Ping timeout: 260 seconds) |
2020-11-24 01:03:43 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-24 01:03:49 +0100 | dqd | (id@wikipedia/dqd) |
2020-11-24 01:03:52 +0100 | zariuq | (~zar@fw1.ciirc.cvut.cz) (Ping timeout: 265 seconds) |
2020-11-24 01:03:55 +0100 | <hpc> | you probably want to figure out what to do if the list is empty |
2020-11-24 01:03:57 +0100 | <dibblego> | https://hackage.haskell.org/package/semigroupoids-5.3.4/docs/Data-Semigroup-Foldable.html#v:asum1 |
2020-11-24 01:04:00 +0100 | Jajik5 | (xchlup2@gateway/shell/fi.muni.cz/x-vdbyvqtkyzprkqtm) |
2020-11-24 01:04:01 +0100 | xsarnik07 | (xsarnik@gateway/shell/fi.muni.cz/x-oexkuqwsplkbdfos) |
2020-11-24 01:04:13 +0100 | Jajik | (xchlup2@gateway/shell/fi.muni.cz/x-jfxvsfpdsqpqvolb) (Ping timeout: 260 seconds) |
2020-11-24 01:04:13 +0100 | xsarnik0 | (xsarnik@gateway/shell/fi.muni.cz/x-hqlptmwsqmanredt) (Ping timeout: 260 seconds) |
2020-11-24 01:04:13 +0100 | ziman | (~ziman@c25-5.condornet.sk) (Ping timeout: 260 seconds) |
2020-11-24 01:04:14 +0100 | Jajik5 | Jajik |
2020-11-24 01:04:14 +0100 | xsarnik07 | xsarnik0 |
2020-11-24 01:04:18 +0100 | xsarnik0 | (xsarnik@gateway/shell/fi.muni.cz/x-oexkuqwsplkbdfos) (Remote host closed the connection) |
2020-11-24 01:04:18 +0100 | Jajik | (xchlup2@gateway/shell/fi.muni.cz/x-vdbyvqtkyzprkqtm) (Remote host closed the connection) |
2020-11-24 01:04:57 +0100 | TMA | (tma@twin.jikos.cz) |
2020-11-24 01:05:21 +0100 | Sarma | (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds) |
2020-11-24 01:05:24 +0100 | ziman | (~ziman@c25-5.condornet.sk) |
2020-11-24 01:05:33 +0100 | <hpc> | oh wait, empty is in Alternative... |
2020-11-24 01:05:45 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 01:05:54 +0100 | hpc | has used up all his smart for the day |
2020-11-24 01:06:43 +0100 | christo | (~chris@81.96.113.213) |
2020-11-24 01:07:18 +0100 | frdg | (47b88ff9@pool-71-184-143-249.bstnma.fios.verizon.net) |
2020-11-24 01:08:00 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2020-11-24 01:09:01 +0100 | justan0theruser | justanotheruser |
2020-11-24 01:10:28 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2020-11-24 01:10:41 +0100 | frdg | (47b88ff9@pool-71-184-143-249.bstnma.fios.verizon.net) (Remote host closed the connection) |
2020-11-24 01:10:56 +0100 | christo | (~chris@81.96.113.213) (Ping timeout: 240 seconds) |
2020-11-24 01:13:52 +0100 | niko | (~niko@freenode/staff/ubuntu.member.niko) (Ping timeout: 615 seconds) |
2020-11-24 01:14:00 +0100 | <sm[m]> | I'm writing a shortest-path function, doing a breadth-first search of a directed graph. Man, I always struggle to put together these recursive searchy functions |
2020-11-24 01:14:43 +0100 | <sm[m]> | (replacing fgl's sp which isn't doing what I want) |
2020-11-24 01:15:15 +0100 | oisdk | (~oisdk@2001:bb6:3329:d100:188f:f126:4321:8fc1) |
2020-11-24 01:15:57 +0100 | <c_wraith> | is the graph cyclic? |
2020-11-24 01:16:16 +0100 | Kaeipi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Read error: No route to host) |
2020-11-24 01:16:25 +0100 | Kaeipi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2020-11-24 01:17:27 +0100 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Read error: Connection reset by peer) |
2020-11-24 01:18:27 +0100 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2020-11-24 01:18:34 +0100 | christo | (~chris@81.96.113.213) |
2020-11-24 01:19:14 +0100 | jaqque1 | (~jaqque@s91904426.blix.com) |
2020-11-24 01:20:57 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2020-11-24 01:21:23 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 01:23:46 +0100 | <sm[m]> | c_wraith: eh.. yes |
2020-11-24 01:25:44 +0100 | <sm[m]> | and thanks dibblego - that's the one I was looking for |
2020-11-24 01:26:02 +0100 | <sm[m]> | https://hackage.haskell.org/package/base-4.14.0.0/docs/Data-Foldable.html#v:asum |
2020-11-24 01:26:22 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds) |
2020-11-24 01:33:50 +0100 | Kaeipi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
2020-11-24 01:33:51 +0100 | mpereira | (~mpereira@2a02:810d:f40:d96:1ca0:7a83:5454:b1ba) (Ping timeout: 272 seconds) |
2020-11-24 01:34:02 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-24 01:34:11 +0100 | Jonkimi727406120 | (~Jonkimi@113.87.161.66) |
2020-11-24 01:34:24 +0100 | Kaeipi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2020-11-24 01:36:52 +0100 | ian-mi | (~ian_milli@2601:600:9c80:322d:fffc:f6e1:b33f:3002) (Ping timeout: 260 seconds) |
2020-11-24 01:37:26 +0100 | cosimone | (~cosimone@5.170.241.60) (Quit: cosimone) |
2020-11-24 01:38:22 +0100 | ian-mi | (~ian_milli@c-67-160-8-14.hsd1.wa.comcast.net) |
2020-11-24 01:39:18 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-11-24 01:39:36 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@iakosalt-94.nationalnet.com) |
2020-11-24 01:39:50 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 01:40:06 +0100 | xsarnik0 | (xsarnik@gateway/shell/fi.muni.cz/x-kphrwksnugmxbetf) |
2020-11-24 01:40:22 +0100 | thc202 | (~thc202@unaffiliated/thc202) (Ping timeout: 260 seconds) |
2020-11-24 01:41:38 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2020-11-24 01:42:42 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 256 seconds) |
2020-11-24 01:46:12 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2020-11-24 01:46:23 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds) |
2020-11-24 01:46:42 +0100 | theorbtwo | (~theorb@cpc81822-swin19-2-0-cust3.3-1.cable.virginm.net) |
2020-11-24 01:47:29 +0100 | Deide | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2020-11-24 01:49:04 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) |
2020-11-24 01:52:22 +0100 | niko | (~niko@freenode/staff/ubuntu.member.niko) |
2020-11-24 01:52:31 +0100 | xsarnik0 | (xsarnik@gateway/shell/fi.muni.cz/x-kphrwksnugmxbetf) (Quit: The Lounge - https://thelounge.chat) |
2020-11-24 01:55:53 +0100 | xsarnik0 | (xsarnik@gateway/shell/fi.muni.cz/x-bsiqubgdpcunmdtm) |
2020-11-24 01:55:56 +0100 | Jajik | (xchlup2@gateway/shell/fi.muni.cz/x-voulfkcwxssepppf) |
2020-11-24 02:01:44 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@171.5.161.165) |
2020-11-24 02:01:47 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 02:03:15 +0100 | mpereira | (~mpereira@2a02:810d:f40:d96:f587:a442:5e3:1e55) |
2020-11-24 02:04:17 +0100 | Achylles | (~Achylles@177.45.205.205) (Remote host closed the connection) |
2020-11-24 02:06:49 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
2020-11-24 02:07:50 +0100 | mpereira | (~mpereira@2a02:810d:f40:d96:f587:a442:5e3:1e55) (Ping timeout: 264 seconds) |
2020-11-24 02:08:55 +0100 | hekkaidekapus_ | hekkaidekapus |
2020-11-24 02:09:10 +0100 | <hekkaidekapus> | sondr3: Still around? |
2020-11-24 02:09:17 +0100 | <sondr3> | hekkaidekapus: yep |
2020-11-24 02:10:23 +0100 | <hekkaidekapus> | Check out this: <https://paste.tomsmeding.com/o2idJSR9> |
2020-11-24 02:11:07 +0100 | <hekkaidekapus> | The idea is to break down your big parser into small parsers. |
2020-11-24 02:12:04 +0100 | <sondr3> | oh vey, this looks exactly like what I was asking him about earlier, must've completely missed it |
2020-11-24 02:12:10 +0100 | <hekkaidekapus> | And try to be specific about what you want to parse, instead of a overly general `anySingle`. |
2020-11-24 02:12:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-24 02:13:07 +0100 | <hekkaidekapus> | I left `anySingle` in the example but that should really be replaced by something more fitting to your input. |
2020-11-24 02:14:26 +0100 | <hekkaidekapus> | By the way, the import declarations should give you enough indications of places where to go and read haddocks. |
2020-11-24 02:14:35 +0100 | <sondr3> | I've been learning that a lot the last few days, haha, I'm just not very experienced with FP and monadic parsing |
2020-11-24 02:15:13 +0100 | <sondr3> | Thanks a bunch for your example, I'll look at it in detail tomorrow when I'm more alive |
2020-11-24 02:15:22 +0100 | <hekkaidekapus> | np |
2020-11-24 02:15:39 +0100 | lambda-11235 | (~lambda-11@2600:1700:7c70:4600:6511:46eb:c421:ce43) (Ping timeout: 272 seconds) |
2020-11-24 02:15:43 +0100 | superstar64 | (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) () |
2020-11-24 02:16:57 +0100 | <sondr3> | Looks a lot better than the monstrosity I've cooked together now x) |
2020-11-24 02:20:23 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds) |
2020-11-24 02:24:10 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) |
2020-11-24 02:25:19 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-11-24 02:26:42 +0100 | sand_dull | (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) |
2020-11-24 02:29:56 +0100 | darjeeling_ | (~darjeelin@122.245.219.209) (Ping timeout: 240 seconds) |
2020-11-24 02:35:00 +0100 | Codaraxis_ | (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) |
2020-11-24 02:35:45 +0100 | Fractalis | (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) (Quit: Have a good one all, im out!) |
2020-11-24 02:36:36 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds) |
2020-11-24 02:36:56 +0100 | dftxbs3e | (~dftxbs3e@unaffiliated/dftxbs3e) |
2020-11-24 02:37:50 +0100 | Lord_of_Life | (~Lord@46.217.222.157) |
2020-11-24 02:39:01 +0100 | Codaraxis | (~Codaraxis@91.193.4.61) (Ping timeout: 256 seconds) |
2020-11-24 02:45:39 +0100 | LKoen | (~LKoen@169.244.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”) |
2020-11-24 02:46:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-11-24 02:50:03 +0100 | Sgeo | (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer) |
2020-11-24 02:52:09 +0100 | Sgeo | (~Sgeo@ool-18b982ad.dyn.optonline.net) |
2020-11-24 02:57:56 +0100 | sondr3 | (~sondr3@cm-84.211.56.132.getinternet.no) (Quit: Leaving) |
2020-11-24 02:57:57 +0100 | oisdk | (~oisdk@2001:bb6:3329:d100:188f:f126:4321:8fc1) (Quit: oisdk) |
2020-11-24 02:58:25 +0100 | m0rphism | (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) (Ping timeout: 240 seconds) |
2020-11-24 03:01:41 +0100 | wei2912 | (~wei2912@unaffiliated/wei2912) |
2020-11-24 03:01:58 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 03:02:30 +0100 | jedws | (~jedws@101.184.150.93) |
2020-11-24 03:06:55 +0100 | gxt_ | (~gxt@gateway/tor-sasl/gxt) |
2020-11-24 03:07:50 +0100 | electricityZZZZ | (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 03:08:16 +0100 | pie_ | (~pie_bnc]@unaffiliated/pie-/x-0787662) (Ping timeout: 240 seconds) |
2020-11-24 03:08:16 +0100 | vancz | (~vancz@unaffiliated/vancz) (Ping timeout: 240 seconds) |
2020-11-24 03:09:43 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds) |
2020-11-24 03:10:08 +0100 | <cads> | Is it correct to think about monoids and applicatives as just linear categories internal to category Hask itself? |
2020-11-24 03:11:04 +0100 | <cads> | Amd can we think of haskell type classes as kind of taking a total space that is hask, and fibering it down to these internal categories? |
2020-11-24 03:12:26 +0100 | pie_ | (~pie_bnc]@unaffiliated/pie-/x-0787662) |
2020-11-24 03:12:26 +0100 | vancz | (~vancz@unaffiliated/vancz) |
2020-11-24 03:12:33 +0100 | gentauro | (~gentauro@unaffiliated/gentauro) (Ping timeout: 260 seconds) |
2020-11-24 03:12:33 +0100 | tasuki | (~tasuki@198.211.120.27) (Ping timeout: 260 seconds) |
2020-11-24 03:13:03 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) |
2020-11-24 03:13:08 +0100 | lambdabot | (~lambdabot@haskell/bot/lambdabot) (Ping timeout: 260 seconds) |
2020-11-24 03:13:08 +0100 | RusAlex | (~Chel@unaffiliated/rusalex) (Ping timeout: 260 seconds) |
2020-11-24 03:14:23 +0100 | gentauro | (~gentauro@unaffiliated/gentauro) |
2020-11-24 03:14:29 +0100 | st8less | (~st8less@2603:a060:11fd:0:b95c:25ed:47d7:d69f) (Remote host closed the connection) |
2020-11-24 03:14:32 +0100 | tasuki | (~tasuki@198.211.120.27) |
2020-11-24 03:14:33 +0100 | lambdabot | (~lambdabot@silicon.int-e.eu) |
2020-11-24 03:14:33 +0100 | lambdabot | (~lambdabot@silicon.int-e.eu) (Changing host) |
2020-11-24 03:14:33 +0100 | lambdabot | (~lambdabot@haskell/bot/lambdabot) |
2020-11-24 03:14:46 +0100 | st8less | (~st8less@2603:a060:11fd:0:bcc7:6823:7a5:d42) |
2020-11-24 03:15:34 +0100 | RusAlex | (~Chel@unaffiliated/rusalex) |
2020-11-24 03:15:39 +0100 | <cads> | I guess the second question is really two question. i) is it a correct/effective process to take haskell and fiber it into type classes? ii) and can these fibers be related to categories and theories internal to hask |
2020-11-24 03:15:57 +0100 | <cads> | to take hask and fiber it* |
2020-11-24 03:17:43 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 272 seconds) |
2020-11-24 03:21:20 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-24 03:23:00 +0100 | hackage | aspell-pipe 0.6 - Pipe-based interface to the Aspell program https://hackage.haskell.org/package/aspell-pipe-0.6 (JonathanDaugherty) |
2020-11-24 03:26:18 +0100 | toorevitimirp | (~tooreviti@117.182.183.18) |
2020-11-24 03:26:33 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-11-24 03:27:04 +0100 | mpereira | (~mpereira@2a02:810d:f40:d96:f587:a442:5e3:1e55) |
2020-11-24 03:30:47 +0100 | conal | (~conal@64.71.133.70) |
2020-11-24 03:30:47 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-24 03:30:52 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) |
2020-11-24 03:31:01 +0100 | borne | (~fritjof@200116b864880200394a967dc8ef4e61.dip.versatel-1u1.de) (Ping timeout: 272 seconds) |
2020-11-24 03:31:39 +0100 | mpereira | (~mpereira@2a02:810d:f40:d96:f587:a442:5e3:1e55) (Ping timeout: 272 seconds) |
2020-11-24 03:34:50 +0100 | xff0x | (~fox@2001:1a81:5237:b800:aac7:5690:7e90:eba4) (Ping timeout: 264 seconds) |
2020-11-24 03:35:34 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 272 seconds) |
2020-11-24 03:36:19 +0100 | xff0x | (~fox@2001:1a81:526f:8600:829e:8d:48d6:9a13) |
2020-11-24 03:36:26 +0100 | conal | (~conal@64.71.133.70) |
2020-11-24 03:38:02 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-24 03:41:27 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2020-11-24 03:41:46 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
2020-11-24 03:41:52 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 03:44:36 +0100 | cads | (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 240 seconds) |
2020-11-24 03:45:48 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2020-11-24 03:46:48 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
2020-11-24 03:51:54 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 256 seconds) |
2020-11-24 03:52:22 +0100 | vollenweider_ | (~vollenwei@4e69b241.skybroadband.com) (Ping timeout: 246 seconds) |
2020-11-24 03:53:32 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-24 03:54:37 +0100 | gxt_ | gxt |
2020-11-24 03:58:02 +0100 | drbean | (~drbean@TC210-63-209-58.static.apol.com.tw) |
2020-11-24 04:11:58 +0100 | sand_dull | (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Quit: Reconnecting) |
2020-11-24 04:12:11 +0100 | sand_dull | (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) |
2020-11-24 04:14:24 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 04:15:45 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) |
2020-11-24 04:18:35 +0100 | urodna | (~urodna@unaffiliated/urodna) (Quit: urodna) |
2020-11-24 04:18:56 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
2020-11-24 04:19:56 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds) |
2020-11-24 04:20:05 +0100 | conal | (~conal@64.71.133.70) |
2020-11-24 04:20:53 +0100 | Saukk | (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) |
2020-11-24 04:23:45 +0100 | phaul | (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
2020-11-24 04:24:46 +0100 | phaul | (~phaul@ruby/staff/phaul) |
2020-11-24 04:25:54 +0100 | guest1124 | (~user@49.5.6.87) |
2020-11-24 04:26:09 +0100 | falafel_ | (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) |
2020-11-24 04:26:25 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@171.5.161.165) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-24 04:27:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-11-24 04:30:26 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-lkssxccumhdupnut) () |
2020-11-24 04:37:16 +0100 | Codaraxis__ | (Codaraxis@gateway/vpn/mullvad/codaraxis) |
2020-11-24 04:39:08 +0100 | cads | (~cads@ip-64-72-99-232.lasvegas.net) |
2020-11-24 04:40:08 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 256 seconds) |
2020-11-24 04:41:23 +0100 | Codaraxis_ | (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 260 seconds) |
2020-11-24 04:41:59 +0100 | lagothrix | (~lagothrix@unaffiliated/lagothrix) (Killed (orwell.freenode.net (Nickname regained by services))) |
2020-11-24 04:42:05 +0100 | lagothrix | (~lagothrix@unaffiliated/lagothrix) |
2020-11-24 04:42:34 +0100 | falafel_ | (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) (Remote host closed the connection) |
2020-11-24 04:43:40 +0100 | falafel_ | (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) |
2020-11-24 04:46:12 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 04:46:36 +0100 | theDon | (~td@94.134.91.120) (Ping timeout: 240 seconds) |
2020-11-24 04:47:53 +0100 | dolio | (~dolio@haskell/developer/dolio) (Quit: ZNC 1.8.2 - https://znc.in) |
2020-11-24 04:48:43 +0100 | theDon | (~td@muedsl-82-207-238-223.citykom.de) |
2020-11-24 04:50:57 +0100 | hidedagger | (~nate@unaffiliated/hidedagger) |
2020-11-24 04:51:08 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds) |
2020-11-24 04:51:19 +0100 | <MarcelineVQ> | good job, you who is reading this, great work today |
2020-11-24 04:52:04 +0100 | dolio | (~dolio@haskell/developer/dolio) |
2020-11-24 04:54:42 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-24 04:56:15 +0100 | <Axman6> | @hoogle (a -> a -> a) -> Maybe a -> Maybe a -> Maybe a |
2020-11-24 04:56:16 +0100 | <lambdabot> | Linear.Vector liftU2 :: Additive f => (a -> a -> a) -> f a -> f a -> f a |
2020-11-24 04:56:16 +0100 | <lambdabot> | Data.Geometry liftU2 :: Additive f => (a -> a -> a) -> f a -> f a -> f a |
2020-11-24 04:56:16 +0100 | <lambdabot> | Data.Geometry.Vector liftU2 :: Additive f => (a -> a -> a) -> f a -> f a -> f a |
2020-11-24 04:56:21 +0100 | hidedagger | (~nate@unaffiliated/hidedagger) (Quit: WeeChat 2.9) |
2020-11-24 04:56:27 +0100 | lambda-11235 | (~lambda-11@2600:1700:7c70:4600:34e8:32b9:5cc3:48e6) |
2020-11-24 04:57:00 +0100 | <MarcelineVQ> | liftA2 |
2020-11-24 04:57:46 +0100 | hexfive | (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Quit: i must go. my people need me.) |
2020-11-24 04:57:49 +0100 | <MarcelineVQ> | taller cousin of liftA1, aka fmap |
2020-11-24 04:59:32 +0100 | hexfive | (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) |
2020-11-24 04:59:53 +0100 | <Axman6> | except I'm after the alternative version |
2020-11-24 05:00:03 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-11-24 05:00:08 +0100 | <Axman6> | apply the function if both exist, give me the one if one exists |
2020-11-24 05:00:38 +0100 | falafel_ | (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) (Ping timeout: 264 seconds) |
2020-11-24 05:01:17 +0100 | <MarcelineVQ> | \f x y ->litftA2 f x y <|> x <|> y :> |
2020-11-24 05:01:25 +0100 | <Axman6> | yeah |
2020-11-24 05:02:06 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 05:07:03 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds) |
2020-11-24 05:07:23 +0100 | plutoniix | (~q@ppp-27-55-84-220.revip3.asianet.co.th) |
2020-11-24 05:08:59 +0100 | vg | (~vg@139.59.59.230) |
2020-11-24 05:09:14 +0100 | vg | TooDifficult |
2020-11-24 05:10:56 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 240 seconds) |
2020-11-24 05:11:37 +0100 | Iceland_jack | (~user@31.124.48.169) (Ping timeout: 264 seconds) |
2020-11-24 05:15:49 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-24 05:17:53 +0100 | <jackhill> | win 43 |
2020-11-24 05:19:30 +0100 | kaiwkx | (~user@116.236.159.130) |
2020-11-24 05:20:18 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds) |
2020-11-24 05:23:37 +0100 | s00pcan | (~chris@107.181.165.217) (Ping timeout: 264 seconds) |
2020-11-24 05:24:14 +0100 | conal | (~conal@64.71.133.70) |
2020-11-24 05:25:01 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-24 05:25:09 +0100 | s00pcan | (~chris@075-133-056-178.res.spectrum.com) |
2020-11-24 05:27:11 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2020-11-24 05:27:26 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-24 05:28:03 +0100 | mpereira | (~mpereira@2a02:810d:f40:d96:f587:a442:5e3:1e55) |
2020-11-24 05:29:04 +0100 | plutoniix | (~q@ppp-27-55-84-220.revip3.asianet.co.th) (Read error: Connection reset by peer) |
2020-11-24 05:29:10 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-24 05:35:27 +0100 | mpereira | (~mpereira@2a02:810d:f40:d96:f587:a442:5e3:1e55) (Ping timeout: 260 seconds) |
2020-11-24 05:37:19 +0100 | guest112` | (~user@49.5.6.87) |
2020-11-24 05:37:39 +0100 | Sgeo_ | (~Sgeo@ool-18b982ad.dyn.optonline.net) |
2020-11-24 05:38:15 +0100 | GuerrillaMonkey | (~Jeanne-Ka@iakosalt-94.nationalnet.com) |
2020-11-24 05:38:53 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@iakosalt-94.nationalnet.com) (Remote host closed the connection) |
2020-11-24 05:38:53 +0100 | guest1124 | (~user@49.5.6.87) (Read error: Connection reset by peer) |
2020-11-24 05:38:53 +0100 | zargoertzel | (~zar@fw1.ciirc.cvut.cz) (Read error: Connection reset by peer) |
2020-11-24 05:38:53 +0100 | zargoertzel | (~zar@fw1.ciirc.cvut.cz) |
2020-11-24 05:40:36 +0100 | Sgeo | (~Sgeo@ool-18b982ad.dyn.optonline.net) (Ping timeout: 240 seconds) |
2020-11-24 05:40:36 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2020-11-24 05:41:46 +0100 | plutoniix | (~q@ppp-124-121-237-69.revip2.asianet.co.th) |
2020-11-24 05:42:35 +0100 | texasmynsted | (~texasmyns@212.102.45.103) (Remote host closed the connection) |
2020-11-24 05:44:27 +0100 | TooDifficult | (~vg@139.59.59.230) (Quit: TooDifficult) |
2020-11-24 05:44:43 +0100 | TooDifficult | (~vg@139.59.59.230) |
2020-11-24 05:44:48 +0100 | phaul | (~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds) |
2020-11-24 05:44:56 +0100 | TooDifficult | (~vg@139.59.59.230) (Client Quit) |
2020-11-24 05:45:12 +0100 | TooDifficult | (~vg@139.59.59.230) |
2020-11-24 05:49:02 +0100 | jlamothe | (~jlamothe@198.251.55.207) (Ping timeout: 265 seconds) |
2020-11-24 05:49:19 +0100 | Guest10117 | (~vollenwei@4e69b241.skybroadband.com) |
2020-11-24 05:50:42 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 05:55:25 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds) |
2020-11-24 05:55:36 +0100 | conal | (~conal@64.71.133.70) |
2020-11-24 05:55:41 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-24 05:59:34 +0100 | benjamingr__ | (uid23465@gateway/web/irccloud.com/x-fmpqsizgoykkkpyq) (Quit: Connection closed for inactivity) |
2020-11-24 06:01:09 +0100 | dftxbs3e_ | (~dftxbs3e@unaffiliated/dftxbs3e) |
2020-11-24 06:03:28 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-11-24 06:03:56 +0100 | dftxbs3e | (~dftxbs3e@unaffiliated/dftxbs3e) (Ping timeout: 256 seconds) |
2020-11-24 06:04:28 +0100 | Codaraxis_ | (Codaraxis@gateway/vpn/mullvad/codaraxis) |
2020-11-24 06:06:52 +0100 | texasmynsted | (~texasmyns@212.102.45.103) |
2020-11-24 06:07:16 +0100 | phaul | (~phaul@ruby/staff/phaul) |
2020-11-24 06:08:05 +0100 | pie_ | (~pie_bnc]@unaffiliated/pie-/x-0787662) (Ping timeout: 272 seconds) |
2020-11-24 06:08:05 +0100 | vancz | (~vancz@unaffiliated/vancz) (Ping timeout: 272 seconds) |
2020-11-24 06:08:12 +0100 | Codaraxis__ | (Codaraxis@gateway/vpn/mullvad/codaraxis) (Ping timeout: 272 seconds) |
2020-11-24 06:09:01 +0100 | dftxbs3e_ | (~dftxbs3e@unaffiliated/dftxbs3e) (Quit: Leaving) |
2020-11-24 06:09:12 +0100 | dftxbs3e | (~dftxbs3e@unaffiliated/dftxbs3e) |
2020-11-24 06:10:30 +0100 | hackage | formatn 0.0.1 - Number text formatting. https://hackage.haskell.org/package/formatn-0.0.1 (tonyday567) |
2020-11-24 06:10:43 +0100 | xintron3 | (~xintron@unaffiliated/xintron) |
2020-11-24 06:12:23 +0100 | xintron | (~xintron@unaffiliated/xintron) (Ping timeout: 260 seconds) |
2020-11-24 06:12:23 +0100 | xintron3 | xintron |
2020-11-24 06:14:52 +0100 | pie_ | (~pie_bnc]@unaffiliated/pie-/x-0787662) |
2020-11-24 06:14:52 +0100 | vancz | (~vancz@unaffiliated/vancz) |
2020-11-24 06:16:19 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) |
2020-11-24 06:17:15 +0100 | texasmynsted | (~texasmyns@212.102.45.103) (Remote host closed the connection) |
2020-11-24 06:19:29 +0100 | elliott__ | (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 265 seconds) |
2020-11-24 06:20:07 +0100 | supercoven | (~Supercove@dsl-hkibng31-54fae6-106.dhcp.inet.fi) |
2020-11-24 06:20:08 +0100 | supercoven | (~Supercove@dsl-hkibng31-54fae6-106.dhcp.inet.fi) (Max SendQ exceeded) |
2020-11-24 06:20:23 +0100 | supercoven | (~Supercove@dsl-hkibng31-54fae6-106.dhcp.inet.fi) |
2020-11-24 06:20:25 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds) |
2020-11-24 06:23:00 +0100 | hackage | readme-lhs 0.8.0 - Literate programming support. https://hackage.haskell.org/package/readme-lhs-0.8.0 (tonyday567) |
2020-11-24 06:25:34 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 06:30:07 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
2020-11-24 06:30:32 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-24 06:32:20 +0100 | Sarma | (~Amras@unaffiliated/amras0000) |
2020-11-24 06:32:31 +0100 | plutoniix | (~q@ppp-124-121-237-69.revip2.asianet.co.th) (Remote host closed the connection) |
2020-11-24 06:33:38 +0100 | Saukk | (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection) |
2020-11-24 06:33:56 +0100 | Jonkimi727406120 | (~Jonkimi@113.87.161.66) (Ping timeout: 240 seconds) |
2020-11-24 06:35:01 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 06:35:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-11-24 06:38:04 +0100 | dansho | (~dansho@ip68-108-167-185.lv.lv.cox.net) |
2020-11-24 06:41:33 +0100 | cads | (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 256 seconds) |
2020-11-24 06:42:01 +0100 | hackage | box 0.6.1 - boxes https://hackage.haskell.org/package/box-0.6.1 (tonyday567) |
2020-11-24 06:43:48 +0100 | alp | (~alp@2a01:e0a:58b:4920:dab:f84b:5532:a13c) |
2020-11-24 06:43:50 +0100 | reallymemorable | (~quassel@2601:180:8300:8fd0:6c3d:6186:76f:e94b) (Ping timeout: 264 seconds) |
2020-11-24 06:46:28 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-24 06:47:41 +0100 | yube | (~yube@95.76.1.139) |
2020-11-24 06:48:00 +0100 | yube | (~yube@95.76.1.139) (Client Quit) |
2020-11-24 06:49:01 +0100 | Codaraxis_ | (Codaraxis@gateway/vpn/mullvad/codaraxis) (Read error: Connection reset by peer) |
2020-11-24 06:49:44 +0100 | Codaraxis | (~Codaraxis@91.193.4.10) |
2020-11-24 06:50:27 +0100 | TooDifficult | (~vg@139.59.59.230) (Quit: TooDifficult) |
2020-11-24 06:50:29 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 06:50:43 +0100 | TooDifficult | (~vg@139.59.59.230) |
2020-11-24 06:51:03 +0100 | TooDifficult | (~vg@139.59.59.230) (Client Quit) |
2020-11-24 06:51:22 +0100 | TooDifficult | (~vg@139.59.59.230) |
2020-11-24 06:55:23 +0100 | sand_dull | (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 260 seconds) |
2020-11-24 06:55:42 +0100 | Jonkimi727406120 | (~Jonkimi@113.87.161.66) |
2020-11-24 06:58:22 +0100 | n0042 | (d055ed89@208.85.237.137) |
2020-11-24 06:59:41 +0100 | dansho | (~dansho@ip68-108-167-185.lv.lv.cox.net) (Quit: Leaving) |
2020-11-24 06:59:49 +0100 | n0042 | (d055ed89@208.85.237.137) (Remote host closed the connection) |
2020-11-24 07:00:07 +0100 | dansho | (~dansho@ec2-52-194-192-222.ap-northeast-1.compute.amazonaws.com) |
2020-11-24 07:11:00 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-24 07:11:43 +0100 | TooDifficult | (~vg@139.59.59.230) (Quit: TooDifficult) |
2020-11-24 07:11:58 +0100 | maksio | (~user@185.246.204.46) |
2020-11-24 07:11:58 +0100 | TooDifficult | (~vg@139.59.59.230) |
2020-11-24 07:12:13 +0100 | TooDifficult | (~vg@139.59.59.230) (Client Quit) |
2020-11-24 07:12:27 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-24 07:12:30 +0100 | TooDifficult | (~vg@139.59.59.230) |
2020-11-24 07:14:30 +0100 | hackage | box-csv 0.0.3 - See readme.md https://hackage.haskell.org/package/box-csv-0.0.3 (tonyday567) |
2020-11-24 07:15:12 +0100 | maksio | (~user@185.246.204.46) (Client Quit) |
2020-11-24 07:15:40 +0100 | michalz | (~user@185.246.204.59) |
2020-11-24 07:16:48 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2020-11-24 07:17:01 +0100 | hackage | box-socket 0.1.1 - See readme.md https://hackage.haskell.org/package/box-socket-0.1.1 (tonyday567) |
2020-11-24 07:17:43 +0100 | TooDifficult | (~vg@139.59.59.230) (Quit: TooDifficult) |
2020-11-24 07:17:57 +0100 | TooDifficult | (~vg@139.59.59.230) |
2020-11-24 07:18:14 +0100 | TooDifficult | (~vg@139.59.59.230) (Client Quit) |
2020-11-24 07:18:31 +0100 | TooDifficult | (~vg@139.59.59.230) |
2020-11-24 07:20:33 +0100 | michalz | (~user@185.246.204.59) () |
2020-11-24 07:21:02 +0100 | jaqque1 | (~jaqque@s91904426.blix.com) (Remote host closed the connection) |
2020-11-24 07:23:43 +0100 | TooDifficult | (~vg@139.59.59.230) (Quit: TooDifficult) |
2020-11-24 07:24:01 +0100 | TooDifficult | (~vg@139.59.59.230) |
2020-11-24 07:24:20 +0100 | TooDifficult | (~vg@139.59.59.230) (Client Quit) |
2020-11-24 07:24:58 +0100 | vg | (~vg@139.59.59.230) |
2020-11-24 07:25:22 +0100 | vg | (~vg@139.59.59.230) (Client Quit) |
2020-11-24 07:25:36 +0100 | vg | (~vg@139.59.59.230) |
2020-11-24 07:25:52 +0100 | vg | (~vg@139.59.59.230) (Client Quit) |
2020-11-24 07:32:17 +0100 | mpereira | (~mpereira@2a02:810d:f40:d96:f587:a442:5e3:1e55) |
2020-11-24 07:36:52 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 272 seconds) |
2020-11-24 07:37:23 +0100 | mpereira | (~mpereira@2a02:810d:f40:d96:f587:a442:5e3:1e55) (Ping timeout: 272 seconds) |
2020-11-24 07:41:11 +0100 | alp | (~alp@2a01:e0a:58b:4920:dab:f84b:5532:a13c) (Ping timeout: 272 seconds) |
2020-11-24 07:43:37 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2020-11-24 07:44:19 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) |
2020-11-24 07:45:26 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-11-24 07:48:25 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds) |
2020-11-24 07:48:57 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-24 07:49:41 +0100 | christo | (~chris@81.96.113.213) |
2020-11-24 07:54:18 +0100 | christo | (~chris@81.96.113.213) (Ping timeout: 260 seconds) |
2020-11-24 07:55:30 +0100 | SanchayanMaity | (~Sanchayan@171.76.82.54) |
2020-11-24 07:56:28 +0100 | GuerrillaMonkey | (~Jeanne-Ka@iakosalt-94.nationalnet.com) (Remote host closed the connection) |
2020-11-24 08:01:25 +0100 | Cthalupa | (~cthulhu@47.186.47.75) (Ping timeout: 264 seconds) |
2020-11-24 08:01:59 +0100 | Lord_of_Life | (~Lord@46.217.222.157) (Changing host) |
2020-11-24 08:01:59 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2020-11-24 08:02:38 +0100 | Cthalupa | (~cthulhu@47.186.47.75) |
2020-11-24 08:03:28 +0100 | jespada | (~jespada@90.254.245.49) (Ping timeout: 260 seconds) |
2020-11-24 08:05:52 +0100 | jespada | (~jespada@90.254.245.49) |
2020-11-24 08:07:13 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 08:07:38 +0100 | kaiwkx | (~user@116.236.159.130) (Read error: Connection reset by peer) |
2020-11-24 08:07:54 +0100 | Kaeipi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
2020-11-24 08:10:25 +0100 | Rudd0 | (~Rudd0@185.189.115.103) (Ping timeout: 240 seconds) |
2020-11-24 08:11:56 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
2020-11-24 08:13:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-24 08:17:10 +0100 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2020-11-24 08:17:35 +0100 | gzj | (~gzj@unaffiliated/gzj) |
2020-11-24 08:17:56 +0100 | andos | (~dan@69-165-210-185.cable.teksavvy.com) (Ping timeout: 260 seconds) |
2020-11-24 08:18:14 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-11-24 08:18:26 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2020-11-24 08:20:32 +0100 | gzj | (~gzj@unaffiliated/gzj) (Quit: Leaving) |
2020-11-24 08:21:31 +0100 | revprez_stg | (~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 246 seconds) |
2020-11-24 08:22:33 +0100 | revprez_stg | (~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net) |
2020-11-24 08:23:23 +0100 | ChaiTRex | (~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds) |
2020-11-24 08:23:44 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 08:25:44 +0100 | ChaiTRex | (~ChaiTRex@gateway/tor-sasl/chaitrex) |
2020-11-24 08:25:53 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2020-11-24 08:28:16 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
2020-11-24 08:29:45 +0100 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
2020-11-24 08:30:15 +0100 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2020-11-24 08:31:01 +0100 | Tario | (~Tario@201.192.165.173) |
2020-11-24 08:33:59 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
2020-11-24 08:36:16 +0100 | coot | (~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) |
2020-11-24 08:38:51 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
2020-11-24 08:38:59 +0100 | dhouthoo | (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) |
2020-11-24 08:49:42 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2020-11-24 08:50:03 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-24 08:52:13 +0100 | <dminuoso> | % f (1|2) = 1 |
2020-11-24 08:52:13 +0100 | <yahb> | dminuoso: ; <interactive>:54:6: error: parse error on input `2' |
2020-11-24 08:52:13 +0100 | Varis | (~Tadas@unaffiliated/varis) (Read error: Connection reset by peer) |
2020-11-24 08:52:22 +0100 | <dminuoso> | Is this type of choice pattern enabled by some extension? |
2020-11-24 08:52:25 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 240 seconds) |
2020-11-24 08:52:34 +0100 | <dminuoso> | https://hackage.haskell.org/package/haskell-src-exts-1.23.1/docs/Language-Haskell-Exts-Syntax.html… suggests its existence |
2020-11-24 08:53:07 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@mx-ll-171.5.161-165.dynamic.3bb.co.th) |
2020-11-24 08:54:24 +0100 | <dminuoso> | Oh. |
2020-11-24 08:54:28 +0100 | <dminuoso> | % :set -XRegularPatterns |
2020-11-24 08:54:29 +0100 | <yahb> | dminuoso: Some flags have not been recognized: -XRegularPatterns |
2020-11-24 08:55:34 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) |
2020-11-24 08:55:37 +0100 | <dminuoso> | Mmm what is this |
2020-11-24 08:56:50 +0100 | <dminuoso> | Strange, so cabal seems to know about it but GHC does not |
2020-11-24 08:57:30 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 08:58:23 +0100 | Suntop1 | (~Suntop@193.56.252.12) |
2020-11-24 09:00:51 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2020-11-24 09:00:59 +0100 | Ariakenom | (~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se) |
2020-11-24 09:02:13 +0100 | cads | (~cads@ip-64-72-99-232.lasvegas.net) |
2020-11-24 09:02:16 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2020-11-24 09:03:32 +0100 | kish` | (~oracle@unaffiliated/oracle) |
2020-11-24 09:03:55 +0100 | sh9 | (~sh9@softbank060116136158.bbtec.net) |
2020-11-24 09:04:10 +0100 | <merijn> | Maybe some obscure old compiler :p |
2020-11-24 09:04:48 +0100 | alp | (~alp@2a01:e0a:58b:4920:ecb1:790b:d951:73b0) |
2020-11-24 09:04:52 +0100 | <merijn> | dminuoso: https://mail.haskell.org/pipermail/haskell/2004-February/013720.html |
2020-11-24 09:05:18 +0100 | <xerox_> | what is the policy for personal projects on gitlab.haskell.org? |
2020-11-24 09:05:44 +0100 | <dminuoso> | xerox_: Id venture this is best asked in #ghc or the GHC mailing list as the responsible people for that gitlab are there |
2020-11-24 09:05:56 +0100 | <xerox_> | aye aye |
2020-11-24 09:06:48 +0100 | <dminuoso> | merijn: Heh yeah seems that way. I also found a publication, but nothing so far in the GHC code.. |
2020-11-24 09:06:59 +0100 | <dminuoso> | At any rate, I have somethingy you're gonna *love* |
2020-11-24 09:07:16 +0100 | <xerox_> | *presents puppy* |
2020-11-24 09:07:23 +0100 | <dminuoso> | merijn: https://github.com/DaveGamble/cJSON/blob/master/cJSON.h#L162 |
2020-11-24 09:07:30 +0100 | <dminuoso> | You should be able to appreciate that one |
2020-11-24 09:07:31 +0100 | wonko7 | (~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) |
2020-11-24 09:07:43 +0100 | pie_ | (~pie_bnc]@unaffiliated/pie-/x-0787662) (Ping timeout: 246 seconds) |
2020-11-24 09:07:43 +0100 | vancz | (~vancz@unaffiliated/vancz) (Ping timeout: 246 seconds) |
2020-11-24 09:08:37 +0100 | benjamingr__ | (uid23465@gateway/web/irccloud.com/x-ymoheyyesupwsnta) |
2020-11-24 09:10:56 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2020-11-24 09:11:33 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 09:12:38 +0100 | vancz | (~vancz@unaffiliated/vancz) |
2020-11-24 09:12:40 +0100 | LeD | (5fa448e7@95.164.72.231) |
2020-11-24 09:12:43 +0100 | pie_ | (~pie_bnc]@unaffiliated/pie-/x-0787662) |
2020-11-24 09:14:48 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds) |
2020-11-24 09:16:05 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
2020-11-24 09:18:12 +0100 | <merijn> | dminuoso: I think I just linked that to my brother :p |
2020-11-24 09:19:03 +0100 | <dminuoso> | merijn: Did you also see the related issue? |
2020-11-24 09:19:09 +0100 | <dminuoso> | Or try and git blame that? |
2020-11-24 09:19:30 +0100 | <merijn> | No, because I already have enough things to be depressed about |
2020-11-24 09:19:46 +0100 | <dminuoso> | https://github.com/DaveGamble/cJSON/issues/255 https://github.com/DaveGamble/cJSON/commit/65541b900c740e1d527cd4f1935eec3740d4d95a |
2020-11-24 09:19:50 +0100 | <dminuoso> | It'll make you happy! |
2020-11-24 09:20:19 +0100 | <dminuoso> | It's not even just poor reasons. It's a plain "I cant say why" |
2020-11-24 09:21:41 +0100 | <dminuoso> | "because of inaccuracies when reserving memory" memory allocates are usually fuzzy! |
2020-11-24 09:21:56 +0100 | <dminuoso> | Maybe malloc should take a float :> |
2020-11-24 09:22:04 +0100 | chele | (~chele@91.65.110.162) |
2020-11-24 09:22:52 +0100 | n0042 | (d055ed89@208.85.237.137) |
2020-11-24 09:24:22 +0100 | caecilius | (~caecilius@pool-108-46-151-95.nycmny.fios.verizon.net) |
2020-11-24 09:24:44 +0100 | <n0042> | Hello fellow Haskellians, Haskellites, Haskellers, and users of Haskell in general. I am interested in reading some articles on writing highly optimized Haskell, if anyone has any they are fond of. |
2020-11-24 09:26:16 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 09:26:19 +0100 | <dminuoso> | https://downloads.haskell.org/ghc/latest/docs/html/users_guide/sooner.html |
2020-11-24 09:26:23 +0100 | <n0042> | I am currently taking a class that is designed for people using imperative languages (in particular C++ and Java), but they offer the option of using Haskell, and I'm having trouble getting it to meet the time and space requirements. I know it's possible, or they wouldn't offer the option. I'd like to read up on tips and tricks to write Haskell in |
2020-11-24 09:26:23 +0100 | <n0042> | a very time/space-conscious way |
2020-11-24 09:26:32 +0100 | <dminuoso> | https://downloads.haskell.org/ghc/latest/docs/html/users_guide/profiling.html#profiling |
2020-11-24 09:26:53 +0100 | <n0042> | Thank you friend. I'll start there. |
2020-11-24 09:27:14 +0100 | <merijn> | dminuoso: You forgot the all important "+RTS -sstderr" |
2020-11-24 09:27:34 +0100 | <merijn> | n0042: Compile with -rtsopts and run with "+RTS -sstderr" to get GC diagnostics |
2020-11-24 09:27:57 +0100 | plutoniix | (~q@ppp-124-121-237-69.revip2.asianet.co.th) |
2020-11-24 09:28:14 +0100 | Boomerang | (~Boomerang@xd520f68c.cust.hiper.dk) |
2020-11-24 09:28:31 +0100 | ubert | (~Thunderbi@p200300ecdf1e539ce6b318fffe838f33.dip0.t-ipconnect.de) |
2020-11-24 09:28:32 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-24 09:29:22 +0100 | <dminuoso> | n0042: Writing efficient Haskell is usually a mixture of ensuring inlining/specialization/fusion occurs, identifying sharing opportunities, chosing the right data structures ([] vs Vector), etc |
2020-11-24 09:29:39 +0100 | <dminuoso> | And controlling strictness |
2020-11-24 09:29:54 +0100 | aloiscochard[m] | (aloiscocha@gateway/shell/matrix.org/x-lbvqcwwuqmskblks) |
2020-11-24 09:30:24 +0100 | <dminuoso> | But the above articles are a good starting point |
2020-11-24 09:30:24 +0100 | <n0042> | The way the class works means I know which flags will be used to compile the code I turn in (ghc -O), but beyond that it's all down to how I choose to write it. Those are the kinds of tips I need, for sure. |
2020-11-24 09:30:36 +0100 | <n0042> | I'll read those articles and look into more Data structure types. Thank you. |
2020-11-24 09:30:41 +0100 | mpereira | (~mpereira@2a02:810d:f40:d96:f587:a442:5e3:1e55) |
2020-11-24 09:30:46 +0100 | <dminuoso> | The class will compile your code with `ghc -O`? |
2020-11-24 09:30:51 +0100 | <n0042> | yessir |
2020-11-24 09:31:13 +0100 | <aloiscochard[m]> | hey there, I'm wondering if there is vim/emacs users that are still using codex? of if everyone moved to the LSP stuff? |
2020-11-24 09:31:25 +0100 | <dminuoso> | aloiscochard[m]: Most IDE efforts have moved to LSP stuff. |
2020-11-24 09:31:50 +0100 | Yumasi | (~guillaume@2a01cb09b06b29ea1c5ab82b3b485150.ipv6.abo.wanadoo.fr) |
2020-11-24 09:31:50 +0100 | <dminuoso> | n0042: should be fine then. |
2020-11-24 09:32:15 +0100 | acagastya | (~acagastya@wikinews/acagastya) |
2020-11-24 09:32:39 +0100 | Sgeo_ | (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer) |
2020-11-24 09:32:43 +0100 | <dminuoso> | n0042: Out of curiosity, is this some high performance task, or are you just struggling with basic performance compared to off-the-mill Java/C++? |
2020-11-24 09:33:41 +0100 | <acagastya> | Hi, I was trying out how to write the finobacci function in haskell, <https://0x0.st/iRe7.hs> but I am getting stack overflow for `fib 2`. I don't understand why. |
2020-11-24 09:34:12 +0100 | <merijn> | acagastya: You're infinite looping |
2020-11-24 09:34:16 +0100 | <dminuoso> | acagastya: Spaces dont affect associativity |
2020-11-24 09:34:19 +0100 | <merijn> | acagastya: fib n calls "fib n" |
2020-11-24 09:34:20 +0100 | <dminuoso> | Use parens |
2020-11-24 09:34:36 +0100 | <merijn> | acagastya: You're not calling "fib (n-1)" |
2020-11-24 09:35:41 +0100 | <n0042> | dminuoso: It's a Data Structures and Algorithms class, and the goal for most of the assignments is to force you to use the right data structure in a really time/space-conscious way. I'm having a little trouble translating the solutions I'd have chosen in C into idiomatic and performant Haskell |
2020-11-24 09:35:54 +0100 | <acagastya> | All right. So, what I wrote was actually evaluating `-3 + 2 * fib n`, right? |
2020-11-24 09:35:55 +0100 | eyenx | (~eyenxeyen@unaffiliated/eye/x-1653358) (Quit: Bridge terminating on SIGTERM) |
2020-11-24 09:35:57 +0100 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) |
2020-11-24 09:36:12 +0100 | <dminuoso> | n0042: I see, so that can be a bit more tricky. |
2020-11-24 09:36:16 +0100 | <acagastya> | (Thanks, merijn, dminuoso.) |
2020-11-24 09:36:16 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 09:36:21 +0100 | eyenx | (~eyenxeyen@unaffiliated/eye/x-1653358) |
2020-11-24 09:36:51 +0100 | <dminuoso> | n0042: Algorithms are usually implemented differently in a pure functional setting, so naive approaches tend to perform poorly. |
2020-11-24 09:36:51 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-24 09:37:08 +0100 | <dminuoso> | n0042: What kind of algorithms are these? |
2020-11-24 09:37:28 +0100 | <merijn> | acagastya: well, no more like "how do I compute 'fib 5'? well, first I compute 'fib 5'. How do I compute 'fib 5'? repeat" :p |
2020-11-24 09:38:33 +0100 | <n0042> | Well an example of one I am having trouble getting under the time requirement is a network packet simulation. All input and output has to be done during runtime (no command line arguments). It inputs the number of packets, the size of the "buffer", and the arrival time and time-to-process for each packet, and you have to calculate the time at |
2020-11-24 09:38:34 +0100 | <n0042> | which each packet will begin processing |
2020-11-24 09:38:34 +0100 | <acagastya> | I don't know why I was under the impression `fib n-1` will first compute `n-1` and then call `fib`. |
2020-11-24 09:39:01 +0100 | <n0042> | My solution is just a smidge too slow, even with the extra time they allot for using Haskell instead of C. It's close though. I just need to learn more about optimizing Haskell code. |
2020-11-24 09:39:12 +0100 | <merijn> | acagastya: Simple rule to remember is that function application *always* binds tighter than operators |
2020-11-24 09:39:29 +0100 | <xerox_> | acagastya: fib $ n-1 does |
2020-11-24 09:39:31 +0100 | <merijn> | n0042: Are you doing something naive like using a list like an array? |
2020-11-24 09:39:37 +0100 | <dminuoso> | n0042: Out of curiosity, can you share your code? Perhaps we could give you some rough hints and pointers. |
2020-11-24 09:39:57 +0100 | <dminuoso> | Want to stress that I dont intend to spoonfeed, but perhaps nudging you in the right direction is easier then |
2020-11-24 09:40:15 +0100 | <merijn> | dminuoso: Like seeing if there's any lists/String anywhere ;) |
2020-11-24 09:40:19 +0100 | <dminuoso> | ;) |
2020-11-24 09:40:27 +0100 | Boomerang | (~Boomerang@xd520f68c.cust.hiper.dk) (Remote host closed the connection) |
2020-11-24 09:40:29 +0100 | lambda-11235 | (~lambda-11@2600:1700:7c70:4600:34e8:32b9:5cc3:48e6) (Quit: Bye) |
2020-11-24 09:40:36 +0100 | <n0042> | Actually I implemented an array inside a data structure that keeps track of the read/write head, as a Queue, but I'm sure I made the rest of the function too inefficient. I used lists for processing input/output and for some intermediate steps |
2020-11-24 09:40:47 +0100 | Boomerang | (~Boomerang@xd520f68c.cust.hiper.dk) |
2020-11-24 09:40:52 +0100 | <merijn> | n0042: Ah! How di you implement you array? |
2020-11-24 09:40:59 +0100 | <n0042> | Using lists elsewhere probably defeated the purpose of using an array. |
2020-11-24 09:41:05 +0100 | <dminuoso> | When you say "array" |
2020-11-24 09:41:07 +0100 | <dminuoso> | what do you mean exactly? |
2020-11-24 09:41:11 +0100 | <n0042> | I hesitate to share the code as the class is still in progress |
2020-11-24 09:41:16 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 09:41:33 +0100 | <n0042> | like: `listArray (0,3) (replicate 4 0)` kind of array. |
2020-11-24 09:41:33 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-24 09:41:43 +0100 | <n0042> | which I then just treated like something I could read-write to at will |
2020-11-24 09:41:49 +0100 | <merijn> | ah |
2020-11-24 09:41:55 +0100 | <merijn> | ok, for reading that's fine |
2020-11-24 09:42:02 +0100 | <merijn> | for writing...it depends |
2020-11-24 09:42:57 +0100 | <n0042> | When you write to it with the `//` it must create a new array, right? Is that "expensive"? |
2020-11-24 09:43:22 +0100 | <merijn> | It has to copy the entire thing. For an array of 4 elements that's probably not so bad, but not ideal |
2020-11-24 09:43:34 +0100 | <n0042> | Can be up to 10^5, so that's probably my error |
2020-11-24 09:44:00 +0100 | <dminuoso> | n0042: Run it through the profiler |
2020-11-24 09:44:00 +0100 | <n0042> | It passes all the tests until the last one, which is a buffer size of 10^5 processing 10^5 "packets" |
2020-11-24 09:44:05 +0100 | <merijn> | n0042: oof, yes |
2020-11-24 09:44:25 +0100 | <dminuoso> | n0042: Because its very likely it could have told you already :) |
2020-11-24 09:44:38 +0100 | <merijn> | n0042: Incidentally, the vector package has proper mutable arrays inside, if you only need 1 dimensional arrays |
2020-11-24 09:44:55 +0100 | <n0042> | Excellent. Profiling and Vectors seem like good places to start |
2020-11-24 09:45:00 +0100 | <n0042> | Thank you all very much |
2020-11-24 09:45:43 +0100 | <merijn> | But yeah, profile :p |
2020-11-24 09:45:44 +0100 | <merijn> | oh |
2020-11-24 09:45:50 +0100 | <merijn> | dminuoso: You forgot the most important thing |
2020-11-24 09:46:15 +0100 | <merijn> | n0042: If you're using GHC 8.10, lemme mention out performance lord & saviour: https://mpickering.github.io/posts/2019-11-07-hs-speedscope.html |
2020-11-24 09:46:22 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 09:46:55 +0100 | <dminuoso> | merijn: Cool, I think I saw the initial works from matthew a while ago |
2020-11-24 09:46:55 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-24 09:46:59 +0100 | <dminuoso> | was waiting for this |
2020-11-24 09:47:04 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2020-11-24 09:47:15 +0100 | <dminuoso> | Though the text based profiling is *fine* |
2020-11-24 09:47:29 +0100 | <dminuoso> | but an interactive flamegraph is just tons better obviously |
2020-11-24 09:47:57 +0100 | <n0042> | I'm using 8.8.4. Perhaps that's a good reason to upgrade soon though |
2020-11-24 09:48:04 +0100 | <merijn> | dminuoso: The flamegraph isn't his, that's just the speedscope.app website |
2020-11-24 09:48:10 +0100 | borne | (~fritjof@200116b864eb5c00394a967dc8ef4e61.dip.versatel-1u1.de) |
2020-11-24 09:48:16 +0100 | <dminuoso> | Ah |
2020-11-24 09:48:17 +0100 | <merijn> | dminuoso: hs-speedscope is just turning the event log into output for it |
2020-11-24 09:48:25 +0100 | <merijn> | Although there's still room for improvement |
2020-11-24 09:48:35 +0100 | <merijn> | For one it currently doesn't track foreign calls, sadly |
2020-11-24 09:48:55 +0100 | <dminuoso> | Ive stopped profiling our largest project because all that's left is a gazillion "improve 0.1% here" spots. |
2020-11-24 09:49:09 +0100 | <dminuoso> | Too much effort for too little value. At this point Im largely I/O bound. :p |
2020-11-24 09:49:46 +0100 | <dminuoso> | Im still amazed by how fast GHC generated code is |
2020-11-24 09:49:55 +0100 | thc202 | (~thc202@unaffiliated/thc202) |
2020-11-24 09:50:07 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-24 09:51:07 +0100 | drbean | (~drbean@TC210-63-209-58.static.apol.com.tw) (Ping timeout: 246 seconds) |
2020-11-24 09:52:52 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
2020-11-24 09:53:11 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2020-11-24 09:53:27 +0100 | <n0042> | My biggest hurdle for testing the performance for this class is actually feeding it input in a way that simulates the test conditions. They've got some automated system that inputs during runtime, like a person sitting at a keyboard. No command-line arguments. |
2020-11-24 09:53:46 +0100 | <n0042> | Would be easier if everything was command line arguments |
2020-11-24 09:54:10 +0100 | <dminuoso> | 09:27:34 merijn | n0042: Compile with -rtsopts and run with "+RTS -sstderr" to get GC diagnostics |
2020-11-24 09:54:16 +0100 | <dminuoso> | Oh |
2020-11-24 09:54:18 +0100 | <dminuoso> | Mm |
2020-11-24 09:55:03 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2020-11-24 09:55:15 +0100 | <merijn> | Well, you can use --with-rtsoprts to permanently enable those ;) |
2020-11-24 09:55:47 +0100 | <dminuoso> | mmm can you output the profiling data to stderr as well? |
2020-11-24 09:55:57 +0100 | michalz | (~user@185.246.204.39) |
2020-11-24 09:56:22 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 09:56:47 +0100 | <acagastya> | Is this called a function signature? If not, what is it called? `fib :: Int -> Int` |
2020-11-24 09:56:47 +0100 | eyenx | (~eyenxeyen@unaffiliated/eye/x-1653358) (Quit: Bridge terminating on SIGTERM) |
2020-11-24 09:57:09 +0100 | eyenx | (~eyenxeyen@unaffiliated/eye/x-1653358) |
2020-11-24 09:57:11 +0100 | <n0042> | Type declaration, I think |
2020-11-24 09:57:23 +0100 | <n0042> | But basically a function signature |
2020-11-24 09:57:29 +0100 | m0rphism | (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) |
2020-11-24 09:58:02 +0100 | <dminuoso> | Type signature / type annotation |
2020-11-24 09:58:10 +0100 | <dminuoso> | Syntactically it also happens to be a declaration. |
2020-11-24 09:58:46 +0100 | <dminuoso> | Haskell does not have the notion of "function signatures" that have some kind of forward declaring behavior |
2020-11-24 09:58:51 +0100 | <dminuoso> | Like in C |
2020-11-24 09:58:51 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-24 09:59:22 +0100 | kritzefitz | (~kritzefit@fw-front.credativ.com) |
2020-11-24 09:59:31 +0100 | <n0042> | For the first couple weeks I was just writing everything with type inference and asking ghci for the type using `:t` |
2020-11-24 09:59:36 +0100 | <dminuoso> | With some considerations, you can just attach a type signature/ascription to anything. `f (x :: Int) = x * 2` |
2020-11-24 09:59:51 +0100 | <dminuoso> | Though that requires ScopedTypeVariables :p |
2020-11-24 09:59:56 +0100 | <idnar> | I never know where to put cost centres for profiling |
2020-11-24 10:00:01 +0100 | <n0042> | Felt real proud of myself when I didn't have to do that all the time any more. |
2020-11-24 10:00:52 +0100 | <merijn> | idnar: You just use -fprof-auto? :p |
2020-11-24 10:00:56 +0100 | <dminuoso> | n0042: For advanced users, you can just insert a typed hole, that works nicely with ghc or ghcid. |
2020-11-24 10:01:10 +0100 | <merijn> | idnar: Or better yet, just use --enable-profiling with cabal :p |
2020-11-24 10:01:19 +0100 | <n0042> | That sounds fancy. Can you give me an example? I'm intrigued |
2020-11-24 10:01:20 +0100 | <dminuoso> | n0042: say you're in the middle of an expression deep down in code, and you want to know the type of some sub-expression, you can just do `.... f (x :: _) ....` |
2020-11-24 10:01:33 +0100 | <dminuoso> | And then GHC will generate a diagnostic, telling you the type of x |
2020-11-24 10:01:39 +0100 | <n0042> | Oh that is cool |
2020-11-24 10:02:00 +0100 | dansho | (~dansho@ec2-52-194-192-222.ap-northeast-1.compute.amazonaws.com) (Remote host closed the connection) |
2020-11-24 10:02:03 +0100 | <dminuoso> | This doesnt just work for singular things, but entire expressions too |
2020-11-24 10:02:10 +0100 | <dminuoso> | say `(f x) :: _` |
2020-11-24 10:02:31 +0100 | dansho | (~dansho@ec2-52-194-192-222.ap-northeast-1.compute.amazonaws.com) |
2020-11-24 10:02:54 +0100 | <n0042> | I've been really surprised at how good the interactive programming environment is since I started with Haskell. ghci is fantastic |
2020-11-24 10:03:02 +0100 | <dminuoso> | Though its my experience, if you have to do this its because you're not sure. Just move it to a binding and give it a permanent type singature |
2020-11-24 10:03:16 +0100 | <idnar> | merijn: -fprof-auto just changes the problem to "I never know where to put INLINE" |
2020-11-24 10:03:53 +0100 | <n0042> | dminuoso: Noted. That's a sweet trick, thank you |
2020-11-24 10:04:21 +0100 | <merijn> | dminuoso: That's a type hole, not a typed hole :p |
2020-11-24 10:04:36 +0100 | <dminuoso> | -_- |
2020-11-24 10:04:47 +0100 | <dminuoso> | I still need to implement -fno-typed-holes |
2020-11-24 10:05:27 +0100 | <merijn> | How so? |
2020-11-24 10:05:47 +0100 | <dminuoso> | I use optics a lot in this project, and for convenience I use the underscore based renamer |
2020-11-24 10:05:56 +0100 | <dminuoso> | So I have a lot of fields that start with `_foo` |
2020-11-24 10:06:01 +0100 | <merijn> | So? |
2020-11-24 10:06:30 +0100 | <dminuoso> | well, if you use these field accessors and make a typo `_fo v` then you get a very annoying diagnostic and not even a "did yu mean _foo" error |
2020-11-24 10:07:02 +0100 | <dminuoso> | Id rather it tells me "_fo not in scope" |
2020-11-24 10:07:13 +0100 | <merijn> | dminuoso: That sounds more like "I need to improve the diagnostics", not "implement a way to disable typed holes" :p |
2020-11-24 10:08:01 +0100 | <idnar> | dminuoso: switch to generic-optics ;) |
2020-11-24 10:08:45 +0100 | <acagastya> | When should I use `.` and when do I use `$`? |
2020-11-24 10:10:45 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) |
2020-11-24 10:11:24 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 10:11:54 +0100 | <n0042> | If I understand it correctly, `.` actually combines two functions while `$` just alters precedence. I've only needed to use `.` for I/O so far. Would be interested in hearing the answer to that. |
2020-11-24 10:12:35 +0100 | solonarv | (~solonarv@astrasbourg-653-1-156-4.w90-6.abo.wanadoo.fr) |
2020-11-24 10:13:38 +0100 | _xor | (~xor@74.215.46.133) (Quit: brb) |
2020-11-24 10:13:39 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-24 10:14:26 +0100 | eyenx | (~eyenxeyen@unaffiliated/eye/x-1653358) (Quit: Bridge terminating on SIGTERM) |
2020-11-24 10:14:50 +0100 | eyenx | (~eyenxeyen@unaffiliated/eye/x-1653358) |
2020-11-24 10:15:05 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds) |
2020-11-24 10:15:47 +0100 | <guest112`> | is Except a typeclass? |
2020-11-24 10:16:24 +0100 | <guest112`> | why Control.Monad.Error is no longer suggested? |
2020-11-24 10:18:33 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 10:19:41 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2020-11-24 10:19:41 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-24 10:20:08 +0100 | <idnar> | n0042: btw, if your editor has LSP support then with haskell-language-server you can get subexpression types on-hover |
2020-11-24 10:20:34 +0100 | <n0042> | Fancy! Good to know |
2020-11-24 10:20:46 +0100 | <idnar> | (among many other useful things) |
2020-11-24 10:21:42 +0100 | hidedagger | (~nate@unaffiliated/hidedagger) |
2020-11-24 10:22:03 +0100 | plutoniix | (~q@ppp-124-121-237-69.revip2.asianet.co.th) (Remote host closed the connection) |
2020-11-24 10:23:33 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 10:24:43 +0100 | kuribas | (~user@ptr-25vy0i6zrjp217580gl.18120a2.ip6.access.telenet.be) |
2020-11-24 10:25:10 +0100 | Entertainment | (~entertain@104.246.132.210) (Ping timeout: 256 seconds) |
2020-11-24 10:26:01 +0100 | <dminuoso> | idnar: I dont think that is the real solution here |
2020-11-24 10:26:13 +0100 | <dminuoso> | lenses generated into OverloadedLabels seems more sane |
2020-11-24 10:26:40 +0100 | <dminuoso> | That's how swagger2 does it, and it's not bad |
2020-11-24 10:27:06 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-24 10:27:21 +0100 | <idnar> | dminuoso: oh hmm, generic-lens has that, I wonder why generic-optics doesn't |
2020-11-24 10:27:53 +0100 | <dminuoso> | idnar: Also, why would I use generics over TH here? |
2020-11-24 10:28:02 +0100 | <dminuoso> | The TH code is likely to be much faster |
2020-11-24 10:28:43 +0100 | <dminuoso> | Also, its controllable and configurable |
2020-11-24 10:29:00 +0100 | _xor | (~xor@74.215.46.133) |
2020-11-24 10:29:11 +0100 | <dminuoso> | With Generics you're, essentially, tied to whatever the implementation has, unless you start flinging newtypes and type families at it |
2020-11-24 10:31:00 +0100 | <idnar> | dminuoso: there's a paper explaining how they got it to ~the performance of TH, but yes there's various up/downsides |
2020-11-24 10:31:48 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2020-11-24 10:32:07 +0100 | <dminuoso> | With TH I can just dump the splice, and splice it manually by copy and paste. |
2020-11-24 10:32:21 +0100 | <dminuoso> | Can you reify Generics code like that? |
2020-11-24 10:32:27 +0100 | acagastya | (~acagastya@wikinews/acagastya) ("WeeChat 2.8") |
2020-11-24 10:32:46 +0100 | <dminuoso> | But, Ill check out the paper |
2020-11-24 10:33:21 +0100 | <dminuoso> | Oh I think you misunderstood |
2020-11-24 10:33:30 +0100 | <dminuoso> | Im not talking about the *generated* lens, Im talking about the compilation time overhead |
2020-11-24 10:33:35 +0100 | <dminuoso> | Generics are crazy slow |
2020-11-24 10:34:24 +0100 | <idnar> | dminuoso: huh, TH is _much_ slower to compile IME |
2020-11-24 10:34:56 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-ivgwdqliaykucuud) (Quit: Connection closed for inactivity) |
2020-11-24 10:35:15 +0100 | <idnar> | dminuoso: I guess maybe It Depends™ |
2020-11-24 10:36:30 +0100 | <dminuoso> | Im not sure how Generics could be faster, really. |
2020-11-24 10:38:22 +0100 | falafel_ | (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) |
2020-11-24 10:38:55 +0100 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
2020-11-24 10:39:14 +0100 | LeD | (5fa448e7@95.164.72.231) (Ping timeout: 245 seconds) |
2020-11-24 10:39:59 +0100 | <idnar> | oh re: labels, "I intend to add support for this for generic-optics too, but it isn’t implemented yet." |
2020-11-24 10:40:24 +0100 | <idnar> | guess that explains it |
2020-11-24 10:52:14 +0100 | falafel_ | (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) (Ping timeout: 264 seconds) |
2020-11-24 10:54:37 +0100 | <maerwald> | my experience with aeson th vs generics is that th is slower afair |
2020-11-24 10:56:48 +0100 | DavidEichmann | (~david@62.110.198.146.dyn.plus.net) |
2020-11-24 10:57:42 +0100 | <maerwald> | but that's anecdotal evidence |
2020-11-24 10:57:46 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-24 10:58:24 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2020-11-24 10:58:58 +0100 | <tdammers> | slower to compile, or slower to run? |
2020-11-24 10:59:06 +0100 | <tdammers> | oh wait |
2020-11-24 10:59:19 +0100 | <tdammers> | note to self, read scrollback before blurting out word vomit |
2020-11-24 10:59:34 +0100 | raichoo | (~raichoo@213.240.178.58) |
2020-11-24 11:00:23 +0100 | Rudd0 | (~Rudd0@185.189.115.98) |
2020-11-24 11:01:14 +0100 | bulters | (~jeroen@5920ab49.static.cust.trined.nl) |
2020-11-24 11:02:18 +0100 | hidedagger | (~nate@unaffiliated/hidedagger) (Quit: WeeChat 2.9) |
2020-11-24 11:02:41 +0100 | hidedagger | (~nate@unaffiliated/hidedagger) |
2020-11-24 11:07:46 +0100 | <kuribas> | OTOH generics is pure haskell, also TH sometimes has weird effects on declarations, TH doesn't work with cross-compiling, etc... |
2020-11-24 11:09:26 +0100 | <dminuoso> | maerwald: Well and it depends on the quality of TH code |
2020-11-24 11:09:40 +0100 | shangxiao | (~davids@101.181.159.140) |
2020-11-24 11:10:04 +0100 | <maerwald> | dminuoso: also, you should be using openapi3, not swagger2 :) |
2020-11-24 11:10:14 +0100 | <dminuoso> | Generics is probably easier to get right both in compilation time as well as runtime overhead, but TH is easier to make it deterministic and *definitely* obtain a particular result |
2020-11-24 11:10:29 +0100 | <dminuoso> | maerwald: Yeah, there was some reasons.. dont really recall them. |
2020-11-24 11:10:42 +0100 | <maerwald> | it's pretty much the same api |
2020-11-24 11:10:48 +0100 | <dminuoso> | Oh, it wasn't released at the time |
2020-11-24 11:12:27 +0100 | hidedagger | (~nate@unaffiliated/hidedagger) (Quit: WeeChat 2.9) |
2020-11-24 11:12:30 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 11:13:34 +0100 | <dminuoso> | maerwald: interesting, it looks almost identical in terms of dependencies and module structure |
2020-11-24 11:13:41 +0100 | <kuribas> | maerwald: question, is there an easy way to download a docker image and compile to a musl binary? |
2020-11-24 11:13:59 +0100 | <maerwald> | kuribas: yes |
2020-11-24 11:14:00 +0100 | <dminuoso> | perhaps its a drop-in replacement? |
2020-11-24 11:14:04 +0100 | <dminuoso> | Will try |
2020-11-24 11:14:11 +0100 | <maerwald> | dminuoso: yeah, upstream was unresponsive so they forked |
2020-11-24 11:14:16 +0100 | <kuribas> | maerwald: which can be done on differents OSes? windows, linuxes, ... |
2020-11-24 11:14:28 +0100 | <dminuoso> | Cool, I remember OpenAPI 3.0 has some things that 2.x failed to represent |
2020-11-24 11:14:43 +0100 | hidedagger | (~nate@unaffiliated/hidedagger) |
2020-11-24 11:14:44 +0100 | <maerwald> | dminuoso: yes, oneOf |
2020-11-24 11:14:52 +0100 | <dminuoso> | Right, that's the one |
2020-11-24 11:14:58 +0100 | hidedagger | (~nate@unaffiliated/hidedagger) (Client Quit) |
2020-11-24 11:15:18 +0100 | <dminuoso> | Silly Haskellers and their sum types |
2020-11-24 11:15:26 +0100 | <maerwald> | kuribas: I have never used docker on windows |
2020-11-24 11:15:34 +0100 | <dminuoso> | Does openapi3 has allOf support? |
2020-11-24 11:15:36 +0100 | <kuribas> | maerwald: well, linuxes then? |
2020-11-24 11:16:03 +0100 | <dminuoso> | (k ~ A_Lens, a ~ Maybe [Referenced Schema], b ~ Maybe [Referenced Schema]) => LabelOptic "oneOf" k Schema Schema a b |
2020-11-24 11:16:05 +0100 | <dminuoso> | Looks like, sweet |
2020-11-24 11:16:30 +0100 | <maerwald> | kuribas: https://gist.github.com/hasufell/f0893abfbba63ac4ea40feb0520946ee |
2020-11-24 11:16:38 +0100 | <maerwald> | something like that |
2020-11-24 11:16:57 +0100 | <kuribas> | maerwald: right, thanks! |
2020-11-24 11:17:02 +0100 | noteness | (noteness@unaffiliated/nessessary129) |
2020-11-24 11:17:37 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
2020-11-24 11:19:21 +0100 | __monty__ | (~toonn@unaffiliated/toonn) |
2020-11-24 11:23:27 +0100 | hseg | (~gesh@185.120.126.113) |
2020-11-24 11:28:14 +0100 | <kuribas> | I wonder if something exists between monad and applicative. |
2020-11-24 11:28:30 +0100 | <kuribas> | for example: say you have two forms, and the result of the second form depends on the first form. |
2020-11-24 11:28:47 +0100 | <kuribas> | however you know the second form will be always there. |
2020-11-24 11:29:23 +0100 | <kuribas> | it's not an applicative, because the second form depends on the first. But not a monad either, because the existance of the second form is independent of the result of the first. |
2020-11-24 11:29:53 +0100 | <merijn> | kuribas: So...Selective Functors? :p |
2020-11-24 11:30:01 +0100 | <merijn> | kuribas: Did you live under a rock last year? ;) |
2020-11-24 11:30:22 +0100 | <kuribas> | seem so ;-P |
2020-11-24 11:30:32 +0100 | <merijn> | kuribas: https://www.staff.ncl.ac.uk/andrey.mokhov/selective-functors.pdf |
2020-11-24 11:30:34 +0100 | <kuribas> | thanks :) |
2020-11-24 11:30:47 +0100 | <n0042> | The vocabulary of learning Haskell has got to be one of the neatest things I've ever experienced. Thank you both for that |
2020-11-24 11:31:06 +0100 | <merijn> | kuribas: In fact, I think you are literally describing Selective with your optional 2nd form :p |
2020-11-24 11:31:14 +0100 | <bulters> | I come here only for the vocab ;-) |
2020-11-24 11:31:31 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 11:32:01 +0100 | <kuribas> | merijn: the second for is not optional |
2020-11-24 11:32:04 +0100 | p8m_ | (p8m@gateway/vpn/protonvpn/p8m) |
2020-11-24 11:32:28 +0100 | <merijn> | kuribas: First one, whatever, reading is hard :p |
2020-11-24 11:32:41 +0100 | p8m | (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 265 seconds) |
2020-11-24 11:32:42 +0100 | <kuribas> | any, sounds interesting, I'll have a look |
2020-11-24 11:32:54 +0100 | <bulters> | @merijn: wouldn't it be an Invariant Functor? |
2020-11-24 11:32:54 +0100 | <lambdabot> | Unknown command, try @list |
2020-11-24 11:32:56 +0100 | <kuribas> | *anyway*... writing is hard :) |
2020-11-24 11:33:12 +0100 | <bulters> | since it's always there, disregarding the first form? |
2020-11-24 11:33:54 +0100 | <bulters> | (disclaimer: I understand sh*t about formal type theory....) |
2020-11-24 11:34:44 +0100 | <[exa]> | invariant functor sounds a bit more like Const |
2020-11-24 11:34:45 +0100 | <merijn> | various functor types don't really have much to do with type theory, though :p |
2020-11-24 11:35:04 +0100 | <bulters> | merijn: hence, my disclaimer |
2020-11-24 11:35:11 +0100 | <bulters> | I don't even know where it starts and ends! |
2020-11-24 11:35:22 +0100 | <n0042> | haha |
2020-11-24 11:35:30 +0100 | <kuribas> | merijn: now that I think about it, what I describe is just an applicative, but where the second form returns a function that takes the result of the first form. |
2020-11-24 11:36:01 +0100 | <n0042> | You and me both bulters. I'm looking around for some good introductory resources at the moment |
2020-11-24 11:36:19 +0100 | <bulters> | n0042: at what "level are you reading" right now? |
2020-11-24 11:36:25 +0100 | <merijn> | For type theory? Benjamin Pierce's Types and Programming Languages |
2020-11-24 11:36:49 +0100 | Jonkimi727406120 | (~Jonkimi@113.87.161.66) (Ping timeout: 264 seconds) |
2020-11-24 11:37:08 +0100 | <n0042> | thanks merijn, that sounds appropriate |
2020-11-24 11:37:31 +0100 | <bulters> | Thanks merijn, that sounds really appropriate |
2020-11-24 11:37:45 +0100 | wei2912 | (~wei2912@unaffiliated/wei2912) (Remote host closed the connection) |
2020-11-24 11:37:57 +0100 | oisdk | (~oisdk@2001:bb6:3329:d100:188f:f126:4321:8fc1) |
2020-11-24 11:38:11 +0100 | <__monty__> | bulters: It's not just a type theory introduction, it's *the* type theory introduction : ) |
2020-11-24 11:38:32 +0100 | <bulters> | ok... thanks you all... you just REALLY destroyed december for my wife... |
2020-11-24 11:38:50 +0100 | <__monty__> | bulters: Oh, you hadn't heard about Advent of Code yet? |
2020-11-24 11:38:58 +0100 | Jonkimi727406120 | (~Jonkimi@113.87.161.66) |
2020-11-24 11:39:02 +0100 | <n0042> | bulters: I'm not sure how to answer that question. At a lower level than many of the people in here, I'm sure. |
2020-11-24 11:39:03 +0100 | <merijn> | __monty__: hah |
2020-11-24 11:39:05 +0100 | <bulters> | __monty__: sure did! That's what she gave me the approval for :P |
2020-11-24 11:39:09 +0100 | <kuribas> | merijn: for example: liftA2 (,) form1 (form2 $ \form1Value -> form2Value) |
2020-11-24 11:39:14 +0100 | <merijn> | __monty__: Life hack, my SO is doing Advent of Code :p |
2020-11-24 11:39:19 +0100 | hseg | (~gesh@185.120.126.113) (Quit: WeeChat 2.9) |
2020-11-24 11:39:53 +0100 | <bulters> | merijn: smart... now I just have to find a way to get a tax lawyer interested in AoC :') |
2020-11-24 11:40:08 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2020-11-24 11:40:12 +0100 | <__monty__> | I'm expecting a lot more participation due to lockdowns and such. |
2020-11-24 11:40:44 +0100 | <bulters> | __monty__: absolutely... last year we had 21 participants in our office, right now the internal slack channel is at 40. |
2020-11-24 11:40:54 +0100 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2020-11-24 11:41:27 +0100 | <kuribas> | merijn: so form2Value depends on what form1 returns |
2020-11-24 11:41:47 +0100 | <bulters> | n0042: wouldn't be too surprised... I think I managed to forget everything about type theory I learned in uni (some 15 years ago)... that's what industry does to you ;-) |
2020-11-24 11:42:06 +0100 | st8less | (~st8less@2603:a060:11fd:0:bcc7:6823:7a5:d42) (Quit: WeeChat 2.9) |
2020-11-24 11:42:20 +0100 | <__monty__> | kuribas: That sounds a lot like a monad though. |
2020-11-24 11:42:45 +0100 | <kuribas> | __monty__: no, because the monad doesn't know that form2 will exist |
2020-11-24 11:43:02 +0100 | SanchayanMaity | (~Sanchayan@171.76.82.54) (Quit: SanchayanMaity) |
2020-11-24 11:43:03 +0100 | p8m | (p8m@gateway/vpn/protonvpn/p8m) |
2020-11-24 11:43:44 +0100 | Jonkimi727406120 | (~Jonkimi@113.87.161.66) (Ping timeout: 260 seconds) |
2020-11-24 11:43:50 +0100 | <__monty__> | I'm not sure what you mean. They always occur in pairs? Why does it need to know, optimization? |
2020-11-24 11:44:16 +0100 | p8m_ | (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 240 seconds) |
2020-11-24 11:45:06 +0100 | <kuribas> | __monty__: form2 is always there, it's just that it's contents changes based on form1. |
2020-11-24 11:45:08 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds) |
2020-11-24 11:45:27 +0100 | <n0042> | bulters: Still looking to get my first job in the "industry"! Lots to learn. |
2020-11-24 11:45:37 +0100 | <kuribas> | __monty__: no, if you have a UI, you want the second form to be already there. |
2020-11-24 11:45:55 +0100 | <bulters> | n0042: That's really exciting... You're up for a real rollercoaster ride I'd reckon... |
2020-11-24 11:46:11 +0100 | <bulters> | especially starting in a time where remote work is "the norm" |
2020-11-24 11:46:45 +0100 | <n0042> | The world does seem to have gone mad |
2020-11-24 11:47:01 +0100 | <n0042> | But I'm not going to complain about remote work. My room is a nice office |
2020-11-24 11:47:14 +0100 | <bulters> | I hired an office, just for me... |
2020-11-24 11:47:20 +0100 | SanchayanMaity | (~Sanchayan@171.76.82.54) |
2020-11-24 11:47:31 +0100 | <n0042> | Like, you rented a place? |
2020-11-24 11:47:38 +0100 | <bulters> | yeah, an empty office... |
2020-11-24 11:47:43 +0100 | <bulters> | friend of mine had one "left"... |
2020-11-24 11:48:02 +0100 | <bulters> | 5 minute bike ride away, pay like 250 euros per month, including internet, heating, cleaning, etc |
2020-11-24 11:48:10 +0100 | <n0042> | Is your whole organization gone remote? |
2020-11-24 11:48:14 +0100 | <bulters> | yep.. |
2020-11-24 11:48:19 +0100 | <n0042> | wow |
2020-11-24 11:48:50 +0100 | <bulters> | We allow 10% of the staff to be in the office per day |
2020-11-24 11:48:59 +0100 | <bulters> | to allow for proper distancing |
2020-11-24 11:49:13 +0100 | <n0042> | I wonder what the total cost of the whole Covid thing is when you calculate business disruptions like that, world-wide. |
2020-11-24 11:49:22 +0100 | <merijn> | We have...1 or 2 people in the office? |
2020-11-24 11:49:32 +0100 | <merijn> | n0042: Uncountable, most likely |
2020-11-24 11:49:45 +0100 | <dminuoso> | Dunno, Im fairly sure it will be measurable |
2020-11-24 11:49:52 +0100 | <dminuoso> | But it depends on the exact metric |
2020-11-24 11:49:53 +0100 | nr3rsl | (nr3rsl@94.63.218.65) |
2020-11-24 11:50:17 +0100 | <merijn> | dminuoso: I think there's so many indirect effects it's probably not actually measurable in any accurate way |
2020-11-24 11:51:05 +0100 | <bulters> | We expect to lose 1.5mio (eur) on the fact that we have to work remotely only. |
2020-11-24 11:51:53 +0100 | <bulters> | So that doesn't factor in added productivity (by some), lost productivity (in others), added supportive costs (extra monitors, physical therapy, new desks for some, etc) |
2020-11-24 11:52:20 +0100 | <nr3rsl> | Hi guys, i'm looking for haskell programmers to work in portugal any one? |
2020-11-24 11:53:35 +0100 | <bulters> | ok, so alter from Data.Map.Strict requires (Maybe a -> Maybe a) as first arg, but I just want to update 1 element to a fixed value. Any pointers? |
2020-11-24 11:54:23 +0100 | <merijn> | bulters: What's wrong with alter? |
2020-11-24 11:54:41 +0100 | <bulters> | there's nothing wrong with alter... I think... just me using it wrong |
2020-11-24 11:55:09 +0100 | <n0042> | I am almost certainly not qualified to be taking Haskell jobs nr3rsl but out of curiosity what kinds of things are you hiring people to work on? |
2020-11-24 11:56:04 +0100 | <bulters> | maralorn: M.alter (Just (left + right)) result m <-- I'd have to wrap the (Just (left + right)) into something that makes it a Maybe a -> Maybe a right? |
2020-11-24 11:56:11 +0100 | <bulters> | erm... merijn ... mea culpa |
2020-11-24 11:56:42 +0100 | guest112` | (~user@49.5.6.87) (Quit: ERC (IRC client for Emacs 27.1)) |
2020-11-24 11:56:51 +0100 | <merijn> | "Just (left + right)" is a value, not a function. Where are left/right coming from? |
2020-11-24 11:58:20 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 11:58:24 +0100 | <maralorn> | You know … My first name is "Malte". For a second there I was so confused by this message that I considered it was an accidental highlight because of "M.alter" … |
2020-11-24 11:59:06 +0100 | <bulters> | merijn: https://gist.github.com/bulters/661a7389d3684826e20791c7019d3bf8 |
2020-11-24 11:59:13 +0100 | mi23523523 | (~Aman33333@85.253.192.47.cable.starman.ee) |
2020-11-24 11:59:43 +0100 | <bulters> | (AoC 19, day 2, did stupid implementation earlier, now following random redditor suggesting of optimizing by using Data.IntMap.Strict) |
2020-11-24 11:59:52 +0100 | <merijn> | bulters: eh, I think you just want M.insert? |
2020-11-24 12:00:13 +0100 | alp | (~alp@2a01:e0a:58b:4920:ecb1:790b:d951:73b0) (Ping timeout: 272 seconds) |
2020-11-24 12:00:15 +0100 | <merijn> | alter is for updating a value you haven't looked up yet |
2020-11-24 12:00:33 +0100 | <bulters> | makes perfect sense... |
2020-11-24 12:00:42 +0100 | <merijn> | "alter f k" says "replace the value for key 'k' by using the function 'f' to generate the new value" |
2020-11-24 12:01:03 +0100 | <merijn> | Where 'f' gets Nothing (if no value) or Just (if there's one there) and returns Just (new value) or Nothing (deleted) |
2020-11-24 12:01:56 +0100 | <bulters> | \o/ Thanks! |
2020-11-24 12:02:36 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-11-24 12:03:49 +0100 | p8m | (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 264 seconds) |
2020-11-24 12:04:15 +0100 | p8m | (p8m@gateway/vpn/protonvpn/p8m) |
2020-11-24 12:07:36 +0100 | pie_ | (~pie_bnc]@unaffiliated/pie-/x-0787662) (Ping timeout: 240 seconds) |
2020-11-24 12:07:36 +0100 | vancz | (~vancz@unaffiliated/vancz) (Ping timeout: 240 seconds) |
2020-11-24 12:10:58 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 260 seconds) |
2020-11-24 12:11:48 +0100 | pie_ | (~pie_bnc]@unaffiliated/pie-/x-0787662) |
2020-11-24 12:11:48 +0100 | vancz | (~vancz@unaffiliated/vancz) |
2020-11-24 12:13:19 +0100 | daGrevis | (~daGrevis@unaffiliated/dagrevis) (Ping timeout: 244 seconds) |
2020-11-24 12:14:19 +0100 | marinelli | (~marinelli@gateway/tor-sasl/marinelli) |
2020-11-24 12:15:40 +0100 | bulters | (~jeroen@5920ab49.static.cust.trined.nl) (Ping timeout: 246 seconds) |
2020-11-24 12:19:05 +0100 | mi23523523 | (~Aman33333@85.253.192.47.cable.starman.ee) (Remote host closed the connection) |
2020-11-24 12:19:25 +0100 | lxsameer | (~lxsameer@unaffiliated/lxsameer) (Ping timeout: 264 seconds) |
2020-11-24 12:20:20 +0100 | pavonia | (~user@unaffiliated/siracusa) (Read error: Connection reset by peer) |
2020-11-24 12:20:29 +0100 | alp | (~alp@88.126.45.36) |
2020-11-24 12:20:36 +0100 | mi23523523 | (~Aman33333@85.253.192.47.cable.starman.ee) |
2020-11-24 12:20:36 +0100 | trcc | (~trcc@130.225.16.16) |
2020-11-24 12:20:41 +0100 | pavonia | (~user@unaffiliated/siracusa) |
2020-11-24 12:21:03 +0100 | lxsameer | (~lxsameer@unaffiliated/lxsameer) |
2020-11-24 12:21:10 +0100 | <maerwald> | is there a structure such as a Map that can be GCed as you go instead of after traversal? |
2020-11-24 12:21:56 +0100 | phaul | (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
2020-11-24 12:22:58 +0100 | <kuribas> | merijn: I guess what I want is flipped (<*>) with the effects reversed. |
2020-11-24 12:23:22 +0100 | <kuribas> | merijn: so >*< :: f a -> f (a -> b) -> f b |
2020-11-24 12:23:39 +0100 | marinelli | (~marinelli@gateway/tor-sasl/marinelli) (Quit: marinelli) |
2020-11-24 12:24:06 +0100 | daGrevis | (~daGrevis@unaffiliated/dagrevis) |
2020-11-24 12:24:09 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2020-11-24 12:24:36 +0100 | dansho | (~dansho@ec2-52-194-192-222.ap-northeast-1.compute.amazonaws.com) (Ping timeout: 240 seconds) |
2020-11-24 12:26:08 +0100 | <ski> | > [(^ 2),(^ 3)] <*> [4,5] |
2020-11-24 12:26:10 +0100 | <lambdabot> | [16,25,64,125] |
2020-11-24 12:26:11 +0100 | <ski> | > [4,5] <**> [(^ 2),(^ 3)] |
2020-11-24 12:26:12 +0100 | <lambdabot> | [16,64,25,125] |
2020-11-24 12:26:34 +0100 | bulters | (~jeroen@5920ab49.static.cust.trined.nl) |
2020-11-24 12:26:39 +0100 | phaul | (~phaul@ruby/staff/phaul) |
2020-11-24 12:28:08 +0100 | mi23523523 | (~Aman33333@85.253.192.47.cable.starman.ee) (Remote host closed the connection) |
2020-11-24 12:28:45 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-gbfppsdeuatjrkoa) (Quit: Connection closed for inactivity) |
2020-11-24 12:28:52 +0100 | <bulters> | merijn: did the trick, thanks. For 'closure' (the mental variant): would using alter entail using something like \x -> Just (left + right)? |
2020-11-24 12:30:28 +0100 | lassulus | (~lassulus@NixOS/user/lassulus) (Ping timeout: 256 seconds) |
2020-11-24 12:30:31 +0100 | carlomagno1 | (~cararell@148.87.23.8) |
2020-11-24 12:31:53 +0100 | Yumasi | (~guillaume@2a01cb09b06b29ea1c5ab82b3b485150.ipv6.abo.wanadoo.fr) (Ping timeout: 272 seconds) |
2020-11-24 12:31:58 +0100 | jedws | (~jedws@101.184.150.93) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-24 12:32:20 +0100 | Yumasi | (~guillaume@40.72.95.92.rev.sfr.net) |
2020-11-24 12:32:52 +0100 | <kuribas> | :t <**> |
2020-11-24 12:32:53 +0100 | <lambdabot> | error: parse error on input ‘<**>’ |
2020-11-24 12:32:59 +0100 | <kuribas> | :t (<**>) |
2020-11-24 12:33:01 +0100 | <lambdabot> | Applicative f => f a -> f (a -> b) -> f b |
2020-11-24 12:33:10 +0100 | carlomagno | (~cararell@148.87.23.7) (Ping timeout: 246 seconds) |
2020-11-24 12:34:14 +0100 | <kuribas> | nice |
2020-11-24 12:34:58 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
2020-11-24 12:35:18 +0100 | lassulus | (~lassulus@NixOS/user/lassulus) |
2020-11-24 12:35:23 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2020-11-24 12:36:08 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 12:37:50 +0100 | <ski> | bulters : yes. `adjust' would also have worked (but is also slightly overkill, since you don't depend on the old value, just overwrite) |
2020-11-24 12:40:13 +0100 | n0042 | (d055ed89@208.85.237.137) (Remote host closed the connection) |
2020-11-24 12:40:16 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
2020-11-24 12:40:27 +0100 | <bulters> | ski: thanks! |
2020-11-24 12:41:29 +0100 | <dminuoso> | 12:21:11 maerwald | is there a structure such as a Map that can be GCed as you go instead of after traversal? |
2020-11-24 12:41:43 +0100 | <dminuoso> | Mmm, I wonder whether that's even possible without a substructural type system |
2020-11-24 12:41:53 +0100 | <dminuoso> | (Unless the map does manual memory management) |
2020-11-24 12:42:29 +0100 | <dminuoso> | From GC roots perspective, as long as there's something pointing to the original map, you cant GC the nodes that have gone from your perspective |
2020-11-24 12:42:40 +0100 | alp | (~alp@88.126.45.36) (Remote host closed the connection) |
2020-11-24 12:42:58 +0100 | alp | (~alp@2a01:e0a:58b:4920:92c:402a:f3e7:76c8) |
2020-11-24 12:43:06 +0100 | <maerwald> | yeah, it's a similar problem with copying bytestrings |
2020-11-24 12:43:57 +0100 | <dminuoso> | maerwald: The closest thing you're asking for exists in Clean, where operations can be turned into mutation |
2020-11-24 12:44:06 +0100 | <dminuoso> | (Which would be better than just "garbage collecting what you just freed" |
2020-11-24 12:44:51 +0100 | <dminuoso> | Because with a linear (or affine) type system you could reason, that after the traversal nothing else can see the value you just touched |
2020-11-24 12:45:07 +0100 | <ski> | i guess if you have the only reference to the root, then after you've traversed all but one direct subtree, you'll discard the root, so that GC could possibly pick it up, as you descent further ? |
2020-11-24 12:45:57 +0100 | <ski> | (hm, or possibly you'll directly pick apart the root node, into constituents, before traversing further, so that GC could pick it up anytime after that) |
2020-11-24 12:46:34 +0100 | <ski> | s/linear (or affine)/uniqueness/ |
2020-11-24 12:49:09 +0100 | <ski> | Mercury does implement CTGC (compile-time GC), which first tries to reuse discarded (unique) nodes for creation of new nodes (preferably sharing some slots, so they don't all need to be updated), and otherwise statically insert a deallocation call of the node |
2020-11-24 12:50:01 +0100 | rprije | (~rprije@123-243-139-165.tpgi.com.au) (Ping timeout: 264 seconds) |
2020-11-24 12:50:10 +0100 | <ski> | (haven't looked in that detail at what the Clean implementation does, but wouldn't surprise me if it does that, as well) |
2020-11-24 12:50:42 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) |
2020-11-24 12:51:23 +0100 | <ski> | e.g. if you append two lists in Clean, the first of which is unique, it'll just update-in-place the final tail of the first to point to the second, rather than allocating new nodes for the first list, copying it |
2020-11-24 12:51:45 +0100 | Rudd0 | (~Rudd0@185.189.115.98) (Remote host closed the connection) |
2020-11-24 12:52:10 +0100 | <dminuoso> | From what I hear, that alone gives Clean the advantage over GHC with all its fancy simplifier psases |
2020-11-24 12:52:19 +0100 | <dminuoso> | In terms of performance, given some benchmarks. |
2020-11-24 12:56:11 +0100 | veverak | jar_jar |
2020-11-24 12:56:16 +0100 | <ski> | it has a fancy bounded uniqueness polymorphic system, so that the same (source) append can be used in the different modes (i think some of them will use the same generated code, while others will use separate code (e.g. not allocating, but updating)) |
2020-11-24 12:56:26 +0100 | jar_jar | veverak |
2020-11-24 12:57:00 +0100 | hackage | deferred-folds 0.9.12 - Abstractions over deferred folds https://hackage.haskell.org/package/deferred-folds-0.9.12 (NikitaVolkov) |
2020-11-24 12:57:08 +0100 | <ski> | in Mercury, it's just ad hoc overloading of the modes, no uniqueness variables with bounds |
2020-11-24 12:57:28 +0100 | <nr3rsl> | Hi guys, i'm looking for haskell programmers to work in portugal any one? |
2020-11-24 13:00:24 +0100 | <bulters> | Can vouch for PT as a country... Brilliant place to live... |
2020-11-24 13:00:40 +0100 | <nr3rsl> | yes it is :) |
2020-11-24 13:00:51 +0100 | <nr3rsl> | but no haskell guys :( |
2020-11-24 13:01:28 +0100 | <drdo> | nr3rsl: What kind of work? |
2020-11-24 13:02:28 +0100 | concept2 | (~concept2@unaffiliated/tubo) (Quit: See ya later!) |
2020-11-24 13:03:31 +0100 | concept2 | (~concept2@unaffiliated/tubo) |
2020-11-24 13:04:49 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-24 13:04:57 +0100 | <nr3rsl> | its related to trains |
2020-11-24 13:05:51 +0100 | <nr3rsl> | join a big team 20+ |
2020-11-24 13:08:23 +0100 | darjeeling_ | (~darjeelin@122.245.219.209) |
2020-11-24 13:12:54 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 13:17:16 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
2020-11-24 13:17:40 +0100 | LKoen | (~LKoen@169.244.88.92.rev.sfr.net) |
2020-11-24 13:24:02 +0100 | bulters | (~jeroen@5920ab49.static.cust.trined.nl) (Ping timeout: 264 seconds) |
2020-11-24 13:24:30 +0100 | <maerwald> | functional safety? |
2020-11-24 13:25:57 +0100 | <Uniaika> | < nr3rsl> but no haskell guys :( // hahaha we have one of yours in my company! |
2020-11-24 13:26:10 +0100 | <Uniaika> | he went back to Portugal when France went into quarantine |
2020-11-24 13:26:18 +0100 | xsperry | (~as@unaffiliated/xsperry) () |
2020-11-24 13:26:20 +0100 | xsperry | (~as@unaffiliated/xsperry) |
2020-11-24 13:27:08 +0100 | <Uniaika> | nr3rsl: long story short, if you want to hire people for a team, hire a couple of experts and then people who are willing to learn |
2020-11-24 13:27:25 +0100 | <Uniaika> | you don't need to hire a team full of experts |
2020-11-24 13:28:29 +0100 | <maerwald> | Uniaika: yeah, for knowledge, only the team maximum is relevant, for motivation the sum :) |
2020-11-24 13:29:08 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone) |
2020-11-24 13:29:31 +0100 | <Uniaika> | :) |
2020-11-24 13:29:37 +0100 | raichoo | (~raichoo@213.240.178.58) (Quit: Lost terminal) |
2020-11-24 13:30:05 +0100 | <maerwald> | (also, the most knowledgable guys are usually harder to motivate) |
2020-11-24 13:31:10 +0100 | Tario | (~Tario@201.192.165.173) |
2020-11-24 13:31:25 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds) |
2020-11-24 13:32:20 +0100 | <dminuoso> | Say Im folding/traversing a Data.Graph.tree, I want to keep track of the current path, as a sort of `traverse :: (NonEmpty a -> f b) -> Tree a -> f (Tree b)`, can I create this out of combinators trivially? |
2020-11-24 13:32:35 +0100 | lpy | (~nyd@unaffiliated/elysian) |
2020-11-24 13:32:35 +0100 | <dminuoso> | Or should I build this by hand? |
2020-11-24 13:33:06 +0100 | bulters | (~jeroen@82-161-48-217.ip.xs4all.nl) |
2020-11-24 13:34:21 +0100 | Zetagon | (~leo@c151-177-52-233.bredband.comhem.se) |
2020-11-24 13:35:09 +0100 | Tops2 | (~Tobias@dyndsl-095-033-095-017.ewe-ip-backbone.de) |
2020-11-24 13:35:20 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2020-11-24 13:36:16 +0100 | <nr3rsl> | i'm looking for people that is independent we are hiring juniors also but we need experienced people in the beggining |
2020-11-24 13:36:34 +0100 | neiluj | (~jco@unaffiliated/neiluj) (Quit: Lost terminal) |
2020-11-24 13:36:35 +0100 | Entertainment | (~entertain@104.246.132.210) |
2020-11-24 13:37:07 +0100 | <dminuoso> | nr3rsl: Try also haskell-cafe |
2020-11-24 13:38:29 +0100 | <Rembane> | nr3rsl: On premise or remote? |
2020-11-24 13:38:54 +0100 | <nr3rsl> | right now its ok to be remote due this covid situation |
2020-11-24 13:39:19 +0100 | <nr3rsl> | but in the future we would like to have a team in the office |
2020-11-24 13:39:34 +0100 | <nr3rsl> | but its important to have the same timezone |
2020-11-24 13:39:41 +0100 | <nr3rsl> | ie pt uk |
2020-11-24 13:40:05 +0100 | Achylles | (~Achylles@177.188.61.67) |
2020-11-24 13:40:36 +0100 | <sshine> | do you mean it important to have a mostly overlapping working day? or is it important to live in UTC+0 regardless of global latitude? :) |
2020-11-24 13:41:00 +0100 | hackage | massiv 0.5.7.0 - Massiv (Массив) is an Array Library. https://hackage.haskell.org/package/massiv-0.5.7.0 (lehins) |
2020-11-24 13:41:07 +0100 | Digit | (~user@fsf/member/digit) |
2020-11-24 13:41:14 +0100 | Achylles | (~Achylles@177.188.61.67) (Max SendQ exceeded) |
2020-11-24 13:41:21 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection) |
2020-11-24 13:41:44 +0100 | Achylles | (~Achylles@177.188.61.67) |
2020-11-24 13:42:45 +0100 | <Digit> | hi. is yi the only haskell extensible text editor written in haskell? is yi /it/? :) |
2020-11-24 13:43:11 +0100 | <sshine> | Digit, I haven't seen another one. |
2020-11-24 13:43:20 +0100 | <merijn> | There was another one, but I don't think either really gets used |
2020-11-24 13:43:20 +0100 | <dminuoso> | There was also rasa |
2020-11-24 13:43:27 +0100 | <merijn> | leksah? |
2020-11-24 13:43:29 +0100 | <sshine> | Leksah! |
2020-11-24 13:43:39 +0100 | <maerwald> | leksah was using y |
2020-11-24 13:43:39 +0100 | Lku | (5fa448e7@95.164.72.231) |
2020-11-24 13:43:41 +0100 | <maerwald> | yi |
2020-11-24 13:43:54 +0100 | <maerwald> | or some gtk thing |
2020-11-24 13:44:06 +0100 | <sshine> | yi means 1 in Chinese. |
2020-11-24 13:44:07 +0100 | <maerwald> | I don't think it had its own editor implementation |
2020-11-24 13:44:17 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 13:44:51 +0100 | <sshine> | if someone makes a sequel, it should be called "er" (二). |
2020-11-24 13:45:24 +0100 | <maerwald> | I'd call it baozi =) |
2020-11-24 13:46:14 +0100 | <sshine> | or taozi 🍑 :P |
2020-11-24 13:46:29 +0100 | geekosaur | (ac3a549d@172.58.84.157) |
2020-11-24 13:47:19 +0100 | drbean | (~drbean@TC210-63-209-208.static.apol.com.tw) |
2020-11-24 13:47:47 +0100 | FreeBirdLjj | (~freebirdl@101.228.42.108) |
2020-11-24 13:47:53 +0100 | alp | (~alp@2a01:e0a:58b:4920:92c:402a:f3e7:76c8) (Ping timeout: 272 seconds) |
2020-11-24 13:47:53 +0100 | jiribenes | (~jiribenes@rosa.jiribenes.com) (Ping timeout: 272 seconds) |
2020-11-24 13:48:07 +0100 | <maerwald> | shen jian bao |
2020-11-24 13:48:21 +0100 | <maerwald> | (there must be a monad metaphor here) |
2020-11-24 13:48:57 +0100 | <maerwald> | but tbf, they look like functors to me, with this little opening at the top |
2020-11-24 13:50:03 +0100 | alp | (~alp@2a01:e0a:58b:4920:d1f9:69ca:c0b0:463d) |
2020-11-24 13:50:32 +0100 | texasmynsted | (~texasmyns@212.102.44.39) |
2020-11-24 13:52:38 +0100 | FreeBirdLjj | (~freebirdl@101.228.42.108) (Ping timeout: 256 seconds) |
2020-11-24 13:53:56 +0100 | AlterEgo- | (~ladew@124-198-158-163.dynamic.caiway.nl) |
2020-11-24 13:55:16 +0100 | texasmynsted | (~texasmyns@212.102.44.39) (Ping timeout: 265 seconds) |
2020-11-24 13:55:36 +0100 | darjeeling_ | (~darjeelin@122.245.219.209) (Ping timeout: 240 seconds) |
2020-11-24 13:55:54 +0100 | texasmynsted | (~texasmyns@212.102.44.39) |
2020-11-24 13:56:45 +0100 | kuribas | (~user@ptr-25vy0i6zrjp217580gl.18120a2.ip6.access.telenet.be) (Ping timeout: 272 seconds) |
2020-11-24 13:56:50 +0100 | jiribenes | (~jiribenes@rosa.jiribenes.com) |
2020-11-24 13:58:53 +0100 | mmfood | (~mmfood@81-232-132-159-no64.tbcn.telia.com) |
2020-11-24 14:00:14 +0100 | frdg | (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) |
2020-11-24 14:00:18 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 14:00:35 +0100 | texasmynsted | (~texasmyns@212.102.44.39) (Ping timeout: 265 seconds) |
2020-11-24 14:02:51 +0100 | frdg | (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) () |
2020-11-24 14:02:56 +0100 | frdg | (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) |
2020-11-24 14:04:11 +0100 | jlamothe | (~jlamothe@198.251.55.207) |
2020-11-24 14:04:18 +0100 | urodna | (~urodna@unaffiliated/urodna) |
2020-11-24 14:04:20 +0100 | perrier-jouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 2.9) |
2020-11-24 14:04:40 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
2020-11-24 14:06:21 +0100 | foursaph | (~foursaph@dynamic-077-006-021-060.77.6.pool.telefonica.de) |
2020-11-24 14:08:25 +0100 | texasmynsted | (~texasmyns@212.102.44.39) |
2020-11-24 14:11:00 +0100 | raichoo | (~raichoo@213.240.178.58) |
2020-11-24 14:11:14 +0100 | <sshine> | @pl \x y -> [x,y] |
2020-11-24 14:11:14 +0100 | <lambdabot> | (. return) . (:) |
2020-11-24 14:11:17 +0100 | <sshine> | definitely fancier. |
2020-11-24 14:12:17 +0100 | darjeeling_ | (~darjeelin@122.245.219.209) |
2020-11-24 14:13:18 +0100 | <sshine> | > ((. (:[])) . (:)) 1 2 |
2020-11-24 14:13:20 +0100 | <lambdabot> | [1,2] |
2020-11-24 14:13:23 +0100 | Achylles | (~Achylles@177.188.61.67) (Remote host closed the connection) |
2020-11-24 14:13:55 +0100 | <sshine> | that's the "big robot monkey on top of small monkey" operator |
2020-11-24 14:14:20 +0100 | <maerwald> | PR rejected. |
2020-11-24 14:14:47 +0100 | <sshine> | ó_Ò |
2020-11-24 14:14:49 +0100 | <merijn> | :p |
2020-11-24 14:15:12 +0100 | acagastya | (~acagastya@wikinews/acagastya) |
2020-11-24 14:16:53 +0100 | <acagastya> | Hi, the first line of my file is `import Data.List.group` -- but I am getting `error: parse error on input ‘Data.List.group’`. |
2020-11-24 14:17:00 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2020-11-24 14:17:25 +0100 | <geekosaur> | the correct syntax would be: import Data.List (group) |
2020-11-24 14:18:09 +0100 | <geekosaur> | and "Data.List.group" is not a legal module name |
2020-11-24 14:19:20 +0100 | <acagastya> | All right, it looks like it worked. Thanks, geekosaur! |
2020-11-24 14:20:04 +0100 | Lku | (5fa448e7@95.164.72.231) (Ping timeout: 245 seconds) |
2020-11-24 14:20:49 +0100 | <yushyin> | not the most helpful error message |
2020-11-24 14:21:30 +0100 | <geekosaur> | everything around qualified names is not the most helpful in ghc |
2020-11-24 14:21:35 +0100 | shangxiao | (~davids@101.181.159.140) (Quit: WeeChat 3.0) |
2020-11-24 14:21:47 +0100 | <acagastya> | In my defence, that is what <https://wiki.haskell.org/99_questions/Solutions/8> said. |
2020-11-24 14:22:17 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-24 14:22:31 +0100 | <hpc> | if you did import qualified Data.List, in the body of your code you would write "Data.List.group" to refer to that function |
2020-11-24 14:22:49 +0100 | thevishy | (~Nishant@103.210.43.91) |
2020-11-24 14:23:32 +0100 | SanchayanMaity | (~Sanchayan@171.76.82.54) (Quit: SanchayanMaity) |
2020-11-24 14:23:41 +0100 | <hpc> | you can refer to identifiers by the module they come from, but imports always have to be modules, not identifiers |
2020-11-24 14:26:36 +0100 | <geekosaur> | kinda sounds like someone did a quick and very dirty "fix" of the wiki for FTP |
2020-11-24 14:28:30 +0100 | <hpc> | probably |
2020-11-24 14:28:36 +0100 | foursaph | (~foursaph@dynamic-077-006-021-060.77.6.pool.telefonica.de) (Quit: leaving) |
2020-11-24 14:30:47 +0100 | jchia__ | (~jchia@58.32.37.146) (Quit: Leaving.) |
2020-11-24 14:31:08 +0100 | jchia__ | (~jchia@45.32.62.73) |
2020-11-24 14:31:35 +0100 | <ski> | seems that page doesn't mention `import' |
2020-11-24 14:31:59 +0100 | perrier-jouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2020-11-24 14:32:27 +0100 | ski | sighs |
2020-11-24 14:32:40 +0100 | <hekkaidekapus> | @index group |
2020-11-24 14:32:40 +0100 | <lambdabot> | GHC.OldList, Data.List, Data.ByteString.Lazy, Data.ByteString.Lazy.Char8, Data.ByteString, Data.ByteString.Char8 |
2020-11-24 14:32:48 +0100 | <ski> | i can't rightly comprehend how people can think |
2020-11-24 14:32:50 +0100 | <ski> | compress (x:xs) = x : (compress $ dropWhile (== x) xs) |
2020-11-24 14:32:56 +0100 | <ski> | is more reasonable than |
2020-11-24 14:33:01 +0100 | <ski> | compress (x:xs) = x : compress (dropWhile (== x) xs) |
2020-11-24 14:33:34 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2020-11-24 14:33:35 +0100 | kuribas | (~user@ptr-25vy0i9hk5zsklfgprx.18120a2.ip6.access.telenet.be) |
2020-11-24 14:33:58 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 14:34:01 +0100 | hekkaidekapus | wonders whether lambdabot is using the GHC 8.10 series. |
2020-11-24 14:34:11 +0100 | <geekosaur> | @version |
2020-11-24 14:34:11 +0100 | <lambdabot> | lambdabot 5.3.0.1 |
2020-11-24 14:34:11 +0100 | <lambdabot> | git clone https://github.com/lambdabot/lambdabot |
2020-11-24 14:34:19 +0100 | <geekosaur> | hm |
2020-11-24 14:34:30 +0100 | <geekosaur> | thought that also output ghc version |
2020-11-24 14:34:38 +0100 | <merijn> | > System.Info.compilerVersion |
2020-11-24 14:34:40 +0100 | <lambdabot> | error: |
2020-11-24 14:34:40 +0100 | <lambdabot> | Not in scope: ‘System.Info.compilerVersion’ |
2020-11-24 14:34:40 +0100 | <lambdabot> | No module named ‘System.Info’ is imported. |
2020-11-24 14:34:43 +0100 | <merijn> | aww |
2020-11-24 14:35:01 +0100 | <hekkaidekapus> | Because Data.List, when unqualified, spews warning under 8.10.x. |
2020-11-24 14:35:03 +0100 | <merijn> | @import System.Info |
2020-11-24 14:35:03 +0100 | <lambdabot> | Unknown command, try @list |
2020-11-24 14:35:13 +0100 | <merijn> | I forget how to add imports >.> |
2020-11-24 14:35:18 +0100 | <geekosaur> | yahb has 8.10 iirc |
2020-11-24 14:35:26 +0100 | hexfive | (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Quit: i must go. my people need me.) |
2020-11-24 14:35:27 +0100 | <merijn> | % System.Info.compilerVersion |
2020-11-24 14:35:28 +0100 | <yahb> | merijn: Version {versionBranch = [8,10], versionTags = []} |
2020-11-24 14:35:29 +0100 | <geekosaur> | @let import System.Info |
2020-11-24 14:35:31 +0100 | <lambdabot> | Defined. |
2020-11-24 14:35:36 +0100 | <merijn> | > System.Info.compilerVersion |
2020-11-24 14:35:39 +0100 | <lambdabot> | Version {versionBranch = [8,10], versionTags = []} |
2020-11-24 14:35:42 +0100 | <merijn> | There you go |
2020-11-24 14:35:53 +0100 | <hekkaidekapus> | % head [1] |
2020-11-24 14:35:54 +0100 | <yahb> | hekkaidekapus: 1 |
2020-11-24 14:36:35 +0100 | <hekkaidekapus> | % -set -Wall |
2020-11-24 14:36:36 +0100 | <yahb> | hekkaidekapus: ; <interactive>:60:7: error:; * Data constructor not in scope: Wall :: ASetter s t a b -> b -> s -> t; * Perhaps you meant one of these: variable `all' (imported from Prelude), variable `BSL.all' (imported from Data.ByteString.Lazy), variable `BS.all' (imported from Data.ByteString) |
2020-11-24 14:36:43 +0100 | <hekkaidekapus> | % :set -Wall |
2020-11-24 14:36:43 +0100 | <yahb> | hekkaidekapus: |
2020-11-24 14:36:48 +0100 | <hekkaidekapus> | % head [1] |
2020-11-24 14:36:48 +0100 | <yahb> | hekkaidekapus: ; <interactive>:62:1: warning: [-Wtype-defaults]; * Defaulting the following constraints to type `Integer'; (Show a0) arising from a use of `print' at <interactive>:62:1-8; (Num a0) arising from a use of `it' at <interactive>:62:1-8; * In a stmt of an interactive GHCi command: print it; 1 |
2020-11-24 14:37:20 +0100 | <hekkaidekapus> | % :q |
2020-11-24 14:37:21 +0100 | <yahb> | hekkaidekapus: |
2020-11-24 14:38:28 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds) |
2020-11-24 14:39:48 +0100 | jchia__ | (~jchia@45.32.62.73) (Remote host closed the connection) |
2020-11-24 14:40:58 +0100 | jchia__ | (~jchia@45.32.62.73) |
2020-11-24 14:41:27 +0100 | mpereira | (~mpereira@2a02:810d:f40:d96:f587:a442:5e3:1e55) (Ping timeout: 260 seconds) |
2020-11-24 14:41:27 +0100 | woodpecker-with- | (3e0497aa@62.4.151.170) |
2020-11-24 14:42:28 +0100 | jchia__ | (~jchia@45.32.62.73) (Remote host closed the connection) |
2020-11-24 14:42:57 +0100 | ericsagn1 | (~ericsagne@2405:6580:0:5100:b274:8c51:102c:8ca9) (Ping timeout: 260 seconds) |
2020-11-24 14:43:22 +0100 | adm_ | (~adm@43.229.88.197) |
2020-11-24 14:43:23 +0100 | jchia__ | (~jchia@58.32.37.146) |
2020-11-24 14:43:27 +0100 | fendor_ | (~fendor@178.165.130.67.wireless.dyn.drei.com) |
2020-11-24 14:43:44 +0100 | texasmynsted | (~texasmyns@212.102.44.39) (Remote host closed the connection) |
2020-11-24 14:43:53 +0100 | st8less | (~st8less@2603:a060:11fd:0:b11b:e5d8:ecef:8990) |
2020-11-24 14:44:20 +0100 | texasmynsted | (~texasmyns@212.102.44.39) |
2020-11-24 14:44:22 +0100 | drbean | (~drbean@TC210-63-209-208.static.apol.com.tw) (Ping timeout: 272 seconds) |
2020-11-24 14:44:52 +0100 | mmfood | (~mmfood@81-232-132-159-no64.tbcn.telia.com) (Quit: Leaving) |
2020-11-24 14:45:16 +0100 | Iceland_jack | (~user@31.124.48.169) |
2020-11-24 14:46:00 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2020-11-24 14:46:01 +0100 | fendor | (~fendor@91.141.0.31.wireless.dyn.drei.com) (Ping timeout: 265 seconds) |
2020-11-24 14:47:04 +0100 | bergey | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
2020-11-24 14:47:27 +0100 | ClaudiusMaximus | (~claude@198.123.199.146.dyn.plus.net) |
2020-11-24 14:47:45 +0100 | ClaudiusMaximus | (~claude@198.123.199.146.dyn.plus.net) (Changing host) |
2020-11-24 14:47:45 +0100 | ClaudiusMaximus | (~claude@unaffiliated/claudiusmaximus) |
2020-11-24 14:47:47 +0100 | jelleke | (~jelle@2a01:7c8:aac1:50d:5054:ff:fe3b:9b7d) (Quit: WeeChat 1.6) |
2020-11-24 14:49:00 +0100 | texasmynsted | (~texasmyns@212.102.44.39) (Ping timeout: 260 seconds) |
2020-11-24 14:49:59 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
2020-11-24 14:52:20 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
2020-11-24 14:52:33 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
2020-11-24 14:52:55 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-24 14:54:23 +0100 | st8less | (~st8less@2603:a060:11fd:0:b11b:e5d8:ecef:8990) (Ping timeout: 272 seconds) |
2020-11-24 15:01:05 +0100 | st8less | (~st8less@2603:a060:11fd:0:b11b:e5d8:ecef:8990) |
2020-11-24 15:01:06 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) (Remote host closed the connection) |
2020-11-24 15:01:06 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) |
2020-11-24 15:01:06 +0100 | thevishy | (~Nishant@103.210.43.91) (Quit: Leaving) |
2020-11-24 15:01:15 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
2020-11-24 15:01:32 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
2020-11-24 15:01:37 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-24 15:02:23 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-11-24 15:03:00 +0100 | hackage | prolude 0.0.0.11 - ITProTV's custom prelude https://hackage.haskell.org/package/prolude-0.0.0.11 (saramuse) |
2020-11-24 15:03:56 +0100 | woodpecker-with- | (3e0497aa@62.4.151.170) (Remote host closed the connection) |
2020-11-24 15:05:56 +0100 | mpereira | (~mpereira@2a02:810d:f40:d96:f587:a442:5e3:1e55) |
2020-11-24 15:06:36 +0100 | pie_ | (~pie_bnc]@unaffiliated/pie-/x-0787662) (Ping timeout: 240 seconds) |
2020-11-24 15:06:36 +0100 | vancz | (~vancz@unaffiliated/vancz) (Ping timeout: 240 seconds) |
2020-11-24 15:08:27 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
2020-11-24 15:09:46 +0100 | adm_ | (~adm@43.229.88.197) (Remote host closed the connection) |
2020-11-24 15:10:07 +0100 | adm_ | (~adm@43.229.88.197) |
2020-11-24 15:10:28 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 15:10:34 +0100 | vancz | (~vancz@unaffiliated/vancz) |
2020-11-24 15:10:34 +0100 | pie_ | (~pie_bnc]@unaffiliated/pie-/x-0787662) |
2020-11-24 15:11:44 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:6150:c6af:125a:9cae) |
2020-11-24 15:14:45 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
2020-11-24 15:16:03 +0100 | <dminuoso> | Im converting a file into a tree by parsing line-by-line. The knowledge where the next node goes comes from ambient state, is there a general trick for building a tree like that? Just have some `data Tree = Tree (IORef [Tree])` that I walk around and attach nodes at the right spots? |
2020-11-24 15:19:06 +0100 | <merijn> | dminuoso: ooh...lemme know when you figure it out, I have a similar-ish problem :p |
2020-11-24 15:21:01 +0100 | hackage | quickcheck-arbitrary-template 0.2.1.1 - Generate QuickCheck Gen for Sum Types https://hackage.haskell.org/package/quickcheck-arbitrary-template-0.2.1.1 (mchaver) |
2020-11-24 15:24:12 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2020-11-24 15:24:36 +0100 | texasmynsted | (~texasmyns@212.102.44.39) |
2020-11-24 15:24:37 +0100 | <dminuoso> | https://hackage.haskell.org/package/uniplate-1.6.13/docs/Data-Generics-Uniplate-Zipper.html |
2020-11-24 15:24:44 +0100 | <ski> | what's the traversal order for serializing the tree ? |
2020-11-24 15:25:22 +0100 | <dminuoso> | ski: Mmm good question. I think it doesn't matter. |
2020-11-24 15:25:43 +0100 | <dminuoso> | Ah no, it will be depth first |
2020-11-24 15:25:51 +0100 | <nr3rsl> | i'm looking for people that is independent we are hiring juniors also but we need experienced people in the beggining (if you are intrested private msg pls) |
2020-11-24 15:25:59 +0100 | <ski> | are you trying to avoid a (multiply) recursive parsing ? |
2020-11-24 15:26:38 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 256 seconds) |
2020-11-24 15:27:06 +0100 | <ezzieyguywuf> | is this standard syntax or a language extension? `inp,outp :: Maybe String -> Flag` |
2020-11-24 15:27:42 +0100 | <dminuoso> | ezzieyguywuf: standard haskell |
2020-11-24 15:27:43 +0100 | <geekosaur> | standard syntax |
2020-11-24 15:28:07 +0100 | <ezzieyguywuf> | oh wow! does it have a fancy name? I've never seen it before. |
2020-11-24 15:28:12 +0100 | <geekosaur> | you can declare multiple names that way, it's just not considered the best of style except in some cases |
2020-11-24 15:28:24 +0100 | <ezzieyguywuf> | ah, ok |
2020-11-24 15:28:31 +0100 | <geekosaur> | better is considered to keep name declarations and definitions together |
2020-11-24 15:29:26 +0100 | <merijn> | If you wanna define a type, for a tuple it can work well |
2020-11-24 15:29:59 +0100 | <merijn> | "a, b :: Int; (a, b) = (1, 2)" that's a dumb example, of course, but you get the idea |
2020-11-24 15:30:07 +0100 | <merijn> | ezzieyguywuf: Lemme blow your mind further :p |
2020-11-24 15:30:25 +0100 | <merijn> | ezzieyguywuf: You can define module variables using pattern matching just fine |
2020-11-24 15:30:28 +0100 | texasmynsted | (~texasmyns@212.102.44.39) (Ping timeout: 260 seconds) |
2020-11-24 15:30:42 +0100 | <geekosaur> | you did there |
2020-11-24 15:30:46 +0100 | <merijn> | "[x,y,z] = [1,2,3]" at the module top level is perfectly legal |
2020-11-24 15:31:00 +0100 | trcc | (~trcc@130.225.16.16) (Ping timeout: 260 seconds) |
2020-11-24 15:31:07 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
2020-11-24 15:33:50 +0100 | adm_ | (~adm@43.229.88.197) (Remote host closed the connection) |
2020-11-24 15:34:12 +0100 | adm_ | (~adm@43.229.88.197) |
2020-11-24 15:36:57 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 15:39:34 +0100 | <dminuoso> | ski: Mmm. That question made me think. |
2020-11-24 15:39:43 +0100 | texasmynsted | (~texasmyns@212.102.44.39) |
2020-11-24 15:41:06 +0100 | bergey` | (~user@107.181.19.30) |
2020-11-24 15:44:12 +0100 | bergey | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 256 seconds) |
2020-11-24 15:45:23 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Quit: mputz) |
2020-11-24 15:45:31 +0100 | geekosaur | (ac3a549d@172.58.84.157) (Remote host closed the connection) |
2020-11-24 15:47:45 +0100 | <hekkaidekapus> | dminuoso: You could also give tries a try. |
2020-11-24 15:48:01 +0100 | <dminuoso> | Not sure whether you just wanted to make that pun.. |
2020-11-24 15:48:09 +0100 | <hekkaidekapus> | heh |
2020-11-24 15:48:31 +0100 | <hekkaidekapus> | Ok, seriously, why not a trie? |
2020-11-24 15:49:09 +0100 | <merijn> | So, I basically have this tree encoded as a Vector. I was hoping I could somehow (abuse) pattern synonyms to represent it as an ADT style true, but I can't quite make that work, it seems? |
2020-11-24 15:49:33 +0100 | <dminuoso> | hekkaidekapus: Generating a tree from a recursive algorithm is easy, but the data I have make a recursive parser tough to write. |
2020-11-24 15:50:45 +0100 | <dminuoso> | But.. perhaps Zipper from uniplate is the real solution here |
2020-11-24 15:50:55 +0100 | royal_screwup213 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 15:50:56 +0100 | Iceland_jack | (~user@31.124.48.169) (Ping timeout: 240 seconds) |
2020-11-24 15:51:01 +0100 | <dminuoso> | So my parser essentially drives a Zipper around, and constantly runs `replaceHole` |
2020-11-24 15:51:26 +0100 | <dminuoso> | The alternate option is I try and transform the data and implement a recursive parser. |
2020-11-24 15:52:14 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2020-11-24 15:52:42 +0100 | fendor_ | fendor |
2020-11-24 15:52:48 +0100 | <hekkaidekapus> | Which bring you back to deciding how you want to traverse. |
2020-11-24 15:53:59 +0100 | <dminuoso> | Maybe I misunderstood, what is the purpose of that question, hekkaidekapus? |
2020-11-24 15:54:02 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds) |
2020-11-24 15:55:41 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@mx-ll-171.5.161-165.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-24 15:55:53 +0100 | <hekkaidekapus> | It was just an idea: if you represent the data as a multi-keyed map, each step forming a key, you could later merge it into a trie. |
2020-11-24 15:56:08 +0100 | <hekkaidekapus> | But maybe that’s not how your data is organised. |
2020-11-24 15:56:40 +0100 | <acagastya> | What is this line supposed to mean? `quicksort :: Ord a => [a] -> [a]`. Specifically, `Ord a =>` |
2020-11-24 15:56:53 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 256 seconds) |
2020-11-24 15:56:57 +0100 | <xerox_> | acagastya: means whatever type 'a' ends up being, it has to have an Ord instance, it's a constraint |
2020-11-24 15:57:36 +0100 | Sgeo | (~Sgeo@ool-18b982ad.dyn.optonline.net) |
2020-11-24 15:57:55 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds) |
2020-11-24 15:58:19 +0100 | ph88 | (~ph88@ip5f5af6cd.dynamic.kabel-deutschland.de) |
2020-11-24 15:58:55 +0100 | madnight | (~madnight@static.59.103.201.195.clients.your-server.de) (Quit: ZNC 1.7.1 - https://znc.in) |
2020-11-24 15:59:20 +0100 | <acagastya> | Okay. When I just type `quicksort :: [a] -> [a]` and have the implementation -- it does not work -- it gives an error. Why? |
2020-11-24 15:59:28 +0100 | <solonarv> | the fact that 'a' is a type variable means "the caller of this function can choose to replace a with any type"; the Ord a => bit means "... as long as there exists an Ord a instance" |
2020-11-24 15:59:34 +0100 | madnight | (~madnight@static.59.103.201.195.clients.your-server.de) |
2020-11-24 15:59:41 +0100 | <merijn> | acagastya: Presumably because you're using < :p |
2020-11-24 15:59:45 +0100 | <merijn> | :t (<) |
2020-11-24 15:59:46 +0100 | <lambdabot> | Ord a => a -> a -> Bool |
2020-11-24 15:59:48 +0100 | <merijn> | :t (<=) |
2020-11-24 15:59:49 +0100 | <solonarv> | this is needed because the implementation of quicksort uses functions like <= or < and so on |
2020-11-24 15:59:49 +0100 | <lambdabot> | Ord a => a -> a -> Bool |
2020-11-24 15:59:50 +0100 | <xerox_> | acagastya: because the implementation uses some methods from the ord class on the elements of the list, in this case to compare them |
2020-11-24 16:00:21 +0100 | <xerox_> | hence its argument can't be a list of things that are not comparable |
2020-11-24 16:00:23 +0100 | <acagastya> | `<=` and `<` are functions? |
2020-11-24 16:00:32 +0100 | <xerox_> | they are! |
2020-11-24 16:01:09 +0100 | <acagastya> | Wow -- I have so much to unlearn to learn Haskell. |
2020-11-24 16:01:10 +0100 | <xerox_> | if you type :info Ord on ghci you'll see all the functions in the Ord class at the top of the output |
2020-11-24 16:01:23 +0100 | <xerox_> | followed by a decently long list of the instances already in scope |
2020-11-24 16:01:35 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) |
2020-11-24 16:01:56 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 16:02:05 +0100 | <dminuoso> | hekkaidekapus: Roughly the data is organized like this: https://gist.github.com/dminuoso/e05c57c211a4b544052dc26f99e9266f |
2020-11-24 16:02:19 +0100 | <dminuoso> | (I've cleaned it from a lot of the other baggage) |
2020-11-24 16:02:46 +0100 | <dminuoso> | So each line containing a number is a node in that tree |
2020-11-24 16:02:51 +0100 | <acagastya> | I have been thinking how would the minds of the beginners to programming evolve, if they were taught Haskell as their first PL. The way to think abstractly is so different from what I am used to! |
2020-11-24 16:02:55 +0100 | <xerox_> | they might seem special because they are operators and hence use infix syntax, i.e. you put them between tha arguments instead of before the argument with standard functions, but that's just syntax |
2020-11-24 16:03:20 +0100 | <merijn> | acagastya: Operators are just "functions that you write infix" |
2020-11-24 16:03:25 +0100 | alp | (~alp@2a01:e0a:58b:4920:d1f9:69ca:c0b0:463d) (Ping timeout: 272 seconds) |
2020-11-24 16:03:28 +0100 | <xerox_> | you *can* use them with the standard function application too tho, with parens: |
2020-11-24 16:03:33 +0100 | <xerox_> | > (<=) 2 5 |
2020-11-24 16:03:35 +0100 | <lambdabot> | True |
2020-11-24 16:03:35 +0100 | <acagastya> | Like a `mod` b, merijn? |
2020-11-24 16:03:41 +0100 | <merijn> | Can even define your own |
2020-11-24 16:03:50 +0100 | <dminuoso> | hekkaidekapus: oh and these numbers could be even more nested, so you could have .11.2, and so forth |
2020-11-24 16:03:55 +0100 | <dminuoso> | these would represent further nested nodes |
2020-11-24 16:03:57 +0100 | <merijn> | > let x ☃ y = (x-y) * (y-x) in 3 ☃ 5 |
2020-11-24 16:03:59 +0100 | <lambdabot> | -4 |
2020-11-24 16:04:06 +0100 | <xerox_> | what a cutie of an operator |
2020-11-24 16:04:11 +0100 | <dminuoso> | if a number starts with `.` its a child of the previos absolute number |
2020-11-24 16:04:31 +0100 | <dminuoso> | I mean yeah, with a recursive parser I'd have to do a lot of lookahead |
2020-11-24 16:04:37 +0100 | <merijn> | xerox_: Everyone loves unicode snowman :p |
2020-11-24 16:04:56 +0100 | <xerox_> | it's basically seasonal too |
2020-11-24 16:05:19 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
2020-11-24 16:05:20 +0100 | <hekkaidekapus> | dminuoso: I see. So, it’s not only about data representation, it’s also about parsing strategy. |
2020-11-24 16:05:48 +0100 | <dminuoso> | hekkaidekapus: Maybe, I dont know. Until now I parsed it into a sort intermediate language with a sketchy interpreter |
2020-11-24 16:06:27 +0100 | <hekkaidekapus> | Maybe write down a grammar and be done with parsing. |
2020-11-24 16:06:49 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds) |
2020-11-24 16:07:02 +0100 | <dminuoso> | well the raw parsing is done, I was just really lazy since ParsecT is a monad transformer.. |
2020-11-24 16:07:08 +0100 | <dminuoso> | so I tohught "why not do more work while Im parsing" |
2020-11-24 16:07:30 +0100 | hackage | req 3.8.0 - Easy-to-use, type-safe, expandable, high-level HTTP client library https://hackage.haskell.org/package/req-3.8.0 (mrkkrp) |
2020-11-24 16:08:01 +0100 | royal_screwup213 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2020-11-24 16:08:28 +0100 | <dminuoso> | For some bizarre reason, in this week I've this type of "how do I generate a tree properly from a flat file" in three completely unrelated projects |
2020-11-24 16:08:31 +0100 | royal_screwup213 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 16:08:32 +0100 | <hekkaidekapus> | I would go with the Happy route to record steps taken wwhile parsing and use those to represent the final tidy data. |
2020-11-24 16:08:47 +0100 | <dminuoso> | "steps taken"? |
2020-11-24 16:08:58 +0100 | <hekkaidekapus> | Production rules. |
2020-11-24 16:11:53 +0100 | <dminuoso> | I see, so concretely that could mean annotating the data with fully resolved paths, where I might have a list of nodes each with a sort of path `data Node a = Node { nodeLabel a, nodePath :: NonEmpty Int }` |
2020-11-24 16:12:00 +0100 | <dminuoso> | as the result of the parser |
2020-11-24 16:12:16 +0100 | <dminuoso> | And then it's just a matter of folding [Node] into a free |
2020-11-24 16:12:18 +0100 | <dminuoso> | *tree |
2020-11-24 16:12:33 +0100 | <hekkaidekapus> | Yep. |
2020-11-24 16:12:55 +0100 | <hekkaidekapus> | The bulk of the work is in writing the grammar. |
2020-11-24 16:12:57 +0100 | adm_ | (~adm@43.229.88.197) (Remote host closed the connection) |
2020-11-24 16:13:10 +0100 | royal_screwup213 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
2020-11-24 16:15:25 +0100 | n0042 | (d055ed89@208.85.237.137) |
2020-11-24 16:16:30 +0100 | andos | (~dan@69-165-210-185.cable.teksavvy.com) |
2020-11-24 16:17:58 +0100 | <dminuoso> | Mmm, oh. I dont even have to do the folding myself |
2020-11-24 16:18:03 +0100 | <dminuoso> | https://hackage.haskell.org/package/tries-0.0.6.1/docs/Data-Trie-Class.html#v:fromFoldable |
2020-11-24 16:18:05 +0100 | <dminuoso> | Cute |
2020-11-24 16:18:40 +0100 | <hekkaidekapus> | \o/ |
2020-11-24 16:18:49 +0100 | bulters | (~jeroen@82-161-48-217.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2020-11-24 16:19:11 +0100 | nr3rsl | (nr3rsl@94.63.218.65) () |
2020-11-24 16:19:22 +0100 | hseg | (~gesh@185.120.126.113) |
2020-11-24 16:19:31 +0100 | <hekkaidekapus> | There is also generic-trie (hey glguy) and multi-trie. |
2020-11-24 16:19:35 +0100 | <dminuoso> | hekkaidekapus: Guess you didn't just want to make a pun after all. Thanks for trieing. |
2020-11-24 16:19:45 +0100 | <hekkaidekapus> | hahaha… |
2020-11-24 16:19:57 +0100 | <n0042> | XD |
2020-11-24 16:20:28 +0100 | <arianvp> | I have a question about overlapping instances |
2020-11-24 16:20:38 +0100 | <arianvp> | https://github.com/haskell-servant/servant/issues/1367 |
2020-11-24 16:21:01 +0100 | <arianvp> | why would these two instances overlap? There is no `ToJSON` instance for `WithStatus n a` |
2020-11-24 16:21:51 +0100 | <dminuoso> | arianvp: instance context is not considered for selection |
2020-11-24 16:22:03 +0100 | <arianvp> | aaaah |
2020-11-24 16:22:13 +0100 | <arianvp> | so I need to add an explicit `overlaps` here? |
2020-11-24 16:22:31 +0100 | <dminuoso> | Well |
2020-11-24 16:22:33 +0100 | <dminuoso> | instance MimeRender ctype a => MimeRender ctype (WithStatus _status a) |
2020-11-24 16:22:36 +0100 | <dminuoso> | instance [overlappable] ToJSON a => MimeRender JSON a |
2020-11-24 16:22:45 +0100 | <dminuoso> | Imagine you're tryng to match `MimeRender JSON (WithStatus 201 ())` |
2020-11-24 16:22:48 +0100 | <dminuoso> | This matches *both* |
2020-11-24 16:23:08 +0100 | <dminuoso> | Compare the instance heads |
2020-11-24 16:23:10 +0100 | <dminuoso> | MimeRender ctype (WithStatus _status a |
2020-11-24 16:23:15 +0100 | <dminuoso> | MimeRender JSON a |
2020-11-24 16:23:32 +0100 | <dminuoso> | Both match, and none is more specific. |
2020-11-24 16:24:40 +0100 | bulters | (~jeroen@82-161-48-217.ip.xs4all.nl) |
2020-11-24 16:24:49 +0100 | <arianvp> | hmm |
2020-11-24 16:25:12 +0100 | <arianvp> | so I should make a instance MimeRender JSON a => MimeRender JSON (WithStatus _s a) instead ? |
2020-11-24 16:25:14 +0100 | st8less | (~st8less@2603:a060:11fd:0:b11b:e5d8:ecef:8990) (Ping timeout: 264 seconds) |
2020-11-24 16:25:20 +0100 | <arianvp> | (for each content type) |
2020-11-24 16:25:34 +0100 | <arianvp> | and mark that as overlapping? |
2020-11-24 16:26:05 +0100 | <dminuoso> | Well you wouldnt have to mark it as overlapping, as the other instance is already overlappable |
2020-11-24 16:26:07 +0100 | st8less | (~st8less@2603:a060:11fd:0:b11b:e5d8:ecef:8990) |
2020-11-24 16:26:24 +0100 | <dminuoso> | (for overlap to work, either overlapping or overlappable is enough) |
2020-11-24 16:26:28 +0100 | <arianvp> | ah |
2020-11-24 16:26:35 +0100 | <arianvp> | thanks! |
2020-11-24 16:26:55 +0100 | adm_ | (~adm@43.229.88.197) |
2020-11-24 16:27:05 +0100 | adm_ | (~adm@43.229.88.197) (Remote host closed the connection) |
2020-11-24 16:27:20 +0100 | hseg | (~gesh@185.120.126.113) (Ping timeout: 256 seconds) |
2020-11-24 16:28:23 +0100 | adm_ | (~adm@43.229.88.197) |
2020-11-24 16:29:03 +0100 | <arianvp> | *sends a fix* |
2020-11-24 16:29:05 +0100 | gioyik | (~gioyik@186.118.238.251) |
2020-11-24 16:29:09 +0100 | <dminuoso> | arianvp: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/instances.html?highlight=overlapping |
2020-11-24 16:29:23 +0100 | <dminuoso> | Also https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/instances.html?highlight=overlapping#insta… |
2020-11-24 16:32:00 +0100 | hackage | unbounded-delays 0.1.1.1 - Unbounded thread delays and timeouts https://hackage.haskell.org/package/unbounded-delays-0.1.1.1 (RoelVanDijk) |
2020-11-24 16:32:12 +0100 | royal_screwup213 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 16:32:55 +0100 | adm_ | (~adm@43.229.88.197) (Remote host closed the connection) |
2020-11-24 16:33:31 +0100 | <arianvp> | I must say the GHC error message is horrible for this |
2020-11-24 16:33:50 +0100 | <arianvp> | well in hindsight I understand it now |
2020-11-24 16:34:15 +0100 | <arianvp> | it would be nice if it hid the context and highlight the parts that are in conflict |
2020-11-24 16:34:23 +0100 | <dminuoso> | Is it horrible? |
2020-11-24 16:34:33 +0100 | <dminuoso> | Well, it'd be misleading to hide the context |
2020-11-24 16:35:47 +0100 | <dminuoso> | GHC *does* tell you that there's two matching instances for the constraint `MimeRender JSON (WithStatus 201 ())` |
2020-11-24 16:35:55 +0100 | Df | (5fa448e7@95.164.72.231) |
2020-11-24 16:35:56 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2020-11-24 16:36:11 +0100 | adm_ | (~adm@43.229.88.197) |
2020-11-24 16:36:40 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2020-11-24 16:36:53 +0100 | <arianvp> | I got sidetracked into wondering "But WIthStatus" doesnt _have_ a ToJSON why would it overlap? but now that I know the contexts aren't considered it makes sense |
2020-11-24 16:37:05 +0100 | <arianvp> | perhaps a note in the error message explaining that would be a nice nudge =) |
2020-11-24 16:37:12 +0100 | toorevitimirp | (~tooreviti@117.182.183.18) (Remote host closed the connection) |
2020-11-24 16:37:43 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2020-11-24 16:38:38 +0100 | <dminuoso> | Do you have a suggestion? |
2020-11-24 16:40:20 +0100 | <dminuoso> | The crux is, GHC cant really know why it has the problem that it is. |
2020-11-24 16:40:28 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Ping timeout: 260 seconds) |
2020-11-24 16:40:34 +0100 | <dminuoso> | If you look at the full algorithm described in https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/instances.html?highlight=overlapping#overl… |
2020-11-24 16:40:55 +0100 | <dminuoso> | (Which by the way is still incomplete, but that's another story) |
2020-11-24 16:41:00 +0100 | hackage | cli-extras 0.1.0.1 - Miscellaneous utilities for building and working with command line interfaces https://hackage.haskell.org/package/cli-extras-0.1.0.1 (abrar) |
2020-11-24 16:41:46 +0100 | <dminuoso> | Then the algorithm is far more involved than than just "ignore context and find the best intsance" |
2020-11-24 16:44:15 +0100 | ggole | (~ggole@2001:8003:8119:7200:882e:5c1e:9189:4cff) |
2020-11-24 16:44:25 +0100 | <dminuoso> | But admittedly, we see people stumbling over this nearly every day. |
2020-11-24 16:44:40 +0100 | <dminuoso> | (And interestingly this behavior is not specified in the Haskell report either) |
2020-11-24 16:44:41 +0100 | Iceland_jack | (~user@31.124.48.169) |
2020-11-24 16:44:50 +0100 | <Uniaika> | hi Iceland_jack :) |
2020-11-24 16:44:54 +0100 | <Uniaika> | how are you? |
2020-11-24 16:44:57 +0100 | <arianvp> | I dont think the error message needs to explain exactly what's happening with 100% accuracy |
2020-11-24 16:45:07 +0100 | <arianvp> | but it's nice (rust does this as well) when an error lists a "Common cause" |
2020-11-24 16:45:28 +0100 | <arianvp> | "Hey; you might not realise it but the context is not considered when deciding if something overlaps" |
2020-11-24 16:45:30 +0100 | <Uniaika> | it's very useful |
2020-11-24 16:45:33 +0100 | <dminuoso> | I recall an issue on ghc gitlab about this |
2020-11-24 16:46:05 +0100 | <arianvp> | It's up to the user to decide if that hint applies to their situation; but at least it gives them food for thought |
2020-11-24 16:46:54 +0100 | <dminuoso> | Feel free to open an issue on ghc gitlab about this |
2020-11-24 16:46:58 +0100 | adm_ | (~adm@43.229.88.197) (Remote host closed the connection) |
2020-11-24 16:47:27 +0100 | reallymemorable | (~quassel@2601:180:8300:8fd0:4ce1:c8ee:d3b9:46c5) |
2020-11-24 16:47:43 +0100 | <dminuoso> | The idea is certainly not unreasonable, especially given how frequently we get people thinking that instance context is taken into consideration for instance selection, just to trip into GHC diagnostics or surprising bugs. |
2020-11-24 16:48:15 +0100 | <arianvp> | :+1: |
2020-11-24 16:48:21 +0100 | <arianvp> | i'll try to not forget to open a ticket :) |
2020-11-24 16:48:47 +0100 | adm_ | (~adm@43.229.88.197) |
2020-11-24 16:50:11 +0100 | <Uniaika> | lambdabot needs a !remindme |
2020-11-24 16:51:16 +0100 | phaul | (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
2020-11-24 16:51:56 +0100 | phaul | (~phaul@ruby/staff/phaul) |
2020-11-24 16:53:51 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2020-11-24 16:53:56 +0100 | adm_ | (~adm@43.229.88.197) (Ping timeout: 240 seconds) |
2020-11-24 16:57:00 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2020-11-24 16:57:03 +0100 | caecilius | (~caecilius@pool-108-46-151-95.nycmny.fios.verizon.net) (Quit: leaving) |
2020-11-24 16:57:21 +0100 | caecilius | (~caecilius@pool-108-46-151-95.nycmny.fios.verizon.net) |
2020-11-24 16:57:22 +0100 | caecilius | (~caecilius@pool-108-46-151-95.nycmny.fios.verizon.net) (Client Quit) |
2020-11-24 16:57:43 +0100 | caecilius | (~caecilius@pool-108-46-151-95.nycmny.fios.verizon.net) |
2020-11-24 16:57:47 +0100 | caecilius | (~caecilius@pool-108-46-151-95.nycmny.fios.verizon.net) (Client Quit) |
2020-11-24 16:58:12 +0100 | caecilius | (~caecilius@pool-108-46-151-95.nycmny.fios.verizon.net) |
2020-11-24 16:58:46 +0100 | caecilius | (~caecilius@pool-108-46-151-95.nycmny.fios.verizon.net) (Client Quit) |
2020-11-24 16:59:01 +0100 | caecilius | (~caecilius@pool-108-46-151-95.nycmny.fios.verizon.net) |
2020-11-24 16:59:45 +0100 | adm_ | (~adm@43.229.88.197) |
2020-11-24 17:00:17 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-24 17:00:18 +0100 | elpfen[m] | (elpfenmatr@gateway/shell/matrix.org/x-aisvdtstqpsxnxki) (Quit: Idle for 30+ days) |
2020-11-24 17:00:32 +0100 | Rudd0 | (~Rudd0@185.189.115.98) |
2020-11-24 17:00:59 +0100 | Aquazi | (uid312403@gateway/web/irccloud.com/x-wbgzurqeqqwdxxpf) |
2020-11-24 17:02:00 +0100 | hackage | cli-git 0.1.0.1 - Bindings to the git command-line interface https://hackage.haskell.org/package/cli-git-0.1.0.1 (abrar) |
2020-11-24 17:02:17 +0100 | adm__ | (~adm@43.229.88.197) |
2020-11-24 17:04:25 +0100 | adm_ | (~adm@43.229.88.197) (Ping timeout: 264 seconds) |
2020-11-24 17:04:44 +0100 | n0042 | (d055ed89@208.85.237.137) (Remote host closed the connection) |
2020-11-24 17:05:18 +0100 | ggVGc | (~ggVGc@a.lowtech.earth) (Changing host) |
2020-11-24 17:05:18 +0100 | ggVGc | (~ggVGc@unaffiliated/walt) |
2020-11-24 17:06:12 +0100 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) (Ping timeout: 260 seconds) |
2020-11-24 17:06:30 +0100 | hackage | cli-nix 0.1.0.1 - Bindings to the nix command-line interface https://hackage.haskell.org/package/cli-nix-0.1.0.1 (abrar) |
2020-11-24 17:07:31 +0100 | <Taneb> | Is there a way to make GHC start profiling a program at a certain point? I've got a program with an expensive one-time setup followed by a loop that I want to opimize the hell out of |
2020-11-24 17:07:32 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2020-11-24 17:07:41 +0100 | <merijn> | Taneb: Yes! |
2020-11-24 17:08:11 +0100 | <merijn> | Taneb: https://hackage.haskell.org/package/base-4.14.0.0/docs/GHC-Profiling.html#v:startProfTimer |
2020-11-24 17:08:30 +0100 | <Taneb> | Oooh, nice |
2020-11-24 17:08:55 +0100 | <merijn> | Taneb: Consider also: https://hackage.haskell.org/package/base-4.14.0.0/docs/GHC-Exts.html#v:traceMarker-35- |
2020-11-24 17:09:31 +0100 | <merijn> | If you hack up mpickering's hs-speedscope to be trace marker aware (if it isn't yet?) then you can use that with speedscope |
2020-11-24 17:10:30 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2020-11-24 17:11:46 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
2020-11-24 17:12:06 +0100 | <mpickering> | merijn: You can isolate a profile between two markers with the 0.2 release |
2020-11-24 17:12:59 +0100 | alp | (~alp@2a01:e0a:58b:4920:a049:ea35:decd:ef01) |
2020-11-24 17:13:22 +0100 | Guest_63 | (c010ccda@pulibgw-r3.net.ias.edu) |
2020-11-24 17:13:55 +0100 | nuncanada | (~dude@179.235.160.168) |
2020-11-24 17:14:03 +0100 | adm__ | (~adm@43.229.88.197) (Remote host closed the connection) |
2020-11-24 17:15:17 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2020-11-24 17:16:28 +0100 | <merijn> | Taneb: Well, there you go ;) |
2020-11-24 17:19:11 +0100 | bulters | (~jeroen@82-161-48-217.ip.xs4all.nl) (Quit: DRIVING HOME FOR ... DINNER) |
2020-11-24 17:20:41 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 17:21:39 +0100 | devalot | (~ident@mail.pmade.com) (Quit: ZNC - http://znc.in) |
2020-11-24 17:22:16 +0100 | Raman | (~user@c-24-4-174-65.hsd1.ca.comcast.net) |
2020-11-24 17:23:13 +0100 | <Raman> | question from a haskell newbee --- how do experienced haskell programmers pronounce the "=>" as it appears in type declarations? |
2020-11-24 17:26:31 +0100 | <monochrom> | I don't pronounce it at all. |
2020-11-24 17:27:03 +0100 | <Raman> | :-) asking because I would like to teach Emacs to speak haskell to me (https://github.com/tvraman/emacspeak) |
2020-11-24 17:27:18 +0100 | <xerox_> | an extra long pause before reading the rest of the type |
2020-11-24 17:27:56 +0100 | <Raman> | a long line like => (a->b->c) ->...can sound pretty mysterious when spoken by TTS;-) haskell mode helps some with emacspeak given font-lock which I map to voice changes. |
2020-11-24 17:28:41 +0100 | <Raman> | pause sounds interesting, for now I have it saying "is type of" which likely is good for a beginner but will get long soon enough |
2020-11-24 17:29:27 +0100 | <monochrom> | => is ASCII art for ⇒, do you have a favourite name for that? |
2020-11-24 17:29:33 +0100 | <Raman> | if I get far enough along with Haskell, I'm hoping to write a simple audio-formatter in haskell fo rhaskell, will come asking for pointers if I make it that far |
2020-11-24 17:29:59 +0100 | <Raman> | I could say double-arrow I suppose -- already saying "arrow" for -> |
2020-11-24 17:30:24 +0100 | <monochrom> | That's a good solution. |
2020-11-24 17:30:26 +0100 | texasmynsted | (~texasmyns@212.102.44.39) () |
2020-11-24 17:30:27 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) |
2020-11-24 17:30:48 +0100 | <merijn> | Raman: constraint or implication wouldn't be quite accurate, could be reasonable |
2020-11-24 17:30:57 +0100 | <[exa]> | Raman: I'd read that as 'implies' but it's more like a reverse prolog :- which I have no idea how to read |
2020-11-24 17:31:14 +0100 | <Raman> | will try various of these out over the next few weeks as I continue to learn. I assume that when the time comes there are haskell lib that can parse haskell code to give me back some type of AST? |
2020-11-24 17:31:25 +0100 | <merijn> | I mean, in terms of speaking "constrains" might be useful |
2020-11-24 17:31:38 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-24 17:31:52 +0100 | <merijn> | Like "Ord a constrains a -> a -> Bool" for "Ord a => a -> a -> Bool" seems decent |
2020-11-24 17:32:04 +0100 | <[exa]> | yeah 'implies' sounds curry-howardish in this context |
2020-11-24 17:32:04 +0100 | bulters | (uid408399@gateway/web/irccloud.com/x-wpbfictwjpuyhkie) |
2020-11-24 17:32:06 +0100 | <Raman> | :-) gets spoken as smiley by emacspeak -- I remember finding some page on the web 15 years ago approx that listed ascii combinations for popular emoji |
2020-11-24 17:32:27 +0100 | <merijn> | Raman: I mean, technically GHC itself is a library that can give you an AST :p |
2020-11-24 17:33:53 +0100 | knupfer | (~Thunderbi@200116b824be8100a422e3fffe4755e7.dip.versatel-1u1.de) |
2020-11-24 17:33:55 +0100 | knupfer | (~Thunderbi@200116b824be8100a422e3fffe4755e7.dip.versatel-1u1.de) (Client Quit) |
2020-11-24 17:33:56 +0100 | <Raman> | that's good to know -- asume for now that I know nothing (which is pretty much true re haskell) working through the realworld haskell book, have it open in emacs, along with a bunch of haskell-mode buffers and an inferior-haskell buffer. Also have lambdabot running in a separate emacs buffer after I embarrassed myself here yesterday and had it say rude things in response:-) |
2020-11-24 17:34:06 +0100 | knupfer | (~Thunderbi@i59F7FF7E.versanet.de) |
2020-11-24 17:34:24 +0100 | <Raman> | AFK, back in a few. I'll see responses when I come back |
2020-11-24 17:34:25 +0100 | ski | (~ski@nc-2504-30.studat.chalmers.se) (Ping timeout: 240 seconds) |
2020-11-24 17:35:31 +0100 | <[exa]> | woah, lambdabot action I missed? /me opens logs |
2020-11-24 17:35:51 +0100 | ski | (~ski@nc-2504-30.studat.chalmers.se) |
2020-11-24 17:37:24 +0100 | sondr3 | (~sondr3@cm-84.211.56.132.getinternet.no) |
2020-11-24 17:37:26 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-24 17:37:27 +0100 | woodpecker-with- | (3e0497aa@62.4.151.170) |
2020-11-24 17:37:39 +0100 | <woodpecker-with-> | How's the performance of the AD library? |
2020-11-24 17:37:53 +0100 | <woodpecker-with-> | Any benchmarks? |
2020-11-24 17:40:55 +0100 | raichoo | (~raichoo@213.240.178.58) (Quit: Lost terminal) |
2020-11-24 17:42:38 +0100 | borne | (~fritjof@200116b864eb5c00394a967dc8ef4e61.dip.versatel-1u1.de) (Ping timeout: 264 seconds) |
2020-11-24 17:42:38 +0100 | Tops2 | (~Tobias@dyndsl-095-033-095-017.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2020-11-24 17:43:36 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 272 seconds) |
2020-11-24 17:46:37 +0100 | sheb | (~Thunderbi@77.244.36.161) (Remote host closed the connection) |
2020-11-24 17:46:37 +0100 | <Iceland_jack> | hi Uniaika |
2020-11-24 17:46:38 +0100 | <davean> | woodpecker-with-: its good. |
2020-11-24 17:46:46 +0100 | <Iceland_jack> | making soup |
2020-11-24 17:47:14 +0100 | ClaudiusMaximus | (~claude@unaffiliated/claudiusmaximus) (Ping timeout: 256 seconds) |
2020-11-24 17:47:25 +0100 | <davean> | woodpecker-with-: if its optimized for what you want or not is another question. |
2020-11-24 17:48:00 +0100 | hackage | reflex-external-ref 1.0.3.0 - External reference with reactivity support https://hackage.haskell.org/package/reflex-external-ref-1.0.3.0 (NCrashed) |
2020-11-24 17:49:40 +0100 | texasmynsted | (~texasmyns@212.102.44.39) |
2020-11-24 17:53:21 +0100 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2020-11-24 17:54:54 +0100 | LKoen | (~LKoen@169.244.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”) |
2020-11-24 17:55:01 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2020-11-24 17:55:47 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-ysnvsqftovuddatt) |
2020-11-24 17:56:28 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2020-11-24 17:56:32 +0100 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) |
2020-11-24 17:57:05 +0100 | phaul | (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
2020-11-24 17:57:32 +0100 | christo | (~chris@81.96.113.213) |
2020-11-24 17:58:08 +0100 | Jajik | (xchlup2@gateway/shell/fi.muni.cz/x-voulfkcwxssepppf) (Quit: The Lounge - https://thelounge.chat) |
2020-11-24 17:58:09 +0100 | xsarnik0 | (xsarnik@gateway/shell/fi.muni.cz/x-bsiqubgdpcunmdtm) (Quit: The Lounge - https://thelounge.chat) |
2020-11-24 17:58:24 +0100 | <Raman> | so Like "Ord a constrains a -> a -> Bool" for "Ord a => a -> a -> Bool" sounds nice when spoken with some additional intonation. Depending on the context, implies might sound good too -- thanks all! I'll go back to reading, or I will just end up hanging out here chatting. When the time comes, I'll ask how I hand ghci a line of code and get an AST back |
2020-11-24 17:58:28 +0100 | Boomerang | (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 260 seconds) |
2020-11-24 17:58:30 +0100 | devalot | (~ident@mail.pmade.com) |
2020-11-24 17:58:54 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2020-11-24 17:59:17 +0100 | Jajik | (xchlup2@gateway/shell/fi.muni.cz/x-gntccaugnuwouyau) |
2020-11-24 18:00:57 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds) |
2020-11-24 18:01:03 +0100 | xsarnik0 | (xsarnik@gateway/shell/fi.muni.cz/x-nywghooskhwzuxkn) |
2020-11-24 18:01:23 +0100 | kritzefitz | (~kritzefit@fw-front.credativ.com) (Remote host closed the connection) |
2020-11-24 18:03:34 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-24 18:04:00 +0100 | hackage | reflex-external-ref 1.0.3.1 - External reference with reactivity support https://hackage.haskell.org/package/reflex-external-ref-1.0.3.1 (NCrashed) |
2020-11-24 18:04:38 +0100 | Raman | (~user@c-24-4-174-65.hsd1.ca.comcast.net) ("need to go read the haskell book and learn") |
2020-11-24 18:06:12 +0100 | ubert | (~Thunderbi@p200300ecdf1e539ce6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-11-24 18:06:18 +0100 | conal | (~conal@64.71.133.70) |
2020-11-24 18:06:19 +0100 | phaul | (~phaul@ruby/staff/phaul) |
2020-11-24 18:06:25 +0100 | ubert | (~Thunderbi@p200300ecdf1e53ebe6b318fffe838f33.dip0.t-ipconnect.de) |
2020-11-24 18:07:39 +0100 | <dminuoso> | % runQ [| \x -> x ^ 2 |] |
2020-11-24 18:07:39 +0100 | <yahb> | dminuoso: LamE [VarP x_3] (InfixE (Just (VarE x_3)) (VarE GHC.Real.^) (Just (LitE (IntegerL 2)))) |
2020-11-24 18:08:21 +0100 | LKoen | (~LKoen@169.244.88.92.rev.sfr.net) |
2020-11-24 18:10:15 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) |
2020-11-24 18:11:09 +0100 | jonatanb_ | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-24 18:11:15 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2020-11-24 18:12:31 +0100 | acagastya | (~acagastya@wikinews/acagastya) ("WeeChat 2.8") |
2020-11-24 18:12:53 +0100 | phaul | (~phaul@ruby/staff/phaul) (Ping timeout: 256 seconds) |
2020-11-24 18:14:36 +0100 | phaul | (~phaul@ruby/staff/phaul) |
2020-11-24 18:14:58 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 260 seconds) |
2020-11-24 18:15:01 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Quit: Leaving.) |
2020-11-24 18:16:04 +0100 | jonatanb_ | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2020-11-24 18:16:49 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) |
2020-11-24 18:20:41 +0100 | Tops2 | (~Tobias@dyndsl-095-033-095-017.ewe-ip-backbone.de) |
2020-11-24 18:22:06 +0100 | <xerox_> | LamE |
2020-11-24 18:22:19 +0100 | ph88 | (~ph88@ip5f5af6cd.dynamic.kabel-deutschland.de) (Quit: Leaving) |
2020-11-24 18:22:50 +0100 | <APic> | EsounD |
2020-11-24 18:23:36 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2020-11-24 18:28:25 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 264 seconds) |
2020-11-24 18:29:58 +0100 | Guest_63 | (c010ccda@pulibgw-r3.net.ias.edu) (Remote host closed the connection) |
2020-11-24 18:30:36 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2020-11-24 18:31:10 +0100 | <texasmynsted> | one thing I do not recall seeing in the Haskell survey was detail about why kinds of applications people build with Haskell. I think there was something like "command line apps", but that is more of an interface than mission. |
2020-11-24 18:32:21 +0100 | DataComputist | (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
2020-11-24 18:33:48 +0100 | Lycurgus | (~niemand@98.4.114.74) |
2020-11-24 18:35:58 +0100 | Yumasi | (~guillaume@40.72.95.92.rev.sfr.net) (Ping timeout: 260 seconds) |
2020-11-24 18:36:07 +0100 | knupfer | (~Thunderbi@i59F7FF7E.versanet.de) (Ping timeout: 246 seconds) |
2020-11-24 18:36:41 +0100 | conal | (~conal@64.71.133.70) (Ping timeout: 256 seconds) |
2020-11-24 18:37:30 +0100 | hackage | monad-logger 0.3.36 - A class of monads which can log messages. https://hackage.haskell.org/package/monad-logger-0.3.36 (MichaelSnoyman) |
2020-11-24 18:38:07 +0100 | knupfer | (~Thunderbi@i59F7FF7E.versanet.de) |
2020-11-24 18:41:00 +0100 | DataComputist | (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Ping timeout: 256 seconds) |
2020-11-24 18:42:22 +0100 | DataComputist | (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
2020-11-24 18:42:36 +0100 | son0p | (~son0p@181.136.122.143) |
2020-11-24 18:42:38 +0100 | alp | (~alp@2a01:e0a:58b:4920:a049:ea35:decd:ef01) (Ping timeout: 264 seconds) |
2020-11-24 18:44:24 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2020-11-24 18:44:55 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:6150:c6af:125a:9cae) (Ping timeout: 272 seconds) |
2020-11-24 18:45:06 +0100 | conal | (~conal@66.115.157.138) |
2020-11-24 18:45:51 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-24 18:48:21 +0100 | <dsal> | texasmynsted: I write almost everything I need in Haskell. |
2020-11-24 18:48:23 +0100 | <gehmehgeh> | hm, I'm looking for a package that contains a datatype that allows an opperation such as "[1,2,3] ++ [4,5,6]" in O(1) time. Is that sort of thing already built into Haskell? Is there some sort of default package for that? We'd obviously need a reference to the last element of the left list |
2020-11-24 18:48:43 +0100 | Kaivo | (~Kaivo@104-200-86-99.mc.derytele.com) (Ping timeout: 246 seconds) |
2020-11-24 18:48:50 +0100 | <gehmehgeh> | Basically a doubly linked list |
2020-11-24 18:49:01 +0100 | <kuribas> | gehmehgeh: DList? |
2020-11-24 18:49:06 +0100 | hseg | (~gesh@185.120.126.113) |
2020-11-24 18:49:08 +0100 | <texasmynsted> | nice |
2020-11-24 18:49:25 +0100 | <kuribas> | gehmehgeh: https://hackage.haskell.org/package/dlist |
2020-11-24 18:49:40 +0100 | <kuribas> | gehmehgeh: btw, DList stands for difference list. It's not a doubly linked list. |
2020-11-24 18:49:57 +0100 | <kuribas> | gehmehgeh: it's more like a tree constructor, where you flatten the tree in the end. |
2020-11-24 18:50:06 +0100 | <dsal> | texasmynsted: mostly network services, e.g., mqttd and web stuff. A lot of cli stuff because that's how I do things. Data manipulation tools, etc... |
2020-11-24 18:50:09 +0100 | <gehmehgeh> | kuribas: oh! I had thought Dlists only allow "append" in constant time, that is "cons", but at the end side |
2020-11-24 18:50:26 +0100 | <gehmehgeh> | I have used dlists in the past |
2020-11-24 18:50:29 +0100 | <texasmynsted> | mqttd? |
2020-11-24 18:50:34 +0100 | <kuribas> | gehmehgeh: what do you mean with "only"? |
2020-11-24 18:50:43 +0100 | <kuribas> | gehmehgeh: that's basically what it does. |
2020-11-24 18:50:52 +0100 | <dsal> | texasmynsted: mqtt broker. See mqtt.org (I think) |
2020-11-24 18:50:56 +0100 | <texasmynsted> | There is no way to replace an existing type class instance, right? |
2020-11-24 18:51:13 +0100 | <gehmehgeh> | kuribas: I thought (I could be mistaken) that this would still take O( length of [4,5,6]) in our example? |
2020-11-24 18:51:19 +0100 | Kaivo | (~Kaivo@ec2-15-222-231-32.ca-central-1.compute.amazonaws.com) |
2020-11-24 18:51:29 +0100 | <gehmehgeh> | Wait, I'm sorry, I'm uninformed... |
2020-11-24 18:51:34 +0100 | <texasmynsted> | oh, wow. mqtt is very interesting. |
2020-11-24 18:51:34 +0100 | <gehmehgeh> | let me check |
2020-11-24 18:51:42 +0100 | <kuribas> | gehmehgeh: I think the last list is shared |
2020-11-24 18:52:06 +0100 | <texasmynsted> | Idris has named instances, but Haskell does not. That is right? |
2020-11-24 18:52:19 +0100 | <gehmehgeh> | kuribas: hmm, in that case... |
2020-11-24 18:52:27 +0100 | <dsal> | texasmynsted: it really is! I've written a client, a broker, a bridge to replicate data across mqttd instances, various transformation tools, etc... |
2020-11-24 18:52:44 +0100 | <dsal> | I don't know idris... What's a named instance? |
2020-11-24 18:52:56 +0100 | <kuribas> | > take 4 Data.DList.toList $ (Data.DList.fromList [1, 2, 3] <> Data.DList.fromList [4..]) |
2020-11-24 18:52:58 +0100 | <lambdabot> | error: |
2020-11-24 18:52:58 +0100 | <lambdabot> | Not in scope: ‘Data.DList.toList’ |
2020-11-24 18:52:58 +0100 | <lambdabot> | Perhaps you meant ‘Data.Set.toList’ (imported from Data.Set) |
2020-11-24 18:53:19 +0100 | <texasmynsted> | Having more than one type class instance for the same type, and selecting it by name. |
2020-11-24 18:53:24 +0100 | <kuribas> | gehmehgeh: DList is linear in the length of the output. |
2020-11-24 18:53:50 +0100 | <kuribas> | gehmehgeh: but lazy, so only as much as is actually requested. |
2020-11-24 18:54:05 +0100 | <dsal> | It's a little weird to think of <> on a list as O(n) since it's not evaluated until you get there |
2020-11-24 18:54:20 +0100 | <texasmynsted> | I am actually surprised how I can not recall how things work in haskell. If there is an existing instance for a type class, for a particular, type I am unable to replace it. Correct? |
2020-11-24 18:54:32 +0100 | <kuribas> | dsal: yeah, linear on the amount that you evaluate. |
2020-11-24 18:55:07 +0100 | <texasmynsted> | dsal: is your project open? |
2020-11-24 18:55:14 +0100 | <dsal> | texasmynsted: right, you'd end up with overlapping instances |
2020-11-24 18:55:17 +0100 | <texasmynsted> | It sounds really neat |
2020-11-24 18:55:32 +0100 | <monochrom> | Yes, it takes a bit more sophistication to state computation costs when laziness is involved. It is a function of both input size and demand size. |
2020-11-24 18:55:32 +0100 | <kuribas> | texasmynsted: you normally want typeclass instances to be unique. |
2020-11-24 18:55:33 +0100 | <dsal> | texasmynsted: I have... Several at github.com/dustin |
2020-11-24 18:56:05 +0100 | <monochrom> | But a simplifying convention is that if you only talk about input size, then you assume full evaluation. |
2020-11-24 18:56:15 +0100 | kuribas | (~user@ptr-25vy0i9hk5zsklfgprx.18120a2.ip6.access.telenet.be) ("ERC (IRC client for Emacs 26.3)") |
2020-11-24 18:56:18 +0100 | <texasmynsted> | There is a module that I use, from somebody else. I want to modify how it works. I think my only option is to fork it. |
2020-11-24 18:56:39 +0100 | <texasmynsted> | Forking it would likely not be worth the effort for the change I want. |
2020-11-24 18:57:04 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2020-11-24 18:57:11 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:2b3f:f80d:4d07:855c) |
2020-11-24 18:58:22 +0100 | <dsal> | What's the class? Can you just newtype? |
2020-11-24 18:58:33 +0100 | <monochrom> | The least surgical solution is you endow your own newtype wrapper. Then you can pin your favourite instance code to your newtype wrapper. |
2020-11-24 18:58:49 +0100 | <monochrom> | But this is also the most annoying. :) |
2020-11-24 18:59:00 +0100 | <texasmynsted> | What I want to do is really simple: I will show you. |
2020-11-24 19:00:02 +0100 | <texasmynsted> | See the text block at the end of this page? https://jaspervdj.be/hakyll/reference/src/Hakyll.Web.Redirect.html#createRedirects |
2020-11-24 19:00:17 +0100 | <texasmynsted> | I want to change 'redirectToHtml' |
2020-11-24 19:00:41 +0100 | <texasmynsted> | I should easily be able to do that if I replace 'instance Writable Redirect' |
2020-11-24 19:01:15 +0100 | chele | (~chele@91.65.110.162) (Remote host closed the connection) |
2020-11-24 19:01:22 +0100 | <dsal> | Yeah, a newtype of Redirect is probably straightforward. |
2020-11-24 19:01:50 +0100 | royal_screwup213 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2020-11-24 19:02:10 +0100 | hseg | (~gesh@185.120.126.113) (Quit: WeeChat 2.9) |
2020-11-24 19:02:34 +0100 | royal_screwup213 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 19:02:41 +0100 | <texasmynsted> | Thank you. It sounds like I need to try this. |
2020-11-24 19:03:43 +0100 | <monochrom> | This leads me to the crazy idea of advocating maximally orphaned instances! |
2020-11-24 19:04:00 +0100 | reallymemorable | (~quassel@2601:180:8300:8fd0:4ce1:c8ee:d3b9:46c5) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
2020-11-24 19:04:33 +0100 | <monochrom> | If every instance is in its own module, you can now freely mix and match, you can freely refuse to import whichever instance you don't want. |
2020-11-24 19:06:01 +0100 | <texasmynsted> | so Scala style then |
2020-11-24 19:07:05 +0100 | <monochrom> | Then again there can be a subtle problem. Some instances assume you have already accepted some other instances, lest there would be unpleasant surprises. |
2020-11-24 19:07:07 +0100 | <dsal> | Can we get compiler warnings telling us our instances aren't orphans? |
2020-11-24 19:07:24 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@66.115.189.237) |
2020-11-24 19:08:00 +0100 | MarcelineVQ | (~anja@198.254.202.72) (Ping timeout: 260 seconds) |
2020-11-24 19:08:00 +0100 | <monochrom> | However, my really favourite idea is named instances. |
2020-11-24 19:08:21 +0100 | st8less | (~st8less@2603:a060:11fd:0:b11b:e5d8:ecef:8990) (Ping timeout: 272 seconds) |
2020-11-24 19:08:21 +0100 | <texasmynsted> | so actually Idris style? |
2020-11-24 19:08:27 +0100 | <monochrom> | Yeah |
2020-11-24 19:08:30 +0100 | hackage | hakyll-contrib-i18n 0.1.0.0 - A Hakyll library for internationalization. https://hackage.haskell.org/package/hakyll-contrib-i18n-0.1.0.0 (pcoves) |
2020-11-24 19:08:55 +0100 | <monochrom> | The part I'm most proud of is how I maximized the puns in naming it: https://mail.haskell.org/pipermail/haskell-cafe/2017-May/127147.html |
2020-11-24 19:09:05 +0100 | <dolio> | Idris and scala are the same style, possibly aside from idris having fewer weird rules for what automatically gets used. |
2020-11-24 19:09:37 +0100 | st8less | (~st8less@2603:a060:11fd:0:b8c0:f26a:7cc8:b52d) |
2020-11-24 19:09:57 +0100 | <texasmynsted> | Knowing which instance is used, with Scala, can be an issue. |
2020-11-24 19:12:06 +0100 | Cale_ | (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) |
2020-11-24 19:13:15 +0100 | <monochrom> | I hope you see how I managed to make "tl;dr" a legit acronym for this :) |
2020-11-24 19:14:39 +0100 | adm_ | (~adm@43.229.88.197) |
2020-11-24 19:16:48 +0100 | nuncanada | (~dude@179.235.160.168) (Ping timeout: 260 seconds) |
2020-11-24 19:17:59 +0100 | woodpecker-with- | (3e0497aa@62.4.151.170) (Ping timeout: 245 seconds) |
2020-11-24 19:19:02 +0100 | adm_ | (~adm@43.229.88.197) (Ping timeout: 256 seconds) |
2020-11-24 19:19:16 +0100 | ubert | (~Thunderbi@p200300ecdf1e53ebe6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection) |
2020-11-24 19:19:17 +0100 | NieDzejkob | (~quassel@188.123.215.55) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2020-11-24 19:22:16 +0100 | Cale | (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) (Disconnected by services) |
2020-11-24 19:22:24 +0100 | Cale_ | Cale |
2020-11-24 19:22:44 +0100 | Cale_ | (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) |
2020-11-24 19:23:23 +0100 | alp | (~alp@2a01:e0a:58b:4920:4935:6a51:5926:c53d) |
2020-11-24 19:23:39 +0100 | Cale_ | (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) (Remote host closed the connection) |
2020-11-24 19:24:26 +0100 | conal | (~conal@66.115.157.138) (Quit: Computer has gone to sleep.) |
2020-11-24 19:26:50 +0100 | cads | (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 265 seconds) |
2020-11-24 19:26:57 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2020-11-24 19:27:32 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-yowroavlostcpsuo) |
2020-11-24 19:27:37 +0100 | <dminuoso> | hekkaidekapus, ski: Thanks again for your insight on the tree building. The intermediate step and then building a trie is the way to go here. :) |
2020-11-24 19:28:00 +0100 | hackage | nix-thunk 0.2.0.2 - Lightweight dependency management with Nix https://hackage.haskell.org/package/nix-thunk-0.2.0.2 (abrar) |
2020-11-24 19:28:03 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2020-11-24 19:28:19 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2020-11-24 19:31:02 +0100 | conal | (~conal@66.115.157.138) |
2020-11-24 19:33:39 +0100 | NieDzejkob | (~quassel@188.123.215.55) |
2020-11-24 19:36:14 +0100 | <sshine> | did you see Java 15 almost has ADTs? |
2020-11-24 19:38:11 +0100 | <gentauro> | sshine: like `sum types`? Hold my beer |
2020-11-24 19:38:14 +0100 | <koz_> | sshine: 'Almost has X' for all X is a good description of Java as a language. |
2020-11-24 19:38:39 +0100 | <koz_> | (well, 'Almost has X, but ten times as long with twice the caveats' might be more accurate) |
2020-11-24 19:38:45 +0100 | <sshine> | gentauro, https://openjdk.java.net/jeps/360 |
2020-11-24 19:38:49 +0100 | Df | (5fa448e7@95.164.72.231) (Ping timeout: 245 seconds) |
2020-11-24 19:39:57 +0100 | <dminuoso> | With Haskell I learned the value of ADTs. I cant see myself programming in a language without. |
2020-11-24 19:40:01 +0100 | <gentauro> | koz_: «COBOL was… …and that’s bad enough.» replace COBOL with any language that is not Haskell. Source: https://sigkill.dk/writings/languages.html (Athas blog) |
2020-11-24 19:40:08 +0100 | <sshine> | dminuoso, now you can code Java! |
2020-11-24 19:40:15 +0100 | <koz_> | gentauro: Lol. |
2020-11-24 19:40:18 +0100 | htmnc | (~James@2600:1700:4ca1:7640:ec8e:65af:cdd0:9671) |
2020-11-24 19:40:19 +0100 | <gentauro> | dminuoso: for me it's the `sum types` |
2020-11-24 19:40:34 +0100 | <gentauro> | at the moment «I'm trapped» in a C# freelance gig |
2020-11-24 19:40:45 +0100 | <koz_> | gentauro: I am so, so sorry. |
2020-11-24 19:40:47 +0100 | <dminuoso> | sshine: Mind my asking, why aren't they full sum types? |
2020-11-24 19:40:49 +0100 | lpy | (~nyd@unaffiliated/elysian) (Quit: lpy) |
2020-11-24 19:40:49 +0100 | <dminuoso> | What's their limitation? |
2020-11-24 19:40:50 +0100 | <gentauro> | I want to sigkill myself for every key stroke xD |
2020-11-24 19:40:59 +0100 | <sshine> | dminuoso, they're made in a funny way. |
2020-11-24 19:41:06 +0100 | <dminuoso> | Also, do you get depressed when discriminating Java sum types? Do you get refinement? |
2020-11-24 19:41:20 +0100 | <dminuoso> | Can we have full blown GADTs? |
2020-11-24 19:41:42 +0100 | <gentauro> | sshine: thx for the link, but my eyes began to bleed as soon as they saw the Java syntax |
2020-11-24 19:42:19 +0100 | <sshine> | dminuoso, sealed classes are a way to whitelist which sub-classes are allowed to inherit. so for an 'Expr' class you can have 'Add', 'Mul', etc. Since you have a fixed list known at compile-time, you can now do pattern matching on instanceof. but since it's still made in such a sketchy way on top, limitations apply. |
2020-11-24 19:42:48 +0100 | <koz_> | sshine: Does this allow compile-time exhaustiveness checking? |
2020-11-24 19:42:54 +0100 | <gentauro> | sshine: did they went for the .NET (C#) "way of doing it"? |
2020-11-24 19:42:54 +0100 | <koz_> | I'm going to assume 'no'. |
2020-11-24 19:43:00 +0100 | <gentauro> | cos that's really really bad |
2020-11-24 19:43:11 +0100 | <dminuoso> | sshine: Oh so the switch/case construct is just a bit of syntax sugar around multi-way if instanceof? |
2020-11-24 19:43:15 +0100 | dminuoso | sighs |
2020-11-24 19:43:40 +0100 | <gentauro> | you test for "types". So you need to check if it's a `int`, a `char` a … (any `type` that is not nullable goes) |
2020-11-24 19:43:48 +0100 | <gentauro> | I can't make myself use that |
2020-11-24 19:43:54 +0100 | <dminuoso> | I see, so you cant have `char + char`? |
2020-11-24 19:44:12 +0100 | <sshine> | dminuoso, I'm pretty sure that's how it must be. |
2020-11-24 19:44:32 +0100 | <dminuoso> | So it's a union and not disjoint union of types... |
2020-11-24 19:44:34 +0100 | <dminuoso> | Mmm |
2020-11-24 19:44:40 +0100 | <dminuoso> | well, I guess you can get around that with helper classes |
2020-11-24 19:45:11 +0100 | <dminuoso> | Just in the style of Java. Introduce more noise so your developers can be busy writing Java. |
2020-11-24 19:45:21 +0100 | <sshine> | I learned today that Scala's None (aka Nothing) is defined like this: case object None extends Option[Nothing] with Product with Serializable |
2020-11-24 19:45:23 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Ping timeout: 260 seconds) |
2020-11-24 19:45:41 +0100 | <htmnc> | if I have like, a list of Maybe Int, is the type of that [Maybe Int]? if so how do I generically say hey this is a functor of a functor of a type or whatever like F G a? |
2020-11-24 19:45:49 +0100 | <gentauro> | dminuoso: it's very much like this `with | :? System.DivideByZeroException as ex -> printfn "Exception! %s " (ex.Message); None` -> https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/exception-handling/the-try-with-… |
2020-11-24 19:46:00 +0100 | <sshine> | htmnc, yes. |
2020-11-24 19:46:24 +0100 | <koz_> | :t [Nothing, Maybe (1 :: Int)] |
2020-11-24 19:46:24 +0100 | <htmnc> | sshine, thank you :) |
2020-11-24 19:46:26 +0100 | <lambdabot> | error: |
2020-11-24 19:46:26 +0100 | <lambdabot> | • Data constructor not in scope: Maybe :: Int -> Maybe a |
2020-11-24 19:46:26 +0100 | <lambdabot> | • Perhaps you meant variable ‘maybe’ (imported from Data.Maybe) |
2020-11-24 19:46:28 +0100 | <dminuoso> | htmnc: It implicitly is a functor by virtue of this instance: |
2020-11-24 19:46:29 +0100 | <gentauro> | it's `all` types, not a subset you specify in a sum-type |
2020-11-24 19:46:30 +0100 | <gentauro> | :( |
2020-11-24 19:46:30 +0100 | <koz_> | Argh. |
2020-11-24 19:46:35 +0100 | <koz_> | :t [Nothing, Just(1 :: Int)] |
2020-11-24 19:46:37 +0100 | <lambdabot> | [Maybe Int] |
2020-11-24 19:46:54 +0100 | <sshine> | htmnc, could you give an example of what you mean by a functor of a functor? |
2020-11-24 19:46:54 +0100 | <htmnc> | so I can say like :t Just Just (1::Int) |
2020-11-24 19:47:08 +0100 | <htmnc> | :t Just Just (1::Int) |
2020-11-24 19:47:09 +0100 | <lambdabot> | error: |
2020-11-24 19:47:09 +0100 | <lambdabot> | • Couldn't match expected type ‘Int -> t’ |
2020-11-24 19:47:10 +0100 | <lambdabot> | with actual type ‘Maybe (a0 -> Maybe a0)’ |
2020-11-24 19:47:22 +0100 | <sshine> | :t Just (Just (1 :: Int)) |
2020-11-24 19:47:23 +0100 | <lambdabot> | Maybe (Maybe Int) |
2020-11-24 19:47:41 +0100 | hidedagger | (~nate@unaffiliated/hidedagger) |
2020-11-24 19:47:56 +0100 | <sshine> | :t Just Just |
2020-11-24 19:47:58 +0100 | <lambdabot> | Maybe (a -> Maybe a) |
2020-11-24 19:48:06 +0100 | <dsal> | :t pure pure |
2020-11-24 19:48:08 +0100 | <lambdabot> | (Applicative f1, Applicative f2) => f1 (a -> f2 a) |
2020-11-24 19:48:14 +0100 | <dminuoso> | % getCompose . fmap (+1) . Compose $ [Just 1, Just 2, Nothing] -- htmnc |
2020-11-24 19:48:14 +0100 | <yahb> | dminuoso: [Just 2,Just 3,Nothing] |
2020-11-24 19:48:15 +0100 | alp | (~alp@2a01:e0a:58b:4920:4935:6a51:5926:c53d) (Ping timeout: 272 seconds) |
2020-11-24 19:48:19 +0100 | <dminuoso> | Or |
2020-11-24 19:48:29 +0100 | <sshine> | 'Just Just 1' does not work because function application is left-associative, so that becomes '(Just Just) 1'... now, 'Just Just' is fine, but it isn't a function, but rather, a function 'Just :: a -> Maybe a' wrapped in a Maybe. |
2020-11-24 19:48:57 +0100 | <dminuoso> | (fmap . fmap) (+1) [Just 1, Just 2, Nothing] |
2020-11-24 19:49:00 +0100 | <dminuoso> | % (fmap . fmap) (+1) [Just 1, Just 2, Nothing] |
2020-11-24 19:49:00 +0100 | <yahb> | dminuoso: [Just 2,Just 3,Nothing] |
2020-11-24 19:49:17 +0100 | <htmnc> | sshine, I was thinking about how to abstract doing a map on two arrays with a binary operation, like if I had F a -> F b -> F c I could do fmap on the F a giving my F b -> F c and then fmap again |
2020-11-24 19:49:22 +0100 | <sshine> | > join (Just (Just (1 :: Int))) |
2020-11-24 19:49:25 +0100 | <lambdabot> | Just 1 |
2020-11-24 19:50:17 +0100 | <htmnc> | I mean I'm missing a step there |
2020-11-24 19:50:40 +0100 | <dminuoso> | htmnc: Oh I see. What you're asking for is Applicative! |
2020-11-24 19:50:45 +0100 | <htmnc> | yeah! |
2020-11-24 19:50:52 +0100 | <koz_> | :t liftA2 |
2020-11-24 19:50:55 +0100 | <lambdabot> | Applicative f => (a -> b -> c) -> f a -> f b -> f c |
2020-11-24 19:51:02 +0100 | ystael | (~ystael@209.6.50.55) |
2020-11-24 19:51:05 +0100 | <dminuoso> | htmnc: Functor is for "mapping over things with unary functoins" and applicative generalizes this to n-arity functions (where n ranges from 0 to arbitrary) |
2020-11-24 19:51:33 +0100 | <htmnc> | !!! that's exactly what I was thinking about! |
2020-11-24 19:51:37 +0100 | <htmnc> | thank you!! |
2020-11-24 19:51:51 +0100 | <koz_> | htmnc: I advise reading the Typeclassopedia entry on Applicative. |
2020-11-24 19:51:56 +0100 | <koz_> | You will find many useful things. :D |
2020-11-24 19:52:00 +0100 | <htmnc> | will do |
2020-11-24 19:52:49 +0100 | <htmnc> | honestly the more I learn about Haskell stuff the more I wish I could find jobs that used it for things like backend |
2020-11-24 19:53:31 +0100 | <maerwald> | htmnc: why |
2020-11-24 19:53:46 +0100 | <koz_> | htmnc: It's possible - I do Haskell for Real Job For Real Money. |
2020-11-24 19:53:49 +0100 | <maerwald> | backend is all the same in the end |
2020-11-24 19:53:58 +0100 | <maerwald> | do something cool with haskell instead |
2020-11-24 19:54:05 +0100 | <maerwald> | don't use it for your day job |
2020-11-24 19:54:13 +0100 | <dminuoso> | Dunno, we're using Haskell in our backend and it's fun. |
2020-11-24 19:54:25 +0100 | <koz_> | maerwald: I respectfuly disagree. I love the fact I get paid to write Haskell. |
2020-11-24 19:54:26 +0100 | <dminuoso> | It's fun writing reliable code. |
2020-11-24 19:54:48 +0100 | <dminuoso> | Also the "backend" classification is mildly useless |
2020-11-24 19:54:52 +0100 | <dminuoso> | everything is a backend to something. |
2020-11-24 19:54:55 +0100 | son0p | (~son0p@181.136.122.143) (Quit: leaving) |
2020-11-24 19:55:08 +0100 | <maerwald> | I just meant... from all the thing I can imagine doing in haskell... backend seems like a boring choice |
2020-11-24 19:55:12 +0100 | <koz_> | Backend is anything which doesn't scribble on the screen. |
2020-11-24 19:55:25 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 264 seconds) |
2020-11-24 19:55:29 +0100 | <koz_> | (seems to be the general take I read from its many uses) |
2020-11-24 19:56:00 +0100 | <dminuoso> | I guess only very few people use Haskell to run some UI directly.. |
2020-11-24 19:56:15 +0100 | <htmnc> | maerwald, because I've worked with people who coerce things in really upsetting ways |
2020-11-24 19:56:18 +0100 | <dminuoso> | Unless you work for Obsidian |
2020-11-24 19:56:21 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-11-24 19:56:25 +0100 | <htmnc> | koz_, bless you |
2020-11-24 19:56:33 +0100 | <maerwald> | dminuoso: gtk is ok in haskell though |
2020-11-24 19:56:45 +0100 | <dminuoso> | maerwald: Sure, but I doubt it's used much. :) |
2020-11-24 19:57:01 +0100 | <dminuoso> | That doesn't mean anything negative |
2020-11-24 19:57:09 +0100 | <dminuoso> | just that most haskell developers aren't focused on UI stuff |
2020-11-24 19:57:18 +0100 | hidedagger | (~nate@unaffiliated/hidedagger) (Quit: WeeChat 2.9) |
2020-11-24 19:57:30 +0100 | <maerwald> | dminuoso: yeah, most ppl think everything that does network requests must be a html page :p |
2020-11-24 19:57:36 +0100 | jneira | (02896ac0@gateway/web/cgi-irc/kiwiirc.com/ip.2.137.106.192) |
2020-11-24 19:57:40 +0100 | <dminuoso> | heh |
2020-11-24 19:57:52 +0100 | <maerwald> | so GTK apps that interact with APIs are rare |
2020-11-24 19:58:00 +0100 | <dminuoso> | Ive started a quest to reduce the number of stupid HTTP based APIs we have in our core. |
2020-11-24 19:58:01 +0100 | <koz_> | htmnc: Thank you. I didn't know you were a priest! |
2020-11-24 19:58:23 +0100 | <htmnc> | LOL just using the turn of phrase |
2020-11-24 19:59:09 +0100 | <dminuoso> | maerwald: I guess everybody has their own drug. I find high performance networking to be exciting currently. |
2020-11-24 19:59:23 +0100 | <dminuoso> | so writing Haskell to support that goal is fun |
2020-11-24 19:59:35 +0100 | <maerwald> | dminuoso: yeah and probably challenging |
2020-11-24 20:00:04 +0100 | <dolio> | Is the objection just that not all programming should be classified as either "front end of a web app" or "back end of a web app"? :) |
2020-11-24 20:00:45 +0100 | <merijn> | dolio: But then how will Hacker News understand what you're talking about? :o |
2020-11-24 20:01:02 +0100 | <koz_> | merijn: I would consider them _not_ understanding a point of pride. |
2020-11-24 20:01:04 +0100 | <dolio> | Don't care. :) |
2020-11-24 20:01:13 +0100 | <merijn> | koz_: That was the joke |
2020-11-24 20:01:23 +0100 | <merijn> | koz_: Are you familiar with n-gate? |
2020-11-24 20:01:28 +0100 | <koz_> | As in, deliberately write your first two paragraphs to be maximally exclusionary to people who browse HN un-ironically. |
2020-11-24 20:01:31 +0100 | <koz_> | merijn: No? |
2020-11-24 20:02:01 +0100 | <merijn> | koz_: Oh, you will appreciate this...it's "HN's daily #1 post...abridged": http://n-gate.com/hackernews/ |
2020-11-24 20:02:47 +0100 | <koz_> | "In accordance with their tradition, the Electronic Frontier Foundation has created a new website to tell us how fucked we are by advertisers, while containing almost no advice for fixing any of it." OOOF, I'm a fan already! |
2020-11-24 20:03:10 +0100 | <koz_> | Thanks merijn - you have made my day a little brighter. |
2020-11-24 20:03:33 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2020-11-24 20:03:57 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2020-11-24 20:03:59 +0100 | <dmj`> | dminuoso: Re: UIs, OpenGL and Haskell work very well together. Just have fun cross-compiling. |
2020-11-24 20:04:05 +0100 | berberman_ | (~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds) |
2020-11-24 20:05:25 +0100 | <koz_> | I believe there's nice Vulkan bindings too? |
2020-11-24 20:05:30 +0100 | dhouthoo | (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9) |
2020-11-24 20:05:37 +0100 | <texasmynsted> | Isn't there a command in the REPL to write the session to a file? |
2020-11-24 20:05:39 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Excess Flood) |
2020-11-24 20:05:53 +0100 | <texasmynsted> | I seem to recall there is but not how to do it. I do not see it in the help |
2020-11-24 20:06:02 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2020-11-24 20:06:33 +0100 | Lord_of_Life | (~Lord@46.217.222.157) |
2020-11-24 20:06:33 +0100 | Lord_of_Life | (~Lord@46.217.222.157) (Changing host) |
2020-11-24 20:06:33 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2020-11-24 20:06:34 +0100 | <dmj`> | texasmynsted: sadly, no. |
2020-11-24 20:06:40 +0100 | <texasmynsted> | hm |
2020-11-24 20:06:47 +0100 | <texasmynsted> | Maybe I dreamed it |
2020-11-24 20:07:05 +0100 | <ezzieyguywuf> | what's the difference between cabal and cabal-install? |
2020-11-24 20:07:15 +0100 | <dminuoso> | texasmynsted: head -n 10 ~/.ghc/ghci_history | tac |
2020-11-24 20:07:18 +0100 | Tario | (~Tario@201.192.165.173) |
2020-11-24 20:07:22 +0100 | <dminuoso> | I admit it's cheap, but effective... |
2020-11-24 20:07:32 +0100 | <ezzieyguywuf> | I'm tryig to use my package manager to install a minimal haskell build system, i.e. I can install the ghc binary from there, as well as cabal and cabal-install |
2020-11-24 20:07:41 +0100 | <ezzieyguywuf> | but I'm not sure if I need one or both of the cabal ones |
2020-11-24 20:07:44 +0100 | <dminuoso> | ezzieyguywuf: https://gist.github.com/merijn/8152d561fb8b011f9313c48d876ceb07 |
2020-11-24 20:08:00 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 272 seconds) |
2020-11-24 20:08:01 +0100 | <maerwald> | ezzieyguywuf: Cabal is a library, cabal-install an executable |
2020-11-24 20:08:03 +0100 | <texasmynsted> | ooh nice |
2020-11-24 20:08:09 +0100 | <texasmynsted> | Thank you dminuoso |
2020-11-24 20:08:23 +0100 | <merijn> | dminuoso: Writing that has saved me so much time over the past year :p |
2020-11-24 20:08:36 +0100 | <ezzieyguywuf> | maerwald: ah hah, thank you, so I'll install cabal-install and it should (hopefully) pull in cabal |
2020-11-24 20:08:38 +0100 | ggole | (~ggole@2001:8003:8119:7200:882e:5c1e:9189:4cff) (Quit: Leaving) |
2020-11-24 20:08:39 +0100 | <dmj`> | koz_: yea but Vulkan is hard, need to learn OpenGL first |
2020-11-24 20:08:58 +0100 | <maerwald> | ezzieyguywuf: you shouldn't need to care whether it pulls in Cabal or not |
2020-11-24 20:09:00 +0100 | <dminuoso> | ezzieyguywuf: Huh what is your goal? |
2020-11-24 20:09:14 +0100 | <maerwald> | I don't see that the question entailed stack, lol |
2020-11-24 20:09:41 +0100 | <dminuoso> | For just a haskell build system you need `cabal-install` and `ghc`. Don't forget to run `cabal update` too, possibly regularly, so your index is up to date. |
2020-11-24 20:10:18 +0100 | <maerwald> | Yeah, if you want to interface with Cabal the library, I urge you not to |
2020-11-24 20:10:26 +0100 | <dminuoso> | cabal-install can deal with .cabal the file format and CABAL the spec. Whether or not it uses Cabal-the-library should not be relevant to you |
2020-11-24 20:10:27 +0100 | <ezzieyguywuf> | dminuoso: that link is helpful thank you. |
2020-11-24 20:10:42 +0100 | <ezzieyguywuf> | maerwald: you're right I shouldn't need to care. |
2020-11-24 20:10:50 +0100 | shf | (~sheaf@2a01:cb19:80cc:7e00:7dfb:edae:5f48:fe4e) (Read error: Connection reset by peer) |
2020-11-24 20:10:55 +0100 | <ezzieyguywuf> | dminuoso: my goal is to have my package manager manage ghc and cabal for me |
2020-11-24 20:11:04 +0100 | <maerwald> | what package manager is that |
2020-11-24 20:11:15 +0100 | <ezzieyguywuf> | maerwald: portag |
2020-11-24 20:11:17 +0100 | <ezzieyguywuf> | *portage |
2020-11-24 20:11:19 +0100 | <maerwald> | bad idea |
2020-11-24 20:11:27 +0100 | <maerwald> | don't do it |
2020-11-24 20:11:46 +0100 | <ezzieyguywuf> | maerwald: why is it a bad idea? |
2020-11-24 20:11:54 +0100 | <maerwald> | ezzieyguywuf: gentoo can't handle GHC properly |
2020-11-24 20:12:03 +0100 | <maerwald> | it's a mess with the slots (and subslots) |
2020-11-24 20:12:14 +0100 | <maerwald> | you can't reasonably have multiple GHC versions |
2020-11-24 20:12:16 +0100 | <maerwald> | which you need |
2020-11-24 20:12:26 +0100 | <ezzieyguywuf> | maerwald: I figure it's worth a shot. It has a USE=binary option that simply pulls in the binary from upstream, i.e. y'all |
2020-11-24 20:12:34 +0100 | <ezzieyguywuf> | maerwald: ah, I see |
2020-11-24 20:12:39 +0100 | <maerwald> | yes, but if you install a library, what GHC is it built against? |
2020-11-24 20:12:42 +0100 | <ezzieyguywuf> | maerwald: why do I need multiple ghc versions? |
2020-11-24 20:12:57 +0100 | <maerwald> | because that's a very common thing/problem in haskell |
2020-11-24 20:13:16 +0100 | CindyLinz | (~cindy_utf@112.121.78.20) (Ping timeout: 240 seconds) |
2020-11-24 20:13:22 +0100 | <dminuoso> | Whether ezzieyguywuf needs multiple GHC versions is for them to decide though... |
2020-11-24 20:13:41 +0100 | <maerwald> | Using portage for that will just give you pain |
2020-11-24 20:13:58 +0100 | <ezzieyguywuf> | maerwald: anything installed by portage (which is all of cabal-install's dependencies) are built using the system ghc |
2020-11-24 20:14:06 +0100 | <ezzieyguywuf> | but, then again, the system ghc will be the only one I have... |
2020-11-24 20:14:10 +0100 | <dminuoso> | Disclaimer: maerwald is the author of the tool he's trying to get you to use. :p |
2020-11-24 20:14:21 +0100 | CindyLinz | (~cindy_utf@112.121.78.20) |
2020-11-24 20:14:34 +0100 | <maerwald> | dminuoso: nah, 5 years of gentoo development are just trying to save them from pain I know well enough |
2020-11-24 20:14:52 +0100 | <dminuoso> | maerwald: Ah I see. I had a Gentoo phase too when I was a kid. :( |
2020-11-24 20:15:00 +0100 | <maerwald> | the only distro that manages haskell well is NixOS, but then you have to use ...NixOS :D |
2020-11-24 20:15:02 +0100 | <merijn> | I was saved as a kid |
2020-11-24 20:15:10 +0100 | <merijn> | Someone gave me a FreeBSD shell instead :p |
2020-11-24 20:15:18 +0100 | <maerwald> | merijn: too chaotic |
2020-11-24 20:15:59 +0100 | <merijn> | maerwald: How so? |
2020-11-24 20:16:16 +0100 | <ezzieyguywuf> | ok |
2020-11-24 20:16:21 +0100 | <ezzieyguywuf> | maerwald: you convinced me :) |
2020-11-24 20:16:29 +0100 | <ezzieyguywuf> | you and epsilonKnot over in #gentoo-chat |
2020-11-24 20:16:35 +0100 | <ezzieyguywuf> | so ghcup it is |
2020-11-24 20:16:52 +0100 | <maerwald> | merijn: the tooling is like someone threw a bomb into a unix kitchen and then started yelling and laughing like a maniac and told you to pick what you like |
2020-11-24 20:17:03 +0100 | <merijn> | maerwald: wut? |
2020-11-24 20:17:12 +0100 | <dminuoso> | A long long time in the future, there will a trilogy of movies. "OS Wars", followed by "Linux Strikes Back" and "Return of the last BSD". And then a bunch of OSes nobody really wants to use, but they're marketed well so the movies will sell. |
2020-11-24 20:17:39 +0100 | <ezzieyguywuf> | or ghcup-hs I guess... |
2020-11-24 20:17:49 +0100 | <maerwald> | merijn: also, the linker on BSD... |
2020-11-24 20:17:56 +0100 | <merijn> | maerwald: It's like the opposite, where the tooling is consistent and actually documented, but everyone wrote unportable linux shite and you have to fix the piece yourself... >.> |
2020-11-24 20:18:19 +0100 | <dminuoso> | I agree. FreeBSD is the last OS that actually shipped with a manual good enough to learn and operate your system with. |
2020-11-24 20:18:34 +0100 | <merijn> | maerwald: Counterpoint: the linux linker :p (I guess some distros now ship gold, which is less braindead, but still) |
2020-11-24 20:18:36 +0100 | <dminuoso> | With Linux it's largely "hope there's a man page", otherwise dig around in archive.org, use the source, apply patches.. |
2020-11-24 20:18:53 +0100 | <merijn> | dminuoso: Still ships with it, even. The Handbook is like a solid 70-80% of the reason I prefer it |
2020-11-24 20:19:28 +0100 | <maerwald> | dminuoso: most source code is self-documenting and it's saying "I'm shite" |
2020-11-24 20:19:30 +0100 | <maerwald> | :D |
2020-11-24 20:20:05 +0100 | <merijn> | maerwald: See, if you only use linux, then I agree with you :p |
2020-11-24 20:20:21 +0100 | <merijn> | Anyway, that's drifting -offtopic |
2020-11-24 20:20:50 +0100 | <maerwald> | ezzieyguywuf: btw... gentoo *could* ship a GHC with no haskell dependencies (and that would solve lots of problems) |
2020-11-24 20:21:20 +0100 | <merijn> | maerwald: That applies to all linux distros insisting on packaging haskell libs :\ |
2020-11-24 20:21:40 +0100 | <maerwald> | I think OpenSUSE does that? |
2020-11-24 20:21:46 +0100 | <glguy> | Does it make sense for distros to ship haskell libs to be to build the haskell executables the distros ship? |
2020-11-24 20:22:02 +0100 | <merijn> | glguy: imo, no |
2020-11-24 20:22:03 +0100 | <maerwald> | glguy: many distros tried, because of pando |
2020-11-24 20:22:08 +0100 | <maerwald> | c |
2020-11-24 20:22:14 +0100 | <maerwald> | but they failed nicely |
2020-11-24 20:22:29 +0100 | <glguy> | better to have the distro rebuild all of the Haskell deps for each haskell executable shipped then? |
2020-11-24 20:22:43 +0100 | <maerwald> | better ship static binaries and give up! |
2020-11-24 20:22:44 +0100 | <merijn> | glguy: What's the benefit over shipping 100+ haskell library packages used by pandoc vs just shipping staticall linked pandoc? |
2020-11-24 20:22:59 +0100 | <Clint> | we do ship statically linked pandoc |
2020-11-24 20:23:00 +0100 | <glguy> | merijn: ideally the community could come up with two executables worth installing? |
2020-11-24 20:23:03 +0100 | <Clint> | but we need the libraries to build them |
2020-11-24 20:23:06 +0100 | <merijn> | glguy: It just pisses of users |
2020-11-24 20:23:21 +0100 | <merijn> | glguy: Two executables that happen to share the exact transitive dependency resolution? |
2020-11-24 20:23:36 +0100 | <glguy> | No, not exact, just overlapping |
2020-11-24 20:23:43 +0100 | <merijn> | glguy: Because if they depend (transitively) on different versions of the same lib, you still gotta build things |
2020-11-24 20:23:58 +0100 | <Clint> | that is why stackage makes things easier |
2020-11-24 20:24:18 +0100 | <merijn> | glguy: The main advantage in the C world is that you can independently update libraries, but GHC doesn't allow that anyway |
2020-11-24 20:24:23 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2020-11-24 20:24:57 +0100 | <maerwald> | Clint: ? |
2020-11-24 20:25:21 +0100 | <merijn> | Clint: Stack makes things *simpler* (it's failure model for build plans is just "it works" or "it does not, tough shit") not *easier*. |
2020-11-24 20:25:42 +0100 | <merijn> | And in the 2nd case, good luck ever fixing it to work |
2020-11-24 20:25:49 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-24 20:25:50 +0100 | <glguy> | It makes things easier for packagers if the developers are all targetting the same resolver, though |
2020-11-24 20:25:56 +0100 | <dminuoso> | The only mentality where all of this works is nix. |
2020-11-24 20:25:57 +0100 | <ezzieyguywuf> | maerwald: like I said, the ghc installation isn't really an issue, I can use portage to install the upstream binary |
2020-11-24 20:25:59 +0100 | <merijn> | glguy: Sure |
2020-11-24 20:26:17 +0100 | <merijn> | glguy: And if we all just use a single programming language and compiler for everything optimisation would be a breeze! :D |
2020-11-24 20:26:18 +0100 | <maerwald> | I don't think gentoo ever followed stackage though |
2020-11-24 20:26:28 +0100 | <ezzieyguywuf> | I guess it's the cabal-install that's an issue, since either (a) y'all don't provide a binary, or (b) gentoo doesn't provide an option to install said binary |
2020-11-24 20:26:40 +0100 | <merijn> | dminuoso: s/where all of this works/where all of this works *in theory* |
2020-11-24 20:26:43 +0100 | <ezzieyguywuf> | maerwald: what do you mean "followed stackage"? |
2020-11-24 20:26:53 +0100 | <maerwald> | ezzieyguywuf: used the version defined in stackage |
2020-11-24 20:26:56 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-24 20:26:57 +0100 | tom__ | (~tom@2a00:23c8:970a:3501:38a6:4546:df42:c1cb) (Read error: Connection reset by peer) |
2020-11-24 20:26:59 +0100 | <dminuoso> | merijn: well it works in practice too, largely. Of course its not perfect, but tell me one package manager that is. |
2020-11-24 20:28:03 +0100 | <ezzieyguywuf> | you're right, it's getting its binary from https://slyfox.uni.cx for some reason... |
2020-11-24 20:28:22 +0100 | <maerwald> | that's not what I meant, but anyway |
2020-11-24 20:28:49 +0100 | <ezzieyguywuf> | oh wait nvm, it comes from downloads.haskel.org |
2020-11-24 20:28:49 +0100 | <maerwald> | https://www.stackage.org/ |
2020-11-24 20:28:50 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) |
2020-11-24 20:28:57 +0100 | <maerwald> | stackage is just a package set |
2020-11-24 20:29:08 +0100 | <maerwald> | NixOS follows it |
2020-11-24 20:29:17 +0100 | <maerwald> | most distros don't |
2020-11-24 20:29:40 +0100 | Lycurgus | (~niemand@98.4.114.74) (Ping timeout: 260 seconds) |
2020-11-24 20:30:11 +0100 | <Clint> | Debian tries |
2020-11-24 20:30:16 +0100 | <Clint> | but developers don't make that easy |
2020-11-24 20:30:51 +0100 | <maerwald> | they start packaging libs too? *sigh* |
2020-11-24 20:30:57 +0100 | cads | (~cads@ip-64-72-99-232.lasvegas.net) |
2020-11-24 20:31:08 +0100 | <Clint> | there's no other way to build haskell apps |
2020-11-24 20:31:16 +0100 | <maerwald> | on linux there is |
2020-11-24 20:31:22 +0100 | <merijn> | Clint: Sure there is. You just build the binary and ship it, done |
2020-11-24 20:31:23 +0100 | <maerwald> | debian is not a source distro |
2020-11-24 20:31:30 +0100 | <maerwald> | they don't need to mess with libs |
2020-11-24 20:31:42 +0100 | <sshine> | maerwald, they've been doing that for a long time. |
2020-11-24 20:31:49 +0100 | <merijn> | Clint: Why would you need to package each Haskell library independently? |
2020-11-24 20:32:03 +0100 | <sshine> | merijn, so you don't need to compile them. |
2020-11-24 20:32:10 +0100 | <sshine> | merijn, so they work together. |
2020-11-24 20:32:15 +0100 | <merijn> | sshine: Distros *already* ship binaries |
2020-11-24 20:32:21 +0100 | <sshine> | merijn, it's a binary snapshot :) that idea in itself isn't bad. |
2020-11-24 20:32:31 +0100 | <merijn> | sshine: So why not ship the final executable and call it a day |
2020-11-24 20:32:42 +0100 | knupfer | (~Thunderbi@i59F7FF7E.versanet.de) (Ping timeout: 272 seconds) |
2020-11-24 20:32:45 +0100 | <sshine> | merijn, aren't we talking libraries? |
2020-11-24 20:32:52 +0100 | <Clint> | why would you hide all the libraries you've already packaged? |
2020-11-24 20:33:05 +0100 | <maerwald> | hint: dynamic linking doesn't really work well in haskell and doesn't give you the same capabilities C does |
2020-11-24 20:33:09 +0100 | <sshine> | Clint, who is hiding libraries? |
2020-11-24 20:33:13 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone) |
2020-11-24 20:33:13 +0100 | <merijn> | sshine: Installing pandoc installs 100+ dependencies that all update super frequently |
2020-11-24 20:33:18 +0100 | <Clint> | sshine: merijn is objecting to shipping libraries |
2020-11-24 20:33:20 +0100 | francesco_ | (~francesco@host-82-54-193-143.retail.telecomitalia.it) |
2020-11-24 20:33:28 +0100 | <maerwald> | *for haskell* |
2020-11-24 20:33:45 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 240 seconds) |
2020-11-24 20:33:46 +0100 | <sshine> | Clint, via debian/ubuntu's package manager? |
2020-11-24 20:33:50 +0100 | <sshine> | Clint, yeah that's crazy. :P |
2020-11-24 20:33:52 +0100 | <merijn> | sshine: It's causing *massive* amounts of frustration and pissing of Arch/etc. users and none of them blame their distro, they all blame Haskell |
2020-11-24 20:34:09 +0100 | <merijn> | Clint: I'm objecting to shipping *haskell* libraries |
2020-11-24 20:34:36 +0100 | <merijn> | It's dumb. There's 0 actual reuse happening, it triggers tons of cascade updates, pisses off users, and has no pragmatic benefits |
2020-11-24 20:34:41 +0100 | <Clint> | right, so we would need to build them and then hide them to not ship them |
2020-11-24 20:35:02 +0100 | <Clint> | which is absurd |
2020-11-24 20:35:02 +0100 | <sshine> | merijn, I'm saying the intent is good. but I don't think that snapshot-based OS package managers are fit for frequent micro-updates. I think it creates an unnatural discrepancy between those who make libraries and those who use them via the OS. |
2020-11-24 20:35:29 +0100 | <merijn> | Clint: No, why would you "need to hide them" just ship the final pandoc/whatever executable and don't ship any libraries at all, no need to hide them |
2020-11-24 20:35:46 +0100 | <glguy> | libraries can do things like install supporting data files and such |
2020-11-24 20:36:07 +0100 | <glguy> | it's not just a matter of copying an executable, right? |
2020-11-24 20:36:29 +0100 | <Clint> | merijn: because you need the build dependencies packaged to build the final pandoc/whatever executable |
2020-11-24 20:36:52 +0100 | <merijn> | glguy: 1) packagers already control where Cabal puts those files, so they just need to ship those too, which is the same like shipping anything else 2) we should fix cabal-install's prefix independence (which is on my to do list) |
2020-11-24 20:37:37 +0100 | <merijn> | Clint: No you don't, you can just cabal build the pandoc executable without packaging dependencies. Just use a freeze file/local mirror of package versions if you care about auditing (not that anyone is auditing Haskell libs now) |
2020-11-24 20:37:51 +0100 | ClaudiusMaximus | (~claude@198.123.199.146.dyn.plus.net) |
2020-11-24 20:37:51 +0100 | ClaudiusMaximus | (~claude@198.123.199.146.dyn.plus.net) (Changing host) |
2020-11-24 20:37:51 +0100 | ClaudiusMaximus | (~claude@unaffiliated/claudiusmaximus) |
2020-11-24 20:37:56 +0100 | christo | (~chris@81.96.113.213) |
2020-11-24 20:38:27 +0100 | <Clint> | merijn: not in debian, you can't |
2020-11-24 20:38:37 +0100 | <merijn> | Clint: Why not? |
2020-11-24 20:38:44 +0100 | chaosmasttter | (~chaosmast@p200300c4a7107e01bc10c915608759f8.dip0.t-ipconnect.de) |
2020-11-24 20:38:47 +0100 | <Clint> | because all build dependencies have to be packaged and reproducible |
2020-11-24 20:38:58 +0100 | <Clint> | and buildable without network |
2020-11-24 20:38:59 +0100 | <merijn> | That's not "can't" that's "won't" and that's on them |
2020-11-24 20:39:07 +0100 | <merijn> | Clint: You can build without network fine |
2020-11-24 20:39:22 +0100 | <merijn> | cabal-install doesn't need a network |
2020-11-24 20:39:26 +0100 | <Clint> | right, i can do whatever i want if i don't care about distribution rules |
2020-11-24 20:39:43 +0100 | <Clint> | but you're all outraged because people are following the rules you don't care about |
2020-11-24 20:40:00 +0100 | conal | (~conal@66.115.157.138) (Quit: Computer has gone to sleep.) |
2020-11-24 20:40:19 +0100 | <merijn> | Clint: If people self-impose dumb restrictions they don't get to bitch about the effect of those restrictions |
2020-11-24 20:40:23 +0100 | <merijn> | It's one or the other |
2020-11-24 20:40:24 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving) |
2020-11-24 20:40:34 +0100 | <glguy> | This feels like a more hostile conversation than it needs to be |
2020-11-24 20:40:47 +0100 | <Clint> | that's true |
2020-11-24 20:40:54 +0100 | <Clint> | i will abscond |
2020-11-24 20:41:17 +0100 | <sshine> | can't have that self-imposed dumb bitching. ;) |
2020-11-24 20:41:39 +0100 | <merijn> | Yeah, my bad. I just get so tired of people complaining about Haskell building being hard because they're making it hard :\ |
2020-11-24 20:41:52 +0100 | <glguy> | The value in the conversation could just be in better understanding of what the limitations are and what's possible |
2020-11-24 20:41:56 +0100 | <glguy> | doesn't have to be a fight |
2020-11-24 20:42:02 +0100 | <sshine> | merijn, I'm not complaining, but I *could* be complaining, because it tends to be. ;) |
2020-11-24 20:42:06 +0100 | <sm[m]> | +1 |
2020-11-24 20:42:11 +0100 | <maerwald> | Clint: do you have a link to that distro policy? |
2020-11-24 20:42:34 +0100 | <sshine> | merijn, also, distros distributing libraries is just a trap. |
2020-11-24 20:42:56 +0100 | <merijn> | sshine: In what way? |
2020-11-24 20:43:06 +0100 | <sshine> | merijn, well, you get stale snapshots. |
2020-11-24 20:43:21 +0100 | <merijn> | (or, I guess I should say "which specific flaw of many did you have in mind?" :p) |
2020-11-24 20:43:35 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection) |
2020-11-24 20:43:35 +0100 | conal | (~conal@66.115.157.138) |
2020-11-24 20:43:48 +0100 | <sshine> | merijn, and if the distro doesn't have the library you're looking for, you have to choose between either not using it, or completely losing the benefit of having snapshots maintained for you. |
2020-11-24 20:44:13 +0100 | Varis | (~Tadas@unaffiliated/varis) (Ping timeout: 246 seconds) |
2020-11-24 20:44:28 +0100 | <merijn> | Clearly the solution is to abandon software and become a gardener >.> |
2020-11-24 20:44:35 +0100 | <sshine> | I'm working on it. |
2020-11-24 20:44:40 +0100 | <maerwald> | merijn: do you have a nice spot? |
2020-11-24 20:44:46 +0100 | <sshine> | my cats are trying hard to prevent it from happening. |
2020-11-24 20:44:55 +0100 | <merijn> | maerwald: I have a garden, for now... :p |
2020-11-24 20:45:03 +0100 | <merijn> | Yes |
2020-11-24 20:45:20 +0100 | <merijn> | We should talk about cats, rather than packaging. Cats are clearly superior to software packaging |
2020-11-24 20:45:47 +0100 | <Rembane> | I want cats to do software packaging. |
2020-11-24 20:45:55 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) |
2020-11-24 20:46:19 +0100 | francesco_ | (~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 246 seconds) |
2020-11-24 20:46:29 +0100 | <Clint> | maerwald: https://www.debian.org/doc/debian-policy/ch-source.html |
2020-11-24 20:46:48 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
2020-11-24 20:46:56 +0100 | <glguy> | Clint: Is there a way to subscribe to some kind of stream to find out when I do something dumb that makes it hard to package my program in debian? |
2020-11-24 20:46:57 +0100 | <maerwald> | Rembane: you need more OCD than the average programmer to be a good packager :p |
2020-11-24 20:47:07 +0100 | <maerwald> | not sure cats qualify |
2020-11-24 20:47:52 +0100 | <merijn> | So, speaking of cats and somewhat staying on topic... |
2020-11-24 20:48:14 +0100 | <Rembane> | maerwald: That's a good point. What if packaging is like pushing things down from tables? :) |
2020-11-24 20:48:22 +0100 | <merijn> | Tragically, my lambdacats.org forward to, well, the lambdacats died a few years ago |
2020-11-24 20:48:27 +0100 | <merijn> | BUT! |
2020-11-24 20:48:32 +0100 | <glguy> | Clint: Also since you're listed as the packaging maintainer for glirc, I'll note that I did see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=801522 and I made a man page ^_^ |
2020-11-24 20:48:38 +0100 | <merijn> | I just discovered someone has a mirror of the original images! |
2020-11-24 20:48:51 +0100 | <maerwald> | Rembane: that reminds me more of haskell library maintainers pushing their API changes downstream like a cat stuff from the table |
2020-11-24 20:49:01 +0100 | <ezzieyguywuf> | oh neat, ghcup install Haskell Language Server |
2020-11-24 20:49:20 +0100 | aidecoe | (~aidecoe@unaffiliated/aidecoe) (Remote host closed the connection) |
2020-11-24 20:49:32 +0100 | <Rembane> | maerwald: :D |
2020-11-24 20:49:36 +0100 | brisbin | (~patrick@pool-173-49-158-4.phlapa.fios.verizon.net) (Ping timeout: 240 seconds) |
2020-11-24 20:50:23 +0100 | <Clint> | glguy: you could subscribe to https://tracker.debian.org/pkg/glirc for some subset of events |
2020-11-24 20:51:13 +0100 | <glguy> | thanks |
2020-11-24 20:51:52 +0100 | brisbin | (~patrick@pool-173-49-158-4.phlapa.fios.verizon.net) |
2020-11-24 20:52:13 +0100 | <merijn> | https://lambdacats.github.io/ \o/ |
2020-11-24 20:52:28 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 260 seconds) |
2020-11-24 20:53:21 +0100 | <ezzieyguywuf> | is the CHANGELOG.md thing necessary? |
2020-11-24 20:53:51 +0100 | <glguy> | Are you making something for other people to use? |
2020-11-24 20:53:53 +0100 | <merijn> | ezzieyguywuf: For what? |
2020-11-24 20:54:15 +0100 | <ezzieyguywuf> | merijn: cabal init created it |
2020-11-24 20:54:19 +0100 | <merijn> | ezzieyguywuf: CHANGELOG will be linked from Hackage for packages uploaded there |
2020-11-24 20:54:22 +0100 | <ezzieyguywuf> | I'm just wandering why it does that. |
2020-11-24 20:54:35 +0100 | conal | (~conal@66.115.157.138) (Quit: Computer has gone to sleep.) |
2020-11-24 20:54:37 +0100 | <merijn> | ezzieyguywuf: Which makes it easy for people to see what changes from version to version |
2020-11-24 20:55:02 +0100 | <merijn> | ezzieyguywuf: See the changelog under the dependencies here: https://hackage.haskell.org/package/lens |
2020-11-24 20:55:48 +0100 | oisdk | (~oisdk@2001:bb6:3329:d100:188f:f126:4321:8fc1) (Quit: oisdk) |
2020-11-24 20:55:54 +0100 | <merijn> | ezzieyguywuf: So is it *actually* necessary? No. Is it good to nudge people into including one by default? Yes. |
2020-11-24 20:55:59 +0100 | Deide | (~Deide@217.155.19.23) |
2020-11-24 20:56:19 +0100 | <merijn> | I mean, a license isn't *technically* necessary either :p |
2020-11-24 20:56:20 +0100 | <ezzieyguywuf> | merijn: ah, I see. thank you for that explanation. |
2020-11-24 20:56:32 +0100 | <ezzieyguywuf> | I tend to go to the projects git page first and search around there for history info. |
2020-11-24 20:56:33 +0100 | carlomagno1 | (~cararell@148.87.23.8) (Ping timeout: 260 seconds) |
2020-11-24 20:57:08 +0100 | <merijn> | ezzieyguywuf: Yeah, but if you wanna just quickly check "did 4.16 add anything breaking since 4.15" having a convenient source of that without digging through git is nice :p |
2020-11-24 20:57:13 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2020-11-24 20:57:24 +0100 | <ezzieyguywuf> | didn't cabal use to build things in a hidden directory? I see "dist-newstyle" in my project dir now. am I misremembering? was this always the case? |
2020-11-24 20:57:35 +0100 | oisdk | (~oisdk@2001:bb6:3329:d100:199a:baf3:2d99:2a0a) |
2020-11-24 20:57:54 +0100 | <merijn> | ezzieyguywuf: It *used* to use "dist/" so maybe you ignored that in the past, but didn't add dist-newstyle? |
2020-11-24 20:58:04 +0100 | conal | (~conal@66.115.157.138) |
2020-11-24 20:58:13 +0100 | <ezzieyguywuf> | hm, maybe that's it |
2020-11-24 20:58:20 +0100 | <ezzieyguywuf> | or I've been using stack for a while, maybe stack hides it |
2020-11-24 20:58:32 +0100 | <merijn> | Stack uses .stack-work, I think? |
2020-11-24 20:58:36 +0100 | <maerwald> | yeah, stack has a better default |
2020-11-24 20:58:47 +0100 | <maerwald> | non-hidden work dir is not a good default |
2020-11-24 20:59:03 +0100 | <merijn> | maerwald: Well, there's an open issues for discussing the "new" final naming of dist-newstyle on github :p |
2020-11-24 20:59:14 +0100 | <ezzieyguywuf> | I don't mind it, I'm used to 'build' dir with cmake |
2020-11-24 20:59:14 +0100 | <maerwald> | nice, the bikeshedding I needed |
2020-11-24 21:00:07 +0100 | <merijn> | maerwald: https://github.com/haskell/cabal/issues/5731 |
2020-11-24 21:00:41 +0100 | carlomagno | (~cararell@148.87.23.7) |
2020-11-24 21:01:48 +0100 | <maerwald> | too much bikeshedding :p |
2020-11-24 21:02:06 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds) |
2020-11-24 21:02:32 +0100 | pokid | (~pokid@unaffiliated/pokid) |
2020-11-24 21:03:11 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) |
2020-11-24 21:03:30 +0100 | cads | (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 265 seconds) |
2020-11-24 21:04:09 +0100 | glguy | (x@freenode/staff/haskell.developer.glguy) (Quit: Quit) |
2020-11-24 21:04:59 +0100 | knupfer | (~Thunderbi@200116b824be8100bcd086fffecad97d.dip.versatel-1u1.de) |
2020-11-24 21:05:00 +0100 | pokid | (~pokid@unaffiliated/pokid) () |
2020-11-24 21:05:02 +0100 | knupfer | (~Thunderbi@200116b824be8100bcd086fffecad97d.dip.versatel-1u1.de) (Client Quit) |
2020-11-24 21:05:18 +0100 | knupfer | (~Thunderbi@i59F7FF7E.versanet.de) |
2020-11-24 21:06:13 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-24 21:07:43 +0100 | <merijn> | Rats |
2020-11-24 21:07:52 +0100 | <merijn> | I have inadvertently made my own life annoying |
2020-11-24 21:07:52 +0100 | <koz_> | Such shed, much bike. |
2020-11-24 21:08:18 +0100 | <merijn> | Damn these types >.> |
2020-11-24 21:08:40 +0100 | zx__ | (~oracle@unaffiliated/oracle) |
2020-11-24 21:09:00 +0100 | <sm[m]> | ezzieyguywuf: changelog link is extremely useful, thanks for adding it |
2020-11-24 21:09:11 +0100 | <sm[m]> | I wish it was mandatory |
2020-11-24 21:09:41 +0100 | conal | (~conal@66.115.157.138) (Quit: Computer has gone to sleep.) |
2020-11-24 21:09:54 +0100 | zx__ | kish |
2020-11-24 21:10:49 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 246 seconds) |
2020-11-24 21:11:25 +0100 | kish` | (~oracle@unaffiliated/oracle) (Ping timeout: 240 seconds) |
2020-11-24 21:11:31 +0100 | christo | (~chris@81.96.113.213) |
2020-11-24 21:11:33 +0100 | kish | kish` |
2020-11-24 21:12:03 +0100 | christo | (~chris@81.96.113.213) (Read error: Connection reset by peer) |
2020-11-24 21:12:28 +0100 | christo | (~chris@81.96.113.213) |
2020-11-24 21:12:55 +0100 | <ezzieyguywuf> | should I just put cabal update on a daily chron job? |
2020-11-24 21:13:16 +0100 | <dminuoso> | Dunno, should you? |
2020-11-24 21:13:24 +0100 | <merijn> | ezzieyguywuf: Naah |
2020-11-24 21:13:40 +0100 | <dminuoso> | If you have it daily, you will be annoyed very regularly that builds break |
2020-11-24 21:13:45 +0100 | <merijn> | ezzieyguywuf: It warns you if you haven't updated in 20 days or so, and even that isn't necessarily bad |
2020-11-24 21:13:46 +0100 | <dminuoso> | Because transitive dependencies are suddenly broken |
2020-11-24 21:14:01 +0100 | <dminuoso> | Sure, they get fixed promptly, but it adds a lot of friction |
2020-11-24 21:14:12 +0100 | <dminuoso> | A monthly job for this is more sensible |
2020-11-24 21:14:41 +0100 | <dminuoso> | (With the odd additional manual invocation) |
2020-11-24 21:15:22 +0100 | conal | (~conal@66.115.157.138) |
2020-11-24 21:16:19 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2020-11-24 21:17:07 +0100 | ohhellothere | (50396315@g99021.upc-g.chello.nl) |
2020-11-24 21:20:01 +0100 | gioyik | (~gioyik@186.118.238.251) (Quit: WeeChat 3.0) |
2020-11-24 21:21:51 +0100 | rprije | (~rprije@123-243-139-165.tpgi.com.au) |
2020-11-24 21:22:34 +0100 | conal_ | (~conal@64.71.133.70) |
2020-11-24 21:23:30 +0100 | AlterEgo- | (~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving) |
2020-11-24 21:23:39 +0100 | hidedagger | (~nate@unaffiliated/hidedagger) |
2020-11-24 21:23:58 +0100 | conal | (~conal@66.115.157.138) (Ping timeout: 260 seconds) |
2020-11-24 21:24:06 +0100 | conal_ | (~conal@64.71.133.70) (Client Quit) |
2020-11-24 21:24:08 +0100 | sondr3 | (~sondr3@cm-84.211.56.132.getinternet.no) (Quit: Leaving) |
2020-11-24 21:24:34 +0100 | LKoen | (~LKoen@169.244.88.92.rev.sfr.net) (Read error: Connection reset by peer) |
2020-11-24 21:27:09 +0100 | hidedagger | (~nate@unaffiliated/hidedagger) (Client Quit) |
2020-11-24 21:28:02 +0100 | <hekkaidekapus> | Speaking of distros, Fedora has some facilities to be friendly to Haskell/Rust/Go. Debian & co. could be inspired by that. |
2020-11-24 21:28:04 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-24 21:28:43 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) |
2020-11-24 21:28:51 +0100 | <hekkaidekapus> | For Rust, libraries as basically shipped as sources. |
2020-11-24 21:29:24 +0100 | LKoen | (~LKoen@169.244.88.92.rev.sfr.net) |
2020-11-24 21:29:44 +0100 | <hekkaidekapus> | For Haskell, there is a Modularity repository where everything gets updated in lockstep. |
2020-11-24 21:30:07 +0100 | <hekkaidekapus> | And you can pull conflicting versions of the same package from that repo. |
2020-11-24 21:30:59 +0100 | <hekkaidekapus> | So, if you want binaries (or don’t want to be building stuff frequently), you just activate said repo. |
2020-11-24 21:31:21 +0100 | <maerwald> | yeah, I'm probably going to switch to Fedora sometime soon too |
2020-11-24 21:31:29 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
2020-11-24 21:31:47 +0100 | <dminuoso> | hekkaidekapus: Btw I think I settled on list-tries. It's a very complete tries library, and I trust the author |
2020-11-24 21:32:05 +0100 | <hekkaidekapus> | dminuoso: Cool! |
2020-11-24 21:32:35 +0100 | zincy_ | (~tom@2a00:23c8:970a:3501:49e9:cdf0:19c5:ddb0) |
2020-11-24 21:33:02 +0100 | <hekkaidekapus> | re Fedora, the base ‘base’ repositories are Stackage-based, so if you’re in the Stackage mindset, that will be enough for you. |
2020-11-24 21:33:18 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 260 seconds) |
2020-11-24 21:33:35 +0100 | <hekkaidekapus> | (Credits to petersen and tristanC who do the heavy lifting.) |
2020-11-24 21:34:48 +0100 | conal | (~conal@64.71.133.70) |
2020-11-24 21:38:15 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2020-11-24 21:38:43 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) |
2020-11-24 21:39:36 +0100 | LKoen | (~LKoen@169.244.88.92.rev.sfr.net) (Read error: Connection reset by peer) |
2020-11-24 21:39:39 +0100 | ohhellothere | (50396315@g99021.upc-g.chello.nl) (Ping timeout: 245 seconds) |
2020-11-24 21:40:49 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) |
2020-11-24 21:43:14 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
2020-11-24 21:43:31 +0100 | glguy | (x@freenode/staff/haskell.developer.glguy) |
2020-11-24 21:44:32 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) |
2020-11-24 21:44:36 +0100 | texasmynsted | (~texasmyns@212.102.44.39) (Ping timeout: 240 seconds) |
2020-11-24 21:44:39 +0100 | argent0 | (~argent0@168.227.98.80) |
2020-11-24 21:45:21 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2020-11-24 21:45:41 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) |
2020-11-24 21:46:14 +0100 | Sigyn | (sigyn@freenode/utility-bot/sigyn) (Quit: i've seen things you people wouldn't believe. spam bots on fire off the shoulder of sigyn. i watched k-line beams glitter in the dark near the Tannhäuser Gate. all these moments will be lost in time, like tears in rain. time to /die) |
2020-11-24 21:46:47 +0100 | Sigyn | (sigyn@freenode/utility-bot/sigyn) |
2020-11-24 21:46:47 +0100 | ChanServ | +o Sigyn |
2020-11-24 21:46:55 +0100 | DavidEichmann | (~david@62.110.198.146.dyn.plus.net) (Remote host closed the connection) |
2020-11-24 21:48:56 +0100 | jespada | (~jespada@90.254.245.49) (Ping timeout: 240 seconds) |
2020-11-24 21:49:50 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Quit: mputz) |
2020-11-24 21:49:51 +0100 | xff0x | (~fox@2001:1a81:526f:8600:829e:8d:48d6:9a13) (Ping timeout: 272 seconds) |
2020-11-24 21:50:22 +0100 | caecilius | (~caecilius@pool-108-46-151-95.nycmny.fios.verizon.net) (Quit: leaving) |
2020-11-24 21:50:24 +0100 | Lycurgus | (~niemand@98.4.114.74) |
2020-11-24 21:50:32 +0100 | xff0x | (~fox@2001:1a81:526f:8600:55b6:62c6:bb3b:dc43) |
2020-11-24 21:51:06 +0100 | hyperisco_ | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
2020-11-24 21:51:06 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Disconnected by services) |
2020-11-24 21:51:17 +0100 | hyperisco_ | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Client Quit) |
2020-11-24 21:51:20 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 260 seconds) |
2020-11-24 21:51:40 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
2020-11-24 21:51:58 +0100 | jespada | (~jespada@90.254.245.49) |
2020-11-24 21:53:04 +0100 | borne | (~fritjof@200116b864eb5c00394a967dc8ef4e61.dip.versatel-1u1.de) |
2020-11-24 21:53:12 +0100 | caecilius | (~caecilius@pool-108-46-151-95.nycmny.fios.verizon.net) |
2020-11-24 21:53:41 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-prctgemuwlhbjxof) |
2020-11-24 21:57:04 +0100 | <ezzieyguywuf> | shouldn't I want to know if a cabal update breaks builds? i.e. b/c I should update my cabal file (lol, so many cabals!) such that it doesn't fail? |
2020-11-24 21:57:31 +0100 | texasmynsted | (~texasmyns@212.102.45.106) |
2020-11-24 22:01:28 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) |
2020-11-24 22:02:37 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 264 seconds) |
2020-11-24 22:03:37 +0100 | <ezzieyguywuf> | aside from getArgs at GetOpt, are there other command-line flag "managers" in base? |
2020-11-24 22:03:48 +0100 | <ezzieyguywuf> | or what are some common libraries perhaps not in base? |
2020-11-24 22:04:00 +0100 | <merijn> | ezzieyguywuf: optparse-applicative |
2020-11-24 22:04:52 +0100 | <ezzieyguywuf> | merijn: thanks for the recommendation I'll take a look. |
2020-11-24 22:05:25 +0100 | <hekkaidekapus> | ezzieyguywuf: Run `cabal freeze` to lock versions your dependencies. |
2020-11-24 22:06:38 +0100 | <hekkaidekapus> | You might also write `index-state: 2020-11-24T12:00:00Z` in cabal.project to let cabal use a specific index. |
2020-11-24 22:07:30 +0100 | <ezzieyguywuf> | hekkaidekapus: so this supports the idea of keeping the cabal index up-to-date though, right? because it forces me to use these features as-needed to ensure my stuff works |
2020-11-24 22:07:45 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds) |
2020-11-24 22:07:51 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving) |
2020-11-24 22:08:29 +0100 | <dminuoso> | +1 for optparse-applicative |
2020-11-24 22:08:36 +0100 | <hekkaidekapus> | Yeag, `cabal update` will be harmless for the project configured that way, and it will still be able to use latest versions for other projects. |
2020-11-24 22:08:40 +0100 | <dminuoso> | One of the sweetest libraries around, despite its quirky implementation. :p |
2020-11-24 22:10:58 +0100 | <ezzieyguywuf> | 😍 optparse-applicative has some very nice features! |
2020-11-24 22:11:19 +0100 | Zetagon | (~leo@c151-177-52-233.bredband.comhem.se) (Remote host closed the connection) |
2020-11-24 22:11:31 +0100 | <fendor> | is there some *nice* library to aggregate a csv file and visualise it as some simple graphs? Or am I going to be quicker and more painless with R? |
2020-11-24 22:11:43 +0100 | <maerwald> | I found it easier designing a cli interface in shell, than in optparse-applicative :p |
2020-11-24 22:11:57 +0100 | <texasmynsted> | dsal: What happened to your site? http://bleu.west.spy.net/~dustin/ |
2020-11-24 22:12:46 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
2020-11-24 22:12:48 +0100 | <merijn> | maerwald: That's on you :p |
2020-11-24 22:13:07 +0100 | <maerwald> | it's still too verbose |
2020-11-24 22:13:38 +0100 | <merijn> | It's a bit more verbose than necessary, but it's an insignificant amount |
2020-11-24 22:13:53 +0100 | <maerwald> | depends how big your cli interface is |
2020-11-24 22:14:03 +0100 | <ezzieyguywuf> | "it's still too verbose" optparse-applicative? |
2020-11-24 22:14:13 +0100 | <merijn> | Plus, for bigger/more complicated setups you want some custom wrapping anyway |
2020-11-24 22:14:30 +0100 | <merijn> | maerwald: I'm guessing ghcup is orders of magnitude smaller than mine :p |
2020-11-24 22:14:37 +0100 | <aplainzetakind> | Isn't Data.PQueue.Max.deleteFindMax supposed to pop a largest element from the queue? |
2020-11-24 22:14:42 +0100 | <dminuoso> | The initial overhead is small, and you get robust parsing, a fine help screen and shell completion... |
2020-11-24 22:14:45 +0100 | <dminuoso> | And it scales well |
2020-11-24 22:15:00 +0100 | LKoen | (~LKoen@169.244.88.92.rev.sfr.net) |
2020-11-24 22:15:20 +0100 | <merijn> | Yeah, I'm willing to invest the tiny bit more code of optparse and be future proof for any expansion |
2020-11-24 22:15:25 +0100 | <dminuoso> | Perhaps optparse could need some additional combinators to bootstrap a miniature cli.. |
2020-11-24 22:15:28 +0100 | <dminuoso> | That could help |
2020-11-24 22:15:29 +0100 | <maerwald> | merijn: Main.hs (where all the parser stuff is) is 1.7kLOC |
2020-11-24 22:16:00 +0100 | <ezzieyguywuf> | WOW!!!! |
2020-11-24 22:16:02 +0100 | <maerwald> | most of it because brittany likes newlines |
2020-11-24 22:16:07 +0100 | <ezzieyguywuf> | i try to keep my source files smaller than that, lol |
2020-11-24 22:16:25 +0100 | <dminuoso> | maerwald: What's your point here? |
2020-11-24 22:16:33 +0100 | <dminuoso> | optparse-applicative is a library, eys |
2020-11-24 22:16:49 +0100 | <merijn> | I think I have about 2k worth of optparse parsing code, possibly more :p |
2020-11-24 22:16:51 +0100 | <maerwald> | my point is that it's less code in shell |
2020-11-24 22:17:01 +0100 | <maerwald> | which is an odd observation |
2020-11-24 22:17:07 +0100 | <merijn> | maerwald: But that's for about ~50 subcommands |
2020-11-24 22:17:10 +0100 | <sm[m]> | ezzieyguywuf: also cmdargs, docopt |
2020-11-24 22:17:15 +0100 | <merijn> | Across 3 executables |
2020-11-24 22:17:38 +0100 | <merijn> | I dislike cmdargs, ties your internal reprsentation to tightly to the external one |
2020-11-24 22:17:52 +0100 | <ezzieyguywuf> | sm[m]: saw cmdargs, that's what you're using in hledger :-P, haven't seen docopt though, I'll check it out. |
2020-11-24 22:18:25 +0100 | <maerwald> | haskell doesn't have a good alternative to optparse-applicative, but pythons click is much better |
2020-11-24 22:18:29 +0100 | <merijn> | ezzieyguywuf: docopt (and even cmdargs) imo only scale to really small commandlines |
2020-11-24 22:18:48 +0100 | <merijn> | oof |
2020-11-24 22:18:53 +0100 | <merijn> | Click is godawful >.> |
2020-11-24 22:18:55 +0100 | <dminuoso> | I found click to be frustrating |
2020-11-24 22:18:57 +0100 | <dminuoso> | Hah |
2020-11-24 22:18:59 +0100 | <maerwald> | it's the best |
2020-11-24 22:19:02 +0100 | <merijn> | I suspect maerwald values very different things than I do |
2020-11-24 22:19:17 +0100 | <maerwald> | I used it with coconut, it was just intuitive |
2020-11-24 22:19:19 +0100 | <merijn> | optparse is super reusable, which is great :> |
2020-11-24 22:19:45 +0100 | supercoven | (~Supercove@dsl-hkibng31-54fae6-106.dhcp.inet.fi) (Ping timeout: 240 seconds) |
2020-11-24 22:20:00 +0100 | <glguy> | Clint: neat, I got that notification :) |
2020-11-24 22:20:20 +0100 | <dminuoso> | python click is just tons of non-obvious decorators where it's not clear how they all interact |
2020-11-24 22:20:36 +0100 | <maerwald> | yes, you shouldn't know |
2020-11-24 22:21:06 +0100 | <dminuoso> | yes because why would you care to understand how components that you plug in interact with each other.. |
2020-11-24 22:21:30 +0100 | <maerwald> | dminuoso: that's defined by the API |
2020-11-24 22:21:34 +0100 | <maerwald> | you have to understand that |
2020-11-24 22:21:37 +0100 | <maerwald> | not the internals |
2020-11-24 22:21:40 +0100 | <maerwald> | I dont care about them |
2020-11-24 22:21:41 +0100 | <dminuoso> | It's also very non-composable |
2020-11-24 22:21:55 +0100 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
2020-11-24 22:22:02 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2020-11-24 22:22:03 +0100 | Tops2 | (~Tobias@dyndsl-095-033-095-017.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2020-11-24 22:22:22 +0100 | <maerwald> | that's python for you |
2020-11-24 22:22:33 +0100 | <Chousuke> | not having to understand the internals is all fine and good while things work :P |
2020-11-24 22:22:35 +0100 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2020-11-24 22:22:36 +0100 | <maerwald> | Tried to fix that with coconut |
2020-11-24 22:22:47 +0100 | <maerwald> | But all it did was causing pain for the next guy maintaining my crap :p |
2020-11-24 22:22:47 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 256 seconds) |
2020-11-24 22:23:03 +0100 | <ezzieyguywuf> | i'm eating a coconut |
2020-11-24 22:23:03 +0100 | <dminuoso> | Let's just write a Haskell-to-Python compiler. |
2020-11-24 22:23:05 +0100 | <dminuoso> | In Python. |
2020-11-24 22:23:08 +0100 | <dminuoso> | For maximum pleasure |
2020-11-24 22:23:28 +0100 | <merijn> | maerwald: Right, but I value composability :p |
2020-11-24 22:23:57 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) |
2020-11-24 22:24:26 +0100 | <maerwald> | merijn: I value stuff that doesn't piss me off :p |
2020-11-24 22:24:41 +0100 | <merijn> | I don't believe that for one second |
2020-11-24 22:24:55 +0100 | <koz_> | dminuoso: Snaked for your pleasure? :P |
2020-11-24 22:24:57 +0100 | <merijn> | You seem pissed of at technology and libraries nearly 24/7 :p |
2020-11-24 22:25:11 +0100 | <merijn> | So if you value not being pissed off, you seem to be doing something wrong :p |
2020-11-24 22:25:12 +0100 | LKoen | (~LKoen@169.244.88.92.rev.sfr.net) (Read error: Connection reset by peer) |
2020-11-24 22:25:28 +0100 | <Chousuke> | I don't think there's anything related to computers that doesn't piss me off at least somewhat |
2020-11-24 22:26:07 +0100 | <merijn> | anyhoo, enough technology for tonight |
2020-11-24 22:26:37 +0100 | <maerwald> | merijn: I don't like stuff that leaks implementation details. Because there's too much of it, I can't be bothered with all of it. Just get it out of my sight :p |
2020-11-24 22:26:56 +0100 | LKoen | (~LKoen@169.244.88.92.rev.sfr.net) |
2020-11-24 22:27:18 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection) |
2020-11-24 22:27:53 +0100 | <maerwald> | coconut leaks hard too, though |
2020-11-24 22:28:07 +0100 | <Chousuke> | An abstraction leaking implementation details is not the same thing as an abstraction that's transparent (ie. understandable) though |
2020-11-24 22:28:23 +0100 | <maerwald> | ah, classic topic: which one is lens? |
2020-11-24 22:29:37 +0100 | <glguy> | DigitalKiwi: What versions of things do I not support that are causing glirc to need special treatment? |
2020-11-24 22:30:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-11-24 22:30:56 +0100 | __monty__ | (~toonn@unaffiliated/toonn) (Quit: leaving) |
2020-11-24 22:31:05 +0100 | aredirect | (~aredirect@197.52.231.124) |
2020-11-24 22:31:28 +0100 | <aredirect> | Hi I want to take another look at haskell again, completely lost on which system to use |
2020-11-24 22:31:50 +0100 | <aredirect> | should i use cabal? haskell platform? distro packages? ghcup? stack? |
2020-11-24 22:32:12 +0100 | <triteraflops> | most distro packages basically just use cabal anyway |
2020-11-24 22:32:24 +0100 | <triteraflops> | I prefer distro packages because it's a one stop shop for updates |
2020-11-24 22:32:25 +0100 | <koz_> | aredirect: What OS are you on? |
2020-11-24 22:32:41 +0100 | <aredirect> | ubuntu, i dropped the idea of the distro packages before because of arch |
2020-11-24 22:32:47 +0100 | <dminuoso> | aredirect: Both cabal-install and stack are fine choices. They differ slightly. |
2020-11-24 22:32:50 +0100 | <koz_> | aredirect: Use ghcup and don't look back. |
2020-11-24 22:32:51 +0100 | <dminuoso> | Use ghcup to install them |
2020-11-24 22:33:15 +0100 | <DigitalKiwi> | glguy: random 1.2.0 i think |
2020-11-24 22:33:19 +0100 | <aredirect> | can I have a system wide default installation with ghcup? |
2020-11-24 22:33:25 +0100 | <maerwald> | aredirect: kind of |
2020-11-24 22:33:31 +0100 | <maerwald> | but with hacks |
2020-11-24 22:33:41 +0100 | <aredirect> | what I want is, having a system wide haskell where i can write scripts and run them |
2020-11-24 22:33:45 +0100 | <maerwald> | it's meant to be user-wide installation, where do you want to put it? |
2020-11-24 22:33:51 +0100 | <aredirect> | and another one that has an enviornment per project |
2020-11-24 22:34:20 +0100 | <aredirect> | but the mos annoying thing when used stack it keeps downloading and consuming disk sizes which is in my case not that big |
2020-11-24 22:34:21 +0100 | <triteraflops> | Ideally, pacman would have some kind of cabal integration, so that haskell applications can be searched for and installed with a pacman frontend and cabal backend |
2020-11-24 22:34:31 +0100 | <DigitalKiwi> | and let me see i think irc-core has something too but i have to build it |
2020-11-24 22:34:39 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-24 22:34:43 +0100 | <dminuoso> | aredirect: That sounds like a curious requirements. |
2020-11-24 22:34:45 +0100 | <dminuoso> | What's the usecase |
2020-11-24 22:35:32 +0100 | <aredirect> | i develop in other languages e.g python which is available cross the system and when i want to develop a complete isolated project i fallback to virtualenv |
2020-11-24 22:35:32 +0100 | conal | (~conal@64.71.133.70) |
2020-11-24 22:35:48 +0100 | <aredirect> | but all my automation scripts work by default on the system installation outside of the venv |
2020-11-24 22:35:51 +0100 | <DigitalKiwi> | glguy: base64-bytestring >=1.0.0.1 && <1.1 on irc-core |
2020-11-24 22:35:57 +0100 | <maerwald> | aredirect: you can set GHCUP_INSTALL_BASE_PREFIX=/var/local for example, then it will install into /var/local/.ghcup |
2020-11-24 22:36:00 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-24 22:36:05 +0100 | <maerwald> | but it's up to you how you deal with file permissions |
2020-11-24 22:36:07 +0100 | jonatanb | (jonatanb@gateway/vpn/protonvpn/jonatanb) |
2020-11-24 22:36:33 +0100 | <aredirect> | maerwald, ah don't want to ruin that i wish there was a minimal way |
2020-11-24 22:36:52 +0100 | <aredirect> | probably can be fine with stack if it stops downloading the world and using my disk space? |
2020-11-24 22:37:13 +0100 | <DigitalKiwi> | it's possible there are others too maybe i'm not sure but that might be it and the happy 1.2 |
2020-11-24 22:37:35 +0100 | <maerwald> | aredirect: that is quite a minimal way, no? :p |
2020-11-24 22:37:43 +0100 | <glguy> | Oh, I regularly run 'cabal outdated' but that wasn't checking my libraries, just the top-level client |
2020-11-24 22:37:52 +0100 | <aredirect> | and can have a stack project called globalhs on my system and be done with it but i'd want that data downloaded to be cached and reused in every new project |
2020-11-24 22:38:58 +0100 | <maerwald> | eh? |
2020-11-24 22:39:27 +0100 | <maerwald> | both stack and cabal share installed libs across projects |
2020-11-24 22:39:44 +0100 | <aredirect> | hmm why then stack keeps redownloading ghc over and over? |
2020-11-24 22:39:50 +0100 | <maerwald> | yeah... xD |
2020-11-24 22:39:54 +0100 | michalz | (~user@185.246.204.39) (Remote host closed the connection) |
2020-11-24 22:40:01 +0100 | <maerwald> | -> cabal |
2020-11-24 22:40:04 +0100 | <koz_> | aredirect: Because the GHC version depends on the resolver. |
2020-11-24 22:40:08 +0100 | LKoen | (~LKoen@169.244.88.92.rev.sfr.net) (Read error: Connection reset by peer) |
2020-11-24 22:40:10 +0100 | <DigitalKiwi> | glguy: this is the one we have right nowcopying path '/nix/store/l6rch8hzai15wwcacwcj2bscqcfpcqxh-base64-bytestring-1.1.0.0' from 'https://cache.nixos.org'... |
2020-11-24 22:40:31 +0100 | <aredirect> | is there a way to have that pinned koz_ for all of the projects? |
2020-11-24 22:40:31 +0100 | <maerwald> | koz_: which is sad, because you can just lift that restriction and stuff still works |
2020-11-24 22:40:41 +0100 | <koz_> | maerwald: Except when it doesn't. |
2020-11-24 22:40:49 +0100 | <koz_> | aredirect: Always set the same resolver in your stack.yamls. |
2020-11-24 22:40:56 +0100 | <koz_> | There may be soem kind of config as well, I dunno. |
2020-11-24 22:41:02 +0100 | <koz_> | Stack is documented like a saddle fits a cow. |
2020-11-24 22:41:34 +0100 | <maerwald> | right, only for cowboys |
2020-11-24 22:41:52 +0100 | <aredirect> | i was quitefond of haskell platform but i saw warning somewhere |
2020-11-24 22:42:02 +0100 | <aredirect> | and the main website just confuses the hell out of me |
2020-11-24 22:42:04 +0100 | LKoen | (~LKoen@169.244.88.92.rev.sfr.net) |
2020-11-24 22:42:15 +0100 | <maerwald> | there is no haskell platfrom anymore really, except some distros have packages with that name |
2020-11-24 22:42:25 +0100 | <glguy> | DigitalKiwi: supporting the older random needed a code change, so that won't go out until next release |
2020-11-24 22:42:45 +0100 | knupfer | (~Thunderbi@i59F7FF7E.versanet.de) (Ping timeout: 240 seconds) |
2020-11-24 22:42:48 +0100 | <dsal> | texasmynsted: google app engine deprecated my build and shut it off. I've got around to writing a new web server. |
2020-11-24 22:42:54 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) |
2020-11-24 22:43:00 +0100 | <aredirect> | maerwald, did you see this page? https://www.haskell.org/downloads/ |
2020-11-24 22:43:15 +0100 | <aredirect> | i swear i saw ghcup once on the website before :D |
2020-11-24 22:43:32 +0100 | <maerwald> | aredirect: yeah, it's a never ending topic |
2020-11-24 22:43:59 +0100 | <aredirect> | koz_, per project or globally? i don't want to keep track of which resolver i don't even know features after ghc 2010 i guess that was sthe version i used |
2020-11-24 22:44:01 +0100 | texasmynsted | (~texasmyns@212.102.45.106) (Ping timeout: 264 seconds) |
2020-11-24 22:44:12 +0100 | <koz_> | aredirect: 'GHC 2010' is not a thing. |
2020-11-24 22:44:14 +0100 | <koz_> | are |
2020-11-24 22:44:32 +0100 | <koz_> | aredirect: stack.yaml is per-project. There may or may not be some global thing stack uses. |
2020-11-24 22:44:40 +0100 | koz_ | points to his comment regarding how Stack is documented. |
2020-11-24 22:44:53 +0100 | <maerwald> | aredirect: https://github.com/haskell-infra/www.haskell.org/issues/12 https://github.com/haskell-infra/www.haskell.org/issues/21 |
2020-11-24 22:45:11 +0100 | <aredirect> | ah haskell 2010 koz_ my bad |
2020-11-24 22:45:12 +0100 | <maerwald> | (and some more) |
2020-11-24 22:45:23 +0100 | <koz_> | aredirect: Every version of GHC supports Haskell2010. |
2020-11-24 22:45:38 +0100 | <koz_> | (well, every version you should even remotely consider using) |
2020-11-24 22:46:11 +0100 | conal | (~conal@64.71.133.70) |
2020-11-24 22:46:34 +0100 | <aredirect> | koz_, ah for sure i think i used to use hugs at certain point |
2020-11-24 22:46:48 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2020-11-24 22:46:59 +0100 | <koz_> | aredirect: In that case, just pick a version and go. |
2020-11-24 22:47:01 +0100 | <aredirect> | maerwald, indeed that page is confusing |
2020-11-24 22:47:06 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) (Remote host closed the connection) |
2020-11-24 22:47:17 +0100 | <koz_> | I _think_ LTSes for Stack only go as high as 8.8 for now? |
2020-11-24 22:47:21 +0100 | <triteraflops> | wait, clean isn't lazy, is it? |
2020-11-24 22:47:29 +0100 | <DigitalKiwi> | glguy: D: |
2020-11-24 22:47:40 +0100 | <triteraflops> | maybe that's how it gets away with using uniqueness types to do IO |
2020-11-24 22:47:42 +0100 | <aredirect> | koz_, yeah i'd have to check a version and see how to use it everywhere :( |
2020-11-24 22:47:53 +0100 | <DigitalKiwi> | glguy: ty, i'll put that comment in then and should appease the reviewer :D |
2020-11-24 22:47:55 +0100 | <aredirect> | but all of this is just too much even for someone who used haskell in the past :( |
2020-11-24 22:48:16 +0100 | <koz_> | aredirect: Tools require learning. That's pretty universal IMHO. |
2020-11-24 22:48:17 +0100 | <aredirect> | guess I can explain monads easier than explaining the download page |
2020-11-24 22:48:42 +0100 | <koz_> | *insert obligatory statement about monoids in the category of endofunctors* |
2020-11-24 22:48:50 +0100 | <koz_> | *insert obligatory inquiry about what the problem is* |
2020-11-24 22:48:52 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2020-11-24 22:49:09 +0100 | <aredirect> | koz_, sure as long as you have a clear path that's not confusing for these tooling not 4 different paths |
2020-11-24 22:49:20 +0100 | <aredirect> | koz_, hehe it'll never get old :D |
2020-11-24 22:50:01 +0100 | borne | (~fritjof@200116b864eb5c00394a967dc8ef4e61.dip.versatel-1u1.de) (Ping timeout: 272 seconds) |
2020-11-24 22:50:39 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:2b3f:f80d:4d07:855c) (Ping timeout: 272 seconds) |
2020-11-24 22:51:38 +0100 | <maerwald> | aredirect: feel free to comment on those issues |
2020-11-24 22:52:07 +0100 | <maerwald> | the infra part is a bit more bureaucratic though, I guess |
2020-11-24 22:52:13 +0100 | aidecoe | (~aidecoe@unaffiliated/aidecoe) |
2020-11-24 22:52:22 +0100 | <maerwald> | we can't have anarchy there either, obviously |
2020-11-24 22:52:55 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2020-11-24 22:53:05 +0100 | <aredirect> | maerwald, probably we need cargo there :D |
2020-11-24 22:53:43 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
2020-11-24 22:53:56 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@66.115.189.237) (Ping timeout: 240 seconds) |
2020-11-24 22:54:00 +0100 | borne | (~fritjof@200116b864eb5c00394a967dc8ef4e61.dip.versatel-1u1.de) |
2020-11-24 22:54:52 +0100 | Franciman | (~francesco@5.170.141.159) |
2020-11-24 22:55:34 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection) |
2020-11-24 22:55:41 +0100 | royal_screwup213 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2020-11-24 22:56:32 +0100 | royal_screwup213 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-24 22:56:38 +0100 | royal_screwup213 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit) |
2020-11-24 23:02:25 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:4889:2fb8:f3c5:4ca) |
2020-11-24 23:06:12 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-24 23:07:15 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Remote host closed the connection) |
2020-11-24 23:08:36 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) |
2020-11-24 23:09:46 +0100 | hexfive | (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) |
2020-11-24 23:11:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-11-24 23:11:49 +0100 | texasmynsted | (~texasmyns@212.102.45.123) |
2020-11-24 23:12:05 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) (Ping timeout: 256 seconds) |
2020-11-24 23:12:07 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection) |
2020-11-24 23:15:10 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) |
2020-11-24 23:17:02 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2020-11-24 23:18:56 +0100 | neiluj | (~jco@91-167-203-101.subs.proxad.net) |
2020-11-24 23:19:01 +0100 | neiluj | (~jco@91-167-203-101.subs.proxad.net) (Changing host) |
2020-11-24 23:19:01 +0100 | neiluj | (~jco@unaffiliated/neiluj) |
2020-11-24 23:22:26 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-24 23:25:43 +0100 | christo | (~chris@81.96.113.213) |
2020-11-24 23:26:01 +0100 | hackage | gi-gtk 4.0.3 - Gtk bindings https://hackage.haskell.org/package/gi-gtk-4.0.3 (inaki) |
2020-11-24 23:27:58 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-24 23:33:10 +0100 | christo | (~chris@81.96.113.213) |
2020-11-24 23:33:30 +0100 | hackage | reflex-localize 1.0.0.0 - Localization library for reflex https://hackage.haskell.org/package/reflex-localize-1.0.0.0 (NCrashed) |
2020-11-24 23:34:30 +0100 | hackage | haskell-gi 0.24.6 - Generate Haskell bindings for GObject Introspection capable libraries https://hackage.haskell.org/package/haskell-gi-0.24.6 (inaki) |
2020-11-24 23:35:30 +0100 | hackage | reflex-localize-dom 1.0.0.0 - Helper widgets for reflex-localize https://hackage.haskell.org/package/reflex-localize-dom-1.0.0.0 (NCrashed) |
2020-11-24 23:36:31 +0100 | hackage | haskell-gi-base 0.24.5, haskell-gi 0.24.7 (inaki): https://qbin.io/person-smoke-zz5q |
2020-11-24 23:38:01 +0100 | christo | (~chris@81.96.113.213) (Ping timeout: 264 seconds) |
2020-11-24 23:38:52 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
2020-11-24 23:39:15 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-24 23:39:34 +0100 | argent0 | (~argent0@168.227.98.80) (Ping timeout: 246 seconds) |
2020-11-24 23:41:30 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2020-11-24 23:42:47 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2020-11-24 23:43:46 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-24 23:44:03 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection) |
2020-11-24 23:44:26 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-24 23:46:25 +0100 | Francois | (~francois@2a02:a03f:5ad8:f100:707f:a6cc:c4f1:c0ac) |
2020-11-24 23:46:32 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) |
2020-11-24 23:48:28 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2020-11-24 23:48:31 +0100 | kish` | (~oracle@unaffiliated/oracle) (Remote host closed the connection) |
2020-11-24 23:49:20 +0100 | francesco_ | (~francesco@5.170.141.159) |
2020-11-24 23:49:25 +0100 | argent0 | (~argent0@168.227.98.84) |
2020-11-24 23:50:08 +0100 | francesco_ | (~francesco@5.170.141.159) (Client Quit) |
2020-11-24 23:50:18 +0100 | Franciman | (~francesco@5.170.141.159) (Quit: Leaving) |
2020-11-24 23:50:41 +0100 | htmnc | (~James@2600:1700:4ca1:7640:ec8e:65af:cdd0:9671) (Quit: Leaving) |
2020-11-24 23:51:28 +0100 | solonarv | (~solonarv@astrasbourg-653-1-156-4.w90-6.abo.wanadoo.fr) (Ping timeout: 246 seconds) |
2020-11-24 23:52:13 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2020-11-24 23:53:09 +0100 | seveg | (~gabriel@188-167-252-154.dynamic.chello.sk) (Quit: WeeChat 2.9) |
2020-11-24 23:57:02 +0100 | chaosmasttter | (~chaosmast@p200300c4a7107e01bc10c915608759f8.dip0.t-ipconnect.de) (Quit: WeeChat 2.9) |
2020-11-24 23:58:14 +0100 | conal | (~conal@64.71.133.70) |