Logs on 2023-01-11 (liberachat/#haskell)
| 00:00:11 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 264 seconds) |
| 00:06:40 | × | mizlan quits (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) (Ping timeout: 252 seconds) |
| 00:09:22 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 00:17:50 | × | caryhartline quits (~caryhartl@2600:1700:2d0:8d30:8c24:7477:2459:2106) (Quit: caryhartline) |
| 00:21:38 | × | freeside quits (~mengwong@103.252.202.159) (Ping timeout: 268 seconds) |
| 00:25:37 | → | scoopahdoopah joins (~quassel@050-089-109-059.res.spectrum.com) |
| 00:28:01 | → | mizlan joins (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) |
| 00:28:05 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds) |
| 00:28:10 | × | acidjnk quits (~acidjnk@p200300d6e715c440647ad5b3d6a6efb6.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 00:31:10 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 00:31:36 | × | [Leary] quits (~Leary]@user/Leary/x-0910699) (Remote host closed the connection) |
| 00:32:14 | × | mizlan quits (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) (Ping timeout: 246 seconds) |
| 00:33:15 | → | [Leary] joins (~Leary]@user/Leary/x-0910699) |
| 00:33:39 | → | freeside joins (~mengwong@103.252.202.159) |
| 00:40:25 | × | zeenk quits (~zeenk@2a02:2f04:a110:ac00::fba) (Quit: Konversation terminated!) |
| 00:43:59 | oldfashionedcow | is now known as gen43 |
| 00:46:19 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:50:01 | → | acidjnk joins (~acidjnk@p200300d6e715c4239935b01ac656f8cf.dip0.t-ipconnect.de) |
| 00:50:43 | × | Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 252 seconds) |
| 00:50:56 | gen43 | is now known as username236 |
| 00:58:30 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: Lost terminal) |
| 00:58:53 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 00:59:57 | → | mizlan joins (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) |
| 01:01:31 | <maralorn> | Huh, the stackage nightly rss feed tells me, that 2023-01-11 dropped bascilly all packages from nightly. e.g. text. |
| 01:02:52 | username236 | is now known as oldfashionedcow |
| 01:04:30 | × | tremon quits (~tremon@83-85-213-108.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in) |
| 01:06:40 | × | talismanick quits (~talismani@campus-004-215.ucdavis.edu) (Ping timeout: 272 seconds) |
| 01:08:07 | × | xff0x quits (~xff0x@2405:6580:b080:900:86c4:71c7:793f:fbf7) (Quit: xff0x) |
| 01:09:56 | → | xff0x joins (~xff0x@2405:6580:b080:900:49d8:de61:74a:e5ea) |
| 01:09:59 | → | thongpv87 joins (~thongpv87@103.199.71.100) |
| 01:10:31 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:12:23 | × | thongpv quits (~thongpv87@2402:9d80:3f6:bf92:7fcb:6344:e6bc:6a06) (Ping timeout: 252 seconds) |
| 01:16:38 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:26:58 | × | mizlan quits (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) (Ping timeout: 252 seconds) |
| 01:33:47 | × | xff0x quits (~xff0x@2405:6580:b080:900:49d8:de61:74a:e5ea) (Ping timeout: 264 seconds) |
| 01:37:49 | → | mizlan joins (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) |
| 01:38:43 | × | freeside quits (~mengwong@103.252.202.159) (Ping timeout: 268 seconds) |
| 01:38:45 | → | cheater_ joins (~Username@user/cheater) |
| 01:41:19 | × | cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds) |
| 01:41:21 | cheater_ | is now known as cheater |
| 01:41:40 | × | codaraxis quits (~codaraxis@user/codaraxis) (Quit: Leaving) |
| 01:41:53 | × | mizlan quits (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) (Ping timeout: 246 seconds) |
| 01:42:08 | × | acidjnk quits (~acidjnk@p200300d6e715c4239935b01ac656f8cf.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 01:56:16 | → | mizlan joins (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) |
| 01:56:42 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 272 seconds) |
| 01:59:19 | → | razetime joins (~Thunderbi@117.254.34.3) |
| 02:02:20 | × | Tuplanolla quits (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.) |
| 02:02:43 | → | razetime1 joins (~Thunderbi@117.254.34.41) |
| 02:03:23 | × | razetime quits (~Thunderbi@117.254.34.3) (Ping timeout: 248 seconds) |
| 02:03:24 | razetime1 | is now known as razetime |
| 02:06:50 | → | freeside joins (~mengwong@103.252.202.159) |
| 02:08:10 | <sm> | maralorn: strange, https://www.stackage.org/diff/nightly-2023-01-10/nightly-2023-01-11 doesn't show that |
| 02:13:03 | × | Lycurgus quits (~juan@user/Lycurgus) (Ping timeout: 260 seconds) |
| 02:17:12 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 252 seconds) |
| 02:18:08 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 02:18:17 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds) |
| 02:20:59 | × | sammelweis quits (~quassel@c-68-48-18-140.hsd1.mi.comcast.net) (Quit: No Ping reply in 180 seconds.) |
| 02:21:16 | × | Blightmain quits (~Blightmai@203.29.154.219) (Remote host closed the connection) |
| 02:22:31 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 02:27:12 | × | oldfashionedcow quits (~Rahul_San@user/oldfashionedcow) (Quit: WeeChat 3.7.1) |
| 02:28:07 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 02:28:22 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 272 seconds) |
| 02:29:06 | → | irrgit_ joins (~irrgit@89.47.234.74) |
| 02:32:14 | × | irrgit quits (~irrgit@89.47.234.26) (Ping timeout: 252 seconds) |
| 02:32:59 | → | jinsun__ joins (~jinsun@user/jinsun) |
| 02:32:59 | × | jinsun quits (~jinsun@user/jinsun) (Killed (iridium.libera.chat (Nickname regained by services))) |
| 02:32:59 | jinsun__ | is now known as jinsun |
| 02:35:36 | × | Umeaboy quits (~Umeaboy@94-255-145-133.cust.bredband2.com) (Quit: Leaving) |
| 02:42:19 | → | fizbin joins (~fizbin@user/fizbin) |
| 02:46:00 | × | mizlan quits (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) (Ping timeout: 255 seconds) |
| 02:57:35 | → | Maxdamantus joins (~Maxdamant@user/maxdamantus) |
| 03:03:08 | → | opticblast joins (~Thunderbi@secure-165.caltech.edu) |
| 03:05:40 | × | td_ quits (~td@83.135.9.5) (Ping timeout: 268 seconds) |
| 03:06:53 | → | td_ joins (~td@83.135.9.16) |
| 03:11:09 | × | freeside quits (~mengwong@103.252.202.159) (Ping timeout: 260 seconds) |
| 03:12:46 | × | jero98772 quits (~jero98772@2800:484:1d80:d8ce:9815:cfda:3661:17bb) (Remote host closed the connection) |
| 03:13:38 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0) |
| 03:19:41 | × | hgolden quits (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
| 03:29:16 | × | Maxdamantus quits (~Maxdamant@user/maxdamantus) (Read error: Connection reset by peer) |
| 03:34:11 | → | freeside joins (~mengwong@103.252.202.159) |
| 03:35:47 | → | Maxdamantus joins (~Maxdamant@user/maxdamantus) |
| 03:38:29 | × | freeside quits (~mengwong@103.252.202.159) (Ping timeout: 246 seconds) |
| 03:40:13 | → | freeside joins (~mengwong@103.252.202.159) |
| 03:45:43 | → | talismanick joins (~talismani@2601:200:c181:8250::ce24) |
| 03:56:51 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 03:56:51 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 03:56:51 | finn_elija | is now known as FinnElija |
| 04:03:22 | × | td_ quits (~td@83.135.9.16) (Ping timeout: 272 seconds) |
| 04:04:58 | → | td_ joins (~td@83.135.9.40) |
| 04:19:56 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 04:19:56 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 04:19:56 | → | wroathe joins (~wroathe@user/wroathe) |
| 04:26:15 | → | fizbin_ joins (~fizbin@user/fizbin) |
| 04:30:09 | × | fizbin quits (~fizbin@user/fizbin) (Ping timeout: 268 seconds) |
| 04:30:33 | × | talismanick quits (~talismani@2601:200:c181:8250::ce24) (Remote host closed the connection) |
| 04:31:25 | → | talismanick joins (~talismani@2601:200:c181:8250::ce24) |
| 04:32:57 | × | thegeekinside quits (~thegeekin@189.217.82.244) (Remote host closed the connection) |
| 04:33:25 | <talismanick> | How best to apply a function (like `dropWhile isSpace`) to the front and back of `t :: Text`? |
| 04:34:44 | <mauke> | https://hackage.haskell.org/package/text-2.0.1/docs/Data-Text.html#v:strip |
| 04:35:07 | <talismanick> | mauke: ah, thanks |
| 04:35:15 | <talismanick> | haven't seen `droupAround` before |
| 04:35:31 | → | finsternis joins (~X@23.226.237.192) |
| 04:37:23 | <talismanick> | Is there a class which lets you write "do something to the start and end" for arbitrary finite containers? |
| 04:37:39 | <talismanick> | like a double-zipper of sorts |
| 04:37:41 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
| 04:39:27 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds) |
| 04:42:48 | → | mizlan joins (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) |
| 04:44:35 | × | freeside quits (~mengwong@103.252.202.159) (Ping timeout: 260 seconds) |
| 04:47:10 | × | mizlan quits (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) (Ping timeout: 260 seconds) |
| 04:49:34 | <glguy> | talismanick: no, probably not |
| 04:51:44 | × | bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 268 seconds) |
| 04:57:21 | → | zaquest joins (~notzaques@5.130.79.72) |
| 04:59:06 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 272 seconds) |
| 05:01:36 | × | fizbin_ quits (~fizbin@user/fizbin) (Ping timeout: 268 seconds) |
| 05:01:36 | × | Vajb quits (~Vajb@2001:999:78d:d7:457c:7773:573e:6903) (Read error: Connection reset by peer) |
| 05:01:38 | → | freeside joins (~mengwong@103.252.202.159) |
| 05:02:17 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) |
| 05:03:18 | → | mbuf joins (~Shakthi@49.204.135.44) |
| 05:03:33 | × | johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in) |
| 05:07:47 | → | johnw joins (~johnw@2600:1700:cf00:db0:2df3:add9:d7a8:37bf) |
| 05:10:32 | × | lewisje quits (~lewisje@2001:470:1f11:14e:1753:f4c6:e607:e65f) (Quit: Leaving) |
| 05:10:50 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 05:11:04 | → | Vajb joins (~Vajb@2001:999:78d:d7:457c:7773:573e:6903) |
| 05:16:52 | → | alfonsox joins (~quassel@103.87.57.33) |
| 05:30:28 | → | trev joins (~trev@user/trev) |
| 05:44:34 | × | Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net) (Ping timeout: 260 seconds) |
| 05:48:28 | → | thegeekinside joins (~thegeekin@189.217.82.244) |
| 05:57:47 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 246 seconds) |
| 05:59:40 | → | Sciencentistguy1 joins (~sciencent@hacksoc/ordinary-member) |
| 06:02:01 | × | Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Ping timeout: 252 seconds) |
| 06:02:01 | Sciencentistguy1 | is now known as Sciencentistguy |
| 06:02:59 | → | Batzy_ joins (~quassel@user/batzy) |
| 06:04:54 | × | freeside quits (~mengwong@103.252.202.159) (Ping timeout: 252 seconds) |
| 06:05:43 | × | Batzy quits (~quassel@user/batzy) (Ping timeout: 265 seconds) |
| 06:10:49 | × | Batzy_ quits (~quassel@user/batzy) (Ping timeout: 260 seconds) |
| 06:11:08 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 06:11:27 | → | freeside joins (~mengwong@103.252.202.159) |
| 06:12:45 | → | califax joins (~califax@user/califx) |
| 06:14:06 | × | chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
| 06:14:38 | → | chiselfuse joins (~chiselfus@user/chiselfuse) |
| 06:16:43 | × | koz quits (~koz@121.99.240.58) (Ping timeout: 248 seconds) |
| 06:17:14 | × | opticblast quits (~Thunderbi@secure-165.caltech.edu) (Read error: Connection reset by peer) |
| 06:17:31 | → | opticblast joins (~Thunderbi@secure-165.caltech.edu) |
| 06:20:59 | → | koz joins (~koz@121.99.240.58) |
| 06:20:59 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:39:23 | → | lewisje joins (~lewisje@2001:470:1f11:14e:f874:d68f:347f:c7da) |
| 06:42:13 | × | hueso quits (~root@user/hueso) (Quit: hueso) |
| 06:50:23 | → | hueso joins (~root@user/hueso) |
| 06:53:39 | → | mizlan joins (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) |
| 06:56:47 | → | biberu joins (~biberu@user/biberu) |
| 06:58:07 | × | mizlan quits (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) (Ping timeout: 252 seconds) |
| 07:11:43 | → | kenran joins (~user@user/kenran) |
| 07:12:59 | → | caryhartline joins (~caryhartl@2600:1700:2d0:8d30:c4a5:2436:d206:1b42) |
| 07:15:59 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:4c7a:8e07:664d:5b65) |
| 07:18:09 | × | caryhartline quits (~caryhartl@2600:1700:2d0:8d30:c4a5:2436:d206:1b42) (Quit: caryhartline) |
| 07:20:56 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 07:21:43 | × | bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
| 07:23:06 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 07:26:12 | → | shapr` joins (~user@68.54.166.125) |
| 07:27:24 | × | shapr quits (~user@68.54.166.125) (Ping timeout: 265 seconds) |
| 07:32:57 | → | hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) |
| 07:34:30 | × | hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Client Quit) |
| 07:34:44 | → | hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0123.hinet-ip6.hinet.net) |
| 07:34:56 | × | hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0123.hinet-ip6.hinet.net) (Remote host closed the connection) |
| 07:35:09 | → | hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) |
| 07:38:13 | × | hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Client Quit) |
| 07:38:29 | → | hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) |
| 07:40:08 | → | mizlan joins (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) |
| 07:44:52 | → | avicenzi joins (~avicenzi@2a00:ca8:a1f:b004::c32) |
| 07:46:21 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 07:46:54 | × | thegeekinside quits (~thegeekin@189.217.82.244) (Read error: Connection reset by peer) |
| 07:59:13 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 08:00:05 | × | off^ quits (~off@76.145.190.81) (Remote host closed the connection) |
| 08:02:38 | → | mmhat joins (~mmh@p200300f1c7123cf3ee086bfffe095315.dip0.t-ipconnect.de) |
| 08:02:43 | × | mmhat quits (~mmh@p200300f1c7123cf3ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit) |
| 08:08:06 | → | fserucas joins (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) |
| 08:09:15 | → | nut joins (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 08:09:27 | → | mastarija joins (~mastarija@188.252.197.182) |
| 08:10:19 | <mastarija> | Am I carzy, or does a function like this really doesn't exist? `ToJSONKey a => a -> Key` |
| 08:11:21 | × | nonzen quits (~nonzen@user/nonzen) (Quit: Gone) |
| 08:11:37 | → | nonzen joins (~nonzen@user/nonzen) |
| 08:12:54 | × | wagle quits (~wagle@quassel.wagle.io) (Remote host closed the connection) |
| 08:13:34 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:14:03 | → | wagle joins (~wagle@quassel.wagle.io) |
| 08:19:34 | <freeside> | https://hackage.haskell.org/package/aeson-2.1.1.0/docs/src/Data.Aeson.Types.ToJSON.html#line-1829 |
| 08:23:37 | × | scoopahdoopah quits (~quassel@050-089-109-059.res.spectrum.com) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 08:24:52 | → | MajorBiscuit joins (~MajorBisc@83.232.58.225) |
| 08:26:33 | → | titibandit1 joins (~titibandi@xdsl-87-78-235-220.nc.de) |
| 08:27:33 | × | mizlan quits (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) (Ping timeout: 255 seconds) |
| 08:28:59 | → | nschoe joins (~q@141.101.51.197) |
| 08:32:57 | × | MajorBiscuit quits (~MajorBisc@83.232.58.225) (Read error: Connection reset by peer) |
| 08:39:43 | → | zeenk joins (~zeenk@2a02:2f04:a110:ac00::fba) |
| 08:44:34 | × | titibandit1 quits (~titibandi@xdsl-87-78-235-220.nc.de) (Remote host closed the connection) |
| 08:45:10 | × | earthy quits (~arthurvl@2a02:a469:f5e2:1:ba27:ebff:fea0:40b0) (Ping timeout: 256 seconds) |
| 08:47:38 | <Athas> | Amusing problem: I get 'failed to create OS thread: Cannot allocate memory' when launching my Haskell program. This is because the program is built to start one Haskell thread for every core, and this machine apparently has 256 of those. |
| 08:48:42 | → | mizlan joins (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) |
| 08:49:29 | <merijn> | Athas: Nice, also, bad habit :p |
| 08:50:20 | <merijn> | A colleague ran a bunch of benchmarks on, like, 64 core machines (admittedly almost a decade ago now) where after 20-30ish capabilities things had quite some overhead |
| 08:52:22 | <Athas> | Well, is there a sensible way of handling this? I just use '+RTS -N', which launches a systems thread per core. |
| 08:53:00 | <Athas> | This machine only lets me map 64GiB of virtual memory, and apparently that is not enough for 256 GHC threads. |
| 08:53:38 | <Athas> | I can just hardcode it to a lower limit - it's unlikely this Haskell program will scale beyond say 16 threads - but that seems hacky. |
| 08:54:12 | <freeside> | 640K ought to be enough for anybody. |
| 08:54:31 | <merijn> | Athas: you can control -N from code |
| 08:54:44 | <merijn> | getNumProcessors + setNumCapabilities |
| 08:55:04 | <merijn> | add some sensible logic in between those to do, like "max(32, actual)" :p |
| 08:56:23 | <merijn> | Athas: Does it run with -N1 or does it run out of virtual memory then too? |
| 08:57:16 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 08:57:26 | × | panovia quits (~user@user/siracusa) (Quit: Bye!) |
| 08:58:58 | <Athas> | merijn: works fine up to about -N140. |
| 08:59:14 | <Athas> | It's not a particularly mysterious problem. |
| 08:59:50 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0) (Remote host closed the connection) |
| 09:00:47 | <mauke> | Athas: `+RTS -maxN16` |
| 09:01:43 | <Athas> | mauke: ah, that's nice. It also means users can override that with their own RTS options, which would not be the case if I just added my own logic in Haskell code. |
| 09:04:40 | <mauke> | assuming you compile with -rtsopts=all |
| 09:05:02 | <Athas> | I compile with plain -rtsopts, but I haven o reason to be stingy with them. |
| 09:06:42 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 09:07:42 | → | earthy joins (~arthurvl@2a02-a469-f5e2-1-ba27-ebff-fea0-40b0.fixed6.kpn.net) |
| 09:08:22 | <mastarija> | When dealing with parsers, I want to mapM a parser over a list of string, is there a standard way to collect all the results that have succeeded and drop the failures? |
| 09:08:49 | <mastarija> | Somehing like `collect :: t (f a) -> f (t a)` |
| 09:09:36 | <mastarija> | If I sequence, and any of the `f a`s has failed, the whole thing fails. |
| 09:09:38 | <c_wraith> | :t sequenceA |
| 09:09:39 | <lambdabot> | (Traversable t, Applicative f) => t (f a) -> f (t a) |
| 09:09:46 | <c_wraith> | oh |
| 09:09:57 | <mastarija> | That would stop on the first one, no? |
| 09:10:01 | <c_wraith> | yes |
| 09:10:02 | → | chele joins (~chele@user/chele) |
| 09:10:29 | <c_wraith> | It's a bit unusual to want to ignore failing parses. |
| 09:10:38 | <mastarija> | Hm..., but why `f (t a)` instead of just `f a` if it stops on the first ones? |
| 09:11:17 | × | nineonine quits (~nineonine@2604:3d08:7780:cd00:4d52:82fa:2c2:5ed4) (Remote host closed the connection) |
| 09:11:34 | <mastarija> | c_wraith: I kind of have a list of tagged union types, but they are encoded as simple strings. |
| 09:12:09 | <c_wraith> | hmm. back up a bit.. mapM is already sequence + map |
| 09:12:21 | → | shriekingnoise_ joins (~shrieking@186.137.175.87) |
| 09:12:34 | <merijn> | mastarija: Sounds like you wanna parse permutations? I think there was a library for that already |
| 09:12:37 | <mastarija> | So I have to parse the list once, and collect all the items that belong to the type T1, and then again and collect all the types that belong to the T2. |
| 09:13:28 | <c_wraith> | hmm. not clear to me if you want permutation parsing or just to parse and then sort. |
| 09:13:40 | <merijn> | mastarija: Why not have a parser that returns Either T1 T2 and just run a single parse? |
| 09:13:49 | <mastarija> | Like, T1 = T1A | T1B | T1C and T2 = T2A | T2B | T2C. |
| 09:14:26 | <mastarija> | And I have a list [T1A, T2B, T2C, T1B, ...] |
| 09:14:46 | <c_wraith> | merijn's suggestion sounds good |
| 09:14:52 | <mastarija> | And I want to parse that into a structure Struct { t1s, t2s } |
| 09:14:58 | × | shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 272 seconds) |
| 09:14:59 | <mastarija> | Yes, now that I think about it :) |
| 09:15:03 | <c_wraith> | :t partitionEithers |
| 09:15:05 | <lambdabot> | [Either a b] -> ([a], [b]) |
| 09:15:06 | <mastarija> | I can sort out eithers |
| 09:15:14 | <mastarija> | Thanks! |
| 09:16:45 | <mastarija> | Hm... I'm parsing JSON, not sure if the `Either` instance is what I want, I think they "tagg" either values. |
| 09:16:58 | <mastarija> | I'm using Aeson |
| 09:17:41 | → | MajorBiscuit joins (~MajorBisc@145.94.179.130) |
| 09:17:46 | × | zeenk quits (~zeenk@2a02:2f04:a110:ac00::fba) (Remote host closed the connection) |
| 09:18:08 | → | zeenk joins (~zeenk@2a02:2f04:a110:ac00::7fe) |
| 09:18:38 | <mastarija> | Hm.. maybe not. |
| 09:18:46 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds) |
| 09:20:32 | → | gtdg joins (~gtdg@nat-eduroam-76-gw-01-lne.lille.inria.fr) |
| 09:20:37 | × | gtdg quits (~gtdg@nat-eduroam-76-gw-01-lne.lille.inria.fr) (Changing host) |
| 09:20:37 | → | gtdg joins (~gtdg@user/gtdg) |
| 09:30:10 | × | shriekingnoise_ quits (~shrieking@186.137.175.87) (Ping timeout: 272 seconds) |
| 09:30:12 | × | nut quits (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Remote host closed the connection) |
| 09:33:34 | × | MajorBiscuit quits (~MajorBisc@145.94.179.130) (Quit: WeeChat 3.6) |
| 09:37:23 | × | chiselfuse quits (~chiselfus@user/chiselfuse) (Ping timeout: 255 seconds) |
| 09:39:57 | <VOID[m]> | Fellas, quick question. I want to use `do` notation for depth first search. I can get each element from possible by doing `n <- arr`, but I'd also need tails (because in my case order doesn't matter, but repetitions aren't allowed). I was thinking of using `tails`, just wanted to ask if anyone has a better idea, of the top of your head? |
| 09:40:20 | → | chiselfuse joins (~chiselfus@user/chiselfuse) |
| 09:41:10 | <VOID[m]> | something along the lines of `(n, t) <- zip arr (tail (tails arr))` |
| 09:41:16 | <VOID[m]> | Is it ok? Is there prettier way? |
| 09:44:07 | → | teo joins (~teo@user/teo) |
| 09:46:09 | <Athas> | VOID[m]: I have used that pattern before. |
| 09:47:45 | <Athas> | I have one of my favourite problems: linker trouble. Compiling any Haskell program fails with "collect2: fatal error: cannot find 'ld'". Now, 'ld' works fine in the command line, so I'm not sure what is going on. |
| 09:48:19 | <Athas> | I also get "Warning: Couldn't figure out linker information!" from GHC itself. But it's just GNU ld! |
| 09:48:43 | <merijn> | Athas: there's a compiler/linker config file in the GHC install |
| 09:49:01 | <merijn> | Athas: If you install the bindists yourself configure should've picked up ld |
| 09:49:21 | <Athas> | I've installed GHC from ghcup, but maybe my environment changed since... |
| 09:49:22 | <merijn> | but if you didn't run configure and your ld is in a weird place things may be borked? |
| 09:50:07 | <Athas> | Oh, I see ghcup actually warns "CC/LD environment variable is set." |
| 09:51:44 | <VOID[m]> | Athas: Thanks, in this case I'll keep it that way |
| 09:52:25 | × | talismanick quits (~talismani@2601:200:c181:8250::ce24) (Ping timeout: 256 seconds) |
| 09:53:31 | × | foul_owl quits (~kerry@157.97.134.63) (Ping timeout: 260 seconds) |
| 09:59:45 | × | zer0bitz quits (~zer0bitz@dsl-hkibng32-54fb48-32.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 10:00:18 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0) |
| 10:01:21 | → | zer0bitz joins (~zer0bitz@dsl-hkibng32-54fb48-32.dhcp.inet.fi) |
| 10:01:45 | → | MajorBiscuit joins (~MajorBisc@145.94.179.130) |
| 10:04:58 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0) (Ping timeout: 260 seconds) |
| 10:06:14 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 268 seconds) |
| 10:07:03 | → | foul_owl joins (~kerry@157.97.134.60) |
| 10:10:42 | × | [Leary] quits (~Leary]@user/Leary/x-0910699) (Remote host closed the connection) |
| 10:11:19 | → | [Leary] joins (~Leary]@user/Leary/x-0910699) |
| 10:13:13 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 10:14:09 | → | jwiegley joins (~jwiegley@2600:1700:cf00:db0:2df3:add9:d7a8:37bf) |
| 10:14:22 | → | christiansen[m] joins (~christian@2001:470:69fc:105::2:f23d) |
| 10:15:46 | <maralorn> | <sm> "maralorn: strange, https://www...." <- Yeah, I noticed. |
| 10:20:11 | × | troydm quits (~troydm@user/troydm) (Ping timeout: 252 seconds) |
| 10:26:26 | <tomsmeding> | Athas: I don't have $LD but ghcup has always worked fine for me? |
| 10:26:44 | <tomsmeding> | I also don't have $CC |
| 10:26:53 | <tomsmeding> | (though I do have `cc`) |
| 10:28:20 | <Athas> | tomsmeding: yes, exactly. It breaks when those are set. |
| 10:28:52 | <tomsmeding> | ... oh I misread the warning that you quoted |
| 10:29:06 | <tomsmeding> | makes no sense though, unless they are set to very odd values |
| 10:29:08 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 10:30:04 | × | kenran quits (~user@user/kenran) (Remote host closed the connection) |
| 10:31:04 | → | kenran joins (~user@user/kenran) |
| 10:33:16 | <merijn> | Athas: GHC's compiler and linker are set at install time and I don't think it nicely follows CC/LD unless you make it |
| 10:34:05 | <Athas> | They are probably set to odd values. This is an HPC system. |
| 10:34:35 | <Athas> | Anyway, works nicely now. |
| 10:42:56 | → | enoq joins (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) |
| 10:44:34 | → | Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net) |
| 10:46:23 | → | ccapndave joins (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch) |
| 10:49:05 | → | Guest9971 joins (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 10:49:27 | × | ccapndave quits (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch) (Client Quit) |
| 11:01:12 | → | xff0x joins (~xff0x@ai071162.d.east.v6connect.net) |
| 11:07:13 | × | gtdg quits (~gtdg@user/gtdg) (Quit: Client closed) |
| 11:09:39 | → | irrgit__ joins (~irrgit@146.70.27.242) |
| 11:10:10 | → | __monty__ joins (~toonn@user/toonn) |
| 11:12:46 | × | irrgit_ quits (~irrgit@89.47.234.74) (Ping timeout: 252 seconds) |
| 11:20:51 | × | nschoe quits (~q@141.101.51.197) (Ping timeout: 268 seconds) |
| 11:23:54 | → | gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 11:31:04 | → | jinsun__ joins (~jinsun@user/jinsun) |
| 11:31:04 | × | jinsun quits (~jinsun@user/jinsun) (Killed (zinc.libera.chat (Nickname regained by services))) |
| 11:31:04 | jinsun__ | is now known as jinsun |
| 11:34:56 | × | mechap1 quits (~mechap@user/mechap) (Ping timeout: 272 seconds) |
| 11:35:08 | × | SasoriZero quits (~SasoriZer@098-147-198-034.res.spectrum.com) (Quit: Client closed) |
| 11:36:17 | → | mechap1 joins (~mechap@user/mechap) |
| 11:50:20 | → | troydm joins (~troydm@user/troydm) |
| 12:05:03 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Remote host closed the connection) |
| 12:05:30 | <Inst> | hmmm, is there any advice for dealing with servant + blaze + postgresql-simple spaceleaks? |
| 12:05:41 | <Inst> | I have it fairly bad, 1 request = 300 kb |
| 12:06:02 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 12:08:19 | → | Umeaboy joins (~Umeaboy@94-255-145-133.cust.bredband2.com) |
| 12:08:38 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 12:12:17 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds) |
| 12:13:59 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
| 12:14:09 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 12:21:37 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Remote host closed the connection) |
| 12:27:50 | × | gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1) |
| 12:30:18 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 12:30:23 | → | oldfashionedcow joins (~Rahul_San@user/oldfashionedcow) |
| 12:32:43 | → | tremon joins (~tremon@83-85-213-108.cable.dynamic.v4.ziggo.nl) |
| 12:36:47 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 12:44:02 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 255 seconds) |
| 12:46:42 | × | Guest9971 quits (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Remote host closed the connection) |
| 12:47:53 | → | nschoe joins (~q@141.101.51.197) |
| 12:48:37 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 12:50:40 | → | califax joins (~califax@user/califx) |
| 12:58:14 | → | titibandit1 joins (~titibandi@xdsl-87-78-235-220.nc.de) |
| 13:00:54 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 13:02:28 | <Inst> | hi troydm |
| 13:07:02 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 13:13:15 | × | titibandit1 quits (~titibandi@xdsl-87-78-235-220.nc.de) (Ping timeout: 248 seconds) |
| 13:13:42 | → | titibandit1 joins (~titibandi@xdsl-87-78-235-220.nc.de) |
| 13:14:16 | <troydm> | hey Inst |
| 13:18:07 | → | epolanski joins (uid312403@id-312403.helmsley.irccloud.com) |
| 13:19:47 | → | hgolden joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com) |
| 13:20:42 | × | Guest8366 quits (uid583562@id-583562.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 13:42:28 | <[exa]> | Any advice on how to force pandoc's `writeMarkdown` to include the YAML header? The doc says "turn on standalone mode with -s" but there's no such option for writers. |
| 13:43:53 | × | hgolden quits (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
| 13:47:44 | → | Guest52 joins (~Guest52@58.171.243.251) |
| 13:48:35 | → | hgolden joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com) |
| 13:49:31 | → | bontaq joins (~user@ool-45779fe5.dyn.optonline.net) |
| 13:50:04 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 13:50:22 | → | jero98772 joins (~jero98772@2800:484:1d80:d8ce:9815:cfda:3661:17bb) |
| 13:51:20 | → | califax joins (~califax@user/califx) |
| 13:52:41 | × | mechap1 quits (~mechap@user/mechap) (Quit: WeeChat 3.7.1) |
| 13:52:43 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 13:53:16 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 13:54:36 | × | hgolden quits (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
| 13:55:24 | × | kenran quits (~user@user/kenran) (Remote host closed the connection) |
| 13:58:49 | → | mechap joins (~mechap@user/mechap) |
| 14:04:13 | → | hgolden joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com) |
| 14:10:26 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 14:10:39 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 14:12:28 | × | FurudeRika[m] quits (~chitandae@2001:470:69fc:105::1:6039) (Changing host) |
| 14:12:28 | → | FurudeRika[m] joins (~chitandae@user/FurudeRika) |
| 14:12:47 | → | califax joins (~califax@user/califx) |
| 14:18:15 | → | kurbus joins (~kurbus@user/kurbus) |
| 14:18:32 | → | thegeekinside joins (~thegeekin@189.217.82.244) |
| 14:28:40 | → | n0den1te joins (~n0den1te@223.178.82.174) |
| 14:28:43 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 14:35:15 | <Inst> | does anyone have experience with servant? |
| 14:35:34 | <maerwald> | half of all haskellers |
| 14:35:49 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Remote host closed the connection) |
| 14:36:03 | <Inst> | i'm trying to figure out why servant is chewing up another 400 kb of ram every time i push a request to it, and this is with a toy program |
| 14:36:08 | <Inst> | is servant known to leak like this? |
| 14:36:32 | <Inst> | i already stuffed strict and strict data on all the files associated with it |
| 14:37:09 | × | foul_owl quits (~kerry@157.97.134.60) (Ping timeout: 260 seconds) |
| 14:37:19 | × | tstat quits (~tstat@user/tstat) (Quit: ZNC 1.8.2 - https://znc.in) |
| 14:38:07 | <Inst> | or could it be a windows only thing? |
| 14:39:27 | <lortabac> | I have been using Servant for years in production, it has never caused a leak |
| 14:39:46 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 14:40:11 | <lortabac> | of course it can't be excluded, but I'd start by looking at what the handlers are doing |
| 14:40:44 | <merijn> | Inst: depends what you're doing with said requests... |
| 14:40:59 | <Inst> | could be blaze instead |
| 14:41:16 | <Inst> | i have 3 endpoints, one just gives you instructions, two gives you instructions, but connects to an sql server and drags data from there |
| 14:41:24 | <lortabac> | regarding strict data, IME leaks due to laziness are much rarer than people think |
| 14:41:35 | <Inst> | it's possible that it's just because i'm using |
| 14:41:51 | <Inst> | import Web.FormUrlEncoded <--- which I have never heard of |
| 14:41:51 | <lortabac> | most of the time it's things like an ever-growing cache or connection-pool |
| 14:43:55 | <Inst> | why would it be cache? tbh, I can probably test it by disconnecting the straight HTML API and just having it produce some numbers instead |
| 14:44:24 | <Inst> | could it also be that i'm not closing my SQL handles? |
| 14:44:40 | <lortabac> | Inst: yes, that's much more likely than Servant itself |
| 14:45:57 | → | CiaoSen joins (~Jura@p200300c9574fa4002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 14:48:15 | × | razetime quits (~Thunderbi@117.254.34.41) (Remote host closed the connection) |
| 14:49:46 | → | kenran joins (~user@user/kenran) |
| 14:50:04 | → | shriekingnoise joins (~shrieking@186.137.175.87) |
| 14:50:04 | × | kenran quits (~user@user/kenran) (Remote host closed the connection) |
| 14:52:47 | → | foul_owl joins (~kerry@157.97.134.62) |
| 14:54:19 | × | n0den1te quits (~n0den1te@223.178.82.174) (Quit: leaving) |
| 14:56:45 | × | zer0bitz quits (~zer0bitz@dsl-hkibng32-54fb48-32.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 14:59:04 | → | bhrgunatha joins (~bhrgunath@2001-b011-8005-2149-f5be-404a-a930-4185.dynamic-ip6.hinet.net) |
| 15:00:06 | × | bhrgunatha quits (~bhrgunath@2001-b011-8005-2149-f5be-404a-a930-4185.dynamic-ip6.hinet.net) (Client Quit) |
| 15:00:14 | → | zer0bitz joins (~zer0bitz@dsl-hkibng32-54fb48-32.dhcp.inet.fi) |
| 15:00:50 | <Inst> | okay, this is dumb |
| 15:01:08 | <Inst> | bypassServer :: Server BypassAPI |
| 15:01:08 | <Inst> | bypassServer |
| 15:01:08 | <Inst> | = pure "2394820384290384920384092384920384920389402839402739472309472093472934072934702937402" |
| 15:01:15 | <Inst> | type BypassAPI |
| 15:01:16 | <Inst> | = "index" :> Get '[HTML] Html |
| 15:01:17 | <Inst> | what |
| 15:01:25 | <merijn> | Inst: Also, how are you measuring the memory usage? |
| 15:01:50 | <Inst> | wait, maybe this is just my misunderstanding of the runtime or something? |
| 15:02:38 | <Inst> | the memory usage measured in Windows Task manager goes up +60 every time I call the endpoint |
| 15:03:11 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 264 seconds) |
| 15:03:16 | <Inst> | +60 kb |
| 15:03:56 | × | shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 272 seconds) |
| 15:04:40 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0) |
| 15:05:39 | <merijn> | I don't even know what windows task manager displays |
| 15:06:22 | → | gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 15:07:00 | <merijn> | You want to know how much resident memory you have (which you can report with +RTS -s) |
| 15:07:35 | shapr` | is now known as shapr |
| 15:09:35 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0) (Ping timeout: 260 seconds) |
| 15:10:33 | <Inst> | someone told me that in linux, linux resource manager won't GC until you run out of memory |
| 15:10:37 | <int-e> | @@ abc |
| 15:10:37 | <lambdabot> | abc |
| 15:10:52 | <int-e> | @. @ @ abc |
| 15:10:52 | <lambdabot> | abc |
| 15:10:54 | <int-e> | yay |
| 15:11:07 | <int-e> | @? abc |
| 15:11:07 | <lambdabot> | abc |
| 15:11:20 | <geekosaur> | still think I forgot to document that |
| 15:11:54 | <int-e> | Sorry actually, I meant to do that elsewhere. |
| 15:12:30 | <Inst> | on windows, the appearance is "active private working set" on the log |
| 15:12:36 | → | shriekingnoise joins (~shrieking@186.137.175.87) |
| 15:12:40 | <lortabac> | Inst: if you use ekg you can easily see the graph of memory usage, otherwise try to profile with GHC's memory profiler |
| 15:12:59 | <lortabac> | I wouldn't use the OS to debug a memory leak |
| 15:15:53 | <Inst> | yeah, it's probably just an issue with allocations and the OS isn't reliable in that regard |
| 15:15:54 | × | thongpv87 quits (~thongpv87@103.199.71.100) (Remote host closed the connection) |
| 15:16:03 | × | kurbus quits (~kurbus@user/kurbus) (Quit: Client closed) |
| 15:16:10 | <lortabac> | Inst: https://downloads.haskell.org/ghc/latest/docs/users_guide/hints.html#hints-os-memory |
| 15:16:10 | <Inst> | profiler shows 38560 max residency for the simple case |
| 15:16:35 | → | thongpv joins (~thongpv87@2402:9d80:307:760e:3c34:cc21:e6b2:3db) |
| 15:16:37 | <lortabac> | Inst: https://downloads.haskell.org/ghc/latest/docs/users_guide/runtime_control.html?highlight=disable%20delayed%20os%20memory%20return#rts-flag---disable-delayed-os-memory-return |
| 15:16:45 | <Inst> | i saw |
| 15:16:48 | <Inst> | thanks |
| 15:17:10 | × | titibandit1 quits (~titibandi@xdsl-87-78-235-220.nc.de) (Quit: Leaving.) |
| 15:18:23 | → | xff0x_ joins (~xff0x@2405:6580:b080:900:2f22:406e:df40:398b) |
| 15:21:40 | × | xff0x quits (~xff0x@ai071162.d.east.v6connect.net) (Ping timeout: 272 seconds) |
| 15:21:45 | <Inst> | anyways, thanks, i think the memory residency based off reports is now normal |
| 15:23:16 | × | oldfashionedcow quits (~Rahul_San@user/oldfashionedcow) (Read error: Connection reset by peer) |
| 15:25:13 | × | Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net) (Ping timeout: 260 seconds) |
| 15:27:58 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 15:30:54 | <geekosaur> | okay, now @@ is documented. |
| 15:31:02 | × | Guest52 quits (~Guest52@58.171.243.251) (Quit: Client closed) |
| 15:31:18 | → | cheater_ joins (~Username@user/cheater) |
| 15:32:18 | → | Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net) |
| 15:34:54 | × | cheater quits (~Username@user/cheater) (Ping timeout: 260 seconds) |
| 15:34:55 | cheater_ | is now known as cheater |
| 15:38:44 | → | Batzy joins (~quassel@user/batzy) |
| 15:40:15 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 15:42:20 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds) |
| 15:43:22 | → | cheater_ joins (~Username@user/cheater) |
| 15:44:38 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 15:45:42 | × | cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds) |
| 15:45:47 | cheater_ | is now known as cheater |
| 15:49:39 | × | mei quits (~mei@user/mei) (Quit: mei) |
| 15:50:01 | → | mei joins (~mei@user/mei) |
| 15:54:00 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 15:59:39 | → | titibandit1 joins (~titibandi@xdsl-87-78-235-220.nc.de) |
| 16:00:38 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Quit: ZNC 1.8.2 - https://znc.in) |
| 16:01:27 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 16:07:47 | → | cheater_ joins (~Username@user/cheater) |
| 16:08:32 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 272 seconds) |
| 16:10:23 | × | cheater quits (~Username@user/cheater) (Ping timeout: 256 seconds) |
| 16:10:32 | cheater_ | is now known as cheater |
| 16:16:14 | × | titibandit1 quits (~titibandi@xdsl-87-78-235-220.nc.de) (Remote host closed the connection) |
| 16:18:02 | × | MajorBiscuit quits (~MajorBisc@145.94.179.130) (Ping timeout: 272 seconds) |
| 16:20:22 | → | cheater_ joins (~Username@user/cheater) |
| 16:21:13 | × | cheater quits (~Username@user/cheater) (Ping timeout: 260 seconds) |
| 16:21:17 | cheater_ | is now known as cheater |
| 16:23:59 | → | MajorBiscuit joins (~MajorBisc@145.94.179.130) |
| 16:25:49 | → | acidjnk joins (~acidjnk@p200300d6e715c423cc17ec598020e768.dip0.t-ipconnect.de) |
| 16:29:06 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:4c7a:8e07:664d:5b65) (Quit: WeeChat 2.8) |
| 16:32:57 | → | acidjnk_new joins (~acidjnk@p200300d6e715c423f492b91f65fccc9f.dip0.t-ipconnect.de) |
| 16:33:20 | × | acidjnk quits (~acidjnk@p200300d6e715c423cc17ec598020e768.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 16:35:53 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 16:36:03 | → | econo joins (uid147250@user/econo) |
| 16:36:43 | × | avicenzi quits (~avicenzi@2a00:ca8:a1f:b004::c32) (Ping timeout: 260 seconds) |
| 16:37:18 | <jean-paul[m]> | Why is fourmolu adding \ escapes to my haddock markup? |
| 16:38:00 | → | tstat joins (~tstat@user/tstat) |
| 16:42:11 | <jean-paul[m]> | Hm. Because it appears in places haddock doesn't look, it would seem. |
| 16:42:52 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0) |
| 16:44:44 | × | mizlan quits (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) (Ping timeout: 252 seconds) |
| 16:45:01 | → | jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 16:45:02 | → | kurbus joins (~kurbus@user/kurbus) |
| 16:48:11 | × | jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 264 seconds) |
| 16:52:02 | × | fserucas quits (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Remote host closed the connection) |
| 16:54:14 | → | shriekingnoise_ joins (~shrieking@186.137.175.87) |
| 16:54:23 | × | abhixec quits (~abhinav@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
| 16:55:05 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 268 seconds) |
| 16:57:11 | × | shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 264 seconds) |
| 16:59:14 | → | kenaryn joins (~aurele@89-88-44-27.abo.bbox.fr) |
| 16:59:27 | → | SasoriZero joins (~SasoriZer@098-147-198-034.res.spectrum.com) |
| 17:02:58 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 17:08:14 | × | MajorBiscuit quits (~MajorBisc@145.94.179.130) (Ping timeout: 260 seconds) |
| 17:10:05 | × | kurbus quits (~kurbus@user/kurbus) (Quit: Client closed) |
| 17:10:25 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0) (Remote host closed the connection) |
| 17:12:09 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 256 seconds) |
| 17:12:41 | × | opticblast quits (~Thunderbi@secure-165.caltech.edu) (Quit: opticblast) |
| 17:13:07 | → | opticblast joins (~Thunderbi@secure-165.caltech.edu) |
| 17:14:58 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 17:15:09 | × | segfaultfizzbuzz quits (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Quit: segfaultfizzbuzz) |
| 17:15:30 | → | segfaultfizzbuzz joins (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) |
| 17:15:30 | segfaultfizzbuzz | is now known as rustisafungus |
| 17:16:25 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 17:17:22 | × | CiaoSen quits (~Jura@p200300c9574fa4002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 17:19:37 | × | mcglk quits (~mcglk@131.191.49.120) (Read error: Connection reset by peer) |
| 17:21:36 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 268 seconds) |
| 17:22:29 | → | Guest|56 joins (~Guest|56@77.234.44.164) |
| 17:22:56 | × | Guest|56 quits (~Guest|56@77.234.44.164) (Client Quit) |
| 17:26:19 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 260 seconds) |
| 17:26:49 | × | enoq quits (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq) |
| 17:28:22 | × | alfonsox quits (~quassel@103.87.57.33) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 17:30:22 | × | mbuf quits (~Shakthi@49.204.135.44) (Quit: Leaving) |
| 17:31:58 | × | kenaryn quits (~aurele@89-88-44-27.abo.bbox.fr) (Quit: leaving) |
| 17:34:04 | → | mcglk joins (~mcglk@131.191.49.120) |
| 17:34:10 | → | kurbus joins (~kurbus@user/kurbus) |
| 17:37:32 | × | kurbus quits (~kurbus@user/kurbus) (Client Quit) |
| 17:38:47 | × | teo quits (~teo@user/teo) (Ping timeout: 246 seconds) |
| 17:40:29 | × | acidjnk_new quits (~acidjnk@p200300d6e715c423f492b91f65fccc9f.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 17:40:59 | → | Tuplanolla joins (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) |
| 17:41:02 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 17:47:51 | → | freeside_ joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 17:47:53 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 17:49:39 | × | freeside quits (~mengwong@103.252.202.159) (Ping timeout: 260 seconds) |
| 17:51:02 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds) |
| 17:52:43 | × | ncf quits (~n@monade.li) (Quit: Fairfarren.) |
| 17:52:57 | → | ncf joins (~n@monade.li) |
| 17:53:09 | → | kurbus joins (~kurbus@user/kurbus) |
| 17:57:28 | → | eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
| 18:03:38 | × | nschoe quits (~q@141.101.51.197) (Ping timeout: 246 seconds) |
| 18:06:53 | × | zeenk quits (~zeenk@2a02:2f04:a110:ac00::7fe) (Quit: Konversation terminated!) |
| 18:11:11 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 18:11:47 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 18:14:01 | <raehik> | If I ask `cabal -O2`, will it perform optimizations for all my dependencies too? |
| 18:15:18 | <geekosaur> | no. you need to put that in your `cabal.project` |
| 18:15:50 | <geekosaur> | https://github.com/geekosaur/xmonad.hs/blob/skkukuk/cabal.project |
| 18:16:47 | <geekosaur> | (you don't need the `-g`, that's leftover from trying to diagnose what turned out to be a ghc bug) |
| 18:18:10 | <raehik> | ty. what if I want to optimize one build but not others? like `cabal test` can be -O1 or -O0, but building an exe should be -O2 |
| 18:18:54 | <raehik> | (also is there a diff between -O1 and -O2) |
| 18:19:17 | → | acidjnk_new joins (~acidjnk@p200300d6e715c419193affabe67df89f.dip0.t-ipconnect.de) |
| 18:19:33 | <geekosaur> | there's a difference, but mostly that -O2 takes much longer to build. it doesn't usually gain you much |
| 18:19:35 | <sclv> | O1 is "normal" O2 is "lots, even at the cost of code size and compilation speed" and O0 is "optimize for compilation speed" |
| 18:20:08 | <sclv> | for optimizing different builds you just need to pass the flag explicitly on the command line |
| 18:20:29 | <sclv> | but typically once you have the lib built at one opt level you should leave it for the test suite, so that the lib doesn't get rebuilt at a new opt level |
| 18:20:39 | <geekosaur> | if you want to change it per kind of build, have multiple `cabal.project` files. like cabal itself has a `cabal.project.release` you use to build releases instead of for development |
| 18:21:15 | <geekosaur> | hm, guess that depends on how thorough you want to be and what other options you miht want to change |
| 18:22:03 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Remote host closed the connection) |
| 18:23:45 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 18:24:19 | <raehik> | ooer crash. thanks geekosaur and sclv |
| 18:24:34 | <eldritchcookie[4> | how does the CApi calling convention work it claims to be able to import values defined as macros, what if i have something like AL_FUNC(return type,function called, more stuff i have no idea about ) would i be able to import that ? |
| 18:25:26 | <geekosaur> | it builds a C stub, so it can do whatever C can do. the old `ccall` api, when used with `-fasm`, just attempts a direct call to it as if it were a function available via asm |
| 18:25:29 | <glguy> | eldritchcookie[4: it doesn't import anything; it makes a little C stub that it compiles with a C compiler |
| 18:31:44 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 18:33:57 | → | ec__ joins (~ec@gateway/tor-sasl/ec) |
| 18:34:14 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds) |
| 18:34:29 | <raehik> | if anyone here uses haskell-flake or Nix with haskell: how can I configure flags for my Nix builds? can I ask it to disable optimizations for all pkgs for a build? |
| 18:35:06 | × | SasoriZero quits (~SasoriZer@098-147-198-034.res.spectrum.com) (Quit: Client closed) |
| 18:35:23 | → | SasoriZero joins (~SasoriZer@098-147-198-034.res.spectrum.com) |
| 18:37:50 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds) |
| 18:39:43 | <raehik> | Nix somehow produces outstandingly tiny binaries compared to regular `cabal build` wish I knew what went on in there. mostly opts and symbol (?) stripping but it still saved space after disabling them |
| 18:40:10 | <merijn> | raehik: Is Nix using dynamic linking by default? |
| 18:40:19 | <merijn> | raehik: That'd cut down a lot without actually cutting down |
| 18:40:55 | <merijn> | raehik: Also, are you using split-objs? |
| 18:41:12 | <geekosaur> | split-sections these days, works better and is a lot faster |
| 18:41:21 | <merijn> | eh, yeah |
| 18:41:33 | <merijn> | I meant split-sections, I even checked and then my brain typed the wrong one |
| 18:41:38 | <raehik> | `ldd` output on both looks the same. unsure about split-objs etc |
| 18:42:09 | <merijn> | raehik: split-sections lets the linker include only what is used from a library (including transitively), leading to dramatic shrinkage |
| 18:43:57 | <raehik> | interesting, looks like nix's haskell tooling enables it with enableDeadCodeElimination flag |
| 18:43:57 | × | dagit quits (~dagit@2001:558:6025:38:6476:a063:d05a:44da) (Read error: Connection reset by peer) |
| 18:44:16 | → | dagit joins (~dagit@2001:558:6025:38:6476:a063:d05a:44da) |
| 18:45:03 | <raehik> | are these not default otherwise? they seem like comfortable wins |
| 18:48:18 | <geekosaur> | possibly -split-sections should be on platforms/object file formats that support it (ELF, eCOFF) |
| 18:48:59 | <geekosaur> | it does have the downside that those unused parts won't be available from ghci or other effectively dynamic calls (e.g. plugins package) |
| 18:49:51 | <merijn> | raehik: Not default, no |
| 18:50:14 | <merijn> | at least not when I last checked a few years back |
| 18:50:55 | <geekosaur> | a ghc issue might be appropriate (probably not a proposal, wrong level) |
| 18:52:40 | <geekosaur> | there was good reason for -split-objs to not be default (it slowed linking down a whole lot); I think that was simply carried over without really revisiting whether it was still a factor |
| 18:52:43 | <raehik> | last thing I'm confused about, regardless of `optimization: X` in cabal.project.local, the build products all link to the same libs (in the Nix store). pre-Nix I was used to a change like that making evvverything recompile |
| 18:53:19 | <geekosaur> | it is possible that you need something like `package *\n optimization: 2` |
| 18:53:27 | <geekosaur> | I haven't checked |
| 18:53:34 | <geekosaur> | sclv? |
| 18:54:20 | <merijn> | Or in ~/.cabal/config :p |
| 19:01:19 | → | mizlan joins (~mizlan@2607:f010:2e9:21:181d:5524:60f4:7388) |
| 19:02:32 | <raehik> | guess this hardly matters because Hackage pkgs on Nix are almost certainly built with -O1 and not needing to rebuild to use with -O0 is fine by me. just confused how Nix can do so much without being told to |
| 19:05:37 | × | kurbus quits (~kurbus@user/kurbus) (Quit: Client closed) |
| 19:07:45 | × | epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
| 19:10:43 | <davean> | I don't know about currently, but nix use to rip out VERY important things ... like my dependency constraint on 'directory' |
| 19:10:50 | <davean> | it might just be ripping it out |
| 19:11:19 | <davean> | (This caused me dataloss) |
| 19:14:01 | <raehik> | rip out? like ignore? that's surprising |
| 19:14:05 | <davean> | YEP! |
| 19:14:29 | <davean> | Just deleted the constraint, assumed the version of directory with the compiler would always be fine |
| 19:15:17 | <davean> | *I'd specificly gotten directory fixed because it was not fine and required the fixed version* - there *was* an entire set of packages they just trusted to not need version bounds |
| 19:18:05 | <davean> | I don't know if they stopped or not but I will never stop being angry about that |
| 19:20:00 | × | troydm quits (~troydm@user/troydm) (Ping timeout: 268 seconds) |
| 19:20:10 | → | CiaoSen joins (~Jura@p200300c9574fa4002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 19:25:16 | <sclv> | geekosaur: that sounds right about setting that in cabal.project.local. its not a nix thing afaik but cabal changed the scope of ghc-options to be local by default unless otherwise speciied |
| 19:33:35 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 19:35:00 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 19:37:39 | → | kuribas joins (~user@d51529C17.access.telenet.be) |
| 19:38:43 | × | jero98772 quits (~jero98772@2800:484:1d80:d8ce:9815:cfda:3661:17bb) (Ping timeout: 260 seconds) |
| 19:38:43 | × | kuribas quits (~user@d51529C17.access.telenet.be) (Read error: Connection reset by peer) |
| 19:38:55 | × | mizlan quits (~mizlan@2607:f010:2e9:21:181d:5524:60f4:7388) (Ping timeout: 256 seconds) |
| 19:39:32 | → | jero98772 joins (~jero98772@2800:484:1d80:d8ce:9815:cfda:3661:17bb) |
| 19:43:00 | → | mizlan joins (~mizlan@2607:f010:2e9:21:181d:5524:60f4:7388) |
| 19:43:25 | <eldritchcookie[4> | how can i get all declarations of a module with template haskell? |
| 19:44:30 | <geekosaur> | (a) your TH would need to be at the very end of the file, since it's executed as the file is compiled (b) you would need to look at the ghc api to see how to get at everything in the current AST |
| 19:48:24 | <geekosaur> | for practical examples, try looking at one of the test frameworks that includes autodiscovery of embedded tests |
| 19:49:48 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 19:50:57 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 19:51:36 | <geekosaur> | for example https://github.com/nick8325/quickcheck/blob/master/src/Test/QuickCheck/All.hs |
| 19:51:45 | → | son0p joins (~ff@2800:e2:f80:867:8077:75e8:74b:f48d) |
| 19:51:50 | × | mizlan quits (~mizlan@2607:f010:2e9:21:181d:5524:60f4:7388) (Ping timeout: 246 seconds) |
| 19:55:16 | × | freeside_ quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds) |
| 19:58:40 | <eldritchcookie[4> | how can i partially apply a function at compile time? |
| 19:58:47 | → | gmg joins (~user@user/gehmehgeh) |
| 19:59:32 | <Rembane> | eldritchcookie[4: f x y = x + y; g y = f 7 y |
| 20:01:36 | × | crns quits (~netcrns@user/crns) (Ping timeout: 272 seconds) |
| 20:03:06 | → | crns joins (~netcrns@p4ff5e2c3.dip0.t-ipconnect.de) |
| 20:03:06 | × | crns quits (~netcrns@p4ff5e2c3.dip0.t-ipconnect.de) (Changing host) |
| 20:03:06 | → | crns joins (~netcrns@user/crns) |
| 20:03:18 | <int-e> | which you can write as g = f 7 (with some caveats regarding type signatures in light of the monomorphism restriction) |
| 20:04:21 | <int-e> | (Regarding `f` as a two-argument function, `f 7 y` isn't actually a partial application here. But `f 7` is.) |
| 20:04:51 | × | CiaoSen quits (~Jura@p200300c9574fa4002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 20:06:03 | × | Inst quits (~Inst@2601:6c4:4081:54f0:e9bd:b9a0:edd8:a4) (Ping timeout: 248 seconds) |
| 20:06:10 | × | eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 20:13:04 | → | panovia joins (~user@user/siracusa) |
| 20:25:32 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
| 20:26:20 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 20:26:51 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 20:37:45 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:40:14 | → | troydm joins (~troydm@user/troydm) |
| 20:46:30 | × | SasoriZero quits (~SasoriZer@098-147-198-034.res.spectrum.com) (Quit: Client closed) |
| 20:48:25 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0) |
| 20:51:00 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 20:54:09 | × | trev quits (~trev@user/trev) (Remote host closed the connection) |
| 20:55:56 | → | kurbus joins (~kurbus@user/kurbus) |
| 20:59:45 | <mastarija> | I'm trying to organize my understanding of Functor, Applicative, Monad relationship a bit. |
| 21:00:16 | <mastarija> | We can say that functor can bring a function into another domain, right e.g. (a -> b) -> (f a -> f b) |
| 21:00:35 | <lyxia> | sure |
| 21:01:20 | <merijn> | mastarija: The link is that the functor interface is a subset of the monad interface (i.e. it is less powerful) and as a result the things that *are* functors is a superset of things that are monads |
| 21:01:21 | <mastarija> | Applicative is an upgrade because it allows us to apply arguments from that new domain to a lifted function e.g. f (a -> b) -> f a -> f b |
| 21:01:48 | → | oldfashionedcow joins (~Rahul_San@user/oldfashionedcow) |
| 21:02:17 | <mastarija> | Now, I remember there was nice comparison of fmap, and <*> and how "symetrical" they are |
| 21:02:47 | <mastarija> | But I also remember bind was in that comparison, but somehow when I look at them together bind is not really similar |
| 21:02:48 | → | SasoriZero joins (~SasoriZer@098-147-198-034.res.spectrum.com) |
| 21:03:02 | <merijn> | "fmap f x = pure f <*> x" |
| 21:03:25 | × | kurbus quits (~kurbus@user/kurbus) (Quit: Client closed) |
| 21:03:49 | <mastarija> | Yes, I get that more powerul things can implement less powerful ones. |
| 21:03:50 | <mauke> | bind :: (a -> f b) -> f a -> f b |
| 21:04:13 | <mastarija> | hm... is it not the other way around? |
| 21:04:25 | <mauke> | technically, yes |
| 21:04:32 | <mastarija> | f a -> (a -> f b) -> f b |
| 21:04:32 | <mauke> | :t (=<<) |
| 21:04:34 | <lambdabot> | Monad m => (a -> m b) -> m a -> m b |
| 21:04:44 | <lyxia> | mastarija: a comparison like this? https://en.wikibooks.org/wiki/Haskell/Applicative_functors#A_sliding_scale_of_power |
| 21:04:55 | <mauke> | @src =<< |
| 21:04:55 | <lambdabot> | f =<< x = x >>= f |
| 21:05:29 | <mastarija> | lyxia: yes :) |
| 21:05:35 | <mauke> | it's simply swapping the order of arguments, nothing fancy |
| 21:06:03 | <geekosaur> | :t (>=>) |
| 21:06:04 | <lambdabot> | Monad m => (a -> m b) -> (b -> m c) -> a -> m c |
| 21:06:16 | <mauke> | you could also think of it as f =<< x = join (fmap f x) |
| 21:06:16 | <mastarija> | Also, what can we say about the "meaning" of applicative and monad. I remember that applicative represents paralel actions, and monad represents sequential actions |
| 21:06:44 | <mastarija> | Any resource that expands on that interpretation? |
| 21:06:50 | <mauke> | (where join embodies the secret power of monads) |
| 21:07:46 | <mastarija> | so, the main thing of monads is that we are able to pull out nested monad out? |
| 21:08:05 | <geekosaur> | mastarija, the operations combined by <*> don't depend on each other, so they can be parallelized; >>= explicitly makes one depend on the other, so they must be done in sequence |
| 21:08:09 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 21:08:54 | <mauke> | well, we can merge layers of nesting |
| 21:08:55 | <mauke> | we can't make them go away completely |
| 21:08:57 | <mastarija> | yes, that makes sense. I was just wondering if there's something more? |
| 21:09:05 | <geekosaur> | but that very dependency is why Monad is stronger in some sense than Applicative |
| 21:09:40 | <mastarija> | geekosaur: you mean that next step depends on the previous one? |
| 21:09:46 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds) |
| 21:09:51 | <geekosaur> | yes. because Monad can now "make decisions" |
| 21:09:59 | <geekosaur> | whereas Applicative can't |
| 21:10:24 | <mastarija> | Aha... that's the kind of explanation I was looking for :) |
| 21:12:02 | <mastarija> | Thanks! |
| 21:13:19 | <mauke> | do applicative parsers correspond to context-free grammars? |
| 21:13:55 | <mastarija> | So, in the same sense that monad is more powerful than applicative because it can make decisions, what makes applicative more powerful than a functor? |
| 21:14:00 | <geekosaur> | I think so? seems to go along with individual parsers not being able to see each others' results |
| 21:14:03 | <dolio> | No, because laziness. |
| 21:14:34 | <mastarija> | Other than ability to apply lifted function to lifted arguments? |
| 21:14:52 | <geekosaur> | mastarija, because they can be done (or can be thought of as being done, but I think Simon Marlow has actual parallelism via Applicative) in parallel |
| 21:15:24 | <geekosaur> | not being dependent on each other is a different kind of power |
| 21:15:33 | <merijn> | oh |
| 21:15:37 | <mastarija> | What do you mean by being done? |
| 21:15:43 | <merijn> | Go read the Selective Functor paper |
| 21:15:52 | <tomsmeding> | was just going to post https://hackage.haskell.org/package/selective-0.5/docs/Control-Selective.html |
| 21:15:53 | <merijn> | That has a nice table and explanation :p |
| 21:16:13 | <tomsmeding> | more powerful than Applicative, but not quite as powerful as Monad |
| 21:16:23 | <tomsmeding> | in the sense of "making decisions" |
| 21:16:38 | <mastarija> | Hm... the linked paper no longer exists |
| 21:16:44 | <mastarija> | Is the documentation enough? |
| 21:16:49 | <merijn> | Google Scholar selective functors |
| 21:16:58 | <geekosaur> | try the wayback machine? |
| 21:17:15 | <merijn> | https://scholar.google.com/scholar?cluster=7696894104468042395&hl=en&as_sdt=0,5 |
| 21:17:20 | <tomsmeding> | https://dl.acm.org/doi/pdf/10.1145/3341694 |
| 21:17:26 | <mastarija> | Thx |
| 21:19:56 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 21:20:21 | <mastarija> | I don't quite get what they mean by "static visibility and analysis of effects" why can applicative and selective do that and monad can't? |
| 21:20:38 | <mastarija> | Don't we have things like `try` and `catch`? |
| 21:21:06 | <tomsmeding> | mastarija: if you have some computation 'f :: Monad m => Int -> m Int', then you cannot trace the entire function |
| 21:21:22 | <tomsmeding> | because if it uses >>=, then you must have the input value for that >>= in order to be able to run the continuation |
| 21:21:31 | <tomsmeding> | but in tracing your input value is symbolic, so that doesn't work |
| 21:21:47 | <tomsmeding> | with Applicative, no such dependencies exist, so you can trace all you like |
| 21:22:05 | <tomsmeding> | Selective allows the same tracing because it does not guarantee that the selected-out effects are not performed |
| 21:22:27 | <tomsmeding> | (this is described in the haddocks as well as, presumably, in the paper) |
| 21:22:51 | <mastarija> | Hm.. having a hard time understanding it. |
| 21:23:08 | <tomsmeding> | I'm having a hard time understanding my own example lol |
| 21:23:32 | × | hgolden quits (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
| 21:23:33 | <tomsmeding> | ah, I guess this is better: 'f :: Monad m => m Int -> m Int' |
| 21:24:14 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds) |
| 21:24:28 | <tomsmeding> | if 'f' goes 'f act = act >>= \x -> if x == 12345 then return 1 else return 0', but you have only f as a black box, how are you going to find out that it can also return something else than 0? |
| 21:24:35 | <tomsmeding> | apart from sheer luck |
| 21:26:42 | <tomsmeding> | hm example is also flawed |
| 21:26:47 | <tomsmeding> | it's too late here, someone else can explain :D |
| 21:26:57 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 21:26:58 | <mastarija> | I'll have to think about this a bit harder, plus it's late :) |
| 21:27:00 | <lyxia> | mauke: you can applicative-parse any recursively enumerable language by enumerating its words and "asum" them. |
| 21:27:47 | <mauke> | is that like an infinite grammar? |
| 21:27:50 | <lyxia> | you only get context-free-ness if you're not allowed to make functions (a -> Parser b) |
| 21:27:56 | <lyxia> | yeah |
| 21:28:41 | → | hgolden joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com) |
| 21:29:22 | <lyxia> | Each nonterminal symbol in a grammar could correspond to a "Parser a", but (a -> Parser b) lets you construct a grammar with infinitely many nonterminals |
| 21:30:55 | → | chaitlatte0 joins (6623d1650e@user/chaitlatte0) |
| 21:32:48 | → | caryhartline joins (~caryhartl@2600:1700:2d0:8d30:c1fe:ec76:ecb9:a42c) |
| 21:33:28 | × | chaitlatte0 quits (6623d1650e@user/chaitlatte0) (Remote host closed the connection) |
| 21:33:37 | → | chaitlatte0 joins (6623d1650e@user/chaitlatte0) |
| 21:33:39 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds) |
| 21:34:13 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 21:34:13 | × | Vajb quits (~Vajb@2001:999:78d:d7:457c:7773:573e:6903) (Read error: Connection reset by peer) |
| 21:34:22 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) |
| 21:34:41 | <mauke> | I don't know if I've got this right, but re: static effects |
| 21:34:42 | <mauke> | imagine something like `(readLn :: IO Integer) >>= foo` |
| 21:35:23 | <mauke> | depending on the (arbitrarily large) value produced by readLn, foo can assemble any sort of effects it likes |
| 21:36:13 | <mauke> | from no effects (return x) to all the effects (delete all your files, then produce an infinite stream of bytes on stdout) and anything in between |
| 21:36:54 | <mauke> | and because of the monadic interface, foo gets to make this choice dynamically, at runtime |
| 21:38:19 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 21:39:07 | <mauke> | whereas with Applicative you get to do computation on the incoming value, but it can't affect the effects |
| 21:39:10 | <mauke> | great sentence |
| 21:40:41 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 21:42:36 | → | dsrt^ joins (~dsrt@76.145.190.81) |
| 21:43:26 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: leaving) |
| 21:43:53 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 21:44:00 | → | king_gs joins (~Thunderbi@2806:103e:29:45ac:af0:afaf:29e7:dd60) |
| 21:44:11 | × | pyrex quits (~pyrex@user/pyrex) (Ping timeout: 248 seconds) |
| 21:45:08 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Client Quit) |
| 21:45:54 | <tomsmeding> | right, I was trying to show that with a function that doesn't do any effects, you can still see a difference between Monad and Applicative. But you can't, the point is that the _effects_ can depend on the values (Monad) or not (Applicative) |
| 21:46:18 | <tomsmeding> | and with Selective, they can sortof, but the a |
| 21:46:52 | <tomsmeding> | *but the laws allow you to run the computation executing _all_ effects, i.e. disabling the effect the values have on the effects |
| 21:46:54 | × | irrgit__ quits (~irrgit@146.70.27.242) (Remote host closed the connection) |
| 21:47:01 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 21:47:17 | <tomsmeding> | talking about how values affect effects, i.e. how they have effects on effects, is confusing |
| 21:47:24 | <tomsmeding> | :t confusing |
| 21:47:26 | <lambdabot> | Applicative f => LensLike (Data.Functor.Day.Curried.Curried (Data.Functor.Yoneda.Yoneda f) (Data.Functor.Yoneda.Yoneda f)) s t a b -> LensLike f s t a b |
| 21:47:46 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 21:47:52 | → | irrgit__ joins (~irrgit@86.106.90.226) |
| 21:48:54 | → | Vajb joins (~Vajb@2001:999:78d:d7:457c:7773:573e:6903) |
| 21:51:11 | <tomsmeding> | for IO, the question could be: can this computation at some point decide to delete all my files? For Parser, it could be: does the parser ever use the 'satisfy' primitive? For some parallelism monad, it could be: how wide is the potential parallelism? |
| 21:51:55 | <tomsmeding> | with applicatives, you can answer those questions; with Selective, you can check whether it _potentially_ does so. With Monad, you have no clue after the first >>= |
| 21:52:25 | <tomsmeding> | you can only run the computation and see what happens |
| 21:53:27 | <tomsmeding> | I hope I got it right now lol |
| 21:54:39 | <tomsmeding> | for Parser you could also consider optimising the parser, like rearranging alternatives so that you have a higher probability of early-outs or something |
| 21:55:07 | <tomsmeding> | with Applicative you can see the structure (if not the values), with Monad you don't |
| 22:10:19 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 22:13:19 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds) |
| 22:17:27 | × | gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1) |
| 22:20:02 | × | Ranhir quits (~Ranhir@157.97.53.139) (Read error: Connection reset by peer) |
| 22:21:46 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 22:23:31 | → | Ranhir joins (~Ranhir@157.97.53.139) |
| 22:31:38 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds) |
| 22:38:41 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 22:39:24 | → | merijn joins (~merijn@c-001-001-015.client.esciencecenter.eduvpn.nl) |
| 22:40:37 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:40:44 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
| 22:45:52 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 22:46:40 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:47:59 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0) (Remote host closed the connection) |
| 22:48:57 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 22:51:27 | → | fserucas joins (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) |
| 22:55:59 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 23:04:55 | × | fserucas quits (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Remote host closed the connection) |
| 23:05:03 | × | Tuplanolla quits (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:08:25 | → | fserucas joins (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) |
| 23:08:27 | × | king_gs quits (~Thunderbi@2806:103e:29:45ac:af0:afaf:29e7:dd60) (Ping timeout: 265 seconds) |
| 23:12:44 | → | talismanick joins (~talismani@campus-098-253.ucdavis.edu) |
| 23:13:41 | × | fserucas quits (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Ping timeout: 256 seconds) |
| 23:13:47 | × | merijn quits (~merijn@c-001-001-015.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds) |
| 23:15:26 | × | son0p quits (~ff@2800:e2:f80:867:8077:75e8:74b:f48d) (Read error: Connection reset by peer) |
| 23:16:47 | → | son0p joins (~ff@181.136.122.143) |
| 23:17:46 | → | kimjetwav joins (~user@2607:fea8:235e:b600:eeaa:dbc4:ae4b:9b7c) |
| 23:17:50 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 23:18:17 | → | ub joins (~Thunderbi@p200300ecdf264e90ea29c278ebba470c.dip0.t-ipconnect.de) |
| 23:19:20 | × | ubert quits (~Thunderbi@p548c9ce5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 23:19:20 | ub | is now known as ubert |
| 23:27:09 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 23:29:11 | × | perrierjouet quits (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.8) |
| 23:31:29 | × | talismanick quits (~talismani@campus-098-253.ucdavis.edu) (Ping timeout: 260 seconds) |
| 23:31:55 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 248 seconds) |
| 23:34:15 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 23:34:15 | → | thyriaen joins (~thyriaen@2a01:aea0:dd4:4bae:6245:cbff:fe9f:48b1) |
| 23:38:37 | × | acidjnk_new quits (~acidjnk@p200300d6e715c419193affabe67df89f.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 23:39:53 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds) |
| 23:43:55 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 23:44:41 | × | mastarija quits (~mastarija@188.252.197.182) (Quit: WeeChat 3.7.1) |
| 23:48:38 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0) |
| 23:48:52 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
| 23:54:43 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 23:57:31 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz) |
| 23:57:34 | → | ub joins (~Thunderbi@p548c9ce5.dip0.t-ipconnect.de) |
| 23:58:56 | × | ubert quits (~Thunderbi@p200300ecdf264e90ea29c278ebba470c.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 23:58:56 | ub | is now known as ubert |
All times are in UTC on 2023-01-11.