2025/01/22

2025-01-22 00:05:04 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 00:05:58 +0100alfiee(alfiee@user/alfiee) (Ping timeout: 244 seconds)
2025-01-22 00:08:49 +0100sprotte24(~sprotte24@p200300d16f040300a9d95df64a090144.dip0.t-ipconnect.de) (Quit: Leaving)
2025-01-22 00:09:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2025-01-22 00:09:33 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-01-22 00:13:54 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 246 seconds)
2025-01-22 00:20:26 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 00:20:31 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2025-01-22 00:21:04 +0100LainExperiments(~LainExper@user/LainExperiments) LainExperiments
2025-01-22 00:25:06 +0100gabriel_sevecek(~gabriel@188-167-229-200.dynamic.chello.sk) (Read error: Connection reset by peer)
2025-01-22 00:25:17 +0100Everything(~Everythin@195.138.86.118) (Quit: leaving)
2025-01-22 00:25:24 +0100LainExperiments6(~LainExper@user/LainExperiments) LainExperiments
2025-01-22 00:25:41 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2025-01-22 00:27:00 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2025-01-22 00:27:38 +0100gabriel_sevecek(~gabriel@188-167-229-200.dynamic.chello.sk) gabriel_sevecek
2025-01-22 00:28:40 +0100LainExperiments(~LainExper@user/LainExperiments) (Ping timeout: 240 seconds)
2025-01-22 00:31:16 +0100dibblego(~dibblego@haskell/developer/dibblego) (Read error: Connection reset by peer)
2025-01-22 00:31:30 +0100dibblego(~dibblego@116-255-1-119.ip4.superloop.au)
2025-01-22 00:31:30 +0100dibblego(~dibblego@116-255-1-119.ip4.superloop.au) (Changing host)
2025-01-22 00:31:30 +0100dibblego(~dibblego@haskell/developer/dibblego) dibblego
2025-01-22 00:34:49 +0100dysthesis(~dysthesis@user/dysthesis) dysthesis
2025-01-22 00:36:23 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 00:38:40 +0100Midjak(~MarciZ@82.66.147.146) (Quit: This computer has gone to sleep)
2025-01-22 00:41:11 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2025-01-22 00:46:51 +0100JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2025-01-22 00:47:11 +0100Xe(~Xe@perl/impostor/xe) (Read error: Connection reset by peer)
2025-01-22 00:49:53 +0100Xe(~Xe@perl/impostor/xe) Xe
2025-01-22 00:51:04 +0100JuanDaughertyColinRobinson
2025-01-22 00:51:45 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 00:57:24 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-22 00:59:58 +0100ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-01-22 01:00:17 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-01-22 01:02:33 +0100alx741(~alx741@186.33.188.229) (Ping timeout: 246 seconds)
2025-01-22 01:02:56 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
2025-01-22 01:02:56 +0100ljdarj1ljdarj
2025-01-22 01:04:21 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 244 seconds)
2025-01-22 01:05:32 +0100 <zero> hellwolf: the ability to do `(0,1) { fst = 2 } ==> (2,1)`
2025-01-22 01:06:40 +0100LainExperiments6(~LainExper@user/LainExperiments) (Ping timeout: 240 seconds)
2025-01-22 01:07:57 +0100WzC(~Frank@77-162-168-71.fixed.kpn.net) (Ping timeout: 252 seconds)
2025-01-22 01:08:27 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 01:11:13 +0100Noinia(~Frank@77-162-168-71.fixed.kpn.net)
2025-01-22 01:12:37 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2025-01-22 01:14:25 +0100 <haskellbridge> <magic_rb> Without lenses it do be a bit awkward to update tuples. But then again if your tuple is 4 or more wide, maybe you should consider a record
2025-01-22 01:14:47 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-01-22 01:18:00 +0100L29Ah(~L29Ah@wikipedia/L29Ah) ()
2025-01-22 01:18:36 +0100L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2025-01-22 01:20:00 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds)
2025-01-22 01:20:59 +0100KicksonButt(~AdminUser@187.21.174.221) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2025-01-22 01:23:04 +0100 <jackdk> Agreed - it's rare indeed that I want even a 3-tuple
2025-01-22 01:23:50 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 01:28:27 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2025-01-22 01:29:41 +0100acidjnk(~acidjnk@p200300d6e7283f1030c548a6d05e3160.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2025-01-22 01:36:16 +0100 <zero> first and second from Data.Bifunctor are useful
2025-01-22 01:36:22 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-01-22 01:36:23 +0100 <zero> :t first
2025-01-22 01:36:24 +0100 <lambdabot> Arrow a => a b c -> a (b, d) (c, d)
2025-01-22 01:36:51 +0100 <zero> first (const 2) (0,1)
2025-01-22 01:36:54 +0100 <zero> > first (const 2) (0,1)
2025-01-22 01:36:55 +0100 <lambdabot> (2,1)
2025-01-22 01:37:33 +0100 <geekosaur> you're reinventing lens, I see
2025-01-22 01:39:22 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 01:39:39 +0100 <geekosaur> in some sense, at least
2025-01-22 01:39:46 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-01-22 01:40:00 +0100 <zero> reiventing lisp
2025-01-22 01:40:51 +0100 <zero> > (fst . snd . snd) (0,(1,(2,3)))
2025-01-22 01:40:53 +0100 <lambdabot> 2
2025-01-22 01:41:28 +0100 <zero> > (fst (snd (snd (0,(1,(2,3))))))
2025-01-22 01:41:30 +0100 <lambdabot> 2
2025-01-22 01:42:12 +0100 <zero> > let (car,cdr) = (fst,snd) in (fst (snd (snd (0,(1,(2,3))))))
2025-01-22 01:42:14 +0100 <lambdabot> 2
2025-01-22 01:42:23 +0100 <zero> > let (car,cdr) = (fst,snd) in (car (cdr (cdr (0,(1,(2,3))))))
2025-01-22 01:42:25 +0100 <lambdabot> 2
2025-01-22 01:42:29 +0100 <zero> there we go
2025-01-22 01:44:09 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2025-01-22 01:44:15 +0100 <zero> i wonder about the efficiency of tuple trees vs idiomatic trees in haskell
2025-01-22 01:51:03 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-01-22 01:52:40 +0100dysthesis(~dysthesis@user/dysthesis) (Remote host closed the connection)
2025-01-22 01:54:43 +0100xff0x(~xff0x@2405:6580:b080:900:8176:27ad:84f:a9f5) (Ping timeout: 264 seconds)
2025-01-22 01:54:45 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 01:55:17 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 248 seconds)
2025-01-22 01:55:26 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2025-01-22 01:59:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2025-01-22 02:01:11 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2025-01-22 02:10:41 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 02:15:30 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2025-01-22 02:20:00 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds)
2025-01-22 02:24:23 +0100mange(~user@user/mange) mange
2025-01-22 02:24:34 +0100ec(~ec@gateway/tor-sasl/ec) ec
2025-01-22 02:25:56 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 02:28:48 +0100otto_s(~user@p5de2f474.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2025-01-22 02:29:12 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-01-22 02:29:48 +0100otto_s(~user@p5de2f486.dip0.t-ipconnect.de)
2025-01-22 02:32:43 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-22 02:40:47 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-01-22 02:41:54 +0100bcksl(~bcksl@user/bcksl) (Quit: \)
2025-01-22 02:41:54 +0100end(~end@user/end/x-0094621) (Quit: end)
2025-01-22 02:43:13 +0100bcksl(~bcksl@user/bcksl) bcksl
2025-01-22 02:43:59 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 02:45:24 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 265 seconds)
2025-01-22 02:45:41 +0100end(~end@user/end/x-0094621) end^
2025-01-22 02:48:47 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2025-01-22 02:50:15 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-01-22 02:59:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 03:00:53 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds)
2025-01-22 03:04:16 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2025-01-22 03:14:44 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 03:16:56 +0100ft(~ft@p3e9bca18.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2025-01-22 03:18:00 +0100ft(~ft@p4fc2a1c1.dip0.t-ipconnect.de) ft
2025-01-22 03:19:01 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2025-01-22 03:21:52 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds)
2025-01-22 03:26:00 +0100poscat(~poscat@user/poscat) (Ping timeout: 252 seconds)
2025-01-22 03:26:16 +0100poscat(~poscat@user/poscat) poscat
2025-01-22 03:28:52 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-01-22 03:30:06 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 03:30:31 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-01-22 03:34:42 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-22 03:34:54 +0100hueso_(~root@user/hueso) hueso
2025-01-22 03:35:01 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 248 seconds)
2025-01-22 03:36:37 +0100hueso_(~root@user/hueso) (Client Quit)
2025-01-22 03:44:22 +0100cy7(~yt@pool-99-238-69-14.cpe.net.cable.rogers.com) (Ping timeout: 265 seconds)
2025-01-22 03:45:30 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 03:49:30 +0100dysthesis(~dysthesis@user/dysthesis) dysthesis
2025-01-22 03:49:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2025-01-22 03:50:25 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-01-22 03:54:20 +0100califax(~califax@user/califx) (Remote host closed the connection)
2025-01-22 03:54:36 +0100califax(~califax@user/califx) califx
2025-01-22 03:55:13 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds)
2025-01-22 03:55:29 +0100ColinRobinsonJuanDaugherty
2025-01-22 03:55:36 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds)
2025-01-22 03:56:05 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-01-22 03:56:47 +0100cy7(~yt@pool-99-238-69-14.cpe.net.cable.rogers.com)
2025-01-22 04:00:51 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 04:02:38 +0100JuanDaughertyColinRobinson
2025-01-22 04:11:00 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-22 04:16:50 +0100j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-01-22 04:17:30 +0100weary-traveler(~user@user/user363627) user363627
2025-01-22 04:20:41 +0100euleritian(~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2025-01-22 04:20:48 +0100j1n37(~j1n37@user/j1n37) j1n37
2025-01-22 04:20:56 +0100euleritian(~euleritia@77.23.250.232)
2025-01-22 04:21:06 +0100ystael(~ystael@user/ystael) (Ping timeout: 265 seconds)
2025-01-22 04:21:15 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-01-22 04:22:04 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 04:22:56 +0100euleritian(~euleritia@77.23.250.232) (Remote host closed the connection)
2025-01-22 04:23:14 +0100euleritian(~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
2025-01-22 04:23:17 +0100euleritian(~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2025-01-22 04:23:34 +0100euleritian(~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
2025-01-22 04:25:41 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 248 seconds)
2025-01-22 04:26:54 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2025-01-22 04:28:40 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-01-22 04:32:38 +0100weary-traveler(~user@user/user363627) user363627
2025-01-22 04:37:26 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 04:41:48 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-22 04:43:15 +0100j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-01-22 04:46:49 +0100j1n37(~j1n37@user/j1n37) j1n37
2025-01-22 04:48:22 +0100AbueloAtrofiado(~AbueloAtr@2806:106e:1b:2d3:3915:1723:c558:3f6b)
2025-01-22 04:48:59 +0100AbueloAtrofiado(~AbueloAtr@2806:106e:1b:2d3:3915:1723:c558:3f6b) (Client Quit)
2025-01-22 04:52:49 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 04:57:09 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2025-01-22 05:05:37 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-01-22 05:05:52 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-01-22 05:08:12 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 05:08:34 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2025-01-22 05:10:59 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-01-22 05:12:35 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-22 05:15:17 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 248 seconds)
2025-01-22 05:18:43 +0100 <jle`> tuple trees are basically type-level trees -- there's that common trick that you can use them to easily overload/timeout typechecking
2025-01-22 05:18:47 +0100dysthesis(~dysthesis@user/dysthesis) (Remote host closed the connection)
2025-01-22 05:19:01 +0100homo(~homo@user/homo) homo
2025-01-22 05:19:45 +0100aforemny(~aforemny@2001:9e8:6ce4:b500:6e75:95aa:3ce2:b258) aforemny
2025-01-22 05:19:49 +0100 <jle`> :t let f x = (x, x) in f . f . f . f . f . f . f . f
2025-01-22 05:19:50 +0100 <lambdabot> b -> ((((((((b, b), (b, b)), ((b, b), (b, b))), (((b, b), (b, b)), ((b, b), (b, b)))), ((((b, b), (b, b)), ((b, b), (b, b))), (((b, b), (b, b)), ((b, b), (b, b))))), (((((b, b), (b, b)), ((b, b), (b,
2025-01-22 05:19:50 +0100 <lambdabot> b))), (((b, b), (b, b)), ((b, b), (b, b)))), ((((b, b), (b, b)), ((b, b), (b, b))), (((b, b), (b, b)), ((b, b), (b, b)))))), ((((((b, b), (b, b)), ((b, b), (b, b))), (((b, b), (b, b)), ((b, b), (b,
2025-01-22 05:19:50 +0100 <lambdabot> b)))), ((((b, b), (b, b)), ((b, b), (b, b))), (((b, b), (b, b)), ((b, b), (b, b))))), (((((b, b), (b, b)), ((b, b), (b, b))), (((b, b), (b, b)), ((b, b), (b, b)))), ((((b, b), (b, b)), ((b, b), (b,
2025-01-22 05:19:50 +0100 <lambdabot> b))), (((b, b), (b, b)), ((b, b), (b, b))))))), (((((((b, b), (b, b)), ((b, b), (b, b))), (((b, b), (b, b)), ((b, b), (b, b)))), ((((b, b), (b, b)), ((b, b), (b, b))), (((b, b), (b, b)), ((b, b), (b,
2025-01-22 05:19:50 +0100 <lambdabot> b))))), (((((b, b), (b, b)), ((b, b), (b, b))), (((b, b), (b, b)), ((b, b), (b, b)))), ((((b, b), (b, b)), ((b, b), (b, b))), (((b, b), (b, b)), ((b, b), (b, b)))))), ((((((b, b), (b, b)), ((b, b),
2025-01-22 05:19:52 +0100 <lambdabot> (b, b))), (((b, b), (b, b)), ((b, b), (b, b)))), ((((b, b), (b, b)), ((b, b), (b, b))), (((b, b), (b, b)), ((b, b), (b, b))))), (((((b, b), (b, b)), ((b, b), (b, b))), (((b, b), (b, b)), ((b, b), (b,
2025-01-22 05:19:54 +0100 <lambdabot> b)))), ((((b, b), (b, b)), ((b, b), (b, b))), (((b, b), (b, b)), ((b, b), (b, b))))))))
2025-01-22 05:19:58 +0100 <jle`> oh sorry i didn't realize that would actually evaluate
2025-01-22 05:20:36 +0100aforemny_(~aforemny@2001:9e8:6cc6:4600:1315:1249:75e2:82ec) (Ping timeout: 276 seconds)
2025-01-22 05:23:34 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 05:27:45 +0100 <monochrom> But yeah it's exponential length output so exponential time so we're cool. :)
2025-01-22 05:28:00 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-22 05:28:18 +0100 <geekosaur> most of the slowdown there, though, was lambdabot throttling so it didn't get kicked for flooding…
2025-01-22 05:28:38 +0100 <geekosaur> ghc was done with its delay when the first line came out
2025-01-22 05:33:15 +0100agent314(~quassel@208.131.130.69) agent314
2025-01-22 05:33:47 +0100halloy1022(~halloy102@111.65.75.121)
2025-01-22 05:34:01 +0100halloy1022(~halloy102@111.65.75.121) (Remote host closed the connection)
2025-01-22 05:35:58 +0100 <homo> exciting good news https://github.com/augustss/MicroHs/tree/hugs
2025-01-22 05:38:45 +0100 <haskellbridge> <sm> sounds cool, what will it mean ?
2025-01-22 05:38:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 05:43:44 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2025-01-22 05:54:19 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 05:58:48 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-22 06:01:43 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-01-22 06:06:07 +0100 <jackdk> MicroHs will be buildable from Hugs, meaning that we have at least one actively developed Haskell compiler that's bootstrappable from C, which means you could if you wanted root its bootstrap chain in hex0, the couple-hundred-byte assembler
2025-01-22 06:06:08 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-01-22 06:07:56 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 06:11:55 +0100 <geekosaur> I have to say I still don't see the point. The only thing I can think of is vetting the entire build chain, but the xz exploit demonstrated that "Reflections on Trusting Trust" is still with us and only gets worse with every new link in the chain
2025-01-22 06:12:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-22 06:15:15 +0100 <geekosaur> (so you're going to vet patches. (a) damn lot of patches in something as old as gcc; (b) Alice strings together 30 patches, each innocuous but together you get the xz exploit. Will you catch that?)
2025-01-22 06:16:04 +0100tnt2(~Thunderbi@user/tnt1) tnt1
2025-01-22 06:16:10 +0100tnt1(~Thunderbi@user/tnt1) (Ping timeout: 272 seconds)
2025-01-22 06:16:10 +0100tnt2tnt1
2025-01-22 06:23:15 +0100 <mange> Isn't the point of "reflections on trusting trust" that the exploit survives in the binary alone? Bootstrapping at least ensures we can find the exploit in source, eventually.
2025-01-22 06:23:18 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 06:25:38 +0100 <geekosaur> that's just one way to do it. the one I described above is another. there are a lot of exploits possible; RoTT isn't about a single specific form of exploit but the entire class. it uses the specific one as an example
2025-01-22 06:28:12 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2025-01-22 06:31:15 +0100 <probie> geekosaur: It's no security panacea, but it still reduces the number of parties you need to trust
2025-01-22 06:38:42 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 06:43:17 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2025-01-22 06:43:32 +0100ColinRobinson(~juan@user/JuanDaugherty) (Ping timeout: 252 seconds)
2025-01-22 06:45:46 +0100bgamari(~bgamari@64.223.233.64) (Remote host closed the connection)
2025-01-22 06:45:51 +0100fmira(~user@user/fmira) fmira
2025-01-22 06:46:46 +0100acidjnk(~acidjnk@p200300d6e7283f9028c796acceb77e24.dip0.t-ipconnect.de) acidjnk
2025-01-22 06:47:14 +0100bgamari(~bgamari@64.223.233.64)
2025-01-22 06:53:07 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-01-22 06:54:05 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 06:56:05 +0100 <homo> geekosaur even without security concern, for academic haskell this is proof where each binary comes from, guix is a very cool distro for science
2025-01-22 06:57:07 +0100ft(~ft@p4fc2a1c1.dip0.t-ipconnect.de) (Quit: leaving)
2025-01-22 06:58:06 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 276 seconds)
2025-01-22 06:58:45 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2025-01-22 07:04:02 +0100 <homo> also xz situation shows why free software is important: you can fix it on source level (instead of disassembling binary) and you can legally share your fixes with other people
2025-01-22 07:04:35 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2025-01-22 07:08:56 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 07:14:04 +0100michalz(~michalz@185.246.207.205)
2025-01-22 07:15:39 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2025-01-22 07:19:14 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2025-01-22 07:19:35 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-01-22 07:21:36 +0100acidjnk(~acidjnk@p200300d6e7283f9028c796acceb77e24.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2025-01-22 07:23:43 +0100 <homo> btw, the following patch is required to be applied to hugs to ignore integer overflow https://github.com/augustss/hugs98-plus-Sep2006/commit/a87d3a15194e4d7724627e43a94ac1d12ab78f9c.pa…
2025-01-22 07:25:25 +0100agent314(~quassel@208.131.130.69) (Ping timeout: 248 seconds)
2025-01-22 07:27:00 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 07:31:33 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-22 07:32:55 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-01-22 07:39:32 +0100aforemny_(~aforemny@i59F4C565.versanet.de) aforemny
2025-01-22 07:40:24 +0100aforemny(~aforemny@2001:9e8:6ce4:b500:6e75:95aa:3ce2:b258) (Ping timeout: 272 seconds)
2025-01-22 07:42:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 07:42:51 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-01-22 07:46:31 +0100beaky_beaky
2025-01-22 07:46:58 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-22 07:47:17 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 248 seconds)
2025-01-22 07:49:31 +0100euleritian(~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2025-01-22 07:49:44 +0100euleritian(~euleritia@dynamic-176-006-129-235.176.6.pool.telefonica.de)
2025-01-22 07:53:21 +0100acidjnk(~acidjnk@p200300d6e7283f902c848c46912cda18.dip0.t-ipconnect.de) acidjnk
2025-01-22 07:57:44 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 08:05:06 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2025-01-22 08:08:07 +0100rvalue(~rvalue@user/rvalue) (Read error: Connection reset by peer)
2025-01-22 08:08:39 +0100rvalue(~rvalue@user/rvalue) rvalue
2025-01-22 08:09:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 08:14:29 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2025-01-22 08:25:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-22 08:27:11 +0100Square2(~Square4@user/square) Square
2025-01-22 08:29:51 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2025-01-22 08:33:15 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-01-22 08:33:40 +0100sawilagar(~sawilagar@user/sawilagar) sawilagar
2025-01-22 08:37:33 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 246 seconds)
2025-01-22 08:37:41 +0100agent314(~quassel@208.131.130.89) agent314
2025-01-22 08:37:50 +0100tnt2(~Thunderbi@user/tnt1) tnt1
2025-01-22 08:39:01 +0100tnt1(~Thunderbi@user/tnt1) (Ping timeout: 252 seconds)
2025-01-22 08:39:04 +0100tnt2tnt1
2025-01-22 08:42:18 +0100bgamari(~bgamari@64.223.233.64) (Quit: ZNC 1.8.2 - https://znc.in)
2025-01-22 08:43:42 +0100bgamari(~bgamari@64.223.233.64)
2025-01-22 08:47:18 +0100ZLima12(~zlima12@user/meow/ZLima12) (Ping timeout: 276 seconds)
2025-01-22 08:47:27 +0100ZLima12_(~zlima12@user/meow/ZLima12) ZLima12
2025-01-22 08:50:27 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-01-22 08:54:25 +0100igemnace_igemnace
2025-01-22 08:55:52 +0100sord937(~sord937@gateway/tor-sasl/sord937) sord937
2025-01-22 09:00:01 +0100caconym(~caconym@user/caconym) (Quit: bye)
2025-01-22 09:00:38 +0100caconym(~caconym@user/caconym) caconym
2025-01-22 09:02:32 +0100 <[exa]> wow, cool news from microhs. One could ask if microhs could bootstrap ghc then
2025-01-22 09:08:45 +0100tnt2(~Thunderbi@user/tnt1) tnt1
2025-01-22 09:10:08 +0100tnt1(~Thunderbi@user/tnt1) (Ping timeout: 265 seconds)
2025-01-22 09:10:08 +0100tnt2tnt1
2025-01-22 09:10:33 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) Smiles
2025-01-22 09:12:05 +0100acidjnk(~acidjnk@p200300d6e7283f902c848c46912cda18.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2025-01-22 09:22:04 +0100dtman34(~dtman34@2601:447:d000:1f5e:1cea:b288:f5aa:1b03) (Quit: ZNC 1.8.2+deb3.1 - https://znc.in)
2025-01-22 09:22:25 +0100dtman34(~dtman34@2601:447:d000:1f5e:5054:ff:fee3:b667) dtman34
2025-01-22 09:22:46 +0100merijn(~merijn@77.242.116.146) merijn
2025-01-22 09:24:19 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-01-22 09:24:35 +0100euleritian(~euleritia@dynamic-176-006-129-235.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2025-01-22 09:25:11 +0100euleritian(~euleritia@ip2504f9f4.dynamic.kabel-deutschland.de)
2025-01-22 09:27:39 +0100gmg(~user@user/gehmehgeh) gehmehgeh
2025-01-22 09:27:58 +0100kuribas(~user@ptr-17d51emnohepwfpyix2.18120a2.ip6.access.telenet.be) kuribas
2025-01-22 09:28:37 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 244 seconds)
2025-01-22 09:29:38 +0100tnt2(~Thunderbi@user/tnt1) tnt1
2025-01-22 09:29:58 +0100tnt1(~Thunderbi@user/tnt1) (Ping timeout: 272 seconds)
2025-01-22 09:29:59 +0100tnt2tnt1
2025-01-22 09:35:16 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds)
2025-01-22 09:39:06 +0100Square(~Square@user/square) Square
2025-01-22 09:39:59 +0100 <kqr> I feel like I'
2025-01-22 09:40:04 +0100 <kqr> Oops, premature return. Sorry!
2025-01-22 09:41:11 +0100 <kqr> I feel like I'm missing something obvious here. I have a Data.Fixed number, and I want to stringify it with just the precision needed. I.e. something like 200 becomes "200", 5 becomes "5", while 0.1 becomes "0.1", and 0.003 is "0.003". I could do this manually, of course, but there ought to be something to help me, right?
2025-01-22 09:48:25 +0100acidjnk(~acidjnk@p200300d6e7283f9071ccd1d777a13b28.dip0.t-ipconnect.de) acidjnk
2025-01-22 09:49:09 +0100 <opqdonut> kqr: showFixed, "First arg is whether to chop off trailing zeros"
2025-01-22 09:53:35 +0100alexherbo2(~alexherbo@2a02-8440-350e-d10b-25a2-ca7e-51a0-4409.rev.sfr.net) alexherbo2
2025-01-22 09:54:45 +0100Square(~Square@user/square) (Ping timeout: 248 seconds)
2025-01-22 09:56:10 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2025-01-22 09:57:46 +0100merijn(~merijn@77.242.116.146) (Quit: leaving)
2025-01-22 10:02:05 +0100merijn(~merijn@77.242.116.146) merijn
2025-01-22 10:06:02 +0100 <kqr> opqdonut, Wait, yeah, that does exactly what I need. I think when I tested it I accidentally gave it the wrong boolean and then never stopped to think it through again. Thanks!
2025-01-22 10:14:23 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-01-22 10:18:43 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 245 seconds)
2025-01-22 10:39:55 +0100 <hellwolf> I am missing the "why" clearly stated for the MicroHs. But it's exciting if we could bootstrap GHC from it.
2025-01-22 10:40:17 +0100alexherbo2(~alexherbo@2a02-8440-350e-d10b-25a2-ca7e-51a0-4409.rev.sfr.net) (Remote host closed the connection)
2025-01-22 10:40:36 +0100alexherbo2(~alexherbo@2a02-8440-350e-d10b-25a2-ca7e-51a0-4409.rev.sfr.net) alexherbo2
2025-01-22 10:42:14 +0100cy7(~yt@pool-99-238-69-14.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds)
2025-01-22 10:44:49 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 248 seconds)
2025-01-22 10:48:01 +0100 <haskellbridge> <sm> why microhs exists at all ?
2025-01-22 10:48:03 +0100 <homo> [exa] I'm afraid without cooperation from ghc developers, ghc will never be buildable by alternative implementations, because ghc depends too much on its own extensions and internal quirks, and 7.x bugs show there is no guarantee that ghc can build itself, alternative option is to fork ghc to reduce those requirements
2025-01-22 10:49:36 +0100JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2025-01-22 10:51:23 +0100lxsameer(~lxsameer@Serene/lxsameer) lxsameer
2025-01-22 10:53:10 +0100 <[exa]> sm: because there's never enough compiler alternatives
2025-01-22 10:53:29 +0100 <haskellbridge> <sm> a dramatically simpler, cleaner and more portable new haskell compiler actively maintained by a top haskell developer - valuable
2025-01-22 10:53:41 +0100 <hellwolf> the idea was bootstrap from a older GHC
2025-01-22 10:53:51 +0100 <hellwolf> and GHC compiles itself version by version
2025-01-22 10:54:15 +0100JuanDaughertyColinRobinson
2025-01-22 10:54:17 +0100 <homo> hellwolf how do you get older ghc working on riscv and arm without running x86 instruction emulator?
2025-01-22 10:54:18 +0100 <[exa]> homo: well, true
2025-01-22 10:54:23 +0100sprotte24(~sprotte24@p200300d16f084200f435cd8a7bac203a.dip0.t-ipconnect.de)
2025-01-22 10:55:28 +0100 <homo> older ghc path is what Googulator from #bootstrappable channel prefers
2025-01-22 10:56:20 +0100 <hellwolf> I guess you just need to build an old one from one platform?
2025-01-22 10:56:41 +0100 <hellwolf> ultimate bootstrap goal was build everything from a FORTH compiler
2025-01-22 10:56:49 +0100hellwolfnot being serious here
2025-01-22 10:57:04 +0100 <homo> that assumes I must have an emulator for that platform or I must buy specific hardware
2025-01-22 10:58:17 +0100 <homo> bootstrappable is not about getting archives of all historical laggage, if there is alternative and maintained implementation capable of doing bootstrap it's more preferable path than going back in history
2025-01-22 11:01:10 +0100 <homo> and for self-hosted implementation to be bootstrappable, best practice is that it uses small subset of it's own features, not almost entire set of features
2025-01-22 11:01:16 +0100tnt2(~Thunderbi@user/tnt1) tnt1
2025-01-22 11:01:57 +0100tnt1(~Thunderbi@user/tnt1) (Ping timeout: 248 seconds)
2025-01-22 11:02:20 +0100 <merijn> homo: I mean, GHC doesn't use most of the advanced stuff of itself
2025-01-22 11:02:34 +0100fmira(~user@user/fmira) (Remote host closed the connection)
2025-01-22 11:02:42 +0100 <haskellbridge> <sm> start with say microhs, build progressively more featureful variants of ghc
2025-01-22 11:03:04 +0100 <haskellbridge> <sm> unless you've all been saying that already, in which case carry on
2025-01-22 11:03:10 +0100fmira(~user@user/fmira) fmira
2025-01-22 11:03:47 +0100 <merijn> homo: I mean, the REAL answer to your bootstrap question is: You'd go through the LLVM backend
2025-01-22 11:03:50 +0100 <homo> also my interest is getting haskell to plan9, I am not insane to port not just elephant, but a freaking blue whale called ghc
2025-01-22 11:04:37 +0100tnt1(~Thunderbi@user/tnt1) tnt1
2025-01-22 11:05:28 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-01-22 11:05:40 +0100 <merijn> homo: Generally you'd want to bootstrap by simply cross-compiling at least a semi-recent GHC to whatever platform
2025-01-22 11:05:41 +0100tnt2(~Thunderbi@user/tnt1) (Ping timeout: 248 seconds)
2025-01-22 11:05:43 +0100 <homo> merijn if it doesn't use those, how do you explain that ghc 4 can't directly build latest version of ghc? can ghc 5 do that? ghc 6? ghc 7? ghc 8?
2025-01-22 11:06:55 +0100sprotte24(~sprotte24@p200300d16f084200f435cd8a7bac203a.dip0.t-ipconnect.de) (Quit: Leaving)
2025-01-22 11:07:26 +0100 <homo> even cross-compiled I won't bother doing work necessary to port ghc neither to different os nor to different processor instruction set
2025-01-22 11:07:49 +0100j1n37(~j1n37@user/j1n37) (Ping timeout: 248 seconds)
2025-01-22 11:09:01 +0100j1n37(~j1n37@user/j1n37) j1n37
2025-01-22 11:09:15 +0100sprotte24(~sprotte24@p200300d16f084200f435cd8a7bac203a.dip0.t-ipconnect.de)
2025-01-22 11:09:44 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-01-22 11:12:55 +0100 <homo> and 7.x gap got solved last month by Googulator, it's not funny that ghc 7.x can't build ghc 7.x, literally same version of itself
2025-01-22 11:15:27 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2025-01-22 11:16:42 +0100j1n37(~j1n37@user/j1n37) (Ping timeout: 252 seconds)
2025-01-22 11:16:54 +0100swamp_(~zmt00@user/zmt00) zmt00
2025-01-22 11:19:36 +0100fmira(~user@user/fmira) (Remote host closed the connection)
2025-01-22 11:20:27 +0100 <geekosaur> you say this like you think you're ghc's primary stakeholder
2025-01-22 11:20:31 +0100j1n37(~j1n37@user/j1n37) j1n37
2025-01-22 11:20:35 +0100 <geekosaur> the primary stakeholders are:
2025-01-22 11:20:39 +0100 <geekosaur> - PL researchers
2025-01-22 11:20:48 +0100zmt01(~zmt00@user/zmt00) (Ping timeout: 272 seconds)
2025-01-22 11:20:55 +0100 <geekosaur> - industry users (yes, they very much exist _and_ drive ghc development)
2025-01-22 11:20:56 +0100fmira(~user@user/fmira) fmira
2025-01-22 11:21:14 +0100 <geekosaur> - to a lesser extent, pedagogical - teaching
2025-01-22 11:21:38 +0100 <geekosaur> no, ghc is not going to be downgraded so you can build 9.12 with ghc 4
2025-01-22 11:22:28 +0100 <merijn> homo: ok, so suppose we spend 5 or so man-years to make GHC 9 be compilable with GHC 4. Then what? What exactly is the benefit of that massive time investment?
2025-01-22 11:22:32 +0100 <geekosaur> C doesn't have these problems because C doesn't change that redically
2025-01-22 11:22:44 +0100 <homo> geekosaur thank goodness I'm not stakeholder, but that was reply to suggestions such as building from ancient ghc or doing cross-compiling
2025-01-22 11:23:22 +0100 <merijn> homo: So? What's the problem with bootstrapping via ancient versions?
2025-01-22 11:23:30 +0100 <merijn> "It takes time and is annoying to do"?
2025-01-22 11:23:40 +0100 <geekosaur> you want to make life hard for yourself, go right ahead. don't demand everyone else bow to your insistence
2025-01-22 11:23:42 +0100 <merijn> Who cares, how often do you think new platforms get bootstrapped?
2025-01-22 11:23:47 +0100 <homo> merijn don't bother, like I said earlier my goal is to get haskell to plan9 and I am satisfied with microhs
2025-01-22 11:24:21 +0100 <merijn> I mean, at this point anything that's not GHC isn't Haskell in any practical sense, tbh.
2025-01-22 11:24:39 +0100 <merijn> Even UHC is questionable, since it presumably can't compile large parts of Hackage
2025-01-22 11:25:34 +0100 <homo> the only thing that can be worse than ghc in terms of quality is zig, because to bootstrap zig you need to rebuild zig 0.10.0 32 times and zig 0.11.0 16 times, all those 48 are slightly different from each other, but broken enough to need step-by-step source code adjustments after every build
2025-01-22 11:27:51 +0100j1n37(~j1n37@user/j1n37) (Ping timeout: 276 seconds)
2025-01-22 11:29:09 +0100tnt2(~Thunderbi@user/tnt1) tnt1
2025-01-22 11:29:14 +0100j1n37(~j1n37@user/j1n37) j1n37
2025-01-22 11:30:23 +0100tnt1(~Thunderbi@user/tnt1) (Ping timeout: 245 seconds)
2025-01-22 11:30:24 +0100tnt2tnt1
2025-01-22 11:30:33 +0100EvanR(~EvanR@user/evanr) (Ping timeout: 252 seconds)
2025-01-22 11:34:12 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-01-22 11:34:18 +0100 <kuribas> Can you not compile ghc to C, and bootstrap from there?
2025-01-22 11:34:20 +0100 <homo> merijn and practically microhs "not being haskell" is irrelevant if all I want is to have compiler for lazy statically-typed functional programming language on plan9, even if ghc was on plan9 I would unlikely be able to build more than 1% of packages on stackage, because plan9 is neither posix nor microsoft windows
2025-01-22 11:34:24 +0100j1n37-(~j1n37@user/j1n37) j1n37
2025-01-22 11:35:00 +0100j1n37(~j1n37@user/j1n37) (Ping timeout: 276 seconds)
2025-01-22 11:35:51 +0100 <merijn> kuribas: Only kinda
2025-01-22 11:36:29 +0100 <homo> just to port microhs to plan9 I'll still have to rewrite combinator virtual machine to align with plan9, and on top of that I'll need to get rid of all posix and ffi dependencies in haskell code
2025-01-22 11:36:38 +0100tnt1(~Thunderbi@user/tnt1) (Ping timeout: 245 seconds)
2025-01-22 11:36:54 +0100tnt1(~Thunderbi@user/tnt1) tnt1
2025-01-22 11:37:04 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2025-01-22 11:38:18 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 245 seconds)
2025-01-22 11:39:28 +0100 <homo> kuribas 1. for clean bootstrap something other than ghc must be able to convert ghc language into c language, 2. practically plan9 is so different that you'll need to rewrite generated c code by hand
2025-01-22 11:40:21 +0100 <hellwolf> huh, why plan9 was brought up.
2025-01-22 11:40:52 +0100hellwolfretiring from this thread, I guess I got lost somewhere
2025-01-22 11:41:28 +0100xff0x(~xff0x@2405:6580:b080:900:55d6:5b69:524c:1857)
2025-01-22 11:42:58 +0100j1n37-(~j1n37@user/j1n37) (Ping timeout: 272 seconds)
2025-01-22 11:42:59 +0100j1n37(~j1n37@user/j1n37) j1n37
2025-01-22 11:43:49 +0100__monty__(~toonn@user/toonn) toonn
2025-01-22 11:44:41 +0100chele(~chele@user/chele) chele
2025-01-22 11:47:53 +0100j1n37(~j1n37@user/j1n37) (Ping timeout: 245 seconds)
2025-01-22 11:50:46 +0100j1n37(~j1n37@user/j1n37) j1n37
2025-01-22 11:57:44 +0100pointlessslippe1(~pointless@62.106.85.17) (Read error: Connection reset by peer)
2025-01-22 11:58:10 +0100 <homo> hellwolf I'm focused on something more realistic than bootstrapping ghc and porting ghc to different platform (whether it is processor instuction set or operating system), bootstrapping haskell on different platform doesn't imply bootstrapping ghc, I don't intend to sound like ghc's stakeholder, rather I respect their lack of interest by not working with them
2025-01-22 11:58:29 +0100j1n37-(~j1n37@user/j1n37) j1n37
2025-01-22 11:58:55 +0100j1n37(~j1n37@user/j1n37) (Ping timeout: 264 seconds)
2025-01-22 12:01:23 +0100pointlessslippe1(~pointless@62.106.85.17) pointlessslippe1
2025-01-22 12:01:48 +0100 <kuribas> homo: "lazy statically-typed", are there other than haskell?
2025-01-22 12:02:59 +0100 <geekosaur> curry
2025-01-22 12:03:00 +0100 <homo> I'll say it more completely: lazy statically-typed with IO monad and pretty syntax, combination of which cannot be found in other languages
2025-01-22 12:03:39 +0100agent314(~quassel@208.131.130.89) (Ping timeout: 265 seconds)
2025-01-22 12:03:50 +0100agent314(~quassel@208.131.130.116) agent314
2025-01-22 12:03:57 +0100 <kuribas> there idris2 with optional lazyness.
2025-01-22 12:04:19 +0100 <kuribas> I wouldn't call haskell "pretty syntax".
2025-01-22 12:05:32 +0100 <homo> kuribas try working with communities that use haxe and guile, you'll understand what I mean by pretty syntax
2025-01-22 12:07:12 +0100j1n37-(~j1n37@user/j1n37) (Ping timeout: 246 seconds)
2025-01-22 12:07:38 +0100j1n37(~j1n37@user/j1n37) j1n37
2025-01-22 12:08:03 +0100 <merijn> kuribas: Clean?
2025-01-22 12:08:32 +0100 <homo> I don't recall clean having IO monad
2025-01-22 12:08:37 +0100 <geekosaur> they said "IO monad"
2025-01-22 12:08:47 +0100 <geekosaur> Clean uses uniqueness types instead
2025-01-22 12:11:01 +0100agent314_(~quassel@208.131.130.89) agent314
2025-01-22 12:11:09 +0100agent314(~quassel@208.131.130.116) (Ping timeout: 260 seconds)
2025-01-22 12:11:17 +0100 <hellwolf> | However, Clean deals with mutable state and input/output (I/O) through a uniqueness type system, in contrast to Haskell's use of monads.
2025-01-22 12:12:53 +0100j1n37(~j1n37@user/j1n37) (Ping timeout: 248 seconds)
2025-01-22 12:13:31 +0100 <geekosaur> (granting that what Clean claims about Haskell is BS because monads have nothing to do with how IO and ST work)
2025-01-22 12:13:58 +0100 <geekosaur> (they just provide sequencing, the real magic is buried in `runRW#`)
2025-01-22 12:17:23 +0100 <hellwolf> re that "sequencing", I recently fixed a bug in a monad that I implemented, where I had a bug related to "sequencing". The short story, it didn't. But it's not monad's fault. That starts to make me to realign my intuition. I can't fully articulate everything rigorously yet, but I definitely would not assume monad means sequences.
2025-01-22 12:17:57 +0100 <geekosaur> the specific way IO and ST use it guarantees sequencing, and that is the sole reason that they are monads
2025-01-22 12:18:07 +0100j1n37(~j1n37@user/j1n37) j1n37
2025-01-22 12:18:57 +0100 <geekosaur> whereas, do you know about accursedUnutterablePerformIO? all it does is inline runRW#. and that causes the world to come unraveled
2025-01-22 12:19:12 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-01-22 12:19:40 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2025-01-22 12:20:48 +0100alexherbo2(~alexherbo@2a02-8440-350e-d10b-25a2-ca7e-51a0-4409.rev.sfr.net) (Remote host closed the connection)
2025-01-22 12:21:09 +0100 <hellwolf> 01-22 13:17 <geekosaur> the specific way IO and ST use it guarantees sequencing, and that is the sole reason that they are monads
2025-01-22 12:21:09 +0100 <hellwolf> yea, that's probably a better phrase of cause and effect.
2025-01-22 12:21:09 +0100 <hellwolf> There is nothing "sequential" about the list monad, e.g.
2025-01-22 12:22:06 +0100 <geekosaur> strictly speaking there is, but it's because lists are (linked) lists so sequential is pretty much the rule of the day
2025-01-22 12:24:33 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:8ff4:ecd1:bf2c:3514) ubert
2025-01-22 12:25:57 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-01-22 12:26:39 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-01-22 12:28:55 +0100j1n37(~j1n37@user/j1n37) (Ping timeout: 252 seconds)
2025-01-22 12:30:24 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-01-22 12:30:29 +0100euleritian(~euleritia@ip2504f9f4.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
2025-01-22 12:30:39 +0100euleritian(~euleritia@dynamic-176-006-138-118.176.6.pool.telefonica.de)
2025-01-22 12:31:29 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Client Quit)
2025-01-22 12:32:31 +0100j1n37(~j1n37@user/j1n37) j1n37
2025-01-22 12:33:28 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-01-22 12:35:58 +0100benjamin(~benjamin@2a03:4b80:a720:7ac0:3716:ccab:82b8:4e6a)
2025-01-22 12:38:55 +0100j1n37-(~j1n37@user/j1n37) j1n37
2025-01-22 12:39:34 +0100j1n37(~j1n37@user/j1n37) (Ping timeout: 252 seconds)
2025-01-22 12:46:23 +0100xdminsy(~xdminsy@117.147.71.185) (Read error: Connection reset by peer)
2025-01-22 12:46:57 +0100acidjnk(~acidjnk@p200300d6e7283f9071ccd1d777a13b28.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2025-01-22 12:47:11 +0100xdminsy(~xdminsy@117.147.71.185) xdminsy
2025-01-22 12:47:50 +0100m5zs7k(aquares@web10.mydevil.net) (Ping timeout: 244 seconds)
2025-01-22 12:48:44 +0100xdminsy(~xdminsy@117.147.71.185) (Read error: Connection reset by peer)
2025-01-22 12:49:28 +0100j1n37-(~j1n37@user/j1n37) (Ping timeout: 252 seconds)
2025-01-22 12:49:37 +0100xdminsy(~xdminsy@117.147.71.185) xdminsy
2025-01-22 12:51:04 +0100rvalue-(~rvalue@user/rvalue) rvalue