Home liberachat/#haskell: Logs Calendar

Logs on 2024-08-26 (liberachat/#haskell)

00:00:55 × acidjnk_new quits (~acidjnk@p200300d6e72cfb47bd23b15f512db0bf.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
00:05:07 Guest75 joins (~Guest75@2600:387:f:a10::6)
00:06:49 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
00:07:40 × Guest75 quits (~Guest75@2600:387:f:a10::6) (Client Quit)
00:11:17 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
00:16:47 × tcard__ quits (~tcard@2400:4051:5801:7500:1e90:74c3:2754:ce8a) (Quit: Leaving)
00:22:15 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
00:26:36 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
00:26:45 <EvanR> chatgpt generates bindings for me lol
00:27:25 tcard joins (~tcard@p3940165-ipxg22501hodogaya.kanagawa.ocn.ne.jp)
00:29:13 × bilegeek quits (~bilegeek@2600:1008:b007:52b2:99e1:c3bf:c468:921) (Quit: Leaving)
00:32:59 × califax quits (~califax@user/califx) (Remote host closed the connection)
00:34:09 califax joins (~califax@user/califx)
00:37:26 machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net)
00:37:41 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
00:39:57 Guest75 joins (~Guest75@2600:387:f:a10::6)
00:40:53 <probie> My problem with LLMs is that you have to check their work, so you don't end up saving any time
00:41:14 bilegeek joins (~bilegeek@2600:1008:b007:52b2:99e1:c3bf:c468:921)
00:41:57 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
00:45:58 × Guest75 quits (~Guest75@2600:387:f:a10::6) (Quit: Client closed)
00:46:20 Guest75 joins (~Guest75@2600:387:f:a10::6)
00:46:30 × ZharMeny quits (~user@user/ZharMeny) (Quit: ())
00:50:03 × Guest75 quits (~Guest75@2600:387:f:a10::6) (Client Quit)
00:53:07 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
00:56:53 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
00:58:22 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
00:58:55 <EvanR> I check pretty fast
00:59:10 <EvanR> random language bindings would take me a while to write out
01:08:33 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
01:09:45 troojg joins (~troojg@user/troojg)
01:12:49 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
01:14:12 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 272 seconds)
01:23:56 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
01:27:39 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
01:28:30 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
01:30:57 × troojg quits (~troojg@user/troojg) (Ping timeout: 246 seconds)
01:39:20 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
01:44:24 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
01:54:47 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
01:59:23 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
02:04:26 × Inst quits (~Inst@user/Inst) (Read error: Connection reset by peer)
02:07:21 × stef204 quits (~stef204@user/stef204) (Quit: WeeChat 4.2.1)
02:07:47 × td_ quits (~td@i53870916.versanet.de) (Ping timeout: 252 seconds)
02:09:49 td_ joins (~td@i53870916.versanet.de)
02:10:13 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
02:14:45 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
02:14:53 × xff0x quits (~xff0x@2405:6580:b080:900:1a16:bbb0:6f59:723e) (Quit: xff0x)
02:17:30 son0p joins (~ff@2800:e2:f80:ee7::1)
02:24:22 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
02:28:42 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
02:39:48 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
02:44:05 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
02:53:24 × bilegeek quits (~bilegeek@2600:1008:b007:52b2:99e1:c3bf:c468:921) (Quit: Leaving)
02:55:12 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
02:59:30 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
03:03:41 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
03:05:27 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:08:17 youthlic joins (~Thunderbi@user/youthlic)
03:10:38 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
03:10:44 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds)
03:15:48 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
03:17:49 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
03:20:52 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds)
03:22:23 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
03:22:50 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
03:26:03 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
03:28:12 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds)
03:30:29 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
03:41:30 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
03:41:58 aforemny joins (~aforemny@i59F516F8.versanet.de)
03:43:40 × aforemny_ quits (~aforemny@2001:9e8:6ce1:ca00:1cd1:13ff:d54d:eb12) (Ping timeout: 272 seconds)
03:46:03 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
03:56:56 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
04:00:24 × machinedgod quits (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 246 seconds)
04:01:20 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
04:06:43 aljazmc joins (~aljazmc@user/aljazmc)
04:12:20 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
04:16:53 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
04:21:23 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
04:25:22 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
04:30:32 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
04:40:47 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
04:45:27 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
04:46:36 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
04:53:17 michalz joins (~michalz@185.246.207.193)
04:56:13 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
04:57:22 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
05:01:19 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
05:01:56 × aljazmc quits (~aljazmc@user/aljazmc) (Quit: Leaving)
05:08:52 Square2 joins (~Square4@user/square)
05:10:13 dysthesis joins (~dysthesis@user/dysthesis)
05:11:37 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
05:11:49 gmg joins (~user@user/gehmehgeh)
05:14:57 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
05:16:07 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
05:22:35 × jcarpenter2 quits (~lol@2603:3016:1e01:b9a0:dd46:b628:cfda:5fd9) (Read error: Connection reset by peer)
05:26:22 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
05:28:19 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
05:30:11 × Sgeo_ quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
05:30:33 jcarpenter2 joins (~lol@2603:3016:1e01:b9a0:3dc1:ba12:10da:4091)
05:30:55 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
05:33:14 euphores joins (~SASL_euph@user/euphores)
05:41:48 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
05:42:15 × mceresa quits (~mceresa@user/mceresa) (Remote host closed the connection)
05:43:37 mceresa joins (~mceresa@user/mceresa)
05:46:25 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
05:57:13 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
06:02:22 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
06:04:57 × jinsun quits (~jinsun@user/jinsun) (Ping timeout: 252 seconds)
06:08:05 × ThePenguin7 quits (~ThePengui@cust-95-80-24-166.csbnet.se) (Remote host closed the connection)
06:08:39 ThePenguin7 joins (~ThePengui@cust-95-80-24-166.csbnet.se)
06:12:40 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
06:14:13 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
06:17:48 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
06:21:46 oo_miguel joins (~Thunderbi@78.10.207.45)
06:24:42 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
06:27:21 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
06:31:49 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
06:33:08 × mceresa quits (~mceresa@user/mceresa) (Remote host closed the connection)
06:33:55 mceresa joins (~mceresa@user/mceresa)
06:42:49 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
06:47:13 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
06:51:23 × ft quits (~ft@p4fc2a393.dip0.t-ipconnect.de) (Quit: leaving)
06:58:13 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
07:03:10 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
07:12:16 hendi joins (~hendi@193.32.248.133)
07:13:50 acidjnk_new joins (~acidjnk@p200300d6e72cfb41fdef54b6136c7789.dip0.t-ipconnect.de)
07:16:02 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection timed out)
07:22:30 × hendi quits (~hendi@193.32.248.133) (Ping timeout: 252 seconds)
07:35:50 terrorjack4 joins (~terrorjac@2a01:4f8:121:32e8::)
07:44:59 sourcetarius joins (~sourcetar@user/sourcetarius)
07:56:36 machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net)
07:59:21 merijn joins (~merijn@77.242.116.146)
08:01:40 alexherbo2 joins (~alexherbo@2a02-8440-3109-4750-dded-439d-72c1-d801.rev.sfr.net)
08:10:26 cfricke joins (~cfricke@user/cfricke)
08:10:41 lxsameer joins (~lxsameer@Serene/lxsameer)
08:12:24 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 246 seconds)
08:13:24 merijn joins (~merijn@77.242.116.146)
08:21:06 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
08:22:58 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 272 seconds)
08:23:53 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
08:24:49 × Me-me quits (~me-me@kc.randomserver.name) (Changing host)
08:24:49 Me-me joins (~me-me@user/me-me)
08:29:07 × nckx quits (nckx@libera/staff/owl/nckx) (Ping timeout: 608 seconds)
08:31:35 merijn joins (~merijn@77.242.116.146)
08:32:09 × Leary quits (~Leary@user/Leary/x-0910699) (Remote host closed the connection)
08:32:24 Leary joins (~Leary@user/Leary/x-0910699)
08:37:01 srazkvt joins (~sarah_@2a01:e0a:483:6900:b6d5:d9cd:2f20:2e49)
08:52:05 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
09:01:59 ash3en joins (~Thunderbi@2a02:3100:7e98:4100:89bf:d133:e52a:2d93)
09:08:33 × lxsameer quits (~lxsameer@Serene/lxsameer) (Quit: WeeChat 4.3.6)
09:14:31 × dysthesis quits (~dysthesis@user/dysthesis) (Ping timeout: 260 seconds)
09:19:12 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:19:47 ss4 joins (~wootehfoo@user/wootehfoot)
09:22:38 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 255 seconds)
09:22:50 wootehfoot joins (~wootehfoo@user/wootehfoot)
09:25:30 sawilagar joins (~sawilagar@user/sawilagar)
09:25:36 × ss4 quits (~wootehfoo@user/wootehfoot) (Ping timeout: 252 seconds)
09:25:54 ss4 joins (~wootehfoo@user/wootehfoot)
09:28:29 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 255 seconds)
09:29:21 __monty__ joins (~toonn@user/toonn)
10:03:27 murgeljm joins (~murgeljm@APN-122-12-44-gprs.simobil.net)
10:07:38 × srazkvt quits (~sarah_@2a01:e0a:483:6900:b6d5:d9cd:2f20:2e49) (Quit: Leaving)
10:12:34 × murgeljm quits (~murgeljm@APN-122-12-44-gprs.simobil.net) (Read error: Connection reset by peer)
10:14:20 cpressey joins (~weechat@176.254.71.203)
10:17:33 × connrs quits (~connrs@user/connrs) (Quit: ZNC 1.8.2 - https://znc.in)
10:17:40 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 252 seconds)
10:19:36 CiaoSen joins (~Jura@2a05:5800:42c:fc00:ca4b:d6ff:fec1:99da)
10:21:19 connrs joins (~connrs@user/connrs)
10:21:25 × connrs quits (~connrs@user/connrs) (Remote host closed the connection)
10:27:30 × cpressey quits (~weechat@176.254.71.203) (Ping timeout: 248 seconds)
10:29:01 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 252 seconds)
10:29:39 merijn joins (~merijn@77.242.116.146)
10:35:12 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 246 seconds)
10:37:10 connrs joins (~connrs@user/connrs)
10:41:44 cpressey joins (~weechat@176.254.71.203)
10:44:15 Guest75 joins (~Guest75@2600:387:f:a10::6)
10:46:17 merijn joins (~merijn@77.242.116.146)
10:50:31 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
10:50:55 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 244 seconds)
10:52:09 × cpressey quits (~weechat@176.254.71.203) (Ping timeout: 260 seconds)
10:52:33 × m1dnight quits (~christoph@78-20-63-126.access.telenet.be) (Ping timeout: 248 seconds)
10:53:35 merijn joins (~merijn@77.242.116.146)
11:00:41 × Guest75 quits (~Guest75@2600:387:f:a10::6) (Quit: Client closed)
11:02:00 Guest75 joins (~Guest75@2600:387:f:a10::6)
11:14:29 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:19:45 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
11:21:07 × petrichor quits (~znc-user@user/petrichor) (Ping timeout: 265 seconds)
11:21:43 rosco joins (~rosco@175.136.158.234)
11:24:21 cpressey joins (~weechat@176.254.71.203)
11:30:33 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:36:59 m1dnight joins (~christoph@78-20-63-126.access.telenet.be)
11:38:25 × Guest75 quits (~Guest75@2600:387:f:a10::6) (Quit: Client closed)
11:39:31 petrichor joins (~znc-user@user/petrichor)
11:44:50 <mauke> :t let frob (w, b) j ls = go j ls where { go z ((p, f) : xs) | p > w = go (f z) xs; go z xs = (w, b z) : xs } in frob
11:44:51 <lambdabot> Ord a => (a, t -> t -> t) -> t -> [(a, t -> t)] -> [(a, t -> t)]
11:44:55 <mauke> is this a fold?
11:45:46 × son0p quits (~ff@2800:e2:f80:ee7::1) (Quit: Leaving)
11:53:52 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 272 seconds)
11:59:13 × sourcetarius quits (~sourcetar@user/sourcetarius) (Ping timeout: 248 seconds)
12:03:12 merijn joins (~merijn@77.242.116.146)
12:04:44 × cpressey quits (~weechat@176.254.71.203) (Ping timeout: 252 seconds)
12:16:42 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 265 seconds)
12:18:53 merijn joins (~merijn@77.242.116.146)
12:21:05 × ThePenguin7 quits (~ThePengui@cust-95-80-24-166.csbnet.se) (Remote host closed the connection)
12:21:06 <Axman6> I'm having massive deja vu, I swear you've asked this exact question before
12:21:37 ThePenguin7 joins (~ThePengui@cust-95-80-24-166.csbnet.se)
12:22:51 <mauke> that would be scary because it would mean I've completely forgotten the time I ported an obscure parsing algorithm from C to Haskell, gaining a deeper understanding
12:24:00 <Axman6> like when you run into a problem for the first time, search for the answer, and the links are purple
12:28:02 × ddellacosta quits (~ddellacos@ool-44c73c8f.dyn.optonline.net) (Ping timeout: 255 seconds)
12:29:17 <mauke> anyway, this function emulates what in C would be traversing down the right spine of a binary tree and modifying it in place
12:29:57 <mauke> only in Haskell the tree is represented as a list of functions in reverse (bottom-up)
12:31:19 <Rembane> Is it some kind of continuation passing style?
12:31:55 <mauke> no, just layers of tree with "holes" where modifications can happen
12:32:06 <mauke> hence the functions
12:32:42 <mauke> I suspect the whole thing is just a special case of a well-known general parsing algorithm
12:32:57 <Rembane> Got it!
12:33:10 <Rembane> That sounds reasonable. Just gotta turn it inside out a couple of times more...
12:34:10 <mauke> the basic idea is that when you have a complete expression tree and the next input symbol is a binary infix operator, it needs to be inserted in the tree at the right location
12:34:42 <mauke> the right location is somewhere along the rightmost branch. the exact height depends on the precedence/weight of the operator
12:35:32 cpressey joins (~weechat@176.254.71.203)
12:49:02 <Rembane> That feels super elegant
12:50:14 × CiaoSen quits (~Jura@2a05:5800:42c:fc00:ca4b:d6ff:fec1:99da) (Ping timeout: 272 seconds)
12:56:03 × rosco quits (~rosco@175.136.158.234) (Read error: Connection reset by peer)
12:57:35 Inst joins (~Inst@user/Inst)
13:00:12 rosco joins (rosco@gateway/vpn/airvpn/rosco)
13:01:35 ZharMeny joins (~user@user/ZharMeny)
13:04:09 × rosco quits (rosco@gateway/vpn/airvpn/rosco) (Client Quit)
13:10:38 murgeljm joins (~murgeljm@APN-122-12-44-gprs.simobil.net)
13:11:27 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
13:13:06 misterfish joins (~misterfis@84.53.85.146)
13:18:20 cfricke_ joins (~cfricke@user/cfricke)
13:19:44 × cpressey quits (~weechat@176.254.71.203) (Ping timeout: 260 seconds)
13:20:45 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 246 seconds)
13:21:45 × alexherbo2 quits (~alexherbo@2a02-8440-3109-4750-dded-439d-72c1-d801.rev.sfr.net) (Remote host closed the connection)
13:25:38 spew joins (~spew@201.141.102.132)
13:32:53 × spew quits (~spew@201.141.102.132) (Quit: spew)
13:36:11 cpressey joins (~weechat@176.254.71.203)
13:37:03 × ystael quits (~ystael@user/ystael) (Ping timeout: 245 seconds)
13:38:15 CiaoSen joins (~Jura@2a05:5800:42c:fc00:ca4b:d6ff:fec1:99da)
13:40:29 nckx joins (nckx@libera/staff/owl/nckx)
13:44:40 son0p joins (~ff@2800:e6:4001:8da7:232f:489b:caf3:dc20)
13:47:31 × cpressey quits (~weechat@176.254.71.203) (Ping timeout: 264 seconds)
13:49:14 × __monty__ quits (~toonn@user/toonn) (Ping timeout: 252 seconds)
13:50:29 × tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 260 seconds)
14:04:09 tomboy64 joins (~tomboy64@user/tomboy64)
14:05:20 __monty__ joins (~toonn@user/toonn)
14:10:52 L29Ah joins (~L29Ah@wikipedia/L29Ah)
14:11:51 × troydm quits (~troydm@user/troydm) (Ping timeout: 246 seconds)
14:20:25 kalj joins (~kalj@h-158-174-207-174.NA.cust.bahnhof.se)
14:23:10 Guest75 joins (~Guest75@2600:387:f:a10::6)
14:23:17 × euphores quits (~SASL_euph@user/euphores) (Ping timeout: 248 seconds)
14:25:56 × ZharMeny quits (~user@user/ZharMeny) (Ping timeout: 255 seconds)
14:26:06 Guest|64 joins (~Guest|64@173.38.117.73)
14:31:04 euphores joins (~SASL_euph@user/euphores)
14:31:23 × Guest|64 quits (~Guest|64@173.38.117.73) (Quit: Connection closed)
14:31:48 Guest|64 joins (~Guest|64@45-26-3-91.lightspeed.rlghnc.sbcglobal.net)
14:33:57 × kalj quits (~kalj@h-158-174-207-174.NA.cust.bahnhof.se) (Ping timeout: 256 seconds)
14:37:18 × Guest|64 quits (~Guest|64@45-26-3-91.lightspeed.rlghnc.sbcglobal.net) (Quit: Connection closed)
14:38:00 smalltalkman joins (uid545680@id-545680.hampstead.irccloud.com)
14:39:55 ddellacosta joins (~ddellacos@ool-44c73c8f.dyn.optonline.net)
14:45:48 ZharMeny joins (~user@user/ZharMeny)
14:47:58 × murgeljm quits (~murgeljm@APN-122-12-44-gprs.simobil.net) (Quit: murgeljm)
14:48:04 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
14:50:06 × cfricke_ quits (~cfricke@user/cfricke) (Quit: WeeChat 4.2.2)
14:54:43 billchenchina- joins (~billchenc@103.152.35.21)
14:59:55 youthlic1 joins (~Thunderbi@user/youthlic)
15:01:02 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2)
15:01:15 × youthlic quits (~Thunderbi@user/youthlic) (Ping timeout: 260 seconds)
15:01:15 youthlic1 is now known as youthlic
15:05:51 kuribas joins (~user@ptr-17d51enukyvq8hfwj1t.18120a2.ip6.access.telenet.be)
15:07:51 alexherbo2 joins (~alexherbo@2a02-8440-3109-4750-1ded-dcf2-0d59-d526.rev.sfr.net)
15:10:47 × Guest75 quits (~Guest75@2600:387:f:a10::6) (Ping timeout: 256 seconds)
15:11:56 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
15:12:56 spew joins (~spew@201.141.102.132)
15:19:51 × machinedgod quits (~machinedg@d50-99-47-73.abhsia.telus.net) (Read error: Connection reset by peer)
15:19:54 machined1od joins (~machinedg@d50-99-47-73.abhsia.telus.net)
15:23:13 troydm joins (~troydm@user/troydm)
15:34:05 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
15:41:00 × youthlic quits (~Thunderbi@user/youthlic) (Remote host closed the connection)
15:41:19 youthlic joins (~Thunderbi@user/youthlic)
15:42:02 ystael joins (~ystael@user/ystael)
15:45:24 jinsun joins (~jinsun@user/jinsun)
15:46:49 × ash3en quits (~Thunderbi@2a02:3100:7e98:4100:89bf:d133:e52a:2d93) (Quit: ash3en)
15:47:51 × tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 276 seconds)
15:49:04 × CiaoSen quits (~Jura@2a05:5800:42c:fc00:ca4b:d6ff:fec1:99da) (Ping timeout: 260 seconds)
15:52:13 <tomsmeding> it also feels like it has quadratic complexity in the worst case :p
15:52:47 × ZharMeny quits (~user@user/ZharMeny) (Ping timeout: 252 seconds)
15:56:39 × mceresa quits (~mceresa@user/mceresa) (Remote host closed the connection)
15:57:43 mceresa joins (~mceresa@user/mceresa)
16:01:37 tomboy64 joins (~tomboy64@user/tomboy64)
16:02:32 × alexherbo2 quits (~alexherbo@2a02-8440-3109-4750-1ded-dcf2-0d59-d526.rev.sfr.net) (Remote host closed the connection)
16:03:00 alexherbo2 joins (~alexherbo@2a02-8440-3109-4750-e0d9-8199-91b0-5b4f.rev.sfr.net)
16:05:57 <haskellbridge> <maralorn> Can someone tell me what the type of CTime is in ghcjs?
16:06:31 × alexherbo2 quits (~alexherbo@2a02-8440-3109-4750-e0d9-8199-91b0-5b4f.rev.sfr.net) (Remote host closed the connection)
16:06:46 × kuribas quits (~user@ptr-17d51enukyvq8hfwj1t.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 27.1))
16:07:17 <haskellbridge> <maralorn> I got to: https://gitlab.haskell.org/ghc/ghc/-/blob/master/libraries/ghc-internal/src/GHC/Internal/Foreign/C/Types.hs#L197
16:07:35 tomsmeding . o O ( give ghcjs `() :: CTime` and look at the error message )
16:07:42 <haskellbridge> <maralorn> which says: "ARITHMETIC_TYPE(CTime,"time_t",HTYPE_TIME_T)"
16:07:49 × ddellacosta quits (~ddellacos@ool-44c73c8f.dyn.optonline.net) (Ping timeout: 248 seconds)
16:08:16 <haskellbridge> <maralorn> Ah, well. Its a newtype. But yeah, I can try something like that.
16:08:20 <tomsmeding> maralorn https://gitlab.haskell.org/ghc/ghc/-/blob/master/libraries/ghc-internal/include/CTypes.h#L23-24
16:10:04 <haskellbridge> <maralorn> Yeah, but how is HTYPE_TIME_T defined?^^
16:10:14 ddellacosta joins (~ddellacos@ool-44c73c8f.dyn.optonline.net)
16:10:15 <haskellbridge> <maralorn> Seems to be automatically generated.
16:10:23 <haskellbridge> <maralorn> But I will figure out soon enough with your idea.
16:12:35 × machined1od quits (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 255 seconds)
16:17:14 <tomsmeding> maralorn: _build/stage1/libraries/ghc-internal/build/config.status
16:17:16 comerijn joins (~merijn@77.242.116.146)
16:17:19 <tomsmeding> D["HTYPE_TIME_T"]=" Int64"
16:17:23 × youthlic quits (~Thunderbi@user/youthlic) (Quit: youthlic)
16:17:26 <tomsmeding> but that may be system-dependent
16:20:02 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 244 seconds)
16:21:00 <haskellbridge> <maralorn> It is. In ghcjs it seems to be Int32
16:21:47 <haskellbridge> <maralorn> Which is unfortunate because it means that getTimeZone crashes for dates auf January 2038 in ghcjs. 😄
16:21:56 <haskellbridge> <maralorn> * after
16:21:58 <tomsmeding> ... oops :D
16:22:19 × comerijn quits (~merijn@77.242.116.146) (Ping timeout: 264 seconds)
16:23:29 × ddellacosta quits (~ddellacos@ool-44c73c8f.dyn.optonline.net) (Ping timeout: 260 seconds)
16:25:33 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
16:26:11 × chiselfuse quits (~chiselfus@user/chiselfuse) (Ping timeout: 260 seconds)
16:26:46 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 260 seconds)
16:28:35 ChaiTRex joins (~ChaiTRex@user/chaitrex)
16:29:27 chiselfuse joins (~chiselfus@user/chiselfuse)
16:31:29 ddellacosta joins (~ddellacos@ool-44c73c8f.dyn.optonline.net)
16:33:18 pavonia joins (~user@user/siracusa)
16:34:43 <haskellbridge> <maralorn> Might someone be able to enlighten me where I can find how ghcjs replaces
16:34:43 <haskellbridge> "foreign import ccall unsafe "HsTime.h get_current_timezone_seconds"" with something that works in javascript?
16:40:02 × billchenchina- quits (~billchenc@103.152.35.21) (Quit: Leaving)
16:44:06 × infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 246 seconds)
16:50:48 <EvanR> Int64 seems tricky to just have in javascript
16:50:54 × jinsun quits (~jinsun@user/jinsun) (Ping timeout: 276 seconds)
16:54:24 × Inst quits (~Inst@user/Inst) (Ping timeout: 252 seconds)
16:54:56 ft joins (~ft@p4fc2a393.dip0.t-ipconnect.de)
16:55:53 jinsun joins (~jinsun@user/jinsun)
16:57:19 <mauke> tomsmeding: funnily enough I think this part might actually be linear
16:57:52 <mauke> I never fold over the same nodes twice. any subtree folded over becomes a left child and is not re-traversed
17:04:40 infinity0 joins (~infinity0@pwned.gg)
17:07:13 <haskellbridge> <thirdofmay18081814goya> if "e" is an expression without WHNF and "[[-]]" is the semantics/evalution function, "[[e]] = ⊥" right?
17:07:42 × jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer)
17:08:45 <tomsmeding> mauke: ah, I didn't catch that part :)
17:09:42 <tomsmeding> maralorn: compile four JS files: one without the import, one with the import, one with the import with one use of the function, and one with the import and 2 uses of the function
17:10:15 <tomsmeding> hopefully file 1 and file 2 will be distinct, giving you your answer; if not, look at (3 - 1) - (4 - 3)
17:10:56 <tomsmeding> (-) being subtraction/difference :p
17:25:27 Inst joins (~Inst@user/Inst)
17:29:43 jinsun joins (~jinsun@user/jinsun)
17:35:25 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:38:07 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 265 seconds)
17:38:07 × c_wraith quits (~c_wraith@adjoint.us) (Ping timeout: 265 seconds)
17:38:18 c_wraith joins (~c_wraith@adjoint.us)
17:38:23 dibblego joins (~dibblego@116-255-1-119.ip4.superloop.au)
17:38:23 × dibblego quits (~dibblego@116-255-1-119.ip4.superloop.au) (Changing host)
17:38:23 dibblego joins (~dibblego@haskell/developer/dibblego)
17:40:09 Square joins (~Square@user/square)
17:42:35 × Square2 quits (~Square4@user/square) (Ping timeout: 255 seconds)
17:42:55 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:44:39 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
17:48:01 <tomsmeding> EvanR: JS has BigInt now though ;)
17:56:54 × Square quits (~Square@user/square) (Remote host closed the connection)
17:57:11 Square joins (~Square@user/square)
17:58:07 × Square quits (~Square@user/square) (Remote host closed the connection)
17:58:24 Square joins (~Square@user/square)
17:59:29 × mceresa quits (~mceresa@user/mceresa) (Remote host closed the connection)
18:00:05 mceresa joins (~mceresa@user/mceresa)
18:00:35 × mceresa quits (~mceresa@user/mceresa) (Remote host closed the connection)
18:01:08 × son0p quits (~ff@2800:e6:4001:8da7:232f:489b:caf3:dc20) (Quit: Leaving)
18:01:47 × spew quits (~spew@201.141.102.132) (Quit: spew)
18:02:43 mceresa joins (~mceresa@user/mceresa)
18:08:12 justsomeguy joins (~justsomeg@user/justsomeguy)
18:10:47 ash3en joins (~Thunderbi@2a02:3100:7e98:4100:89bf:d133:e52a:2d93)
18:12:36 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 252 seconds)
18:13:53 spew joins (~spew@201.141.102.132)
18:21:28 Guest50 joins (~Guest50@109-252-8-98.nat.spd-mgts.ru)
18:22:04 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
18:22:36 × Guest50 quits (~Guest50@109-252-8-98.nat.spd-mgts.ru) (Client Quit)
18:29:58 misterfish joins (~misterfis@84.53.85.146)
18:35:19 × Inst quits (~Inst@user/Inst) (Ping timeout: 260 seconds)
18:36:34 bilegeek joins (~bilegeek@2600:1008:b017:c901:621d:4241:2804:e5ab)
18:36:52 cpressey joins (~weechat@176.254.71.203)
18:36:53 <haskellbridge> <thirdofmay18081814goya> uh, a somewhat more accurate statement: if no reduction of "e" produces a WHNF, then evaluation of "e" is non-terminating, so "[[e]] = ⊥"
18:38:21 <monochrom> I agree.
18:38:40 rvalue- joins (~rvalue@user/rvalue)
18:38:50 <haskellbridge> <thirdofmay18081814goya> nice ty!
18:39:50 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 272 seconds)
18:40:05 JuanDaugherty joins (~juan@user/JuanDaugherty)
18:40:45 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 276 seconds)
18:41:35 ec_ joins (~ec@gateway/tor-sasl/ec)
18:41:59 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds)
18:43:33 × Square quits (~Square@user/square) (Ping timeout: 248 seconds)
18:43:51 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 260 seconds)
18:46:35 rvalue- is now known as rvalue
18:48:47 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
18:50:07 × ec_ quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
18:50:31 <haskellbridge> <thirdofmay18081814goya> hm, we"d want to distinguish non-terminating expressions that overflow vs. expressions like "[1..]`
18:50:40 <haskellbridge> <thirdofmay18081814goya> * we'd want to distinguish non-terminating expressions that overflow vs. expressions like "\[1..\]\"
18:50:49 <haskellbridge> <thirdofmay18081814goya> * "[1..\]"
18:50:54 <haskellbridge> <thirdofmay18081814goya> hm, we'd want to distinguish non-terminating expressions that overflow vs. expressions like "[1..]"
18:53:28 <tomsmeding> mauke: disclaimer, I've spent all of 10 seconds thinking about it, but perhaps Dijkstra's Shunting Yard algorithm is similar?
18:53:42 justsomeguy joins (~justsomeg@user/justsomeguy)
18:55:39 neuroevolutus joins (~neuroevol@37.19.200.148)
18:57:13 <EvanR> we do distinguish ⊥ from [1..]
18:57:26 <EvanR> they are different
18:57:51 <haskellbridge> <thirdofmay18081814goya> EvanR: what's a decent formal statement for this fact?
18:58:06 <EvanR> well, what is [[undefined]] and what is [[ [1..] ]
18:58:41 <tomsmeding> do you want to describe call-by-value or call-by-need?
18:58:46 <EvanR> this might be a reason why the jargon "non-terminate" is maybe bad
18:58:52 <EvanR> "non-terminating"
18:59:15 <haskellbridge> <thirdofmay18081814goya> tomsmeding: call by need, so that "[1..]" make sense
18:59:23 <haskellbridge> <thirdofmay18081814goya> EvanR: hm right
18:59:26 <EvanR> ⊥ is the least defined semantic value
18:59:55 <EvanR> it's used to represent the meaning of non-terminating computations, and other things
19:00:02 <EvanR> meanwhile [1..] isn't non-terminating in that way
19:00:21 <EvanR> another way to describe [1..] is productive
19:00:22 <tomsmeding> surely, we have [[undefined]] = ⊥, [[1 : undefined]] = 1 : ⊥, [[1 : 2 : undefined]] = 1 : 2 : ⊥
19:00:46 <tomsmeding> so then what is [[ [1..] ]]? Dunno, looks like this notation does not scale well enough
19:01:01 <EvanR> it is 1 : 2 : ...
19:01:21 <EvanR> 1 : 2 : 3 : [[ [4..] ]]
19:01:22 <tomsmeding> no, that is 1 : 2 : 4 : 8 : 16 : ...
19:01:57 <tomsmeding> the question, what is the type of [[_]]
19:02:04 <tomsmeding> Expression -> ?
19:02:05 <EvanR> no, it's not xD
19:02:34 <EvanR> syntax -> semantics
19:02:49 <tomsmeding> EvanR: any finite-length sequence of N numbers followed by "..." can mean anything you want, just fit an N-degree polynomial to it :p
19:03:03 <EvanR> well I clarified to something that doesn't use ...
19:03:08 <tomsmeding> what is the precise semantical domain, was my question ;)
19:03:12 <tomsmeding> yes I was joking
19:03:35 <haskellbridge> <thirdofmay18081814goya> tomsmeding: do we absolutely need one
19:03:39 <haskellbridge> <thirdofmay18081814goya> can't we reason by rewriting?
19:03:40 <EvanR> you see authors say that the semantic 1 2 3 etc are "the numbers 1 2 and 3"
19:04:00 <tomsmeding> EvanR: your equality ([[1 : l]] = 1 : [[l]]) looks nice, but that looks awfully like the semantical domain is "Haskell", which is circular :p
19:04:18 <haskellbridge> <thirdofmay18081814goya> like i'm trying to avoid domain theory
19:04:22 <EvanR> it looks that way doesn't it
19:04:26 <tomsmeding> we can definitely reason by rewriting, and then this [[1 : l]] = 1 : [[l]] equality is fine
19:04:27 <EvanR> but it's not haskell
19:04:38 <monochrom> You cannnot avoid domain theory for infinite lists.
19:04:58 <monochrom> or at least, for Haskell infinite lists.
19:05:16 <tomsmeding> but if you reason by rewriting, you've defined small-step operational semantics, which is not at all the same as denotational semantics, which is I think what you were originally looking for
19:06:15 <EvanR> syntax -> syntax as a semantics doesn't work in haskell because, for one thing infinite stuff
19:07:13 <EvanR> and the program that freezes up and produces nothing doesn't have a form
19:07:23 <EvanR> you rewrite to empty string? ... no
19:08:49 <monochrom> syntax -> syntax as a semantics is OK. It is just operational or equational or axiomatic instead of denotational.
19:09:09 <EvanR> it's often the case that haskell is easy to reason about when you pretend ⊥ doesn't happen. But if ⊥ happens it gets more complicated
19:09:56 <haskellbridge> <thirdofmay18081814goya> hm, what sort of operational semantics could distinguish between "[1..]" and "fix \x -> x + 0"?
19:10:15 <EvanR> that's easy
19:10:28 <EvanR> try to evaluate either to WHNF
19:10:56 <EvanR> the results are distinguishable
19:11:05 <EvanR> by a competent jury
19:11:23 <tomsmeding> operational semantics only describes the next step in evaluation; it doesn't go all the way to the end
19:11:38 <monochrom> [1..] is simply enumFrom 1 (as a thunk)
19:12:17 <EvanR> if the next step is WHNF, they behave different on the first step
19:12:25 <monochrom> If you WHNF it, it's probably something like 0 : enumFrom (0+1), fullstop.
19:13:05 <haskellbridge> <thirdofmay18081814goya> hm I see
19:13:07 <monochrom> whereas fix \x -> x + 0 won't have a WHNF
19:14:18 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
19:15:07 <monochrom> err, 1 : enumFrom (1+1). Why doesn't everyone start from 0?
19:15:25 <tomsmeding> to keep you on your toes :)
19:15:30 <tomsmeding> ever programmed APL?
19:15:35 <monochrom> I can understand why people in real analysis starting from 1.
19:15:37 <EvanR> because 1 is first duh
19:15:43 <EvanR> 0 is zeroth
19:15:43 <monochrom> 0st.
19:16:42 <tomsmeding> ( https://aplwiki.com/wiki/Index_origin )
19:17:45 × ash3en quits (~Thunderbi@2a02:3100:7e98:4100:89bf:d133:e52a:2d93) (Quit: ash3en)
19:18:13 ash3en joins (~Thunderbi@2a02:3100:7e98:4100:89bf:d133:e52a:2d93)
19:20:28 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
19:22:08 img joins (~img@user/img)
19:22:58 machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net)
19:23:58 <probie> I think most modern APL uses `⎕IO←0`. Without it, you can't index an array with a boolean, which is inconvenient
19:24:58 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
19:26:50 <haskellbridge> <thirdofmay18081814goya> hm yeah, no satisfactory way to reason about "[1..]" vs "fix \x -> x + 0" without more theory. or limited to operational semantics we might say something like, "[1..]" has intermediary WHNF forms
19:27:31 <tomsmeding> I think what monochrom was getting at, is that perhaps [[_]] should only evaluate to WHNF
19:28:39 <haskellbridge> <thirdofmay18081814goya> oh, and the non-terminating behaviour of "ghci> [1..]" would be something due to the Show derivation
19:28:44 <tomsmeding> then the codomain of [[_]] would be "values with thunks", "values" being finite combinations of data constructors
19:28:47 × troydm quits (~troydm@user/troydm) (Ping timeout: 255 seconds)
19:29:01 <tomsmeding> [[ [1..] ]] = [[1]] : [[ [2..] ]]
19:29:41 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
19:29:47 <tomsmeding> perhaps less ambiguously written: [[ [1..] ]] = Thunk{1} : Thunk{[2..]}, where `Thunk{E}` is a thunk resulting from not evaluating expression E
19:30:25 <tomsmeding> [[ undefined ]] = ⊥
19:30:42 <haskellbridge> <thirdofmay18081814goya> hm I see
19:30:49 <tomsmeding> but [[ [undefined] ]] = Thunk{undefined} : []
19:31:05 <tomsmeding> (perhaps that [] should be in a Thunk{}; not sure)
19:31:46 <tomsmeding> I feel like one could make this formal
19:32:44 <dolio> Describing printing 'useful' output forever as 'non-terminating' is crude, if the latter is also what is used to describe a non-productive loop.
19:33:16 <tomsmeding> (and indeed, with this WHNF definition of [[_]], [1..] terminates!)
19:34:37 × ash3en quits (~Thunderbi@2a02:3100:7e98:4100:89bf:d133:e52a:2d93) (Quit: ash3en)
19:34:58 <haskellbridge> <thirdofmay18081814goya> tomsmeding: yeah I think that works, what was skewing my interpretation was that "ghci> [1..]" evaluates all thunks in "[1..]"
19:35:14 <tomsmeding> that's because it tries to evaluate `show [1..]` to NF
19:35:15 <haskellbridge> <thirdofmay18081814goya> dolio: yeah that's what I was trying to fix
19:35:59 <haskellbridge> <thirdofmay18081814goya> right, and "show" is strict
19:36:18 <dolio> No, it isn't.
19:36:24 <tomsmeding> note that I wrote "NF", not "WHNF"
19:36:45 <tomsmeding> `show` on [Int] happens to be strict, though
19:37:24 target_i joins (~target_i@user/target-i/x-6023099)
19:38:03 <dolio> > show (undefined :: [Int])
19:38:04 <lambdabot> "*Exception: Prelude.undefined
19:39:19 michalz_ joins (~michalz@185.246.207.222)
19:40:24 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
19:41:16 × michalz quits (~michalz@185.246.207.193) (Ping timeout: 272 seconds)
19:42:28 <dolio> I don't think show is strict on any type.
19:42:46 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 260 seconds)
19:43:36 <tomsmeding> > show (undefined :: [Int]) `seq` ()
19:43:38 <lambdabot> *Exception: Prelude.undefined
19:43:38 <haskellbridge> <thirdofmay18081814goya> dolio: don't we have "show undefined" throwing an error on any type for "undefined"?
19:43:54 <tomsmeding> dolio: what do you mean precisely? It seems strict to me
19:44:18 <tomsmeding> `show` is not strict if the Show instance for the type in question does not define a strict `show` :p
19:44:22 gmg joins (~user@user/gehmehgeh)
19:44:26 <tomsmeding> instance Show MyFoolishType where show _ = "foolish"
19:44:59 <dolio> Oh, I guess it's the extra layer of show that's non-strict.
19:45:14 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
19:45:18 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
19:45:25 <tomsmeding> you mean the `"` being printed?
19:45:32 <tomsmeding> yeah that's `show . show` not being strict :p
19:45:38 <dolio> Yeah. That's String show. I was confusing myself.
19:45:47 × michalz_ quits (~michalz@185.246.207.222) (Remote host closed the connection)
19:46:16 <EvanR> > show (undefined :: [Char])
19:46:17 <lambdabot> "\"*Exception: Prelude.undefined
19:47:12 <dolio> Anyhow, show being strict for various types is not relevant to the infintie list example.
19:48:15 <haskellbridge> <thirdofmay18081814goya> maybe non-terminating is still useful here? since "[1..]" is terminating when not evaluated strictly?
19:48:37 michalz joins (~michalz@185.246.207.205)
19:48:45 <dolio> [1..] is well-defined, so being strict in it is fine.
19:48:47 <EvanR> you're just conflating at least two different senses of "non-terminating"
19:48:58 <EvanR> just admit that it means different things
19:49:00 <dolio> > [1..] `seq` ()
19:49:01 <tomsmeding> [1..] does not have a normal form, but it does have a weak-head normal form
19:49:01 <lambdabot> ()
19:49:17 <tomsmeding> that is to say: in WHNF evaluation it terminates; in NF evaluation it does not
19:49:44 <dolio> And showing [1..] produces an infinite string, which will then be printed infinitely.
19:49:47 <tomsmeding> ghci NF-evaluates `show E` where E is what you entered; for [Int], NF-evaluating `show` happens to NF-evaluate the argument
19:49:48 <EvanR> or just stick to more technical and specific stuff like WHNF
19:50:16 <haskellbridge> <thirdofmay18081814goya> doesn't haskell only do "WHNF" evaluation?
19:50:22 <haskellbridge> <thirdofmay18081814goya> * WHNF
19:50:31 <EvanR> > rnf [1..]
19:50:32 <lambdabot> error: Variable not in scope: rnf :: [a0] -> t
19:50:50 <EvanR> you can use the deepseq package to ask for normal forms
19:51:27 <EvanR> though it's often more practical to use strict fields or bang patterns for some purpose
19:51:46 × michalz quits (~michalz@185.246.207.205) (Remote host closed the connection)
19:51:54 <EvanR> strict fields changes how data gets evaluated when
19:52:34 <haskellbridge> <thirdofmay18081814goya> right, don't we have NF evaluation of an argument only when a function is strict in that argument?
19:52:44 <EvanR> that's not what strict means
19:53:00 <tomsmeding> "strict" in haskell refers to WHNF
19:53:03 <tomsmeding> not to NF :)
19:53:16 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
19:53:55 <EvanR> strict also means specifically that a function necessarily ⊥s when presented with ⊥
19:54:24 michalz joins (~michalz@185.246.207.205)
19:54:36 <EvanR> which doesn't require normal forms to happen
19:55:49 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
19:55:52 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 265 seconds)
19:56:25 <dolio> > show (1:2:3:4:undefined)
19:56:26 <lambdabot> "[1,2,3,4*Exception: Prelude.undefined
19:58:17 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 265 seconds)
19:58:28 <haskellbridge> <thirdofmay18081814goya> ah right I was getting confused. if "f" is strict in "x", "x" still only gets evaluated to the next WHNF
19:58:53 <tomsmeding> well, "f is strict" means that x gets evaluated _at least_ to WHNF
19:58:57 <tomsmeding> f might evaluate x further
19:59:10 <tomsmeding> `length . show` evaluates a whole lot, typically
19:59:18 <dolio> id is strict
19:59:30 <EvanR> haha yeah
19:59:40 <EvanR> strict without having to evaluate anything at all!
20:00:06 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
20:00:22 <EvanR> where do all these random associations between evaluation and strictness come from!
20:00:34 <haskellbridge> <thirdofmay18081814goya> profound confusion
20:01:04 <mauke> const undefined is strict
20:07:34 <tomsmeding> GHC's demand analysis calls 'const undefined' "hyper-strict", and 'id' "lazy"
20:07:54 <tomsmeding> comparing https://play.haskell.org/saved/J0yapC7k with the table halfway down https://bgamari.github.io/posts/2015-01-19-understanding-ghc-core.html
20:11:14 justsomeguy joins (~justsomeg@user/justsomeguy)
20:11:15 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
20:11:26 stef204 joins (~stef204@user/stef204)
20:13:59 <EvanR> good, that settles another myth, that lazy = non-strict
20:14:41 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
20:14:45 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
20:15:41 × ddellacosta quits (~ddellacos@ool-44c73c8f.dyn.optonline.net) (Ping timeout: 252 seconds)
20:16:18 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
20:16:21 <tomsmeding> I always get annoyed that there is not a single up-to-date source of truth to what the demand annotation notation means
20:16:36 <tomsmeding> that blog post is from 2015 and it seems outdated, because I get 1L from GHC and the blog post describes 1*L
20:16:51 <tomsmeding> I never can find anything in the source, and the wiki also doesn't seem to have anything
20:16:57 ddellacosta joins (~ddellacos@ool-44c73c8f.dyn.optonline.net)
20:17:09 <tomsmeding> but the GHC source makes _extensive_ use of the notation in Notes in the demand analyser
20:17:28 <tomsmeding> with gems like P(AAAdAAAAA)
20:17:51 Guest1 joins (~Guest1@198.181.38.121.16clouds.com)
20:18:06 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
20:23:33 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 246 seconds)
20:25:52 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
20:26:40 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
20:26:59 × Guest1 quits (~Guest1@198.181.38.121.16clouds.com) (Ping timeout: 256 seconds)
20:27:46 × ddellacosta quits (~ddellacos@ool-44c73c8f.dyn.optonline.net) (Ping timeout: 265 seconds)
20:27:47 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
20:31:17 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
20:37:01 ash3en joins (~Thunderbi@2a02:3100:7e98:4100:89bf:d133:e52a:2d93)
20:40:44 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 260 seconds)
20:42:06 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
20:43:01 son0p joins (~ff@186.121.18.131)
20:44:03 × michalz quits (~michalz@185.246.207.205) (Remote host closed the connection)
20:46:38 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
20:46:38 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds)
20:47:00 × ash3en quits (~Thunderbi@2a02:3100:7e98:4100:89bf:d133:e52a:2d93) (Quit: ash3en)
20:47:15 benjaminl_ joins (~benjaminl@c-76-144-12-233.hsd1.or.comcast.net)
20:48:54 × benjaminl quits (~benjaminl@user/benjaminl) (Ping timeout: 260 seconds)
20:50:39 ash3en joins (~Thunderbi@2a02:3100:7e98:4100:89bf:d133:e52a:2d93)
20:51:49 ddellacosta joins (~ddellacos@ool-44c73c8f.dyn.optonline.net)
20:53:37 × neuroevolutus quits (~neuroevol@37.19.200.148) (Ping timeout: 256 seconds)
20:53:52 × cpressey quits (~weechat@176.254.71.203) (Ping timeout: 265 seconds)
20:54:27 alexherbo2 joins (~alexherbo@2a02-8440-3109-4750-f47c-92a3-9b35-3df5.rev.sfr.net)
20:57:30 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
21:00:24 cpressey joins (~weechat@176.254.71.203)
21:01:53 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
21:10:51 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
21:13:29 × spew quits (~spew@201.141.102.132) (Quit: brb)
21:13:50 spew joins (~spew@201.141.102.132)
21:15:33 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
21:18:09 × cpressey quits (~weechat@176.254.71.203) (Ping timeout: 246 seconds)
21:24:22 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
21:24:38 × spew quits (~spew@201.141.102.132) (Quit: too much light)
21:26:16 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
21:31:05 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
21:32:23 <__monty__> The User's Guide does mention the notation. Not sure whether it's up to date nor whether it's as detailed as you want though.
21:41:42 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
21:42:14 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
21:44:53 cpressey joins (~weechat@176.254.71.203)
21:46:18 × xal quits (~xal@mx1.xal.systems) (Quit: bye)
21:46:29 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
21:46:41 × ash3en quits (~Thunderbi@2a02:3100:7e98:4100:89bf:d133:e52a:2d93) (Read error: Connection reset by peer)
21:48:00 <tomsmeding> oh _there_ it was!
21:48:03 <tomsmeding> __monty__: thanks
21:48:09 xal joins (~xal@mx1.xal.systems)
21:52:30 × oo_miguel quits (~Thunderbi@78.10.207.45) (Ping timeout: 276 seconds)
21:57:08 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
22:02:30 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
22:02:40 × son0p quits (~ff@186.121.18.131) (Quit: Leaving)
22:06:04 × Pixi` quits (~Pixi@user/pixi) (Quit: Leaving)
22:06:58 × cpressey quits (~weechat@176.254.71.203) (Quit: WeeChat 4.3.0)
22:07:30 ash3en joins (~Thunderbi@2a02:3100:7e98:4100:89bf:d133:e52a:2d93)
22:08:42 × ash3en quits (~Thunderbi@2a02:3100:7e98:4100:89bf:d133:e52a:2d93) (Client Quit)
22:10:23 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
22:10:26 ash3en joins (~Thunderbi@2a02:3100:7e98:4100:89bf:d133:e52a:2d93)
22:12:53 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
22:17:32 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
22:20:54 × ash3en quits (~Thunderbi@2a02:3100:7e98:4100:89bf:d133:e52a:2d93) (Quit: ash3en)
22:22:43 ash3en joins (~Thunderbi@2a02:3100:7e98:4100:89bf:d133:e52a:2d93)
22:28:18 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
22:30:04 <zero> i'm trying to get my head aroud the Tardis Monad. any good resource?
22:30:41 Sgeo joins (~Sgeo@user/sgeo)
22:31:30 <probie> <joke>Yes, but they're all in the future</joke>
22:32:01 <Rembane> zero: Like this? https://blog.csongor.co.uk/time-travel-in-haskell-for-dummies/
22:32:17 × ash3en quits (~Thunderbi@2a02:3100:7e98:4100:89bf:d133:e52a:2d93) (Remote host closed the connection)
22:32:29 ash3en joins (~Thunderbi@2a02:3100:7e98:4100:89bf:d133:e52a:2d93)
22:34:24 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
22:35:29 rekahsoft joins (~rekahsoft@bras-base-orllon1103w-grc-02-184-145-10-5.dsl.bell.ca)
22:35:44 × AlexNoo quits (~AlexNoo@178.34.150.250) (Read error: Connection reset by peer)
22:36:07 AlexNoo joins (~AlexNoo@178.34.150.250)
22:36:29 × alexherbo2 quits (~alexherbo@2a02-8440-3109-4750-f47c-92a3-9b35-3df5.rev.sfr.net) (Remote host closed the connection)
22:36:52 <dmj`> when did "Just v <- M.lookup k m = v" become "non-standard" pattern guard usage
22:37:10 <dmj`> "| Just v <- " ...
22:38:21 <probie> context?
22:39:01 finsternis joins (~X@23.226.237.192)
22:41:09 <dmj`> just getting this warning
22:42:19 × ash3en quits (~Thunderbi@2a02:3100:7e98:4100:89bf:d133:e52a:2d93) (Quit: ash3en)
22:42:27 <dmj`> but its clearly part of the 2010 spec
22:44:52 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
22:46:06 <zero> Rembane: that's the one i just read :)
22:46:19 <haskellbridge> <magic_rb> "Just value <- lookup key map = value` is weird, what i are you trying to achieve?
22:46:40 <geekosaur> looks sensible to me as a pattern guard
22:46:47 <Rembane> zero: Sweet, that's the only one I've seen so far. :)
22:47:04 <haskellbridge> <magic_rb> Inside a monadic assignment thingie?
22:47:08 <geekosaur> "if the result of `lookup key map` is `Just v`, produce `v`"
22:47:20 <geekosaur> it's not monadic assignment, it's a pttern guard
22:47:24 <haskellbridge> <magic_rb> Huh, what if it is not? Exception
22:47:40 <geekosaur> no, if it's not, the guard fails to match
22:47:50 <geekosaur> look up pattern guards
22:48:04 <haskellbridge> <magic_rb> I know about those, i just never seen that form, or im too tired
22:48:36 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection timed out)
22:48:41 <haskellbridge> <magic_rb> Okay i guess i dont know about those
22:48:48 <haskellbridge> <magic_rb> Well, TIL
22:50:00 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
22:52:21 <zero> why do we need parenthesis around Data.Map.!? in `:type (Data.Map.!?)` inside ghci?
22:53:21 <zero> ah i guess i get it
22:53:25 <zero> needs to be an expression
22:56:12 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 276 seconds)
22:57:53 <jle`> zero: fwiw :info Data.Map.!? works
23:00:08 AlexNoo_ joins (~AlexNoo@178.34.150.250)
23:00:17 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
23:03:16 × AlexNoo quits (~AlexNoo@178.34.150.250) (Ping timeout: 252 seconds)
23:04:18 <dmj`> geekosaur: ghc 9.6.5 thinks otherwise :(
23:04:20 son0p joins (~ff@2800:e2:f80:ee7::1)
23:04:36 <dmj`> magic_rb: there's soft pattern match failures, like what catMaybes does
23:04:41 <dmj`> @src catMaybes
23:04:41 <lambdabot> catMaybes ls = [x | Just x <- ls]
23:05:17 <dmj`> pattern match failure in guards soft fail like the ones in list comps
23:05:51 <dmj`> | Just (TVar k) <- M.lookup t s = TVar k
23:06:18 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
23:07:00 <zero> jle`: yup, :info works with identifiers, :type works with expressions
23:07:17 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
23:08:23 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:10:54 justsomeguy joins (~justsomeg@user/justsomeguy)
23:16:45 dorin joins (~dorin@user/dorin)
23:17:11 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
23:17:45 <dmj`> foldl' finally made it into the Prelude, never thought I'd see the day
23:18:05 <dmj`> * fights back tears *
23:18:37 <EvanR> one down, like 900 other things that should be in prelude to go xD
23:20:07 × sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 252 seconds)
23:21:36 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
23:21:42 <dmj`> base should just eat mtl, transformers, text, aeson, time, haddock, cabal, etc. maybe more boot packages
23:21:46 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
23:24:45 <EvanR> batteries
23:26:12 <probie> I don't think aeson belongs on that list
23:27:13 × stef204 quits (~stef204@user/stef204) (Quit: WeeChat 4.2.1)
23:27:41 <dmj`> EvanR: boom
23:27:45 <probie> It's too opinionated and has (what I consider to be) the wrong opinions (I'm not a fan of `ToJSON`/`FromJSON` typeclasses, because how to serialise depends on context and isn't a property a type itself)
23:29:42 <EvanR> what other json libraries are there
23:29:52 <dmj`> https://hackage.haskell.org/package/ghc-9.10.1/docs/GHC-Utils-Json.html
23:31:04 <zero> i dont think mtl, transformers, aeson and time belong on that list
23:31:12 <zero> not sure about haddock and cabal
23:31:32 <probie> https://hackage.haskell.org/package/waargonaut
23:32:36 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
23:33:07 <glguy> putting things into base just makes them harder to upgrade, not easier to use
23:33:46 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 260 seconds)
23:34:08 <zero> exactly
23:34:30 <dolio> mtl was split out of base long ago.
23:35:24 <zero> mtl serves a very opinionated pattern that many refuse to use
23:35:42 ChaiTRex joins (~ChaiTRex@user/chaitrex)
23:36:02 <zero> it would be like having lens libraries in base
23:36:55 <dmj`> if we could divorce ghc from base that might help, or base from ghc rather. I think parts of the rts depend on base
23:37:07 <geekosaur> it's in progress
23:37:13 <zero> that would be nice
23:37:39 <dmj`> well, well
23:37:48 <geekosaur> there are a very few things, mostly ghc wired-in things, that depend on base. those are being moved to ghc-base, which is intended to be minimal
23:38:06 <geekosaur> (you will see ghc-base already in 9.10 and I think 9.8)
23:38:06 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
23:38:29 <dmj`> is this the balkanization effort Ericson was / is working on
23:38:47 <zero> and hopefully updated once in a blue moon
23:39:14 L29Ah joins (~L29Ah@wikipedia/L29Ah)
23:40:00 <geekosaur> similarly there are things being moved to ghc-internal, but that's more complicated as it'll depend to some extent on the "actually standardize ghc-api" effort which is still in the planning phase
23:40:46 <geekosaur> don't recall who's working on it, have seen some discussion though
23:40:56 <dmj`> what if we just imported everything into a single module, and let the optimizer do it's thing, don't rely on interface files
23:41:41 <geekosaur> isn't that effectively WPC?
23:41:41 <c_wraith> there are some things in GHC that are superlinear in module size, but not in module count
23:41:45 <zero> things keep moving in a good direction
23:41:45 <zero> slowly but steadily
23:43:46 <zero> someone once explained in detail why WPC is not posssible in haskell
23:44:08 <dmj`> zero: do you have a link to that?
23:44:57 <dmj`> geekosaur: yea, but its still optimizations on a higher order IR, if we defunctionalized first we'd probably have better results with optimization
23:44:58 <geekosaur> the GRIN project was working on that. sadly I think it stalled, possibly over the superlinearity issue
23:45:14 <zero> unfortunately i lost most my IRC logs from that time, but maybe they can be found at ircbrowse.tomsmeding.com
23:45:22 <zero> it was a few years ago though
23:46:21 <geekosaur> sadly its search doesn't work and I think search engines and such are prohibited from indexing it?
23:46:53 <dmj`> zero: if its possible in ocaml w/ mlton, shouldn't be a problem w/ haskell
23:47:29 <dmj`> ocaml has gadts and higher order functions
23:49:17 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
23:49:35 <geekosaur> I'm not aware of any explanations of why WPC would be impossible. I am aware of an explanation of why even with WPC it's not possible to eliminate typeclass dictionaries at compile time; might that have been what you remember?
23:50:00 <geekosaur> (polymorphic recursion)
23:53:57 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
23:55:59 <dmj`> rust just disables polymorphic recursion iirc, for haskell we could compile it differently. Instead of just attempting to inline into oblivion, there is a technique called intensional type analysis (that oleg discusses) that detects polymorphic recursion and basically constructs a mini interpreter from the type language. Converts it into a recursive expression tree
23:56:05 <dmj`> https://okmij.org/ftp/Computation/typeclass.html#intensional
23:56:39 <dmj`> I think flix.dev disables it too, as a "feature"
23:56:51 <dmj`> since the gains from inlining are so huge
23:57:49 <dmj`> I'd just disable it first, see how much stuff breaks w/o it

All times are in UTC on 2024-08-26.