Newest at the top
2025-01-20 05:03:11 +0100 | ColinRobinson | (~juan@user/JuanDaugherty) (Quit: ColinRobinson) |
2025-01-20 05:00:48 +0100 | anpad | (~pandeyan@user/anpad) anpad |
2025-01-20 04:59:17 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2025-01-20 04:54:44 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2025-01-20 04:52:28 +0100 | JuanDaugherty | ColinRobinson |
2025-01-20 04:44:36 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds) |
2025-01-20 04:43:49 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2025-01-20 04:42:40 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 272 seconds) |
2025-01-20 04:41:33 +0100 | ColinRobinson | JuanDaugherty |
2025-01-20 04:39:22 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2025-01-20 04:37:24 +0100 | anpad | (~pandeyan@user/anpad) (Quit: ZNC 1.8.2 - https://znc.in) |
2025-01-20 04:33:12 +0100 | JuanDaugherty | ColinRobinson |
2025-01-20 04:28:39 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2025-01-20 04:26:32 +0100 | pavonia | (~user@user/siracusa) siracusa |
2025-01-20 04:24:10 +0100 | anpad | (~pandeyan@user/anpad) anpad |
2025-01-20 04:23:59 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2025-01-20 04:19:48 +0100 | <homo> | however, pattern guards are not going away, so someone has to implement those in hugs |
2025-01-20 04:19:20 +0100 | <homo> | it's happening, microhs lowers language requirements to be bootstrappable with hugs https://github.com/augustss/MicroHs/commit/2f9eab4db4e811e4c75ea370a64914abc94abf9c https://github.com/augustss/MicroHs/commit/56be300c293304b37cb18db499d825621be9ec4d |
2025-01-20 04:16:17 +0100 | anpad | (~pandeyan@user/anpad) (Client Quit) |
2025-01-20 04:15:57 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2025-01-20 04:15:30 +0100 | anpad | (~pandeyan@user/anpad) anpad |
2025-01-20 04:11:31 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2025-01-20 04:07:57 +0100 | anpad | (~pandeyan@user/anpad) (Client Quit) |
2025-01-20 04:05:07 +0100 | anpad | (~pandeyan@user/anpad) anpad |
2025-01-20 04:02:58 +0100 | homo | (~homo@user/homo) homo |
2025-01-20 04:01:25 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2025-01-20 04:01:09 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2025-01-20 03:58:29 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 248 seconds) |
2025-01-20 03:54:09 +0100 | <int-e> | +s |
2025-01-20 03:53:59 +0100 | <int-e> | what fun |
2025-01-20 03:53:57 +0100 | <int-e> | and you have to read programs backward to discern continuations |
2025-01-20 03:53:28 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2025-01-20 03:53:21 +0100 | <int-e> | right, and `call` (or `jsr` or whatever; the assembly level things) are callCC |
2025-01-20 03:52:11 +0100 | <monochrom> | Now just rename "return" to "continuation" there, and you have CPS. |
2025-01-20 03:51:56 +0100 | <monochrom> | For this, you have to accept that I use the callee-pops-arguments convention. Suppose you make a "function call", i.e., push argument, push "return" address, jump to function. And suppose the function "returns", i.e., pop "return" address, pop argument, jump. |
2025-01-20 03:50:38 +0100 | anpad | (~pandeyan@user/anpad) (Quit: ZNC 1.8.2 - https://znc.in) |
2025-01-20 03:49:49 +0100 | <monochrom> | But here is also a low-level reason. |
2025-01-20 03:49:40 +0100 | <monochrom> | Anyway, that's a high-level reason why I don't make a distinction between "call stack like in C" and "eval stack like in Haskell". (I'm also mocking the irony there too because neither ISO C nor Haskell 2010 require a stack.) They are all continuation stacks, and once you know the evaluation order you know what continuation means. |
2025-01-20 03:46:02 +0100 | <monochrom> | Yeah you're just trading heap for stack. It's why I was so worked up about limited stack and unlimited heap. |
2025-01-20 03:45:47 +0100 | <geekosaur> | that's what I said, wall-o-wtf 🙂 |
2025-01-20 03:45:39 +0100 | hgolden | (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) hgolden |
2025-01-20 03:45:29 +0100 | <albet70> | I like this talks even I don't understand now, it's very inspired :) |
2025-01-20 03:45:00 +0100 | <int-e> | monochrom: Heh. So if you use Cont or other (a -> r) -> (b -> r) -> r Haskell-level continuations, then at runtime, you have thunk-level CPS (continuations are stored in thunks until needed) |
2025-01-20 03:43:58 +0100 | hgolden | (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) (Remote host closed the connection) |
2025-01-20 03:43:29 +0100 | Adran | (~adran@botters/adran) Adran |
2025-01-20 03:42:44 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2025-01-20 03:41:25 +0100 | <monochrom> | Ooops, s/small// |
2025-01-20 03:40:07 +0100 | <monochrom> | In this case, context is synonym for continuation. |
2025-01-20 03:39:55 +0100 | <geekosaur> | unless they drowned in the wall-o-wtf |
2025-01-20 03:39:47 +0100 | <monochrom> | If you then try to go a bit lower level, you say: push the context (or representation of) on the stack, bring the redex to the front and work on it, afterwards pop the context and look for the next redex, etc. |