2025/02/08

Newest at the top

2025-02-08 11:32:56 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2025-02-08 11:29:18 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-02-08 11:26:29 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 11:25:17 +0100ColinRobinson(~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
2025-02-08 11:25:05 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 11:24:51 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 11:17:25 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla
2025-02-08 11:15:38 +0100JuanDaughertyColinRobinson
2025-02-08 11:12:52 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-02-08 11:12:19 +0100lxsameer(~lxsameer@Serene/lxsameer) lxsameer
2025-02-08 11:04:07 +0100euleritian(~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
2025-02-08 11:03:49 +0100euleritian(~euleritia@dynamic-176-006-128-136.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2025-02-08 11:03:04 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br) gabiruh
2025-02-08 11:01:47 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br) (Ping timeout: 252 seconds)
2025-02-08 10:56:21 +0100JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2025-02-08 10:53:07 +0100__monty__(~toonn@user/toonn) toonn
2025-02-08 10:48:53 +0100paddymahoney(~paddymaho@pool-99-250-10-137.cpe.net.cable.rogers.com)
2025-02-08 10:41:29 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 260 seconds)
2025-02-08 10:41:07 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 10:38:00 +0100 <tomsmeding> I want an exception effect system so that I can statically determine whether an IO operation can throw
2025-02-08 10:37:49 +0100AlexZenon(~alzenon@178.34.151.30)
2025-02-08 10:37:25 +0100 <tomsmeding> never mind the leagues of other partial functions in not-Prelude that don't have an x-partial warning
2025-02-08 10:37:07 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 10:37:05 +0100 <tomsmeding> you could even defend this sizeOfListElt as "I'm only turning off the partiality warning in this separate file, so I have to watch out more here, but there's little code so it's easy to audit"
2025-02-08 10:36:43 +0100sprotte24(~sprotte24@p200300d16f1e3a00501959556750eb7a.dip0.t-ipconnect.de)
2025-02-08 10:36:15 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 10:35:58 +0100 <peutri> mmm good point actually
2025-02-08 10:35:55 +0100 <tomsmeding> put `sizeOfListElt :: [a] -> Int ; sizeOfListElt = sizeOf . head` in a file with -Wno-x-partial?
2025-02-08 10:35:50 +0100 <peutri> oh sorry misread
2025-02-08 10:35:11 +0100 <peutri> no, but it's a big file
2025-02-08 10:35:02 +0100 <tomsmeding> in what situation is this warning going to help you?
2025-02-08 10:34:46 +0100 <peutri> I want localized warning shunning :'(
2025-02-08 10:34:33 +0100 <tomsmeding> and probably add -Wno-x-partial (or what was it) to the cabal file
2025-02-08 10:34:30 +0100 <peutri> “function” overload. That's 1) functionality 2) signature match
2025-02-08 10:34:24 +0100 <tomsmeding> I would accept your sizeOf (head) code in code review :p
2025-02-08 10:33:49 +0100 <peutri> I mean, I'm not using it for the function at all, it's just the only [a]->a function I could think of
2025-02-08 10:33:47 +0100AlexZenon(~alzenon@178.34.151.30) (Ping timeout: 268 seconds)
2025-02-08 10:33:19 +0100 <tomsmeding> if you don't know 'head' is partial, you should think about what it does :p
2025-02-08 10:32:46 +0100tomsmedingpersonally feels that this head-is-partial warning is not helpful -- indeed, head is partial, but the programmer knows that, and the sign that something is off (or to be manually checked) is right there in the code: "head"
2025-02-08 10:31:18 +0100 <tomsmeding> and retain the connection between the list elements and the sizeOf call that your head code had, but the undefined code lost
2025-02-08 10:30:59 +0100 <tomsmeding> now you can pass in your list directly to this sizeOf'
2025-02-08 10:30:53 +0100 <tomsmeding> note the P -> p
2025-02-08 10:30:50 +0100 <tomsmeding> sizeOf' :: forall a. proxy a -> Int ; sizeOf' _ = sizeOf (Prelude.undefined :: a)
2025-02-08 10:30:45 +0100 <tomsmeding> ooh
2025-02-08 10:30:45 +0100 <peutri> oh your thing too
2025-02-08 10:30:32 +0100 <peutri> I think I'm going to end up defining some term proxy alias in the end
2025-02-08 10:30:21 +0100 <tomsmeding> sizeOf' :: forall a. Proxy a -> Int ; sizeOf' _ = sizeOf (Prelude.undefined :: a)
2025-02-08 10:30:07 +0100 <peutri> in a “You have undefineds remaining in your code” kind of way
2025-02-08 10:29:51 +0100 <peutri> but I can use Prelude's I guess
2025-02-08 10:29:42 +0100 <tomsmeding> in what way?