Logs on 2022-07-11 (liberachat/#haskell)
| 00:02:57 | → | king_gs joins (~Thunderbi@187.201.38.129) |
| 00:03:37 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4df7:4e2c:3ff5:237f) (Remote host closed the connection) |
| 00:06:25 | × | jgeerds quits (~jgeerds@55d437cf.access.ecotel.net) (Ping timeout: 260 seconds) |
| 00:17:59 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:4df7:4e2c:3ff5:237f) |
| 00:27:57 | × | gurkenglas quits (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 276 seconds) |
| 00:31:12 | → | pgas joins (~pg@190.247.245.154) |
| 00:36:23 | × | alp quits (~alp@user/alp) (Ping timeout: 244 seconds) |
| 00:38:02 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 00:42:35 | × | king_gs quits (~Thunderbi@187.201.38.129) (Read error: Connection reset by peer) |
| 00:43:46 | → | king_gs joins (~Thunderbi@2806:103e:29:5946:ae8b:1218:3255:d41d) |
| 00:51:39 | × | tdammers quits (~tdammers@77.109.72.118.res.static.edpnet.net) (Ping timeout: 276 seconds) |
| 00:52:55 | → | tdammers joins (~tdammers@77.109.72.118.res.static.edpnet.net) |
| 01:06:18 | × | xff0x quits (~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 240 seconds) |
| 01:10:33 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:11:15 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 01:16:41 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:27:02 | × | tomgus1 quits (~tomgus1@97e50351.skybroadband.com) (Quit: ZNC 1.8.2+deb2 - https://znc.in) |
| 01:28:30 | → | tomgus1 joins (~tomgus1@97e50351.skybroadband.com) |
| 01:34:46 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 244 seconds) |
| 01:38:46 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 01:39:56 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 244 seconds) |
| 01:43:36 | × | Me-me quits (~me-me@v.working.name) (Changing host) |
| 01:43:36 | → | Me-me joins (~me-me@user/me-me) |
| 01:45:15 | × | pgas quits (~pg@190.247.245.154) (Quit: Leaving) |
| 01:47:13 | → | merijn joins (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) |
| 01:52:26 | <edwardk> | egraphs are really annoying to represent in haskell, that is all |
| 01:54:20 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 01:54:21 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::909a) |
| 01:55:01 | × | dsrt^ quits (~dsrt@50-246-23-230-static.hfc.comcastbusiness.net) (Ping timeout: 256 seconds) |
| 01:55:03 | × | maroloccio quits (~marolocci@151.53.133.54) (Ping timeout: 276 seconds) |
| 01:55:17 | → | king_gs1 joins (~Thunderbi@187.201.38.129) |
| 01:55:57 | × | king_gs quits (~Thunderbi@2806:103e:29:5946:ae8b:1218:3255:d41d) (Ping timeout: 244 seconds) |
| 01:55:57 | king_gs1 | is now known as king_gs |
| 01:56:15 | → | maroloccio joins (~marolocci@37.100.9.74) |
| 01:58:47 | × | maroloccio quits (~marolocci@37.100.9.74) (Client Quit) |
| 01:59:09 | × | jpds1 quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 01:59:31 | → | jpds1 joins (~jpds@gateway/tor-sasl/jpds) |
| 02:04:00 | × | lemonsni- quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 02:06:50 | → | dsrt^ joins (~dsrt@50-246-23-230-static.hfc.comcastbusiness.net) |
| 02:07:50 | → | opow joins (~igloo@c-68-32-52-58.hsd1.mi.comcast.net) |
| 02:07:56 | × | opow quits (~igloo@c-68-32-52-58.hsd1.mi.comcast.net) (Max SendQ exceeded) |
| 02:09:13 | → | edinwood joins (~edinwood@213.205.241.124) |
| 02:14:51 | <Axman6> | "egraph" makes me think of the cheese edam |
| 02:16:54 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 264 seconds) |
| 02:19:13 | → | notzmv joins (~zmv@user/notzmv) |
| 02:20:14 | × | merijn quits (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 244 seconds) |
| 02:20:49 | → | lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
| 02:29:30 | × | td_ quits (~td@muedsl-82-207-238-125.citykom.de) (Ping timeout: 240 seconds) |
| 02:31:32 | → | td_ joins (~td@muedsl-82-207-238-180.citykom.de) |
| 02:35:54 | <edwardk> | thinking it might be easiest to use something like my old 'rcu' library here to handle the egraph rebuilds |
| 02:36:37 | <edwardk> | and treat the common mode of operation like a rcu read thread or writer thread, but then we can allow these to go a bit out of sync if they are monotone to gaining more information |
| 02:36:50 | <edwardk> | so rcu is a bit 'heavy' |
| 02:37:21 | <Axman6> | I'm sensing a new LambdaJam talk in the works |
| 02:37:44 | <edwardk> | let me solve it before i start planning talks ;) |
| 02:38:17 | <edwardk> | the videos (5 and 30m long) on https://egraphs-good.github.io/ give a good set of reasons for why to care about these structures |
| 02:38:31 | <edwardk> | if you haven't played with or seen egg yet |
| 02:38:48 | <Axman6> | BEst I can do is scrambles eggs, sorry |
| 02:39:02 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds) |
| 02:39:08 | <edwardk> | scramble, bad egg, sulphur, brimstone, hell. all the names write themselves =P |
| 02:39:18 | <Axman6> | scrambled even |
| 02:39:23 | <Axman6> | ha |
| 02:40:19 | <edwardk> | currently using the name 'constable' because it builds hashconsing out of a bunch of hashtables. and hashconstable was too long and hashtable too ambiguous |
| 02:40:33 | <edwardk> | and now i want to pin a sherrif's badge on it |
| 02:41:21 | <Axman6> | sometimes a good names demands the existance of a package. one day I will make an Accelerate backed version of Grenade and call it RPG, but currently I have no use for it |
| 02:41:25 | × | Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 244 seconds) |
| 02:42:38 | → | Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) |
| 02:43:06 | × | terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
| 02:44:19 | → | terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1) |
| 02:45:47 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:45:47 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:45:47 | finn_elija | is now known as FinnElija |
| 02:47:35 | × | king_gs quits (~Thunderbi@187.201.38.129) (Quit: king_gs) |
| 02:50:33 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds) |
| 02:52:16 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 02:53:46 | × | toluene quits (~toluene@user/toulene) (Read error: Connection reset by peer) |
| 02:53:49 | × | jpds1 quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
| 02:54:32 | → | toluene joins (~toluene@user/toulene) |
| 02:58:50 | → | jpds1 joins (~jpds@gateway/tor-sasl/jpds) |
| 02:59:20 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 03:00:00 | × | Taneb quits (~Taneb@runciman.hacksoc.org) (Quit: I seem to have stopped.) |
| 03:01:13 | → | Taneb joins (~Taneb@runciman.hacksoc.org) |
| 03:05:34 | × | edinwood quits (~edinwood@213.205.241.124) (Remote host closed the connection) |
| 03:06:58 | → | merijn joins (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) |
| 03:07:39 | <edwardk> | hrmm. https://ldhulipala.github.io/readings/split_ordered_lists.pdf seems like a cute inversion of the olf witold litwin style sorted linear hashtable |
| 03:07:46 | <edwardk> | er old |
| 03:11:50 | × | merijn quits (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
| 03:23:09 | → | machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net) |
| 03:40:21 | × | dsrt^ quits (~dsrt@50-246-23-230-static.hfc.comcastbusiness.net) (Ping timeout: 276 seconds) |
| 03:44:58 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::909a) (Ping timeout: 244 seconds) |
| 03:47:30 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
| 03:48:12 | → | dsrt^ joins (~dsrt@50-246-23-230-static.hfc.comcastbusiness.net) |
| 03:49:45 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 04:04:50 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
| 04:07:04 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 04:15:50 | → | frost joins (~frost@user/frost) |
| 04:28:55 | → | kenran joins (~kenran@200116b82b139d00794db14e87015f86.dip.versatel-1u1.de) |
| 04:33:35 | × | toluene quits (~toluene@user/toulene) (Quit: Ping timeout (120 seconds)) |
| 04:33:49 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 04:33:49 | <matthewmosior> | Hi |
| 04:34:31 | <matthewmosior> | Not sure how this works, but I think I am not in the #haskell irc.libera server hopefully? |
| 04:34:39 | <matthewmosior> | Not sure how this works, but I think I am now in the #haskell irc.libera server hopefully? |
| 04:34:54 | <Axman6> | you're in the #haskell channel on Libera, yes |
| 04:35:01 | <matthewmosior> | Ah okay super cool! |
| 04:35:06 | × | kenran quits (~kenran@200116b82b139d00794db14e87015f86.dip.versatel-1u1.de) (Quit: WeeChat info:version) |
| 04:35:06 | <Axman6> | Welcome |
| 04:35:07 | <matthewmosior> | Really excited to be here! |
| 04:35:08 | → | toluene joins (~toluene@user/toulene) |
| 04:35:09 | <matthewmosior> | Thank you! |
| 04:37:40 | <jackdk> | Welcome |
| 04:40:26 | <matthewmosior> | :) |
| 04:47:17 | × | dsrt^ quits (~dsrt@50-246-23-230-static.hfc.comcastbusiness.net) (Ping timeout: 256 seconds) |
| 04:51:11 | → | dsrt^ joins (~dsrt@50-246-23-230-static.hfc.comcastbusiness.net) |
| 04:52:39 | defanor_ | is now known as defanor |
| 05:01:36 | × | machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 276 seconds) |
| 05:01:41 | × | _________ quits (~nobody@user/noodly) (Quit: Reconnecting) |
| 05:02:00 | → | _________ joins (~nobody@user/noodly) |
| 05:02:02 | <Axman6> | matthewmosior: Are you workoing on some Haskell? Also, if you're new to IRC, it's normal for discussion to ebb and flow, so don't think anything is abnormal because no one is chatting right now - us Australians are just busy working |
| 05:03:40 | → | jargon joins (~jargon@184.101.188.251) |
| 05:03:41 | <jackdk> | And while we're doing the netiquette primer, don't feel like you have to ask permission to ask a question ("does anyone know about monad transformers?"). Instead, just open with your question ("I'm trying to make a transformer stack work, and I'm having this specific problem. also here's a link to a pastebin") |
| 05:03:46 | <jackdk> | @where paste |
| 05:03:47 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
| 05:08:13 | → | merijn joins (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) |
| 05:08:50 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Ping timeout: 240 seconds) |
| 05:09:23 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 05:09:50 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 05:11:50 | × | dsrt^ quits (~dsrt@50-246-23-230-static.hfc.comcastbusiness.net) (Ping timeout: 240 seconds) |
| 05:13:57 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 05:18:08 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 05:20:46 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:22:37 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 05:30:05 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 05:32:07 | → | `2jt joins (~jtomas@141.red-88-17-65.dynamicip.rima-tde.net) |
| 05:36:26 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 05:37:51 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
| 05:41:03 | → | mikoto-chan joins (~mikoto-ch@d59mf84twhjn22gzzgy-4.rev.dnainternet.fi) |
| 05:41:54 | × | merijn quits (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds) |
| 06:04:49 | → | acidjnk joins (~acidjnk@p200300d6e706ad7551e311a7b45e4414.dip0.t-ipconnect.de) |
| 06:07:30 | × | mikoto-chan quits (~mikoto-ch@d59mf84twhjn22gzzgy-4.rev.dnainternet.fi) (Ping timeout: 260 seconds) |
| 06:08:24 | × | tolt quits (~weechat-h@li219-154.members.linode.com) (*.net *.split) |
| 06:08:24 | × | red-snail quits (~snail@static.151.210.203.116.clients.your-server.de) (*.net *.split) |
| 06:08:24 | × | lambdap23 quits (~lambdap@static.167.190.119.168.clients.your-server.de) (*.net *.split) |
| 06:08:24 | × | wagle quits (~wagle@quassel.wagle.io) (*.net *.split) |
| 06:08:24 | × | leah2 quits (~leah@vuxu.org) (*.net *.split) |
| 06:08:24 | × | cods quits (~fred@82-65-232-44.subs.proxad.net) (*.net *.split) |
| 06:08:24 | × | tristanC quits (~tristanC@user/tristanc) (*.net *.split) |
| 06:08:24 | × | lambdabot quits (~lambdabot@haskell/bot/lambdabot) (*.net *.split) |
| 06:08:24 | × | noctux quits (~noctux@user/noctux) (*.net *.split) |
| 06:08:24 | × | hyiltiz quits (~quassel@31.220.5.250) (*.net *.split) |
| 06:08:24 | × | macabre quits (~m@161.35.15.236) (*.net *.split) |
| 06:08:24 | × | triteraflops quits (~triterafl@user/triteraflops) (*.net *.split) |
| 06:08:24 | × | polux quits (~polux@51-15-169-172.rev.poneytelecom.eu) (*.net *.split) |
| 06:08:24 | × | wrengr quits (~wrengr@249.189.233.35.bc.googleusercontent.com) (*.net *.split) |
| 06:08:24 | × | caubert quits (~caubert@user/caubert) (*.net *.split) |
| 06:08:24 | × | x88x88x quits (~x88x88x@149.28.53.172) (*.net *.split) |
| 06:08:24 | × | dwt_ quits (~dwt_@c-98-198-103-176.hsd1.tx.comcast.net) (*.net *.split) |
| 06:08:24 | × | jamestmartin quits (~james@jtmar.me) (*.net *.split) |
| 06:08:24 | × | loonycyborg_ quits (~loonycybo@chantal.wesnoth.org) (*.net *.split) |
| 06:08:24 | × | haskl quits (~haskl@user/haskl) (*.net *.split) |
| 06:08:24 | × | Aleksejs quits (~Aleksejs@107.170.21.106) (*.net *.split) |
| 06:08:34 | → | noctux joins (~noctux@user/noctux) |
| 06:08:36 | → | jamestmartin joins (~james@jtmar.me) |
| 06:08:37 | → | triteraflops joins (~triterafl@user/triteraflops) |
| 06:08:37 | → | lambdabot joins (~lambdabot@silicon.int-e.eu) |
| 06:08:37 | → | cods joins (~fred@82-65-232-44.subs.proxad.net) |
| 06:08:38 | → | wagle joins (~wagle@quassel.wagle.io) |
| 06:08:38 | → | lambdap23 joins (~lambdap@static.167.190.119.168.clients.your-server.de) |
| 06:08:46 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 06:08:53 | × | lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host) |
| 06:08:53 | → | lambdabot joins (~lambdabot@haskell/bot/lambdabot) |
| 06:08:56 | → | caubert joins (~caubert@136.244.111.235) |
| 06:08:56 | → | polux joins (~polux@51-15-169-172.rev.poneytelecom.eu) |
| 06:08:58 | → | leah2 joins (~leah@vuxu.org) |
| 06:09:00 | → | loonycyborg joins (loonycybor@wesnoth/developer/loonycyborg) |
| 06:09:05 | → | tolt joins (~weechat-h@li219-154.members.linode.com) |
| 06:09:14 | → | macabre joins (~m@161.35.15.236) |
| 06:09:18 | × | caubert quits (~caubert@136.244.111.235) (Signing in (caubert)) |
| 06:09:18 | → | caubert joins (~caubert@user/caubert) |
| 06:09:41 | → | red-snail joins (~snail@static.151.210.203.116.clients.your-server.de) |
| 06:09:46 | → | haskl joins (~haskl@user/haskl) |
| 06:09:48 | → | Aleksejs joins (~Aleksejs@107.170.21.106) |
| 06:10:44 | → | dwt_ joins (~dwt_@c-98-198-103-176.hsd1.tx.comcast.net) |
| 06:11:59 | × | ircbrowse_tom quits (~ircbrowse@2a01:4f8:1c1c:9319::1) (ZNC 1.7.5+deb4 - https://znc.in) |
| 06:13:35 | → | ircbrowse_tom joins (~ircbrowse@2a01:4f8:1c1c:9319::1) |
| 06:13:35 | Server | sets mode +Cnt |
| 06:13:39 | → | remedan joins (~remedan@octo.cafe) |
| 06:13:44 | → | burakcank joins (~burakcank@has.arrived.and.is.ready-to.party) |
| 06:13:47 | → | tristanC joins (~tristanC@user/tristanc) |
| 06:13:47 | → | dragestil joins (~znc@user/dragestil) |
| 06:13:51 | → | wrengr joins (~wrengr@249.189.233.35.bc.googleusercontent.com) |
| 06:13:57 | → | PHO` joins (~pho@akari.cielonegro.org) |
| 06:14:05 | → | hololeap joins (~quassel@user/hololeap) |
| 06:14:06 | → | stvc joins (~stvc@192.241.166.39) |
| 06:14:07 | → | gabriel_1 joins (~gabriel@188-167-229-200.dynamic.chello.sk) |
| 06:14:24 | → | Yumemi joins (~Yumemi@chamoin.net) |
| 06:14:50 | → | RMSBach joins (~guygastin@137.184.131.156) |
| 06:17:22 | × | kmein quits (~weechat@user/kmein) (Quit: ciao kakao) |
| 06:19:26 | → | kmein joins (~weechat@user/kmein) |
| 06:21:47 | × | nisstyre quits (wes@2600:3c00::f03c:91ff:fe69:7f3d) (Changing host) |
| 06:21:47 | → | nisstyre joins (wes@user/nisstyre) |
| 06:22:12 | × | mstksg quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 276 seconds) |
| 06:22:32 | → | mbuf joins (~Shakthi@122.165.55.71) |
| 06:23:50 | → | mstksg joins (~jle`@cpe-23-240-75-236.socal.res.rr.com) |
| 06:30:59 | × | alexhandy quits (~trace@user/trace) (Read error: Connection reset by peer) |
| 06:31:11 | → | alexhandy joins (~trace@user/trace) |
| 06:37:39 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 06:38:17 | → | christiansen joins (~christian@83-95-137-75-dynamic.dk.customer.tdc.net) |
| 06:38:41 | → | jese joins (~nikola@79-101-208-134.dynamic.isp.telekom.rs) |
| 06:44:14 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 06:50:09 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 06:52:06 | → | fockerize joins (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 06:53:21 | × | johnw_ quits (~johnw@2600:1700:cf00:db0:643e:99a6:aa43:f921) (Quit: ZNC - http://znc.in) |
| 06:55:36 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 06:56:23 | → | johnw joins (~johnw@2600:1700:cf00:db0:405e:10f2:10b5:9731) |
| 06:58:46 | → | cfricke joins (~cfricke@user/cfricke) |
| 06:59:52 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:05:42 | → | gurkenglas joins (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) |
| 07:08:57 | × | Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 256 seconds) |
| 07:14:39 | → | alp joins (~alp@user/alp) |
| 07:18:06 | <jese> | ghc-pkg list --user cannot find any packages i've installed with cabal. even when i run cabal info on an installed package it shows it as not installed... what can i do to fix this -- as i think that that's the reason why Setup.hs can't access installed packages modules? |
| 07:22:59 | → | benin0 joins (~benin@183.82.29.162) |
| 07:24:22 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 07:28:05 | <sm> | one gotcha is that it doesn't list packages providing only executables |
| 07:28:50 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 07:29:15 | <sm> | but there are many more. You may need to stick "cabal exec --" or "stack exec --" in front of that command |
| 07:29:35 | <jese> | sm: i have libraries too |
| 07:29:59 | → | vglfr joins (~vglfr@88.155.13.182) |
| 07:32:10 | × | leah2 quits (~leah@vuxu.org) (Quit: trotz alledem!) |
| 07:32:18 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 244 seconds) |
| 07:32:20 | → | leah2 joins (~leah@vuxu.org) |
| 07:34:05 | <int-e> | cabal v2-install doesn't touch the "global" package dbs (neither the global nor the user one); ghc-pkg list --package-db=~/.cabal/store/ghc-<version>/package-db should see it? (according to https://github.com/haskell/cabal/issues/6478 ) |
| 07:35:34 | <jese> | sm: `cabal exec -- cabal info ...` says there are no files matching ./*.cabal. i'm not sure how to interpret that. |
| 07:36:47 | <int-e> | I'm not sure what `cabal exec` does in a v2 command context; it used to deal with sandboxes |
| 07:37:06 | <sm> | jese, more info needed: where are you running these commands ? |
| 07:37:11 | <jese> | int-e: nope, "ghc-pkg: ~/.cabal/store/ghc-9.0.2/package.db/: getDirectoryContents:openDirStream: does not exist (No such file or directory)" even though i do have that directory |
| 07:37:11 | <int-e> | which are a v1 command thing (and something I'm still fond of) |
| 07:37:43 | → | jgeerds joins (~jgeerds@55d437cf.access.ecotel.net) |
| 07:38:00 | <jese> | sm: in my ~, there is are no *.cabal files there. |
| 07:38:13 | → | merijn joins (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) |
| 07:38:28 | <sm> | ok. I had better let the cabal users help you out |
| 07:39:02 | <sm> | when you ran install, maybe it printed the install path ? |
| 07:40:03 | × | vglfr quits (~vglfr@88.155.13.182) (Ping timeout: 272 seconds) |
| 07:41:49 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 07:42:12 | <jese> | sm: i don't remember, but everything is in ~/.cabal/store/ghc-9.0.2/ |
| 07:42:32 | <int-e> | jese: note the literal ~; you need to expand ~ yourself: "$HOME" |
| 07:42:44 | → | fserucas joins (~fserucas@12.64.114.89.rev.vodafone.pt) |
| 07:42:54 | × | fserucas quits (~fserucas@12.64.114.89.rev.vodafone.pt) (Client Quit) |
| 07:43:09 | <jese> | static libs, dynamic libs, executables, of each package in its corresponding subdirectory |
| 07:43:12 | → | fserucas joins (~fserucas@12.64.114.89.rev.vodafone.pt) |
| 07:43:17 | <sm> | really ? |
| 07:43:37 | <jese> | int-e: wdym? |
| 07:43:39 | <int-e> | oh, or drop the = in favor of a space |
| 07:43:57 | <int-e> | jese: your shell didn't expand ~ to your home directory |
| 07:44:19 | <int-e> | (mine didn't either when I just tried) cabal-install won't do that for you either. |
| 07:44:28 | <jese> | oh yeah thanks |
| 07:44:33 | <jese> | it shows packages now |
| 07:44:40 | <sm> | good to know.. --package-db should do that for you |
| 07:45:43 | × | gurkenglas quits (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 244 seconds) |
| 07:45:44 | <int-e> | that's not how unix deals with that though |
| 07:46:01 | <int-e> | anyway, right or wrong, it's a pitfall |
| 07:47:00 | → | gmg joins (~user@user/gehmehgeh) |
| 07:47:29 | <jese> | can i get this to be default behavior? |
| 07:51:04 | → | machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net) |
| 07:51:44 | sm | would have expected cabal exec -- ghc-pkg list to work |
| 07:51:58 | <int-e> | exec was only for sandboxes |
| 07:52:47 | <int-e> | I still haven't worked out how to live in the v2 command world... I'm still using an old version of cabal-install that has sandboxes... which hit a sweet spot for me. |
| 07:53:21 | <Axman6> | I feel like I definitely understood the model of sandboxes more than the V2 stuff |
| 07:53:26 | <sm> | I'm starting to think cabal will never reach stack's consistency |
| 07:53:42 | → | mmhat joins (~mmh@p200300f1c7090730ee086bfffe095315.dip0.t-ipconnect.de) |
| 07:58:15 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 07:59:14 | → | kuribas joins (~user@silversquare.silversquare.eu) |
| 08:00:51 | <kuribas> | Man, loose type variables are such a pain ... |
| 08:00:58 | × | jgeerds quits (~jgeerds@55d437cf.access.ecotel.net) (Ping timeout: 240 seconds) |
| 08:02:47 | <Axman6> | Loose types sink shypes |
| 08:04:03 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds) |
| 08:06:25 | × | Batzy quits (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 08:06:51 | → | Batzy joins (~quassel@user/batzy) |
| 08:09:12 | <kuribas> | How often do you get errors about "kinds don't match"... |
| 08:11:00 | <jese> | the actual problem i'm trying to solve is that i want to use modules in Setup.hs that are defined by external libraries, but the compiler cannot find those libraries when compiling Setup.hs (it can when compiling the program itself). i think the previous problem is related to this one so i'm looking for a way to somehow make its solution default behavior. |
| 08:14:31 | <chreekat> | maybe https://cabal.readthedocs.io/en/3.6/cabal-package.html?highlight=build-dep#custom-setup-scripts ? |
| 08:18:44 | <merijn> | Axman6: I mean, the only real difference between sandboxes and v2 is that in v2 the sandboxes are invisibly managed by cabal for you and installs can be shared between them automagically :p |
| 08:18:58 | × | johnw quits (~johnw@2600:1700:cf00:db0:405e:10f2:10b5:9731) (Quit: ZNC - http://znc.in) |
| 08:19:16 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4df7:4e2c:3ff5:237f) (Remote host closed the connection) |
| 08:19:20 | <int-e> | merijn: v2 is way messier |
| 08:19:30 | <merijn> | int-e: Messier in what sense? |
| 08:19:36 | <int-e> | I want sandbox delete |
| 08:19:39 | <jese> | chreekat: already doing that |
| 08:19:53 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 08:19:55 | <merijn> | int-e: There's already some prototype "gc" commands around |
| 08:20:07 | <merijn> | int-e: The tricky part is defining what's a GC root |
| 08:20:09 | <int-e> | v2 doesn't have that by default, and making it work with separate stores is really inconvenient. |
| 08:20:16 | <qrpnxz> | supposedly Strong Profunctors are equivalent exactly power to Arrow, yes? How come profunctors package has no superclass then? Is every Profunctor also Category? How do I define `arr` for any Strong Profunctor? (Given only the Strong type class) |
| 08:20:44 | <merijn> | int-e: I mean, the only reason to want that is disk space, which you can also achieve by just nuking the entire store once a year or so |
| 08:20:59 | <int-e> | yes, my partitions tend to be 95% full |
| 08:21:03 | <int-e> | disk space is an issue here |
| 08:23:48 | × | Batzy quits (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 08:25:36 | <int-e> | maybe hsenv is a solution for me. will see once I really have to abandon sandboxes |
| 08:26:14 | <int-e> | it may also be completely bitrotted |
| 08:26:21 | → | Batzy joins (~quassel@user/batzy) |
| 08:26:32 | <int-e> | (2014... yeah it probably is :-/) |
| 08:27:48 | <merijn> | I mean, the global store doesn't take up a lot of space and the sharing of dependencies should have a smaller footprint than multiple sandboxes |
| 08:29:15 | <merijn> | In my case, a global store for about 10 projects, that I have repeatedly updated over a year without cleaning is only 2.5GB. If you are working on machine where you have sub 1GB free, then I dunno, that sounds like a super niche problem |
| 08:29:42 | → | ccntrq joins (~Thunderbi@2a01:c22:917b:8000:7ba0:79c7:d855:34db) |
| 08:31:14 | → | ubert joins (~Thunderbi@178.165.191.175.wireless.dyn.drei.com) |
| 08:35:17 | <chreekat> | int-e I feel your pain |
| 08:35:40 | <chreekat> | it's not super niche to want your tool to clean up after itself |
| 08:35:51 | → | coot joins (~coot@213.134.190.95) |
| 08:39:42 | <tomsmeding> | Thing is, it's a hard problem to solve nicely |
| 08:39:57 | <tomsmeding> | Because merging all the stores together also _saves_ disk space |
| 08:40:19 | → | califax_ joins (~califax@user/califx) |
| 08:40:32 | <tomsmeding> | You're usually only storing aeson once instead of once for each project that depends on it |
| 08:40:37 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 08:40:43 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 08:41:30 | <tomsmeding> | I do agree that having the sandboxes behaviour also would be nice, but more proliferation of features is not necessarily a good thing, for new users as well as for the maintainers, |
| 08:41:32 | califax_ | is now known as califax |
| 08:41:39 | <merijn> | chreekat: There are prototype cleanups, but it is not trivial to define what should be cleaned up |
| 08:41:41 | <tomsmeding> | s/,$// |
| 08:41:53 | × | stefan-_ quits (~cri@42dots.de) (Ping timeout: 256 seconds) |
| 08:42:14 | <tomsmeding> | merijn: it's only because there is a shared store instead of one store (sandbox) per project |
| 08:42:41 | <merijn> | I mean, you had to manually cleanup sandboxes too |
| 08:42:44 | <tomsmeding> | I think int-e and folks would contest that having the shared store is better in the first place |
| 08:42:46 | <merijn> | So that's not automatic either |
| 08:43:04 | <merijn> | sandboxes had utterly horrible UX, though |
| 08:43:08 | <tomsmeding> | But it's easy to do manually without nuking the build for other projects |
| 08:43:36 | <merijn> | the global store is so much better I switched to it from sandboxes when they were still so experimental stuff broke all the time :p |
| 08:43:55 | <merijn> | tomsmeding: There's already tools who can "nuke everything except these projects" with the global store, so... |
| 08:44:22 | <int-e> | ...if only the v2 commands were as smooth as sandboxes |
| 08:44:33 | <tomsmeding> | merijn: For these people that's the wrong way round |
| 08:44:47 | <tomsmeding> | They don't want to "nuke everything but this", they want to nuke "only this" |
| 08:45:04 | <merijn> | tomsmeding: Well, they're free to maintain the sandbox code themselves :) |
| 08:45:05 | <tomsmeding> | And tbh I understand the wish, especially if you don't have 20 cores available for compiling |
| 08:45:13 | <int-e> | Note that all of this is rather subjective. I have a mental model for sandboxes. I have no useful one for v2 commands. |
| 08:45:19 | <int-e> | That makes a ton of a difference. |
| 08:45:37 | → | mncheck joins (~mncheck@193.224.205.254) |
| 08:45:43 | <tomsmeding> | To be fair "having a mental model" is not what I'm missing with v2 mode |
| 08:45:45 | <maerwald> | merijn: sandboxes should never have been removed |
| 08:45:47 | <int-e> | and I disagree that the sandbox UX is bad |
| 08:45:53 | → | stefan-_ joins (~cri@42dots.de) |
| 08:45:58 | <tomsmeding> | Just compile everything always, but cache stuff globally |
| 08:46:06 | <chreekat> | It's all a great idea but it did kinda break cabal. It's just half-implemented. "Nix-style builds" without the Nix-style usage tracking and garbage collection. It leaves off the "viable" of "minimum viable [feature]". I mean I hate to say bad things about cabal since it kind of seems like the shattered child of a messy divorce. But it's definitely got a lot of open wounds at the moment |
| 08:46:17 | <maerwald> | sandboxes are superior in almost every regard to nix style builds, except for sharing artifacts |
| 08:46:31 | <merijn> | chreekat: "a lot" <- like what, besides cleanup? |
| 08:46:34 | <maerwald> | idk much about sharing artifacts, given that Haskell already wastes tons of GB on my PC |
| 08:46:48 | <merijn> | maerwald: sandboxes got corrupted all the time, though |
| 08:46:52 | <merijn> | It was annoying as shit |
| 08:47:14 | <int-e> | But I suppose it could be if I had to routinely rebuild huge projects from scratch, because yes, sandboxes do inherit the potential dependency mess from reinstalling packages that the user package db model had; they just keep projects isolated and thus make it easier to start over from scratch. |
| 08:47:17 | <tomsmeding> | merijn: that sounds like an implementation problem, not a design problem :p |
| 08:47:20 | <maerwald> | merijn: I don't remember that. And even if it did, fixing it is easier than trying to fix your store |
| 08:47:33 | <merijn> | Fixing the store is trivial, "rm -r" :p |
| 08:47:35 | <maerwald> | the store semantics are annoying as shit |
| 08:47:58 | <merijn> | I've not had any corruption of the store in the past 6 years, though |
| 08:48:21 | <chreekat> | I also have no mental model for v2. I slowly discover new things by re-reading the manual, which is at least helpfully up to date, although readthedocs continues to be the worst possible way of displaying docs while still actually displaying docs |
| 08:48:27 | <int-e> | And I think isolation between projects is the thing here that I really want, even more than a simple cleanup story. |
| 08:48:35 | <int-e> | Those two go hand in hand though. |
| 08:48:52 | <int-e> | nuking the store is not isolated |
| 08:48:59 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 08:49:00 | <tomsmeding> | Why isolation, because the store breaks for you? |
| 08:49:05 | <maerwald> | int-e: you can get isolation between projects too with v2 |
| 08:49:05 | <int-e> | unless you have separate stores, which I know is an option |
| 08:49:19 | <maerwald> | int-e: cabal --store-dir=$(pwd)/store build |
| 08:49:23 | <maerwald> | yeah |
| 08:49:27 | <maerwald> | it's kinda dumb |
| 08:50:12 | <merijn> | int-e: The isolation is automatic, though. The only way your projects aren't isolated is if there's a bug in v2, which I haven't encountered yet |
| 08:50:17 | <arahael> | You could always set up a user per project. |
| 08:50:24 | <int-e> | (My plan going forward is to figure out a way to make that convenient. Obviously I won't be typing that all the time. Also, $(pwd) isn't quite the right thing.) |
| 08:50:43 | <merijn> | int-e: two projects should never interfere/affect each other in v2 |
| 08:50:47 | <int-e> | arahael: ah, how do I share the package db? |
| 08:50:50 | → | gemadmin joins (~gemadmin@114.198.31.146) |
| 08:50:51 | <maerwald> | I tried using GC tools on the cabal store several times. They always broke the entire store |
| 08:51:00 | <chreekat> | i'm pretty excited to see that cabal isn't actually dead though - like I think my favorite v2 bug might have been fixed, assuming the PR does what it says it does |
| 08:51:06 | <merijn> | int-e: Cabal creates an on-demand package db for each project |
| 08:51:18 | <merijn> | int-e: There is no static package db at all anymore |
| 08:51:24 | <chreekat> | (my favorite bug was that Ctrl-C doesn't stop the build, whlie multiple Ctrl-C's stop the build and corrupt the store) |
| 08:51:36 | gemadmin | is now known as Arahael2 |
| 08:51:38 | <merijn> | int-e: The store is "just disk storage" that has no affect on build plans or anything |
| 08:51:39 | <int-e> | have I mentioned that the ghc environment files UX is horrible because it's hidden and magical |
| 08:51:54 | <int-e> | merijn: until you nuke it |
| 08:51:58 | <merijn> | int-e: You can disable that. But also, I quote like "ghci" working |
| 08:52:01 | <merijn> | int-e: No |
| 08:52:27 | <int-e> | sure... echo $GHC_ENVIRONMENT --> - |
| 08:52:27 | <merijn> | int-e: Unless you update your package set from hackage via "cabal update" you will only ever get the same buildplan |
| 08:52:43 | <merijn> | int-e: You can disable it in "~/.cabal/config |
| 08:52:51 | <int-e> | alias ghci='ghci -ignore-dot-ghci -ghci-script /home/<user>/.ghci' |
| 08:52:54 | <merijn> | Whether to generate ghc environment files can be toggled there |
| 08:53:03 | int-e | shrugs |
| 08:53:34 | <merijn> | int-e: Anyway, v2's buildplan generation is deterministic, so if you nuke the store and rebuild it will rebuild the exact same build plan from your project |
| 08:54:07 | <merijn> | So whether the store is around or not (and what is in it) does not affect buildplans |
| 08:54:34 | ← | fweht parts (uid404746@2a03:5180:f:2::6:2d0a) () |
| 08:55:08 | <sm> | chreekat: by the way what do you dislike about readthedocs ? I can think of a lot of worse ways to read docs |
| 08:56:01 | <maerwald> | the default readthedocs design is just weird... but you can use any other |
| 08:57:14 | <sm> | why is it weird ? |
| 08:57:19 | <maerwald> | too packed |
| 08:57:19 | sm | is looking at https://cabal.readthedocs.io/en/3.6/ |
| 08:57:49 | <maerwald> | it takes up only half the screen... of that half only 50% is text, the other is the navigation (wtf) |
| 08:58:00 | <maerwald> | and then have small font and massive text |
| 08:58:14 | <sm> | ah.. maybe not good on large screens, I'm on a laptop |
| 09:03:01 | × | jese quits (~nikola@79-101-208-134.dynamic.isp.telekom.rs) (Quit: leaving) |
| 09:03:42 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 09:07:21 | × | causal quits (~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e) (Quit: WeeChat 3.5) |
| 09:07:22 | → | yauhsien joins (~yauhsien@2402:7500:4e3:6633:e5c9:3430:d74d:b121) |
| 09:08:03 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 09:10:53 | → | __monty__ joins (~toonn@user/toonn) |
| 09:11:10 | × | fockerize quits (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 09:12:31 | × | yauhsien quits (~yauhsien@2402:7500:4e3:6633:e5c9:3430:d74d:b121) (Ping timeout: 244 seconds) |
| 09:16:37 | → | MajorBiscuit joins (~MajorBisc@wlan-145-94-252-171.wlan.tudelft.nl) |
| 09:17:34 | <sm> | I wonder why cabal could be segfaulting here: https://github.com/simonmichael/hledger/runs/7276941032 |
| 09:17:57 | <sm> | or ghc |
| 09:18:05 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 09:18:29 | <sm> | I tried a smaller build, in case it was out of memory, and it still segfaulted (in a different package) |
| 09:18:36 | → | vandit_ joins (~vandit@87-97-88-201.pool.digikabel.hu) |
| 09:19:11 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 09:19:26 | <tomsmeding> | sm: any chance of reproducing locally? |
| 09:19:52 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:3c84:bbe3:18f2:fe00) |
| 09:20:02 | <tomsmeding> | Also OOM should never result in a segfault hopefully :p |
| 09:20:13 | <sm> | that could be a way forward I guess |
| 09:20:43 | <sm> | I'd rather just try switching to stack, but I suspect it makes building static too hard |
| 09:20:52 | <tomsmeding> | Ideally, it would be a single ghc invocation that segfaults, which you can then run under lldb |
| 09:21:06 | <sm> | I see, noted thx |
| 09:21:25 | <tomsmeding> | (on mac; on linux I'd use gdb, but gdb is finicky on mac) |
| 09:24:40 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:3c84:bbe3:18f2:fe00) (Ping timeout: 260 seconds) |
| 09:26:59 | × | TMA quits (tma@twin.jikos.cz) (Ping timeout: 244 seconds) |
| 09:29:14 | × | BusConscious quits (~martin@ip5f5bdf31.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 09:37:13 | × | mmhat quits (~mmh@p200300f1c7090730ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 09:45:59 | <merijn> | tomsmeding: "need to install a certificate/sign once" :p Although you could just use lldb |
| 09:46:37 | <tomsmeding> | merijn: I know :p |
| 09:47:23 | <Arahael2> | sm: I dont' have haskell running at all on my alpine, I'm considering setting up a chroot for it (eventually...) that uses glibc. |
| 09:50:39 | → | mmhat joins (~mmh@p200300f1c7090723ee086bfffe095315.dip0.t-ipconnect.de) |
| 09:50:49 | <maerwald> | Arahael2: why |
| 09:52:15 | → | john joins (~john@115.98.234.40) |
| 09:52:23 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 09:52:48 | → | yauhsien joins (~yauhsien@61-231-36-12.dynamic-ip.hinet.net) |
| 09:55:42 | <Arahael2> | maerwald: There's no bindist that supports the distro natively on the system I'm using. |
| 09:56:33 | <maerwald> | Arahael2: there is |
| 09:57:02 | <Arahael2> | maerwald: We've talked about it before but to be honest, I just haven't had a chance to put any time on this (yet?) - it's alpine, musl on arm7. (I think it's arm7...) Oh, it's changed? |
| 09:57:04 | × | ccntrq quits (~Thunderbi@2a01:c22:917b:8000:7ba0:79c7:d855:34db) (Remote host closed the connection) |
| 09:57:06 | <Arahael2> | There's one now? |
| 09:57:23 | → | ccntrq joins (~Thunderbi@2a01:c22:917b:8000:7ba0:79c7:d855:34db) |
| 09:57:25 | <maerwald> | ah, armv7 |
| 09:57:53 | <maerwald> | yeah, latest 9.2.3 doesn't even have armv7 for glibc linuxes |
| 09:58:51 | <Arahael2> | Actually I'm not sure if it's arm7 or armhf I need, I should check. |
| 09:59:22 | <Arahael2> | It's "aarch64" |
| 10:00:01 | × | yauhsien quits (~yauhsien@61-231-36-12.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
| 10:02:43 | × | cosimone` quits (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection) |
| 10:03:40 | <Arahael2> | maerwald: In any case, I believe there is a build, using glibc, so I do still have the option of setting up a chroot with that. I'm not stuck, just lazy. |
| 10:04:06 | → | jgeerds joins (~jgeerds@55d437cf.access.ecotel.net) |
| 10:06:18 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 10:07:37 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 272 seconds) |
| 10:08:08 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 10:10:24 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 10:17:57 | → | cosimone joins (~user@93-44-186-171.ip98.fastwebnet.it) |
| 10:18:40 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 244 seconds) |
| 10:20:47 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 255 seconds) |
| 10:23:15 | → | mncheckm joins (~mncheck@193.224.205.254) |
| 10:25:54 | × | Vajb quits (~Vajb@2001:999:58c:b683:1e3e:e86f:8cdc:e10) (Ping timeout: 264 seconds) |
| 10:26:49 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 10:27:03 | → | Vajb joins (~Vajb@85-76-36-231-nat.elisa-mobile.fi) |
| 10:32:13 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 10:33:50 | × | christiansen quits (~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 255 seconds) |
| 10:35:22 | × | caubert quits (~caubert@user/caubert) (Quit: WeeChat 3.5) |
| 10:35:32 | → | caubert joins (~caubert@user/caubert) |
| 10:39:51 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 10:39:56 | × | mncheckm quits (~mncheck@193.224.205.254) (Quit: Leaving) |
| 10:40:18 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 10:43:14 | → | christiansen joins (~christian@83-95-137-75-dynamic.dk.customer.tdc.net) |
| 10:47:24 | × | Vajb quits (~Vajb@85-76-36-231-nat.elisa-mobile.fi) (Ping timeout: 276 seconds) |
| 10:47:38 | × | kjak quits (~kjak@pool-108-31-68-111.washdc.fios.verizon.net) (Remote host closed the connection) |
| 10:48:38 | → | Vajb joins (~Vajb@2001:999:780:85a3:dba:df53:267d:8644) |
| 10:49:21 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 276 seconds) |
| 10:50:24 | → | CiaoSen joins (~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 10:51:08 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 10:52:51 | → | kjak joins (~kjak@pool-108-31-68-111.washdc.fios.verizon.net) |
| 11:03:00 | × | raym quits (~raym@user/raym) (Ping timeout: 276 seconds) |
| 11:12:40 | → | xff0x joins (~xff0x@2405:6580:b080:900:1ebc:3cfb:759f:a6de) |
| 11:14:45 | × | vandit_ quits (~vandit@87-97-88-201.pool.digikabel.hu) (Ping timeout: 272 seconds) |
| 11:16:04 | → | vandit_ joins (~vandit@80-95-82-235.pool.digikabel.hu) |
| 11:21:42 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:3c84:bbe3:18f2:fe00) |
| 11:24:53 | × | jgeerds quits (~jgeerds@55d437cf.access.ecotel.net) (Ping timeout: 272 seconds) |
| 11:25:29 | → | raym joins (~raym@user/raym) |
| 11:26:02 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:3c84:bbe3:18f2:fe00) (Ping timeout: 255 seconds) |
| 11:27:38 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
| 11:29:28 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 11:29:30 | → | dcoutts_ joins (~duncan@host86-176-29-6.range86-176.btcentralplus.com) |
| 11:30:10 | → | fuinnybunny joins (~fuinnybun@p7902b706.tokynt01.ap.so-net.ne.jp) |
| 11:31:26 | × | dcoutts quits (~duncan@host86-176-29-6.range86-176.btcentralplus.com) (Ping timeout: 255 seconds) |
| 11:31:28 | <fuinnybunny> | Hello, I am trying to run the Win32 program here: https://github.com/haskell/win32/blob/master/tests/helloworld.hs If I load the file in ghci it says it could not find the modules Win32 and Addr. I installed Win32 with stack install Win32 and (I think) Addr with stack install primitive |
| 11:32:04 | <geekosaur> | use stack ghci instead of ghci directly? |
| 11:32:54 | <fuinnybunny> | It gives the same errors |
| 11:35:27 | <geekosaur> | do you have a cabal file (or package.yaml but don't use that) declaring dependencies on those things? stack keeps a very close gri[p on its libraries and only exposes them when dependencies are declared |
| 11:35:45 | <fuinnybunny> | I don't know |
| 11:37:10 | <fuinnybunny> | Am I supposed to use stack to install packages? |
| 11:37:52 | <fuinnybunny> | I followed the links on https://www.haskell.org/downloads/ |
| 11:38:09 | <[exa]> | unless the setup requires stack, you can install packages with cabal |
| 11:38:45 | <fuinnybunny> | The homepage doesn't explain what they are |
| 11:38:52 | <fuinnybunny> | I just did 1 and 2 |
| 11:39:27 | <fuinnybunny> | I am now installing the packages with cabal install |
| 11:40:56 | <[exa]> | ok, after that you still might need to "enable" the package for your ghc |
| 11:41:23 | <[exa]> | if you just typed `cabal install win32`, you may be good off with `ghc -package win32 -package theotherone yourFile.hs` |
| 11:41:43 | <fuinnybunny> | OK, I will try that when it's done installing |
| 11:42:18 | <[exa]> | the usual way is to write a small file that tracks the dependencies for each project, this is a pretty good introduction: https://wiki.haskell.org/How_to_write_a_Haskell_program |
| 11:44:16 | <fuinnybunny> | OK, I will try to make one |
| 11:44:20 | × | Vajb quits (~Vajb@2001:999:780:85a3:dba:df53:267d:8644) (Ping timeout: 272 seconds) |
| 11:44:33 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds) |
| 11:46:07 | → | fockerize joins (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 11:46:35 | <fuinnybunny> | `ghc -package win32 ...` gives the same errors |
| 11:46:43 | <fuinnybunny> | *Win32 |
| 11:47:16 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 11:47:27 | <[exa]> | the error is that Win32 module is missing? |
| 11:47:31 | → | Vajb joins (~Vajb@2001:999:40:3227:1637:ead0:8398:8c93) |
| 11:47:57 | <fuinnybunny> | Yes |
| 11:48:01 | <[exa]> | hm the list of modules in that package is here: https://hackage.haskell.org/package/Win32 |
| 11:48:09 | <[exa]> | try rewriting it to System.Win32 |
| 11:48:31 | <[exa]> | (spoiler: the tests on github[4~ may have the module resolution method changed or something) |
| 11:49:53 | <fuinnybunny> | OK, I think it worked. Now I am installing primitive with cabal for Addr |
| 11:51:15 | <fuinnybunny> | Hm, I think it installed with cabal install primitive, but then ghc -package Win32 -package primitive helloworld.hs says cannot satisfy -package primitive |
| 11:52:02 | <[exa]> | you want this one right? https://hackage.haskell.org/package/primitive-addr-0.1.0.2/docs/Data-Primitive-Addr.html |
| 11:52:07 | × | Vajb quits (~Vajb@2001:999:40:3227:1637:ead0:8398:8c93) (Ping timeout: 272 seconds) |
| 11:52:29 | <fuinnybunny> | I think so, if that's what Addr is referring to in helloworld.hs |
| 11:52:40 | <[exa]> | ah here: https://hoogle.haskell.org/?hoogle=nullAddr |
| 11:52:47 | <[exa]> | it's in `primitive-addr` package |
| 11:52:58 | <fuinnybunny> | Ohh |
| 11:54:07 | <fuinnybunny> | Hm, I installed that one with cabal install primitive-addr but I get the same cannot satisfy -package primitive-addr when I try to run helloworld.hs |
| 11:54:41 | <[exa]> | like, the source code there is a few years old and I guess half of the ecosystem has changed from the time, so I'd expect problems like this |
| 11:55:05 | <fuinnybunny> | Nobody uses Win32? |
| 11:55:28 | <sm> | `foo` runs normally. Identical copy with a different name `foo-1826` dies with "Killed: 9". On mac. Any ideas ? |
| 11:56:06 | <[exa]> | fuinnybunny: like, I don't want to touch windows anytime again, but I'm probably extreme :D |
| 11:56:24 | <[exa]> | fuinnybunny: the `cabal install` didn't report any problems? |
| 11:56:30 | <sm> | a new copy works as expected. Just this particular file seems cursed. |
| 11:56:30 | <fuinnybunny> | I'm sure some ppl in here play games |
| 11:56:37 | → | Vajb joins (~Vajb@2001:999:580:670b:ef53:ed37:f6d7:705e) |
| 11:57:12 | <tomsmeding> | sm: what happens whem you `lldb |
| 11:57:12 | <tomsmeding> | ./foo-1826` and then `run` |
| 11:57:17 | <fuinnybunny> | cabal install said WARNING: Installation might not be completed as desired! and then talked about making a .cabal file. Otherwise it seemed fine |
| 11:57:25 | <geekosaur> | sm, you'd have to check the system log but "Killed: 9" sounds like SIP got unhappy with it |
| 11:57:26 | <tomsmeding> | Oh sorry no newline in there |
| 11:57:36 | <merijn> | sm: "ulimit -c unlimited" and check the core dump? |
| 11:57:42 | <fuinnybunny> | You might have wanted to add them to a GHC environment. In this case use "cabal install --lib primitive-addr". The "--lib" flag is provisional... |
| 11:57:45 | <sm> | $ lldb ./hledgerdies |
| 11:57:46 | <sm> | (lldb) target create "./hledgerdies" |
| 11:57:46 | <sm> | Killed: 9 |
| 11:58:02 | <tomsmeding> | sm: O.o |
| 11:58:25 | <merijn> | sm: You wanna make sure there's no limit on core sizes and then inspect the core dump |
| 11:58:37 | <geekosaur> | (system integrity protection is a mean mother and not all its decisions are comprehensible) |
| 11:59:26 | <sm> | merijn: thx, if I knew where to find those I'd give it a try |
| 11:59:31 | <merijn> | geekosaur: I don't see why SIP would kill use code |
| 11:59:54 | <merijn> | sm: Under /cores (after you up the core size limit as I just mentioned ;)) |
| 12:00:02 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 12:00:14 | <[exa]> | fuinnybunny: does it work with --lib ? |
| 12:00:52 | <fuinnybunny> | No |
| 12:01:06 | <fuinnybunny> | Do I need to do cabal init before cabal install? |
| 12:01:28 | <[exa]> | no, cabal init creates a "new project" |
| 12:01:42 | <[exa]> | where you can put the cabal file and your sources and can declare their dependencies etc |
| 12:02:00 | <sm> | merijn: I did that and did find /cores but it's empty of course |
| 12:02:15 | <sm> | it couldn't be that easy on mac |
| 12:02:20 | <[exa]> | fuinnybunny: the error you get from primitive-addr is something like "Could not resolve dependencies: ..., trying binary-0.8.9.0..." , right? |
| 12:03:11 | <geekosaur> | SIGKILL doesn't usually leave a core file |
| 12:03:29 | <fuinnybunny> | Is there a Discord server for Haskell? |
| 12:03:38 | <fuinnybunny> | Or something where I can share my screen |
| 12:04:21 | <[exa]> | fuinnybunny: hm actually, it seems the win32 sample you have is a bit outdated. You should be able to replace the Addr import by Foreign.Ptr, and replace nullAddr by nullPtr |
| 12:04:23 | → | monaaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 12:04:32 | <fuinnybunny> | Ok, I will try that |
| 12:05:25 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
| 12:05:49 | <[exa]> | re discord, yeah afaik there is one but discord totally fails for me for whatever reason. Here we just pastebin stuff, e.g. to https://paste.tomsmeding.com |
| 12:06:06 | <fuinnybunny> | OK, that made it give new errors about no module named Win32 is imported |
| 12:06:16 | <fuinnybunny> | I guess because I changed it to System.Win32 |
| 12:06:35 | <[exa]> | uh yes they use the Win32 there as a prefix |
| 12:06:38 | <fuinnybunny> | I tried to find it on disboard but I didn't find it |
| 12:06:42 | <[exa]> | you can do `import qualified System.Win32 as Win32` |
| 12:06:54 | <[exa]> | which should give it the name the example expects |
| 12:07:09 | <fuinnybunny> | Now it says System.Win32 doesn't export endPaint, etc |
| 12:07:23 | <fuinnybunny> | I wonder if it's the right package |
| 12:07:38 | <[exa]> | yeah I'm starting to wonder myself |
| 12:08:55 | <[exa]> | that example may be seriously outdated |
| 12:09:05 | <geekosaur> | those are Graphics.Win32 I think |
| 12:09:13 | × | Vajb quits (~Vajb@2001:999:580:670b:ef53:ed37:f6d7:705e) (Ping timeout: 272 seconds) |
| 12:11:15 | <fuinnybunny> | I think I will try GLFW instead |
| 12:11:46 | <[exa]> | +1 ^ |
| 12:11:47 | × | Katarushisu quits (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat) |
| 12:11:53 | <john> | hi .. I have a question from haskell book.. chapter 5 types.. |
| 12:12:20 | <[exa]> | fuinnybunny: like, even in game programming no one really wants to touch the win32 api directly, everyone goes either SDL or SFML or GLFW |
| 12:12:30 | <john> | If the type of kessel is (Ord a, Num b)=> a -> b -> a then the type of kessel 1 2 is ? |
| 12:12:49 | → | Vajb joins (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) |
| 12:13:01 | <john> | The answer given is (Num a, Ord a) => a |
| 12:13:09 | <john> | but i am not able to figure out why.. |
| 12:13:09 | → | dsrt^ joins (~dsrt@50-246-23-230-static.hfc.comcastbusiness.net) |
| 12:13:16 | <kuribas> | :t 1 |
| 12:13:17 | <lambdabot> | Num p => p |
| 12:13:20 | × | jargon quits (~jargon@184.101.188.251) (Remote host closed the connection) |
| 12:14:01 | <kuribas> | john: Num p comes from the literal 1 |
| 12:14:10 | <john> | yes |
| 12:14:11 | <geekosaur> | basically, taken by itself it'd be Ord a => a. but because you passed a literal 1, it induces a Num a |
| 12:14:11 | <kuribas> | Num a |
| 12:14:40 | <john> | geekosaur: can you elaborate? |
| 12:14:42 | ← | fuinnybunny parts (~fuinnybun@p7902b706.tokynt01.ap.so-net.ne.jp) () |
| 12:14:45 | <geekosaur> | becase any numeric literal is typed as Num a => a or Fractional a => a depending on whether it has a decimal point |
| 12:15:19 | <geekosaur> | and internally goes through respectively fromInteger or fromRational |
| 12:16:01 | <kuribas> | :t 1 + 1.2 |
| 12:16:03 | <lambdabot> | Fractional a => a |
| 12:16:05 | <john> | so you are saying since output as per type signature is a and 1 as a num literal is passed for a..thats why its subject to num and ord class constraint? |
| 12:16:19 | <geekosaur> | right |
| 12:16:31 | <geekosaur> | if not for it being a numeric literal, it'd just be Ord |
| 12:16:51 | <geekosaur> | (or concrete if you passed some concrete type such as Char) |
| 12:17:37 | <john> | In that case If the type of kessel is (Ord a, Num b) => a -> b -> a, then the type of kessel (1 :: Integer) 2.. would be only integer? |
| 12:18:02 | <john> | or would it be Ord a => a |
| 12:18:13 | <kuribas> | Integer |
| 12:18:32 | <john> | kuribas: why not Ord a? |
| 12:18:40 | <john> | kuribas: why not Ord a => a? |
| 12:18:46 | <geekosaur> | because it knows Integer is already Ord |
| 12:18:59 | <kuribas> | john: because you just told haskell the first variable is Integer. |
| 12:19:03 | <geekosaur> | so there's no point in keeping the constraint around |
| 12:19:41 | <kuribas> | :t (1 :: Ord Integer => Integer) |
| 12:19:42 | <lambdabot> | Integer |
| 12:20:16 | <john> | are you saying is Integer already has Ordering built into it.. so there is no need to specify ? |
| 12:20:42 | <kuribas> | john: if by built in, you mean that haskell provides an instance, then yes. |
| 12:21:00 | × | alp quits (~alp@user/alp) (Ping timeout: 276 seconds) |
| 12:21:46 | <kuribas> | :t (1 :: Foldable Integer => Integer) |
| 12:21:49 | <lambdabot> | error: |
| 12:21:49 | <lambdabot> | • Expected kind ‘* -> *’, but ‘Integer’ has kind ‘*’ |
| 12:21:49 | <lambdabot> | • In the first argument of ‘Foldable’, namely ‘Integer’ |
| 12:21:55 | <geekosaur> | in the case where it has a constraint and you provide a type, it will check that the type fulfills the constraint (here, Ord) and either throw a type error or drop the constraint as already fulfilled |
| 12:22:25 | <kuribas> | :t (1 :: Fractional Integer => Integer) |
| 12:22:27 | <lambdabot> | error: |
| 12:22:27 | <lambdabot> | No instance for (Fractional Integer) |
| 12:22:27 | <lambdabot> | arising from an expression type signature |
| 12:22:57 | <john> | geekosaur : thanks.. |
| 12:23:48 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 12:27:56 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:29:02 | × | renzhi quits (~xp@2607:fa49:6500:b100::b399) (Ping timeout: 255 seconds) |
| 12:29:22 | × | monaaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 244 seconds) |
| 12:30:35 | × | john quits (~john@115.98.234.40) (Quit: Leaving) |
| 12:31:43 | → | monaaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 12:32:49 | → | dschrempf joins (~dominik@mobiledyn-62-240-134-33.mrsn.at) |
| 12:34:40 | × | frost quits (~frost@user/frost) (Ping timeout: 252 seconds) |
| 12:34:42 | × | MajorBiscuit quits (~MajorBisc@wlan-145-94-252-171.wlan.tudelft.nl) (Quit: WeeChat 3.5) |
| 12:35:49 | × | dsrt^ quits (~dsrt@50-246-23-230-static.hfc.comcastbusiness.net) (Ping timeout: 272 seconds) |
| 12:38:53 | → | MajorBiscuit joins (~MajorBisc@wlan-145-94-252-171.wlan.tudelft.nl) |
| 12:39:51 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 12:41:14 | → | coot joins (~coot@213.134.190.95) |
| 12:42:13 | × | dschrempf quits (~dominik@mobiledyn-62-240-134-33.mrsn.at) (Quit: WeeChat 3.5) |
| 12:42:44 | <chreekat> | sm: the way readthedocs displays the navigation as a flat menu with sections that appear and disappear makes me feel looks I'm in a labyrinth |
| 12:43:09 | × | acidjnk quits (~acidjnk@p200300d6e706ad7551e311a7b45e4414.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 12:43:33 | → | acidjnk joins (~acidjnk@p200300d6e706ad7551e311a7b45e4414.dip0.t-ipconnect.de) |
| 12:44:36 | <sm> | I hear that.. but with big docs the alternative is an overwhelming TOC. It's hard to be right for everyone |
| 12:45:30 | <geekosaur> | ghc docs do the same thing |
| 12:45:49 | <geekosaur> | kind of annoying when I'm jumping between two sections |
| 12:46:30 | × | foul_owl quits (~kerry@23.82.194.107) (Ping timeout: 240 seconds) |
| 12:46:33 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 12:46:54 | <sm> | good example.. at https://downloads.haskell.org/ghc/latest/docs/html/users_guide/ imagine if that TOC in the body appeared in the sidebar |
| 12:47:01 | <chreekat> | geekosaur: yep, also readthedocs |
| 12:47:44 | <chreekat> | So don't shove the whole toc in a sidebar? :D |
| 12:48:37 | sm | thinks readthedocs' sidebar is a pretty good compromise |
| 12:48:45 | <geekosaur> | it works better than the Report where I keep having to Up to the TOC |
| 12:49:25 | <geekosaur> | annoying is better than nigh unusable |
| 12:49:42 | <geekosaur> | and it's hard to do better with something that is by its nature flat |
| 12:54:54 | <chreekat> | Wait what's flat by nature? |
| 12:55:27 | <geekosaur> | manuals, and in particular the Haskell Report which is what I was talking about as an alternative to the sidebar |
| 12:55:40 | × | monaaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds) |
| 12:56:05 | × | acidjnk quits (~acidjnk@p200300d6e706ad7551e311a7b45e4414.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 12:57:02 | → | monaaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 12:58:11 | → | dsrt^ joins (~dsrt@50-246-23-230-static.hfc.comcastbusiness.net) |
| 12:59:19 | <chreekat> | Oh those strike me as being deeply hierarchical. 🤔 Chapters and sections and subsections and paragraphs |
| 13:00:57 | <geekosaur> | ghc's is as well. the sidebar only does first and secoind level headings |
| 13:01:14 | <chreekat> | Actually one thing that made readthedocs so jarring for me is that I couldn't even tell which were the top -level headings and which were the sub headings. They're just different colors with nothing else to distinguish them. Maybe it's better now (or maybe I've been trained) |
| 13:02:30 | → | foul_owl joins (~kerry@23.82.194.109) |
| 13:02:34 | <geekosaur> | oh, I guess ghc does third level as well. indentation indicates the level |
| 13:04:42 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
| 13:07:10 | × | Kaipei quits (~Kaiepi@156.34.47.253) (Ping timeout: 240 seconds) |
| 13:07:41 | <kuribas> | I saw the Munich hackaton. Would anyone be interested in a talk about using higher kinded data? |
| 13:08:17 | → | TMA joins (tma@twin.jikos.cz) |
| 13:08:33 | × | monaaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
| 13:09:25 | <kuribas> | for example: meta programming with hkd, nested hkd records. |
| 13:10:24 | → | monaaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 13:11:16 | <geekosaur> | oh, I think we're using "flat" in different meanings. you're talking about the hierarchy, I'm thinking in more of a hypertext context |
| 13:11:17 | × | vandit_ quits (~vandit@80-95-82-235.pool.digikabel.hu) (Ping timeout: 272 seconds) |
| 13:11:42 | <geekosaur> | it's hard to take something that's designed mostly forprinting and make it nicely accessible on screen |
| 13:12:37 | → | vandit_ joins (~vandit@188-143-101-77.pool.digikabel.hu) |
| 13:18:01 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 13:18:27 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 13:19:33 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 13:21:03 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 244 seconds) |
| 13:21:45 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
| 13:22:01 | → | yauhsien joins (~yauhsien@61-231-36-12.dynamic-ip.hinet.net) |
| 13:22:28 | → | ubert1 joins (~Thunderbi@178.165.177.173.wireless.dyn.drei.com) |
| 13:23:19 | × | ubert quits (~Thunderbi@178.165.191.175.wireless.dyn.drei.com) (Ping timeout: 272 seconds) |
| 13:23:20 | ubert1 | is now known as ubert |
| 13:25:02 | × | CiaoSen quits (~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 13:25:29 | → | jgeerds joins (~jgeerds@55d437cf.access.ecotel.net) |
| 13:30:14 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a) |
| 13:30:29 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 13:30:35 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 13:30:44 | → | moonsheep joins (~user@user/moonsheep) |
| 13:30:53 | <moonsheep> | What do you guys think of selda? |
| 13:31:29 | <[exa]> | I used it a few times, would do again I'd say |
| 13:31:42 | → | chele joins (~chele@user/chele) |
| 13:32:18 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 13:32:47 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 13:33:56 | → | Pickchea joins (~private@user/pickchea) |
| 13:34:18 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a) (Ping timeout: 240 seconds) |
| 13:36:09 | <kuribas> | haskell-centric, not useable with existing schemas. |
| 13:37:00 | <moonsheep> | I don't have an existing schema so it's not really a problem |
| 13:37:23 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 13:38:03 | <moonsheep> | The few examples I've seen it looks extremely succint, in stark contrast with something like, say, persistent |
| 13:38:13 | <moonsheep> | Is it too good to be true? |
| 13:38:42 | <kuribas> | it also has a weird mapping between db types and haskell types. |
| 13:39:36 | <moonsheep> | How so? |
| 13:39:50 | <kuribas> | personally I would only use db libraries which look like SQL. |
| 13:39:56 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 13:41:01 | <moonsheep> | Hmm, so what would you recommend? |
| 13:41:11 | <kuribas> | my own library, hasqlator :) |
| 13:41:14 | → | rburkholder joins (~blurb@96.45.2.121) |
| 13:41:17 | <kuribas> | but it only works for mysql still. |
| 13:41:18 | <moonsheep> | I really like the record-row mapping |
| 13:41:30 | <moonsheep> | Ah yeah mysql is more than enough |
| 13:42:19 | <kuribas> | moonsheep: but don't let my library force MySQL on you though :-O |
| 13:42:21 | <kuribas> | mysql sucks |
| 13:42:26 | <kuribas> | but it's what we use... |
| 13:42:48 | <moonsheep> | Nah don't worry, if there's one thing I strive for that is simplicity. MySQL is simple and that I appreciate, as much as I don't love SQL in general |
| 13:43:00 | <kuribas> | it's also a buggy mess |
| 13:43:09 | <moonsheep> | Your library also doesn't marshall types right? |
| 13:43:21 | <moonsheep> | You have to pull stuff out of MySqlValue correct? |
| 13:43:24 | <kuribas> | it has a 1-1 mapping bewteen mysql and haskell types. |
| 13:44:01 | <moonsheep> | So I can't, say, insert a sum type into a db? |
| 13:44:06 | <kuribas> | https://hackage.haskell.org/package/hasqlator-mysql-0.1.0/docs/Database-MySQL-Hasqlator.html#t:FromSql |
| 13:44:21 | <moonsheep> | Ah so it's a bit like mongodb |
| 13:44:27 | <kuribas> | moonsheep: you could make a FromSQL instance. |
| 13:44:31 | <moonsheep> | Right |
| 13:44:55 | <moonsheep> | Is there also a ToSQL class? |
| 13:44:59 | <kuribas> | yes |
| 13:45:17 | <moonsheep> | Hmm, might consider it |
| 13:45:30 | <moonsheep> | Looks pretty good |
| 13:45:45 | <kuribas> | moonsheep: there are 2 levels, one typed, on untyped. |
| 13:45:57 | <kuribas> | typed in the sense of checking the query against the schema. |
| 13:46:23 | <kuribas> | There is TH to read a schema from the information schema. |
| 13:46:58 | <moonsheep> | I'd prefer to avoid template haskell if possible |
| 13:47:11 | <kuribas> | You can use the untyped version |
| 13:47:19 | <kuribas> | It builds queries using monoids. |
| 13:47:39 | <moonsheep> | Right, thanks |
| 13:50:24 | <kuribas> | select (User <$> textSel "user" <*> intSel "age") $ from "myTable" <> where_ ("user" =. arg "kuribas") |
| 13:54:07 | × | noteness quits (~noteness@user/noteness) (Remote host closed the connection) |
| 13:54:29 | → | noteness joins (~noteness@user/noteness) |
| 13:56:15 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 272 seconds) |
| 13:58:31 | → | acidjnk joins (~acidjnk@p200300d6e706ad7551e311a7b45e4414.dip0.t-ipconnect.de) |
| 14:02:23 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 14:02:51 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 14:04:08 | × | Arahael2 quits (~gemadmin@114.198.31.146) (Quit: Lost terminal) |
| 14:06:17 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:07:01 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 14:10:14 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 14:10:57 | × | ccntrq quits (~Thunderbi@2a01:c22:917b:8000:7ba0:79c7:d855:34db) (Remote host closed the connection) |
| 14:11:11 | × | lbseale quits (~quassel@user/ep1ctetus) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 14:11:16 | → | ccntrq joins (~Thunderbi@2a01:c22:917b:8000:7ba0:79c7:d855:34db) |
| 14:12:04 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 14:12:43 | × | dsrt^ quits (~dsrt@50-246-23-230-static.hfc.comcastbusiness.net) (Ping timeout: 260 seconds) |
| 14:13:05 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 14:14:16 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 14:18:46 | → | dsrt^ joins (~dsrt@50-246-23-230-static.hfc.comcastbusiness.net) |
| 14:18:51 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 14:24:33 | × | ccntrq quits (~Thunderbi@2a01:c22:917b:8000:7ba0:79c7:d855:34db) (Remote host closed the connection) |
| 14:24:51 | → | ccntrq joins (~Thunderbi@2a01:c22:917b:8000:7ba0:79c7:d855:34db) |
| 14:26:57 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a) |
| 14:27:21 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 14:29:56 | <heath> | from #haskell in the functional programming slack: is there a good package defining algebraic structures like groups, rings, fields, principal ideal domains, finite or infinite? numeric-prelude? I'm also interested in an efficient linear albegra library |
| 14:35:02 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 14:38:31 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a) (Remote host closed the connection) |
| 14:39:33 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 14:40:01 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 14:40:43 | × | dsrt^ quits (~dsrt@50-246-23-230-static.hfc.comcastbusiness.net) (Ping timeout: 260 seconds) |
| 14:41:51 | × | Vajb quits (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) (Ping timeout: 272 seconds) |
| 14:42:50 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 14:42:57 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 14:45:11 | → | dsrt^ joins (~dsrt@50-246-23-230-static.hfc.comcastbusiness.net) |
| 14:46:50 | × | yaroot quits (~yaroot@166.104.13.160.dy.iij4u.or.jp) (Ping timeout: 240 seconds) |
| 14:47:25 | → | yaroot joins (~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953) |
| 14:47:56 | × | dsrt^ quits (~dsrt@50-246-23-230-static.hfc.comcastbusiness.net) (Remote host closed the connection) |
| 14:50:50 | <[exa]> | heath: how "efficient"? as in, how it should compare with BLAS? |
| 14:58:09 | <heath> | forwarded that message to the original author |
| 15:03:39 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 15:03:49 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a) |
| 15:04:01 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 272 seconds) |
| 15:04:08 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 15:06:58 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 15:07:00 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 15:07:05 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 15:09:31 | × | cosimone quits (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection) |
| 15:11:06 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:11:13 | × | noteness quits (~noteness@user/noteness) (Remote host closed the connection) |
| 15:11:36 | → | noteness joins (~noteness@user/noteness) |
| 15:14:43 | × | vandit_ quits (~vandit@188-143-101-77.pool.digikabel.hu) (Ping timeout: 244 seconds) |
| 15:16:17 | → | vandit_ joins (~vandit@91-83-1-213.pool.digikabel.hu) |
| 15:23:10 | × | monaaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
| 15:25:36 | → | monaaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 15:27:46 | → | dschrempf joins (~dominik@mobiledyn-62-240-134-33.mrsn.at) |
| 15:29:57 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 15:30:37 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
| 15:32:17 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 15:33:14 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a) (Remote host closed the connection) |
| 15:37:15 | × | hpc quits (~juzz@ip98-169-32-242.dc.dc.cox.net) (Ping timeout: 256 seconds) |
| 15:38:22 | <joel135> | when talking about cps transforms, what is the difference between cbv and cbn? |
| 15:38:58 | → | hpc joins (~juzz@ip98-169-32-242.dc.dc.cox.net) |
| 15:41:09 | <joel135> | the variant i know is [K = continuation, C = computation] K(AxB) = K(A) + K(B), K(A=>B) = (C(A)=>K(B)), K(X) = (X => R), C(A) = (K(A) => R) and i have heard this is just the cbn variant |
| 15:41:48 | <joel135> | err, K(A=>B) = C(A) x K(B) |
| 15:42:50 | × | mrmr quits (~mrmr@user/mrmr) (Quit: The Lounge - https://thelounge.chat) |
| 15:43:33 | <tomsmeding> | joel135: what are x, + and => ? |
| 15:43:50 | <tomsmeding> | Product types, sum types, function types? |
| 15:43:52 | <joel135> | conjunction, disjunction, implication |
| 15:43:53 | <joel135> | yes |
| 15:44:09 | <tomsmeding> | Then how is K(AxB) = K(A) + K(B) at all sensible |
| 15:44:22 | <tomsmeding> | Oh wait I see |
| 15:44:30 | → | gurkenglas joins (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) |
| 15:44:46 | <tomsmeding> | What's K of a primitive type, such as Int? |
| 15:44:54 | <joel135> | that's the X case |
| 15:45:01 | <tomsmeding> | Ah |
| 15:45:43 | × | ccntrq quits (~Thunderbi@2a01:c22:917b:8000:7ba0:79c7:d855:34db) (Remote host closed the connection) |
| 15:46:25 | <joel135> | (i learned this variant from https://www.mscs.dal.ca/~selinger/papers/krivine.pdf) |
| 15:47:37 | <tomsmeding> | The one I know is simply... C(A) = (A => R) => R, in your notation |
| 15:48:56 | <tomsmeding> | newtype Cont a = Cont (forall r. (a -> r) -> r) |
| 15:50:16 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.5) |
| 15:50:40 | <tomsmeding> | joel135: I'm not sure I'm on the mark, but I suggest transforming the term `let x = E in fst x + snd x` using your cps transform, where x : (Int, Int) and (+) is considered a primitive operation |
| 15:50:56 | <tomsmeding> | If I'm not mistaken, your variant will end up computing E twice |
| 15:51:18 | × | dschrempf quits (~dominik@mobiledyn-62-240-134-33.mrsn.at) (Ping timeout: 260 seconds) |
| 15:51:19 | <tomsmeding> | Or, well, CPS[E] |
| 15:51:48 | <tomsmeding> | And if that's true, then that sounds like cbn |
| 15:52:04 | <joel135> | yes, i believe my variant is cbn |
| 15:52:30 | <joel135> | but i don't think eta : A => ((A => R) => R) is a cps transform. it doesn't "do anything" to a term of type A. |
| 15:52:42 | tomsmeding | is always skeptical when seeing anything related to cbn, because of the lack of usefulness in implementation |
| 15:53:25 | <tomsmeding> | joel135: C(A) = (A => R) => R is simply the type-level transform, indeed inhabited by \x k -> k x, which is useless |
| 15:53:38 | <tomsmeding> | But also inhabited by a proper cps transform |
| 15:54:33 | <tomsmeding> | C[(t1,t2)] = \k -> C[t1] (\x -> C[t2] (\y -> k (x, y))) |
| 15:54:41 | <tomsmeding> | Etc. for the other term formers |
| 15:54:57 | <tomsmeding> | Writing C[] for the term-level transformation |
| 15:56:07 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 15:56:15 | <joel135> | hmm, that sounds right, thanks! will need to think about this a little |
| 15:56:34 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 15:57:13 | × | monaaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
| 15:57:19 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 15:57:23 | <tomsmeding> | joel135: the wiki page discusses this form of cps https://en.m.wikipedia.org/wiki/Continuation-passing_style |
| 15:57:25 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 15:57:33 | <tomsmeding> | I don't like the scheme examples, but there's a haskell example too |
| 15:57:54 | <tomsmeding> | It doesn't get very formal though, but I feel like you're capable of formalising it anyway :p |
| 15:58:44 | → | monaaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 16:00:45 | → | cosimone joins (~user@93-44-186-171.ip98.fastwebnet.it) |
| 16:02:24 | <tomsmeding> | Hot take: CBN is useful only 1. for proofs of correctness, and 2. to optimise into something that is not CBN |
| 16:03:08 | <tomsmeding> | Its performance (complexity?) properties are so enormously atrocious |
| 16:06:23 | × | machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 244 seconds) |
| 16:06:33 | → | vglfr joins (~vglfr@88.155.25.62) |
| 16:07:17 | × | elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 256 seconds) |
| 16:08:15 | <dolio> | Which 'N' is CBN? |
| 16:09:14 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 16:09:43 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 16:12:53 | × | sagax quits (~sagax_nb@user/sagax) (Remote host closed the connection) |
| 16:13:27 | → | Haskelytic joins (~Haskelyti@118.179.211.17) |
| 16:14:38 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds) |
| 16:16:18 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 16:16:56 | ← | moonsheep parts (~user@user/moonsheep) (ERC 5.4 (IRC client for GNU Emacs 28.1)) |
| 16:18:28 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 16:21:03 | × | monaaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
| 16:21:35 | <joel135> | name (not need) |
| 16:22:13 | × | benin0 quits (~benin@183.82.29.162) (Quit: The Lounge - https://thelounge.chat) |
| 16:23:06 | → | monaaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 16:23:15 | × | kuribas quits (~user@silversquare.silversquare.eu) (Remote host closed the connection) |
| 16:26:58 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 16:29:41 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a) |
| 16:29:43 | → | mikoto-chan joins (~mikoto-ch@d59mf84twhjn22gzzgy-4.rev.dnainternet.fi) |
| 16:31:32 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 16:34:31 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 16:37:19 | <romes[m]> | could someone running macOS try to build `primitive` in an attempt to troubleshoot https://github.com/haskell/primitive/issues/348 ? thanks |
| 16:37:23 | × | mbuf quits (~Shakthi@122.165.55.71) (Quit: Leaving) |
| 16:37:45 | × | jgeerds quits (~jgeerds@55d437cf.access.ecotel.net) (Ping timeout: 276 seconds) |
| 16:38:11 | → | ski joins (~ski@ext-1-468.eduroam.chalmers.se) |
| 16:38:52 | <geekosaur> | that's the same problem as edward was having yesterday. homebrew llvm is installed ahead of ld64 in $PATH, but its ld.lld doesn't understand `ld -r` |
| 16:39:22 | <geekosaur> | reinstall ghc bindist with ld64 first in $PATH (usually it's in /usr/bin) |
| 16:39:41 | <yin> | ahh, computers... |
| 16:39:51 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:40:29 | <geekosaur> | 9.2.3 has a workaround which excludes ld.lld as a valid linker, so it finds ld64 anyway |
| 16:40:41 | → | econo joins (uid147250@user/econo) |
| 16:42:28 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 16:47:35 | <sm> | romes: I just built primitive-0.7.4.0 |
| 16:47:53 | <sm> | wait.. I have 9.2.2 |
| 16:50:53 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 16:51:22 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 16:51:34 | → | sagax joins (~sagax_nb@user/sagax) |
| 16:52:36 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 16:52:42 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 16:55:30 | <romes[m]> | no, that’s alright, I can’t build with 9.2.2 either. It must be as geekosaur said. I’ll write a comment soon |
| 16:58:55 | → | machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net) |
| 17:05:10 | → | segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
| 17:05:23 | × | MajorBiscuit quits (~MajorBisc@wlan-145-94-252-171.wlan.tudelft.nl) (Ping timeout: 260 seconds) |
| 17:05:41 | <segfaultfizzbuzz> | so... i have been trying to think about what a "code invariant" is |
| 17:06:53 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
| 17:07:03 | <segfaultfizzbuzz> | is there a formalization of this notion? |
| 17:07:43 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 17:08:39 | <ski> | .. example ? |
| 17:08:51 | <geekosaur> | segfaultfizzbuzz, these kinjds of questions you've been asking are better suited to #haskell-offtopic, really |
| 17:08:58 | <sm> | some property of the code that you can express in words, that should always be true |
| 17:10:27 | <geekosaur> | "you can express in words" is begging for trouble |
| 17:11:33 | <geekosaur> | eiffel was big on expressing code invariants as preconditions and postconditions… never caught on, though, as it usually just triplicated the function |
| 17:12:36 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 17:12:41 | <segfaultfizzbuzz> | ok i am moving to haskell-offtopic, sorry about the noise |
| 17:13:02 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 17:13:58 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 17:14:09 | <ski> | Dafny is checking pre- and post-conditions (and loop invariants and variants (termination metrics)), Hoare logic/triples style, <https://en.wikipedia.org/wiki/Dafny> |
| 17:14:40 | <segfaultfizzbuzz> | ski: this is interesting thanks, i will look |
| 17:17:47 | <Haskelytic> | :t (fmap . fmap) sum |
| 17:17:48 | <lambdabot> | (Functor f1, Functor f2, Foldable t, Num b) => f1 (f2 (t b)) -> f1 (f2 b) |
| 17:17:52 | <Haskelytic> | :t (fmap . fmap) sum Just |
| 17:17:53 | <lambdabot> | (Foldable t, Num b) => t b -> Maybe b |
| 17:18:10 | <Haskelytic> | I have no idea what's happening here |
| 17:18:20 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 17:18:40 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a) (Remote host closed the connection) |
| 17:18:55 | <Haskelytic> | how can `(fmap . fmap) sum` be applied to `Just` |
| 17:19:51 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 17:20:33 | × | vandit_ quits (~vandit@91-83-1-213.pool.digikabel.hu) (Ping timeout: 260 seconds) |
| 17:20:49 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 17:20:55 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 17:21:59 | → | vandit_ joins (~vandit@94-21-82-63.pool.digikabel.hu) |
| 17:22:11 | <ski> | Haskelytic : the instance in question is `Functor (rho ->)' |
| 17:23:03 | <ski> | we have say `Just :: a -> Maybe a', okay ? |
| 17:23:21 | × | vandit_ quits (~vandit@94-21-82-63.pool.digikabel.hu) (Killed (NickServ (GHOST command used by vapid2!~user@h130-35.pool77-110.cgn.tolna.net))) |
| 17:23:37 | <Haskelytic> | ski: I can't seem to match up the top-level functor here |
| 17:23:42 | <Haskelytic> | ohh.... |
| 17:23:52 | <Haskelytic> | hold on i got it haha |
| 17:23:56 | <ski> | Just :: (a ->) (Maybe a) |
| 17:25:10 | <ski> | `f1' in `fmap . fmap :: (Functor f1,Functor f2) => (t -> u) -> (f1 (f2 t) -> f1 (f2 u))' becomes `(a ->)', and `f2' becomes `Maybe' |
| 17:28:19 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 17:29:15 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 17:32:55 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 17:33:29 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 17:33:59 | × | dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer) |
| 17:34:34 | <Haskelytic> | ski: |
| 17:34:43 | <Haskelytic> | thanks! makes sense now |
| 17:35:58 | × | m1dnight quits (~christoph@78-22-0-121.access.telenet.be) (Ping timeout: 240 seconds) |
| 17:36:11 | → | dextaa joins (~DV@user/dextaa) |
| 17:36:57 | <ski> | i'd probably write `fmap sum . Just' instead |
| 17:37:23 | <ski> | (note that in the `Functor (rho ->)' instance, we have `fmap = (.)') |
| 17:37:25 | → | m1dnight joins (~christoph@78-22-0-121.access.telenet.be) |
| 17:38:01 | × | dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer) |
| 17:38:08 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 17:38:11 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a) |
| 17:40:16 | → | dextaa joins (~DV@user/dextaa) |
| 17:41:39 | × | Haskelytic quits (~Haskelyti@118.179.211.17) (Quit: Client closed) |
| 17:42:30 | × | Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 240 seconds) |
| 17:42:38 | × | remexre quits (~remexre@user/remexre) (Ping timeout: 255 seconds) |
| 17:43:25 | → | Haskelytic joins (~Haskelyti@118.179.211.17) |
| 17:44:31 | → | coot joins (~coot@213.134.190.95) |
| 17:44:38 | → | elkcl joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) |
| 17:46:25 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:48:15 | → | remexre joins (~remexre@user/remexre) |
| 17:54:49 | → | Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius) |
| 17:59:26 | × | cosimone quits (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection) |
| 18:00:49 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 18:01:17 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 18:05:28 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds) |
| 18:08:36 | → | jgeerds joins (~jgeerds@55d437cf.access.ecotel.net) |
| 18:10:23 | → | Pickchea joins (~private@user/pickchea) |
| 18:11:19 | → | Topsi joins (~Topsi@37.84.153.102) |
| 18:12:28 | × | segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds) |
| 18:12:43 | → | mcglk joins (~mcglk@131.191.49.120) |
| 18:15:55 | × | machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 272 seconds) |
| 18:16:33 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 276 seconds) |
| 18:20:10 | × | gurkenglas quits (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
| 18:21:31 | → | cosimone joins (~user@93-44-186-171.ip98.fastwebnet.it) |
| 18:21:50 | <carbolymer> | what was ghci option `-W` doing? |
| 18:21:55 | <carbolymer> | I forgot why I have it there |
| 18:22:00 | <carbolymer> | and why `it` is unassigned :| |
| 18:22:28 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:23:03 | <geekosaur> | -W turns on a base set of warnings iirc? and look for -fno-it somewhere (maybe a ~/.ghci or project specific .ghci) |
| 18:23:16 | <carbolymer> | thx |
| 18:23:20 | <int-e> | https://ghc.gitlab.haskell.org/ghc/doc/users_guide/using-warnings.html#ghc-flag--W |
| 18:23:28 | <carbolymer> | oh it's from GHC |
| 18:23:44 | <geekosaur> | assigning to `it` changes some type inference, although not usually noticeably |
| 18:23:49 | <int-e> | ghci is basically ghc except it defaults to --interactive |
| 18:24:08 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 260 seconds) |
| 18:28:46 | Andrew | is now known as HaxCPU |
| 18:30:10 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 18:33:03 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:33:04 | → | gurkenglas joins (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) |
| 18:34:23 | → | dschrempf joins (~dominik@mobiledyn-62-240-134-33.mrsn.at) |
| 18:34:50 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 18:43:32 | → | coot joins (~coot@213.134.190.95) |
| 18:46:08 | → | Guest45 joins (~Guest45@bras-base-okvlon5405w-grc-53-70-30-46-127.dsl.bell.ca) |
| 18:49:48 | × | dschrempf quits (~dominik@mobiledyn-62-240-134-33.mrsn.at) (Quit: WeeChat 3.5) |
| 18:53:10 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 240 seconds) |
| 18:53:34 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 18:54:52 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:02:37 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 19:07:09 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:07:12 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 19:10:48 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
| 19:17:56 | → | chomwitt joins (~chomwitt@2a02:587:dc0d:4a00:e44b:517c:8b93:d71d) |
| 19:23:07 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:24:48 | × | chomwitt quits (~chomwitt@2a02:587:dc0d:4a00:e44b:517c:8b93:d71d) (Ping timeout: 276 seconds) |
| 19:27:33 | → | chomwitt joins (~chomwitt@2a02:587:dc0d:4a00:68e4:4ca8:a63:19fd) |
| 19:31:51 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) |
| 19:35:07 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:35:54 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 19:37:45 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
| 19:37:47 | × | nek0 quits (~nek0@2a01:4f8:222:2b41::12) (Quit: The Lounge - https://thelounge.chat) |
| 19:40:32 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 19:41:49 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:42:29 | × | Haskelytic quits (~Haskelyti@118.179.211.17) (Quit: Client closed) |
| 19:43:11 | → | kenran joins (~kenran@200116b82b139d005625d042cb0248e6.dip.versatel-1u1.de) |
| 19:43:15 | × | kenran quits (~kenran@200116b82b139d005625d042cb0248e6.dip.versatel-1u1.de) (Client Quit) |
| 19:47:20 | × | mikoto-chan quits (~mikoto-ch@d59mf84twhjn22gzzgy-4.rev.dnainternet.fi) (Ping timeout: 255 seconds) |
| 19:48:08 | × | elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 260 seconds) |
| 19:48:16 | → | elkcl joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) |
| 19:49:59 | × | chomwitt quits (~chomwitt@2a02:587:dc0d:4a00:68e4:4ca8:a63:19fd) (Remote host closed the connection) |
| 19:50:23 | → | chomwitt joins (~chomwitt@2a02:587:dc0d:4a00:4e3c:ad56:fffa:225d) |
| 19:53:19 | → | machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net) |
| 19:54:42 | × | monaaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 276 seconds) |
| 19:56:26 | → | monaaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 19:57:43 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 19:58:39 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 19:58:56 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:03:40 | → | Pickchea joins (~private@user/pickchea) |
| 20:04:35 | × | `2jt quits (~jtomas@141.red-88-17-65.dynamicip.rima-tde.net) (Ping timeout: 260 seconds) |
| 20:04:42 | → | pavonia joins (~user@user/siracusa) |
| 20:06:14 | × | merijn quits (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds) |
| 20:09:40 | × | quintasan quits (~quassel@quintasan.pl) () |
| 20:09:50 | → | quintasan joins (~quassel@quintasan.pl) |
| 20:10:57 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:17:16 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 20:21:30 | × | monaaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
| 20:22:39 | × | chomwitt quits (~chomwitt@2a02:587:dc0d:4a00:4e3c:ad56:fffa:225d) (Ping timeout: 276 seconds) |
| 20:23:46 | → | monaaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 20:23:51 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 20:23:58 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 20:24:05 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:24:57 | → | Guest41 joins (~Guest41@ool-18bd55d4.dyn.optonline.net) |
| 20:25:10 | × | Guest41 quits (~Guest41@ool-18bd55d4.dyn.optonline.net) (Client Quit) |
| 20:25:31 | → | segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
| 20:26:23 | → | seriously joins (~seriously@ool-18bd55d4.dyn.optonline.net) |
| 20:26:43 | → | nek0 joins (~nek0@2a01:4f8:222:2b41::12) |
| 20:31:20 | <seriously> | hey... im struggling with a hw problem in CIS194... Local maxima. "A local maximum of a list is an element of the list which is strictly |
| 20:31:21 | <seriously> | greater than both the elements immediately before and after it." I need to define a function that finds all the local maxima in a list. |
| 20:31:32 | → | notzmv joins (~zmv@user/notzmv) |
| 20:31:49 | <seriously> | "localMaxima :: [Integer] -> [Integer] |
| 20:32:51 | <Rembane> | seriously: How far have you got? |
| 20:33:15 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:33:25 | <monochrom> | Suppose you want to find the local maxima of [a,b,c,d,e,f,g,h,i,j]. |
| 20:33:28 | <seriously> | my functional intuition is telling me i can use "filter" in combination with pattern matching to filter these local maximas into a new list |
| 20:34:03 | <monochrom> | 1. Can you also obtain these lists: [b,c,d,e,f,g,h,i,j], [c,d,e,f,g,h,i,j] |
| 20:34:06 | <geekosaur> | but filter only examines individual list elements. you need comparisons to their neighbors |
| 20:34:17 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 20:34:28 | <seriously> | so like filter (\(x:y:z-> ....) xs |
| 20:34:45 | <monochrom> | 2. Can you then obtain [(a,b,c), (b,c,d), (c,d,e), (d,e,f), (e,f,g), (f,g,h), (g,h,i), (h,i,j)] |
| 20:34:46 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 20:34:56 | <monochrom> | 3. Can you now use filter on that? |
| 20:34:56 | <seriously> | right..."individual elements" |
| 20:35:06 | <geekosaur> | filter isn't that smart. you can't just declare more elements in its predicate parameter to get more list elements |
| 20:35:11 | <monochrom> | And now I'm afk. |
| 20:35:14 | <int-e> | or maybe work on suffixes (aka tails) |
| 20:35:49 | <seriously> | one sec reading through the suggestions |
| 20:38:13 | → | merijn joins (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) |
| 20:39:10 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 20:39:41 | <seriously> | before I try and figure out your suggestion monochrom, I did have one more intuition that I wanted |
| 20:39:49 | <seriously> | to throw out there |
| 20:41:46 | <seriously> | What if i "zip" against the input list, marking the local maximas with 1.... so [(0,2), (1,5), (0,3)], and then filter on that? |
| 20:43:04 | <geekosaur> | you seem to be trying to reach toward monochrom's suggestion. now you should go back and read it |
| 20:43:04 | <Rembane> | seriously: Don't you lack one item in the tuples? |
| 20:44:18 | × | brettgilio quits (~brettgili@c9yh.net) (Remote host closed the connection) |
| 20:46:18 | → | brettgilio joins (~brettgili@c9yh.net) |
| 20:47:17 | <EvanR> | functional programming solutions, an exercise in setting something up that is easily knocked down xD |
| 20:48:01 | <Rembane> | Yeah. unfold, fold, C-O-M-B-O! |
| 20:49:37 | <seriously> | Rembane say this is the input [1,18,5,9,2,3,2,1], what if i could zip it into [(0, 1), (1,18... . I think the issue there is again im thinking i can zip or zipWith using neighboring elements in the function logic |
| 20:49:52 | <EvanR> | my hammers are map, filter, and fold. So gotta convert the problem into one or more kind of nails xD |
| 20:50:11 | <geekosaur> | the problem, as Rembane is trying to highlight, is you need the elements before *and* after a given element. threes, not twos |
| 20:50:22 | <geekosaur> | see also monochrom's suggestion |
| 20:51:38 | × | phma quits (~phma@host-67-44-209-41.hnremote.net) (Read error: Connection reset by peer) |
| 20:52:51 | → | phma joins (phma@2001:5b0:215d:e008:5054:f1a6:ecb8:df53) |
| 20:53:25 | <seriously> | ok im following... So using pattern matching in combination with recursion to achieve a sliding window |
| 20:53:37 | → | chomwitt joins (~chomwitt@2a02:587:dc0d:4a00:b231:296e:3336:4e6e) |
| 20:54:04 | <Rembane> | seriously: That's another solution, code that one! :) |
| 20:54:09 | <EvanR> | recursion is cool, but also cool is using a canned function that does the sort of recursion you want |
| 20:54:32 | <EvanR> | looks like no one mentioned the one monochrom was talking about by name |
| 20:54:36 | <ski> | is `localMaxima [a]' the empty list ? |
| 20:54:38 | × | vglfr quits (~vglfr@88.155.25.62) (Ping timeout: 260 seconds) |
| 20:54:46 | <Rembane> | EvanR: You're just trying to use your hammer. :D |
| 20:55:43 | <EvanR> | you can use a can as a hammer in a pinch (been playing a lot of project zomboid) |
| 20:56:41 | <Rembane> | And a stone! |
| 20:59:27 | → | vglfr joins (~vglfr@88.155.25.62) |
| 21:07:28 | × | merijn quits (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
| 21:08:48 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 21:09:27 | × | chomwitt quits (~chomwitt@2a02:587:dc0d:4a00:b231:296e:3336:4e6e) (Ping timeout: 276 seconds) |
| 21:13:18 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds) |
| 21:18:59 | → | merijn joins (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) |
| 21:20:51 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 21:23:48 | × | merijn quits (~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
| 21:24:30 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds) |
| 21:30:48 | <seriously> | still here gents... heres what i have so far: |
| 21:30:58 | <seriously> | localMaxima :: [Integer] -> [Integer] |
| 21:30:59 | <seriously> | localMaxima [] = [] |
| 21:30:59 | <seriously> | localMaxima lst@(x:y:z:xs) |
| 21:31:00 | <seriously> | | length lst < 3 = [] |
| 21:31:00 | <seriously> | | otherwise = |
| 21:31:01 | <seriously> | snd (unzip (filter (\(x,y,z) -> y > x && y > z) (x,y,z):(func y:z:xs))) |
| 21:31:36 | <seriously> | how can i define a function within a "where" block? |
| 21:32:18 | × | fockerize quits (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Quit: WeeChat 3.5) |
| 21:32:40 | <seriously> | can |
| 21:32:51 | <Rembane> | seriously: f x = g x where g y = y * 2 |
| 21:33:11 | <Rembane> | seriously: Indentation is important though |
| 21:33:24 | <seriously> | ok thx |
| 21:33:31 | <EvanR> | where can attach to any equation |
| 21:33:43 | → | yauhsien_ joins (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) |
| 21:35:29 | × | yauhsien quits (~yauhsien@61-231-36-12.dynamic-ip.hinet.net) (Ping timeout: 244 seconds) |
| 21:36:34 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 21:37:42 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 21:41:09 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 21:41:10 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:42:23 | × | acidjnk quits (~acidjnk@p200300d6e706ad7551e311a7b45e4414.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 21:43:27 | × | Topsi quits (~Topsi@37.84.153.102) (Read error: Connection reset by peer) |
| 21:44:10 | × | belphegor666 quits (~satan@ip-046-223-002-238.um13.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
| 21:45:38 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 21:47:35 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 21:52:16 | × | mmhat quits (~mmh@p200300f1c7090723ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.5) |
| 21:52:54 | kaskal- | is now known as kaskal |
| 21:54:10 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 240 seconds) |
| 21:55:05 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:57:35 | × | machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 272 seconds) |
| 21:59:19 | → | nate4 joins (~nate@98.45.169.16) |
| 22:00:33 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 22:02:48 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:04:03 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 22:05:23 | × | harry quits (~harry@c-73-93-249-239.hsd1.ca.comcast.net) (Quit: harry) |
| 22:05:36 | <ski> | seriously : `localMaxima' isn't defined for lists of length one and two (matching against the pattern `x:y:z:xs' happens before it would get a chance to get to the `length lst < 3' guard) |
| 22:07:30 | <ski> | `snd' isn't defined on triples (only pairs) |
| 22:07:51 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a) (Remote host closed the connection) |
| 22:08:29 | <ski> | perhaps you meant `func (y:z:xs)' ? (`func y:z:xs' means `(func y):(z:xs)') |
| 22:08:46 | <seriously> | ok ski thanks for the headsup... still working through how to .... |
| 22:08:59 | <seriously> | thanks (: that was it |
| 22:09:42 | → | Guest56 joins (~Guest56@2a01:4b00:d001:8c00:7df5:f9db:fcc0:60b7) |
| 22:10:05 | <ski> | (similarly, i'm suspecting that instead of `filter (\(...) -> ...) (...):(...)' you meant `func (\(...) -> ...) ((...):...)' .. otherwise you're only passing the `(x,y,z)' part, not the part with `func', as an argument to `filter') |
| 22:10:44 | × | Guest56 quits (~Guest56@2a01:4b00:d001:8c00:7df5:f9db:fcc0:60b7) (Client Quit) |
| 22:11:21 | <monochrom> | Wait a second, why is an Elm kids' summer camp advertising in haskell-cafe? :) |
| 22:11:39 | <ski> | btw, instead of using `y:z:xs', you could say e.g. `rest', if you change the pattern `lst@(x:y:z:xs)' into `lst@(x:rest@(y:z:xs))' |
| 22:12:05 | <monochrom> | And the title is as if the 8-14yos found Haskell too easy :) |
| 22:12:15 | <ski> | there are Elm kids' summer camps ? |
| 22:12:47 | <geekosaur> | https://mail.haskell.org/pipermail/haskell-cafe/2022-July/135388.html |
| 22:13:05 | <geekosaur> | say what now? |
| 22:15:31 | <monochrom> | Heh pipermail is not going to make it easy to view an HTML email |
| 22:15:35 | <hpc> | no plaintext fallback :( |
| 22:15:52 | <hpc> | but they use a cid attachment for the image instead of embedding |
| 22:16:03 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 22:16:12 | <monochrom> | But the title is "mastered Haskell and need a new challenge???", and the text begins with "Learn Elm! Free introduction for ages 8-14 with these coupons" |
| 22:16:37 | × | ephemient quits (uid407513@id-407513.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 22:17:00 | <sclv> | lmao. if you mastered haskell and need a new challenge and you are 8 years old i suggest you tackle the langlands program |
| 22:17:03 | <Bulby[m]> | wtf |
| 22:17:17 | <monochrom> | sclv: Well said haha |
| 22:18:15 | <monochrom> | I do appreciate that of all summer programming camps, at least someone is trying to do FP in one. |
| 22:19:08 | <monochrom> | Right? Everyone is crazy with "more kids need to see more python". It is beginning to feel like BASIC-esque. |
| 22:19:58 | <geekosaur> | oh, it's been there for years |
| 22:20:09 | <monochrom> | Those who have learned from history are doomed to helplessly watch other people repeat it. >:) |
| 22:20:23 | × | christiansen quits (~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 272 seconds) |
| 22:20:26 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 22:21:40 | <seriously> | ski since finding my errors was literally target practice for you: also unzip only works on a list of tuples. I needed unzip3 |
| 22:21:51 | <dolio> | How much of a challenge is Elm for someone who's already mastered Haskell? |
| 22:22:03 | <geekosaur> | I've been surprised someone hasn't recycled dijkstra's basic quote, tbh |
| 22:23:42 | <monochrom> | Elm lacks a lot of user definability regarding type classes and instances, right? That would be a challenge. >:) |
| 22:24:13 | <sclv> | i mean python was literally designed as a better teaching language than basic iirc |
| 22:24:18 | <monochrom> | In the same way I would find BASIC a challenge today. What do you mean I may only have numbers and strings. |
| 22:25:10 | <sclv> | the worst and weirdest thing basic taught me is that "a computer program has to have a sequence of numbers in front of the lines: 10, 20, 30, 40" and they never f'ing explained why in any of the intro material |
| 22:25:29 | <meejah> | in case you want to use GOTO of course! |
| 22:25:33 | <sclv> | that and the all caps etc - a lot of just "syntactic discipline for its own sake" |
| 22:26:11 | meejah | found QuickBASIC flopies recently.. |
| 22:26:12 | <geekosaur> | …leading me to write a preprocessor that did the line numbers for me |
| 22:26:21 | <geekosaur> | and write in lowercase |
| 22:27:03 | <dolio> | sclv: You need that to insert lines in the middle of the program later. |
| 22:27:09 | <sclv> | right i mean by the time i was doing it, clearly writing such processors was straightforward and did not add much in the way of resource consumption |
| 22:27:14 | <dolio> | Anticipated AOP. Way ahead of their time. |
| 22:27:28 | <monochrom> | haha |
| 22:27:50 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:28:06 | <sclv> | so like "we'll teach you this insane way to do things that involves a lot of work that could be done by a computer if only we had one OH WAIT YOU ARE USING ONE ALREADY:!?" was not a welcoming introduction to like "computer programs make your life better and simpler" |
| 22:29:21 | <monochrom> | OK so one aspect is that back then we didn't have an editor, unless you could call something even more primitive than ed an editor. |
| 22:30:00 | <monochrom> | Imagine a world in which only REPLs exist. |
| 22:30:01 | <sclv> | by the time i was doing it we absolutely had editors more sophisticated than ed. |
| 22:30:14 | <dolio> | That aspect is still lost on a lot of people today, though. |
| 22:30:32 | <sclv> | like computers were already being used as full fledged typesetting word processors |
| 22:30:33 | <monochrom> | haha |
| 22:30:40 | <hpc> | imagine a world in which catting a file cost ink instead of bytes |
| 22:30:47 | <hpc> | and that's how you get ed |
| 22:31:34 | <hpc> | there's a reason your terminal device is called a tty, and it's not that unix likes to give things silly names :D |
| 22:31:34 | <EvanR> | so wait, in old basic, you had to put numbers and you also had line numbers? |
| 22:31:43 | <sclv> | speaking of AOP and GOTO i recall AOP at one point being described as "the ultimate COMEFROM" |
| 22:31:53 | <EvanR> | 1 10 print hello world |
| 22:31:55 | <EvanR> | 2 20 goto 10 |
| 22:32:10 | <monochrom> | Nah you just need the 10 and 20. |
| 22:32:16 | <hpc> | EvanR: yep, convention was 10x line number so you could insert 9 more lines before redoing your goto |
| 22:32:42 | <EvanR> | i mean the editors didn't show the actual line numbers because you synthesized your own? |
| 22:32:48 | <monochrom> | Yes. |
| 22:32:54 | <EvanR> | mind blown |
| 22:33:01 | <seriously> | i did it guys. I dont want to start naming all my supporters in fear that i may forget someone; so thank you everyone |
| 22:33:49 | <EvanR> | hpc, obviously you need to graduate to 100 200 etc |
| 22:33:55 | <monochrom> | You can use the fibonacci sequence if you want. |
| 22:34:07 | <hpc> | 1 print "hello" |
| 22:34:08 | <hpc> | 1 goto 1 |
| 22:34:23 | <hpc> | 2 hang on a minute... |
| 22:34:24 | <EvanR> | one day they will invent rationals |
| 22:34:25 | <monochrom> | OK except for the duplicate "1, 1" beginning :) |
| 22:34:37 | <sclv> | i forget what would happen if the sequence wasn't monotone increasing |
| 22:34:55 | <seriously> | snd' :: (a,a,a) -> a |
| 22:34:56 | <seriously> | snd' (x,y,z) = y |
| 22:34:56 | <seriously> | hasMaxima :: Ord a => (a,a,a) -> Bool |
| 22:34:57 | <seriously> | hasMaxima (x,y,z) = y > x && y > z |
| 22:34:57 | <seriously> | localMaxima :: [Integer] -> [Integer] |
| 22:34:57 | <hpc> | this is why you should use busy beaver numbers |
| 22:34:58 | <seriously> | localMaxima [] = [] |
| 22:34:58 | <seriously> | localMaxima [x] = [] |
| 22:34:59 | <seriously> | localMaxima [x,y] = [] |
| 22:34:59 | <seriously> | localMaxima (x:y:z:xs) = |
| 22:35:00 | <seriously> | snd' (unzip3 (filter (\trip -> hasMaxima trip) ((x,y,z):(func (y:z:xs))))) |
| 22:35:00 | <seriously> | where func [] = [] |
| 22:35:01 | <seriously> | func [x] = [] |
| 22:35:01 | <seriously> | func [x,y] = [] |
| 22:35:02 | <seriously> | func (x:y:z:xs) = (x,y,z):func (y:z:xs) |
| 22:35:03 | <monochrom> | Then you are inserting a line between somewhere, as dolio said. |
| 22:35:07 | <hpc> | you're guaranteed to never run out of line numbers |
| 22:35:13 | <seriously> | sorry to bloat chat; but incase any1 was curious |
| 22:35:22 | <hpc> | @where paste |
| 22:35:22 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
| 22:35:24 | <hpc> | :P |
| 22:35:25 | <sclv> | seriously: please don't paste large listings directly in chat. use the pastebin listed in the channel description |
| 22:35:42 | <seriously> | ok ! |
| 22:35:45 | <monochrom> | If 10 and 20 already exist, and you enter "15 whatever", it now sits between 10 and 20. |
| 22:35:52 | <sclv> | lmao. |
| 22:36:13 | <sclv> | somehow i thought it compiled in order and the line numbers were just jump labels |
| 22:36:18 | <monochrom> | Last but not least, there is a "renumber" command to normalize your line numbers to [10, 20 ..] |
| 22:36:19 | <EvanR> | i recall starting new sections at like 10000 because I figured what I was doing before could get pretty big |
| 22:37:09 | <EvanR> | 10000, 20000, etc 10000 lines should be enough for anyone |
| 22:39:27 | × | jjhoo quits (~jahakala@user/jjhoo) (Remote host closed the connection) |
| 22:40:01 | × | jgeerds quits (~jgeerds@55d437cf.access.ecotel.net) (Ping timeout: 272 seconds) |
| 22:40:51 | <ski> | seriously : the first few defining equations of `localMaxima' is duplicating functionality of `func'. if you want to, you could avoid having multiple termination cases, by using a catch-all case (last). no need to bracket the `func (y:z:xs)' call |
| 22:43:00 | <ski> | (spelling out the first point more : by the defining equation `func (x:y:z:xs) = (x,y,z):func (y:z:xs)', `(x,y,z):func (y:z:xs)' is equal to `func (x:y:z:xs)'. so you should be able to replace the former with the latter, in the last defining equation of `localMaxima' .. and then you could do further simplifications) |
| 22:43:49 | → | jjhoo joins (~jahakala@user/jjhoo) |
| 22:44:18 | × | vglfr quits (~vglfr@88.155.25.62) (Ping timeout: 260 seconds) |
| 22:44:27 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 272 seconds) |
| 22:45:14 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 22:48:53 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a) |
| 22:54:48 | <seriously> | ski can you elaborate on this? "the first few defining equations of `localMaxima' is duplicating functionality of `func'. if you want to, you could avoid having multiple termination cases, by using a catch-all case (last)" |
| 22:55:20 | <seriously> | is "last" some sort of keyword ? |
| 22:57:01 | <seriously> | I understand your bit about duplication; Im just not sure how I could remove that duplication** |
| 22:57:39 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 22:58:27 | <geekosaur> | no, you put the catch-all case as the last one |
| 22:58:28 | <ski> | no, not keyword |
| 22:59:03 | <EvanR> | f 0 = 'a'; f 1 = 'b'; f _ = 'c' |
| 22:59:19 | <ski> | @src zip |
| 22:59:19 | <lambdabot> | zip (a:as) (b:bs) = (a,b) : zip as bs |
| 22:59:19 | <lambdabot> | zip _ _ = [] |
| 22:59:30 | <ski> | is another example of a catch-all |
| 23:03:33 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds) |
| 23:04:02 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 23:04:05 | × | kjak quits (~kjak@pool-108-31-68-111.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
| 23:05:12 | <ski> | seriously : "Im just not sure how I could remove that duplication" -- well, one approach is "struck by lightning insight" (perhaps after "thinking hard" for a while), then change the code accordingly. another is incremental small changes. e.g. beginning with the replacement i suggested |
| 23:06:03 | <seriously> | :ski got it ; just misunderstood the suggestion |
| 23:07:05 | <ski> | (got it now ?) |
| 23:07:11 | <seriously> | instead of defining the singleton list case and the [x,y] case for both func and localMaxima; I could use func _ = [] |
| 23:09:56 | <ski> | you'll still need to do something more for `localMaxima', in order to have it handle all cases (while avoiding functionality duplication), i think |
| 23:11:41 | × | monaaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
| 23:13:01 | → | monaaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 23:13:34 | <seriously> | ski heres what i got so far if tour iinterested https://paste.tomsmeding.com/4XNbmDe7 |
| 23:13:38 | → | k60` joins (~user@45.155.170.162) |
| 23:15:24 | → | merijn joins (~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) |
| 23:16:07 | <ski> | seriously : is there a reason you're checking (by pattern-matching) whether the list has three elements, in `localMaxima' ? |
| 23:16:25 | <seriously> | nope |
| 23:16:32 | <seriously> | thank you!! |
| 23:18:33 | × | Tuplanolla quits (~Tuplanoll@91-159-69-97.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:18:50 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 23:21:32 | <ski> | seriously : part of the point of my comments is to realize that after getting the code working, often there can be simplifications one can perform. with practice, you'll be able to anticipate stuff like this earlier |
| 23:24:11 | <seriously> | point well received *thubs up* |
| 23:27:54 | × | hueso quits (~root@user/hueso) (Ping timeout: 276 seconds) |
| 23:28:09 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 272 seconds) |
| 23:28:32 | → | hueso joins (~root@user/hueso) |
| 23:30:16 | × | seriously quits (~seriously@ool-18bd55d4.dyn.optonline.net) (Ping timeout: 252 seconds) |
| 23:32:08 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 23:33:59 | → | enthropy joins (~enthropy@24-246-69-9.cable.teksavvy.com) |
| 23:35:49 | <enthropy> | Is this the best use of the monoid-statistics package: (each %%~ MS.calcMean . MS.asMean) . foldMap (each %~ MS.singletonMonoid) :: [(Double, Double,Double)] -> Maybe (Double, Double,Double) |
| 23:36:39 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 276 seconds) |
| 23:37:09 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 23:37:58 | → | k60`` joins (~user@94.25.174.91) |
| 23:38:59 | × | k60` quits (~user@45.155.170.162) (Ping timeout: 244 seconds) |
| 23:39:53 | → | vglfr joins (~vglfr@88.155.25.62) |
| 23:39:58 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 23:42:01 | × | yauhsien_ quits (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 23:44:22 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 23:44:23 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds) |
| 23:44:58 | × | merijn quits (~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
| 23:45:09 | × | Colere quits (~colere@about/linux/staff/sauvin) (Ping timeout: 256 seconds) |
| 23:45:52 | → | kimjetwav joins (~user@2607:fea8:2340:fe00:730c:be2f:be5e:3847) |
| 23:46:13 | → | machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net) |
| 23:46:54 | → | yauhsien joins (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) |
| 23:48:24 | → | Colere joins (~colere@about/linux/staff/sauvin) |
| 23:51:37 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 23:51:59 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::909a) |
| 23:52:42 | × | yauhsien quits (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 23:52:54 | × | dunj3 quits (~dunj3@kingdread.de) (Ping timeout: 276 seconds) |
| 23:53:39 | → | yauhsien joins (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) |
| 23:54:04 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 23:54:45 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 272 seconds) |
| 23:57:50 | × | yauhsien quits (~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 23:58:41 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
All times are in UTC on 2022-07-11.