2024/11/20

2024-11-20 00:03:12 +0100 <geekosaur> I still don't know how you think that would work
2024-11-20 00:03:17 +0100 <geekosaur> think about it
2024-11-20 00:04:52 +0100 <geekosaur> "Magic" would be quite literal
2024-11-20 00:05:43 +0100 <Leary> I mean, GHC could just do the inlining for you. Not like it doesn't already do plenty of that.
2024-11-20 00:07:24 +0100 <hellwolf> the fact is it worked. I take that as a magic.
2024-11-20 00:07:33 +0100 <hellwolf> *works
2024-11-20 00:17:30 +0100L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2024-11-20 00:21:51 +0100 <hellwolf> I also defined I8,I16..I256, U8,U16...U256, all without TH. I can now replace that with the magic too. Can you actually do such a splice in the module export list too? I guess that's where the magic is limited?
2024-11-20 00:22:22 +0100 <hellwolf> module XYZ ( ... U8, U16, ... U256,...)
2024-11-20 00:28:20 +0100 <geekosaur> things defined via TH can be exported, yes
2024-11-20 00:29:52 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-11-20 00:32:18 +0100 <hellwolf> right. I am more curious about if one can go one step of further of not to write this manually
2024-11-20 00:32:18 +0100 <hellwolf> -- *** Assorted INTx Types
2024-11-20 00:32:18 +0100 <hellwolf> , U8,U16,U24,U32,U40,U48,U56,U64
2024-11-20 00:32:18 +0100 <hellwolf> ... and so on, in the module export list
2024-11-20 00:32:18 +0100 <hellwolf> ... but I am quite content already comparing to where I was few hours ago about this part of the code.
2024-11-20 00:33:00 +0100 <geekosaur> I don't think you can, no; it'd be kinda the extreme case of the staging restriction
2024-11-20 00:33:00 +0100remexre(~remexre@user/remexre) (Ping timeout: 252 seconds)
2024-11-20 00:34:14 +0100Eoco(~ian@128.101.131.218) (Ping timeout: 272 seconds)
2024-11-20 00:34:39 +0100sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 265 seconds)
2024-11-20 00:35:35 +0100remexre(~remexre@user/remexre) remexre
2024-11-20 00:36:01 +0100Eoco(~ian@128.101.131.218) Eoco
2024-11-20 00:36:06 +0100JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2024-11-20 00:40:42 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2024-11-20 00:41:02 +0100mange(~user@user/mange) (Remote host closed the connection)
2024-11-20 00:42:18 +0100notzmv(~umar@user/notzmv) notzmv
2024-11-20 01:01:33 +0100mange(~user@user/mange) mange
2024-11-20 01:04:09 +0100Axman6(~Axman6@user/axman6) (Ping timeout: 240 seconds)
2024-11-20 01:06:59 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2024-11-20 01:08:25 +0100Everything(~Everythin@46-133-188-81.mobile.vf-ua.net) (Quit: leaving)
2024-11-20 01:08:45 +0100acidjnk_new(~acidjnk@p200300d6e7283f33ad61be24cfbe8605.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2024-11-20 01:10:49 +0100misterfish(~misterfis@84.53.85.146) (Ping timeout: 260 seconds)
2024-11-20 01:19:50 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds)
2024-11-20 01:20:38 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2024-11-20 01:33:03 +0100sprotte24(~sprotte24@p200300d16f3e1d0004a3986a39ff8486.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2024-11-20 01:36:25 +0100JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-11-20 01:37:48 +0100Axman6(~Axman6@user/axman6) Axman6
2024-11-20 01:40:16 +0100son0p(~ff@2800:e2:f80:ee7::4) son0p
2024-11-20 01:40:16 +0100troojg(~troojg@user/troojg) troojg
2024-11-20 01:43:41 +0100 <hellwolf> forM [ (s, n) | s <- [True, False], n <- [1..32] ] $ \(s, n) -> do
2024-11-20 01:43:41 +0100 <hellwolf> name <- TH.newName ((if s then "I" else "U") ++ show (n * 8))
2024-11-20 01:43:41 +0100 <hellwolf> TH.tySynD name [] ((TH.conT ''INTx)
2024-11-20 01:43:41 +0100 <hellwolf> `TH.appT` (TH.promotedT (if s then 'True else 'False))
2024-11-20 01:43:41 +0100 <hellwolf> `TH.appT` (TH.litT (TH.numTyLit n)))
2024-11-20 01:43:44 +0100 <hellwolf> This is amazing
2024-11-20 01:43:54 +0100 <hellwolf> Thanks for teaching me this today.
2024-11-20 01:45:14 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-11-20 01:53:30 +0100hsw_(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) hsw
2024-11-20 01:53:52 +0100hsw(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Read error: Connection reset by peer)
2024-11-20 01:58:00 +0100 <Axman6> if s then 'True else 'False made me sad but then realised it's not id
2024-11-20 01:58:44 +0100 <Axman6> hellwolf: why limit it to multiples of 8? We use a lot of 18 bit ints at work =)
2024-11-20 01:59:25 +0100 <geekosaur> pdp7? 😛
2024-11-20 01:59:41 +0100 <Axman6> FPGAs
2024-11-20 01:59:57 +0100 <geekosaur> …everything old is new again
2024-11-20 02:00:06 +0100 <Axman6> the DSPs we have do 18x25 bit multiplications (IIRC)
2024-11-20 02:02:17 +0100 <Axman6> hellwolf: you might also want to look at how Clash does numbers
2024-11-20 02:03:29 +0100 <hellwolf> Yea, I wonder if there is better way of doing that 'True 'False thing :) I guess the domain I am dealing with spared me with non octal trite...
2024-11-20 02:03:44 +0100 <hellwolf> Axman6: yes I should checkout clash, heard a lot about it...
2024-11-20 02:05:07 +0100 <Axman6> I love it, I wish we'd use it at work, VHDL is such a horrific language
2024-11-20 02:16:44 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds)
2024-11-20 02:17:48 +0100JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2024-11-20 02:23:50 +0100housemate(~housemate@2a04:9dc0:0:162::5d91:d7ed) (Quit: Nothing to see here. I wasn't there.)
2024-11-20 02:30:36 +0100euleritian(~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2024-11-20 02:31:21 +0100euleritian(~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de)
2024-11-20 02:39:04 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-11-20 02:42:03 +0100Alleria_(~Alleria@user/alleria) Alleria
2024-11-20 02:44:09 +0100Alleria(~Alleria@user/alleria) (Ping timeout: 252 seconds)
2024-11-20 02:55:12 +0100hsw_(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Quit: Leaving)
2024-11-20 02:55:24 +0100hsw(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) hsw
2024-11-20 02:59:18 +0100Alleria(~Alleria@user/alleria) Alleria
2024-11-20 03:03:04 +0100Alleria_(~Alleria@user/alleria) (Ping timeout: 272 seconds)
2024-11-20 03:08:59 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2024-11-20 03:09:12 +0100Alleria(~Alleria@user/alleria) (Ping timeout: 252 seconds)
2024-11-20 03:13:18 +0100gmg(~user@user/gehmehgeh) gehmehgeh
2024-11-20 03:17:12 +0100JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-11-20 03:23:22 +0100Alleria(~Alleria@user/alleria) Alleria
2024-11-20 03:30:18 +0100troojg(~troojg@user/troojg) (Ping timeout: 272 seconds)
2024-11-20 03:35:29 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds)
2024-11-20 03:36:41 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-11-20 04:02:05 +0100 <Axman6> any python devs know of a python equivalent to insertWith max k v dict?
2024-11-20 04:13:59 +0100 <edwardk> hellwolf: re the export list, you can of course skip using an explicit export list. the least amount of code is no code at all there.
2024-11-20 04:14:00 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds)
2024-11-20 04:15:45 +0100forell(~forell@user/forell) (Ping timeout: 276 seconds)
2024-11-20 04:23:16 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2024-11-20 04:36:22 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)