2023/10/02

2023-10-02 00:03:35 +0200vglfr(~vglfr@88.155.18.75) (Ping timeout: 240 seconds)
2023-10-02 00:06:17 +0200coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-10-02 00:11:52 +0200Square2(~Square@user/square) (Ping timeout: 255 seconds)
2023-10-02 00:14:16 +0200 <ghoulguy> madnight: probably not without you downloading a bunch of stuff or using a search engine
2023-10-02 00:15:49 +0200 <geekosaur> I was surprised to find hoogle didn't support that
2023-10-02 00:18:33 +0200captnemo(~captnemo@193.32.127.239) (Quit: WeeChat 4.0.4)
2023-10-02 00:18:50 +0200captnemo(~captnemo@193.32.127.239)
2023-10-02 00:27:46 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2023-10-02 00:27:46 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-02 00:30:39 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dff:1f4:b04b:da72) (Remote host closed the connection)
2023-10-02 00:32:15 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2023-10-02 00:34:49 +0200bilegeek(~bilegeek@2600:1008:b0aa:d121:12f8:f5f4:a6fd:d8ea)
2023-10-02 00:36:33 +0200bgamari_(~bgamari@64.223.173.10)
2023-10-02 00:36:44 +0200bgamari(~bgamari@70.16.98.14) (Ping timeout: 245 seconds)
2023-10-02 00:46:12 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 255 seconds)
2023-10-02 00:52:05 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dff:1f4:b04b:da72)
2023-10-02 01:00:36 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-10-02 01:00:36 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-10-02 01:00:36 +0200wroathe(~wroathe@user/wroathe)
2023-10-02 01:01:53 +0200wroathe(~wroathe@user/wroathe) (Client Quit)
2023-10-02 01:02:06 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-10-02 01:02:07 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-10-02 01:02:07 +0200wroathe(~wroathe@user/wroathe)
2023-10-02 01:20:39 +0200jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 240 seconds)
2023-10-02 01:21:52 +0200NinjaTrappeur(~ninja@about/aquilenet/vodoo/NinjaTrappeur) (Ping timeout: 252 seconds)
2023-10-02 01:22:35 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dff:1f4:b04b:da72) (Remote host closed the connection)
2023-10-02 01:22:57 +0200jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com)
2023-10-02 01:23:13 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dff:1f4:b04b:da72)
2023-10-02 01:26:57 +0200NinjaTrappeur(~ninja@about/aquilenet/vodoo/NinjaTrappeur)
2023-10-02 01:45:28 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-02 02:00:11 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Ping timeout: 255 seconds)
2023-10-02 02:05:58 +0200spacenautx(~spacenaut@user/spacenautx) (Quit: WeeChat 4.0.5)
2023-10-02 02:15:13 +0200arahael(~arahael@1.145.14.170)
2023-10-02 02:26:49 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dff:1f4:b04b:da72) (Remote host closed the connection)
2023-10-02 02:32:16 +0200danza_(~francesco@151.47.126.103)
2023-10-02 02:35:11 +0200dolio(~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in)
2023-10-02 02:41:57 +0200dolio(~dolio@130.44.134.54)
2023-10-02 02:45:51 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 258 seconds)
2023-10-02 02:46:00 +0200czy(~user@121.231.44.109)
2023-10-02 02:47:26 +0200fweht(uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-02 02:47:43 +0200danza_(~francesco@151.47.126.103) (Ping timeout: 264 seconds)
2023-10-02 02:48:21 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2023-10-02 02:48:59 +0200arahael(~arahael@1.145.14.170) (Quit: "Gotta run!")
2023-10-02 02:49:41 +0200czy(~user@121.231.44.109) (Remote host closed the connection)
2023-10-02 02:59:28 +0200czy(~user@121.231.44.109)
2023-10-02 03:04:43 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dff:1f4:b04b:da72)
2023-10-02 03:06:01 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
2023-10-02 03:11:29 +0200cifrlltb^(~cd@76.145.193.217) (Remote host closed the connection)
2023-10-02 03:24:07 +0200captnemo(~captnemo@193.32.127.239) (Quit: WeeChat 4.0.4)
2023-10-02 03:31:53 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 255 seconds)
2023-10-02 03:32:28 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dff:1f4:b04b:da72) (Remote host closed the connection)
2023-10-02 03:32:43 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dff:1f4:b04b:da72)
2023-10-02 03:33:28 +0200otto_s(~user@p5de2facb.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2023-10-02 03:34:58 +0200otto_s(~user@p5b0445cd.dip0.t-ipconnect.de)
2023-10-02 03:41:55 +0200hsw(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Quit: Leaving)
2023-10-02 03:42:07 +0200hsw(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
2023-10-02 04:06:05 +0200td_(~td@i5387090d.versanet.de) (Ping timeout: 272 seconds)
2023-10-02 04:07:12 +0200td_(~td@i5387092A.versanet.de)
2023-10-02 04:07:40 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 248 seconds)
2023-10-02 04:17:32 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-10-02 04:17:32 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-10-02 04:17:32 +0200finn_elijaFinnElija
2023-10-02 04:30:48 +0200vglfr(~vglfr@88.154.40.15)
2023-10-02 04:35:07 +0200vglfr(~vglfr@88.154.40.15) (Ping timeout: 255 seconds)
2023-10-02 05:03:51 +0200td_(~td@i5387092A.versanet.de) (Ping timeout: 260 seconds)
2023-10-02 05:05:17 +0200td_(~td@i5387090C.versanet.de)
2023-10-02 05:12:19 +0200asivitz(uid178348@id-178348.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-02 05:21:05 +0200bilegeek(~bilegeek@2600:1008:b0aa:d121:12f8:f5f4:a6fd:d8ea) (Remote host closed the connection)
2023-10-02 05:22:04 +0200Warr(~Admin1@47.200.75.232)
2023-10-02 05:23:52 +0200srk(~sorki@user/srk) (Remote host closed the connection)
2023-10-02 05:24:11 +0200srk(~sorki@user/srk)
2023-10-02 05:24:51 +0200Warr(~Admin1@47.200.75.232) (Remote host closed the connection)
2023-10-02 05:31:43 +0200cptaffe(~cptaffe@user/cptaffe) (Remote host closed the connection)
2023-10-02 05:32:03 +0200sm(~sm@plaintextaccounting/sm)
2023-10-02 05:34:22 +0200cptaffe(~cptaffe@user/cptaffe)
2023-10-02 05:36:32 +0200sm(~sm@plaintextaccounting/sm) (Ping timeout: 255 seconds)
2023-10-02 05:37:50 +0200vglfr(~vglfr@88.155.145.28)
2023-10-02 05:41:02 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 258 seconds)
2023-10-02 05:54:58 +0200aforemny_(~aforemny@2001:9e8:6cea:5700:875:b49a:e016:4759)
2023-10-02 05:56:21 +0200aforemny(~aforemny@2001:9e8:6cc3:2d00:4daa:999d:f37:1162) (Ping timeout: 260 seconds)
2023-10-02 05:58:55 +0200sabino(~sabino@user/sabino) (Quit: Lambda _ -> x)
2023-10-02 06:00:04 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 272 seconds)
2023-10-02 06:01:32 +0200actioninja(~actioninj@user/actioninja)
2023-10-02 06:05:26 +0200CAT_S(apic@brezn3.muc.ccc.de) (Ping timeout: 255 seconds)
2023-10-02 06:06:26 +0200sm(~sm@plaintextaccounting/sm)
2023-10-02 06:07:52 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-10-02 06:10:33 +0200krei-se(~krei-se@p50874770.dip0.t-ipconnect.de) (Quit: ZNC 1.8.2 - https://znc.in)
2023-10-02 06:11:10 +0200sm(~sm@plaintextaccounting/sm) (Ping timeout: 252 seconds)
2023-10-02 06:12:11 +0200poscat(~poscat@user/poscat) (Quit: Bye)
2023-10-02 06:16:16 +0200poscat(~poscat@user/poscat)
2023-10-02 06:18:16 +0200CAT_S(apic@brezn3.muc.ccc.de)
2023-10-02 06:20:04 +0200_xor(~xor@ip-50-5-233-250.dynamic.fuse.net) (Quit: Ping timeout (120 seconds))
2023-10-02 06:20:39 +0200_xor(~xor@ip-50-5-233-250.dynamic.fuse.net)
2023-10-02 06:25:48 +0200cptaffe(~cptaffe@user/cptaffe) (Remote host closed the connection)
2023-10-02 06:27:31 +0200cptaffe(~cptaffe@user/cptaffe)
2023-10-02 06:29:29 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-02 06:34:20 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 248 seconds)
2023-10-02 06:35:44 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2023-10-02 06:37:31 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-10-02 06:37:44 +0200michalz(~michalz@185.246.204.125)
2023-10-02 06:52:54 +0200qqq(~qqq@92.43.167.61)
2023-10-02 06:53:38 +0200xff0x(~xff0x@2405:6580:b080:900:b248:55c0:81a8:90d4) (Remote host closed the connection)
2023-10-02 06:53:57 +0200xff0x(~xff0x@2405:6580:b080:900:2499:90fc:2915:781d)
2023-10-02 06:59:43 +0200sm(~sm@plaintextaccounting/sm)
2023-10-02 07:04:13 +0200sm(~sm@plaintextaccounting/sm) (Ping timeout: 258 seconds)
2023-10-02 07:12:09 +0200Jackneill(~Jackneill@20014C4E1E13B20020A43670487A9903.dsl.pool.telekom.hu)
2023-10-02 07:17:49 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2023-10-02 07:24:40 +0200chomwitt(~chomwitt@2a02:587:7a24:b000:1ac0:4dff:fedb:a3f1)
2023-10-02 07:29:39 +0200krei-se(~krei-se@p50874770.dip0.t-ipconnect.de)
2023-10-02 07:33:09 +0200sm(~sm@plaintextaccounting/sm)
2023-10-02 07:37:48 +0200sm(~sm@plaintextaccounting/sm) (Ping timeout: 248 seconds)
2023-10-02 07:39:23 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2023-10-02 07:43:24 +0200idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-10-02 07:48:09 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 252 seconds)
2023-10-02 07:57:56 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 255 seconds)
2023-10-02 07:58:22 +0200vglfr(~vglfr@88.155.145.28) (Ping timeout: 260 seconds)
2023-10-02 08:00:42 +0200sm(~sm@plaintextaccounting/sm)
2023-10-02 08:01:37 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com)
2023-10-02 08:04:03 +0200lockywolf(~lockywolf@public.lockywolf.net) (Quit: ZNC 1.8.2 - https://znc.in)
2023-10-02 08:05:01 +0200sm(~sm@plaintextaccounting/sm) (Ping timeout: 252 seconds)
2023-10-02 08:05:39 +0200lockywolf(~lockywolf@public.lockywolf.net)
2023-10-02 08:06:05 +0200vglfr(~vglfr@88.155.249.83)
2023-10-02 08:06:41 +0200vglfr(~vglfr@88.155.249.83) (Remote host closed the connection)
2023-10-02 08:08:16 +0200hugo(znc@verdigris.lysator.liu.se)
2023-10-02 08:09:39 +0200vglfr(~vglfr@88.155.249.83)
2023-10-02 08:12:52 +0200raym(~ray@user/raym)
2023-10-02 08:17:58 +0200 <haskellbridge> <t​ewuzij> What is Hoogle?
2023-10-02 08:20:08 +0200 <haskellbridge> <j​ade> a search engine for haskell functions in packages indexed on hackage
2023-10-02 08:20:51 +0200sm(~sm@plaintextaccounting/sm)
2023-10-02 08:22:25 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 258 seconds)
2023-10-02 08:25:22 +0200sm(~sm@plaintextaccounting/sm) (Ping timeout: 252 seconds)
2023-10-02 08:28:23 +0200hugo(znc@verdigris.lysator.liu.se)
2023-10-02 08:29:07 +0200 <haskellbridge> <s​m> @where hoogle
2023-10-02 08:32:24 +0200marinelli(~weechat@gateway/tor-sasl/marinelli) (Remote host closed the connection)
2023-10-02 08:32:47 +0200marinelli(~weechat@gateway/tor-sasl/marinelli)
2023-10-02 08:33:48 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2023-10-02 08:38:55 +0200simendsjo(~user@84.211.91.241)
2023-10-02 08:39:39 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:2aaa:42ea:b9cc:3d82)
2023-10-02 08:40:04 +0200simendsjo(~user@84.211.91.241) (Remote host closed the connection)
2023-10-02 08:44:38 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2023-10-02 08:45:00 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2023-10-02 08:48:58 +0200simendsjo(~user@84.211.91.241)
2023-10-02 08:51:10 +0200euleritian(~euleritia@185.238.219.110) (Ping timeout: 255 seconds)
2023-10-02 08:53:13 +0200euleritian(~euleritia@185.238.219.66)
2023-10-02 08:55:04 +0200Guest5851(~Guest58@ext-1-173.eduroam.chalmers.se)
2023-10-02 08:56:41 +0200 <Guest5851> Hi! The documentations for rewrite rules state that if more than one rule has a matching LHS, GHC will pick a rule arbitrarily to apply. I just want to verify that this means that if I have the two rules `f True = False` and `forall b . f b = b`, I can not be sure that `f True` will be rewritten to `False`? I should not consider these LHS's as I
2023-10-02 08:56:42 +0200 <Guest5851> would have my pattern matches?
2023-10-02 08:56:52 +0200 <Guest5851> A bit of a contrived example, but I think it makes my question clear
2023-10-02 09:03:28 +0200vglfr(~vglfr@88.155.249.83) (Ping timeout: 255 seconds)
2023-10-02 09:03:39 +0200 <probie> Yes. However, like inlining, you can explicitly specify which phase the rule is allowed to fire in, effectively giving precedence.
2023-10-02 09:08:16 +0200 <dminuoso> Guest5851: Also checkout CONLIKE, which gives further indirect control.
2023-10-02 09:12:02 +0200fweht(uid404746@id-404746.lymington.irccloud.com)
2023-10-02 09:12:06 +0200CiaoSen(~Jura@2a05:5800:2a3:5900:664b:f0ff:fe37:9ef)
2023-10-02 09:13:48 +0200 <tomsmeding> sm: lambdabot doesn't pick that up because your message starts with "<sm>" here :p
2023-10-02 09:15:08 +0200 <haskellbridge> <s​m> I figured.. I'm hoping it will trigger a humanbot to complete the request 🤖😀
2023-10-02 09:15:25 +0200 <tomsmeding> @where hoogle
2023-10-02 09:15:25 +0200 <lambdabot> https://hoogle.haskell.org
2023-10-02 09:16:10 +0200 <tomsmeding> % putStr "@where hoogle" -- sm
2023-10-02 09:16:10 +0200 <yahb2> @where hoogle
2023-10-02 09:16:10 +0200 <lambdabot> https://hoogle.haskell.org
2023-10-02 09:17:26 +0200 <haskellbridge> <s​m> > Hoogle is a Haskell API search engine, which allows you to search the Haskell libraries on Stackage by either function name, or by approximate type signature.
2023-10-02 09:32:14 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 272 seconds)
2023-10-02 09:39:43 +0200kuribas(~user@2a02:1808:4:8d81:4e29:dcbe:5b1e:d8a2)
2023-10-02 09:40:24 +0200 <kuribas> Is it possible to turn multithreading off for accellerate-native?
2023-10-02 09:40:29 +0200 <kuribas> I mean without turning it off globally, so I could still use multiple threads elsewhere.
2023-10-02 09:42:07 +0200 <tomsmeding> kuribas: before I think about whether you can, _why_ :p
2023-10-02 09:44:09 +0200alexherbo2(~alexherbo@2a02-8440-3340-d3fe-1412-0c65-3696-c5b2.rev.sfr.net)
2023-10-02 09:44:23 +0200 <tomsmeding> kuribas: if you're okay with pinning the accelerate-llvm-native thread to a single core, check out createTarget and run*With
2023-10-02 09:45:26 +0200 <tomsmeding> kuribas: read the module documentation block https://hackage.haskell.org/package/accelerate-llvm-native-1.3.0.0/docs/Data-Array-Accelerate-LLVM…
2023-10-02 09:45:28 +0200 <tomsmeding> RTFM ;)
2023-10-02 09:47:10 +0200coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-10-02 09:47:43 +0200Guest5851(~Guest58@ext-1-173.eduroam.chalmers.se) (Quit: Connection closed)
2023-10-02 09:49:44 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-10-02 09:52:33 +0200 <kuribas> tomsmeding: ah right, runNWith should do the trick.
2023-10-02 09:52:47 +0200 <tomsmeding> kuribas: check the env var
2023-10-02 09:53:31 +0200danse-nr3(~francesco@ge-19-121-23.service.infuturo.it)
2023-10-02 09:53:33 +0200 <tomsmeding> that's without core pinning
2023-10-02 09:54:36 +0200rgw(~R@2605:a601:a0df:5600:11bb:2f6e:7e71:f82c) (Read error: Connection reset by peer)
2023-10-02 09:54:46 +0200 <kuribas> tomsmeding: the reason I want to do this is because I want to run it on streams of relatively small blocks.
2023-10-02 09:54:54 +0200 <tomsmeding> ah
2023-10-02 09:54:59 +0200 <kuribas> And keep the cores ready for other paralellism.
2023-10-02 09:55:21 +0200 <kuribas> I don't think multiple threads makes much sense for small blocks (a few kbs).
2023-10-02 09:55:32 +0200 <tomsmeding> I mean, always benchmark
2023-10-02 09:55:36 +0200 <tomsmeding> but sounds reasonable
2023-10-02 09:55:56 +0200 <kuribas> true, maybe I am premature optimizing...
2023-10-02 09:55:58 +0200 <tomsmeding> depends on what you are doing with those small blocks :)
2023-10-02 09:56:45 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-10-02 09:57:13 +0200 <kuribas> mostly downsampling aggregations.
2023-10-02 09:57:27 +0200 <kuribas> like adding, averaging, removing or interpolating NaNs...
2023-10-02 09:57:45 +0200 <tomsmeding> doesn't sound terribly expensive
2023-10-02 09:59:35 +0200 <kuribas> it isn't, but I am hoping the SIMD vectorization still gives a speedup.
2023-10-02 09:59:36 +0200euleritian(~euleritia@185.238.219.66) (Ping timeout: 260 seconds)
2023-10-02 10:00:03 +0200 <kuribas> Mostly by removing multiple loops, for example when applying some scale on the data.
2023-10-02 10:00:14 +0200 <tomsmeding> right, that it should do at the very least
2023-10-02 10:00:21 +0200 <tomsmeding> after that it's up to LLVM to do smart SIMD things
2023-10-02 10:00:34 +0200 <tomsmeding> i.e. not very different from having written decent C code for this
2023-10-02 10:00:53 +0200 <kuribas> Indeed, that is the goal, but dynamically at runtime.
2023-10-02 10:05:49 +0200 <kuribas> So I can write a query on timeseries, and it will be compiled and cached at runtime.
2023-10-02 10:06:06 +0200 <kuribas> Without the need to recompile and restart the whole application
2023-10-02 10:06:07 +0200yahb2(~yahb2@static.56.27.47.78.clients.your-server.de) (Remote host closed the connection)
2023-10-02 10:06:19 +0200yahb2(~yahb2@2a01:4f8:c0c:5c7b::2)
2023-10-02 10:06:24 +0200 <tomsmeding> neat
2023-10-02 10:06:26 +0200euleritian(~euleritia@185.238.219.3)
2023-10-02 10:06:57 +0200 <kuribas> I saw the polars library in rust, which does optimizations, but it cannot do loop fusion (at least in Python), because it doesn't do JIT compilation.
2023-10-02 10:07:29 +0200 <tomsmeding> ... is that a rust or a python lib? I'm confused
2023-10-02 10:07:37 +0200 <kuribas> both :)
2023-10-02 10:07:42 +0200 <kuribas> But the core is written in rust.
2023-10-02 10:07:54 +0200 <tomsmeding> I see
2023-10-02 10:09:08 +0200 <kuribas> I am making a small static typed scheme like language, which then can be compiled to accelerate.
2023-10-02 10:09:14 +0200 <nullie> I think SIMD is not about removing loops, it just utilizes computation units better
2023-10-02 10:09:36 +0200 <kuribas> nullie: sure, python dataframe languages also use SIMD.
2023-10-02 10:09:54 +0200 <kuribas> But each primitive operation is a loop over the data.
2023-10-02 10:10:22 +0200 <tomsmeding> kuribas: do you `run` the in-flight computation whenever you get something that you can't encode in AcC?
2023-10-02 10:10:24 +0200 <tomsmeding> *Acc
2023-10-02 10:10:56 +0200 <tomsmeding> then the individual computations had better be large, because compiling an accelerate program is pretty expensive
2023-10-02 10:11:06 +0200 <tomsmeding> sure, things are cached
2023-10-02 10:11:12 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-02 10:11:15 +0200 <tomsmeding> but that also takes up a bunch of disk space :p
2023-10-02 10:11:30 +0200euleritian(~euleritia@185.238.219.3) (Ping timeout: 272 seconds)
2023-10-02 10:12:00 +0200 <kuribas> tomsmeding: what do you mean?
2023-10-02 10:12:13 +0200 <kuribas> Are these llvm compiled functions large?
2023-10-02 10:12:26 +0200 <tomsmeding> not particularly
2023-10-02 10:12:51 +0200 <tomsmeding> but if you run lots of slightly different programs, at some point it'll add up
2023-10-02 10:13:06 +0200 <tomsmeding> ~/.cache/accelerate
2023-10-02 10:13:40 +0200euleritian(~euleritia@185.238.219.47)
2023-10-02 10:14:32 +0200 <kuribas> well, the goal to have a set of stored procedures which are parametrised.
2023-10-02 10:14:41 +0200 <kuribas> So not every query is a new program.
2023-10-02 10:14:45 +0200 <tomsmeding> sure
2023-10-02 10:14:58 +0200danse-nr3_(~francesco@151.37.123.134)
2023-10-02 10:15:15 +0200 <kuribas> Does it read those programs from disk every time, or are they also cached in RAM?
2023-10-02 10:15:18 +0200 <tomsmeding> I think the compiled accelerate programs do not even include `use` arrays, so you can change those and still hit the cache
2023-10-02 10:15:20 +0200danse-nr3(~francesco@ge-19-121-23.service.infuturo.it) (Read error: Connection reset by peer)
2023-10-02 10:15:31 +0200 <tomsmeding> kuribas: I think it reads from disk each time, but disk caches are a thing, so it'll be RAM anyway
2023-10-02 10:15:52 +0200 <kuribas> hmm, true
2023-10-02 10:16:01 +0200 <tomsmeding> especially for small files like these
2023-10-02 10:16:34 +0200 <kuribas> And are they compiled each time?
2023-10-02 10:16:47 +0200 <kuribas> Or are they stored in native machine code?
2023-10-02 10:16:48 +0200 <Hecate> morning folks
2023-10-02 10:16:55 +0200 <kuribas> Morning!
2023-10-02 10:17:04 +0200 <winny> good morning, make sure to eat well :)
2023-10-02 10:20:02 +0200 <kuribas> tomsmeding: actually, reading those files for *each* small array computation will like completely swamp any performance benifit I would get from SIMD.
2023-10-02 10:20:06 +0200 <kuribas> even cached in memory.
2023-10-02 10:20:35 +0200 <tomsmeding> kuribas: I'm reasonably sure (after checking some source) that when compiling an accelerate program, it will first do fusion and simplification within `accelerate`, then hash the resulting AST and check the cache
2023-10-02 10:20:51 +0200 <tomsmeding> the cache is (optimised accelerate program) -> (optimised LLVM-compiled binary)
2023-10-02 10:21:01 +0200 <tomsmeding> so you're paying for fusion etc each time anyway
2023-10-02 10:21:14 +0200 <tomsmeding> as well as linking the .so in
2023-10-02 10:21:27 +0200 <tomsmeding> I'm not sure this is the right trade-off
2023-10-02 10:21:44 +0200 <kuribas> Each time of adding a new function, or each time of calling it?
2023-10-02 10:21:53 +0200 <tomsmeding> each time invoking `run`
2023-10-02 10:22:02 +0200 <tomsmeding> if you `runN` once and call the resulting Afunction multiple times, that's cheap
2023-10-02 10:22:21 +0200 <tomsmeding> (and that's the intended use-case)
2023-10-02 10:22:52 +0200 <tomsmeding> (er, AfunctionR)
2023-10-02 10:23:10 +0200 <kuribas> "This function can be used to improve performance in cases where the array program is constant between invocations, because it enables us to bypass front-end conversion stages and move directly to the execution phase. If you have a computation applied repeatedly to different input data, use this, specifying any changing aspects of the computation via the input parameters. If the function is only evaluated once, this is equivalent to
2023-10-02 10:23:10 +0200 <kuribas> run."
2023-10-02 10:23:24 +0200 <tomsmeding> yes
2023-10-02 10:23:30 +0200tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
2023-10-02 10:23:50 +0200 <kuribas> SO this doesn't go through the disk cache?
2023-10-02 10:24:07 +0200 <tomsmeding> calling that AfunctionR multiple times should do very little except running the compiled code
2023-10-02 10:24:20 +0200 <tomsmeding> it's calling runN another time that is expensive
2023-10-02 10:24:46 +0200 <tomsmeding> (laziness is done correctly so that seq'ing (runN f) does all the compilation)
2023-10-02 10:25:03 +0200 <tomsmeding> (strictness, rather)
2023-10-02 10:26:39 +0200 <tomsmeding> JITing is expensive :p
2023-10-02 10:26:58 +0200kuribas`(~user@ip-188-118-57-242.reverse.destiny.be)
2023-10-02 10:27:11 +0200 <tomsmeding> there's a reason JS interpreters, which are way more optimised still than Acc, only JIT-compile after they've determined it's worth it
2023-10-02 10:28:12 +0200kuribas(~user@2a02:1808:4:8d81:4e29:dcbe:5b1e:d8a2) (Ping timeout: 240 seconds)
2023-10-02 10:29:01 +0200mmhat(~mmh@p200300f1c74e6fafee086bfffe095315.dip0.t-ipconnect.de)
2023-10-02 10:30:02 +0200poscat(~poscat@user/poscat) (Quit: Bye)
2023-10-02 10:30:02 +0200mmhat(~mmh@p200300f1c74e6fafee086bfffe095315.dip0.t-ipconnect.de) (Client Quit)
2023-10-02 10:30:05 +0200 <kuribas`> True, I could start with just unfused compile time loops, then see if JIT optimizing the loops gives an effect
2023-10-02 10:30:19 +0200euleritian(~euleritia@185.238.219.47) (Ping timeout: 264 seconds)
2023-10-02 10:30:52 +0200euleritian(~euleritia@185.238.219.30)
2023-10-02 10:31:01 +0200poscat(~poscat@user/poscat)
2023-10-02 10:31:27 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-02 10:32:14 +0200 <kuribas`> tomsmeding: OTOH, jit compilers are made for generic code, in this case I just want to optimize low level calculations in a tight loop.
2023-10-02 10:32:40 +0200 <tomsmeding> true
2023-10-02 10:33:05 +0200vglfr(vglfr@gateway/vpn/protonvpn/vglfr)
2023-10-02 10:33:13 +0200 <tomsmeding> but even for accelerate code, it can get reasonably generic as well; if you fuse a bunch of things, the scalar expressions can get more complex
2023-10-02 10:33:37 +0200 <kuribas`> And slower?
2023-10-02 10:33:47 +0200 <tomsmeding> hm?
2023-10-02 10:33:55 +0200 <tomsmeding> it's passed through LLVM which will do a good job, presumably
2023-10-02 10:34:01 +0200 <tomsmeding> but compilation will be slower, yes
2023-10-02 10:34:12 +0200 <tomsmeding> accelerate's compilation pipeline itself is not particularly optimised
2023-10-02 10:34:17 +0200idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.5)
2023-10-02 10:34:25 +0200 <tomsmeding> (in fact, for certain kinds of programs, it can be downright slow)
2023-10-02 10:34:28 +0200 <kuribas`> Well, my plan was to use compilation for stored procedures, and interpretation for one off queries.
2023-10-02 10:34:52 +0200 <kuribas`> I don't mind, as long is it doesn't cause long GC pauses for the rest of the program.
2023-10-02 10:34:59 +0200 <tomsmeding> then you should probably compile a procedure to accelerate _once_ per invocation of the interpreter
2023-10-02 10:35:22 +0200 <tomsmeding> i.e. keep a closure around for the compiled version of the stored procedure, that retains the AfunctionR's obtained from runN
2023-10-02 10:35:30 +0200 <tomsmeding> then it should be good
2023-10-02 10:35:48 +0200 <kuribas`> yeah that.
2023-10-02 10:35:56 +0200 <tomsmeding> kuribas`: it's the _running_ of the accelerate program that could give you long GC pauses
2023-10-02 10:35:56 +0200 <kuribas`> Or even use another library (Massive?)
2023-10-02 10:35:59 +0200 <tomsmeding> compilation won't
2023-10-02 10:36:06 +0200 <tomsmeding> massiv, also check out repa
2023-10-02 10:36:17 +0200 <tomsmeding> they don't do JITing AFAIU
2023-10-02 10:36:22 +0200 <kuribas`> Yeah, sadly I cannot preallocate arrays using accelerate.
2023-10-02 10:36:35 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2023-10-02 10:36:47 +0200 <tomsmeding> in what sense?
2023-10-02 10:36:56 +0200 <tomsmeding> A.fromList will do some allocation that's suitable for the native backend
2023-10-02 10:37:32 +0200euleritian(~euleritia@185.238.219.30) (Ping timeout: 248 seconds)
2023-10-02 10:37:36 +0200 <kuribas`> In the sense of keeping a collection of preallocated blocks for intermediate calculations.
2023-10-02 10:37:48 +0200 <tomsmeding> ah
2023-10-02 10:37:48 +0200 <tomsmeding> no
2023-10-02 10:37:51 +0200 <kuribas`> That don't need to use malloc.
2023-10-02 10:37:58 +0200 <tomsmeding> but malloc is not the bottleneck
2023-10-02 10:38:03 +0200 <tomsmeding> typically
2023-10-02 10:38:15 +0200 <kuribas`> right
2023-10-02 10:39:36 +0200 <tomsmeding> if malloc needs to request new pages from the OS it might be more expensive, but especially if you're reusing memory anyway, that won't be happening
2023-10-02 10:41:51 +0200 <kuribas`> right
2023-10-02 10:48:19 +0200poscat(~poscat@user/poscat) (Quit: Bye)
2023-10-02 10:48:49 +0200poscat(~poscat@user/poscat)
2023-10-02 10:48:53 +0200hugo(znc@verdigris.lysator.liu.se)
2023-10-02 10:49:31 +0200xff0x(~xff0x@2405:6580:b080:900:2499:90fc:2915:781d) (Ping timeout: 264 seconds)
2023-10-02 10:49:34 +0200sm(~sm@plaintextaccounting/sm)
2023-10-02 10:50:11 +0200 <haskellbridge> <I​nst> ...
2023-10-02 10:50:20 +0200vglfr(vglfr@gateway/vpn/protonvpn/vglfr) (Ping timeout: 248 seconds)
2023-10-02 10:51:19 +0200xff0x(~xff0x@2405:6580:b080:900:bb62:225f:513:94b7)
2023-10-02 10:52:13 +0200 <haskellbridge> <I​nst> Just an errant question, but has there ever been an attempt to define a database via typeclasses, i.e, you have properties of database objects via generics / typeclasses, you declare a particular database object via a datatype declaration
2023-10-02 10:52:29 +0200 <haskellbridge> <I​nst> and you assign it its properties based on a deriving clause?
2023-10-02 10:52:58 +0200poscat(~poscat@user/poscat) (Client Quit)
2023-10-02 10:53:20 +0200poscat(~poscat@user/poscat)
2023-10-02 10:54:38 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2023-10-02 10:54:59 +0200poscat(~poscat@user/poscat)
2023-10-02 11:02:45 +0200poscat(~poscat@user/poscat) (Quit: Bye)
2023-10-02 11:03:16 +0200poscat(~poscat@user/poscat)
2023-10-02 11:03:23 +0200migas(~migas@astra4961.startdedicated.net)
2023-10-02 11:07:10 +0200poscat(~poscat@user/poscat) (Client Quit)
2023-10-02 11:07:30 +0200poscat(~poscat@user/poscat)
2023-10-02 11:07:48 +0200aforemny_aforemny
2023-10-02 11:11:27 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dff:1f4:b04b:da72) (Remote host closed the connection)
2023-10-02 11:14:26 +0200poscat0x04(~poscat@user/poscat)
2023-10-02 11:16:01 +0200poscat(~poscat@user/poscat) (Ping timeout: 260 seconds)
2023-10-02 11:20:16 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 252 seconds)
2023-10-02 11:23:55 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-02 11:27:03 +0200econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-02 11:31:14 +0200sm(~sm@plaintextaccounting/sm)
2023-10-02 11:31:51 +0200hugo(znc@verdigris.lysator.liu.se)
2023-10-02 11:33:19 +0200shryke(~shryke@2a00:4b00:13c:cc:b27b:25ff:fe18:efd) (Quit: WeeChat 4.0.4)
2023-10-02 11:34:33 +0200Inst(~Inst@120.244.192.250)
2023-10-02 11:34:48 +0200Inst(~Inst@120.244.192.250) (Leaving)
2023-10-02 11:34:51 +0200shryke(~shryke@2a00:4b00:13c:cc:b27b:25ff:fe18:efd)
2023-10-02 11:39:03 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds)
2023-10-02 11:40:58 +0200Square3(~Square4@user/square)
2023-10-02 11:40:59 +0200__monty__(~toonn@user/toonn)
2023-10-02 11:45:56 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:388b:f740:8f2c:555)
2023-10-02 11:50:55 +0200masaeedu(~masaeedu@modemcable068.99-80-70.mc.videotron.ca)
2023-10-02 11:51:15 +0200 <masaeedu> Hello folks
2023-10-02 11:51:57 +0200 <masaeedu> Was reading through this thread: https://groups.google.com/g/haskell-pipes/c/JFfyquj5HAg/m/Lxz7p50JOh4J
2023-10-02 11:52:44 +0200 <masaeedu> There's some pretty great ideas in there on how to interface with child processes asynchronously
2023-10-02 11:53:56 +0200 <masaeedu> Do you folks have any recommendations on libraries in this vein (async child process interaction) that have worked well for you?
2023-10-02 11:54:01 +0200hugo(znc@verdigris.lysator.liu.se)
2023-10-02 11:54:04 +0200alexherbo2(~alexherbo@2a02-8440-3340-d3fe-1412-0c65-3696-c5b2.rev.sfr.net) (Remote host closed the connection)
2023-10-02 11:54:24 +0200alexherbo2(~alexherbo@2a02-8440-3340-d3fe-1412-0c65-3696-c5b2.rev.sfr.net)
2023-10-02 11:58:12 +0200 <haskellbridge> <s​m> masaeedu: the async package certainly
2023-10-02 11:59:45 +0200 <haskellbridge> <s​m> and maybe typed-process or something in the conduit packages ?
2023-10-02 12:11:42 +0200alexherbo2(~alexherbo@2a02-8440-3340-d3fe-1412-0c65-3696-c5b2.rev.sfr.net) (Remote host closed the connection)
2023-10-02 12:12:01 +0200alexherbo2(~alexherbo@2a02-8440-3340-d3fe-1412-0c65-3696-c5b2.rev.sfr.net)
2023-10-02 12:13:46 +0200lg188(~lg188@82.18.98.230) (Ping timeout: 260 seconds)
2023-10-02 12:15:01 +0200 <masaeedu> cool, thanks. i looked at typed-process earlier, but AFAICS it didn't have a way to deal with terminal-interactive child processes (e.g. vim), and it didn't seem to have any abstraction over the actual I/O streams.
2023-10-02 12:16:18 +0200 <masaeedu> iow it's a type-safe way to set up the child process and get at its I/O streams, but the streams are just `Handle`s in the end, so the task of dealing with those appropriately using low level async primitives is still left to the user
2023-10-02 12:16:45 +0200 <masaeedu> i could be misreading thouhg
2023-10-02 12:17:56 +0200 <haskellbridge> <s​m> for terminal stuff, https://hackage.haskell.org/package/concurrent-output is a cool one
2023-10-02 12:22:32 +0200 <masaeedu> that looks really neat. unfortunately it seems like the dual of what i need: it helps a haskell process produce the sort of data on its output stream that i need to consume from a child process
2023-10-02 12:22:54 +0200 <masaeedu> could be useful for testing though
2023-10-02 12:23:52 +0200jjhoo(~jahakala@user/jjhoo) (Ping timeout: 272 seconds)
2023-10-02 12:27:44 +0200 <kuribas`> tomsmeding: I also suppose arrays only have a single pointer, so they don't contribute a lot to GC time.
2023-10-02 12:28:21 +0200danse-nr3_(~francesco@151.37.123.134) (Ping timeout: 260 seconds)
2023-10-02 12:35:03 +0200vglfr(~vglfr@88.155.142.130)
2023-10-02 12:35:54 +0200qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2023-10-02 12:44:07 +0200 <haskellbridge> <m​auke> Terminal stuff is more complicated; for that, you have to implement a pseudo-terminal
2023-10-02 12:44:16 +0200vglfr(~vglfr@88.155.142.130) (Ping timeout: 255 seconds)
2023-10-02 12:45:29 +0200 <masaeedu> that makes sense, i'm essentially looking for primitives to implement a pseudo terminal, or at least simulate one to the satisfaction of the child process so that i can exercise it and record the relevant information
2023-10-02 12:52:32 +0200vglfr(~vglfr@88.155.142.130)
2023-10-02 12:53:00 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds)
2023-10-02 12:55:37 +0200danse-nr3(~francesco@151.37.123.134)
2023-10-02 12:56:44 +0200vglfr(~vglfr@88.155.142.130) (Ping timeout: 248 seconds)
2023-10-02 12:58:38 +0200tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Read error: Connection reset by peer)
2023-10-02 12:58:41 +0200tcard_(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
2023-10-02 12:59:14 +0200CiaoSen(~Jura@2a05:5800:2a3:5900:664b:f0ff:fe37:9ef) (Ping timeout: 246 seconds)
2023-10-02 13:00:28 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-02 13:00:48 +0200jargon(~jargon@184.101.67.95) (Remote host closed the connection)
2023-10-02 13:01:28 +0200sm(~sm@plaintextaccounting/sm)
2023-10-02 13:04:13 +0200hiyori(~hiyori@user/hiyori)
2023-10-02 13:05:58 +0200sm(~sm@plaintextaccounting/sm) (Client Quit)
2023-10-02 13:06:32 +0200m1dnight(~christoph@78-22-4-67.access.telenet.be) (Quit: WeeChat 4.0.4)
2023-10-02 13:06:48 +0200m1dnight(~christoph@78-22-4-67.access.telenet.be)
2023-10-02 13:07:13 +0200danse-nr3(~francesco@151.37.123.134) (Ping timeout: 255 seconds)
2023-10-02 13:16:20 +0200lg188(~lg188@82.18.98.230)
2023-10-02 13:26:54 +0200hugo(znc@verdigris.lysator.liu.se)
2023-10-02 13:27:05 +0200stites(~stites@130.44.147.204) (Ping timeout: 240 seconds)
2023-10-02 13:28:29 +0200alexherbo2(~alexherbo@2a02-8440-3340-d3fe-1412-0c65-3696-c5b2.rev.sfr.net) (Remote host closed the connection)
2023-10-02 13:28:48 +0200alexherbo2(~alexherbo@2a02-8440-3340-d3fe-1412-0c65-3696-c5b2.rev.sfr.net)
2023-10-02 13:29:41 +0200stites(~stites@2607:fb90:ad62:9844:b792:bda4:37c7:7710)
2023-10-02 13:42:50 +0200masaeedu(~masaeedu@modemcable068.99-80-70.mc.videotron.ca) (Quit: WeeChat 4.0.2)
2023-10-02 13:47:46 +0200alexherbo2(~alexherbo@2a02-8440-3340-d3fe-1412-0c65-3696-c5b2.rev.sfr.net) (Remote host closed the connection)
2023-10-02 13:48:04 +0200alexherbo2(~alexherbo@2a02-8440-3340-d3fe-1412-0c65-3696-c5b2.rev.sfr.net)
2023-10-02 13:50:53 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-10-02 13:52:51 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-10-02 13:54:36 +0200Feuermagier_(~Feuermagi@user/feuermagier)
2023-10-02 13:54:36 +0200Feuermagier(~Feuermagi@user/feuermagier) (Killed (calcium.libera.chat (Nickname regained by services)))
2023-10-02 13:54:36 +0200Feuermagier_Feuermagier
2023-10-02 13:59:54 +0200Guest5529(~Guest55@ext-1-173.eduroam.chalmers.se)
2023-10-02 14:00:50 +0200 <Guest5529> I am trying to write template haskell code that emits some rewrite rules, but they are rejected because they contain redundant parenthesis.
2023-10-02 14:00:50 +0200 <Guest5529> The LHS of my rule has the form of `f a b`, but TH emits `(f a) b`, which is not legal as a LHS for a rewrite rule. Does anyone know of a way of omiting such parenthesis in TH-generated code?
2023-10-02 14:01:49 +0200 <dminuoso> Guest5529: What are you using to pretty print the code with, exactly?
2023-10-02 14:02:36 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds)
2023-10-02 14:03:12 +0200michalz(~michalz@185.246.204.125) (Ping timeout: 258 seconds)
2023-10-02 14:05:35 +0200 <Guest5529> The code I am seeing is shown in a GHC error message
2023-10-02 14:05:41 +0200 <Guest5529> So whatever is the default, I guess?
2023-10-02 14:05:45 +0200michalz(~michalz@185.246.204.126)
2023-10-02 14:06:10 +0200 <Guest5529> My error is identical to the one listed in this old SO question: https://stackoverflow.com/questions/57598262/how-to-emit-rewrite-rules-from-template-haskell
2023-10-02 14:06:39 +0200 <haskellbridge> <m​auke> I see a package called posix-pty on hackage
2023-10-02 14:06:49 +0200 <dminuoso> Guest5529: What do you mean by "default". Can you show your template haskell code?
2023-10-02 14:07:08 +0200 <Guest5529> How would you like me to share it? I don't mind
2023-10-02 14:07:37 +0200 <dminuoso> Use a paste website of your choosing. Our channel topic has one, but you can also use gist.github.com or any other similar service you like.
2023-10-02 14:07:48 +0200 <dminuoso> https://paste.tomsmeding.com
2023-10-02 14:10:34 +0200 <Guest5529> Does this work? https://paste.tomsmeding.com/GkTmNkdF
2023-10-02 14:12:33 +0200 <Guest5529> I tried a dirty hack where `locallyLHS endpoint = AppE $ mkName $ concat ["locally ", endpoint, " f"]`, but it didn't work as it (correctly) is not parsed as a variable
2023-10-02 14:12:45 +0200 <Guest5529> sorry, the AppE above should be VarE
2023-10-02 14:12:54 +0200 <dminuoso> Guest5529: No worry, its enough for me to get the idea.
2023-10-02 14:13:06 +0200 <Guest5529> Thanks, I would appreciate any help
2023-10-02 14:13:15 +0200 <Guest5529> I am open for hacks, regardless of how greasy they are
2023-10-02 14:13:26 +0200 <dminuoso> I would say, try to make a simple testcase and file it as a bug report on ghc itself.
2023-10-02 14:13:43 +0200 <dminuoso> If you're directly splicing a rule, and GHC is choking like that, I have a hard time seeing how this is not a bug.
2023-10-02 14:14:08 +0200 <Guest5529> If I manually copy the rule the error is presenting, and only removes the parenthesis around `locally server`, the rule is accepted
2023-10-02 14:14:18 +0200 <dminuoso> The ADT shouldnt even let you admit specifying some AST that is invalid syntax.
2023-10-02 14:15:17 +0200 <Guest5529> Sigh, so maybe this is not a quick fix
2023-10-02 14:15:21 +0200 <Guest5529> I will open an issue
2023-10-02 14:15:55 +0200 <int-e> compare https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/ThToHs.hs#L1044-1046
2023-10-02 14:16:23 +0200 <int-e> (That's where the "extra" parentheses come from)
2023-10-02 14:16:58 +0200hiyori(~hiyori@user/hiyori) (Quit: Client closed)
2023-10-02 14:17:10 +0200 <dminuoso> int-e: Im curious, what is this output of cvtl exactly?
2023-10-02 14:17:25 +0200 <dminuoso> Arent parenthesis lexical information already? How does that fit into a TH splice?
2023-10-02 14:17:52 +0200 <dminuoso> Or does TH quite literally splice lexical chunks in place?
2023-10-02 14:18:23 +0200hugo-(znc@verdigris.lysator.liu.se)
2023-10-02 14:19:05 +0200 <tomsmeding> I'm on a system that doesn't have GMP globally installed. I've built it locally and installed it in a prefix (I don't have root on this system). Is there a way to tell cabal/ghc to use _this_ gmp? extra-lib-dirs does nothing.
2023-10-02 14:19:20 +0200 <Guest5529> Hm I managed to find a hack just now, by trying a different syntax
2023-10-02 14:19:43 +0200 <dminuoso> Which are you using instead?
2023-10-02 14:19:54 +0200 <Guest5529> `locallyLHS endpoint = UInfixE (VarE $ mkName endpoint) (VarE $ mkName "locally") ((VarE $ mkName "f"))` will render as `server `locally` f`, which is accepted
2023-10-02 14:20:05 +0200 <dminuoso> Heh.
2023-10-02 14:20:09 +0200 <Guest5529> It works because I have a 2-ary function
2023-10-02 14:20:10 +0200 <int-e> dminuoso: It's an AST but for some reason, presumably pretty-printing (maybe infix operators) it preserves parentheses.
2023-10-02 14:20:11 +0200 <Guest5529> Greasy
2023-10-02 14:20:29 +0200 <dminuoso> Guest5529: Nice to see you have a workaround. But do please file a bug report regardless.
2023-10-02 14:20:39 +0200 <Guest5529> The rule still seems to fire even if the program I am compiling contains `local server f`
2023-10-02 14:20:45 +0200 <int-e> Oh in fact that same type may be used before and after fixity resolution? No clue, really.
2023-10-02 14:20:47 +0200 <Guest5529> So that is nice
2023-10-02 14:21:04 +0200 <int-e> Guest5529: lol
2023-10-02 14:21:08 +0200 <Guest5529> Amazing
2023-10-02 14:21:26 +0200 <int-e> (it'll stop working if you have more than two arguments, but it is a clever hack)
2023-10-02 14:21:53 +0200 <Guest5529> I am fortunate, I need to add some optimizations for three different functions but they are all 2-ary
2023-10-02 14:22:27 +0200 <int-e> dminuoso: So I guess the right fix will have to relax that check for RULES. Or declare TH-generated RULES illegal I guess.
2023-10-02 14:23:03 +0200 <Guest5529> I was amazed that I could even emit rules with TH
2023-10-02 14:23:07 +0200 <Guest5529> I like it
2023-10-02 14:23:08 +0200 <dminuoso> What I dont quite get is why this generates redundant parenthesis at all
2023-10-02 14:23:08 +0200hugo-(znc@verdigris.lysator.liu.se) (Ping timeout: 258 seconds)
2023-10-02 14:23:18 +0200 <dminuoso> parenthesizeHsExpr seems to accept precedence parameters
2023-10-02 14:23:31 +0200 <dminuoso> It feels like TH should be smart enough to not do this.
2023-10-02 14:23:41 +0200 <int-e> maybe
2023-10-02 14:23:50 +0200 <int-e> open a ticket, leave it to the devs :)
2023-10-02 14:24:11 +0200 <Guest5529> Opening it as we speak, preparing the issue
2023-10-02 14:25:04 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2023-10-02 14:26:57 +0200 <int-e> dminuoso: Why... because it (mostly, as evidenced above) works; why would you bother with omitting redundant parentheses in code that people hardly ever see... it's easy to miss this corner case where the parentheses actually hurt because of similar, but incompatible laziness in another part of a compiler.
2023-10-02 14:29:20 +0200 <dminuoso> int-e: For one, it would make dumped splices a bit more pleasing to read, which can be useful for flows where you manually splice (say to avoid cross compilation issues)
2023-10-02 14:30:27 +0200acidjnk_new(~acidjnk@p200300d6e7072f61505e043ab51d70dd.dip0.t-ipconnect.de)
2023-10-02 14:32:58 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-02 14:35:34 +0200todi(~todi@p5dca5e79.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2023-10-02 14:38:15 +0200todi(~todi@p5dca5e79.dip0.t-ipconnect.de)
2023-10-02 14:38:28 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 258 seconds)
2023-10-02 14:38:37 +0200hugo-(znc@verdigris.lysator.liu.se)
2023-10-02 14:41:02 +0200czy(~user@121.231.44.109) (Remote host closed the connection)
2023-10-02 14:41:46 +0200danse-nr3(~francesco@151.35.117.238)
2023-10-02 14:41:49 +0200 <Guest5529> https://gitlab.haskell.org/ghc/ghc/-/issues/24046
2023-10-02 14:43:40 +0200czy(~user@121.231.44.109)
2023-10-02 14:44:56 +0200acidjnk_new(~acidjnk@p200300d6e7072f61505e043ab51d70dd.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-10-02 14:45:26 +0200ubert(~Thunderbi@178.115.46.96.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
2023-10-02 14:45:31 +0200acidjnk_new(~acidjnk@p200300d6e7072f619c9a5a82fd280133.dip0.t-ipconnect.de)
2023-10-02 14:49:25 +0200qqq(~qqq@92.43.167.61)
2023-10-02 14:49:28 +0200AlexZenon(~alzenon@178.34.161.162) (Quit: ;-)
2023-10-02 14:49:50 +0200Alex_test(~al_test@178.34.161.162) (Quit: ;-)
2023-10-02 14:50:13 +0200AlexNoo(~AlexNoo@178.34.161.162) (Quit: Leaving)
2023-10-02 14:56:11 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-10-02 14:57:35 +0200 <Guest5529> Apparently my TH problem is patched in 9.6, which is great dminuoso
2023-10-02 14:59:02 +0200 <int-e> oh, great timing
2023-10-02 15:01:49 +0200Feuermagier(~Feuermagi@user/feuermagier) (Quit: Leaving)
2023-10-02 15:05:44 +0200stites(~stites@2607:fb90:ad62:9844:b792:bda4:37c7:7710) (Read error: Connection reset by peer)
2023-10-02 15:06:03 +0200stites(~stites@130.44.147.204)
2023-10-02 15:12:38 +0200AlexNoo(~AlexNoo@178.34.161.162)
2023-10-02 15:13:27 +0200sabino(~sabino@user/sabino)
2023-10-02 15:13:36 +0200acidjnk_new(~acidjnk@p200300d6e7072f619c9a5a82fd280133.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2023-10-02 15:14:16 +0200 <kuribas`> Does native ghc support simd? Will massiv compile to vectorised code, or just on LLVM?
2023-10-02 15:15:24 +0200 <dminuoso> kuribas`: Yes and no.
2023-10-02 15:15:41 +0200 <dminuoso> GHC has vector primops available, but you have to explicitly select them.
2023-10-02 15:16:09 +0200 <dminuoso> There is no builtin auto vectorization (there were a few attempts at this, but they have gone stale)
2023-10-02 15:16:38 +0200 <dminuoso> So whether massiv uses vectorised code, you have to check the massiv codebase whether it (directly or indirectly) uses vectorized primops
2023-10-02 15:16:46 +0200AlexZenon(~alzenon@178.34.161.162)
2023-10-02 15:17:22 +0200 <kuribas`> ok, and if it doesn't, selecting llvm can vectorize the code?
2023-10-02 15:18:23 +0200EvanR(~EvanR@user/evanr) (Remote host closed the connection)
2023-10-02 15:18:44 +0200EvanR(~EvanR@user/evanr)
2023-10-02 15:19:58 +0200 <dminuoso> I have no experience with that. In principle it seems like it could in theory, but given that our code generation is a bit more exotic I suspect the vectorization potential lis very limited.
2023-10-02 15:20:55 +0200stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2023-10-02 15:22:03 +0200acidjnk_new(~acidjnk@p200300d6e7072f619c9a5a82fd280133.dip0.t-ipconnect.de)
2023-10-02 15:22:06 +0200stiell(~stiell@gateway/tor-sasl/stiell)
2023-10-02 15:22:28 +0200Alex_test(~al_test@178.34.161.162)
2023-10-02 15:22:56 +0200 <dminuoso> https://github.com/lehins/massiv/issues/80
2023-10-02 15:23:04 +0200czy`(~user@121.231.44.109)
2023-10-02 15:23:56 +0200czy(~user@121.231.44.109) (Quit: ERC 5.6-git (IRC client for GNU Emacs 30.0.50))
2023-10-02 15:23:58 +0200czy`(~user@121.231.44.109) (Remote host closed the connection)
2023-10-02 15:24:41 +0200czy(~user@121.231.44.109)
2023-10-02 15:30:27 +0200 <kuribas`> well, that claimed a 4x performance increase :)
2023-10-02 15:30:57 +0200 <dminuoso> Which part of that?
2023-10-02 15:31:31 +0200ystael(~ystael@user/ystael)
2023-10-02 15:31:32 +0200 <dminuoso> Ah I see.
2023-10-02 15:31:40 +0200 <kuribas`> https://github.com/lehins/massiv/issues/80#issuecomment-508237610
2023-10-02 15:32:17 +0200 <dminuoso> Id have to look deeper at the examples. But if LLVM vectorization works that good, then great I guess?
2023-10-02 15:32:44 +0200 <dminuoso> However, Im not entirely sure what "native GHC SIMD (llvm)" refers to.
2023-10-02 15:33:16 +0200 <kuribas`> I suppose LLVM backend, not native backend.
2023-10-02 15:33:54 +0200ulysses4ever(~artem@2601:249:4380:8950:8cb8:b1ce:18cd:1b77)
2023-10-02 15:35:00 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-10-02 15:35:29 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-10-02 15:35:30 +0200 <dminuoso> A-ha. https://gitlab.haskell.org/ghc/ghc/-/issues/7741
2023-10-02 15:35:38 +0200 <dminuoso> It seems that you have to use LLVM even for simd primops.
2023-10-02 15:35:40 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-10-02 15:36:26 +0200 <kuribas`> I remember there was once SIMD support that was later removed.
2023-10-02 15:36:53 +0200 <dminuoso> Well, SIMD support for NCG.
2023-10-02 15:41:49 +0200acidjnk_new(~acidjnk@p200300d6e7072f619c9a5a82fd280133.dip0.t-ipconnect.de) (Remote host closed the connection)
2023-10-02 15:42:33 +0200acidjnk_new(~acidjnk@p200300d6e7072f619c9a5a82fd280133.dip0.t-ipconnect.de)
2023-10-02 15:45:00 +0200gatekempt(~gatekempt@user/gatekempt)
2023-10-02 15:45:19 +0200_d0t(~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 264 seconds)
2023-10-02 15:46:42 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-10-02 15:46:42 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-10-02 15:46:42 +0200wroathe(~wroathe@user/wroathe)
2023-10-02 15:53:48 +0200_d0t(~{-d0t-}@user/-d0t-/x-7915216)
2023-10-02 15:55:39 +0200xff0x(~xff0x@2405:6580:b080:900:bb62:225f:513:94b7) (Read error: Connection reset by peer)
2023-10-02 15:56:46 +0200alexherbo2(~alexherbo@2a02-8440-3340-d3fe-1412-0c65-3696-c5b2.rev.sfr.net) (Remote host closed the connection)
2023-10-02 15:57:05 +0200alexherbo2(~alexherbo@2a02-8440-3340-d3fe-1412-0c65-3696-c5b2.rev.sfr.net)
2023-10-02 16:00:13 +0200xff0x(~xff0x@2405:6580:b080:900:2382:d87:4dd6:d990)
2023-10-02 16:02:52 +0200hugo-(znc@verdigris.lysator.liu.se) (Ping timeout: 248 seconds)
2023-10-02 16:07:49 +0200hugo-(znc@verdigris.lysator.liu.se)
2023-10-02 16:07:53 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 255 seconds)
2023-10-02 16:08:34 +0200Guest5529(~Guest55@ext-1-173.eduroam.chalmers.se) (Quit: Connection closed)
2023-10-02 16:25:10 +0200hugo-(znc@verdigris.lysator.liu.se) (Ping timeout: 272 seconds)
2023-10-02 16:37:32 +0200danse-nr3(~francesco@151.35.117.238) (Ping timeout: 248 seconds)
2023-10-02 16:38:09 +0200hugo-(znc@verdigris.lysator.liu.se)
2023-10-02 16:40:33 +0200alexherbo2(~alexherbo@2a02-8440-3340-d3fe-1412-0c65-3696-c5b2.rev.sfr.net) (Ping timeout: 245 seconds)
2023-10-02 16:42:07 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-10-02 16:45:45 +0200Guest30(~Guest30@2a00:6d43:500:801:3306:3d94:1e77:9fc9)
2023-10-02 16:47:21 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 260 seconds)
2023-10-02 16:48:32 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2023-10-02 16:51:52 +0200danse-nr3(~francesco@151.35.117.238)
2023-10-02 16:54:07 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
2023-10-02 16:54:09 +0200Guest|20(~Guest|20@145.108.66.99)
2023-10-02 16:54:22 +0200Guest|20(~Guest|20@145.108.66.99) (Client Quit)
2023-10-02 16:56:10 +0200captnemo(~captnemo@193.32.127.239)
2023-10-02 16:58:11 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
2023-10-02 17:01:23 +0200alexherbo2(~alexherbo@2a02-8440-3340-d3fe-1412-0c65-3696-c5b2.rev.sfr.net)
2023-10-02 17:05:14 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:2aaa:42ea:b9cc:3d82) (Quit: WeeChat 2.8)
2023-10-02 17:09:43 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Quit: segfaultfizzbuzz)
2023-10-02 17:14:13 +0200Guest|40(~Guest|40@138-38-227-107.wireless.bath.ac.uk)
2023-10-02 17:14:58 +0200idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-10-02 17:19:50 +0200rickbonavigo(~rickbonav@2a00:6d43:500:801:978b:c04c:d728:3c46) (Quit: ZNC 1.8.2 - https://znc.in)
2023-10-02 17:21:10 +0200Guest|40(~Guest|40@138-38-227-107.wireless.bath.ac.uk) (Quit: Connection closed)
2023-10-02 17:21:10 +0200rickbonavigo(~rickbonav@ip185-157-107-176.pool-bba.aruba.it)
2023-10-02 17:23:28 +0200Guest30(~Guest30@2a00:6d43:500:801:3306:3d94:1e77:9fc9) (Quit: Client closed)
2023-10-02 17:25:48 +0200jabuxas(~jabuxas@user/jabuxas)
2023-10-02 17:27:40 +0200rickbonavigo(~rickbonav@ip185-157-107-176.pool-bba.aruba.it) (Quit: ZNC 1.8.2 - https://znc.in)
2023-10-02 17:32:12 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-10-02 17:35:14 +0200Guest30(~Guest30@2a00:6d43:500:801:3306:3d94:1e77:9fc9)
2023-10-02 17:35:46 +0200hugo-(znc@verdigris.lysator.liu.se) (Ping timeout: 260 seconds)
2023-10-02 17:36:51 +0200 <haskellbridge> <r​ickbonavigo> !nick
2023-10-02 17:39:03 +0200doyougnu-(~doyougnu@45.46.170.68) (Ping timeout: 240 seconds)
2023-10-02 17:39:39 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2023-10-02 17:40:00 +0200hugo-(znc@verdigris.lysator.liu.se)
2023-10-02 17:40:43 +0200vglfr(~vglfr@88.155.254.210)
2023-10-02 17:40:49 +0200alexherbo2(~alexherbo@2a02-8440-3340-d3fe-1412-0c65-3696-c5b2.rev.sfr.net) (Remote host closed the connection)
2023-10-02 17:41:09 +0200alexherbo2(~alexherbo@2a02-8440-3340-d3fe-1412-0c65-3696-c5b2.rev.sfr.net)
2023-10-02 17:42:28 +0200Pozyomka(~pyon@user/pyon) (Quit: Pozyomka, my beloved: https://i.imgur.com/BMmVfTq.png)
2023-10-02 17:42:50 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:388b:f740:8f2c:555) (Remote host closed the connection)
2023-10-02 17:43:06 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-10-02 17:47:34 +0200vglfr(~vglfr@88.155.254.210) (Ping timeout: 255 seconds)
2023-10-02 17:48:33 +0200captnemo(~captnemo@193.32.127.239) (Quit: WeeChat 4.0.4)
2023-10-02 17:50:19 +0200 <EvanR> <rickbonavigo>
2023-10-02 17:50:57 +0200Guest30(~Guest30@2a00:6d43:500:801:3306:3d94:1e77:9fc9) (Quit: Client closed)
2023-10-02 17:55:10 +0200jabuxas(~jabuxas@user/jabuxas) (Quit: Leaving.)
2023-10-02 17:55:57 +0200vglfr(~vglfr@88.155.254.210)
2023-10-02 17:58:14 +0200gmg(~user@user/gehmehgeh)
2023-10-02 18:10:46 +0200hugo-(znc@verdigris.lysator.liu.se) (Ping timeout: 260 seconds)
2023-10-02 18:11:44 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 255 seconds)
2023-10-02 18:17:26 +0200vglfr(~vglfr@88.155.254.210) (Remote host closed the connection)
2023-10-02 18:19:35 +0200vglfr(~vglfr@88.155.254.210)
2023-10-02 18:22:13 +0200danse-nr3(~francesco@151.35.117.238) (Ping timeout: 255 seconds)
2023-10-02 18:22:45 +0200tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net)
2023-10-02 18:23:07 +0200Square3(~Square4@user/square) (Ping timeout: 255 seconds)
2023-10-02 18:26:26 +0200cpressey(~cpressey@host-2-102-82-207.as13285.net)
2023-10-02 18:28:54 +0200kuribas`(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
2023-10-02 18:29:48 +0200danse-nr3(~francesco@ge-19-120-4.service.infuturo.it)
2023-10-02 18:32:21 +0200 <cpressey> Something interesting I stumbled across recently, hadn't encountered before, might be of interest here: Augmenting a finite automaton with a single memory cell that holds an element of a given monoid or group: https://arxiv.org/abs/math/0601061v2
2023-10-02 18:32:38 +0200jjhoo(~jahakala@user/jjhoo)
2023-10-02 18:34:45 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-02 18:39:18 +0200alexherbo2(~alexherbo@2a02-8440-3340-d3fe-1412-0c65-3696-c5b2.rev.sfr.net) (Ping timeout: 245 seconds)
2023-10-02 18:39:56 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2023-10-02 18:41:19 +0200 <EvanR> 1 memory cell should be enough for anybody
2023-10-02 18:41:43 +0200geekosaurwonders how this relates to differentiation of types
2023-10-02 18:42:53 +0200 <geekosaur> (that is, does this constitute a one-hole context?)
2023-10-02 18:45:34 +0200EvanR(~EvanR@user/evanr) (Quit: Leaving)
2023-10-02 18:46:07 +0200 <ncf> isn't a DFA basically just a monoid already, with initial and final states?
2023-10-02 18:47:46 +0200hugo-(znc@verdigris.lysator.liu.se)
2023-10-02 18:48:44 +0200 <ncf> well, a finite monoid i guess
2023-10-02 18:51:55 +0200euleritian(~euleritia@2001:bc8:3f13:ffc2:90bc:54bf:aeae:e7ab)
2023-10-02 18:52:37 +0200Square(~Square@user/square)
2023-10-02 18:52:51 +0200hugo-(znc@verdigris.lysator.liu.se) (Ping timeout: 260 seconds)
2023-10-02 18:56:27 +0200euleritian(~euleritia@2001:bc8:3f13:ffc2:90bc:54bf:aeae:e7ab) (Ping timeout: 258 seconds)
2023-10-02 18:59:46 +0200acidjnk_new(~acidjnk@p200300d6e7072f619c9a5a82fd280133.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2023-10-02 18:59:53 +0200cpressey(~cpressey@host-2-102-82-207.as13285.net) (Quit: Client closed)
2023-10-02 19:00:51 +0200ski(~ski@88.131.7.247)
2023-10-02 19:01:22 +0200 <dminuoso> Is there something akin to -Wmissing-fields with a sum type that assures that for each possible constructor, there exists a branch that could produce it?
2023-10-02 19:02:02 +0200 <dminuoso> Specifically Im producing a big sum type as part of a parser, and I would like some guarantees I didnt forget any constructor
2023-10-02 19:02:07 +0200 <tomsmeding> that would have way too many false positives if enabled for every sum type
2023-10-02 19:02:34 +0200 <tomsmeding> it would need to be a pragma on one function for one sum type
2023-10-02 19:02:37 +0200nckhexen(nckx@libera/staff/owl/nckx) (Quit: Updating my Guix System <https://guix.gnu.org>)
2023-10-02 19:02:44 +0200hugo-(znc@verdigris.lysator.liu.se)
2023-10-02 19:04:20 +0200AlexNoo_(~AlexNoo@94.233.241.182)
2023-10-02 19:04:29 +0200 <ski> (i guess you're looking for a (kind of) surjectivity check, as opposed to a (kind of) totality check (checking for missing fields) ..)
2023-10-02 19:05:15 +0200pavonia(~user@user/siracusa) (Read error: Connection reset by peer)
2023-10-02 19:06:01 +0200cpressey(~cpressey@host-2-102-82-207.as13285.net)
2023-10-02 19:06:11 +0200AlexZenon(~alzenon@178.34.161.162) (Ping timeout: 255 seconds)
2023-10-02 19:07:02 +0200 <ski> (.. in a logic programming language with static mode checking, one could in general attempt to declare a mode to the effect of the converse relation "being total" aka the relation itself being surjective. however, i'm not sure that would work, with the parsing effects intervening)
2023-10-02 19:07:27 +0200AlexNoo(~AlexNoo@178.34.161.162) (Ping timeout: 240 seconds)
2023-10-02 19:07:34 +0200hugo-(znc@verdigris.lysator.liu.se) (Ping timeout: 258 seconds)
2023-10-02 19:07:47 +0200acidjnk(~acidjnk@p200300d6e7072f6198c60cc392982534.dip0.t-ipconnect.de)
2023-10-02 19:07:57 +0200Alex_test(~al_test@178.34.161.162) (Ping timeout: 258 seconds)
2023-10-02 19:08:21 +0200cpressey(~cpressey@host-2-102-82-207.as13285.net) (Client Quit)
2023-10-02 19:09:29 +0200 <ski> (mode checking can be seen as a generalization (both declarative, and also sometimes procedural) of checks akin to functional dependencies and injectivity constraints (on type families) .. except that they'd be applied to the expression/term level here, not on the type level)
2023-10-02 19:12:07 +0200AlexZenon(~alzenon@94.233.241.182)
2023-10-02 19:14:07 +0200Alex_test(~al_test@94.233.241.182)
2023-10-02 19:17:12 +0200billchenchina(~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a)
2023-10-02 19:17:55 +0200cpressey(~cpressey@host-89-240-119-146.as13285.net)
2023-10-02 19:19:32 +0200 <cpressey> (Ha, the link I posted earlier I actually didn't mean to post in here.  Sorry about that.  Still, hopefully it wasn't *vastly* off-topic.)
2023-10-02 19:20:56 +0200hugo-(znc@verdigris.lysator.liu.se)
2023-10-02 19:26:35 +0200stites(~stites@130.44.147.204) (Ping timeout: 240 seconds)
2023-10-02 19:27:29 +0200stites(~stites@2607:fb91:dc1:c8a5:8789:bf98:6bc7:9cd4)
2023-10-02 19:31:24 +0200alexherbo2(~alexherbo@2a02-8440-3340-daca-00ad-ab5a-9bda-e15a.rev.sfr.net)
2023-10-02 19:38:58 +0200hugo-(znc@verdigris.lysator.liu.se) (Ping timeout: 272 seconds)
2023-10-02 19:45:12 +0200hrberg(~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2023-10-02 19:45:36 +0200hrberg(~quassel@171.79-160-161.customer.lyse.net)
2023-10-02 19:47:27 +0200Pozyomka(~pyon@user/pyon)
2023-10-02 19:50:25 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-10-02 19:52:25 +0200doyougnu(~doyougnu@45.46.170.68)
2023-10-02 19:53:34 +0200Square(~Square@user/square) (Ping timeout: 255 seconds)
2023-10-02 19:59:40 +0200stites(~stites@2607:fb91:dc1:c8a5:8789:bf98:6bc7:9cd4) (Read error: Connection reset by peer)
2023-10-02 20:00:00 +0200stites(~stites@130.44.147.204)
2023-10-02 20:01:19 +0200infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2023-10-02 20:03:28 +0200infinity0(~infinity0@pwned.gg)
2023-10-02 20:05:24 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-10-02 20:06:44 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-10-02 20:07:23 +0200simendsjo(~user@84.211.91.241) (Ping timeout: 255 seconds)
2023-10-02 20:08:20 +0200Square(~Square@user/square)
2023-10-02 20:10:33 +0200hugo(znc@verdigris.lysator.liu.se)
2023-10-02 20:13:25 +0200infinity0_(~infinity0@pwned.gg)
2023-10-02 20:13:25 +0200infinity0(~infinity0@pwned.gg) (Killed (mercury.libera.chat (Nickname regained by services)))
2023-10-02 20:13:25 +0200infinity0_infinity0
2023-10-02 20:17:21 +0200danse-nr3(~francesco@ge-19-120-4.service.infuturo.it) (Ping timeout: 260 seconds)
2023-10-02 20:22:22 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 255 seconds)
2023-10-02 20:24:04 +0200rw(~rw@136.226.101.20)
2023-10-02 20:26:24 +0200 <rw> I have embedded haskell FFI code into a rust project and am noticing a race condition between hs_exit() and when a haskell stable ptr is destroyed. Given this is running inside an application, what happens if I dont call hs_exit() and just let the program terminate?
2023-10-02 20:27:45 +0200 <rw> I have registered `hs_exit()` to run via ::libc::atexit(hs_exit), however the race condition appears to be related to how rust is calling destructors and when `libc::atexit(hs_exit)` is actually executed.
2023-10-02 20:32:54 +0200 <monochrom> Possibly no consequence except not flushing buffers of Handles.
2023-10-02 20:34:14 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-10-02 20:34:18 +0200cpressey(~cpressey@host-89-240-119-146.as13285.net) (Ping timeout: 245 seconds)
2023-10-02 20:35:21 +0200 <monochrom> Normally I don't even use atexit(), I write library constructors and destructors for hs_init() and hs_exit(). http://www.vex.net/~trebla/haskell/so.xhtml
2023-10-02 20:39:39 +0200rw(~rw@136.226.101.20) (Quit: Client closed)
2023-10-02 20:42:30 +0200hugo(znc@verdigris.lysator.liu.se)
2023-10-02 20:44:21 +0200cpressey(~cpressey@host-89-240-119-146.as13285.net)
2023-10-02 20:48:29 +0200acidjnk(~acidjnk@p200300d6e7072f6198c60cc392982534.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2023-10-02 20:50:44 +0200acidjnk(~acidjnk@p200300d6e7072f61e1adf3a14c9d7e70.dip0.t-ipconnect.de)
2023-10-02 20:54:04 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2023-10-02 20:58:05 +0200rw(~rw@136.226.101.20)
2023-10-02 20:58:10 +0200 <rw> what happens if I never call hs_exit(), but terminate my program (say it ends or I kill it)
2023-10-02 20:59:37 +0200alexherbo2(~alexherbo@2a02-8440-3340-daca-00ad-ab5a-9bda-e15a.rev.sfr.net) (Remote host closed the connection)
2023-10-02 20:59:57 +0200alexherbo2(~alexherbo@2a02-8440-3340-daca-00ad-ab5a-9bda-e15a.rev.sfr.net)
2023-10-02 21:00:33 +0200rgw(~R@2605:a601:a0df:5600:7d17:3b99:a896:2e62)
2023-10-02 21:01:27 +0200jabuxas(~jabuxas@user/jabuxas)
2023-10-02 21:02:53 +0200fweht(uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-02 21:08:00 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:388b:f740:8f2c:555)
2023-10-02 21:10:46 +0200 <monochrom> <monochrom> Possibly no consequence except not flushing buffers of Handles.
2023-10-02 21:12:12 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:388b:f740:8f2c:555) (Ping timeout: 248 seconds)
2023-10-02 21:15:46 +0200danza_(~francesco@151.43.118.113)
2023-10-02 21:15:58 +0200cpressey(~cpressey@host-89-240-119-146.as13285.net) (Ping timeout: 245 seconds)
2023-10-02 21:16:43 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:fd5:bf9:bc86:68dc)
2023-10-02 21:22:51 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:fd5:bf9:bc86:68dc) (Quit: WeeChat 2.8)
2023-10-02 21:24:39 +0200cpressey(~cpressey@host-89-240-119-146.as13285.net)
2023-10-02 21:28:29 +0200acidjnk(~acidjnk@p200300d6e7072f61e1adf3a14c9d7e70.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2023-10-02 21:34:12 +0200acidjnk(~acidjnk@p200300d6e7072f6150a540857548904b.dip0.t-ipconnect.de)
2023-10-02 21:35:19 +0200bilegeek(~bilegeek@2600:1008:b026:1a87:2ee8:e964:d4e2:13c1)
2023-10-02 21:36:56 +0200ski(~ski@88.131.7.247) (Ping timeout: 255 seconds)
2023-10-02 21:38:12 +0200AlexNoo_AlexNoo
2023-10-02 21:42:28 +0200ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 255 seconds)
2023-10-02 21:43:10 +0200ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net)
2023-10-02 21:45:19 +0200danza_(~francesco@151.43.118.113) (Ping timeout: 264 seconds)
2023-10-02 21:45:26 +0200ubert(~Thunderbi@91.141.57.144.wireless.dyn.drei.com)
2023-10-02 21:55:03 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:388b:f740:8f2c:555)
2023-10-02 21:57:49 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-10-02 22:09:06 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-10-02 22:12:20 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2023-10-02 22:19:14 +0200euleritian(~euleritia@185.238.219.28)
2023-10-02 22:25:48 +0200artem(~artem@73.145.240.174)
2023-10-02 22:29:11 +0200ulysses4ever(~artem@2601:249:4380:8950:8cb8:b1ce:18cd:1b77) (Ping timeout: 260 seconds)
2023-10-02 22:31:28 +0200EvanR(~EvanR@user/evanr)
2023-10-02 22:32:09 +0200pavonia(~user@user/siracusa)
2023-10-02 22:32:25 +0200artem(~artem@73.145.240.174) (Ping timeout: 255 seconds)
2023-10-02 22:36:14 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-02 22:37:36 +0200Pickchea(~private@user/pickchea)
2023-10-02 22:37:37 +0200ulysses4ever(~artem@73.145.240.174)
2023-10-02 22:39:52 +0200bilegeek(~bilegeek@2600:1008:b026:1a87:2ee8:e964:d4e2:13c1) (Quit: Leaving)
2023-10-02 22:41:32 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2023-10-02 22:44:02 +0200rw(~rw@136.226.101.20) (Quit: Client closed)
2023-10-02 22:45:57 +0200jabuxas(~jabuxas@user/jabuxas) (Remote host closed the connection)
2023-10-02 22:46:25 +0200jabuxas(~jabuxas@user/jabuxas)
2023-10-02 22:49:34 +0200artem(~artem@c-73-103-90-145.hsd1.in.comcast.net)
2023-10-02 22:51:46 +0200idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.5)
2023-10-02 22:51:55 +0200ulysses4ever(~artem@73.145.240.174) (Read error: Connection reset by peer)
2023-10-02 22:54:23 +0200cpressey(~cpressey@host-89-240-119-146.as13285.net) (Quit: Client closed)
2023-10-02 23:00:06 +0200Square3(~Square4@user/square)
2023-10-02 23:03:21 +0200zer0bitz_(~zer0bitz@user/zer0bitz)
2023-10-02 23:03:32 +0200Square(~Square@user/square) (Ping timeout: 272 seconds)
2023-10-02 23:05:32 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
2023-10-02 23:06:23 +0200jabuxas(~jabuxas@user/jabuxas) (Remote host closed the connection)
2023-10-02 23:06:46 +0200zer0bitz(~zer0bitz@user/zer0bitz) (Ping timeout: 258 seconds)
2023-10-02 23:07:05 +0200stites(~stites@130.44.147.204) (Ping timeout: 240 seconds)
2023-10-02 23:07:57 +0200stites(~stites@2607:fb90:ad61:8dda:f76b:db35:422d:4ab8)
2023-10-02 23:14:46 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2023-10-02 23:15:36 +0200 <tomsmeding> https://ircbrowse.tomsmeding.com/day/lchaskell/2023/10/02?id=1097074#trid1097074
2023-10-02 23:21:03 +0200jabuxas(~jabuxas@user/jabuxas)
2023-10-02 23:25:23 +0200michalz(~michalz@185.246.204.126) (Remote host closed the connection)
2023-10-02 23:28:05 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 255 seconds)
2023-10-02 23:36:56 +0200hugo(znc@verdigris.lysator.liu.se)
2023-10-02 23:41:05 +0200alexherbo2(~alexherbo@2a02-8440-3340-daca-00ad-ab5a-9bda-e15a.rev.sfr.net) (Remote host closed the connection)
2023-10-02 23:41:24 +0200alexherbo2(~alexherbo@2a02-8440-3340-daca-00ad-ab5a-9bda-e15a.rev.sfr.net)
2023-10-02 23:44:19 +0200johnw(~johnw@69.62.242.138) (Quit: ZNC - http://znc.in)
2023-10-02 23:44:47 +0200johnw(~johnw@69.62.242.138)
2023-10-02 23:50:07 +0200chomwitt(~chomwitt@2a02:587:7a24:b000:1ac0:4dff:fedb:a3f1) (Ping timeout: 264 seconds)
2023-10-02 23:51:32 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-10-02 23:52:37 +0200hippoid(~hippoid@user/hippoid)
2023-10-02 23:53:49 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-10-02 23:54:49 +0200stites(~stites@2607:fb90:ad61:8dda:f76b:db35:422d:4ab8) (Read error: Connection reset by peer)
2023-10-02 23:55:09 +0200stites(~stites@130.44.147.204)
2023-10-02 23:59:06 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
2023-10-02 23:59:08 +0200 <hippoid> can someone explain to me what is happening on line 34? I think it's a section with traverse and bind, but can't make sense of it. I tried getting very explicit about the types, but still line 34 is baffling: https://gist.github.com/idrisr/700d4263f876360b862ce404ee1455b5