Logs: liberachat/#haskell
| 2025-11-23 17:57:32 | → | annamalai joins (~annamalai@117.249.230.146) |
| 2025-11-23 17:59:22 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-23 18:04:14 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-11-23 18:04:53 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Read error: Connection reset by peer) |
| 2025-11-23 18:08:53 | → | CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) |
| 2025-11-23 18:10:40 | → | Googulator85 joins (~Googulato@2a01-036d-0106-01f1-f56c-45b8-e3c8-fdbd.pool6.digikabel.hu) |
| 2025-11-23 18:10:43 | × | Googulator97 quits (~Googulato@2a01-036d-0106-01f1-f56c-45b8-e3c8-fdbd.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-11-23 18:13:46 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 2025-11-23 18:14:04 | → | DetourNe- joins (DetourNetw@user/DetourNetworkUK) |
| 2025-11-23 18:14:22 | × | DetourNetworkUK quits (~DetourNet@user/DetourNetworkUK) (Read error: Connection reset by peer) |
| 2025-11-23 18:14:46 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-23 18:16:25 | DetourNe- | is now known as DetourNetworkUK |
| 2025-11-23 18:16:34 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 2025-11-23 18:18:56 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-11-23 18:24:04 | × | Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 260 seconds) |
| 2025-11-23 18:25:37 | × | tromp quits (~textual@2001:1c00:3487:1b00:b4d9:61f2:c274:e6c7) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-11-23 18:27:40 | → | Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
| 2025-11-23 18:29:04 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-23 18:34:46 | × | Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 246 seconds) |
| 2025-11-23 18:36:19 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-11-23 18:36:50 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org )) |
| 2025-11-23 18:47:07 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-23 18:51:19 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-11-23 18:51:37 | trickard_ | is now known as trickard |
| 2025-11-23 18:54:03 | → | tromp joins (~textual@2001:1c00:3487:1b00:b4d9:61f2:c274:e6c7) |
| 2025-11-23 18:55:36 | × | trickard quits (~trickard@cpe-87-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-11-23 18:58:13 | → | trickard_ joins (~trickard@cpe-87-98-47-163.wireline.com.au) |
| 2025-11-23 18:58:49 | × | jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 264 seconds) |
| 2025-11-23 19:02:29 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-23 19:04:25 | × | trickard_ quits (~trickard@cpe-87-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-11-23 19:06:58 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2025-11-23 19:08:21 | → | trickard_ joins (~trickard@cpe-87-98-47-163.wireline.com.au) |
| 2025-11-23 19:13:04 | × | trickard_ quits (~trickard@cpe-87-98-47-163.wireline.com.au) (Ping timeout: 260 seconds) |
| 2025-11-23 19:13:59 | → | Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
| 2025-11-23 19:16:51 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 2025-11-23 19:17:58 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-23 19:18:48 | → | falafel joins (~falafel@2603:8000:ca00:83fb:d01e:2fee:516:54fa) |
| 2025-11-23 19:21:14 | × | Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 260 seconds) |
| 2025-11-23 19:22:46 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2025-11-23 19:26:14 | → | trickard_ joins (~trickard@cpe-87-98-47-163.wireline.com.au) |
| 2025-11-23 19:30:04 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-23 19:35:07 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-11-23 19:45:10 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 2025-11-23 19:45:34 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-23 19:48:08 | → | peterbecich joins (~Thunderbi@172.222.148.214) |
| 2025-11-23 19:49:02 | → | Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
| 2025-11-23 19:49:43 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-11-23 19:59:03 | × | Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 244 seconds) |
| 2025-11-23 20:00:56 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-23 20:04:32 | × | DetourNetworkUK quits (DetourNetw@user/DetourNetworkUK) (Ping timeout: 240 seconds) |
| 2025-11-23 20:06:01 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-11-23 20:06:06 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 2025-11-23 20:10:50 | → | DetourNetworkUK joins (~DetourNet@user/DetourNetworkUK) |
| 2025-11-23 20:14:35 | × | trickard_ quits (~trickard@cpe-87-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-11-23 20:14:49 | → | trickard_ joins (~trickard@cpe-87-98-47-163.wireline.com.au) |
| 2025-11-23 20:16:21 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-23 20:18:14 | → | Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
| 2025-11-23 20:19:10 | × | trickard_ quits (~trickard@cpe-87-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-11-23 20:21:10 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-11-23 20:25:40 | → | trickard_ joins (~trickard@cpe-87-98-47-163.wireline.com.au) |
| 2025-11-23 20:31:05 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-23 20:31:29 | <[exa]> | so if I have a function (actual (->) type) and I take it as a strict or try to save it to a strict field in a datatype, what does actually happen with that at the runtime? |
| 2025-11-23 20:32:42 | × | DetourNetworkUK quits (~DetourNet@user/DetourNetworkUK) (Ping timeout: 252 seconds) |
| 2025-11-23 20:32:55 | <[exa]> | (with plain old STG I'd assume it's gonna make sure that the function on the heap is an actual closure instead of a thunk, does that hold nowadays with ghc?) |
| 2025-11-23 20:33:03 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 2025-11-23 20:33:06 | <geekosaur> | "strict" in HASKELL means "evaluated to WHNF", and a function is already in WHNF |
| 2025-11-23 20:33:18 | <geekosaur> | (why did that get all caps?) |
| 2025-11-23 20:33:25 | <geekosaur> | aiui at least |
| 2025-11-23 20:33:48 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-11-23 20:34:02 | <Lycurgus> | what client are you using? or did u lose control of u? |
| 2025-11-23 20:34:26 | <geekosaur> | I may have overheld the shift key; not doing very well today… |
| 2025-11-23 20:34:36 | <Lycurgus> | maybe STG bumped it up |
| 2025-11-23 20:35:06 | <haskellbridge> | <Zemyla> There's a difference between a function and a thunk that evaluates to a function, though. |
| 2025-11-23 20:35:14 | <[exa]> | now looking at the original STG paper they actually call everything a "closure" so even less clear :D |
| 2025-11-23 20:35:31 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-11-23 20:35:37 | <geekosaur> | the thunk should be evaluated |
| 2025-11-23 20:36:08 | <EvanR> | a closure contains what's needed to evaluate something |
| 2025-11-23 20:37:01 | <int-e> | > let a = undefined `seq` id in (23, a `seq` 42) |
| 2025-11-23 20:37:04 | <lambdabot> | (23,*Exception: Prelude.undefined |
| 2025-11-23 20:37:11 | <EvanR> | pointer to code, and zero or more other things |
| 2025-11-23 20:37:30 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org )) |
| 2025-11-23 20:37:48 | <[exa]> | EvanR: there was a distinction between thunks that have all args they need and thunks that still need more (I referred to these as closures but I likely messed up the naming even more) |
| 2025-11-23 20:38:20 | <monochrom> | [exa]: An example is that an unevaluated function can be an "unresolved" case like "if 1>0 then (\x -> x+1) else (\x -> x-1)" and then you force it to resolve to "(\x -> x+1)" |
| 2025-11-23 20:38:36 | → | greatfulgrapefru joins (~greatfulg@2600:387:15:6131::3) |
| 2025-11-23 20:38:41 | → | DetourNetworkUK joins (DetourNetw@user/DetourNetworkUK) |
| 2025-11-23 20:38:43 | <[exa]> | monochrom: yeah I thought like that |
| 2025-11-23 20:38:50 | greatfulgrapefru | is now known as hi |
| 2025-11-23 20:38:55 | <[exa]> | well I guess, let's Debug.Trace and verify this |
| 2025-11-23 20:39:05 | hi | is now known as gratefulgrapefru |
| 2025-11-23 20:39:16 | <geekosaur> | I think in the case where it's a partial application you might get a PAP node |
| 2025-11-23 20:39:40 | <monochrom> | That too. |
| 2025-11-23 20:41:28 | <geekosaur> | also note that in that case, the partially applied values will not count as part of determining WHNF |
| 2025-11-23 20:41:53 | × | gratefulgrapefru quits (~greatfulg@2600:387:15:6131::3) (Changing host) |
| 2025-11-23 20:41:53 | → | gratefulgrapefru joins (~greatfulg@user/gratefulgrapefru) |
| 2025-11-23 20:42:25 | <[exa]> | oh yes, PAP node what what I had in mind, thanks |
| 2025-11-23 20:42:26 | <geekosaur> | the function (or PAP node) itself will be in WHNF, but just as strictness doesn't descend past the first constructor, it won't descend into function parameters |
| 2025-11-23 20:42:36 | <[exa]> | so PAP exists in ghc runtime? if so that's great |
| 2025-11-23 20:42:46 | <geekosaur> | yes, it's part of STG |
| 2025-11-23 20:43:01 | <geekosaur> | doesn't exist above it, it's part of the STG evaluation machinery |
| 2025-11-23 20:43:19 | <[exa]> | anyway the verification with trace seems OK |
All times are in UTC.