Home liberachat/#haskell: Logs Calendar

Logs on 2025-01-13 (liberachat/#haskell)

00:10:39 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:12:03 Jeanne-Kamikaze joins (~Jeanne-Ka@79.127.217.37)
00:13:42 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
00:14:55 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
00:17:36 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
00:20:44 weary-traveler joins (~user@user/user363627)
00:22:32 × Midjak quits (~MarciZ@82.66.147.146) (Quit: This computer has gone to sleep)
00:26:02 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:29:07 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
00:30:52 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
00:35:49 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 245 seconds)
00:36:30 × sprotte24_ quits (~sprotte24@p200300d16f1ab700b95fa6f61d41c09f.dip0.t-ipconnect.de) (Quit: Leaving)
00:38:00 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds)
00:39:03 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
00:40:46 × acidjnk_new quits (~acidjnk@p200300d6e7283f06081469c6fc5c461d.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
00:41:24 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:42:28 Sgeo joins (~Sgeo@user/sgeo)
00:43:20 × mreh quits (~matthew@host86-146-25-121.range86-146.btcentralplus.com) (Ping timeout: 244 seconds)
00:45:57 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
00:52:14 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
00:56:47 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:58:19 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds)
01:01:25 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
01:05:11 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
01:06:02 stiell joins (~stiell@gateway/tor-sasl/stiell)
01:12:09 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
01:18:41 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
01:30:11 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
01:31:24 × OftenFaded quits (~OftenFade@user/tisktisk) (Quit: OftenFaded)
01:34:29 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
01:36:04 × otto_s quits (~user@p4ff27ed7.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
01:37:22 otto_s joins (~user@p5de2fe2f.dip0.t-ipconnect.de)
01:39:36 × Jeanne-Kamikaze quits (~Jeanne-Ka@79.127.217.37) (Ping timeout: 252 seconds)
01:40:43 × dysthesis quits (~dysthesis@user/dysthesis) (Remote host closed the connection)
01:45:35 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
01:50:13 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
01:56:43 vanishingideal joins (~vanishing@user/vanishingideal)
02:00:58 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:05:15 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
02:16:19 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:21:04 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
02:22:45 × ystael quits (~ystael@user/ystael) (Ping timeout: 252 seconds)
02:31:42 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:36:20 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
02:38:11 dontdieych2 joins (~quassel@user/dontdieych2)
02:42:06 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 276 seconds)
02:47:05 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:52:16 × rekahsoft quits (~rekahsoft@70.51.99.237) (Quit: connecting on another system)
02:52:28 × hueso quits (~root@user/hueso) (Quit: hueso)
02:52:50 rekahsoft joins (~rekahsoft@70.51.99.237)
02:54:27 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
02:56:53 × weary-traveler quits (~user@user/user363627) (Quit: Konversation terminated!)
03:02:53 hueso joins (~root@user/hueso)
03:05:07 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:05:51 weary-traveler joins (~user@user/user363627)
03:09:42 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
03:13:00 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
03:23:00 × Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Read error: Connection reset by peer)
03:25:14 Sciencentistguy joins (~sciencent@hacksoc/ordinary-member)
03:26:02 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:30:40 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
03:31:59 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:41:25 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:46:08 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
03:48:09 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 246 seconds)
03:55:59 mari-estel joins (~mari-este@user/mari-estel)
03:59:49 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:04:39 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
04:05:24 × rekahsoft quits (~rekahsoft@70.51.99.237) (Ping timeout: 245 seconds)
04:05:35 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
04:05:57 stiell joins (~stiell@gateway/tor-sasl/stiell)
04:08:29 × homo quits (~homo@user/homo) (Read error: Connection reset by peer)
04:09:40 × dtman34 quits (~dtman34@2601:447:d080:1a3c:198e:8888:ba04:6650) (Ping timeout: 260 seconds)
04:10:39 mari11300 joins (~mari-este@user/mari-estel)
04:12:33 × mari-estel quits (~mari-este@user/mari-estel) (Ping timeout: 248 seconds)
04:15:13 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:18:51 dtman34 joins (~dtman34@2601:447:d080:1a3c:903c:1567:85ba:7c1c)
04:22:24 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
04:23:40 × dtman34 quits (~dtman34@2601:447:d080:1a3c:903c:1567:85ba:7c1c) (Ping timeout: 260 seconds)
04:33:38 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:38:18 JuanDaugherty joins (~juan@user/JuanDaugherty)
04:38:22 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
04:45:15 × Xe quits (~Xe@perl/impostor/xe) (Ping timeout: 260 seconds)
04:49:00 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:51:12 Xe joins (~Xe@perl/impostor/xe)
04:53:39 dtman34 joins (~dtman34@2601:447:d080:1a3c:903c:1567:85ba:7c1c)
04:55:40 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
05:07:03 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:08:54 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
05:11:25 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
05:13:24 OftenFaded joins (~OftenFade@user/tisktisk)
05:18:25 michalz joins (~michalz@185.246.207.217)
05:22:25 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:27:09 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
05:37:48 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:42:15 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
05:53:11 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:57:04 × dnerchm^ quits (dnerchm@c-98-242-74-66.hsd1.ga.comcast.net) (Ping timeout: 245 seconds)
05:57:04 × dsrt^ quits (dsrt@c-98-242-74-66.hsd1.ga.comcast.net) (Ping timeout: 245 seconds)
05:57:37 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
06:00:53 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:02:01 × ft quits (~ft@p4fc2a354.dip0.t-ipconnect.de) (Quit: leaving)
06:05:33 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
06:10:44 Square2 joins (~Square4@user/square)
06:13:31 × Square quits (~Square@user/square) (Ping timeout: 252 seconds)
06:16:47 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:17:18 Square joins (~Square@user/square)
06:23:07 tnt2 joins (~Thunderbi@user/tnt1)
06:23:49 × Square quits (~Square@user/square) (Ping timeout: 244 seconds)
06:24:15 × tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 246 seconds)
06:24:15 tnt2 is now known as tnt1
06:31:33 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:38:13 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
06:49:37 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:52:00 acidjnk_new joins (~acidjnk@p200300d6e7283f35081469c6fc5c461d.dip0.t-ipconnect.de)
06:52:05 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
06:53:59 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds)
06:54:35 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
06:54:40 dsrt^ joins (~dsrt@c-98-242-74-66.hsd1.ga.comcast.net)
06:54:41 dnerchm^ joins (~dnerchm@c-98-242-74-66.hsd1.ga.comcast.net)
06:57:51 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
06:59:09 CiaoSen joins (~Jura@2a05:5800:208:a200:ca4b:d6ff:fec1:99da)
07:00:29 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:01:49 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
07:06:43 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
07:16:23 Smiles joins (uid551636@id-551636.lymington.irccloud.com)
07:17:11 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
07:19:53 tnt2 joins (~Thunderbi@user/tnt1)
07:20:49 × tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 245 seconds)
07:20:49 tnt2 is now known as tnt1
07:21:35 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
07:21:49 × hsw_ quits (~hsw@112-104-8-145.adsl.dynamic.seed.net.tw) (Read error: Connection reset by peer)
07:22:07 hsw_ joins (~hsw@112-104-8-145.adsl.dynamic.seed.net.tw)
07:24:25 tnt2 joins (~Thunderbi@user/tnt1)
07:25:15 × tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 252 seconds)
07:25:15 tnt2 is now known as tnt1
07:32:35 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
07:37:04 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
07:37:55 sawilagar joins (~sawilagar@user/sawilagar)
07:41:18 mud joins (~mud@user/kadoban)
07:42:06 × kadobanana quits (~mud@user/kadoban) (Read error: Connection reset by peer)
07:42:45 danza joins (~danza@user/danza)
07:47:58 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
07:52:54 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
07:55:39 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
07:58:18 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
08:00:00 × caconym quits (~caconym@user/caconym) (Quit: bye)
08:00:42 caconym joins (~caconym@user/caconym)
08:01:25 danz63877 joins (~danza@user/danza)
08:02:22 mari-estel joins (~mari-este@user/mari-estel)
08:02:49 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
08:04:20 × danza quits (~danza@user/danza) (Ping timeout: 264 seconds)
08:04:43 × mari11300 quits (~mari-este@user/mari-estel) (Ping timeout: 265 seconds)
08:07:42 alecs joins (~alecs@nat16.software.imdea.org)
08:07:45 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
08:18:34 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
08:32:53 chele joins (~chele@user/chele)
08:35:11 × dontdieych2 quits (~quassel@user/dontdieych2) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
08:46:21 kuribas joins (~user@ptr-17d51epu50i07rg06yn.18120a2.ip6.access.telenet.be)
08:48:27 internatetional joins (~nate@2001:448a:20a3:c2e5:9ba2:a48e:b934:7d97)
08:53:43 × internatetional quits (~nate@2001:448a:20a3:c2e5:9ba2:a48e:b934:7d97) (Quit: WeeChat 4.5.1)
08:59:05 tnt2 joins (~Thunderbi@user/tnt1)
09:00:33 × califax quits (~califax@user/califx) (Remote host closed the connection)
09:00:35 × tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 252 seconds)
09:00:35 tnt2 is now known as tnt1
09:01:45 califax joins (~califax@user/califx)
09:02:49 merijn joins (~merijn@77.242.116.146)
09:12:17 × danz63877 quits (~danza@user/danza) (Remote host closed the connection)
09:12:33 danza joins (~danza@user/danza)
09:14:42 × califax quits (~califax@user/califx) (Remote host closed the connection)
09:18:51 califax joins (~califax@user/califx)
09:27:00 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 260 seconds)
09:27:12 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds)
09:27:18 bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex)
09:34:04 swistak joins (~swistak@185.21.216.141)
09:34:37 × Typedfern quits (~Typedfern@106.red-83-37-34.dynamicip.rima-tde.net) (Ping timeout: 265 seconds)
09:35:43 merijn joins (~merijn@77.242.116.146)
09:40:02 lxsameer joins (~lxsameer@Serene/lxsameer)
09:40:53 mreh joins (~matthew@host86-146-25-121.range86-146.btcentralplus.com)
09:45:28 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
09:47:33 Typedfern joins (~Typedfern@106.red-83-37-34.dynamicip.rima-tde.net)
09:48:57 eL_Bart0 joins (eL_Bart0@dietunichtguten.org)
09:53:02 mari15751 joins (~mari-este@user/mari-estel)
09:53:12 danz79448 joins (~danza@user/danza)
09:55:34 × mari-estel quits (~mari-este@user/mari-estel) (Ping timeout: 272 seconds)
09:55:35 × danza quits (~danza@user/danza) (Ping timeout: 260 seconds)
10:07:57 __monty__ joins (~toonn@user/toonn)
10:09:25 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
10:10:00 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 252 seconds)
10:22:18 merijn joins (~merijn@77.242.116.146)
10:28:01 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 248 seconds)
10:37:35 alexherbo2 joins (~alexherbo@2a02-8440-e502-b62f-45c1-19be-c4a2-0325.rev.sfr.net)
10:38:24 merijn joins (~merijn@77.242.116.146)
10:40:50 × CiaoSen quits (~Jura@2a05:5800:208:a200:ca4b:d6ff:fec1:99da) (Ping timeout: 265 seconds)
10:45:13 × infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 252 seconds)
10:58:32 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2)
11:05:28 infinity0 joins (~infinity0@pwned.gg)
11:17:30 califax_ joins (~califax@user/califx)
11:17:36 × califax quits (~califax@user/califx) (Ping timeout: 264 seconds)
11:18:12 × bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds)
11:18:44 califax_ is now known as califax
11:18:48 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 264 seconds)
11:18:55 chexum_ joins (~quassel@gateway/tor-sasl/chexum)
11:19:58 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
11:25:54 × mreh quits (~matthew@host86-146-25-121.range86-146.btcentralplus.com) (Ping timeout: 252 seconds)
11:28:39 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 244 seconds)
11:38:36 CiaoSen joins (~Jura@2a05:5800:208:a200:ca4b:d6ff:fec1:99da)
11:40:40 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
11:43:12 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
11:49:52 merijn joins (~merijn@77.242.116.146)
11:59:04 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 272 seconds)
12:00:59 × lbseale quits (~quassel@user/ep1ctetus) (Ping timeout: 252 seconds)
12:04:29 lortabac joins (~lortabac@88-125-6-227.subs.proxad.net)
12:07:20 ljdarj joins (~Thunderbi@user/ljdarj)
12:12:34 merijn joins (~merijn@77.242.116.146)
12:15:34 × orangeFlu quits (~orangeFlu@240-100-179-143.ftth.glasoperator.nl) (Ping timeout: 265 seconds)
12:21:36 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 246 seconds)
12:23:45 vanishingideal joins (~vanishing@user/vanishingideal)
12:25:43 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 265 seconds)
12:27:37 merijn joins (~merijn@77.242.116.146)
12:29:10 housemate joins (~housemate@146.70.66.228)
12:37:32 mreh joins (~matthew@host86-146-25-121.range86-146.btcentralplus.com)
12:42:43 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:42:47 akegalj joins (~akegalj@142-231.dsl.iskon.hr)
12:45:51 wootehfoot joins (~wootehfoo@user/wootehfoot)
12:48:05 dontdieych2 joins (~quassel@user/dontdieych2)
12:49:06 × mari15751 quits (~mari-este@user/mari-estel) (Quit: overwhelm)
13:00:48 chenggong7788 joins (~chenggong@162.248.73.62)
13:01:56 chenggong7788 is now known as nil78
13:02:54 × danz79448 quits (~danza@user/danza) (Ping timeout: 246 seconds)
13:04:00 × akegalj quits (~akegalj@142-231.dsl.iskon.hr) (Quit: leaving)
13:05:05 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Read error: Connection reset by peer)
13:05:20 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
13:05:34 jespada joins (~jespada@2800:a4:1fd:ad00:50c2:f579:e377:bf59)
13:06:59 × chexum_ quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
13:07:09 chexum joins (~quassel@gateway/tor-sasl/chexum)
13:09:49 × nil78 quits (~chenggong@162.248.73.62) (Quit: Client closed)
13:13:54 × housemate quits (~housemate@146.70.66.228) (Ping timeout: 276 seconds)
13:19:07 housemate joins (~housemate@146.70.66.228)
13:22:11 × merijn quits (~merijn@77.242.116.146) (Remote host closed the connection)
13:22:28 merijn joins (~merijn@77.242.116.146)
13:23:22 danza joins (~danza@user/danza)
13:31:36 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 246 seconds)
13:32:18 × mreh quits (~matthew@host86-146-25-121.range86-146.btcentralplus.com) (Ping timeout: 252 seconds)
13:32:35 × housemate quits (~housemate@146.70.66.228) (Ping timeout: 260 seconds)
13:33:29 JuanDaugherty joins (~juan@user/JuanDaugherty)
13:33:38 vanishingideal joins (~vanishing@user/vanishingideal)
13:35:53 × danza quits (~danza@user/danza) (Remote host closed the connection)
13:36:17 danza joins (~danza@user/danza)
13:41:46 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
13:45:57 × notzmv quits (~umar@user/notzmv) (Ping timeout: 248 seconds)
13:52:56 × danza quits (~danza@user/danza) (Read error: Connection reset by peer)
13:54:03 danza joins (~danza@user/danza)
13:58:56 weary-traveler joins (~user@user/user363627)
14:10:10 × CiaoSen quits (~Jura@2a05:5800:208:a200:ca4b:d6ff:fec1:99da) (Ping timeout: 272 seconds)
14:12:53 SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky)
14:15:55 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
14:20:16 × danza quits (~danza@user/danza) (Remote host closed the connection)
14:27:58 notzmv joins (~umar@user/notzmv)
14:31:12 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
14:36:54 gentauro joins (~gentauro@user/gentauro)
14:37:37 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 248 seconds)
14:39:27 vanishingideal joins (~vanishing@user/vanishingideal)
14:41:35 ChanServ sets mode +o tomsmeding
14:44:57 × rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer)
14:45:29 × alexherbo2 quits (~alexherbo@2a02-8440-e502-b62f-45c1-19be-c4a2-0325.rev.sfr.net) (Remote host closed the connection)
14:45:29 rvalue joins (~rvalue@user/rvalue)
14:46:36 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
14:46:59 alexherbo2 joins (~alexherbo@2a02-8440-e502-b62f-1cd7-f123-37f9-6156.rev.sfr.net)
14:50:05 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 272 seconds)
14:50:15 × alexherbo2 quits (~alexherbo@2a02-8440-e502-b62f-1cd7-f123-37f9-6156.rev.sfr.net) (Remote host closed the connection)
14:51:24 × Square2 quits (~Square4@user/square) (Ping timeout: 276 seconds)
14:51:24 vanishingideal joins (~vanishing@user/vanishingideal)
14:52:17 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
15:00:08 mchav joins (~mchav@c-98-59-172-239.hsd1.wa.comcast.net)
15:00:21 × mchav quits (~mchav@c-98-59-172-239.hsd1.wa.comcast.net) (Client Quit)
15:16:32 sixfourtwelve joins (~ethanmorg@82.18.82.103)
15:22:03 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
15:32:36 sixfourtwelve parts (~ethanmorg@82.18.82.103) ()
15:57:23 × forell quits (~forell@user/forell) (Quit: ZNC - https://znc.in)
15:57:38 ljdarj joins (~Thunderbi@user/ljdarj)
15:59:44 × dontdieych2 quits (~quassel@user/dontdieych2) (Ping timeout: 272 seconds)
16:01:22 forell joins (~forell@user/forell)
16:03:33 × alecs quits (~alecs@nat16.software.imdea.org) (Ping timeout: 276 seconds)
16:17:57 × lortabac quits (~lortabac@88-125-6-227.subs.proxad.net) (Ping timeout: 248 seconds)
16:22:38 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 244 seconds)
16:24:39 vanishingideal joins (~vanishing@user/vanishingideal)
16:34:34 r-sta joins (~r-sta@sgyl-37-b2-v4wan-168528-cust2421.vm6.cable.virginm.net)
16:35:09 <r-sta> hi i have <<loop>> im trying to do some profiling but;
16:35:10 <r-sta> cabal v2-run launch-starship -O2 -fbreak-on-exception
16:35:22 <r-sta> just gives <<loop>> still
16:35:38 <r-sta> and does not allow to step through stages like a break would
16:36:15 <r-sta> it appears infact, not, to break upon exception...
16:36:21 <r-sta> any idea what the problem is?
16:38:00 × r-sta quits (~r-sta@sgyl-37-b2-v4wan-168528-cust2421.vm6.cable.virginm.net) (Client Quit)
16:41:28 <geekosaur> `-fbreak-on-exception` only works in ghci, I think? but `v2-run` compiles
16:42:19 r-sta joins (~r-sta@sgyl-37-b2-v4wan-168528-cust2421.vm6.cable.virginm.net)
16:42:26 <geekosaur> yes, ghci only
16:42:40 <r-sta> ok, i understand this i think
16:42:58 <geekosaur> there's nothing to beak to in a compiled program
16:45:27 <r-sta> hmm
16:45:30 <r-sta> now it gives
16:45:31 <r-sta> Access violation in generated code when executing data at 0x7ff687e1c1a0
16:45:32 <r-sta>  Attempting to reconstruct a stack trace...
16:45:45 <r-sta> so i think its *trying* to break on exception
16:46:05 <r-sta> thats changing `cabal v2-run' to `cabal v2-repl'
16:47:12 <r-sta> but if i try to write :break 2 at the ghci prompt, it says;
16:47:25 <r-sta> No modules are loaded with debugging support.
16:47:37 <r-sta> i guess im missing a cabal flag
16:48:51 <geekosaur> if it finds a compiled module it uses it, unless you prefix with an asterisk
16:49:00 <geekosaur> but the compiled one can't be debugged
16:49:29 <r-sta> how is there one which is not compiled!?
16:50:28 <geekosaur> that's the point, you used v2-run which compiled it, now ghci is insisting on using the compiled one
16:50:41 <geekosaur> you need to force it to load the source files instead
16:50:50 <r-sta> ok so i just delete dist-newstyle
16:51:42 <r-sta> im having to deal with like 10 min compilation times, its a pain
16:52:04 <geekosaur> well, `cabal repl` may just compile everything again. ghci's the one being annoying here with its preference for compiled stuff
16:52:28 <r-sta> it is doing that
16:52:30 × acidjnk_new quits (~acidjnk@p200300d6e7283f35081469c6fc5c461d.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
16:52:41 <r-sta> but maybe it will stop short of main.exe
16:53:08 <r-sta> i mean, repl should do that anyway right? but the run call would have maybe left *something* extra...
16:53:12 <r-sta> ill see if it works
16:53:41 <r-sta> its the bigest project ever!
16:53:47 <r-sta> its got code i wrote like 5 years ago
16:53:58 <r-sta> 7*
16:54:23 <haskellbridge> <magic_rb> Ive taking a course on compiler construction, unfortunately in python so im thinking if i can rewrite it haskell. Do we have a package which would allow me to spit out textual llvm IR easily?
16:54:53 <r-sta> sounds like a parsecy sort of thing maybe?
16:54:58 <geekosaur> I thought you weren't supposed to do that
16:55:14 <haskellbridge> <magic_rb> Youre not :)
16:55:24 <geekosaur> (LLVM doesn't want people using IR directly. never mind that ghc does, they pay the price for it)
16:55:37 <haskellbridge> <magic_rb> Was just about to say GHC does that
16:55:50 <haskellbridge> <magic_rb> My other option is fixing llvm-hs
16:56:28 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds)
16:56:33 <r-sta> i can find this;
16:56:34 <r-sta> https://stackoverflow.com/questions/52040651/compile-haskell-programs-to-llvm-ir
16:57:17 <r-sta> ghc -keep-llvm-files main.hs
16:57:18 <r-sta> and a file called main.ll is created.
16:57:24 <r-sta> nothing about llvm IR tho
16:57:42 <haskellbridge> <magic_rb> No i meant writing my own codegen in haskell for my own shitty little language
16:58:14 <r-sta> fair
16:59:31 <haskellbridge> <magic_rb> I can always do a healthy amount of Text concatenations
17:00:10 <r-sta> https://www.hcesperer.org/posts/2017-07-28-writing-a-small-llvm-compiler-frontend-in-haskell.html
17:00:31 <geekosaur> that's the IR. you can carry it to another system with no ghc but has LLVM and run opt and llc there
17:00:47 <haskellbridge> <magic_rb> r-sta Thats llvm-hs i think which is not really functional anymore :(
17:01:12 <haskellbridge> <magic_rb> Ill end up doing the Text magic probably. Not a big project so its fine
17:02:15 <r-sta> this seems on point
17:02:15 <r-sta> https://www.reddit.com/r/haskell/comments/13yhc5l/comment/jmmui4b/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
17:02:54 <r-sta> you have to expand the comment on a deleted comment!
17:02:55 <haskellbridge> <magic_rb> Yeah exactly
17:03:16 <haskellbridge> <magic_rb> I dont use normal reddit so i dont :) but yes
17:03:25 <r-sta> it mentions "the need to update LLVM-hs"
17:03:31 <haskellbridge> <magic_rb> Okay i was wondering if im missing a lib we have, but looks like im not
17:03:35 <r-sta> this seems like project creep
17:03:44 <haskellbridge> <magic_rb> So ill just spit out LLVM IR directly
17:04:06 <r-sta> i guess the option to do so might be reason to suspect the support for an alternative might not exist
17:04:44 <haskellbridge> <magic_rb> Nah its mainly the fact that LLVMs api is extremely unstable and just bad in general
17:04:47 <r-sta> still, seems like it would have the kind of semantics that a lib would support, im guessing thats what llvm-hs is, ill check
17:04:50 <haskellbridge> <magic_rb> And extremely poorly documented
17:05:29 <r-sta> yeah jesus christ thats horrendous
17:05:43 <r-sta> if it works at all, you would expect a better interface from an intermediate module
17:06:01 <r-sta> there must be some plugins to some grammer library
17:06:53 <r-sta> btw, google search says;
17:06:54 <r-sta> llvm-hs is a set of Haskell bindings for LLVM http://llvm.org/. Unlike other current Haskell bindings, it uses an ADT to represent LLVM IR.
17:07:05 <r-sta> so its in there...
17:07:17 <r-sta> so its not going to be anywhere else!
17:07:29 <r-sta> you want a better access point
17:08:44 <r-sta> dont know if you seen this too https://hackage.haskell.org/package/llvm-hs-pure
17:09:10 <r-sta> that might be much easier to work with if you need the AST without the FFI
17:10:14 <r-sta> https://stackoverflow.com/questions/27696261/good-type-design-in-haskell-for-the-ast-of-a-simple-language
17:10:31 <r-sta> Stephen Diehl looks like your man
17:11:40 <r-sta> here
17:11:41 <r-sta> https://github.com/sdiehl/kaleidoscope/tree/master
17:12:48 <r-sta> described as "A minimal LLVM builder"
17:12:55 <r-sta> https://github.com/llvm-hs/llvm-hs-kaleidoscope
17:13:06 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 276 seconds)
17:13:40 <r-sta> {btw whats happening here is a combo of utfse and why is your search engine better than mine}
17:14:05 ft joins (~ft@p4fc2a354.dip0.t-ipconnect.de)
17:14:50 <r-sta> one of the most complicated pieces of code iv ever seen!
17:16:20 euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
17:16:22 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 244 seconds)
17:17:10 <haskellbridge> <magic_rb> Okay ill keep llvm-hs-pure in mind
17:17:11 <haskellbridge> <magic_rb> Looks good
17:17:21 <haskellbridge> <magic_rb> Ill add this to my ever growing list of side projects
17:17:50 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
17:17:51 <r-sta> yeah, idk if your going to be able to get the output you were looking for in a super easy way
17:21:15 <r-sta> btw geekosaur: the use of repl vs run does indeed not result in a pesky compiled version
17:21:27 <r-sta> i can insert breaks
17:22:03 <r-sta> but it just stops!
17:22:18 <r-sta> not forwards or backwards stepping to examine variables (i have never done this)
17:23:15 <geekosaur> https://downloads.haskell.org/ghc/latest/docs/users_guide/ghci.html#the-ghci-debugger might be helpful
17:23:44 <r-sta> based on what iv read i should be able to break and then step through line by line basically
17:24:53 <r-sta> hmm, :list might be able to help me find ther <<loop>> without needing to step
17:26:30 <r-sta> ghci> :set -fbreak-on-exception
17:26:30 <r-sta> ghci> main
17:26:31 <r-sta> "trades loaded; Stopped in <exception thrown>, <unknown>
17:26:32 <r-sta> _exception :: e = _
17:26:32 <r-sta> [<unknown>] ghci> :list
17:26:33 <r-sta> Unable to list source for <unknown>
17:26:33 <r-sta> Try rerunning with :trace, :back then :list
17:26:33 <geekosaur> I should mention that <<loop>> is a special exception that doesn't behave like normal ones; it's kinda manufactured by STG
17:26:47 <r-sta> yeah it even has this special error
17:26:55 <geekosaur> it means you have something that evaluates itself
17:27:06 <r-sta> it says, here, your ussposed to use :trace for a start, and then, this error it doesnt like so youl have to go backl
17:27:17 <geekosaur> keep in mind that `let x = x + 1` doesn't do what you think from other languages
17:27:42 <r-sta> thats ok i never used another language!
17:28:42 ss4 joins (~wootehfoo@user/wootehfoot)
17:29:14 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds)
17:29:33 <r-sta> hmm, ok the back thing works, but it takes it to part of the code where there is no loop!
17:30:50 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 244 seconds)
17:32:45 <r-sta> how can i tell where the loop is!?
17:35:18 <r-sta> at least initially because its in IO the main routine is sequential so you can do printouts after each line, but then it would be bredth first search through everything pure with trace debug which is way harder to keep track of
17:41:57 <r-sta> man, that is the most nondeterministic thing ever
17:42:11 <r-sta> so, just then my computer run out of memory, and the exception is not the loop!"
17:42:28 <r-sta> so it was breaking at some memory hanging exception somewhere away from the loop
17:42:33 <r-sta> damn real world!
17:46:02 ystael joins (~ystael@user/ystael)
17:47:57 <r-sta> rrg, now without breakpoints, ie without setting -fbreak-on-exception, it works, ie it gets through this "unknown" error
17:48:14 <r-sta> so it doesnt even crash at the same place with the breakpoints on!!
17:48:27 <r-sta> this SUCKS
17:48:33 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:48:34 <r-sta> ill never find this <<loop>>
17:48:44 <r-sta> this piece of code is huge! iv no idea what changed
17:50:48 <EvanR> run the test suite
17:50:53 <EvanR> that you have
17:51:30 <EvanR> I am grateful that <<loop>> exists, it could be much worse
17:56:12 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
17:59:20 gehmehgeh joins (~user@user/gehmehgeh)
18:01:59 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en)
18:04:23 <r-sta> testsuite!?
18:04:25 sprotte24 joins (~sprotte24@p200300d16f245c002d65884199a66258.dip0.t-ipconnect.de)
18:04:44 gehmehgeh is now known as gmg
18:04:52 <r-sta> (and obviously even after deleting plenty, it still throws a non-deterministic error when trying to load in the data)
18:05:30 <r-sta> EvanR: any details on this test suite, idk what it is, but if it could be a path to finding the <<loop>> id be overjoyed
18:05:30 × Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
18:06:17 <r-sta> problem atm is its throwing some other unknown error for some unknown reason before it even hits the loop, simply by virtue of enabling -fbreak-on-exception, which i think is lame
18:06:26 <EvanR> it's where you have a set of tests which sanity check subsections of the code
18:06:39 <EvanR> that you can run
18:06:50 <r-sta> oh
18:07:03 <r-sta> no i mean, i didnt break most of it
18:07:16 <r-sta> so the last propper run checks almost all the components
18:07:23 housemate joins (~housemate@146.70.66.228)
18:07:55 <r-sta> still idk why it breaks now or what i changed, or why the thing that finds the bugs introduces new bugs or anything
18:08:28 <EvanR> to find out what you changed, look at the version control system
18:08:31 <EvanR> that you have
18:08:35 <r-sta> !!!!
18:08:48 <r-sta> the code version of free climbing el chapo
18:09:27 <r-sta> i just need to find this loop!
18:09:33 <r-sta> i want to step through line by line
18:13:09 target_i joins (~target_i@user/target-i/x-6023099)
18:13:11 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:14:12 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
18:19:38 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
18:20:19 ljdarj joins (~Thunderbi@user/ljdarj)
18:23:38 <r-sta> now if i dont do any profiling, it even still gives a new different error!
18:23:49 <r-sta> Access violation in generated code when executing data at 0x7ff687e1a1a0
18:23:50 <r-sta>  Attempting to reconstruct a stack trace...
18:23:51 <r-sta>    Frame Code address
18:23:51 <r-sta>  * 0x8ec1afd9f0 0x7ff687e1a1a0
18:24:03 <r-sta> it wasnt doing that before. im going back to cabal v2-run
18:24:10 <r-sta> the repl seems to be messing something up
18:24:13 <r-sta> it mentions hmatrix
18:24:24 <r-sta> there are some blas i hope it doesnt mess up in the ghci prompt
18:24:31 × housemate quits (~housemate@146.70.66.228) (Ping timeout: 252 seconds)
18:24:34 <r-sta> i ant deal with nodeterministic errors!
18:24:37 <r-sta> can*
18:24:39 <r-sta> cant*!
18:25:33 <r-sta> ok, at least now it hits the <<loop>> and loads in all the data
18:27:54 housemate joins (~housemate@146.70.66.228)
18:29:39 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
18:30:20 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
18:30:45 alecs joins (~alecs@61.pool85-58-154.dynamic.orange.es)
18:31:19 <r-sta> i think i want it to loop!
18:31:31 <r-sta> is there any way i can have it not crash when it loops
18:31:37 housemate joins (~housemate@146.70.66.228)
18:31:50 <r-sta> im halting prints everywhere and it breaks actually *as* it loops
18:32:02 <r-sta> its just given a normal recursive call to itself
18:32:19 <tomsmeding> '<<loop>>' means something is defined in terms of itself directly, without any useful work in between
18:32:23 <tomsmeding> it's not the loop you're looking for
18:32:34 nickiminjaj joins (~nickiminj@user/laxhh)
18:33:38 × chele quits (~chele@user/chele) (Remote host closed the connection)
18:34:17 <r-sta> hmmmm
18:34:19 <r-sta> yeah
18:34:24 × nickiminjaj quits (~nickiminj@user/laxhh) (Client Quit)
18:34:49 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
18:35:29 housemate joins (~housemate@146.70.66.228)
18:36:55 lxsameer joins (~lxsameer@Serene/lxsameer)
18:37:38 <tomsmeding> r-sta: you could try compiling with `cabal --enable-profiling`, and then running with `+RTS -xc` at the end of your command line
18:37:50 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
18:37:53 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds)
18:37:53 <tomsmeding> that might print useful backtrace information
18:37:55 <tomsmeding> it might also not :)
18:37:59 <tomsmeding> but it's worth a try
18:38:00 <r-sta> ok ill try
18:38:19 <r-sta> as in cabal v2-build ?
18:38:27 <tomsmeding> yes
18:38:31 <tomsmeding> (the v2- is redundant)
18:38:37 <tomsmeding> (if you have a non-ancient cabal)
18:38:40 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
18:39:07 <r-sta> ok
18:39:12 Lord_of_Life_ is now known as Lord_of_Life
18:39:17 housemate joins (~housemate@146.70.66.228)
18:39:17 <r-sta> so build with  --enable-profiling
18:39:27 <r-sta> and then run with +RTS -xc
18:39:30 <tomsmeding> yes
18:39:30 <r-sta> what does this do?
18:39:34 avidseeker joins (av@user/avidseeker)
18:39:59 pavonia joins (~user@user/siracusa)
18:40:13 <tomsmeding> the first 1. builds with the profiling RTS (runtime system), which allows stuff like -xc, and 2. instruments all (?) functions with a little wrapper that tells the RTS that this function is now being entered/left
18:40:25 <tomsmeding> the second tells the RTS to print a backtrace on every thrown exception
18:40:35 <tomsmeding> _every_ thrown exception, even if it's caught by something else, unfortunately
18:40:45 <tomsmeding> so you may well get false-positives
18:41:29 <tomsmeding> r-sta: typically, <<loop>> is caused by stupid typos like `let x = foo x` where it should have been `let x' = foo x`
18:41:31 <r-sta> ok, its a lengthy recompile but ill let you know how i get on
18:41:56 <tomsmeding> sometimes it's more complicated, but it's usually a typo
18:42:19 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
18:42:33 <r-sta> yeah ill celebrate when i find it
18:42:39 <tomsmeding> typically on new GHCs these days you shouldn't need -xc any more to get backtrace info on uncaught exceptions, but apparently the <<loop>> isn't quite a normal exception
18:43:07 <r-sta> it would be great to give the variable name at the loop exception
18:43:14 × euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
18:43:15 <r-sta> even the module!
18:43:26 <tomsmeding> well it need not be a single module, right
18:43:31 <tomsmeding> it could be a few calls deep across modules
18:43:35 <tomsmeding> I'm with you though
18:43:39 <r-sta> yeah
18:43:50 <r-sta> i mean, if the trace thing works with :list
18:43:54 housemate joins (~housemate@146.70.66.228)
18:43:55 euleritian joins (~euleritia@dynamic-176-006-133-150.176.6.pool.telefonica.de)
18:43:55 nickiminjaj joins (~nickiminj@188.146.46.126)
18:43:55 × nickiminjaj quits (~nickiminj@188.146.46.126) (Changing host)
18:43:55 nickiminjaj joins (~nickiminj@user/laxhh)
18:44:09 <r-sta> but its being anoying and not even making it to the loop in -fbreak-on-exception mode
18:47:05 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
18:47:24 nickiminjaj is now known as ol0ck
18:48:22 housemate joins (~housemate@146.70.66.228)
18:48:38 <r-sta> yeah, that didnt work
18:48:43 <r-sta> it says it needs -prof
18:49:02 <tomsmeding> are you using `cabal run`?
18:49:08 <tomsmeding> then you need the `--enable-profiling` with `cabal run` too
18:49:16 <tomsmeding> like `cabal run --enable-profiling your-app -- +RTS -xc`
18:49:30 <tomsmeding> `cabal run` is essentially `cabal build` + `cabal exec`
18:51:18 ol0ck_ joins (~quassel@user/ol0ck)
18:51:42 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
18:52:02 <r-sta> the flag -xc requires the program to be built with -prof
18:52:07 × ol0ck quits (~nickiminj@user/laxhh) (Quit: Textual IRC Client: www.textualapp.com)
18:52:15 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 260 seconds)
18:52:17 ol0ck_ is now known as ol0ck
18:52:22 housemate joins (~housemate@146.70.66.228)
18:52:27 <tomsmeding> your app will be built with -prof if you --enable-profiling to `cabal run`
18:52:29 <tomsmeding> how are you running your app?
18:52:53 <r-sta> im doing cabal v2-build then cabal v2-run
18:53:00 <r-sta> i guess i should uses v2-exec...
18:53:00 <tomsmeding> why v2- before everything?
18:53:06 <r-sta> force of habbit
18:53:17 <tomsmeding> you could do that, or `cabal --enable-profiling run your-executable-name -- +RTS -xc`
18:53:31 <tomsmeding> perhaps the 'run' needs to come before the '--enable-profiling'
18:54:13 OftenFaded37 joins (~OftenFade@user/tisktisk)
18:54:46 <r-sta> idk it seems to be producing gibberish now so it must be working
18:55:16 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
18:56:22 housemate joins (~housemate@146.70.66.228)
18:56:37 <r-sta> it points to some locations but i cant see anything, i think iv become frustrated, time to take a break
18:56:38 nickiminjaj joins (~nickiminj@user/laxhh)
18:57:39 × nickiminjaj quits (~nickiminj@user/laxhh) (Client Quit)
18:58:01 × ss4 quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
18:58:09 × ol0ck quits (~quassel@user/ol0ck) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
18:58:19 wootehfoot joins (~wootehfoo@user/wootehfoot)
18:59:11 ol0ck joins (~quassel@user/ol0ck)
18:59:35 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
19:00:53 housemate joins (~housemate@146.70.66.228)
19:02:14 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
19:03:48 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
19:05:22 housemate joins (~housemate@146.70.66.228)
19:06:27 Guest1364 joins (~user@2601:644:937c:ed10::ae5)
19:08:38 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
19:09:11 housemate joins (~housemate@146.70.66.228)
19:10:20 × housemate quits (~housemate@146.70.66.228) (Remote host closed the connection)
19:10:59 housemate joins (~housemate@146.70.66.228)
19:11:46 OftenFaded37 is now known as OftenFaded1
19:11:51 × housemate quits (~housemate@146.70.66.228) (Remote host closed the connection)
19:12:25 housemate joins (~housemate@146.70.66.228)
19:12:42 × notzmv quits (~umar@user/notzmv) (Ping timeout: 276 seconds)
19:14:35 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
19:15:06 Guest21 joins (~Guest21@net-2-44-139-71.cust.vodafonedsl.it)
19:16:01 × r-sta quits (~r-sta@sgyl-37-b2-v4wan-168528-cust2421.vm6.cable.virginm.net) (Quit: Client closed)
19:16:19 × Guest21 quits (~Guest21@net-2-44-139-71.cust.vodafonedsl.it) (Client Quit)
19:16:38 housemate joins (~housemate@146.70.66.228)
19:18:57 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
19:20:24 housemate joins (~housemate@146.70.66.228)
19:21:21 × housemate quits (~housemate@146.70.66.228) (Remote host closed the connection)
19:21:58 housemate joins (~housemate@146.70.66.228)
19:24:18 × hgolden quits (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) (Remote host closed the connection)
19:24:19 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
19:25:06 housemate joins (~housemate@146.70.66.228)
19:27:15 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
19:28:21 housemate joins (~housemate@146.70.66.228)
19:28:36 hgolden joins (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363)
19:30:35 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
19:31:13 × yahb2 quits (~yahb2@user/tomsmeding/bot/yahb2) (Remote host closed the connection)
19:31:38 yahb2 joins (~yahb2@user/tomsmeding/bot/yahb2)
19:31:38 ChanServ sets mode +v yahb2
19:31:50 housemate joins (~housemate@146.70.66.228)
19:34:00 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
19:34:25 ph88 joins (~ph88@2a02:8109:9e26:c800:77c0:5b4e:4973:375e)
19:34:38 housemate joins (~housemate@146.70.66.228)
19:34:56 × jespada quits (~jespada@2800:a4:1fd:ad00:50c2:f579:e377:bf59) (Ping timeout: 264 seconds)
19:36:42 ircbrowse_tom joins (~ircbrowse@user/tomsmeding/bot/ircbrowse-tom)
19:36:44 Server sets mode +Cnt
19:36:53 jespada joins (~jespada@2800:a4:17:fd00:48e9:a913:6d6f:7a29)
19:38:12 housemate joins (~housemate@146.70.66.228)
19:39:23 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
19:39:48 housemate joins (~housemate@146.70.66.228)
19:41:22 × hgolden quits (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) (Remote host closed the connection)
19:42:11 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
19:42:20 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
19:43:01 acidjnk_new joins (~acidjnk@p200300d6e7283f35081469c6fc5c461d.dip0.t-ipconnect.de)
19:44:10 housemate joins (~housemate@146.70.66.228)
19:44:50 × housemate quits (~housemate@146.70.66.228) (Remote host closed the connection)
19:45:47 housemate joins (~housemate@146.70.66.228)
19:47:31 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
19:48:07 housemate joins (~housemate@146.70.66.228)
19:50:33 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
19:50:53 hgolden joins (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363)
19:51:26 Guest21 joins (~Guest21@net-2-44-139-71.cust.vodafonedsl.it)
19:52:08 × Guest21 quits (~Guest21@net-2-44-139-71.cust.vodafonedsl.it) (Client Quit)
19:52:08 housemate joins (~housemate@146.70.66.228)
19:52:51 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
19:54:00 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
19:54:37 housemate joins (~housemate@146.70.66.228)
19:56:55 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
19:56:57 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
19:57:24 housemate joins (~housemate@146.70.66.228)
19:59:28 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
20:00:15 × caconym quits (~caconym@user/caconym) (Quit: bye)
20:00:41 caconym joins (~caconym@user/caconym)
20:00:56 housemate joins (~housemate@146.70.66.228)
20:01:41 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
20:01:50 × housemate quits (~housemate@146.70.66.228) (Remote host closed the connection)
20:02:04 × alecs quits (~alecs@61.pool85-58-154.dynamic.orange.es) (Ping timeout: 252 seconds)
20:02:25 housemate joins (~housemate@146.70.66.228)
20:03:20 × housemate quits (~housemate@146.70.66.228) (Remote host closed the connection)
20:03:51 housemate joins (~housemate@146.70.66.228)
20:05:55 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
20:06:53 housemate joins (~housemate@146.70.66.228)
20:07:56 × kuribas quits (~user@ptr-17d51epu50i07rg06yn.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
20:08:12 r-sta joins (~r-sta@sgyl-37-b2-v4wan-168528-cust2421.vm6.cable.virginm.net)
20:09:09 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
20:09:49 housemate joins (~housemate@146.70.66.228)
20:11:57 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
20:12:19 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
20:12:54 housemate joins (~housemate@146.70.66.228)
20:12:55 <bailsman> So basically if one function returns a list and that is immediately consumed by another function that just loops over that list, GHC in all likelihood won't actually create the list? This is true even if both functions are in separate modules?
20:14:28 <tomsmeding> it will create the list nodes, but only on-demand
20:14:45 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
20:14:57 <tomsmeding> so if the consumer is a simple loop over the list, and doesn't consume the list twice, then you _will_ allocate all the list nodes, but only individually, not all at the same time
20:16:02 <tomsmeding> you will have a high GB/s allocation rate, but a very low peak: they will be deallocated again at roughly the same rate
20:16:02 <tomsmeding> (technically: they will be deallocated in bulk at every GC)
20:16:02 housemate joins (~housemate@146.70.66.228)
20:16:17 <bailsman> yeah it's generational gc so that should be super cheap, right? but I was sort of hoping it would just inline it somehow and directly loop over the source
20:16:26 <tomsmeding> yep
20:16:37 <tomsmeding> the second thing you're talking about is _fusion_
20:16:59 <tomsmeding> GHC sometimes does this -- or rather, 'base' provides rewrite rules on some list functions that tell GHC to merge certain calls
20:17:07 <tomsmeding> this is foldr/build fusion
20:17:52 <r-sta> the most awesome thing ever
20:18:00 <tomsmeding> things like 'map' are rewritten at compile time to an invocation of 'build' (an internal function in base); foldr has a rewrite rule to fuse with 'build' and actually eliminate the list nodes
20:18:01 <r-sta> its like a rewrite
20:18:06 <tomsmeding> it _is_ a rewrite
20:18:15 <r-sta> yeah, super cheap to evaluate!
20:18:18 <r-sta> at compile time!!
20:18:19 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
20:18:21 <tomsmeding> if a 'build' remains after this fusion pass, then it's rewritten back to a normal call
20:18:36 <tomsmeding> but note that this fusion can only happen if GHC sees the calls right next to each other, possibly after inlining
20:19:01 <tomsmeding> now, GHC is quite keen on inlining stuff, so that may well come to be -- but it's not guaranteed
20:19:02 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
20:19:27 housemate joins (~housemate@146.70.66.228)
20:20:12 <tomsmeding> the RULES for 'map' are here https://hackage.haskell.org/package/ghc-internal-9.1201.0/docs/src/GHC.Internal.Base.html#line-1935
20:20:48 × housemate quits (~housemate@146.70.66.228) (Remote host closed the connection)
20:20:48 alecs joins (~alecs@61.pool85-58-154.dynamic.orange.es)
20:20:58 <tomsmeding> and the foldr + build = no list rule is here https://hackage.haskell.org/package/ghc-internal-9.1201.0/docs/src/GHC.Internal.Base.html#line-1828
20:20:59 housemate joins (~housemate@146.70.66.228)
20:21:09 <tomsmeding> bailsman: ^
20:21:18 <haskellbridge> <Bowuigi> Yeah if you do an operation that consumes and builds a list and you don't want to do it using map and friends, using foldr and build gives you fusion if you inline that definition
20:21:25 <r-sta> many years after studying this i now only work with state encodings!
20:21:30 <r-sta> :t mapAccumL
20:21:31 <lambdabot> Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c)
20:21:43 <bailsman> interesting
20:21:45 <r-sta> there is an algebra on the state function here
20:21:47 <tomsmeding> Bowuigi: map is rewritten to build ;)
20:21:49 <tomsmeding> so map works fine
20:21:50 × housemate quits (~housemate@146.70.66.228) (Remote host closed the connection)
20:21:56 <tomsmeding> if you manually recurse over the list, then that's _not_ fused
20:22:15 <haskellbridge> <Bowuigi> Yeah that's why I am making the exception
20:22:15 <r-sta> a scanner is the name i was using to refer to the mapAccumL process
20:22:22 housemate joins (~housemate@146.70.66.228)
20:22:22 <r-sta> the states "scan" over streams
20:22:30 <haskellbridge> <Bowuigi> foldr/build is like switching to Church encoding for a bit in order to get fusion
20:22:32 <tomsmeding> mapAccumL is a little generalisation over scanl
20:22:42 <r-sta> the fact you can again scan the output, is the origin of the composition algebra
20:22:46 Everything joins (~Everythin@195.138.86.118)
20:22:48 <r-sta> scanners compose sequentially
20:22:53 <tomsmeding> Bowuigi: you said "you don't want to do it using map and friends" -- that's what I was referring to
20:22:55 <r-sta> you can make composite states
20:23:13 <r-sta> now, the cool thing here is that these do not need to be in sequential composition
20:23:59 <r-sta> when you bind the results of the state functions in a where clause, as long as they are non cycle inducing...
20:23:59 <haskellbridge> <Bowuigi> tomsmeding Oh, I meant that if you don't want to use them, you should use foldr and build for the fusion
20:23:59 <tomsmeding> ah right
20:23:59 <r-sta> its like the top level graphical language allows that the states can be composed together using the actual scope, which is ace
20:24:26 × housemate quits (~housemate@146.70.66.228) (Max SendQ exceeded)
20:24:37 <r-sta> your build fold fusion rules are basically saying that you can almost sort of not remake the list
20:24:54 <r-sta> this is basically then one big sequence of scanners composed together to run along with the thing that unfolds the list
20:25:21 <r-sta> the build and fold are endpoints with scans inbetween
20:25:37 <haskellbridge> <Bowuigi> Also note that the foldr/build trick works for anything that allows a Church encoding. On an eager language, a Mendler-style variant would be more efficient while having the same benefits
20:25:41 <r-sta> rather than folding strait after unfolding and fusioning away the process
20:25:54 <r-sta> you can insert a sequence, or scope resolved collection of scanners inbetween
20:26:10 <r-sta> and in state representation, all the kind of fusion happens automatically anyway
20:27:11 <r-sta> your using some kind of algebra on the folding, unfolding, and scanning functions
20:27:12 <r-sta> all of which are stateful processes
20:27:18 <r-sta> it also indicates that last . scanner, is slightly different to fold
20:27:30 <r-sta> getting the output rather than the carry
20:27:46 <r-sta> slightly more expressive as it allows to map from the type of the carry
20:27:57 <haskellbridge> <Bowuigi> Also I wonder why unfoldr/unbuild (the dual trick) using skipping streams isn't the standard on base. GHC can optimize that properly as well and it reaches more function than the standard foldr/build
20:29:07 <haskellbridge> <Bowuigi> Can reach more functions*
20:29:37 <r-sta> skipping?
20:30:19 <r-sta> i was interested in the zip case as it adds more algebras!
20:30:37 <r-sta> the fusion rules for some zips based on seti + geti
20:30:39 <r-sta> whew
20:30:48 <r-sta> they never did make a superclass to traverse
20:31:57 <r-sta> seti :: SuperTraverse f i => i -> a -> f a -> f a, geti :: SuperTraverse f i => f a -> (i,a)
20:32:01 <haskellbridge> <Bowuigi> The skipping stream used for unfoldr/unbuild is a representation of unfoldr that can "skip" the processing of some elements, like when filter discards elements of the input list
20:32:33 <r-sta> hmm, sounds like a zygomorphism or something crazy
20:33:01 <r-sta> something to do with partial processing in pre or post positions
20:33:19 notzmv joins (~umar@user/notzmv)
20:33:42 <r-sta> its weird if its non length preserving
20:34:02 <r-sta> its also weird if during a traversal not all elements are affected
20:34:08 <r-sta> basically visitation being non total
20:34:22 <r-sta> you cant use fmap like to change the element types, cos not all of them are visited
20:34:24 <haskellbridge> <Bowuigi> The whole system is a hylomorphism that can skip elements
20:34:33 <r-sta> so you get a monomorphic type constriction
20:35:00 × michalz quits (~michalz@185.246.207.217) (Remote host closed the connection)
20:35:00 <r-sta> like, if you dont discard
20:35:03 Midjak joins (~MarciZ@82.66.147.146)
20:35:06 <r-sta> means you cant change the type of only some of them
20:35:10 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
20:35:26 <r-sta> so your partial traversal opperations dont quite look the same because there is less type changes
20:35:48 <r-sta> partial traversals basically being cursors
20:36:04 <haskellbridge> <Bowuigi> No no I don't mean "skip" as "not modify", I mean "not appear in the result"
20:36:04 <r-sta> almost the opposite of the fusion process, which tries to make the intermediate list not exist
20:36:40 <r-sta> where you can actually halt the progression
20:36:48 <r-sta> yeah, sure if you delete the elements then you can just basically use total opperations everwhere else that have the type changes in
20:37:01 <r-sta> like, fmaps would be around the place still, with some filters or something
20:37:06 <r-sta> but there is a paradigm in the middle
20:37:30 × euleritian quits (~euleritia@dynamic-176-006-133-150.176.6.pool.telefonica.de) (Remote host closed the connection)
20:37:41 <r-sta> fmapOn :: (a -> Bool) -> (a -> b) -> f a -> f (Either a b)
20:38:08 euleritian joins (~euleritia@dynamic-176-006-133-150.176.6.pool.telefonica.de)
20:38:24 <r-sta> and then you have your fold fold up all the b's or something
20:38:43 <r-sta> you have an unfold, a map (like a scanner without a carry), and the consequent fold
20:38:54 <r-sta> the skipping is acieved at the fold though, not a folter!
20:38:56 <r-sta> filter*
20:39:12 <r-sta> idk about the effeciency fusion concerns
20:40:04 <r-sta> the advantage here is by allowing the types to be partially transformed, ie, only some elements altered
20:40:10 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
20:40:13 <r-sta> that then you get to continue this process
20:40:26 <r-sta> like, you could go halfway through a list showing the elements
20:40:37 <r-sta> pause, do something else, and then complete the rest
20:41:03 <r-sta> and the "fusion" in this paradigm is kind of spurious in a way if the state space formalism is just addopted wholesale
20:41:29 <r-sta> but yeah, it kind of looks like a hack to keep the number of elements the same
20:41:40 <r-sta> even though this is kind of the whole restrictiveness of complete traversals
20:42:08 <r-sta> like idk, theoretically if maybe like, the list being infinite and partially processed is a good visualisation
20:42:23 <r-sta> if your going to end up with something finite
20:42:38 <r-sta> ie that lazyness intrinsically forces us into an incomplete traversal situation
20:43:00 <r-sta> and the scanner algebra as associated via build fold fusion to lazy consumption is kinda cool
20:43:20 <r-sta> the incomplete traversal part rather
20:43:30 <r-sta> ie that lazyness seems to introduce the cursor
20:43:54 <r-sta> intuitively it is thought of as a cut off point
20:44:37 <r-sta> i guess that in a way its the traversal that got furthest along
20:44:39 <r-sta> and we always truncate, to avoid this
20:44:52 <r-sta> its notional, as its in state space encoding (church iiuc)
20:45:21 <r-sta> so you never actually produce this long truncated finite list as a subsection of the infinite list during lazy evaluation
20:45:43 <r-sta> and basically the whole time your in cursor land. thanks fusion!
20:46:18 <r-sta> fusion + lazyness = zippers?
20:47:28 <r-sta> i mean, its kinda complicated cos you can have a type hetroginous zipper, on a *list* that has the visited elements with updated type and as yet unvisited elements not type changed, like a halted scanner or map depending on if there is a carry
20:48:07 <r-sta> but in non list geti+seti instances, then use of the zippers linearization to handle partial type changing of entries...
20:48:15 <r-sta> yeesh ima give it a break. peace
20:48:25 weary-traveler joins (~user@user/user363627)
20:49:28 <r-sta> (its like a horrible tree thats half put into a list and waiting to be reconstructed, / fold fusioned)
20:50:34 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
20:51:49 <r-sta> TreePartialZipper = TreePartialZipper [(\i a fa -> seti i (f a) fa) (i1,a1) , (\i a fa -> seti i (f a) fa) (i2,a2) ... ]  [a]
20:52:46 <r-sta> TreePartialZipper f = TreePartialZipper [(\i a fa -> seti i (f a) fa) (i1,a1) , (\i a fa -> seti i (f a) fa) (i2,a2) ... ] (f a)
20:52:46 <r-sta> !?
20:52:46 <r-sta> sorrry
20:53:05 <r-sta> TreePartialZipper f = TreePartialZipper [(\i a fa -> seti i (f a) fa) (i1,a1) , (\i a fa -> seti i (f a) fa) (i2,a2) ... ] (xs :: f a)
20:53:40 <r-sta> call by use basically means all these suspended traversals get advanced along together
20:54:12 <r-sta> i just like the factorisation of the streaming inputs, so that the programs are in the algebra of composition of the scanners
20:54:31 × euleritian quits (~euleritia@dynamic-176-006-133-150.176.6.pool.telefonica.de) (Remote host closed the connection)
20:54:32 <r-sta> and yeah, zips and the fusion rules assoiated, with everything done properly using geti+seti...
20:54:41 <r-sta> i almost got it all done
20:54:48 euleritian joins (~euleritia@dynamic-176-006-133-150.176.6.pool.telefonica.de)
20:57:00 <r-sta> https://gist.github.com/fen-hs
20:57:30 × eL_Bart0 quits (eL_Bart0@dietunichtguten.org) (Ping timeout: 246 seconds)
20:57:30 <r-sta> https://gist.githubusercontent.com/fen-hs/a71ab735bf977d9b948a62416662fe57/raw/d5490878dded9298cc605eff5833515c797ff33f/Church.hs
20:57:41 <r-sta> if anyone wants to give me an award or anything...
20:58:00 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
20:59:07 <r-sta> sorry if gists arent your prefered method of disclosure
21:02:18 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
21:04:20 × dtman34 quits (~dtman34@2601:447:d080:1a3c:903c:1567:85ba:7c1c) (Ping timeout: 265 seconds)
21:05:33 <haskellbridge> <hellwolf> o_o
21:07:34 × jespada quits (~jespada@2800:a4:17:fd00:48e9:a913:6d6f:7a29) (Quit: My Mac has gone to sleep. ZZZzzz…)
21:08:43 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
21:11:56 OftenFaded1 parts (~OftenFade@user/tisktisk) ()
21:13:49 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
21:15:18 <EvanR> wall of text
21:16:16 <r-sta> sry
21:16:53 <r-sta> it was a huge body of work, some of the implications are really cool
21:17:00 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 264 seconds)
21:17:02 <r-sta> after youv transformed away all the streams and are just left with the scope bound state evaluations
21:17:12 <r-sta> cool result from fusion (tldr)
21:18:23 <r-sta> im really interested in the stateful sublanguage aspect
21:18:33 <r-sta> all my programs end up looking the same, just a where clause with a bunch of states getting bound
21:18:37 dtman34 joins (~dtman34@c-174-53-203-90.hsd1.mn.comcast.net)
21:19:06 <r-sta> i think the semantics of such a language are quite rich and a close to those of a "stateless" functional language
21:19:31 <EvanR> stateful programming sounds groundbreaking indeed
21:19:42 <EvanR> it might have some relation to imperative programming
21:20:03 <r-sta> the main difference being the specific factorisation identifying and separately presenting, the data "in the function"
21:20:03 <r-sta> the imperative thing i think could be a misnomer
21:20:03 hgolden_ joins (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363)
21:20:07 <r-sta> its just that graphs can be linearized
21:20:23 <r-sta> the variable binding dereferencing cannot create a cycle
21:20:27 <r-sta> thats basically the condition
21:20:49 stiell joins (~stiell@gateway/tor-sasl/stiell)
21:20:58 × hgolden_ quits (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) (Remote host closed the connection)
21:21:00 <r-sta> but thinking of it "top down" has some relavence since you shouldnt be refering to things below you more or less
21:21:33 <r-sta> unless you are careful, but yeah, its definately not imperative, but thats kind of where the intuition comes from
21:23:43 <r-sta> stateful programming is just like how a function can only have 2 arguments
21:24:01 <r-sta> but that these can be other functions which output other functions of lower partial application cardinality and so on
21:24:06 <r-sta> i -> o
21:24:08 <r-sta> becomes
21:24:17 <r-sta> s -> i -> (s,o)
21:24:51 <r-sta> at the fundamental function type
21:24:51 <r-sta> and its actually
21:24:51 <r-sta> (s,s -> i -> (s,o))
21:24:51 <r-sta> because you need the functions "stateful data"
21:25:03 <r-sta> all function calls also bind into scope the updated state information for the function
21:25:14 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
21:25:24 <r-sta> the state data associated to a stateful function is understood to have the pottential to change as it is called
21:25:44 <r-sta> and its all handled semantically by the binding of variables like (s,o) = fs s i
21:25:54 <r-sta> s' *
21:26:30 <r-sta> (s',o) = fs s i
21:26:31 <r-sta> and its actually quite annoying they dont compose in a better way
21:26:50 <r-sta> but the richness of variable dereferencing and binding into scope in where clauses is quite adiquate
21:27:10 <r-sta> as you try to start presenting the sequence any other way, you have to take over handling the scope
21:27:16 <r-sta> better to let the language do that
21:27:17 × dtman34 quits (~dtman34@c-174-53-203-90.hsd1.mn.comcast.net) (Ping timeout: 248 seconds)
21:28:07 <r-sta> it gives a good overview of the "shape" of the programs that result
21:29:28 <r-sta> if you *do* opt to handle the connectivity of the function calls in another way by handling the scope, then it ends up equivalent to some way of expressing a graph such as edges, which i seem to remember having to be handled at type level however i was trying to do it, so it was abandoned!
21:30:19 <r-sta> the condition is that upon exponentiation, the graph of edges should not induce some kind of collision
21:31:13 <r-sta> like, to check it doesnt have a cycle you exponentiate the edge matrix and somehow it breaks when its cyclic
21:31:13 <r-sta> so you can check at compile time
21:31:13 <r-sta> basically this check does the "compilation" checking you connected all the edges correctly
21:31:16 <r-sta> total headache
21:31:46 <r-sta> the construction is like, knitting together this type level sequence of edge additions
21:31:55 <r-sta> constructor*
21:32:03 <r-sta> brutal!
21:32:14 <r-sta> its like another line in the where clause
21:32:28 <r-sta> but like, typechecked line by line
21:33:30 <r-sta> and you have to *manually* add those edges *correctly* it just breaks *horribly* if you do it wrong
21:33:30 <r-sta> it was like the least useful sublangauge ever, it was practically impossible to construct a program according to that
21:33:43 <r-sta> im quite impressed it actually even exists in sufficient enough a form as i can recount it
21:34:12 <r-sta> lex called it "cyrillic" and said it was the reason i crashed the car one time
21:36:23 <r-sta> OH and BTW, since im only here cos of some <<loop>> situation, i think these kind of checks are actually quite important!
21:36:46 <r-sta> cycle detected in your program! except in haskell that would mess up the recusive calls
21:38:35 <r-sta> think weirdly there is a one evaluation per function "style" aswell
21:38:53 weary-traveler joins (~user@user/user363627)
21:39:20 <r-sta> as in all recusive extensions of the program graph are internal to this outer program graph of bound variables at state calls, this kind of sublanguage layer
21:39:27 <r-sta> now is a middle layer...
21:39:45 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
21:40:13 <r-sta> a non recusively extending bottleneck between streams and recusive functions
21:40:24 <r-sta> the scanning algebra! woot
21:41:29 <r-sta> the point from before is that, since it is non recursive by virtue of this one call per state "style", non recusive implying that *recursive calls can be flagged as errors*
21:42:04 <r-sta> reserving the recursive "sublanguage" for the layer below
21:42:44 <r-sta> language extension would be something like ExhaustiveWhere
21:43:00 <r-sta> saying that recursive function definitions are *not* allowed in where clauses
21:43:15 <r-sta> and that any repeated variable binding, is erronious
21:43:33 <r-sta> its a subscope situation where you dont allow variable reallocation
21:44:29 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
21:44:30 <r-sta> sorry, i mess up this part since its not clear how this pertains to cycles which are whats technically precluded
21:44:33 <r-sta> i might have made a mistake
21:44:57 <r-sta> anyway precludes recusrive function, but just not sure what exactly it means for the scope
21:44:58 <EvanR> you are hereby relegated to the blogosphere. Please state your theory in the form of a blog
21:45:08 <r-sta> lol ok chow
21:45:58 <r-sta> last chance to comment, re ExhaustiveWhere ?
21:46:45 <r-sta> "no cycles for <<loop>> safe where blocks"
21:48:12 dtman34 joins (~dtman34@c-174-53-203-90.hsd1.mn.comcast.net)
21:49:12 ftzm joins (~ftzm@085081033150.dynamic.telenor.dk)
21:54:37 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
21:55:08 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
21:58:44 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
22:00:33 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
22:01:00 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
22:02:25 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
22:06:38 j1n37 joins (~j1n37@user/j1n37)
22:10:32 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
22:14:11 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:14:58 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
22:17:44 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
22:18:36 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
22:21:00 j1n37 joins (~j1n37@user/j1n37)
22:23:07 × alecs quits (~alecs@61.pool85-58-154.dynamic.orange.es) (Ping timeout: 265 seconds)
22:23:51 × r-sta quits (~r-sta@sgyl-37-b2-v4wan-168528-cust2421.vm6.cable.virginm.net) (Quit: Client closed)
22:26:12 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
22:29:11 × sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 245 seconds)
22:29:28 × hawer quits (~newyear@2.219.56.221) (Ping timeout: 244 seconds)
22:32:46 × dnerchm^ quits (~dnerchm@c-98-242-74-66.hsd1.ga.comcast.net) (Ping timeout: 252 seconds)
22:33:03 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
22:33:03 × dsrt^ quits (~dsrt@c-98-242-74-66.hsd1.ga.comcast.net) (Ping timeout: 246 seconds)
22:33:04 dnerchm^ joins (~dnerchm@c-98-242-74-66.hsd1.ga.comcast.net)
22:34:01 dsrt^ joins (ecaokoylad@c-98-242-74-66.hsd1.ga.comcast.net)
22:36:05 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:36:43 JuanDaugherty joins (~juan@user/JuanDaugherty)
22:36:56 alecs joins (~alecs@61.pool85-58-154.dynamic.orange.es)
22:43:56 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
22:43:57 × dsrt^ quits (ecaokoylad@c-98-242-74-66.hsd1.ga.comcast.net) (Ping timeout: 276 seconds)
22:45:13 × acidjnk_new quits (~acidjnk@p200300d6e7283f35081469c6fc5c461d.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
22:45:42 × dnerchm^ quits (~dnerchm@c-98-242-74-66.hsd1.ga.comcast.net) (Ping timeout: 272 seconds)
22:48:35 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
22:49:32 simon1 is now known as sim590
22:50:00 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
22:51:56 × Midjak quits (~MarciZ@82.66.147.146) (Quit: This computer has gone to sleep)
22:52:37 Square2 joins (~Square4@user/square)
22:59:19 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
23:01:08 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
23:01:28 × ph88 quits (~ph88@2a02:8109:9e26:c800:77c0:5b4e:4973:375e) (Read error: Connection reset by peer)
23:03:51 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
23:05:35 × alecs quits (~alecs@61.pool85-58-154.dynamic.orange.es) (Ping timeout: 276 seconds)
23:06:34 Square joins (~Square@user/square)
23:10:00 × Square2 quits (~Square4@user/square) (Ping timeout: 265 seconds)
23:13:06 Sgeo joins (~Sgeo@user/sgeo)
23:14:35 mange joins (~user@user/mange)
23:14:42 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
23:16:03 acidjnk_new joins (~acidjnk@p200300d6e7283f35081469c6fc5c461d.dip0.t-ipconnect.de)
23:19:04 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
23:24:52 <haskellbridge> <Bowuigi> I find interesting the way you propose filter to be implemented, but no clue about the rest of the talk. A blog would help yeah
23:25:48 × euleritian quits (~euleritia@dynamic-176-006-133-150.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
23:26:31 euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
23:30:04 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
23:34:18 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
23:38:23 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
23:45:26 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
23:50:04 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
23:51:31 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
23:51:46 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)

All times are in UTC on 2025-01-13.